Merge pull request #1936 from esdrubal/DotNetRelativeOrAbsolute
authorMarcos Henrich <marcoshenrich@gmail.com>
Sat, 29 Aug 2015 11:24:02 +0000 (12:24 +0100)
committerMarcos Henrich <marcoshenrich@gmail.com>
Sat, 29 Aug 2015 11:24:02 +0000 (12:24 +0100)
[System] UriKind.RelativeOrAbsolute workaround.

1314 files changed:
.gitignore
configure.ac
data/config.in
data/lock-decoder/LockTracerDecoder.cs
data/mono-nunit.pc.in
docs/Makefile.am
eglib/configure.ac
eglib/src/Makefile.am
eglib/src/eglib-config.h.in
eglib/src/gspawn.c
eglib/src/gunicode.c
external/binary-reference-assemblies
external/ikvm
external/referencesource
ikvm-native/Makefile.am
man/mprof-report.1
mcs/Makefile
mcs/build/Makefile
mcs/build/common/Consts.cs.in
mcs/build/config-default.make
mcs/build/library.make
mcs/build/profiles/monotouch.make
mcs/build/profiles/monotouch_runtime.make
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
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.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.Data.Sqlite/Test/Bug27864.cs
mcs/class/Mono.Debugger.Soft/Makefile
mcs/class/Mono.Debugger.Soft/Mono.Debugger.Soft/Connection.cs
mcs/class/Mono.Debugger.Soft/Test/dtest-app.cs
mcs/class/Mono.Debugger.Soft/Test/dtest.cs
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-tests-net_4_5.csproj
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.Native/NativeConvert.generated.cs
mcs/class/Mono.Posix/Mono.Unix.Native/Syscall.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.Native/SocketTest.cs [new file with mode: 0644]
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.Simd/Makefile
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/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/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
mcs/class/System.Data.Linq/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/monotouch_watch_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.Client/xammac_net_4_5_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/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
mcs/class/System.Drawing/Test/DrawingTest/Test/Makefile
mcs/class/System.IdentityModel.Selectors/Makefile
mcs/class/System.IdentityModel/Makefile
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.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.Net.Http/monotouch_watch_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/Test/System.Runtime.Serialization/DataContractResolverTest.cs
mcs/class/System.Runtime.Serialization/Test/System.Runtime.Serialization/XsdDataContractImporterTest2.cs
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
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.Web.dll.sources
mcs/class/System.ServiceModel.Web/System.ServiceModel.Web/WebOperationContext.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/common_System.ServiceModel.Web.dll.sources [deleted file]
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/Assembly/AssemblyInfo.cs
mcs/class/System.ServiceModel/System.ServiceModel.Dispatcher/ChannelDispatcher.cs
mcs/class/System.ServiceModel/System.ServiceModel.dll.sources
mcs/class/System.ServiceModel/System.ServiceModel/ClientRuntimeChannel.cs
mcs/class/System.ServiceModel/System.ServiceModel_test.dll.sources
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.Configuration/StandardEndpointsSectionTest.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel.Description/ServiceMetadataEndpointTest.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel.Dispatcher/Bug32886Test.cs [new file with mode: 0644]
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/ChannelFactory_1Test.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel/ClientBaseTest.cs
mcs/class/System.ServiceModel/Test/System.ServiceModel/ServiceHostBaseTest.cs
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.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/Test/standalone/Makefile
mcs/class/System.Web/Assembly/AssemblyInfo.cs
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/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/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.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/System.Diagnostics/Process.cs
mcs/class/System/System.IO/KeventWatcher.cs
mcs/class/System/System.IO/MonoSyncFileStream.cs [deleted file]
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.Security/EncryptionPolicy.cs [new file with mode: 0644]
mcs/class/System/System.Net/ChunkStream.cs
mcs/class/System/System.Net/HttpListenerTimeoutManager.cs [new file with mode: 0644]
mcs/class/System/System.Net/ServicePoint.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/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/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/System.IO.Packaging/PackagePart.cs
mcs/class/WindowsBase/Test/System.IO.Packaging/PackagePartTest.cs
mcs/class/WindowsBase/Test/System.Windows.Markup/DateTimeValueSerializerTest.cs
mcs/class/WindowsBase/Test/System.Windows.Markup/ValueSerializerTest.cs
mcs/class/corlib/DateTime.Now_Test.sh
mcs/class/corlib/ReferenceSources/Environment.cs
mcs/class/corlib/ReferenceSources/TextInfo.cs
mcs/class/corlib/ReferenceSources/win32native.cs
mcs/class/corlib/System.Diagnostics/StackTrace.cs
mcs/class/corlib/System.IO/FileStream.cs
mcs/class/corlib/System.IO/IntPtrStream.cs [deleted file]
mcs/class/corlib/System.IO/MonoIO.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/CustomAttributeData.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.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/AppContext.cs [new file with mode: 0644]
mcs/class/corlib/System/Console.cs
mcs/class/corlib/System/Environment.cs
mcs/class/corlib/System/Exception.cs
mcs/class/corlib/System/Math.cs [deleted file]
mcs/class/corlib/System/TimeZoneInfo.Android.cs
mcs/class/corlib/System/TimeZoneInfo.MonoTouch.cs
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.ExceptionServices/ExceptionDispatchInfoTest.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.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.dll.sources
mcs/class/corlib/corlib_test.dll.sources
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/errors/Makefile
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/TypeDef.cs
mcs/ilasm/parser/ILParser.jay
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/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-633.cs [new file with mode: 0644]
mcs/tests/gtest-autoproperty-13.cs [deleted file]
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-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-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-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/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/mono-symbolicate/Makefile
mcs/tools/mono-symbolicate/Test/StackTraceDumper.cs
mcs/tools/mono-symbolicate/Test/symbolicate.expected
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/xbuild_test.make
mono/arch/arm/tramp.c [deleted file]
mono/io-layer/handles-private.h
mono/io-layer/handles.c
mono/io-layer/io.c
mono/io-layer/io.h
mono/io-layer/processes.c
mono/io-layer/thread-private.h
mono/io-layer/threads.h
mono/io-layer/wait.c
mono/io-layer/wapi-remap.h
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/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-io.h
mono/metadata/filewatcher.c
mono/metadata/filewatcher.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/lock-tracer.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-hash.c
mono/metadata/mono-hash.h
mono/metadata/object-internals.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/sgen-client-mono.h
mono/metadata/sgen-mono.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-os-win32.c
mono/metadata/socket-io.c
mono/metadata/sysmath.c
mono/metadata/sysmath.h
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.c
mono/metadata/threadpool-ms.h
mono/metadata/threads-types.h
mono/metadata/threads.c
mono/mini/Makefile.am.in
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-arm64.md
mono/mini/cpu-ppc.md
mono/mini/cpu-s390x.md
mono/mini/cpu-x86.md
mono/mini/debugger-agent.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/gshared.cs
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/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/sgen-archdep.h
mono/sgen/sgen-client.h
mono/sgen/sgen-debug.c
mono/sgen/sgen-gc.c
mono/sgen/sgen-gc.h
mono/sgen/sgen-los.c
mono/sgen/sgen-marksweep-scan-object-concurrent.h
mono/sgen/sgen-marksweep.c
mono/sgen/sgen-protocol-def.h
mono/sgen/sgen-protocol.c
mono/sgen/sgen-protocol.h
mono/tests/Makefile.am
mono/tests/assemblyresolve/Makefile.am
mono/tests/dynamic-method-stack-traces.cs [new file with mode: 0644]
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/monitor-resurrection.cs
mono/tests/pinvoke2.cs
mono/tests/shared-generic-synchronized.2.cs
mono/tests/suspend-stress-test.cs [new file with mode: 0644]
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-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-stack-unwinding.h
mono/utils/mono-threads-api.h [new file with mode: 0644]
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
mono/utils/valgrind.h
msvc/eglib.vcxproj
msvc/genmdesc.vcxproj
msvc/libgc.vcxproj
msvc/libmono.vcxproj
msvc/libmonoruntime.vcxproj
msvc/libmonoutils.vcxproj
msvc/libtest.vcxproj
msvc/mono.def
msvc/mono.vcxproj
msvc/monodiet.vcxproj
msvc/monodis.vcxproj
msvc/monograph.vcxproj
msvc/monoposixhelper.vcxproj
msvc/monosgen.def
msvc/monosgen64.def [deleted file]
msvc/pedump.vcxproj
msvc/test-invoke.vcxproj
msvc/test-metadata.vcxproj
msvc/test_eglib.vcxproj
msvc/teste.vcxproj
runtime/Makefile.am
scripts/Makefile.am
scripts/mono-find-provides.in
support/Makefile.am
support/errno.c
support/map.c
support/map.h
support/mph.h
support/signal.c
support/sys-socket.c [new file with mode: 0644]
tools/sgen/sgen-grep-binprot.c
winconfig.h

index 65f1935f1ee1c0088bc93f5d0603994d70e61a98..1cb061f77894615a877ca23c16bcce6acb8e816d 100644 (file)
@@ -23,7 +23,6 @@
 *.tlb
 *.tlh
 *.bak
-*.[Cc]ache
 *.ilk
 *.log
 *.lib
index 3b118aa006ea7eff2f441b57a8e059a26f030aaf..e26a851de63b8bdd8fd3f4c0a498b33ed824c84a 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,8 +276,7 @@ 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 -D_THREAD_SAFE -DGC_MACOSX_THREADS -DPLATFORM_MACOSX -DUSE_MMAP -DUSE_MUNMAP"
                libmono_cflags="-D_THREAD_SAFE"
@@ -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)
 
@@ -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
 
@@ -1939,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
@@ -2099,6 +2071,7 @@ if test x$host_win32 = xno; then
        AC_CHECK_FUNCS(readv writev preadv pwritev)
        AC_CHECK_FUNCS(setpgid)
        AC_CHECK_FUNCS(system)
+       AC_CHECK_FUNCS(fork execv execve)
        AC_CHECK_SIZEOF(size_t)
        AC_CHECK_TYPES([blksize_t], [AC_DEFINE(HAVE_BLKSIZE_T)], , 
                [#include <sys/types.h>
@@ -2115,6 +2088,8 @@ if test x$host_win32 = xno; then
                 #include <fcntl.h>])
        AC_CHECK_TYPES([struct iovec], [AC_DEFINE(HAVE_STRUCT_IOVEC)], ,
                [#include <sys/uio.h>])
+       AC_CHECK_TYPES([struct linger], [AC_DEFINE(HAVE_STRUCT_LINGER)], ,
+               [#include <sys/socket.h>])
        AC_CHECK_TYPES([struct pollfd], [AC_DEFINE(HAVE_STRUCT_POLLFD)], ,
                [#include <sys/poll.h>])
        AC_CHECK_TYPES([struct stat], [AC_DEFINE(HAVE_STRUCT_STAT)], ,
@@ -2187,10 +2162,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 ***
@@ -2349,16 +2320,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
@@ -2403,8 +2364,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 ****************************
@@ -2726,13 +2685,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)
@@ -2771,25 +2728,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
                ;;
@@ -2802,18 +2754,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
@@ -2853,7 +2801,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)
@@ -2873,22 +2820,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__"
                ;;
@@ -2897,21 +2849,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
@@ -2930,6 +2879,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
@@ -3010,7 +2964,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
@@ -3022,7 +2975,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
@@ -3034,7 +2986,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
@@ -3147,7 +3098,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"
@@ -3197,21 +3153,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)
@@ -3357,7 +3303,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
 
@@ -3491,10 +3437,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         If you want to build the Xamarin.iOS assemblies (defaults to no)],   [], [with_monotouch=no])
-AC_ARG_WITH(xammac,    [  --with-xammac=yes,no            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)],[
@@ -3525,7 +3472,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
 
@@ -3541,6 +3488,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.])],,)
@@ -3571,9 +3525,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
 
@@ -3593,9 +3548,10 @@ 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(MIPS_GCC, test ${TARGET}${ac_cv_prog_gcc} = MIPSyes)
@@ -3649,6 +3605,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 +3869,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 +3918,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 +3937,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 +3966,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 70d519ea225ca26dfef7cb1376125b8c07552204..31771dfd9a19dab5f0af901207d869f5160264b2 100644 (file)
@@ -1,4 +1,4 @@
-noinst_LTLIBRARIES = libeglib.la libeglib-static.la
+noinst_LTLIBRARIES = libeglib.la
 
 AM_CFLAGS = $(WERROR_CFLAGS)
 
@@ -59,8 +59,6 @@ libeglib_la_SOURCES = \
        $(vasprintf_files)
 
 libeglib_la_CFLAGS = -g -Wall -D_FORTIFY_SOURCE=2
-libeglib_static_la_SOURCES=$(libeglib_la_SOURCES)
-libeglib_static_la_CFLAGS = $(libeglib_la_CFLAGS)
 
 AM_CPPFLAGS = -I$(srcdir)
 
@@ -72,9 +70,6 @@ libeglib_la_LIBADD = -llog
 endif
 endif
 
-libeglib_static_la_LIBADD = $(libeglib_la_LIBADD) $(LIBICONV)
-libeglib_static_la_LDFLAGS = -static
-
 MAINTAINERCLEANFILES = Makefile.in
 
 EXTRA_DIST = eglib-config.h.in $(win_files) $(unix_files)
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 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];
index c3a9000f8d225839522e6dfad8a9d8d4e08f82a1..e6f4b925b61c0eeb2b063a5c686ca7941fd0d0d5 100644 (file)
@@ -219,10 +219,10 @@ g_get_charset (G_CONST_RETURN char **charset)
                is_utf8 = FALSE;
 #else
                /* These shouldn't be heap allocated */
-#if HAVE_LOCALCHARSET_H
-               my_charset = locale_charset ();
-#elif defined(HAVE_LANGINFO_H)
+#if defined(HAVE_LANGINFO_H)
                my_charset = nl_langinfo (CODESET);
+#elif defined(HAVE_LOCALCHARSET_H)
+               my_charset = locale_charset ();
 #else
                my_charset = "UTF-8";
 #endif
index 7120b21603354fced392a43ab7c581d0114fecac..f4f5f2f4cd5573e06f0bf1fb60e236f0aebf37a4 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 7120b21603354fced392a43ab7c581d0114fecac
+Subproject commit f4f5f2f4cd5573e06f0bf1fb60e236f0aebf37a4
index dab43d5cf4bf3b8b9a5b5f8cb175dee38a5fe69f..d6b00edf218008ecd8cfe90bc66b9b607431428f 160000 (submodule)
@@ -1 +1 @@
-Subproject commit dab43d5cf4bf3b8b9a5b5f8cb175dee38a5fe69f
+Subproject commit d6b00edf218008ecd8cfe90bc66b9b607431428f
index 42504b8af5a0bf7f012e6c40668659ca45fd4e22..a09accbcb9771db77a3b0370c954f643d59f4ce7 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 42504b8af5a0bf7f012e6c40668659ca45fd4e22
+Subproject commit a09accbcb9771db77a3b0370c954f643d59f4ce7
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 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 8c40454ca32bceab99ce203422afc25ee18198e6..f465c09c247c8f5ffc195d14ac61cb31ed401001 100644 (file)
@@ -14,7 +14,7 @@ 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
@@ -32,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--%
@@ -55,10 +55,10 @@ 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--%
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 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/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:
        @:
index 4ea4eb1da3038752a477a5ae95e17cf26ce0f9ce..3a449bf96814ab9c1666ba2f1a98d6c9c45b401d 100644 (file)
@@ -1,4 +1,4 @@
-include $(topdir)/build/profiles/net_4_5.make
+include $(topdir)/build/profiles/net_4_x.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
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 f282abf814f383eb58b6ee16a61ca1274be3ea57..b975e9699ea8fb53a4ce56c332bc4631ee4ea7f3 100644 (file)
@@ -9,16 +9,34 @@ 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.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 System.Net.Http.WebRequestHandler
 
-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)
+xammac_SUBDIRS = $(monotouch_SUBDIRS)
+xammac_net_4_5_SUBDIRS = $(monotouch_SUBDIRS) $(reflection_SUBDIRS)
 
 monotouch_watch_SUBDIRS = $(monotouch_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..89df055
--- /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 && !XAMMAC_4_5
+[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..a80d1c6
--- /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 && !XAMMAC_4_5
+[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))]
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 5c9688b78d7076d6d4e75eec32d3e743c55aaa43..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)
@@ -123,7 +125,7 @@ xammac_4_5_dirs := \
        System.Net.Http \
        $(pcl_facade_dirs)
 
-net_4_5_dirs := \
+net_4_x_dirs := \
        corlib                          \
        System                          \
        System.XML                      \
@@ -139,6 +141,7 @@ net_4_5_dirs := \
        System.EnterpriseServices       \
        Mono.Data.Tds                   \
        System.Numerics         \
+       System.Numerics.Vectors         \
        System.Data                     \
        System.ComponentModel.DataAnnotations   \
        Accessibility                   \
@@ -204,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                       \
@@ -274,14 +277,14 @@ 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) $(xammac_net_4_5_SUBDIRS)
+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 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 02ae6814cbfcc3254b8206ce2786be062fbf3907..a35e49d0b47c2f56568ffb19c953528aa0e15c23 100644 (file)
@@ -417,7 +417,7 @@ namespace Mono.Debugger.Soft
                 * with newer runtimes, and vice versa.
                 */
                internal const int MAJOR_VERSION = 2;
-               internal const int MINOR_VERSION = 40;
+               internal const int MINOR_VERSION = 41;
 
                enum WPSuspendPolicy {
                        NONE = 0,
@@ -801,6 +801,13 @@ namespace Mono.Debugger.Soft
                                return res;
                        }
 
+                       public string ReadUTF16String () {
+                               int len = decode_int (packet, ref offset);
+                               string res = new String (Encoding.Unicode.GetChars (packet, offset, len));
+                               offset += len;
+                               return res;
+                       }
+
                        public ValueImpl ReadValue () {
                                ElementType etype = (ElementType)ReadByte ();
 
@@ -2418,7 +2425,16 @@ namespace Mono.Debugger.Soft
                 * STRINGS
                 */
                internal string String_GetValue (long id) {
-                       return SendReceive (CommandSet.STRING_REF, (int)CmdStringRef.GET_VALUE, new PacketWriter ().WriteId (id)).ReadString ();
+                       var r = SendReceive (CommandSet.STRING_REF, (int)CmdStringRef.GET_VALUE, new PacketWriter ().WriteId (id));
+
+                       bool is_utf16 = false;
+                       if (Version.AtLeast (2, 41))
+                               is_utf16 = r.ReadByte () == 1;
+
+                       if (is_utf16)
+                               return r.ReadUTF16String ();
+                       else
+                               return r.ReadString ();
                }                       
 
                internal int String_GetLength (long id) {
index 5d7773d2477c4738b9099c7b7b8b320244449e31..645329ee98880604e4d38bf536a48ae2733c1e9f 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) {
@@ -582,7 +598,7 @@ public class Tests : TestsBase, ITest2
        public static void arguments () {
                arg1 (SByte.MaxValue - 5, Byte.MaxValue - 5, true, Int16.MaxValue - 5, UInt16.MaxValue - 5, 'F', Int32.MaxValue - 5, UInt32.MaxValue - 5, Int64.MaxValue - 5, UInt64.MaxValue - 5, 1.2345f, 6.78910, new IntPtr (Int32.MaxValue - 5), new UIntPtr (UInt32.MaxValue - 5));
                int i = 42;
-               arg2 ("FOO", null, "BLA", ref i, new GClass <int> { field = 42 }, new object ());
+               arg2 ("FOO", null, "BLA", ref i, new GClass <int> { field = 42 }, new object (), '\0'.ToString () + "A");
                Tests t = new Tests () { field_i = 42, field_s = "S" };
                t.arg3 ("BLA");
        }
@@ -593,7 +609,7 @@ public class Tests : TestsBase, ITest2
        }
 
        [MethodImplAttribute (MethodImplOptions.NoInlining)]
-       public static string arg2 (string s, string s3, object o, ref int i, GClass <int> gc, object o2) {
+       public static string arg2 (string s, string s3, object o, ref int i, GClass <int> gc, object o2, string s4) {
                return s + (s3 != null ? "" : "") + o + i + gc.field + o2;
        }
 
@@ -892,6 +908,10 @@ public class Tests : TestsBase, ITest2
        public void invoke2 () {
        }
 
+       [MethodImplAttribute (MethodImplOptions.NoInlining)]
+       public void invoke3 () {
+       }
+
        [MethodImplAttribute (MethodImplOptions.NoInlining)]
        public void invoke_ex () {
                invoke_ex_inner ();
index a115bc97a065bcfbecccb467e66c3a33aad540de..3c62a78ee4f20b1751753ce79842028dd874ffad 100644 (file)
@@ -2286,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);
@@ -2303,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;
@@ -2493,6 +2506,53 @@ public class DebuggerTests
                        invoke_results.Add (res);
        }
 
+       [Test]
+       public void InvokeNested () {
+               Event e = run_until ("invoke1");
+
+               MethodMirror m = entry_point.DeclaringType.GetMethod ("invoke2");
+               Assert.IsNotNull (m);
+               vm.SetBreakpoint (m, 0);
+
+               StackFrame frame = e.Thread.GetFrames () [0];
+               var o = frame.GetThis () as ObjectMirror;
+
+               bool failed = false;
+
+               bool finished = false;
+               object wait = new object ();
+
+               Thread t = new Thread (delegate () {
+                               try {
+                                       o.InvokeMethod (e.Thread, m, null);
+                               } catch {
+                                       failed = true;
+                               }
+                               lock (wait) {
+                                       finished = true;
+                                       Monitor.Pulse (wait);
+                               }
+                       });
+
+               t.Start ();
+
+               StackFrame invoke_frame = null;
+
+               e = GetNextEvent ();
+               Assert.IsInstanceOfType (typeof (BreakpointEvent), e);
+
+               // Check that nested invokes are not allowed
+               AssertThrows<VMNotSuspendedException> (delegate {
+                       o.InvokeMethod (e.Thread, m, null);
+                       });
+
+               vm.Resume ();
+               lock (wait) {
+                       if (!finished)
+                               Monitor.Wait (wait);
+               }
+       }
+
        [Test]
        public void GetThreads () {
                vm.GetThreads ();
@@ -3306,6 +3366,20 @@ public class DebuggerTests
                Assert.AreEqual ("System.Exception", types [0].FullName);
        }
 
+       [Test]
+       public void String_GetValue () {
+               // Embedded nulls
+               object val;
+
+               // Reuse this test
+               var e = run_until ("arg2");
+
+               var frame = e.Thread.GetFrames () [0];
+
+               val = frame.GetArgument (6);
+               Assert.AreEqual ('\0'.ToString () + "A", (val as StringMirror).Value);
+       }
+
        [Test]
        public void String_GetChars () {
                object val;
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 a7d9f70f9954a416e88e2cf320575532dc0a181a..a0c5cf12f5761423cc174f3ed89ba402a37b6265 100644 (file)
@@ -45,6 +45,7 @@
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />\r
   <ItemGroup>\r
     <Compile Include="Test\Mono.Unix.Native\RealTimeSignumTests.cs" />\r
+    <Compile Include="Test\Mono.Unix.Native\SocketTest.cs" />\r
     <Compile Include="Test\Mono.Unix.Native\StdlibTest.cs" />\r
     <Compile Include="Test\Mono.Unix\ReadlinkTest.cs" />\r
     <Compile Include="Test\Mono.Unix\StdioFileStreamTest.cs" />\r
index 270b0b6aee680cb64332b06638110b58a6eda18b..e2a49354a8eb43a4790567e1c361ac2a73e87856 100644 (file)
@@ -6,5 +6,7 @@ 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/SocketTest.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 d9097f8d7a3394610167957639000144950b97e6..2ac13c6677edd26437a6fc806df7cf3e12b6d027 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * This file was automatically generated by create-native-map from ../../class/lib/net_2_0/Mono.Posix.dll.
+ * This file was automatically generated by create-native-map from ./../../class/lib/net_4_x/Mono.Posix.dll.
  *
  * DO NOT MODIFY.
  */
@@ -342,6 +342,22 @@ namespace Mono.Unix.Native {
                        return ToIovec (source, out destination) == 0;
                }
 
+               [DllImport (LIB, EntryPoint="Mono_Posix_FromLinger")]
+               private static extern int FromLinger (ref Linger source, IntPtr destination);
+
+               public static bool TryCopy (ref Linger source, IntPtr destination)
+               {
+                       return FromLinger (ref source, destination) == 0;
+               }
+
+               [DllImport (LIB, EntryPoint="Mono_Posix_ToLinger")]
+               private static extern int ToLinger (IntPtr source, out Linger destination);
+
+               public static bool TryCopy (IntPtr source, out Linger destination)
+               {
+                       return ToLinger (source, out destination) == 0;
+               }
+
                [DllImport (LIB, EntryPoint="Mono_Posix_FromLockType")]
                private static extern int FromLockType (LockType value, out Int16 rval);
 
@@ -406,6 +422,38 @@ namespace Mono.Unix.Native {
                        return rval;
                }
 
+               [DllImport (LIB, EntryPoint="Mono_Posix_FromMessageFlags")]
+               private static extern int FromMessageFlags (MessageFlags value, out Int32 rval);
+
+               public static bool TryFromMessageFlags (MessageFlags value, out Int32 rval)
+               {
+                       return FromMessageFlags (value, out rval) == 0;
+               }
+
+               public static Int32 FromMessageFlags (MessageFlags value)
+               {
+                       Int32 rval;
+                       if (FromMessageFlags (value, out rval) == -1)
+                               ThrowArgumentException (value);
+                       return rval;
+               }
+
+               [DllImport (LIB, EntryPoint="Mono_Posix_ToMessageFlags")]
+               private static extern int ToMessageFlags (Int32 value, out MessageFlags rval);
+
+               public static bool TryToMessageFlags (Int32 value, out MessageFlags rval)
+               {
+                       return ToMessageFlags (value, out rval) == 0;
+               }
+
+               public static MessageFlags ToMessageFlags (Int32 value)
+               {
+                       MessageFlags rval;
+                       if (ToMessageFlags (value, out rval) == -1)
+                               ThrowArgumentException (value);
+                       return rval;
+               }
+
                [DllImport (LIB, EntryPoint="Mono_Posix_FromMlockallFlags")]
                private static extern int FromMlockallFlags (MlockallFlags value, out Int32 rval);
 
@@ -806,6 +854,38 @@ namespace Mono.Unix.Native {
                        return rval;
                }
 
+               [DllImport (LIB, EntryPoint="Mono_Posix_FromShutdownOption")]
+               private static extern int FromShutdownOption (ShutdownOption value, out Int32 rval);
+
+               public static bool TryFromShutdownOption (ShutdownOption value, out Int32 rval)
+               {
+                       return FromShutdownOption (value, out rval) == 0;
+               }
+
+               public static Int32 FromShutdownOption (ShutdownOption value)
+               {
+                       Int32 rval;
+                       if (FromShutdownOption (value, out rval) == -1)
+                               ThrowArgumentException (value);
+                       return rval;
+               }
+
+               [DllImport (LIB, EntryPoint="Mono_Posix_ToShutdownOption")]
+               private static extern int ToShutdownOption (Int32 value, out ShutdownOption rval);
+
+               public static bool TryToShutdownOption (Int32 value, out ShutdownOption rval)
+               {
+                       return ToShutdownOption (value, out rval) == 0;
+               }
+
+               public static ShutdownOption ToShutdownOption (Int32 value)
+               {
+                       ShutdownOption rval;
+                       if (ToShutdownOption (value, out rval) == -1)
+                               ThrowArgumentException (value);
+                       return rval;
+               }
+
                [DllImport (LIB, EntryPoint="Mono_Posix_FromSignum")]
                private static extern int FromSignum (Signum value, out Int32 rval);
 
@@ -1014,6 +1094,166 @@ namespace Mono.Unix.Native {
                        return ToTimezone (source, out destination) == 0;
                }
 
+               [DllImport (LIB, EntryPoint="Mono_Posix_FromUnixAddressFamily")]
+               private static extern int FromUnixAddressFamily (UnixAddressFamily value, out Int32 rval);
+
+               public static bool TryFromUnixAddressFamily (UnixAddressFamily value, out Int32 rval)
+               {
+                       return FromUnixAddressFamily (value, out rval) == 0;
+               }
+
+               public static Int32 FromUnixAddressFamily (UnixAddressFamily value)
+               {
+                       Int32 rval;
+                       if (FromUnixAddressFamily (value, out rval) == -1)
+                               ThrowArgumentException (value);
+                       return rval;
+               }
+
+               [DllImport (LIB, EntryPoint="Mono_Posix_ToUnixAddressFamily")]
+               private static extern int ToUnixAddressFamily (Int32 value, out UnixAddressFamily rval);
+
+               public static bool TryToUnixAddressFamily (Int32 value, out UnixAddressFamily rval)
+               {
+                       return ToUnixAddressFamily (value, out rval) == 0;
+               }
+
+               public static UnixAddressFamily ToUnixAddressFamily (Int32 value)
+               {
+                       UnixAddressFamily rval;
+                       if (ToUnixAddressFamily (value, out rval) == -1)
+                               ThrowArgumentException (value);
+                       return rval;
+               }
+
+               [DllImport (LIB, EntryPoint="Mono_Posix_FromUnixSocketFlags")]
+               private static extern int FromUnixSocketFlags (UnixSocketFlags value, out Int32 rval);
+
+               public static bool TryFromUnixSocketFlags (UnixSocketFlags value, out Int32 rval)
+               {
+                       return FromUnixSocketFlags (value, out rval) == 0;
+               }
+
+               public static Int32 FromUnixSocketFlags (UnixSocketFlags value)
+               {
+                       Int32 rval;
+                       if (FromUnixSocketFlags (value, out rval) == -1)
+                               ThrowArgumentException (value);
+                       return rval;
+               }
+
+               [DllImport (LIB, EntryPoint="Mono_Posix_ToUnixSocketFlags")]
+               private static extern int ToUnixSocketFlags (Int32 value, out UnixSocketFlags rval);
+
+               public static bool TryToUnixSocketFlags (Int32 value, out UnixSocketFlags rval)
+               {
+                       return ToUnixSocketFlags (value, out rval) == 0;
+               }
+
+               public static UnixSocketFlags ToUnixSocketFlags (Int32 value)
+               {
+                       UnixSocketFlags rval;
+                       if (ToUnixSocketFlags (value, out rval) == -1)
+                               ThrowArgumentException (value);
+                       return rval;
+               }
+
+               [DllImport (LIB, EntryPoint="Mono_Posix_FromUnixSocketOptionName")]
+               private static extern int FromUnixSocketOptionName (UnixSocketOptionName value, out Int32 rval);
+
+               public static bool TryFromUnixSocketOptionName (UnixSocketOptionName value, out Int32 rval)
+               {
+                       return FromUnixSocketOptionName (value, out rval) == 0;
+               }
+
+               public static Int32 FromUnixSocketOptionName (UnixSocketOptionName value)
+               {
+                       Int32 rval;
+                       if (FromUnixSocketOptionName (value, out rval) == -1)
+                               ThrowArgumentException (value);
+                       return rval;
+               }
+
+               [DllImport (LIB, EntryPoint="Mono_Posix_ToUnixSocketOptionName")]
+               private static extern int ToUnixSocketOptionName (Int32 value, out UnixSocketOptionName rval);
+
+               public static bool TryToUnixSocketOptionName (Int32 value, out UnixSocketOptionName rval)
+               {
+                       return ToUnixSocketOptionName (value, out rval) == 0;
+               }
+
+               public static UnixSocketOptionName ToUnixSocketOptionName (Int32 value)
+               {
+                       UnixSocketOptionName rval;
+                       if (ToUnixSocketOptionName (value, out rval) == -1)
+                               ThrowArgumentException (value);
+                       return rval;
+               }
+
+               [DllImport (LIB, EntryPoint="Mono_Posix_FromUnixSocketProtocol")]
+               private static extern int FromUnixSocketProtocol (UnixSocketProtocol value, out Int32 rval);
+
+               public static bool TryFromUnixSocketProtocol (UnixSocketProtocol value, out Int32 rval)
+               {
+                       return FromUnixSocketProtocol (value, out rval) == 0;
+               }
+
+               public static Int32 FromUnixSocketProtocol (UnixSocketProtocol value)
+               {
+                       Int32 rval;
+                       if (FromUnixSocketProtocol (value, out rval) == -1)
+                               ThrowArgumentException (value);
+                       return rval;
+               }
+
+               [DllImport (LIB, EntryPoint="Mono_Posix_ToUnixSocketProtocol")]
+               private static extern int ToUnixSocketProtocol (Int32 value, out UnixSocketProtocol rval);
+
+               public static bool TryToUnixSocketProtocol (Int32 value, out UnixSocketProtocol rval)
+               {
+                       return ToUnixSocketProtocol (value, out rval) == 0;
+               }
+
+               public static UnixSocketProtocol ToUnixSocketProtocol (Int32 value)
+               {
+                       UnixSocketProtocol rval;
+                       if (ToUnixSocketProtocol (value, out rval) == -1)
+                               ThrowArgumentException (value);
+                       return rval;
+               }
+
+               [DllImport (LIB, EntryPoint="Mono_Posix_FromUnixSocketType")]
+               private static extern int FromUnixSocketType (UnixSocketType value, out Int32 rval);
+
+               public static bool TryFromUnixSocketType (UnixSocketType value, out Int32 rval)
+               {
+                       return FromUnixSocketType (value, out rval) == 0;
+               }
+
+               public static Int32 FromUnixSocketType (UnixSocketType value)
+               {
+                       Int32 rval;
+                       if (FromUnixSocketType (value, out rval) == -1)
+                               ThrowArgumentException (value);
+                       return rval;
+               }
+
+               [DllImport (LIB, EntryPoint="Mono_Posix_ToUnixSocketType")]
+               private static extern int ToUnixSocketType (Int32 value, out UnixSocketType rval);
+
+               public static bool TryToUnixSocketType (Int32 value, out UnixSocketType rval)
+               {
+                       return ToUnixSocketType (value, out rval) == 0;
+               }
+
+               public static UnixSocketType ToUnixSocketType (Int32 value)
+               {
+                       UnixSocketType rval;
+                       if (ToUnixSocketType (value, out rval) == -1)
+                               ThrowArgumentException (value);
+                       return rval;
+               }
+
                [DllImport (LIB, EntryPoint="Mono_Posix_FromUtimbuf")]
                private static extern int FromUtimbuf (ref Utimbuf source, IntPtr destination);
 
index c4ff89c0573826bf5b1b77b8f98053f071e0b0d8..8b1246e617eb839c15ca494ea28e54d4566ebeb8 100644 (file)
@@ -727,6 +727,186 @@ namespace Mono.Unix.Native {
                MREMAP_MAYMOVE = 0x1,
        }
 
+       [Map]
+       [CLSCompliant (false)]
+       public enum UnixSocketType : int {
+               SOCK_STREAM    =  1, // Byte-stream socket
+               SOCK_DGRAM     =  2, // Datagram socket
+               SOCK_RAW       =  3, // Raw protocol interface (linux specific)
+               SOCK_RDM       =  4, // Reliably-delivered messages (linux specific)
+               SOCK_SEQPACKET =  5, // Sequenced-packet socket
+               SOCK_DCCP      =  6, // Datagram Congestion Control Protocol (linux specific)
+               SOCK_PACKET    = 10, // Linux specific
+       }
+
+       [Map][Flags]
+       [CLSCompliant (false)]
+       public enum UnixSocketFlags : int {
+               SOCK_CLOEXEC  = 0x80000, /* Atomically set close-on-exec flag for the new descriptor(s). */
+               SOCK_NONBLOCK = 0x00800, /* Atomically mark descriptor(s) as non-blocking. */
+       }
+
+       [Map]
+       [CLSCompliant (false)]
+       public enum UnixSocketProtocol : int {
+               IPPROTO_ICMP    =    1, /* Internet Control Message Protocol */
+               IPPROTO_IGMP    =    2, /* Internet Group Management Protocol */
+               IPPROTO_IPIP    =    4, /* IPIP tunnels (older KA9Q tunnels use 94) */
+               IPPROTO_TCP     =    6, /* Transmission Control Protocol */
+               IPPROTO_EGP     =    8, /* Exterior Gateway Protocol */
+               IPPROTO_PUP     =   12, /* PUP protocol */
+               IPPROTO_UDP     =   17, /* User Datagram Protocol */
+               IPPROTO_IDP     =   22, /* XNS IDP protocol */
+               IPPROTO_TP      =   29, /* SO Transport Protocol Class 4 */
+               IPPROTO_DCCP    =   33, /* Datagram Congestion Control Protocol */
+               IPPROTO_IPV6    =   41, /* IPv6-in-IPv4 tunnelling */
+               IPPROTO_RSVP    =   46, /* RSVP Protocol */
+               IPPROTO_GRE     =   47, /* Cisco GRE tunnels (rfc 1701,1702) */
+               IPPROTO_ESP     =   50, /* Encapsulation Security Payload protocol */
+               IPPROTO_AH      =   51, /* Authentication Header protocol */
+               IPPROTO_MTP     =   92, /* Multicast Transport Protocol */
+               IPPROTO_BEETPH  =   94, /* IP option pseudo header for BEET */
+               IPPROTO_ENCAP   =   98, /* Encapsulation Header */
+               IPPROTO_PIM     =  103, /* Protocol Independent Multicast */
+               IPPROTO_COMP    =  108, /* Compression Header Protocol */
+               IPPROTO_SCTP    =  132, /* Stream Control Transport Protocol */
+               IPPROTO_UDPLITE =  136, /* UDP-Lite (RFC 3828) */
+               IPPROTO_RAW     =  255, /* Raw IP packets */
+
+               // Number used by linux (0) has a special meaning for socket()
+               IPPROTO_IP      = 1024, /* Dummy protocol for TCP */
+               // Number used by linux (1) clashes with IPPROTO_ICMP
+               SOL_SOCKET      = 2048, /* For setsockopt() / getsockopt(): Options to be accessed at socket level, not protocol level. */
+       }
+
+       [Map]
+       [CLSCompliant (false)]
+       public enum UnixAddressFamily : int {
+               AF_UNSPEC     =  0,  /* Unspecified. */
+               AF_UNIX       =  1,  /* Local to host (pipes and file-domain). */
+               AF_INET       =  2,  /* IP protocol family. */
+               AF_AX25       =  3,  /* Amateur Radio AX.25. */
+               AF_IPX        =  4,  /* Novell Internet Protocol. */
+               AF_APPLETALK  =  5,  /* Appletalk DDP. */
+               AF_NETROM     =  6,  /* Amateur radio NetROM. */
+               AF_BRIDGE     =  7,  /* Multiprotocol bridge. */
+               AF_ATMPVC     =  8,  /* ATM PVCs. */
+               AF_X25        =  9,  /* Reserved for X.25 project. */
+               AF_INET6      = 10,  /* IP version 6. */
+               AF_ROSE       = 11,  /* Amateur Radio X.25 PLP. */
+               AF_DECnet     = 12,  /* Reserved for DECnet project. */
+               AF_NETBEUI    = 13,  /* Reserved for 802.2LLC project. */
+               AF_SECURITY   = 14,  /* Security callback pseudo AF. */
+               AF_KEY        = 15,  /* PF_KEY key management API. */
+               AF_NETLINK    = 16,
+               AF_PACKET     = 17,  /* Packet family. */
+               AF_ASH        = 18,  /* Ash. */
+               AF_ECONET     = 19,  /* Acorn Econet. */
+               AF_ATMSVC     = 20,  /* ATM SVCs. */
+               AF_RDS        = 21,  /* RDS sockets. */
+               AF_SNA        = 22,  /* Linux SNA Project */
+               AF_IRDA       = 23,  /* IRDA sockets. */
+               AF_PPPOX      = 24,  /* PPPoX sockets. */
+               AF_WANPIPE    = 25,  /* Wanpipe API sockets. */
+               AF_LLC        = 26,  /* Linux LLC. */
+               AF_CAN        = 29,  /* Controller Area Network. */
+               AF_TIPC       = 30,  /* TIPC sockets. */
+               AF_BLUETOOTH  = 31,  /* Bluetooth sockets. */
+               AF_IUCV       = 32,  /* IUCV sockets. */
+               AF_RXRPC      = 33,  /* RxRPC sockets. */
+               AF_ISDN       = 34,  /* mISDN sockets. */
+               AF_PHONET     = 35,  /* Phonet sockets. */
+               AF_IEEE802154 = 36,  /* IEEE 802.15.4 sockets. */
+               AF_CAIF       = 37,  /* CAIF sockets. */
+               AF_ALG        = 38,  /* Algorithm sockets. */
+               AF_NFC        = 39,  /* NFC sockets. */
+               AF_VSOCK      = 40,  /* vSockets. */
+       }
+
+       [Map]
+       [CLSCompliant (false)]
+       public enum UnixSocketOptionName : int {
+               SO_DEBUG                         =  1,
+               SO_REUSEADDR                     =  2,
+               SO_TYPE                          =  3,
+               SO_ERROR                         =  4,
+               SO_DONTROUTE                     =  5,
+               SO_BROADCAST                     =  6,
+               SO_SNDBUF                        =  7,
+               SO_RCVBUF                        =  8,
+               SO_SNDBUFFORCE                   = 32,
+               SO_RCVBUFFORCE                   = 33,
+               SO_KEEPALIVE                     =  9,
+               SO_OOBINLINE                     = 10,
+               SO_NO_CHECK                      = 11,
+               SO_PRIORITY                      = 12,
+               SO_LINGER                        = 13,
+               SO_BSDCOMPAT                     = 14,
+               SO_REUSEPORT                     = 15,
+               SO_PASSCRED                      = 16,
+               SO_PEERCRED                      = 17,
+               SO_RCVLOWAT                      = 18,
+               SO_SNDLOWAT                      = 19,
+               SO_RCVTIMEO                      = 20,
+               SO_SNDTIMEO                      = 21,
+               SO_SECURITY_AUTHENTICATION       = 22,
+               SO_SECURITY_ENCRYPTION_TRANSPORT = 23,
+               SO_SECURITY_ENCRYPTION_NETWORK   = 24,
+               SO_BINDTODEVICE                  = 25,
+               SO_ATTACH_FILTER                 = 26,
+               SO_DETACH_FILTER                 = 27,
+               SO_PEERNAME                      = 28,
+               SO_TIMESTAMP                     = 29,
+               SO_ACCEPTCONN                    = 30,
+               SO_PEERSEC                       = 31,
+               SO_PASSSEC                       = 34,
+               SO_TIMESTAMPNS                   = 35,
+               SO_MARK                          = 36,
+               SO_TIMESTAMPING                  = 37,
+               SO_PROTOCOL                      = 38,
+               SO_DOMAIN                        = 39,
+               SO_RXQ_OVFL                      = 40,
+               SO_WIFI_STATUS                   = 41,
+               SO_PEEK_OFF                      = 42,
+               SO_NOFCS                         = 43,
+               SO_LOCK_FILTER                   = 44,
+               SO_SELECT_ERR_QUEUE              = 45,
+               SO_BUSY_POLL                     = 46,
+               SO_MAX_PACING_RATE               = 47,
+       }
+
+       [Flags][Map]
+       [CLSCompliant (false)]
+       public enum MessageFlags : int {
+               MSG_OOB          =       0x01, /* Process out-of-band data. */
+               MSG_PEEK         =       0x02, /* Peek at incoming messages. */
+               MSG_DONTROUTE    =       0x04, /* Don't use local routing. */
+               MSG_CTRUNC       =       0x08, /* Control data lost before delivery. */
+               MSG_PROXY        =       0x10, /* Supply or ask second address. */
+               MSG_TRUNC        =       0x20,
+               MSG_DONTWAIT     =       0x40, /* Nonblocking IO. */
+               MSG_EOR          =       0x80, /* End of record. */
+               MSG_WAITALL      =      0x100, /* Wait for a full request. */
+               MSG_FIN          =      0x200,
+               MSG_SYN          =      0x400,
+               MSG_CONFIRM      =      0x800, /* Confirm path validity. */
+               MSG_RST          =     0x1000,
+               MSG_ERRQUEUE     =     0x2000, /* Fetch message from error queue. */
+               MSG_NOSIGNAL     =     0x4000, /* Do not generate SIGPIPE. */
+               MSG_MORE         =     0x8000, /* Sender will send more. */
+               MSG_WAITFORONE   =    0x10000, /* Wait for at least one packet to return.*/
+               MSG_FASTOPEN     = 0x20000000, /* Send data in TCP SYN. */
+               MSG_CMSG_CLOEXEC = 0x40000000, /* Set close_on_exit for file descriptor received through SCM_RIGHTS. */
+       }
+
+       [Map]
+       [CLSCompliant (false)]
+       public enum ShutdownOption : int {
+               SHUT_RD   = 0x01,   /* No more receptions. */
+               SHUT_WR   = 0x02,   /* No more transmissions. */
+               SHUT_RDWR = 0x03,   /* No more receptions or transmissions. */
+       }
+
        #endregion
 
        #region Structures
@@ -1228,6 +1408,14 @@ namespace Mono.Unix.Native {
                [FieldOffset (4)]
                public ulong u64;
        }
+
+       [Map ("struct linger")]
+       [CLSCompliant (false)]
+       public struct Linger {
+               public int l_onoff;
+               public int l_linger;
+       }
+
        #endregion
 
        #region Classes
@@ -4356,6 +4544,243 @@ namespace Mono.Unix.Native {
                        return sys_pwritev (fd, iov, iov.Length, offset);
                }
                #endregion
+
+               #region <socket.h> Declarations
+               //
+               // <socket.h>
+               //
+
+               // socket(2)
+               //    int socket(int domain, int type, int protocol);
+               [DllImport (LIBC, SetLastError=true, 
+                               EntryPoint="socket")]
+               static extern int sys_socket (int domain, int type, int protocol);
+
+               public static int socket (UnixAddressFamily domain, UnixSocketType type, UnixSocketFlags flags, UnixSocketProtocol protocol)
+               {
+                       var _domain = NativeConvert.FromUnixAddressFamily (domain);
+                       var _type = NativeConvert.FromUnixSocketType (type);
+                       var _flags = NativeConvert.FromUnixSocketFlags (flags);
+                       // protocol == 0 is a special case (uses default protocol)
+                       var _protocol = protocol == 0 ? 0 : NativeConvert.FromUnixSocketProtocol (protocol);
+
+                       return sys_socket (_domain, _type | _flags, _protocol);
+               }
+
+               public static int socket (UnixAddressFamily domain, UnixSocketType type, UnixSocketProtocol protocol)
+               {
+                       return socket (domain, type, 0, protocol);
+               }
+
+               // socketpair(2)
+               //    int socketpair(int domain, int type, int protocol, int sv[2]);
+               [DllImport (MPH, SetLastError=true, 
+                               EntryPoint="Mono_Posix_Syscall_socketpair")]
+               static extern int sys_socketpair (int domain, int type, int protocol, out int socket1, out int socket2);
+
+               public static int socketpair (UnixAddressFamily domain, UnixSocketType type, UnixSocketFlags flags, UnixSocketProtocol protocol, out int socket1, out int socket2)
+               {
+                       var _domain = NativeConvert.FromUnixAddressFamily (domain);
+                       var _type = NativeConvert.FromUnixSocketType (type);
+                       var _flags = NativeConvert.FromUnixSocketFlags (flags);
+                       // protocol == 0 is a special case (uses default protocol)
+                       var _protocol = protocol == 0 ? 0 : NativeConvert.FromUnixSocketProtocol (protocol);
+
+                       return sys_socketpair (_domain, _type | _flags, _protocol, out socket1, out socket2);
+               }
+
+               public static int socketpair (UnixAddressFamily domain, UnixSocketType type, UnixSocketProtocol protocol, out int socket1, out int socket2)
+               {
+                       return socketpair (domain, type, 0, protocol, out socket1, out socket2);
+               }
+
+               // sockatmark(2)
+               //    int sockatmark(int sockfd);
+               [DllImport (LIBC, SetLastError=true)]
+               public static extern int sockatmark (int socket);
+
+               // listen(2)
+               //    int listen(int sockfd, int backlog);
+               [DllImport (LIBC, SetLastError=true)]
+               public static extern int listen (int socket, int backlog);
+
+               // getsockopt(2)
+               //    int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);
+               [DllImport (MPH, SetLastError=true, 
+                               EntryPoint="Mono_Posix_Syscall_getsockopt")]
+               static extern unsafe int sys_getsockopt (int socket, int level, int option_name, void *option_value, ref long option_len);
+
+               [DllImport (MPH, SetLastError=true, 
+                               EntryPoint="Mono_Posix_Syscall_getsockopt_timeval")]
+               static extern unsafe int sys_getsockopt_timeval (int socket, int level, int option_name, out Timeval option_value);
+
+               [DllImport (MPH, SetLastError=true, 
+                               EntryPoint="Mono_Posix_Syscall_getsockopt_linger")]
+               static extern unsafe int sys_getsockopt_linger (int socket, int level, int option_name, out Linger option_value);
+
+               public static unsafe int getsockopt (int socket, UnixSocketProtocol level, UnixSocketOptionName option_name, void *option_value, ref long option_len)
+               {
+                       var _level = NativeConvert.FromUnixSocketProtocol (level);
+                       var _option_name = NativeConvert.FromUnixSocketOptionName (option_name);
+                       return sys_getsockopt (socket, _level, _option_name, option_value, ref option_len);
+               }
+
+               public static unsafe int getsockopt (int socket, UnixSocketProtocol level, UnixSocketOptionName option_name, IntPtr option_value, ref long option_len)
+               {
+                       return getsockopt (socket, level, option_name, (void*) option_value, ref option_len);
+               }
+
+               public static unsafe int getsockopt (int socket, UnixSocketProtocol level, UnixSocketOptionName option_name, out int option_value)
+               {
+                       int value;
+                       long size = sizeof (int);
+                       int ret = getsockopt (socket, level, option_name, &value, ref size);
+                       if (ret != -1 && size != sizeof (int)) {
+                               SetLastError (Errno.EINVAL);
+                               ret = -1;
+                       }
+                       option_value = value;
+                       return ret;
+               }
+
+               public static unsafe int getsockopt (int socket, UnixSocketProtocol level, UnixSocketOptionName option_name, byte[] option_value, ref long option_len)
+               {
+                       if (option_len > (option_value == null ? 0 : option_value.Length))
+                               throw new ArgumentOutOfRangeException ("option_len", "option_len > (option_value == null ? 0 : option_value.Length)");
+                       fixed (byte* ptr = option_value)
+                               return getsockopt (socket, level, option_name, ptr, ref option_len);
+               }
+
+               public static unsafe int getsockopt (int socket, UnixSocketProtocol level, UnixSocketOptionName option_name, out Timeval option_value)
+               {
+                       var _level = NativeConvert.FromUnixSocketProtocol (level);
+                       var _option_name = NativeConvert.FromUnixSocketOptionName (option_name);
+                       return sys_getsockopt_timeval (socket, _level, _option_name, out option_value);
+               }
+
+               public static unsafe int getsockopt (int socket, UnixSocketProtocol level, UnixSocketOptionName option_name, out Linger option_value)
+               {
+                       var _level = NativeConvert.FromUnixSocketProtocol (level);
+                       var _option_name = NativeConvert.FromUnixSocketOptionName (option_name);
+                       return sys_getsockopt_linger (socket, _level, _option_name, out option_value);
+               }
+
+               // setsockopt(2)
+               //    int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);
+               [DllImport (MPH, SetLastError=true, 
+                               EntryPoint="Mono_Posix_Syscall_setsockopt")]
+               static extern unsafe int sys_setsockopt (int socket, int level, int option_name, void *option_value, long option_len);
+
+               [DllImport (MPH, SetLastError=true, 
+                               EntryPoint="Mono_Posix_Syscall_setsockopt_timeval")]
+               static extern unsafe int sys_setsockopt_timeval (int socket, int level, int option_name, ref Timeval option_value);
+
+               [DllImport (MPH, SetLastError=true, 
+                               EntryPoint="Mono_Posix_Syscall_setsockopt_linger")]
+               static extern unsafe int sys_setsockopt_linger (int socket, int level, int option_name, ref Linger option_value);
+
+               public static unsafe int setsockopt (int socket, UnixSocketProtocol level, UnixSocketOptionName option_name, void *option_value, long option_len)
+               {
+                       var _level = NativeConvert.FromUnixSocketProtocol (level);
+                       var _option_name = NativeConvert.FromUnixSocketOptionName (option_name);
+                       return sys_setsockopt (socket, _level, _option_name, option_value, option_len);
+               }
+
+               public static unsafe int setsockopt (int socket, UnixSocketProtocol level, UnixSocketOptionName option_name, IntPtr option_value, long option_len)
+               {
+                       return setsockopt (socket, level, option_name, (void*) option_value, option_len);
+               }
+
+               public static unsafe int setsockopt (int socket, UnixSocketProtocol level, UnixSocketOptionName option_name, int option_value)
+               {
+                       return setsockopt (socket, level, option_name, &option_value, sizeof (int));
+               }
+
+               public static unsafe int setsockopt (int socket, UnixSocketProtocol level, UnixSocketOptionName option_name, byte[] option_value, long option_len)
+               {
+                       if (option_len > (option_value == null ? 0 : option_value.Length))
+                               throw new ArgumentOutOfRangeException ("option_len", "option_len > (option_value == null ? 0 : option_value.Length)");
+                       fixed (byte* ptr = option_value)
+                               return setsockopt (socket, level, option_name, ptr, option_len);
+               }
+
+               public static unsafe int setsockopt (int socket, UnixSocketProtocol level, UnixSocketOptionName option_name, Timeval option_value)
+               {
+                       var _level = NativeConvert.FromUnixSocketProtocol (level);
+                       var _option_name = NativeConvert.FromUnixSocketOptionName (option_name);
+                       return sys_setsockopt_timeval (socket, _level, _option_name, ref option_value);
+               }
+
+               public static unsafe int setsockopt (int socket, UnixSocketProtocol level, UnixSocketOptionName option_name, Linger option_value)
+               {
+                       var _level = NativeConvert.FromUnixSocketProtocol (level);
+                       var _option_name = NativeConvert.FromUnixSocketOptionName (option_name);
+                       return sys_setsockopt_linger (socket, _level, _option_name, ref option_value);
+               }
+
+               // shutdown(2)
+               //    int shutdown(int sockfd, int how);
+               [DllImport (LIBC, SetLastError=true, 
+                               EntryPoint="shutdown")]
+               static extern int sys_shutdown (int socket, int how);
+
+               public static int shutdown (int socket, ShutdownOption how)
+               {
+                       var _how = NativeConvert.FromShutdownOption (how);
+                       return sys_shutdown (socket, _how);
+               }
+
+               // recv(2)
+               //    ssize_t recv(int sockfd, void *buf, size_t len, int flags);
+               [DllImport (MPH, SetLastError=true, 
+                               EntryPoint="Mono_Posix_Syscall_recv")]
+               static extern unsafe long sys_recv (int socket, void *buffer, ulong length, int flags);
+
+               public static unsafe long recv (int socket, void *buffer, ulong length, MessageFlags flags)
+               {
+                       int _flags = NativeConvert.FromMessageFlags (flags);
+                       return sys_recv (socket, buffer, length, _flags);
+               }
+
+               public static unsafe long recv (int socket, IntPtr buffer, ulong length, MessageFlags flags)
+               {
+                       return recv (socket, (void*) buffer, length, flags);
+               }
+
+               public static unsafe long recv (int socket, byte[] buffer, ulong length, MessageFlags flags)
+               {
+                       if (length > (ulong) (buffer == null ? 0 : buffer.LongLength))
+                               throw new ArgumentOutOfRangeException ("length", "length > (buffer == null ? 0 : buffer.LongLength)");
+                       fixed (byte* ptr = buffer)
+                               return recv (socket, ptr, length, flags);
+               }
+
+               // send(2)
+               //    ssize_t send(int sockfd, const void *buf, size_t len, int flags);
+               [DllImport (MPH, SetLastError=true, 
+                               EntryPoint="Mono_Posix_Syscall_send")]
+               static extern unsafe long sys_send (int socket, void *message, ulong length, int flags);
+
+               public static unsafe long send (int socket, void *message, ulong length, MessageFlags flags)
+               {
+                       int _flags = NativeConvert.FromMessageFlags (flags);
+                       return sys_send (socket, message, length, _flags);
+               }
+
+               public static unsafe long send (int socket, IntPtr message, ulong length, MessageFlags flags)
+               {
+                       return send (socket, (void*) message, length, flags);
+               }
+
+               public static unsafe long send (int socket, byte[] message, ulong length, MessageFlags flags)
+               {
+                       if (length > (ulong) (message == null ? 0 : message.LongLength))
+                               throw new ArgumentOutOfRangeException ("length", "length > (message == null ? 0 : message.LongLength)");
+                       fixed (byte* ptr = message)
+                               return send (socket, ptr, length, flags);
+               }
+
+               #endregion
        }
 
        #endregion
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);
                }
diff --git a/mcs/class/Mono.Posix/Test/Mono.Unix.Native/SocketTest.cs b/mcs/class/Mono.Posix/Test/Mono.Unix.Native/SocketTest.cs
new file mode 100644 (file)
index 0000000..36a8d23
--- /dev/null
@@ -0,0 +1,217 @@
+//
+// socket-related test cases
+//
+// Authors:
+//  Steffen Kiess (s-kiess@web.de)
+//
+// Copyright (C) 2015 Steffen Kiess
+//
+
+using System;
+using System.IO;
+using System.Net;
+using System.Net.Sockets;
+using System.Runtime.InteropServices;
+
+using Mono.Unix;
+using Mono.Unix.Native;
+
+using NUnit.Framework;
+
+namespace MonoTests.Mono.Unix.Native
+{
+       [TestFixture, Category ("NotDotNet")]
+       public class SocketTest {
+
+               string TempFolder;
+
+               [SetUp]
+               public void SetUp ()
+               {
+                       TempFolder = Path.Combine (Path.GetTempPath (), this.GetType ().FullName);
+
+                       if (Directory.Exists (TempFolder))
+                               Directory.Delete (TempFolder, true);
+
+                       Directory.CreateDirectory (TempFolder);
+               }
+
+               [TearDown]
+               public void TearDown()
+               {
+                       if (Directory.Exists (TempFolder))
+                               Directory.Delete (TempFolder, true);
+               }
+
+               // Set a timeout on all sockets to make sure that if a test fails it
+               // won't cause the program to hang
+               void SetTimeout (int socket)
+               {
+                       var timeout = new Timeval {
+                               tv_sec = 0,
+                               tv_usec = 500000,
+                       };
+                       if (Syscall.setsockopt (socket, UnixSocketProtocol.SOL_SOCKET, UnixSocketOptionName.SO_RCVTIMEO, timeout) < 0 ||
+                                       Syscall.setsockopt (socket, UnixSocketProtocol.SOL_SOCKET, UnixSocketOptionName.SO_SNDTIMEO, timeout) < 0)
+                               UnixMarshal.ThrowExceptionForLastError ();
+               }
+
+               void WithSocketPair (Action<int, int> f)
+               {
+                       int socket1, socket2;
+                       if (Syscall.socketpair (UnixAddressFamily.AF_UNIX, UnixSocketType.SOCK_STREAM, 0, out socket1, out socket2) < 0)
+                               UnixMarshal.ThrowExceptionForLastError ();
+                       try {
+                               SetTimeout (socket1);
+                               SetTimeout (socket2);
+
+                               f (socket1, socket2);
+                       } finally {
+                               int r0 = Syscall.close (socket1);
+                               int r1 = Syscall.close (socket2);
+                               if (r0 < 0 || r1 < 0)
+                                       UnixMarshal.ThrowExceptionForLastError ();
+                       }
+               }
+
+               void WithSockets (UnixAddressFamily af, UnixSocketType type, UnixSocketProtocol protocol, Action<int, int> f)
+               {
+                       int so1, so2;
+                       if ((so1 = Syscall.socket (af, type, protocol)) < 0)
+                               UnixMarshal.ThrowExceptionForLastError ();
+                       try {
+                               if ((so2 = Syscall.socket (af, type, protocol)) < 0)
+                                       UnixMarshal.ThrowExceptionForLastError ();
+                               try {
+                                       SetTimeout (so1);
+                                       SetTimeout (so2);
+
+                                       f (so1, so2);
+                               } finally {
+                                       if (Syscall.close (so2) < 0)
+                                               UnixMarshal.ThrowExceptionForLastError ();
+                               }
+                       } finally {
+                               if (Syscall.close (so1) < 0)
+                                       UnixMarshal.ThrowExceptionForLastError ();
+                       }
+               }
+
+               [Test]
+               public void Socket ()
+               {
+                       int socket;
+                       if ((socket = Syscall.socket (UnixAddressFamily.AF_UNIX, UnixSocketType.SOCK_STREAM, 0)) < 0)
+                               UnixMarshal.ThrowExceptionForLastError ();
+
+                       if (Syscall.close (socket) < 0)
+                               UnixMarshal.ThrowExceptionForLastError ();
+               }
+
+               [Test]
+               public void SocketPair ()
+               {
+                       int socket1, socket2;
+                       if (Syscall.socketpair (UnixAddressFamily.AF_UNIX, UnixSocketType.SOCK_STREAM, 0, out socket1, out socket2) < 0)
+                               UnixMarshal.ThrowExceptionForLastError ();
+
+                       int r0 = Syscall.close (socket1);
+                       int r1 = Syscall.close (socket2);
+                       if (r0 < 0 || r1 < 0)
+                               UnixMarshal.ThrowExceptionForLastError ();
+               }
+
+               [Test]
+               public void SendRecv ()
+               {
+                       WithSocketPair ((so1, so2) => {
+                               long ret;
+                               var buffer1 = new byte[] { 42, 43, 44 };
+                               ret = Syscall.send (so1, buffer1, (ulong) buffer1.Length, 0);
+                               if (ret < 0)
+                                       UnixMarshal.ThrowExceptionForLastError ();
+
+                               var buffer2 = new byte[1024];
+                               ret = Syscall.recv (so2, buffer2, (ulong) buffer2.Length, 0);
+                               if (ret < 0)
+                                       UnixMarshal.ThrowExceptionForLastError ();
+
+                               Assert.AreEqual (buffer1.Length, ret);
+                               for (int i = 0; i < buffer1.Length; i++)
+                                       Assert.AreEqual (buffer1[i], buffer2[i]);
+                       });
+               }
+
+               [Test]
+               public void SockOpt ()
+               {
+                       WithSockets (UnixAddressFamily.AF_UNIX, UnixSocketType.SOCK_STREAM, 0, (so1, so2) => {
+                               // Set SO_REUSEADDR to 1
+                               if (Syscall.setsockopt (so1, UnixSocketProtocol.SOL_SOCKET, UnixSocketOptionName.SO_REUSEADDR, 1) < 0)
+                                       UnixMarshal.ThrowExceptionForLastError ();
+
+                               // Get and check SO_REUSEADDR
+                               int value;
+                               if (Syscall.getsockopt (so1, UnixSocketProtocol.SOL_SOCKET, UnixSocketOptionName.SO_REUSEADDR, out value) < 0)
+                                       UnixMarshal.ThrowExceptionForLastError ();
+                               Assert.AreEqual (value, 1);
+
+                               // Set SO_REUSEADDR to 0
+                               if (Syscall.setsockopt (so1, UnixSocketProtocol.SOL_SOCKET, UnixSocketOptionName.SO_REUSEADDR, new byte[10], 4) < 0)
+                                       UnixMarshal.ThrowExceptionForLastError ();
+
+                               // Get and check SO_REUSEADDR
+                               var buffer = new byte[15];
+                               long size = 12;
+                               if (Syscall.getsockopt (so1, UnixSocketProtocol.SOL_SOCKET, UnixSocketOptionName.SO_REUSEADDR, buffer, ref size) < 0)
+                                       UnixMarshal.ThrowExceptionForLastError ();
+                               Assert.AreEqual (size, 4);
+                               for (int i = 0; i < size; i++)
+                                       Assert.AreEqual (buffer[i], 0);
+                       });
+               }
+
+               [Test]
+               public void SockOptLinger ()
+               {
+                       WithSockets (UnixAddressFamily.AF_INET, UnixSocketType.SOCK_STREAM, UnixSocketProtocol.IPPROTO_TCP, (so1, so2) => {
+                               Linger linger = new Linger {
+                                       l_onoff = 1,
+                                       l_linger = 42,
+                               };
+                               // Set SO_LINGER
+                               if (Syscall.setsockopt (so1, UnixSocketProtocol.SOL_SOCKET, UnixSocketOptionName.SO_LINGER, linger) < 0)
+                                       UnixMarshal.ThrowExceptionForLastError ();
+
+                               // Get and check SO_LINGER
+                               Linger value;
+                               if (Syscall.getsockopt (so1, UnixSocketProtocol.SOL_SOCKET, UnixSocketOptionName.SO_LINGER, out value) < 0)
+                                       UnixMarshal.ThrowExceptionForLastError ();
+                               Assert.AreEqual (linger, value);
+                       });
+               }
+
+               [Test]
+               public void Shutdown ()
+               {
+                       WithSocketPair ((so1, so2) => {
+                               if (Syscall.shutdown (so1, ShutdownOption.SHUT_WR) < 0)
+                                       UnixMarshal.ThrowExceptionForLastError ();
+
+                               var buffer2 = new byte[1024];
+                               long ret = Syscall.recv (so2, buffer2, (ulong) buffer2.Length, 0);
+                               if (ret < 0)
+                                       UnixMarshal.ThrowExceptionForLastError ();
+
+                               Assert.AreEqual (ret, 0);
+                       });
+               }
+       }
+}
+
+// vim: noexpandtab
+// Local Variables: 
+// tab-width: 4
+// c-basic-offset: 4
+// indent-tabs-mode: t
+// End: 
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..8d4c63c6564678dbb0754d4a4be4e381eca79321 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]
@@ -115,6 +118,7 @@ namespace MonoTests.Mono.Unix {
                }
 
                [Test]
+               [Category ("AndroidNotWorking")] // Crashes (silently) the runtime in similar fashion to real-time signals
                public void TestSignumProperty ()
                {
                        UnixSignal signal1 = new UnixSignal (Signum.SIGSEGV);
@@ -125,6 +129,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 +144,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 +154,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 +166,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 +176,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 +192,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 +219,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 +393,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
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 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 617cc35d89b3fd298a68c1092e63ded999f03d17..e0b5dab202b7e0cbabc2ea9ac88557a0472f8562 100644 (file)
@@ -13,14 +13,6 @@ CLEAN_FILES += $(STRING_MESSAGES)
 EXTRA_DISTFILES = \
        src/ComponentModel/Strings.resx
        
-VALID_PROFILE := $(filter net_4_5 monotouch monotouch_watch monodroid xammac xammac_net_4_5 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 3e7f235678609c688d853c781cea8b628d9195bb..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;
@@ -411,5 +410,4 @@ namespace MonoTests.System.IO.MemoryMappedFiles {
        }
 }
 
-#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 c3524281a3f3cf21bf5834eae295f1c51533e3d1..0a4369fdd4e4d01fb980ac14f247360a54d18f1d 100644 (file)
@@ -182,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/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
index 89d524cd1b9d50876d7b45209a97d904371e5bb3..e5681ff8ff5bf166c97dd42c23e421b8963c6445 100644 (file)
@@ -1 +1 @@
-#include net_4_5_System.Core.dll.sources
+#include net_4_x_System.Core.dll.sources
index 0218fbe0e81f2c8e6d2b47b79e8158d1b300f4ff..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 xammac_net_4_5 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 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/monotouch_watch_System.Data.Services.Client.dll.sources b/mcs/class/System.Data.Services.Client/monotouch_watch_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
diff --git a/mcs/class/System.Data.Services.Client/xammac_net_4_5_System.Data.Services.Client.dll.sources b/mcs/class/System.Data.Services.Client/xammac_net_4_5_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 3ab96408521ffac2e391510a18199cdc1adc08eb..780efc5b59ee02cdc31852380b17617685a33080 100644 (file)
@@ -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/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
index 597245c0e81ec04b7fae28f07db60c8d491e8c7b..652c5631202c4c0583ffed3754dae61ac4e60c1d 100644 (file)
@@ -1 +1 @@
-#include net_4_5_System.Data.dll.sources
+#include net_4_x_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 634954bea182148ea86ff031774ae433aa2a4801..bb7ade20bbc02b3d0b697292a0d74fe2f85eeeae 100644 (file)
@@ -10,12 +10,4 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 EXTRA_DISTFILES =
 
-VALID_PROFILE := $(filter net_4_5 xammac_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 5ca9642627e6ee29a5fd0f3cc0723a5d220e168d..9bf7e1d5877a04ff18d63b6b9fe8002f11023ab6 100644 (file)
@@ -26,12 +26,4 @@ EXTRA_DISTFILES = \
        Test/Resources/test.pfx \
        Test/Resources/test2.pfx
 
-VALID_PROFILE := $(filter net_4_5 xammac_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 f7662a4ce000bbc49c563e178410f8abaf5795eb..5813d31276b6e8ed22d1ca84b29e7c572ff00250 100644 (file)
@@ -19,13 +19,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 EXTRA_DISTFILES = more_build_args
 
-VALID_PROFILE := $(filter monotouch monotouch_watch 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 eab4068fd9b267449a2a6ae400421af5ff16b862..71d92cbd728fe0fa0de8d44dc6b3af9054a37ba7 100644 (file)
@@ -19,13 +19,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 EXTRA_DISTFILES = more_build_args
 
-VALID_PROFILE := $(filter monotouch monotouch_watch 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 70749cc0163156d3694ebe4659b8dab4564212df..83def3c2ea594b55e99e703e640fbe41593f5a87 100644 (file)
@@ -19,13 +19,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 EXTRA_DISTFILES = more_build_args
 
-VALID_PROFILE := $(filter monotouch monotouch_watch 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 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 3a7d6ed0a40ab26e060c8bf3f48182fc2a171b9f..05b5fe62681f3f981b067777d1cb7a7f9f32a03b 100644 (file)
@@ -363,6 +363,10 @@ namespace System.Net.Http.Headers
                                first = false;
                        }
 
+                       // Return null for empty values list
+                       if (first)
+                               return null;
+
                        return sb.ToString ();
                }
 
@@ -496,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 ccf9a808c25b9e005b32d1d846c0efa98ef9f8ca..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,7 +275,18 @@ namespace System.Net.Http
                        // Add request headers
                        var headers = wr.Headers;
                        foreach (var header in request.Headers) {
-                               headers.AddValue (header.Key, HttpRequestHeaders.GetSingleHeaderString (header.Key, header.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 a6c69de2bb99e96640a181ab26b8ddef1712a130..ec049a932105ea973be9d262937694c89f83348e 100644 (file)
@@ -606,6 +606,62 @@ namespace MonoTests.System.Net.Http
                        }
                }
 
+               [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.Net.Http/monotouch_watch_System.Net.Http.dll.sources b/mcs/class/System.Net.Http/monotouch_watch_System.Net.Http.dll.sources
deleted file mode 100644 (file)
index 685ab03..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include monotouch_System.Net.Http.dll.sources
\ 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 cf89862c5563dd4af79f78af2d6a1ecacec0f094..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 monotouch_watch 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 595774c6183b8beec5351f97153da5eb541d1558..f616cad1f09f94dc43db9d12cfc0865c3f2789a5 100644 (file)
@@ -19,13 +19,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 EXTRA_DISTFILES = more_build_args
 
-VALID_PROFILE := $(filter monotouch monotouch_watch 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 a798e522401af5be32b7eb8044b34aa9b591f49e..9bc8b3e07acfffdbe63aa1a87eb025ca2030f4d3 100644 (file)
@@ -19,13 +19,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 EXTRA_DISTFILES = more_build_args
 
-VALID_PROFILE := $(filter monotouch monotouch_watch 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 c2dc76ce60d58ca4ebdc8dd90b97085bd32a4461..2752ff281271d47a255ecbeabcb04182531c64a7 100644 (file)
@@ -19,13 +19,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 EXTRA_DISTFILES = more_build_args
 
-VALID_PROFILE := $(filter monotouch monotouch_watch 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 2cfaa902373ab9d61c858a6c86ca99c4fd7c4d29..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 monotouch_watch 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 5d92774a6b4a61bae9da796f7d540afb2ae9b396..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 monotouch_watch 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 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/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
index 17c4f437aab4073bd9b97ac7197b17746eaa7c4a..5feabf388ccf8582d9abe59f5918ed1358682ae3 100644 (file)
@@ -1 +1 @@
-#include net_4_5_System.Runtime.Serialization.dll.sources
+#include net_4_x_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 a278ec14ae9eeba0df8df5f797fd09d7dbb30e91..8a4a46c755fef5a7a9e47fae4ad240d28f92853a 100644 (file)
@@ -26,8 +26,7 @@ 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 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 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 };
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/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
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 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 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 354d4c8b410809c434d8f2f7966383578f56c29d..36ea57b5b9fd7b6170cc447d46b2da4cc1f19b26 100644 (file)
@@ -461,8 +461,6 @@ namespace System.ServiceModel.MonoInternal
                        if (p == parameters)
                                return retval;
 
-                       if (p.Length != parameters.Length)
-                               throw new InvalidOperationException ();
                        Array.Copy (p, parameters, p.Length);
                        return retval;
                }
index deb325709e5eb9cb1235044bf952f85994b148c6..0cde2c9bdec8b0b276078978bc3ed79db1fe8434 100644 (file)
@@ -128,6 +128,7 @@ System.ServiceModel.Description/WsdlImporterTest.cs
 System.ServiceModel.Dispatcher/ActionFilterTest.cs
 System.ServiceModel.Dispatcher/Bug652331Test.cs
 System.ServiceModel.Dispatcher/Bug652331_2Test.cs
+System.ServiceModel.Dispatcher/Bug32886Test.cs
 System.ServiceModel.Dispatcher/ChannelDispatcherTest.cs
 System.ServiceModel.Dispatcher/DispatchOperationTest.cs
 System.ServiceModel.Dispatcher/DispatchRuntimeTest.cs
index 40401dec37e39fefcc42b7f943618e5299eb037f..69f18d3dcb4ba3d5772e8c7915a21ed8c54e4012 100644 (file)
@@ -39,10 +39,7 @@ using System.Xml;
 using NUnit.Framework;
 
 using MonoTests.Helpers;
-
-#if NET_4_0
 using System.Security.Authentication.ExtendedProtection;
-#endif
 
 namespace MonoTests.System.ServiceModel.Channels
 {
@@ -471,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 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 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
diff --git a/mcs/class/System.ServiceModel/Test/System.ServiceModel.Dispatcher/Bug32886Test.cs b/mcs/class/System.ServiceModel/Test/System.ServiceModel.Dispatcher/Bug32886Test.cs
new file mode 100644 (file)
index 0000000..1562ba1
--- /dev/null
@@ -0,0 +1,706 @@
+//
+// Author:
+//       Martin Baulig <martin.baulig@xamarin.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.Collections.Generic;
+using System.Linq;
+using System.Runtime.Serialization;
+using System.ServiceModel;
+using System.ServiceModel.Description;
+using System.Threading;
+using NUnit.Framework;
+
+using WebServiceMoonlightTest.ServiceReference1;
+
+using MonoTests.Helpers;
+
+namespace MonoTests.System.ServiceModel.Dispatcher
+{
+       [TestFixture]
+       public class Bug32886
+       {
+               [Test]
+               public void Bug32886_Test () // test in one of the comment
+               {
+                       // Init service
+                       int port = NetworkHelpers.FindFreePort ();
+                       ServiceHost serviceHost = new ServiceHost (typeof (TempConvertSoapImpl), new Uri ("http://localhost:" + port + "/TempConvertSoap"));
+                       serviceHost.AddServiceEndpoint (typeof (TempConvertSoap), new BasicHttpBinding (), string.Empty);
+
+                       // Enable metadata exchange (WSDL publishing)
+                       var mexBehavior = new ServiceMetadataBehavior ();
+                       mexBehavior.HttpGetEnabled = true;
+                       serviceHost.Description.Behaviors.Add (mexBehavior);
+                       serviceHost.AddServiceEndpoint (typeof (IMetadataExchange), MetadataExchangeBindings.CreateMexHttpBinding (), "mex");
+
+                       serviceHost.Open ();
+
+                       try {
+                               // client
+                               var binding = new BasicHttpBinding ();
+                               var remoteAddress = new EndpointAddress ("http://localhost:" + port + "/TempConvertSoap");
+                               var client = new TempConvertSoapClient (binding, remoteAddress);
+
+                               var wait = new ManualResetEvent (false);
+                               client.CelsiusToFahrenheitCompleted += delegate (object o, CelsiusToFahrenheitCompletedEventArgs e) {
+                                       if (e.Error != null)
+                                               throw e.Error;
+                                       Assert.AreEqual ("76.1", e.Result, "#1");
+                                       wait.Set ();
+                               };
+
+                               client.CelsiusToFahrenheitAsync ("24.5");
+                               if (!wait.WaitOne (TimeSpan.FromSeconds (20)))
+                                       Assert.Fail ("timeout");
+                       } finally {
+                               serviceHost.Close ();
+                       }
+               }
+
+               class TempConvertSoapImpl : TempConvertSoap
+               {
+                       public FahrenheitToCelsiusResponse FarenheitToCelsius (FahrenheitToCelsiusRequest request)
+                       {
+                               var farenheit = double.Parse (request.Body.Fahrenheit);
+                               var celsius = ((farenheit - 32) / 9) * 5;
+                               return new FahrenheitToCelsiusResponse (new FahrenheitToCelsiusResponseBody (celsius.ToString ()));
+                       }
+
+                       public CelsiusToFahrenheitResponse CelsiusToFarenheit (CelsiusToFahrenheitRequest request)
+                       {
+                               var celsius = double.Parse (request.Body.Celsius);
+                               var farenheit = ((celsius * 9) / 5) + 32;
+                               return new CelsiusToFahrenheitResponse (new CelsiusToFahrenheitResponseBody (farenheit.ToString ()));
+                       }
+
+                       Func<FahrenheitToCelsiusRequest,FahrenheitToCelsiusResponse> farenheitToCelsius;
+                       Func<CelsiusToFahrenheitRequest,CelsiusToFahrenheitResponse> celsiusToFarenheit;
+
+                       public IAsyncResult BeginFahrenheitToCelsius (FahrenheitToCelsiusRequest request, AsyncCallback callback, object asyncState)
+                       {
+                               if (farenheitToCelsius == null)
+                                       farenheitToCelsius = new Func<FahrenheitToCelsiusRequest,FahrenheitToCelsiusResponse> (FarenheitToCelsius);
+                               return farenheitToCelsius.BeginInvoke (request, callback, asyncState);
+                       }
+
+                       public FahrenheitToCelsiusResponse EndFahrenheitToCelsius (IAsyncResult result)
+                       {
+                               return farenheitToCelsius.EndInvoke (result);
+                       }
+
+                       public IAsyncResult BeginCelsiusToFahrenheit (CelsiusToFahrenheitRequest request, AsyncCallback callback, object asyncState)
+                       {
+                               if (celsiusToFarenheit == null)
+                                       celsiusToFarenheit = new Func<CelsiusToFahrenheitRequest,CelsiusToFahrenheitResponse> (CelsiusToFarenheit);
+                               return celsiusToFarenheit.BeginInvoke (request, callback, asyncState);
+                       }
+
+                       public CelsiusToFahrenheitResponse EndCelsiusToFahrenheit (IAsyncResult result)
+                       {
+                               return celsiusToFarenheit.EndInvoke (result);
+                       }
+               }
+       }
+}
+
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.34003
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+// 
+// This code was auto-generated by SlSvcUtil, version 5.0.61118.0
+// 
+
+
+[System.CodeDom.Compiler.GeneratedCodeAttribute ("System.ServiceModel", "4.0.0.0")]
+[System.ServiceModel.ServiceContractAttribute (Namespace = "http://www.w3schools.com/webservices/", ConfigurationName = "TempConvertSoap")]
+public interface TempConvertSoap
+{
+
+       [System.ServiceModel.OperationContractAttribute (AsyncPattern = true, Action = "http://www.w3schools.com/webservices/FahrenheitToCelsius", ReplyAction = "*")]
+       System.IAsyncResult BeginFahrenheitToCelsius (FahrenheitToCelsiusRequest request, System.AsyncCallback callback, object asyncState);
+
+       FahrenheitToCelsiusResponse EndFahrenheitToCelsius (System.IAsyncResult result);
+
+       [System.ServiceModel.OperationContractAttribute (AsyncPattern = true, Action = "http://www.w3schools.com/webservices/CelsiusToFahrenheit", ReplyAction = "*")]
+       System.IAsyncResult BeginCelsiusToFahrenheit (CelsiusToFahrenheitRequest request, System.AsyncCallback callback, object asyncState);
+
+       CelsiusToFahrenheitResponse EndCelsiusToFahrenheit (System.IAsyncResult result);
+}
+
+[System.Diagnostics.DebuggerStepThroughAttribute ()]
+[System.CodeDom.Compiler.GeneratedCodeAttribute ("System.ServiceModel", "4.0.0.0")]
+[System.ComponentModel.EditorBrowsableAttribute (System.ComponentModel.EditorBrowsableState.Advanced)]
+[System.ServiceModel.MessageContractAttribute (IsWrapped = false)]
+public partial class FahrenheitToCelsiusRequest
+{
+
+       [System.ServiceModel.MessageBodyMemberAttribute (Name = "FahrenheitToCelsius", Namespace = "http://www.w3schools.com/webservices/", Order = 0)]
+       public FahrenheitToCelsiusRequestBody Body;
+
+       public FahrenheitToCelsiusRequest ()
+       {
+       }
+
+       public FahrenheitToCelsiusRequest (FahrenheitToCelsiusRequestBody Body)
+       {
+               this.Body = Body;
+       }
+}
+
+[System.Diagnostics.DebuggerStepThroughAttribute ()]
+[System.CodeDom.Compiler.GeneratedCodeAttribute ("System.ServiceModel", "4.0.0.0")]
+[System.ComponentModel.EditorBrowsableAttribute (System.ComponentModel.EditorBrowsableState.Advanced)]
+[System.Runtime.Serialization.DataContractAttribute (Namespace = "http://www.w3schools.com/webservices/")]
+public partial class FahrenheitToCelsiusRequestBody
+{
+
+       [System.Runtime.Serialization.DataMemberAttribute (EmitDefaultValue = false, Order = 0)]
+       public string Fahrenheit;
+
+       public FahrenheitToCelsiusRequestBody ()
+       {
+       }
+
+       public FahrenheitToCelsiusRequestBody (string Fahrenheit)
+       {
+               this.Fahrenheit = Fahrenheit;
+       }
+}
+
+[System.Diagnostics.DebuggerStepThroughAttribute ()]
+[System.CodeDom.Compiler.GeneratedCodeAttribute ("System.ServiceModel", "4.0.0.0")]
+[System.ComponentModel.EditorBrowsableAttribute (System.ComponentModel.EditorBrowsableState.Advanced)]
+[System.ServiceModel.MessageContractAttribute (IsWrapped = false)]
+public partial class FahrenheitToCelsiusResponse
+{
+
+       [System.ServiceModel.MessageBodyMemberAttribute (Name = "FahrenheitToCelsiusResponse", Namespace = "http://www.w3schools.com/webservices/", Order = 0)]
+       public FahrenheitToCelsiusResponseBody Body;
+
+       public FahrenheitToCelsiusResponse ()
+       {
+       }
+
+       public FahrenheitToCelsiusResponse (FahrenheitToCelsiusResponseBody Body)
+       {
+               this.Body = Body;
+       }
+}
+
+[System.Diagnostics.DebuggerStepThroughAttribute ()]
+[System.CodeDom.Compiler.GeneratedCodeAttribute ("System.ServiceModel", "4.0.0.0")]
+[System.ComponentModel.EditorBrowsableAttribute (System.ComponentModel.EditorBrowsableState.Advanced)]
+[System.Runtime.Serialization.DataContractAttribute (Namespace = "http://www.w3schools.com/webservices/")]
+public partial class FahrenheitToCelsiusResponseBody
+{
+
+       [System.Runtime.Serialization.DataMemberAttribute (EmitDefaultValue = false, Order = 0)]
+       public string FahrenheitToCelsiusResult;
+
+       public FahrenheitToCelsiusResponseBody ()
+       {
+       }
+
+       public FahrenheitToCelsiusResponseBody (string FahrenheitToCelsiusResult)
+       {
+               this.FahrenheitToCelsiusResult = FahrenheitToCelsiusResult;
+       }
+}
+
+[System.Diagnostics.DebuggerStepThroughAttribute ()]
+[System.CodeDom.Compiler.GeneratedCodeAttribute ("System.ServiceModel", "4.0.0.0")]
+[System.ComponentModel.EditorBrowsableAttribute (System.ComponentModel.EditorBrowsableState.Advanced)]
+[System.ServiceModel.MessageContractAttribute (IsWrapped = false)]
+public partial class CelsiusToFahrenheitRequest
+{
+
+       [System.ServiceModel.MessageBodyMemberAttribute (Name = "CelsiusToFahrenheit", Namespace = "http://www.w3schools.com/webservices/", Order = 0)]
+       public CelsiusToFahrenheitRequestBody Body;
+
+       public CelsiusToFahrenheitRequest ()
+       {
+       }
+
+       public CelsiusToFahrenheitRequest (CelsiusToFahrenheitRequestBody Body)
+       {
+               this.Body = Body;
+       }
+}
+
+[System.Diagnostics.DebuggerStepThroughAttribute ()]
+[System.CodeDom.Compiler.GeneratedCodeAttribute ("System.ServiceModel", "4.0.0.0")]
+[System.ComponentModel.EditorBrowsableAttribute (System.ComponentModel.EditorBrowsableState.Advanced)]
+[System.Runtime.Serialization.DataContractAttribute (Namespace = "http://www.w3schools.com/webservices/")]
+public partial class CelsiusToFahrenheitRequestBody
+{
+
+       [System.Runtime.Serialization.DataMemberAttribute (EmitDefaultValue = false, Order = 0)]
+       public string Celsius;
+
+       public CelsiusToFahrenheitRequestBody ()
+       {
+       }
+
+       public CelsiusToFahrenheitRequestBody (string Celsius)
+       {
+               this.Celsius = Celsius;
+       }
+}
+
+[System.Diagnostics.DebuggerStepThroughAttribute ()]
+[System.CodeDom.Compiler.GeneratedCodeAttribute ("System.ServiceModel", "4.0.0.0")]
+[System.ComponentModel.EditorBrowsableAttribute (System.ComponentModel.EditorBrowsableState.Advanced)]
+[System.ServiceModel.MessageContractAttribute (IsWrapped = false)]
+public partial class CelsiusToFahrenheitResponse
+{
+
+       [System.ServiceModel.MessageBodyMemberAttribute (Name = "CelsiusToFahrenheitResponse", Namespace = "http://www.w3schools.com/webservices/", Order = 0)]
+       public CelsiusToFahrenheitResponseBody Body;
+
+       public CelsiusToFahrenheitResponse ()
+       {
+       }
+
+       public CelsiusToFahrenheitResponse (CelsiusToFahrenheitResponseBody Body)
+       {
+               this.Body = Body;
+       }
+}
+
+[System.Diagnostics.DebuggerStepThroughAttribute ()]
+[System.CodeDom.Compiler.GeneratedCodeAttribute ("System.ServiceModel", "4.0.0.0")]
+[System.ComponentModel.EditorBrowsableAttribute (System.ComponentModel.EditorBrowsableState.Advanced)]
+[System.Runtime.Serialization.DataContractAttribute (Namespace = "http://www.w3schools.com/webservices/")]
+public partial class CelsiusToFahrenheitResponseBody
+{
+
+       [System.Runtime.Serialization.DataMemberAttribute (EmitDefaultValue = false, Order = 0)]
+       public string CelsiusToFahrenheitResult;
+
+       public CelsiusToFahrenheitResponseBody ()
+       {
+       }
+
+       public CelsiusToFahrenheitResponseBody (string CelsiusToFahrenheitResult)
+       {
+               this.CelsiusToFahrenheitResult = CelsiusToFahrenheitResult;
+       }
+}
+
+[System.CodeDom.Compiler.GeneratedCodeAttribute ("System.ServiceModel", "4.0.0.0")]
+public interface TempConvertSoapChannel : TempConvertSoap, System.ServiceModel.IClientChannel
+{
+}
+
+[System.Diagnostics.DebuggerStepThroughAttribute ()]
+[System.CodeDom.Compiler.GeneratedCodeAttribute ("System.ServiceModel", "4.0.0.0")]
+public partial class FahrenheitToCelsiusCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
+{
+
+       private object[] results;
+
+       public FahrenheitToCelsiusCompletedEventArgs (object[] results, System.Exception exception, bool cancelled, object userState) :
+       base (exception, cancelled, userState)
+       {
+               this.results = results;
+       }
+
+       public string Result {
+               get {
+                       base.RaiseExceptionIfNecessary ();
+                       return ((string)(this.results [0]));
+               }
+       }
+}
+
+[System.Diagnostics.DebuggerStepThroughAttribute ()]
+[System.CodeDom.Compiler.GeneratedCodeAttribute ("System.ServiceModel", "4.0.0.0")]
+public partial class CelsiusToFahrenheitCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
+{
+
+       private object[] results;
+
+       public CelsiusToFahrenheitCompletedEventArgs (object[] results, System.Exception exception, bool cancelled, object userState) :
+       base (exception, cancelled, userState)
+       {
+               this.results = results;
+       }
+
+       public string Result {
+               get {
+                       base.RaiseExceptionIfNecessary ();
+                       return ((string)(this.results [0]));
+               }
+       }
+}
+
+[System.Diagnostics.DebuggerStepThroughAttribute ()]
+[System.CodeDom.Compiler.GeneratedCodeAttribute ("System.ServiceModel", "4.0.0.0")]
+public partial class TempConvertSoapClient : System.ServiceModel.ClientBase<TempConvertSoap>, TempConvertSoap
+{
+
+       private BeginOperationDelegate onBeginFahrenheitToCelsiusDelegate;
+
+       private EndOperationDelegate onEndFahrenheitToCelsiusDelegate;
+
+       private System.Threading.SendOrPostCallback onFahrenheitToCelsiusCompletedDelegate;
+
+       private BeginOperationDelegate onBeginCelsiusToFahrenheitDelegate;
+
+       private EndOperationDelegate onEndCelsiusToFahrenheitDelegate;
+
+       private System.Threading.SendOrPostCallback onCelsiusToFahrenheitCompletedDelegate;
+
+       private BeginOperationDelegate onBeginOpenDelegate;
+
+       private EndOperationDelegate onEndOpenDelegate;
+
+       private System.Threading.SendOrPostCallback onOpenCompletedDelegate;
+
+       private BeginOperationDelegate onBeginCloseDelegate;
+
+       private EndOperationDelegate onEndCloseDelegate;
+
+       private System.Threading.SendOrPostCallback onCloseCompletedDelegate;
+
+       public TempConvertSoapClient ()
+       {
+       }
+
+       public TempConvertSoapClient (string endpointConfigurationName) :
+       base (endpointConfigurationName)
+       {
+       }
+
+       public TempConvertSoapClient (string endpointConfigurationName, string remoteAddress) :
+       base (endpointConfigurationName, remoteAddress)
+       {
+       }
+
+       public TempConvertSoapClient (string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) :
+       base (endpointConfigurationName, remoteAddress)
+       {
+       }
+
+       public TempConvertSoapClient (System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) :
+       base (binding, remoteAddress)
+       {
+       }
+
+       public System.Net.CookieContainer CookieContainer {
+               get {
+                       System.ServiceModel.Channels.IHttpCookieContainerManager httpCookieContainerManager = this.InnerChannel.GetProperty<System.ServiceModel.Channels.IHttpCookieContainerManager> ();
+                       if ((httpCookieContainerManager != null)) {
+                               return httpCookieContainerManager.CookieContainer;
+                       } else {
+                               return null;
+                       }
+               }
+               set {
+                       System.ServiceModel.Channels.IHttpCookieContainerManager httpCookieContainerManager = this.InnerChannel.GetProperty<System.ServiceModel.Channels.IHttpCookieContainerManager> ();
+                       if ((httpCookieContainerManager != null)) {
+                               httpCookieContainerManager.CookieContainer = value;
+                       } else {
+                               throw new System.InvalidOperationException ("Unable to set the CookieContainer. Please make sure the binding contains an HttpC" +
+                                       "ookieContainerBindingElement.");
+                       }
+               }
+       }
+
+       public event System.EventHandler<FahrenheitToCelsiusCompletedEventArgs> FahrenheitToCelsiusCompleted;
+
+       public event System.EventHandler<CelsiusToFahrenheitCompletedEventArgs> CelsiusToFahrenheitCompleted;
+
+       public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> OpenCompleted;
+
+       public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> CloseCompleted;
+
+       [System.ComponentModel.EditorBrowsableAttribute (System.ComponentModel.EditorBrowsableState.Advanced)]
+       System.IAsyncResult TempConvertSoap.BeginFahrenheitToCelsius (FahrenheitToCelsiusRequest request, System.AsyncCallback callback, object asyncState)
+       {
+               return base.Channel.BeginFahrenheitToCelsius (request, callback, asyncState);
+       }
+
+       [System.ComponentModel.EditorBrowsableAttribute (System.ComponentModel.EditorBrowsableState.Advanced)]
+       private System.IAsyncResult BeginFahrenheitToCelsius (string Fahrenheit, System.AsyncCallback callback, object asyncState)
+       {
+               FahrenheitToCelsiusRequest inValue = new FahrenheitToCelsiusRequest ();
+               inValue.Body = new FahrenheitToCelsiusRequestBody ();
+               inValue.Body.Fahrenheit = Fahrenheit;
+               return ((TempConvertSoap)(this)).BeginFahrenheitToCelsius (inValue, callback, asyncState);
+       }
+
+       [System.ComponentModel.EditorBrowsableAttribute (System.ComponentModel.EditorBrowsableState.Advanced)]
+       FahrenheitToCelsiusResponse TempConvertSoap.EndFahrenheitToCelsius (System.IAsyncResult result)
+       {
+               return base.Channel.EndFahrenheitToCelsius (result);
+       }
+
+       [System.ComponentModel.EditorBrowsableAttribute (System.ComponentModel.EditorBrowsableState.Advanced)]
+       private string EndFahrenheitToCelsius (System.IAsyncResult result)
+       {
+               FahrenheitToCelsiusResponse retVal = ((TempConvertSoap)(this)).EndFahrenheitToCelsius (result);
+               return retVal.Body.FahrenheitToCelsiusResult;
+       }
+
+       private System.IAsyncResult OnBeginFahrenheitToCelsius (object[] inValues, System.AsyncCallback callback, object asyncState)
+       {
+               string Fahrenheit = ((string)(inValues [0]));
+               return this.BeginFahrenheitToCelsius (Fahrenheit, callback, asyncState);
+       }
+
+       private object[] OnEndFahrenheitToCelsius (System.IAsyncResult result)
+       {
+               string retVal = this.EndFahrenheitToCelsius (result);
+               return new object[] {
+                       retVal
+               };
+       }
+
+       private void OnFahrenheitToCelsiusCompleted (object state)
+       {
+               if ((this.FahrenheitToCelsiusCompleted != null)) {
+                       InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+                       this.FahrenheitToCelsiusCompleted (this, new FahrenheitToCelsiusCompletedEventArgs (e.Results, e.Error, e.Cancelled, e.UserState));
+               }
+       }
+
+       public void FahrenheitToCelsiusAsync (string Fahrenheit)
+       {
+               this.FahrenheitToCelsiusAsync (Fahrenheit, null);
+       }
+
+       public void FahrenheitToCelsiusAsync (string Fahrenheit, object userState)
+       {
+               if ((this.onBeginFahrenheitToCelsiusDelegate == null)) {
+                       this.onBeginFahrenheitToCelsiusDelegate = new BeginOperationDelegate (this.OnBeginFahrenheitToCelsius);
+               }
+               if ((this.onEndFahrenheitToCelsiusDelegate == null)) {
+                       this.onEndFahrenheitToCelsiusDelegate = new EndOperationDelegate (this.OnEndFahrenheitToCelsius);
+               }
+               if ((this.onFahrenheitToCelsiusCompletedDelegate == null)) {
+                       this.onFahrenheitToCelsiusCompletedDelegate = new System.Threading.SendOrPostCallback (this.OnFahrenheitToCelsiusCompleted);
+               }
+               base.InvokeAsync (this.onBeginFahrenheitToCelsiusDelegate, new object[] {
+                       Fahrenheit
+               }, this.onEndFahrenheitToCelsiusDelegate, this.onFahrenheitToCelsiusCompletedDelegate, userState);
+       }
+
+       [System.ComponentModel.EditorBrowsableAttribute (System.ComponentModel.EditorBrowsableState.Advanced)]
+       System.IAsyncResult TempConvertSoap.BeginCelsiusToFahrenheit (CelsiusToFahrenheitRequest request, System.AsyncCallback callback, object asyncState)
+       {
+               return base.Channel.BeginCelsiusToFahrenheit (request, callback, asyncState);
+       }
+
+       [System.ComponentModel.EditorBrowsableAttribute (System.ComponentModel.EditorBrowsableState.Advanced)]
+       private System.IAsyncResult BeginCelsiusToFahrenheit (string Celsius, System.AsyncCallback callback, object asyncState)
+       {
+               CelsiusToFahrenheitRequest inValue = new CelsiusToFahrenheitRequest ();
+               inValue.Body = new CelsiusToFahrenheitRequestBody ();
+               inValue.Body.Celsius = Celsius;
+               return ((TempConvertSoap)(this)).BeginCelsiusToFahrenheit (inValue, callback, asyncState);
+       }
+
+       [System.ComponentModel.EditorBrowsableAttribute (System.ComponentModel.EditorBrowsableState.Advanced)]
+       CelsiusToFahrenheitResponse TempConvertSoap.EndCelsiusToFahrenheit (System.IAsyncResult result)
+       {
+               return base.Channel.EndCelsiusToFahrenheit (result);
+       }
+
+       [System.ComponentModel.EditorBrowsableAttribute (System.ComponentModel.EditorBrowsableState.Advanced)]
+       private string EndCelsiusToFahrenheit (System.IAsyncResult result)
+       {
+               CelsiusToFahrenheitResponse retVal = ((TempConvertSoap)(this)).EndCelsiusToFahrenheit (result);
+               return retVal.Body.CelsiusToFahrenheitResult;
+       }
+
+       private System.IAsyncResult OnBeginCelsiusToFahrenheit (object[] inValues, System.AsyncCallback callback, object asyncState)
+       {
+               string Celsius = ((string)(inValues [0]));
+               return this.BeginCelsiusToFahrenheit (Celsius, callback, asyncState);
+       }
+
+       private object[] OnEndCelsiusToFahrenheit (System.IAsyncResult result)
+       {
+               string retVal = this.EndCelsiusToFahrenheit (result);
+               return new object[] {
+                       retVal
+               };
+       }
+
+       private void OnCelsiusToFahrenheitCompleted (object state)
+       {
+               if ((this.CelsiusToFahrenheitCompleted != null)) {
+                       InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+                       this.CelsiusToFahrenheitCompleted (this, new CelsiusToFahrenheitCompletedEventArgs (e.Results, e.Error, e.Cancelled, e.UserState));
+               }
+       }
+
+       public void CelsiusToFahrenheitAsync (string Celsius)
+       {
+               this.CelsiusToFahrenheitAsync (Celsius, null);
+       }
+
+       public void CelsiusToFahrenheitAsync (string Celsius, object userState)
+       {
+               if ((this.onBeginCelsiusToFahrenheitDelegate == null)) {
+                       this.onBeginCelsiusToFahrenheitDelegate = new BeginOperationDelegate (this.OnBeginCelsiusToFahrenheit);
+               }
+               if ((this.onEndCelsiusToFahrenheitDelegate == null)) {
+                       this.onEndCelsiusToFahrenheitDelegate = new EndOperationDelegate (this.OnEndCelsiusToFahrenheit);
+               }
+               if ((this.onCelsiusToFahrenheitCompletedDelegate == null)) {
+                       this.onCelsiusToFahrenheitCompletedDelegate = new System.Threading.SendOrPostCallback (this.OnCelsiusToFahrenheitCompleted);
+               }
+               base.InvokeAsync (this.onBeginCelsiusToFahrenheitDelegate, new object[] {
+                       Celsius
+               }, this.onEndCelsiusToFahrenheitDelegate, this.onCelsiusToFahrenheitCompletedDelegate, userState);
+       }
+
+       private System.IAsyncResult OnBeginOpen (object[] inValues, System.AsyncCallback callback, object asyncState)
+       {
+               return ((System.ServiceModel.ICommunicationObject)(this)).BeginOpen (callback, asyncState);
+       }
+
+       private object[] OnEndOpen (System.IAsyncResult result)
+       {
+               ((System.ServiceModel.ICommunicationObject)(this)).EndOpen (result);
+               return null;
+       }
+
+       private void OnOpenCompleted (object state)
+       {
+               if ((this.OpenCompleted != null)) {
+                       InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+                       this.OpenCompleted (this, new System.ComponentModel.AsyncCompletedEventArgs (e.Error, e.Cancelled, e.UserState));
+               }
+       }
+
+       public void OpenAsync ()
+       {
+               this.OpenAsync (null);
+       }
+
+       public void OpenAsync (object userState)
+       {
+               if ((this.onBeginOpenDelegate == null)) {
+                       this.onBeginOpenDelegate = new BeginOperationDelegate (this.OnBeginOpen);
+               }
+               if ((this.onEndOpenDelegate == null)) {
+                       this.onEndOpenDelegate = new EndOperationDelegate (this.OnEndOpen);
+               }
+               if ((this.onOpenCompletedDelegate == null)) {
+                       this.onOpenCompletedDelegate = new System.Threading.SendOrPostCallback (this.OnOpenCompleted);
+               }
+               base.InvokeAsync (this.onBeginOpenDelegate, null, this.onEndOpenDelegate, this.onOpenCompletedDelegate, userState);
+       }
+
+       private System.IAsyncResult OnBeginClose (object[] inValues, System.AsyncCallback callback, object asyncState)
+       {
+               return ((System.ServiceModel.ICommunicationObject)(this)).BeginClose (callback, asyncState);
+       }
+
+       private object[] OnEndClose (System.IAsyncResult result)
+       {
+               ((System.ServiceModel.ICommunicationObject)(this)).EndClose (result);
+               return null;
+       }
+
+       private void OnCloseCompleted (object state)
+       {
+               if ((this.CloseCompleted != null)) {
+                       InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+                       this.CloseCompleted (this, new System.ComponentModel.AsyncCompletedEventArgs (e.Error, e.Cancelled, e.UserState));
+               }
+       }
+
+       public void CloseAsync ()
+       {
+               this.CloseAsync (null);
+       }
+
+       public void CloseAsync (object userState)
+       {
+               if ((this.onBeginCloseDelegate == null)) {
+                       this.onBeginCloseDelegate = new BeginOperationDelegate (this.OnBeginClose);
+               }
+               if ((this.onEndCloseDelegate == null)) {
+                       this.onEndCloseDelegate = new EndOperationDelegate (this.OnEndClose);
+               }
+               if ((this.onCloseCompletedDelegate == null)) {
+                       this.onCloseCompletedDelegate = new System.Threading.SendOrPostCallback (this.OnCloseCompleted);
+               }
+               base.InvokeAsync (this.onBeginCloseDelegate, null, this.onEndCloseDelegate, this.onCloseCompletedDelegate, userState);
+       }
+
+       protected override TempConvertSoap CreateChannel ()
+       {
+               return new TempConvertSoapClientChannel (this);
+       }
+
+       private class TempConvertSoapClientChannel : ChannelBase<TempConvertSoap>, TempConvertSoap
+       {
+
+               public TempConvertSoapClientChannel (System.ServiceModel.ClientBase<TempConvertSoap> client) :
+               base (client)
+               {
+               }
+
+               public System.IAsyncResult BeginFahrenheitToCelsius (FahrenheitToCelsiusRequest request, System.AsyncCallback callback, object asyncState)
+               {
+                       object[] _args = new object[1];
+                       _args [0] = request;
+                       System.IAsyncResult _result = base.BeginInvoke ("FahrenheitToCelsius", _args, callback, asyncState);
+                       return _result;
+               }
+
+               public FahrenheitToCelsiusResponse EndFahrenheitToCelsius (System.IAsyncResult result)
+               {
+                       object[] _args = new object[0];
+                       FahrenheitToCelsiusResponse _result = ((FahrenheitToCelsiusResponse)(base.EndInvoke ("FahrenheitToCelsius", _args, result)));
+                       return _result;
+               }
+
+               public System.IAsyncResult BeginCelsiusToFahrenheit (CelsiusToFahrenheitRequest request, System.AsyncCallback callback, object asyncState)
+               {
+                       object[] _args = new object[1];
+                       _args [0] = request;
+                       System.IAsyncResult _result = base.BeginInvoke ("CelsiusToFahrenheit", _args, callback, asyncState);
+                       return _result;
+               }
+
+               public CelsiusToFahrenheitResponse EndCelsiusToFahrenheit (System.IAsyncResult result)
+               {
+                       object[] _args = new object[0];
+                       CelsiusToFahrenheitResponse _result = ((CelsiusToFahrenheitResponse)(base.EndInvoke ("CelsiusToFahrenheit", _args, result)));
+                       return _result;
+               }
+       }
+}
index 70d9c79c624ff3f6f16f89b274a894da425884f0..cdc68486779adc619e335eccabbb06dc4a72265c 100644 (file)
@@ -57,6 +57,7 @@ namespace MonoTests.System.ServiceModel.Dispatcher
                        serviceHost.AddServiceEndpoint (typeof (IMetadataExchange), MetadataExchangeBindings.CreateMexHttpBinding (), "mex");
 
                        serviceHost.Open ();
+                       Thread.Sleep (2000);  // let WCF spin up
 
                        try {
                                // client
index 59328f08103764aba73e0fc2c0e86ee518916d13..4d6fca943e6f88529a257468d0776026019f33f0 100644 (file)
@@ -1,4 +1,3 @@
-#if NET_4_0
 //
 // Authors:
 //     David Straw
@@ -857,4 +856,3 @@ namespace WebServiceMoonlightTest.ServiceReference2 {
     }
 }
 
-#endif
index 30e4c4036d8fc33542d8d403d8be93484af6c1dd..0a169ec364f9b637ccdf2093253623a73fb954ba 100644 (file)
@@ -434,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 4fb3ce3a5d9b8f6d8dfd3986db1f9661d18a6018..3c12a4646869c95eb2857abe4afd116274b18837 100644 (file)
@@ -479,7 +479,6 @@ namespace MonoTests.System.ServiceModel
                        }
                }
 
-#if NET_4_0
                [Test]
                public void ConstructorServiceEndpoint ()
                {
@@ -504,6 +503,5 @@ namespace MonoTests.System.ServiceModel
                        {
                        }
                }
-#endif
        }
 }
index 55441b8d24e9de01ce050e83ccf69e0dd05e4e29..c7fa92a2f93fb04244fa6b262de0a71fd9749235 100644 (file)
@@ -373,7 +373,6 @@ namespace MonoTests.System.ServiceModel
                        return host;
                }
 
-#if NET_4_0
                [Test]
                public void AddServiceEndpoint_Directly ()
                {
@@ -422,7 +421,6 @@ namespace MonoTests.System.ServiceModel
                        var contract = ContractDescription.GetContract (typeof (INotImplementedService));
                        host.AddServiceEndpoint (new ServiceEndpoint (contract, binding, address));
                }
-#endif
 
                #region helpers
 
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
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 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
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 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 26291567138f05c41345e27818c65e44ab9acd3e..abf6238524544173140691a58a874377c05c27ee 100644 (file)
@@ -35,7 +35,7 @@ using System.Collections.Generic;
 using System.Configuration;
 using System.IO;
 using System.Text;
-#if !NO_SYSTEM_WEB_DEPENDENCY && NET_4_0 && !MOBILE
+#if !NO_SYSTEM_WEB_DEPENDENCY && !MOBILE
 using System.Web.Configuration;
 #endif
 
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);
+               }
+       }
+}
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 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
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 0cf6cff891d36bad75c076a0c141069a3e96a721..a3147ffc72781bd4149b53ee4dbc5a7890e4fd3d 100644 (file)
@@ -43,6 +43,7 @@ using System.Security.Permissions;
 using System.Collections.Generic;
 using System.Security;
 using System.Threading;
+using Microsoft.Win32.SafeHandles;
 
 namespace System.Diagnostics {
 
@@ -977,15 +978,58 @@ namespace System.Diagnostics {
                        return(ret);
                }
 
-               private static bool Start_noshell (ProcessStartInfo startInfo,
-                                                  Process process)
+               //
+               // Creates a pipe with read and write descriptors
+               //
+               static void CreatePipe (out IntPtr read, out IntPtr write, bool writeDirection)
                {
-                       ProcInfo proc_info=new ProcInfo();
-                       IntPtr stdin_rd = IntPtr.Zero, stdin_wr = IntPtr.Zero;
-                       IntPtr stdout_wr;
-                       IntPtr stderr_wr;
-                       bool ret;
-                       MonoIOError error;
+                       //
+                       // Creates read/write pipe from parent -> child perspective
+                       // a child process uses same descriptors after fork. That's
+                       // 4 descriptors in total where only 2. One in child, one in parent
+                       // should be active and the other 2 closed. Which ones depends on
+                       // comunication direction
+                       //
+                       // parent  -------->  child   (parent can write, child can read)
+                       //
+                       // read: closed       read: used
+                       // write: used        write: closed
+                       //
+                       //
+                       // parent  <--------  child   (parent can read, child can write)
+                       //
+                       // read: used         read: closed
+                       // write: closed      write: used
+                       //
+                       // It can still be tricky for predefined descriptiors http://unixwiz.net/techtips/remap-pipe-fds.html
+                       //
+                       var ret = MonoIO.CreatePipe (out read, out write);
+                       if (!ret)
+                               throw new IOException ("Error creating process pipe");
+
+                       if (IsWindows) {
+                               const int DUPLICATE_SAME_ACCESS = 0x00000002;
+                               var tmp = writeDirection ? write : read;
+
+                               ret = MonoIO.DuplicateHandle (Process.GetCurrentProcess ().Handle, tmp,
+                                       Process.GetCurrentProcess ().Handle, out tmp, 0, 0, DUPLICATE_SAME_ACCESS);
+                               if (!ret)
+                                       return;
+
+                               MonoIOError error;
+                               if (writeDirection) {
+                                       MonoIO.Close (write, out error);
+                                       write = tmp;
+                               } else {
+                                       MonoIO.Close (read, out error);
+                                       read = tmp;
+                               }
+                       }
+               }
+
+               static bool Start_noshell (ProcessStartInfo startInfo, Process process)
+               {
+                       var proc_info = new ProcInfo ();
 
                        if (startInfo.HaveEnvVars) {
                                string [] strs = new string [startInfo.EnvironmentVariables.Count];
@@ -997,164 +1041,118 @@ namespace System.Diagnostics {
                                proc_info.envValues = strs;
                        }
 
-                       if (startInfo.RedirectStandardInput == true) {
-                               if (IsWindows) {
-                                       int DUPLICATE_SAME_ACCESS = 0x00000002;
-                                       IntPtr stdin_wr_tmp;
+                       MonoIOError error;
+                       IntPtr stdin_read = IntPtr.Zero, stdin_write = IntPtr.Zero;
+                       IntPtr stdout_read = IntPtr.Zero, stdout_write = IntPtr.Zero;
+                       IntPtr stderr_read = IntPtr.Zero, stderr_write = IntPtr.Zero;
 
-                                       ret = MonoIO.CreatePipe (out stdin_rd,
-                                                                        out stdin_wr_tmp);
-                                       if (ret) {
-                                               ret = MonoIO.DuplicateHandle (Process.GetCurrentProcess ().Handle, stdin_wr_tmp,
-                                               Process.GetCurrentProcess ().Handle, out stdin_wr, 0, 0, DUPLICATE_SAME_ACCESS);
-                                               MonoIO.Close (stdin_wr_tmp, out error);
-                                       }
-                               }
-                               else
-                               {
-                                       ret = MonoIO.CreatePipe (out stdin_rd,
-                                                                        out stdin_wr);
-                               }
-                               if (ret == false) {
-                                       throw new IOException ("Error creating standard input pipe");
+                       try {
+                               if (startInfo.RedirectStandardInput) {
+                                       CreatePipe (out stdin_read, out stdin_write, true);
+                               } else {
+                                       stdin_read = MonoIO.ConsoleInput;
+                                       stdin_write = IntPtr.Zero;
                                }
-                       } else {
-                               stdin_rd = MonoIO.ConsoleInput;
-                               /* This is required to stop the
-                                * &$*£ing stupid compiler moaning
-                                * that stdin_wr is unassigned, below.
-                                */
-                               stdin_wr = (IntPtr)0;
-                       }
-
-                       if (startInfo.RedirectStandardOutput == true) {
-                               IntPtr out_rd = IntPtr.Zero;
-                               if (IsWindows) {
-                                       IntPtr out_rd_tmp;
-                                       int DUPLICATE_SAME_ACCESS = 0x00000002;
-
-                                       ret = MonoIO.CreatePipe (out out_rd_tmp,
-                                                                        out stdout_wr);
-                                       if (ret) {
-                                               MonoIO.DuplicateHandle (Process.GetCurrentProcess ().Handle, out_rd_tmp,
-                                               Process.GetCurrentProcess ().Handle, out out_rd, 0, 0, DUPLICATE_SAME_ACCESS);
-                                               MonoIO.Close (out_rd_tmp, out error);
-                                       }
+
+                               if (startInfo.RedirectStandardOutput) {
+                                       CreatePipe (out stdout_read, out stdout_write, false);
+                                       process.stdout_rd = stdout_read;
+                               } else {
+                                       process.stdout_rd = IntPtr.Zero;
+                                       stdout_write = MonoIO.ConsoleOutput;
                                }
-                               else {
-                                       ret = MonoIO.CreatePipe (out out_rd,
-                                                                        out stdout_wr);
+
+                               if (startInfo.RedirectStandardError) {
+                                       CreatePipe (out stderr_read, out stderr_write, false);
+                                       process.stderr_rd  = stderr_read;
+                               } else {
+                                       process.stderr_rd = IntPtr.Zero;
+                                       stderr_write = MonoIO.ConsoleError;
                                }
 
-                               process.stdout_rd = out_rd;
-                               if (ret == false) {
-                                       if (startInfo.RedirectStandardInput == true) {
-                                               MonoIO.Close (stdin_rd, out error);
-                                               MonoIO.Close (stdin_wr, out error);
-                                       }
+                               FillUserInfo (startInfo, ref proc_info);
 
-                                       throw new IOException ("Error creating standard output pipe");
+                               //
+                               // FIXME: For redirected pipes we need to send descriptors of
+                               // stdin_write, stdout_read, stderr_read to child process and
+                               // close them there (fork makes exact copy of parent's descriptors)
+                               //
+                               if (!CreateProcess_internal (startInfo, stdin_read, stdout_write, stderr_write, ref proc_info)) {
+                                       throw new Win32Exception (-proc_info.pid, 
+                                       "ApplicationName='" + startInfo.FileName +
+                                       "', CommandLine='" + startInfo.Arguments +
+                                       "', CurrentDirectory='" + startInfo.WorkingDirectory +
+                                       "', Native error= " + Win32Exception.W32ErrorMessage (-proc_info.pid));
                                }
-                       } else {
-                               process.stdout_rd = (IntPtr)0;
-                               stdout_wr = MonoIO.ConsoleOutput;
-                       }
-
-                       if (startInfo.RedirectStandardError == true) {
-                               IntPtr err_rd = IntPtr.Zero;
-                               if (IsWindows) {
-                                       IntPtr err_rd_tmp;
-                                       int DUPLICATE_SAME_ACCESS = 0x00000002;
-
-                                       ret = MonoIO.CreatePipe (out err_rd_tmp,
-                                                                        out stderr_wr);
-                                       if (ret) {
-                                               MonoIO.DuplicateHandle (Process.GetCurrentProcess ().Handle, err_rd_tmp,
-                                               Process.GetCurrentProcess ().Handle, out err_rd, 0, 0, DUPLICATE_SAME_ACCESS);
-                                               MonoIO.Close (err_rd_tmp, out error);
-                                       }
+                       } catch {
+                               if (startInfo.RedirectStandardInput) {
+                                       if (stdin_read != IntPtr.Zero)
+                                               MonoIO.Close (stdin_read, out error);
+                                       if (stdin_write != IntPtr.Zero)
+                                               MonoIO.Close (stdin_write, out error);
                                }
-                               else {
-                                       ret = MonoIO.CreatePipe (out err_rd,
-                                                                        out stderr_wr);
+
+                               if (startInfo.RedirectStandardOutput) {
+                                       if (stdout_read != IntPtr.Zero)
+                                               MonoIO.Close (stdout_read, out error);
+                                       if (stdout_write != IntPtr.Zero)
+                                               MonoIO.Close (stdout_write, out error);
                                }
 
-                               process.stderr_rd = err_rd;
-                               if (ret == false) {
-                                       if (startInfo.RedirectStandardInput == true) {
-                                               MonoIO.Close (stdin_rd, out error);
-                                               MonoIO.Close (stdin_wr, out error);
-                                       }
-                                       if (startInfo.RedirectStandardOutput == true) {
-                                               MonoIO.Close (process.stdout_rd, out error);
-                                               MonoIO.Close (stdout_wr, out error);
-                                       }
-                                       
-                                       throw new IOException ("Error creating standard error pipe");
+                               if (startInfo.RedirectStandardError) {
+                                       if (stderr_read != IntPtr.Zero)
+                                               MonoIO.Close (stderr_read, out error);
+                                       if (stderr_write != IntPtr.Zero)
+                                               MonoIO.Close (stderr_write, out error);
                                }
-                       } else {
-                               process.stderr_rd = (IntPtr)0;
-                               stderr_wr = MonoIO.ConsoleError;
-                       }
 
-                       FillUserInfo (startInfo, ref proc_info);
-                       try {
-                               ret = CreateProcess_internal (startInfo,
-                                                             stdin_rd, stdout_wr, stderr_wr,
-                                                             ref proc_info);
+                               throw;
                        } finally {
-                               if (proc_info.Password != IntPtr.Zero)
+                               if (proc_info.Password != IntPtr.Zero) {
                                        Marshal.ZeroFreeBSTR (proc_info.Password);
-                               proc_info.Password = IntPtr.Zero;
-                       }
-                       if (!ret) {
-                               if (startInfo.RedirectStandardInput == true) {
-                                       MonoIO.Close (stdin_rd, out error);
-                                       MonoIO.Close (stdin_wr, out error);
-                               }
-
-                               if (startInfo.RedirectStandardOutput == true) {
-                                       MonoIO.Close (process.stdout_rd, out error);
-                                       MonoIO.Close (stdout_wr, out error);
-                               }
-
-                               if (startInfo.RedirectStandardError == true) {
-                                       MonoIO.Close (process.stderr_rd, out error);
-                                       MonoIO.Close (stderr_wr, out error);
+                                       proc_info.Password = IntPtr.Zero;
                                }
-
-                               throw new Win32Exception (-proc_info.pid,
-                                       "ApplicationName='" + startInfo.FileName +
-                                       "', CommandLine='" + startInfo.Arguments +
-                                       "', CurrentDirectory='" + startInfo.WorkingDirectory +
-                                       "', Native error= " + Win32Exception.W32ErrorMessage (-proc_info.pid));
                        }
 
                        process.process_handle = proc_info.process_handle;
                        process.pid = proc_info.pid;
                        
-                       if (startInfo.RedirectStandardInput == true) {
-                               MonoIO.Close (stdin_rd, out error);
-                               process.input_stream = new StreamWriter (new MonoSyncFileStream (stdin_wr, FileAccess.Write, true, 8192), Console.Out.Encoding);
-                               process.input_stream.AutoFlush = true;
+                       if (startInfo.RedirectStandardInput) {
+                               //
+                               // FIXME: The descriptor needs to be closed but due to wapi io-layer
+                               // not coping with duplicated descriptors any StandardInput write fails
+                               //
+                               // MonoIO.Close (stdin_read, out error);
+
+#if MOBILE
+                               var stdinEncoding = Encoding.Default;
+#else
+                               var stdinEncoding = Console.InputEncoding;
+#endif
+                               process.input_stream = new StreamWriter (new FileStream (new SafeFileHandle (stdin_write, false), FileAccess.Write, 8192, false), stdinEncoding) {
+                                       AutoFlush = true
+                               };
                        }
 
-                       Encoding stdoutEncoding = startInfo.StandardOutputEncoding ?? Console.Out.Encoding;
-                       Encoding stderrEncoding = startInfo.StandardErrorEncoding ?? Console.Out.Encoding;
+                       if (startInfo.RedirectStandardOutput) {
+                               MonoIO.Close (stdout_write, out error);
 
-                       if (startInfo.RedirectStandardOutput == true) {
-                               MonoIO.Close (stdout_wr, out error);
-                               process.output_stream = new StreamReader (new MonoSyncFileStream (process.stdout_rd, FileAccess.Read, true, 8192), stdoutEncoding, true, 8192);
+                               Encoding stdoutEncoding = startInfo.StandardOutputEncoding ?? Console.Out.Encoding;
+
+                               process.output_stream = new StreamReader (new FileStream (new SafeFileHandle (stdout_read, false), FileAccess.Read, 8192, false), stdoutEncoding, true, 8192);
                        }
 
-                       if (startInfo.RedirectStandardError == true) {
-                               MonoIO.Close (stderr_wr, out error);
-                               process.error_stream = new StreamReader (new MonoSyncFileStream (process.stderr_rd, FileAccess.Read, true, 8192), stderrEncoding, true, 8192);
+                       if (startInfo.RedirectStandardError) {
+                               MonoIO.Close (stderr_write, out error);
+
+                               Encoding stderrEncoding = startInfo.StandardErrorEncoding ?? Console.Out.Encoding;
+
+                               process.error_stream = new StreamReader (new FileStream (new SafeFileHandle (stderr_read, false), FileAccess.Read, 8192, false), stderrEncoding, true, 8192);
                        }
 
                        process.StartExitCallbackIfNeeded ();
 
-                       return(ret);
+                       return true;
                }
 
                // Note that ProcInfo.Password must be freed.
@@ -1487,9 +1485,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 ();
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.IO/MonoSyncFileStream.cs b/mcs/class/System/System.IO/MonoSyncFileStream.cs
deleted file mode 100644 (file)
index f6dd076..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-// 
-// System.IO.MonoSyncFileStream.cs: Synchronous FileStream with
-//     asynchronous BeginRead/Write methods.
-//
-// Authors:
-//     Robert Jordan (robertj@gmx.net)
-//
-// Copyright (C) 2007 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.Remoting.Messaging;
-
-namespace System.IO
-{
-       internal class MonoSyncFileStream : FileStream
-       {
-               public MonoSyncFileStream (IntPtr handle, FileAccess access, bool ownsHandle, int bufferSize)
-                       : base (handle, access, ownsHandle, bufferSize, false)
-               {
-               }
-
-               delegate void WriteDelegate (byte [] buffer, int offset, int count);
-
-               public override IAsyncResult BeginWrite (byte [] buffer, int offset, int count,
-                                                       AsyncCallback cback, object state)
-               {
-                       if (!CanWrite)
-                               throw new NotSupportedException ("This stream does not support writing");
-
-                       if (buffer == null)
-                               throw new ArgumentNullException ("buffer");
-
-                       if (count < 0)
-                               throw new ArgumentOutOfRangeException ("count", "Must be >= 0");
-
-                       if (offset < 0)
-                               throw new ArgumentOutOfRangeException ("offset", "Must be >= 0");
-
-                       WriteDelegate d = new WriteDelegate (this.Write);
-                       return d.BeginInvoke (buffer, offset, count, cback, state);
-               }
-
-               public override void EndWrite (IAsyncResult asyncResult)
-               {
-                       if (asyncResult == null)
-                               throw new ArgumentNullException ("asyncResult");
-
-                       AsyncResult ar = asyncResult as AsyncResult;
-                       if (ar == null)
-                               throw new ArgumentException ("Invalid IAsyncResult", "asyncResult");
-
-                       WriteDelegate d = ar.AsyncDelegate as WriteDelegate;
-                       if (d == null)
-                               throw new ArgumentException ("Invalid IAsyncResult", "asyncResult");
-
-                       d.EndInvoke (asyncResult);
-               }
-
-               delegate int ReadDelegate (byte [] buffer, int offset, int count);
-
-               public override IAsyncResult BeginRead (byte [] buffer, int offset, int count,
-                                                       AsyncCallback cback, object state)
-               {
-                       if (!CanRead)
-                               throw new NotSupportedException ("This stream does not support reading");
-
-                       if (buffer == null)
-                               throw new ArgumentNullException ("buffer");
-
-                       if (count < 0)
-                               throw new ArgumentOutOfRangeException ("count", "Must be >= 0");
-
-                       if (offset < 0)
-                               throw new ArgumentOutOfRangeException ("offset", "Must be >= 0");
-
-                       ReadDelegate d = new ReadDelegate (this.Read);
-                       return d.BeginInvoke (buffer, offset, count, cback, state);
-               }
-
-               public override int EndRead (IAsyncResult asyncResult)
-               {
-                       if (asyncResult == null)
-                               throw new ArgumentNullException ("asyncResult");
-
-                       AsyncResult ar = asyncResult as AsyncResult;
-                       if (ar == null)
-                               throw new ArgumentException ("Invalid IAsyncResult", "asyncResult");
-
-                       ReadDelegate d = ar.AsyncDelegate as ReadDelegate;
-                       if (d == null)
-                               throw new ArgumentException ("Invalid IAsyncResult", "asyncResult");
-
-                       return d.EndInvoke (asyncResult);
-               }
-
-       }
-}
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;
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
+       }
+}
index addcc28907b34daf68df5df074737ff54133e8f3..b7cc92386f56e22d45233c602cf995a8198daf1a 100644 (file)
@@ -29,6 +29,7 @@
 //
 
 using System.Collections;
+using System.Collections.Generic;
 using System.Globalization;
 using System.IO;
 using System.Text;
@@ -114,13 +115,13 @@ namespace System.Net
                {
                        int count = chunks.Count;
                        int nread = 0;
+
+                       var chunksForRemoving = new List<Chunk>(count);
                        for (int i = 0; i < count; i++) {
                                Chunk chunk = (Chunk) chunks [i];
-                               if (chunk == null)
-                                       continue;
 
                                if (chunk.Offset == chunk.Bytes.Length) {
-                                       chunks [i] = null;
+                                       chunksForRemoving.Add(chunk);
                                        continue;
                                }
                                
@@ -129,6 +130,9 @@ namespace System.Net
                                        break;
                        }
 
+                       foreach (var chunk in chunksForRemoving)
+                               chunks.Remove(chunk);
+
                        return nread;
                }
                
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 87f60363da8a4306b543420ccf085a142b764d2e..295ee6757dc9c6df48202cbe65feb22dc4fdf17d 100644 (file)
@@ -45,8 +45,8 @@ namespace System.Net
                int readBufferOffset;
                int readBufferSize;
                int stream_length; // -1 when CL not present
-               int contentLength;
-               int totalRead;
+               long contentLength;
+               long totalRead;
                internal long totalWritten;
                bool nextReadCalled;
                int pendingReads;
@@ -93,10 +93,10 @@ namespace System.Net
                                                ReadAll ();
                                        }
                                } catch {
-                                       contentLength = Int32.MaxValue;
+                                       contentLength = Int64.MaxValue;
                                }
                        } else {
-                               contentLength = Int32.MaxValue;
+                               contentLength = Int64.MaxValue;
                        }
 
                        // Negative numbers?
@@ -208,7 +208,7 @@ namespace System.Net
                internal void ForceCompletion ()
                {
                        if (!nextReadCalled) {
-                               if (contentLength == Int32.MaxValue)
+                               if (contentLength == Int64.MaxValue)
                                        contentLength = 0;
                                nextReadCalled = true;
                                cnc.NextRead ();
@@ -244,7 +244,7 @@ namespace System.Net
                                int diff = readBufferSize - readBufferOffset;
                                int new_size;
 
-                               if (contentLength == Int32.MaxValue) {
+                               if (contentLength == Int64.MaxValue) {
                                        MemoryStream ms = new MemoryStream ();
                                        byte [] buffer = null;
                                        if (readBuffer != null && diff > 0) {
@@ -264,7 +264,7 @@ namespace System.Net
                                        new_size = (int) ms.Length;
                                        contentLength = new_size;
                                } else {
-                                       new_size = contentLength - totalRead;
+                                       new_size = (int) (contentLength - totalRead);
                                        b = new byte [new_size];
                                        if (readBuffer != null && diff > 0) {
                                                if (diff > new_size)
@@ -384,8 +384,8 @@ namespace System.Net
                        if (cb != null)
                                cb = cb_wrapper;
 
-                       if (contentLength != Int32.MaxValue && contentLength - totalRead < size)
-                               size = contentLength - totalRead;
+                       if (contentLength != Int64.MaxValue && contentLength - totalRead < size)
+                               size = (int)(contentLength - totalRead);
 
                        if (!read_eof) {
                                result.InnerAsyncResult = cnc.BeginRead (request, buffer, offset, size, cb, result);
@@ -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 92d03b6397e4c7aea64ca7102f5f0fdf05bb4139..83ee323b86bf5e4ed39dc9ddcedffff988df8c8e 100644 (file)
@@ -188,7 +188,6 @@ System.IO/InternalBufferOverflowException.cs
 System.IO/InvalidDataException.cs
 System.IO/IODescriptionAttribute.cs
 System.IO/KeventWatcher.cs
-System.IO/MonoSyncFileStream.cs
 System.IO/NotifyFilters.cs
 System.IO.Ports/Handshake.cs
 System.IO.Ports/ISerialStream.cs
@@ -296,6 +295,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 +335,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 +408,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 +511,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,8 +1011,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 b8fde520c9270b1ccff1d0adcaed5a39865f92e3..d4372a1ddddc76083a6022ab54d46aa4212ec533 100644 (file)
@@ -732,8 +732,6 @@ namespace MonoTests.System.Diagnostics
 
                public int bytesRead = -1;
 
-// Not technically a 2.0 only test, but I use lambdas, so I need gmcs
-
                [Test]
                [NUnit.Framework.Category ("MobileNotWorking")]
                // This was for bug #459450
@@ -791,9 +789,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 +803,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 +823,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 +835,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]
@@ -925,6 +938,21 @@ namespace MonoTests.System.Diagnostics
                        p.Dispose ();
                }
 
+               [Test]
+               [NUnit.Framework.Category ("MobileNotWorking")]
+               public void StandardInputWrite ()
+               {
+                       var psi = GetCrossPlatformStartInfo ();
+                       psi.RedirectStandardInput = true;
+                       psi.RedirectStandardOutput = true;
+                       psi.UseShellExecute = false;
+
+                       using (var p = Process.Start (psi)) {
+                               for (int i = 0; i < 1024 * 9; ++i)
+                                       p.StandardInput.Write ('x');
+                       }
+               }
+
                [Test]
                public void Modules () {
                        var modules = Process.GetCurrentProcess ().Modules;
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..715c748d1f5fe0cb703014e012db8fce842f0993 100644 (file)
@@ -48,6 +48,7 @@ namespace MonoTests.System.Net.WebSockets
                }
 
                [Test]
+               [Category ("MobileNotWorking")] // 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 ("MobileNotWorking")] // 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 ("MobileNotWorking")] // 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 ("MobileNotWorking")] // 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 ("MobileNotWorking")] // 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 ("MobileNotWorking")] // 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 ("MobileNotWorking")] // 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 ("MobileNotWorking")] // 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 ("MobileNotWorking")] // 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 ("MobileNotWorking")] // 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 ("MobileNotWorking")] // 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 a0a649376af9d09aab8c24be09f7f422d69c1a08..21ba2faffdc80932b46ded288e45cf91d484c752 100644 (file)
@@ -6,6 +6,7 @@
 //   Martin Willemoes Hansen (mwh@sysrq.dk)
 //   Gonzalo Paniagua Javier (gonzalo@ximian.com)
 //   Andres G. Aragoneses (andres@7digital.com)
+//   Bogdanov Kirill (bogdanov@macroscop.com)
 //
 // (C) 2003 Martin Willemoes Hansen
 // Copyright (c) 2005 Novell, Inc. (http://www.novell.com
@@ -70,7 +71,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");
 
@@ -123,14 +124,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;
@@ -2300,6 +2302,88 @@ namespace MonoTests.System.Net
 
                        return;
                }
+               
+               [Test]
+               public void TestLargeDataReading ()
+               {
+                       const int internalBufferSize = 16 * 1024 * 1024;
+                       AutoResetEvent readyGetLastPortionEvent = new AutoResetEvent (false);
+                       AssertionException testException = null;
+
+                       DoRequest (
+                       (request, waitHandle) =>
+                       {
+                               try
+                               {
+                                       const int timeoutMs = 5000;
+
+                                       request.Timeout = timeoutMs;
+                                       request.ReadWriteTimeout = timeoutMs;
+
+                                       if (Type.GetType ("Mono.Runtime") == null)
+                                               //significantly increases speed of test on MS .NET, because default value       
+                                               //of receive buffer is about 8192 bytes. doesn't implemented now on Mono.
+                                               request.ServicePoint.ReceiveBufferSize = internalBufferSize;
+
+                                       WebResponse webResponse = request.GetResponse ();
+                                       Stream webResponseStream = webResponse.GetResponseStream ();
+                                       Assert.IsNotNull (webResponseStream, null, "#1");
+
+                                       int totalRead = 0;
+                                       byte[] readBuffer = new byte[internalBufferSize];
+
+                                       while (totalRead < int.MaxValue) {
+                                               int read = webResponseStream.Read (readBuffer, 0, readBuffer.Length);
+                                               Assert.Greater (read, 0, "#2");
+                                               totalRead += read;
+                                               Assert.Greater (totalRead, 0, "#3");
+                                       }
+
+                                       Assert.AreEqual (totalRead, int.MaxValue, "#4");
+                                       readyGetLastPortionEvent.Set ();
+                                       Assert.Greater (webResponseStream.Read (readBuffer, 0, readBuffer.Length), 0, "#5");
+                               }
+                               catch (AssertionException e)
+                               {
+                                       testException = e;
+                               }
+                               finally
+                               {
+                                       waitHandle.Set ();
+                               }
+                       },
+                       processor =>
+                       {
+                               processor.Request.InputStream.Close ();
+
+                               HttpListenerResponse response = processor.Response;
+                               response.SendChunked = true;
+
+                               Stream outputStream = response.OutputStream;
+
+                               long totalWritten = 0;
+                               byte[] writeBuffer = new byte[internalBufferSize];
+
+                               while (totalWritten < int.MaxValue) {
+                                       int size;
+
+                                       if (totalWritten + writeBuffer.Length < int.MaxValue)
+                                               size = writeBuffer.Length;
+                                       else
+                                               size = (int) (int.MaxValue - totalWritten);
+
+                                       outputStream.Write (writeBuffer, 0, size);
+                                       totalWritten += size;
+                               }
+
+                               readyGetLastPortionEvent.WaitOne ();
+                               outputStream.Write (writeBuffer, 0, writeBuffer.Length);
+                               response.Close ();
+                       }, 60 * 1000);
+
+                       if (testException != null)
+                               throw testException;
+               }
 
                void DoRequest (Action<HttpWebRequest, EventWaitHandle> request)
                {
@@ -2315,7 +2399,7 @@ namespace MonoTests.System.Net
                                Assert.Fail ("Test hung");
                }
 
-               void DoRequest (Action<HttpWebRequest, EventWaitHandle> request, Action<HttpListenerContext> processor)
+               void DoRequest (Action<HttpWebRequest, EventWaitHandle> request, Action<HttpListenerContext> processor, int timeoutMs = 10000)
                {
                        int port = NetworkHelpers.FindFreePort ();
 
@@ -2330,12 +2414,11 @@ namespace MonoTests.System.Net
 
                                ThreadPool.QueueUserWorkItem ((o) => request (client, completed [1]));
 
-                               if (!WaitHandle.WaitAll (completed, 10000))
+                               if (!WaitHandle.WaitAll (completed, timeoutMs))
                                        Assert.Fail ("Test hung.");
                        }
                }
 
-#if NET_4_0
                [Test]
                [ExpectedException (typeof (ArgumentNullException))]
                public void NullHost ()
@@ -2495,7 +2578,6 @@ namespace MonoTests.System.Net
                                ;
                        }
                }
-#endif
 
 #if NET_4_5
                [Test]
@@ -2814,6 +2896,7 @@ namespace MonoTests.System.Net
                }
 
                [Test]
+               [Category("MobileNotWorking")]
                public void BeginWrite_Request_Aborted ()
                {
                        IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
@@ -3307,7 +3390,6 @@ namespace MonoTests.System.Net
                        }
                }
 
-#if NET_4_0
                [Test]
                // Bug6737
                // This test is supposed to fail prior to .NET 4.0
@@ -3320,7 +3402,6 @@ namespace MonoTests.System.Net
                        var gr = wr.BeginGetResponse (delegate { }, null);
                        Assert.AreEqual (true, gr.AsyncWaitHandle.WaitOne (5000), "#1");
                }
-#endif
        }
 
        static class StreamExtensions {
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 133d293271e74d8da5d4c3f1ed28e8030bd78f8c..4b42be97f22f5ab5fc052097ed1a42e5a61da720 100644 (file)
@@ -1417,6 +1417,7 @@ 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 = NetworkHelpers.LocalEphemeralEndPoint ();
@@ -1783,6 +1784,7 @@ 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 (9301, (webClient, uri, cancelEvent) =>
@@ -1799,6 +1801,7 @@ 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 (9302, (webClient, uri, cancelEvent) =>
@@ -1814,6 +1817,7 @@ 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 (9303, (webClient, uri, cancelEvent) =>
@@ -1829,6 +1833,7 @@ 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 (9304,(webClient, uri, cancelEvent) =>
@@ -1847,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/";
@@ -1869,7 +1875,6 @@ namespace MonoTests.System.Net
                }
 #endif
 
-#if NET_4_0
                public void UploadAsyncCancelEventTest (int port, Action<WebClient, Uri, EventWaitHandle> uploadAction)
                {
                        var ep = NetworkHelpers.LocalEphemeralEndPoint ();
@@ -1893,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 33484e5326d6ef031b9c9847ffcc11d7e073f185..beebf4dfc5b1b547974c42da95cc52ce84ca7126 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 072decc6f82e1af486a258469c9aef874474e22d..06d36fe18732550de466b65ff537e447867efb0f 100644 (file)
@@ -28,7 +28,6 @@ System.IO.Compression/DeflateStream.cs
 System.IO.Compression/GZipStream.cs
 System.IO/InternalBufferOverflowException.cs
 System.IO/InvalidDataException.cs
-System.IO/MonoSyncFileStream.cs
 System.Net.Cache/HttpCacheAgeControl.cs
 System.Net.Cache/HttpRequestCacheLevel.cs
 System.Net.Cache/HttpRequestCachePolicy.cs
@@ -49,6 +48,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 +107,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 +188,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 +318,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 +694,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,7 +731,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
@@ -738,3 +751,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
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 d6586ab4d5e18d7b349e5e0e04a99fa9d29e7805..06546720d6ca05c20fefb65c31797a4ed3d62fa1 100644 (file)
@@ -125,7 +125,8 @@ namespace System.IO.Packaging {
 
                private PackageRelationship CreateRelationship (Uri targetUri, TargetMode targetMode, string relationshipType, string id, bool loading)
                {
-                       Package.CheckIsReadOnly ();
+                       if (!loading)
+                               Package.CheckIsReadOnly ();
                        Check.TargetUri (targetUri);
                        Check.RelationshipTypeIsValid (relationshipType);
                        Check.IdIsValid (id);
index ad7eb968c3ad5bce626e29b73d8698c86e56d54a..06ed852c52b75c8eceadeb48865aa69da6b99c1b 100644 (file)
@@ -369,5 +369,19 @@ namespace MonoTests.System.IO.Packaging {
         {\r
                Assert.IsFalse (package.PartExists(new Uri ("[Content_Types].xml", UriKind.Relative)));\r
         }\r
+\r
+        [Test]\r
+        public void CheckCanGetRelationshipsIfReadOnly ()\r
+        {\r
+            using (var stream = new MemoryStream ()) {\r
+                var package = Package.Open (stream, FileMode.OpenOrCreate);\r
+                var part = package.CreatePart (uris [0], contentType);\r
+                part.CreateRelationship (part.Uri, TargetMode.Internal, "self");\r
+                package.Close ();\r
+                package = Package.Open (new MemoryStream (stream.ToArray ()), FileMode.Open, FileAccess.Read);\r
+                part = package.GetPart (uris [0]);\r
+                part.GetRelationships ();\r
+            }\r
+        }\r
     }\r
 }\r
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 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 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 3e775808fdc04a97de3a8adc125948cd2f9b4d7d..4b90b6fe8aeb9d55ea39d9c5475df0e47e4600d7 100644 (file)
@@ -57,6 +57,7 @@ namespace System.Diagnostics {
                public const int METHODS_TO_SKIP = 0;
 
                private StackFrame[] frames;
+               readonly StackTrace[] captured_traces;
                private bool debug_info;
 
                public StackTrace ()
@@ -119,11 +120,6 @@ namespace System.Diagnostics {
                }
 
                public StackTrace (Exception e, int skipFrames, bool fNeedFileInfo)
-                       : this (e, skipFrames, fNeedFileInfo, false)
-               {
-               }
-
-               internal StackTrace (Exception e, int skipFrames, bool fNeedFileInfo, bool returnNativeFrames)
                {
                        if (e == null)
                                throw new ArgumentNullException ("e");
@@ -132,22 +128,7 @@ namespace System.Diagnostics {
 
                        frames = get_trace (e, skipFrames, fNeedFileInfo);
 
-                       if (!returnNativeFrames) {
-                               bool resize = false;
-                               for (int i = 0; i < frames.Length; ++i)
-                                       if (frames [i].GetMethod () == null)
-                                               resize = true;
-
-                               if (resize) {
-                                       var l = new List<StackFrame> ();
-
-                                       for (int i = 0; i < frames.Length; ++i)
-                                               if (frames [i].GetMethod () != null)
-                                                       l.Add (frames [i]);
-
-                                       frames = l.ToArray ();
-                               }
-                       }
+                       captured_traces = e.captured_traces;
                }
 
                public StackTrace (StackFrame frame)
@@ -189,21 +170,14 @@ namespace System.Diagnostics {
                        return frames;
                }
 
-               internal bool AddFrames (StringBuilder sb, bool isException = false)
+               bool AddFrames (StringBuilder sb)
                {
                        bool printOffset;
                        string debugInfo, indentation;
                        string unknown = Locale.GetText ("<unknown method>");
 
-                       if (isException) {
-                               printOffset = true;
-                               indentation = "  ";
-                               debugInfo = Locale.GetText (" in {0}:{1} ");
-                       } else {
-                               printOffset = false;
-                               indentation = "   ";
-                               debugInfo = Locale.GetText (" in {0}:line {1}");
-                       }
+                       indentation = "  ";
+                       debugInfo = Locale.GetText (" in {0}:{1} ");
 
                        var newline = String.Format ("{0}{1}{2} ", Environment.NewLine, indentation,
                                        Locale.GetText ("at"));
@@ -220,21 +194,17 @@ namespace System.Diagnostics {
                                        string internal_name = frame.GetInternalMethodName ();
                                        if (internal_name != null)
                                                sb.Append (internal_name);
-                                       else if (printOffset)
-                                               sb.AppendFormat ("<0x{0:x5} + 0x{1:x5}> {2}", frame.GetMethodAddress (), frame.GetNativeOffset (), unknown);
                                        else
-                                               sb.AppendFormat (unknown);
+                                               sb.AppendFormat ("<0x{0:x5} + 0x{1:x5}> {2}", frame.GetMethodAddress (), frame.GetNativeOffset (), unknown);
                                } else {
                                        GetFullNameForStackTrace (sb, frame.GetMethod ());
 
-                                       if (printOffset) {
-                                               if (frame.GetILOffset () == -1) {
-                                                       sb.AppendFormat (" <0x{0:x5} + 0x{1:x5}>", frame.GetMethodAddress (), frame.GetNativeOffset ());
-                                                       if (frame.GetMethodIndex () != 0xffffff)
-                                                               sb.AppendFormat (" {0}", frame.GetMethodIndex ());
-                                               } else {
-                                                       sb.AppendFormat (" [0x{0:x5}]", frame.GetILOffset ());
-                                               }
+                                       if (frame.GetILOffset () == -1) {
+                                               sb.AppendFormat (" <0x{0:x5} + 0x{1:x5}>", frame.GetMethodAddress (), frame.GetNativeOffset ());
+                                               if (frame.GetMethodIndex () != 0xffffff)
+                                                       sb.AppendFormat (" {0}", frame.GetMethodIndex ());
+                                       } else {
+                                               sb.AppendFormat (" [0x{0:x5}]", frame.GetILOffset ());
                                        }
 
                                        sb.AppendFormat (debugInfo, frame.GetSecureFileName (),
@@ -306,6 +276,21 @@ namespace System.Diagnostics {
                public override string ToString ()
                {
                        StringBuilder sb = new StringBuilder ();
+
+                       //
+                       // Add traces captured using ExceptionDispatchInfo
+                       //
+                       if (captured_traces != null) {
+                               foreach (var t in captured_traces) {
+                                       if (!t.AddFrames (sb))
+                                               continue;
+
+                                       sb.Append (Environment.NewLine);
+                                       sb.Append ("--- End of stack trace from previous location where exception was thrown ---");
+                                       sb.Append (Environment.NewLine);
+                               }
+                       }
+
                        AddFrames (sb);
                        return sb.ToString ();
                }
index 610247d2e088429f6ca9d36eda5bbea5c5516218..9de058fbb3a3a42800baa9f25b84bb13b948515a 100644 (file)
@@ -73,12 +73,12 @@ namespace System.IO
                        : this (handle, access, ownsHandle, bufferSize, isAsync, false) {}
 
                [SecurityPermission (SecurityAction.Demand, UnmanagedCode = true)]
-               internal FileStream (IntPtr handle, FileAccess access, bool ownsHandle, int bufferSize, bool isAsync, bool isZeroSize)
+               internal FileStream (IntPtr handle, FileAccess access, bool ownsHandle, int bufferSize, bool isAsync, bool isConsoleWrapper)
                {
                        if (handle == MonoIO.InvalidHandle)
                                throw new ArgumentException ("handle", Locale.GetText ("Invalid."));
 
-                       Init (new SafeFileHandle (handle, false), access, ownsHandle, bufferSize, isAsync, isZeroSize);
+                       Init (new SafeFileHandle (handle, false), access, ownsHandle, bufferSize, isAsync, isConsoleWrapper);
                }
 
                // construct from filename
@@ -113,7 +113,6 @@ namespace System.IO
                {
                }
 
-#if !NET_2_1
                public FileStream (SafeFileHandle handle, FileAccess access)
                        :this(handle, access, DefaultBufferSize, false)
                {
@@ -130,6 +129,7 @@ namespace System.IO
                        Init (handle, access, false, bufferSize, isAsync, false);
                }
 
+#if !MOBILE
                [MonoLimitation ("This ignores the rights parameter")]
                public FileStream (string path, FileMode mode,
                                   FileSystemRights rights, FileShare share,
@@ -291,10 +291,14 @@ namespace System.IO
                        }
                }
 
-               private void Init (SafeFileHandle safeHandle, FileAccess access, bool ownsHandle, int bufferSize, bool isAsync, bool isZeroSize)
+               private void Init (SafeFileHandle safeHandle, FileAccess access, bool ownsHandle, int bufferSize, bool isAsync, bool isConsoleWrapper)
                {
+                       if (!isConsoleWrapper && safeHandle.IsInvalid)
+                               throw new ArgumentException(Environment.GetResourceString("Arg_InvalidHandle"), "handle");
                        if (access < FileAccess.Read || access > FileAccess.ReadWrite)
                                throw new ArgumentOutOfRangeException ("access");
+                       if (!isConsoleWrapper && bufferSize <= 0)
+                               throw new ArgumentOutOfRangeException("bufferSize", Environment.GetResourceString("ArgumentOutOfRange_NeedPosNum"));
 
                        MonoIOError error;
                        MonoFileType ftype = MonoIO.GetFileType (safeHandle, out error);
@@ -411,10 +415,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);
                        }
                }
diff --git a/mcs/class/corlib/System.IO/IntPtrStream.cs b/mcs/class/corlib/System.IO/IntPtrStream.cs
deleted file mode 100644 (file)
index 40b1c58..0000000
+++ /dev/null
@@ -1,216 +0,0 @@
-//
-// System.IO.IntPtrStream: A stream that is backed up by unmanaged memory
-//
-// Author:
-//   Miguel de Icaza (miguel@ximian.com)
-//
-// Based on the code for MemoryStream.cs:
-//
-// Authors:    Marcin Szczepanski (marcins@zipworld.com.au)
-//             Patrik Torstensson
-//             Gonzalo Paniagua Javier (gonzalo@ximian.com)
-//
-// (c) 2001,2002 Marcin Szczepanski, Patrik Torstensson
-// (c) 2003 Ximian, Inc. (http://www.ximian.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.Runtime.InteropServices;
-namespace System.IO {
-
-       internal class IntPtrStream : Stream {
-               unsafe byte *base_address;
-               int size;
-               int position;
-               bool closed;
-
-               public event EventHandler Closed;
-               
-               public IntPtrStream (IntPtr base_address, int size)
-               {
-                       unsafe {
-                               this.base_address = (byte*)((void *)base_address);
-                       }
-                       this.size = size;
-                       position = 0;
-               }
-
-               internal IntPtr BaseAddress {
-                       get {
-                               unsafe {
-                                       return new IntPtr ((void*) base_address);
-                               }
-                       }
-               }
-
-               public override bool CanRead {
-                       get {
-                               return true;
-                       }
-               }
-
-               public override bool CanSeek {
-                       get {
-                               return true;
-                       }
-               }
-
-               public override bool CanWrite {
-                       get {
-                               return false;
-                       }
-               }
-
-               public override long Position {
-                       get {
-                               return position;
-                       }
-
-                       set {
-                               if (position < 0)
-                                       throw new ArgumentOutOfRangeException ("Position", "Can not be negative");
-                               if (position > size)
-                                       throw new ArgumentOutOfRangeException ("Position", "Pointer falls out of range");
-
-                               position = (int) value;
-                       }
-               }
-
-               public override long Length {
-                       get {
-                               return size;
-                       }
-               }
-
-               public override int Read (byte [] buffer, int offset, int count)
-               {
-                       if (buffer == null)
-                               throw new ArgumentNullException ("buffer");
-
-                       if (offset < 0 || count < 0)
-                               throw new ArgumentOutOfRangeException ("offset or count less than zero.");
-
-                       if (buffer.Length - offset < count )
-                               throw new ArgumentException ("offset+count",
-                                                             "The size of the buffer is less than offset + count.");
-
-                       if (closed)
-                               throw new ObjectDisposedException ("Stream has been closed");
-
-                       if (position >= size || count == 0)
-                               return 0;
-
-                       if (position > size - count)
-                               count = size - position;
-
-                       unsafe {
-                               Marshal.Copy ((IntPtr) (base_address + position), buffer, offset, count);
-                       }
-                       position += count;
-                       return count;
-               }
-
-               public override int ReadByte ()
-               {
-                       if (position >= size)
-                               return -1;
-
-                       if (closed)
-                               throw new ObjectDisposedException ("Stream has been closed");
-
-                       unsafe {
-                               return base_address [position++];
-                       }
-               }
-
-               public override long Seek (long offset, SeekOrigin loc)
-               {
-                       // It's funny that they don't throw this exception for < Int32.MinValue
-                       if (offset > (long) Int32.MaxValue)
-                               throw new ArgumentOutOfRangeException ("Offset out of range. " + offset);
-
-                       if (closed)
-                               throw new ObjectDisposedException ("Stream has been closed");
-
-                       int ref_point;
-                       switch (loc) {
-                       case SeekOrigin.Begin:
-                               if (offset < 0)
-                                       throw new IOException ("Attempted to seek before start of MemoryStream.");
-                               ref_point = 0;
-                               break;
-                       case SeekOrigin.Current:
-                               ref_point = position;
-                               break;
-                       case SeekOrigin.End:
-                               ref_point = size;
-                               break;
-                       default:
-                               throw new ArgumentException ("loc", "Invalid SeekOrigin");
-                       }
-
-                       checked {
-                               try {
-                                       ref_point += (int) offset;
-                               } catch {
-                                       throw new ArgumentOutOfRangeException ("Too large seek destination");
-                               }
-                               
-                               if (ref_point < 0)
-                                       throw new IOException ("Attempted to seek before start of MemoryStream.");
-                       }
-
-                       position = ref_point;
-                       return position;
-               }
-               
-               public override void SetLength (long value)
-               {
-                       throw new NotSupportedException ("This stream can not change its size");
-               }
-
-               public override void Write (byte [] buffer, int offset, int count)
-               {
-                       throw new NotSupportedException ("This stream can not change its size");
-               }
-
-               public override void WriteByte (byte value)
-               {
-                       throw new NotSupportedException ("This stream can not change its size");
-               }
-               
-               public override void Flush ()
-               {
-               }
-
-               public override void Close ()
-               {
-                       closed = true;
-
-                       if (Closed != null)
-                               Closed (this, null);
-               }
-       }
-}
index e195b080e88a46caf773b94523756541894c0c7b..9d816f40a5952a5e7edcb570a187b34eec2d5427 100644 (file)
@@ -599,9 +599,6 @@ namespace System.IO
                        [MethodImplAttribute (MethodImplOptions.InternalCall)]
                        get;
                }
-
-               [MethodImplAttribute (MethodImplOptions.InternalCall)]
-               public extern static int GetTempPath(out string path);
        }
 }
 
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)
                {
index d884714401b27c3fcad2e58eacdde330a594f1aa..54907bb874ca0c05e924f0e48eafeb5b5ce25fec 100644 (file)
@@ -131,7 +131,7 @@ namespace System.Reflection {
                        return MonoCustomAttrs.GetCustomAttributesData (target);
                }
 
-               public Type AttributeType {
+               public virtual Type AttributeType {
                        get { return ctorInfo.DeclaringType; }
                }
 
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 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
-       }
-}
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 deb3eaf4bf76735cd197474d7f5775dcfda30b09..99c5236a7ddf1a7f587168c4f624b3918b87e1a9 100644 (file)
@@ -210,7 +210,8 @@ namespace System
                private static Stream Open (IntPtr handle, FileAccess access, int bufferSize)
                {
                        try {
-                               return new FileStream (handle, access, false, bufferSize, false, bufferSize == 0);
+                               // TODO: Should use __ConsoleStream from reference sources
+                               return new FileStream (handle, access, false, bufferSize, false, true);
                        } catch (IOException) {
                                return Stream.Null;
                        }
index 97642c44dedef3edaa2397b3eec0dc2c07315703..81cad6caa28da0b0d63223001a93013b2d172e48 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 = 136;
 #pragma warning restore 169
 
                [ComVisible (true)]
index 7670ce338e693a9c88343b870db8fb51d178ac95..e07d2e85b62917446160a44c05574c47afa90d0f 100644 (file)
@@ -69,6 +69,7 @@ namespace System
                IDictionary _data;
                internal StackTrace[] captured_traces;
                IntPtr[] native_trace_ips;
+               object dynamic_methods;
                #endregion
 #pragma warning restore 169, 649
 
@@ -199,26 +200,8 @@ namespace System
                                        /* Not thrown yet */
                                        return null;
 
-                               StringBuilder sb = new StringBuilder ();
-
-                               // Add traces captured using ExceptionDispatchInfo
-                               if (captured_traces != null) {
-                                       foreach (var t in captured_traces) {
-                                               if (!t.AddFrames (sb, true))
-                                                       continue;
-
-                                               sb.Append (Environment.NewLine);
-                                               sb.Append ("--- End of stack trace from previous location where exception was thrown ---");
-                                               sb.Append (Environment.NewLine);
-                                       }
-                               }
-
-                               StackTrace st = new StackTrace (this, 0, true, true);
-                               st.AddFrames (sb, true);
-
-                               stack_trace = sb.ToString ();
-
-                               return stack_trace;
+                               StackTrace st = new StackTrace (this, 0, true);
+                               return stack_trace = st.ToString ();
                        }
                }
 
@@ -316,6 +299,7 @@ namespace System
                {
                        captured_traces = (StackTrace[]) exceptionDispatchInfo.BinaryStackTraceArray;
                        trace_ips = null;
+                       stack_trace = null;
                }
 
                //
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 8c661389b351873fafe0da6464dda2077e69bc94..45475e910b5caebc26b28d8ce92b16e5b026b2ef 100644 (file)
@@ -266,7 +266,7 @@ namespace System {
                        return timeZoneInfo;
                }
 
-               static void GetSystemTimeZones (List<TimeZoneInfo> systemTimeZones)
+               static void GetSystemTimeZonesCore (List<TimeZoneInfo> systemTimeZones)
                {
                        foreach (string id in AndroidTimeZones.GetAvailableIds ()) {
                                var tz = AndroidTimeZones.GetTimeZone (id, id);
index 3db0c0ab646d33141b3a373c49c7f557b43817d7..ba161b3f2e2f37856954f3f1be325ab10f286ee3 100644 (file)
@@ -58,7 +58,7 @@ namespace System {
                        }
                }
 
-               static void GetSystemTimeZones (List<TimeZoneInfo> systemTimeZones)
+               static void GetSystemTimeZonesCore (List<TimeZoneInfo> systemTimeZones)
                {
                        foreach (string name in GetMonoTouchNames ()) {
                                using (Stream stream = GetMonoTouchData (name, false)) {
index 6babee889ca384c087d538644829ade8c5fdfee8..d3fc6ff2c6615a6614d78497aab908a3d13d5bd6 100644 (file)
@@ -33,6 +33,7 @@ using System.Threading;
 using System.Collections.Generic;
 using System.Collections.ObjectModel;
 using System.Runtime.Serialization;
+using System.Runtime.InteropServices;
 using System.Text;
 using System.Globalization;
 using System.IO;
@@ -89,6 +90,58 @@ namespace System
                */
                private List<KeyValuePair<DateTime, TimeType>> transitions;
 
+               private static bool libcNotFound;
+
+               [DllImport ("libc")]
+               private static extern int readlink (string path, byte[] buffer, int buflen);
+
+               private static string readlink (string path)
+               {
+                       if (libcNotFound)
+                               return null;
+
+                       byte[] buf = new byte [512];
+                       int ret;
+
+                       try {
+                               ret = readlink (path, buf, buf.Length);
+                       } catch (DllNotFoundException e) {
+                               libcNotFound = true;
+                               return null;
+                       }
+
+                       if (ret == -1) return null;
+                       char[] cbuf = new char [512];
+                       int chars = System.Text.Encoding.Default.GetChars (buf, 0, ret, cbuf, 0);
+                       return new String (cbuf, 0, chars);
+               }
+
+               private static bool TryGetNameFromPath (string path, out string name)
+               {
+                       name = null;
+                       var linkPath = readlink (path);
+                       if (linkPath != null)
+                               path = linkPath;
+
+                       path = Path.GetFullPath (path);
+
+                       if (string.IsNullOrEmpty (TimeZoneDirectory))
+                               return false;
+
+                       var baseDir = TimeZoneDirectory;
+                       if (baseDir [baseDir.Length-1] != Path.DirectorySeparatorChar)
+                               baseDir += Path.DirectorySeparatorChar;
+
+                       if (!path.StartsWith (baseDir, StringComparison.InvariantCulture))
+                               return false;
+
+                       name = path.Substring (baseDir.Length);
+                       if (name == "localtime")
+                               name = "Local";
+
+                       return true;
+               }
+
 #if !MOBILE || MOBILE_STATIC
                static TimeZoneInfo CreateLocal ()
                {
@@ -114,15 +167,22 @@ namespace System
                                }
                        }
 
-                       try {
-                               return FindSystemTimeZoneByFileName ("Local", "/etc/localtime");        
-                       } catch (TimeZoneNotFoundException) {
+                       var tzFilePaths = new string [] {
+                               "/etc/localtime",
+                               Path.Combine (TimeZoneDirectory, "localtime")};
+
+                       foreach (var tzFilePath in tzFilePaths) {
                                try {
-                                       return FindSystemTimeZoneByFileName ("Local", Path.Combine (TimeZoneDirectory, "localtime"));   
+                                       string tzName = null;
+                                       if (!TryGetNameFromPath (tzFilePath, out tzName))
+                                               tzName = "Local";
+                                       return FindSystemTimeZoneByFileName (tzName, tzFilePath);
                                } catch (TimeZoneNotFoundException) {
-                                       return Utc;
+                                       continue;
                                }
                        }
+
+                       return Utc;
                }
 
                static TimeZoneInfo FindSystemTimeZoneByIdCore (string id)
@@ -135,7 +195,7 @@ namespace System
 #endif
                }
 
-               static void GetSystemTimeZones (List<TimeZoneInfo> systemTimeZones)
+               static void GetSystemTimeZonesCore (List<TimeZoneInfo> systemTimeZones)
                {
 #if !MOBILE_STATIC
                        if (TimeZoneKey != null) {
@@ -150,7 +210,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))) {
@@ -651,7 +711,7 @@ namespace System
                {
                        if (systemTimeZones == null) {
                                var tz = new List<TimeZoneInfo> ();
-                               GetSystemTimeZones (tz);
+                               GetSystemTimeZonesCore (tz);
                                Interlocked.CompareExchange (ref systemTimeZones, new ReadOnlyCollection<TimeZoneInfo> (tz), null);
                        }
 
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 760e5da656e25344459190d2954fe282dd088be4..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
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..dca54d652affc4eb71ca1c2c335bc4b7ffdfe327 100644 (file)
@@ -16,6 +16,7 @@ using System.IO;
 using System.Runtime.InteropServices;
 using System.Text;
 using System.Threading;
+using Microsoft.Win32.SafeHandles;
 
 namespace MonoTests.System.IO
 {
@@ -87,12 +88,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 +113,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 +141,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 +166,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 +194,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 +221,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 +346,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");
@@ -1654,6 +1679,17 @@ namespace MonoTests.System.IO
                                DeleteFile (path);
                        }
                }
+
+               [Test]
+               public void Ctor_InvalidSafeHandle ()
+               {
+                       var sf = new SafeFileHandle (IntPtr.Zero, true);
+                       try {
+                               new FileStream (sf, FileAccess.ReadWrite);
+                               Assert.Fail ("#1");
+                       } catch (ArgumentException) {
+                       }
+               }
 #endif
        }
 }
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..c9a00481185d6374280d065700948e97c184f999 100644 (file)
@@ -12,6 +12,8 @@ using System.Reflection;
 using System.Reflection.Emit;
 using System.Runtime.InteropServices;
 using System.Text;
+using System.Diagnostics;
+using System.Runtime.ExceptionServices;
 
 using NUnit.Framework;
 
@@ -477,6 +479,106 @@ namespace MonoTests.System.Reflection.Emit
                        public string Name;
                }
 
+               class ExceptionHandling_Test_Support
+               {
+                       public static Exception Caught;
+                       public static string CaughtStackTrace;
+
+                       public static void ThrowMe ()
+                       {
+                               Caught = null;
+                               CaughtStackTrace = null;
+                               throw new Exception("test");
+                       }
+
+                       public static void Handler (Exception e)
+                       {
+                               Caught = e;
+                               CaughtStackTrace = e.StackTrace.ToString ();
+                       }
+               }
+
+               [Test]
+               public void ExceptionHandling ()
+               {
+                       var method = new DynamicMethod ("", typeof(void), new[] { typeof(int) }, typeof (DynamicMethodTest));
+                       var ig = method.GetILGenerator ();
+
+                       ig.BeginExceptionBlock();
+                       ig.Emit(OpCodes.Call, typeof(ExceptionHandling_Test_Support).GetMethod("ThrowMe"));
+
+                       ig.BeginCatchBlock(typeof(Exception));
+                       ig.Emit(OpCodes.Call, typeof(ExceptionHandling_Test_Support).GetMethod("Handler"));
+                       ig.EndExceptionBlock();
+
+                       ig.Emit(OpCodes.Ret);
+
+                       var invoke = (Action<int>) method.CreateDelegate (typeof(Action<int>));
+                       invoke (456324);
+
+                       Assert.IsNotNull (ExceptionHandling_Test_Support.Caught, "#1");
+                       Assert.AreEqual (2, ExceptionHandling_Test_Support.CaughtStackTrace.Split (new[] { Environment.NewLine }, StringSplitOptions.None).Length, "#2");
+
+                       var st = new StackTrace (ExceptionHandling_Test_Support.Caught, 0, true);
+
+                       // Caught stack trace when dynamic method is gone
+                       Assert.AreEqual (ExceptionHandling_Test_Support.CaughtStackTrace, st.ToString (), "#3");
+
+                       // Catch handler stack trace inside dynamic method match
+                       Assert.AreEqual (ExceptionHandling_Test_Support.Caught.StackTrace, st.ToString (), "#4");
+               }
+
+               class ExceptionHandlingWithExceptionDispatchInfo_Test_Support
+               {
+                       public static Exception Caught;
+                       public static string CaughtStackTrace;
+
+                       public static void ThrowMe ()
+                       {
+                               Caught = null;
+                               CaughtStackTrace = null;
+
+                               Exception e;
+                               try {
+                                       throw new Exception("test");
+                               } catch (Exception e2) {
+                                       e = e2;
+                               }
+
+                               var edi = ExceptionDispatchInfo.Capture(e);
+
+                               edi.Throw();
+                       }
+
+                       public static void Handler (Exception e)
+                       {
+                               var split = e.StackTrace.Split (new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
+                               Assert.AreEqual (5, split.Length, "#1");
+                               Assert.IsTrue (split [1].Contains ("---"), "#2");
+                       }
+               }
+
+               [Test]
+               public void ExceptionHandlingWithExceptionDispatchInfo ()
+               {
+                       var method = new DynamicMethod ("", typeof(void), new[] { typeof(int) }, typeof (DynamicMethodTest));
+                       var ig = method.GetILGenerator ();
+
+                       ig.BeginExceptionBlock();
+                       ig.Emit(OpCodes.Call, typeof(ExceptionHandlingWithExceptionDispatchInfo_Test_Support).GetMethod("ThrowMe"));
+
+                       ig.BeginCatchBlock(typeof(Exception));
+                       ig.Emit(OpCodes.Call, typeof(ExceptionHandlingWithExceptionDispatchInfo_Test_Support).GetMethod("Handler"));
+                       ig.EndExceptionBlock();
+
+                       ig.Emit(OpCodes.Ret);
+
+                       var invoke = (Action<int>) method.CreateDelegate (typeof(Action<int>));
+                       invoke (444);
+               }
+
+#if !MONODROID
+               // RUNTIME: crash
                [Test]
                public void TypedRef ()
                {
@@ -508,6 +610,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 bef832b90c424aabe9d76f11943edbe7947d6671..9c566b4bafcc7111e311a308657b7f7c0922191c 100644 (file)
@@ -30,6 +30,7 @@ using System;
 using NUnit.Framework;
 using System.Runtime.ExceptionServices;
 using System.Threading.Tasks;
+using System.Diagnostics;
 
 namespace MonoTests.System.Runtime.ExceptionServices
 {
@@ -150,7 +151,25 @@ namespace MonoTests.System.Runtime.ExceptionServices
                                Assert.IsTrue (split [1].Contains ("---"), "#2");
                                Assert.IsTrue (split [4].Contains ("---"), "#3");
                        }
-               }               
+               }
+
+               [Test]
+               public void StackTraceUserCopy ()
+               {
+                       try {
+                               try {
+                                       throw new NotImplementedException ();
+                               } catch (Exception e) {
+                                       var edi = ExceptionDispatchInfo.Capture (e);
+                                       edi.Throw();
+                               }
+                       } catch (Exception ex) {
+                               var st = new StackTrace (ex, true);
+                               var split = st.ToString ().Split (new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
+                               Assert.AreEqual (4, split.Length, "#1");
+                               Assert.IsTrue (split [1].Contains ("---"), "#2");
+                       }
+               }
        }
 }
 
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 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 957e55a36c7ab346f53bc326e5005f026e278895..e0b127a0bc708543bfa39f3f3f6d7aa59c6e93ac 100644 (file)
@@ -27,7 +27,6 @@
 //
 //
 
-#if NET_4_0
 
 using System;
 using System.Threading;
@@ -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..537604ec2b73a8ea6bd62446e47732f0f48d8b20 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.IsTrue (double.IsNaN (Math.Pow (             double.NaN,              double.NaN)), "#1");
+                       Assert.IsTrue (double.IsNaN (Math.Pow (             double.NaN, double.NegativeInfinity)), "#2");
+                       Assert.IsTrue (double.IsNaN (Math.Pow (             double.NaN,                      -2)), "#2");
+                       Assert.IsTrue (double.IsNaN (Math.Pow (             double.NaN,                      -1)), "#3");
+                       Assert.IsTrue (double.IsNaN (Math.Pow (             double.NaN,                       0)), "#4");
+                       Assert.IsTrue (double.IsNaN (Math.Pow (             double.NaN,                       1)), "#5");
+                       Assert.IsTrue (double.IsNaN (Math.Pow (             double.NaN,                       2)), "#6");
+                       Assert.IsTrue (double.IsNaN (Math.Pow (             double.NaN, double.PositiveInfinity)), "#7");
+                       Assert.IsTrue (double.IsNaN (Math.Pow (double.NegativeInfinity,              double.NaN)), "#8");
+                       Assert.IsTrue (double.IsNaN (Math.Pow (                     -2,              double.NaN)), "#9");
+                       Assert.IsTrue (double.IsNaN (Math.Pow (                     -1,              double.NaN)), "#10");
+                       Assert.IsTrue (double.IsNaN (Math.Pow (                      0,              double.NaN)), "#11");
+                       Assert.IsTrue (double.IsNaN (Math.Pow (                      1,              double.NaN)), "#12");
+                       Assert.IsTrue (double.IsNaN (Math.Pow (                      2,              double.NaN)), "#13");
+                       Assert.IsTrue (double.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.IsTrue (double.IsNaN (Math.Pow (-1, 2.5)), "#19");
+
+                       /* x = -1; y = NegativeInfinity or PositiveInfinity -> NaN */
+                       Assert.IsTrue (double.IsNaN (Math.Pow (-1, double.PositiveInfinity)), "#20");
+                       Assert.IsTrue (double.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..8648e22df7fb5c482166a760f4c31af2c97134bb 100644 (file)
@@ -28,6 +28,7 @@
 
 using System;
 using System.IO;
+using System.Runtime.InteropServices;
 using System.Runtime.Serialization.Formatters.Binary;
 using System.Collections;
 using System.Reflection;
@@ -50,6 +51,26 @@ namespace MonoTests.System
                                Assert.IsNotNull (local);
                                Assert.IsTrue (true);
                        }
+
+                       [DllImport ("libc")]
+                       private static extern int readlink (string path, byte[] buffer, int buflen);
+
+                       [Test] // Covers #24958
+                       public void LocalId ()
+                       {
+                               byte[] buf = new byte [512];
+
+                               var path = "/etc/localtime";
+                               try {
+                                       var ret = readlink (path, buf, buf.Length);
+                                       if (ret == -1)
+                                               return; // path is not a symbolic link, nothing to test
+                               } catch (DllNotFoundException e) {
+                                       return;
+                               }
+
+                               Assert.IsTrue (TimeZoneInfo.Local.Id != "Local", "Local timezone id should not be \"Local\"");
+                       }
                }
 
                [TestFixture]
@@ -451,11 +472,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);
@@ -694,6 +711,15 @@ namespace MonoTests.System
                                }
                                Assert.Fail ("Europe/Brussels not found in SystemTZ");
                        }
+
+                       [Test]
+                       public void ReflectionReturnsTheCorrectMethod ()
+                       {
+                               var method = (MethodInfo) typeof (TimeZoneInfo).GetMember ("GetSystemTimeZones", MemberTypes.Method, BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic)[0];
+
+                               var timeZones = (global::System.Collections.ObjectModel.ReadOnlyCollection<TimeZoneInfo>) method.Invoke (null, null);
+                               Assert.IsTrue (timeZones.Count > 0, "GetSystemTimeZones should not return an empty collection.");
+                       }
                }
                
                [TestFixture]
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 b0295405208cda32fc1757e486f504d52de5ec62..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
@@ -1000,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
@@ -1223,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
@@ -1239,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
@@ -1575,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/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 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/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
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);
                         }
index e4a980cb115832ec2fcfd7c24a6e4bde09536a35..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
@@ -607,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
@@ -3150,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
@@ -3212,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
@@ -3259,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
@@ -3425,6 +3428,10 @@ semicolon_opt
                        | 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
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 518e2c5ab8f6d659c4aa15361c6eb008b935d96f..02f6f3df77494ae11eec7fda3dd1b388fd94fc9b 100644 (file)
@@ -240,6 +240,7 @@ 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;
@@ -411,6 +412,7 @@ 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)
@@ -430,9 +432,11 @@ namespace Mono.CSharp
                                        ifstack = new Stack<int> (clone);
                                }
                                parsing_generic_less_than = t.parsing_generic_less_than;
+                               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);
@@ -3373,18 +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;
-                                               bool quoted;
-                                               if (parsing_string_interpolation_quoted != null && parsing_string_interpolation_quoted.Count > 0) {
-                                                       quoted = parsing_string_interpolation_quoted.Pop ();
-                                               } else {
-                                                       quoted = false;
+                                               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);
                                                }
 
-                                               return TokenizeInterpolatedString (quoted);
+                                               --string_interpolation_section;
                                        }
 
                                        val = ltb.Create (current_source, ref_line, col);
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 f34ba17146dc0730175ae02197d82dd0aa1e423d..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 ();
                        }
@@ -7360,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);
@@ -7544,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 288a48704608945adee1c955e07cbd896ccbdd31..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)
                {
@@ -2667,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 ());
@@ -6881,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;
                        }
@@ -8267,7 +8292,6 @@ namespace Mono.CSharp
                        return data;
                }
 
-#if NET_4_0 || MOBILE_DYNAMIC
                public override SLE.Expression MakeExpression (BuilderContext ctx)
                {
 #if STATIC
@@ -8284,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
@@ -9726,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;
                                }
                        }
@@ -10589,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)
@@ -10779,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
                }
 
@@ -11178,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;
@@ -11739,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)));
@@ -12553,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 369ee5db92e12ba9d6a7406e0ae4d7601db40a00..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);
@@ -1940,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 42d56ff3334196540490040daf7e8d03c2af4e73..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,6 +430,15 @@ 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)
                {
                        try {
@@ -590,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 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 718fe669922f885d4191817f1de83d06e4543221..cdd1d15172598491583019f1d437a8d4d7d7517d 100644 (file)
@@ -82,8 +82,6 @@ namespace Mono.CSharp
                        }
                }
 
-               public abstract void PrepareEmit ();
-
                protected override bool VerifyClsCompliance ()
                {
                        if (!base.VerifyClsCompliance ())
@@ -1451,6 +1449,8 @@ namespace Mono.CSharp
 
                public override void PrepareEmit ()
                {
+                       base.PrepareEmit ();
+
                        add.PrepareEmit ();
                        remove.PrepareEmit ();
 
@@ -1760,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-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;
-       }
-}
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-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-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-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 8fc5955..0000000
+++ /dev/null
@@ -1,70746 +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-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-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-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>
-    </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-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-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-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-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-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-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 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 7e14ab8a62fe7e42a917c0be74fd0e5417a5c793..75d04c1e21ce9d23a8dd31e477b1cf9b23bc83c4 100644 (file)
@@ -39,7 +39,9 @@ BUILD_TEST_EXE = @\
        mkdir -p $(OUT_DIR); \
        $(MCS) -debug $(TEST_CS) -out:$(TEST_EXE)
 
-check: all
+check: test-local
+
+test-local: all
        $(BUILD_TEST_EXE)
        @echo "Checking $(PROGRAM) without AOT"
        $(CHECK_DIFF)
index c9d6b55d110f354096d384554ddfc309bd3faa38..78e2db9a8986eea92339c3eb772d778dfcd5a1cf 100644 (file)
@@ -9,86 +9,54 @@ class StackTraceDumper {
                        throw new Exception ("Stacktrace with 1 frame");
                } catch (Exception e) {
                        Console.WriteLine (e);
+                       Console.WriteLine ("Stacktrace:");
+                       Console.WriteLine (new System.Diagnostics.StackTrace(e));
                }
 
-               try {
-                       ThrowException ("Stacktrace with 2 frames");
-               } catch (Exception e) {
-                       Console.WriteLine (e);
-               }
+               Catch (() => {throw new Exception ("Stacktrace with 2 frames");});
 
-               try {
-                       ThrowException ("Stacktrace with 3 frames", 2);
-               } catch (Exception e) {
-                       Console.WriteLine (e);
-               }
+               Catch (() => ThrowException ("Stacktrace with 3 frames", 1));
 
-               try {
+               Catch (() => ThrowException ("Stacktrace with 4 frames", 2));
+
+               Catch (() => {
                        var message = "Stack frame with method overload using ref parameter";
                        ThrowException (ref message);
-               } catch (Exception e) {
-                       Console.WriteLine (e);
-               }
+               });
 
-               try {
+               Catch (() => {
                        int i;
                        ThrowException ("Stack frame with method overload using out parameter", out i);
-               } catch (Exception e) {
-                       Console.WriteLine (e);
-               }
+               });
 
-               try {
-                       ThrowExceptionGeneric<double> ("Stack frame with 1 generic parameter");
-               } catch (Exception e) {
-                       Console.WriteLine (e);
-               }
+               Catch (() => ThrowExceptionGeneric<double> ("Stack frame with 1 generic parameter"));
 
-               try {
-                       ThrowExceptionGeneric<double,string> ("Stack frame with 2 generic parameters");
-               } catch (Exception e) {
-                       Console.WriteLine (e);
-               }
+               Catch (() => ThrowExceptionGeneric<double,string> ("Stack frame with 2 generic parameters"));
 
-               try {
-                       ThrowExceptionGeneric (12);
-               } catch (Exception e) {
-                       Console.WriteLine (e);
-               }
+               Catch (() => ThrowExceptionGeneric (12));
 
-               try {
-                       InnerClass.ThrowException ("Stack trace with inner class");
-               } catch (Exception e) {
-                       Console.WriteLine (e);
-               }
+               Catch (() => InnerClass.ThrowException ("Stack trace with inner class"));
 
-               try {
-                       InnerGenericClass<string>.ThrowException ("Stack trace with inner generic class");
-               } catch (Exception e) {
-                       Console.WriteLine (e);
-               }
+               Catch (() => InnerGenericClass<string>.ThrowException ("Stack trace with inner generic class"));
 
-               try {
-                       InnerGenericClass<string>.ThrowException ("Stack trace with inner generic class and method generic parameter", "string");
-               } catch (Exception e) {
-                       Console.WriteLine (e);
-               }
+               Catch (() => InnerGenericClass<string>.ThrowException ("Stack trace with inner generic class and method generic parameter", "string"));
 
-               try {
-                       InnerGenericClass<string>.ThrowException<string> ("Stack trace with inner generic class and generic overload", "string");
-               } catch (Exception e) {
-                       Console.WriteLine (e);
-               }
+               Catch (() => InnerGenericClass<string>.ThrowException<string> ("Stack trace with inner generic class and generic overload", "string"));
 
-               try {
-                       InnerGenericClass<string>.InnerInnerGenericClass<int>.ThrowException ("Stack trace with 2 inner generic class and generic overload");
-               } catch (Exception e) {
-                       Console.WriteLine (e);
-               }
+               Catch (() => InnerGenericClass<string>.InnerInnerGenericClass<int>.ThrowException ("Stack trace with 2 inner generic class and generic overload"));
 
+               Catch (() => InnerGenericClass<int>.InnerInnerGenericClass<string>.ThrowException ("Stack trace with 2 inner generic class and generic overload"));
+       }
+
+       public static void Catch (Action action)
+       {
                try {
-                       InnerGenericClass<int>.InnerInnerGenericClass<string>.ThrowException ("Stack trace with 2 inner generic class and generic overload");
+                       action ();
                } catch (Exception e) {
+                       Console.WriteLine();
                        Console.WriteLine (e);
+                       Console.WriteLine ("Stacktrace:");
+                       Console.WriteLine (new System.Diagnostics.StackTrace (e));
                }
        }
 
index 59182caba3c29e8731c6c68182b6610969b1a319..a426d61200eaed9a2c3e8664903605e3f015d807 100644 (file)
 System.Exception: Stacktrace with 1 frame
   at StackTraceDumper.Main () in StackTraceDumper.cs:9 
+Stacktrace:
+  at StackTraceDumper.Main () in StackTraceDumper.cs:9 
+
 System.Exception: Stacktrace with 2 frames
-  at StackTraceDumper.ThrowException (System.String message) in StackTraceDumper.cs:97 
-  at StackTraceDumper.Main () in StackTraceDumper.cs:15 
+  at StackTraceDumper.<Main>m__0 () in StackTraceDumper.cs:16 
+  at StackTraceDumper.Catch (System.Action action) in StackTraceDumper.cs:54 
+Stacktrace:
+  at StackTraceDumper.<Main>m__0 () in StackTraceDumper.cs:16 
+  at StackTraceDumper.Catch (System.Action action) in StackTraceDumper.cs:54 
+
 System.Exception: Stacktrace with 3 frames
-  at StackTraceDumper.ThrowException (System.String message, Int32 i) in StackTraceDumper.cs:110 
-  at StackTraceDumper.ThrowException (System.String message, Int32 i) in StackTraceDumper.cs:108 
-  at StackTraceDumper.Main () in StackTraceDumper.cs:21 
+  at StackTraceDumper.ThrowException (System.String message, Int32 i) in StackTraceDumper.cs:78 
+  at StackTraceDumper.<Main>m__1 () in StackTraceDumper.cs:18 
+  at StackTraceDumper.Catch (System.Action action) in StackTraceDumper.cs:54 
+Stacktrace:
+  at StackTraceDumper.ThrowException (System.String message, Int32 i) in StackTraceDumper.cs:78 
+  at StackTraceDumper.<Main>m__1 () in StackTraceDumper.cs:18 
+  at StackTraceDumper.Catch (System.Action action) in StackTraceDumper.cs:54 
+
+System.Exception: Stacktrace with 4 frames
+  at StackTraceDumper.ThrowException (System.String message, Int32 i) in StackTraceDumper.cs:78 
+  at StackTraceDumper.ThrowException (System.String message, Int32 i) in StackTraceDumper.cs:76 
+  at StackTraceDumper.<Main>m__2 () in StackTraceDumper.cs:20 
+  at StackTraceDumper.Catch (System.Action action) in StackTraceDumper.cs:54 
+Stacktrace:
+  at StackTraceDumper.ThrowException (System.String message, Int32 i) in StackTraceDumper.cs:78 
+  at StackTraceDumper.ThrowException (System.String message, Int32 i) in StackTraceDumper.cs:76 
+  at StackTraceDumper.<Main>m__2 () in StackTraceDumper.cs:20 
+  at StackTraceDumper.Catch (System.Action action) in StackTraceDumper.cs:54 
+
 System.Exception: Stack frame with method overload using ref parameter
-  at StackTraceDumper.ThrowException (System.String& message) in StackTraceDumper.cs:102 
-  at StackTraceDumper.Main () in StackTraceDumper.cs:28 
+  at StackTraceDumper.ThrowException (System.String& message) in StackTraceDumper.cs:70 
+  at StackTraceDumper.<Main>m__3 () in StackTraceDumper.cs:24 
+  at StackTraceDumper.Catch (System.Action action) in StackTraceDumper.cs:54 
+Stacktrace:
+  at StackTraceDumper.ThrowException (System.String& message) in StackTraceDumper.cs:70 
+  at StackTraceDumper.<Main>m__3 () in StackTraceDumper.cs:24 
+  at StackTraceDumper.Catch (System.Action action) in StackTraceDumper.cs:54 
+
 System.Exception: Stack frame with method overload using out parameter
-  at StackTraceDumper.ThrowException (System.String message, System.Int32& o) in StackTraceDumper.cs:115 
-  at StackTraceDumper.Main () in StackTraceDumper.cs:35 
+  at StackTraceDumper.ThrowException (System.String message, System.Int32& o) in StackTraceDumper.cs:83 
+  at StackTraceDumper.<Main>m__4 () in StackTraceDumper.cs:29 
+  at StackTraceDumper.Catch (System.Action action) in StackTraceDumper.cs:54 
+Stacktrace:
+  at StackTraceDumper.ThrowException (System.String message, System.Int32& o) in StackTraceDumper.cs:83 
+  at StackTraceDumper.<Main>m__4 () in StackTraceDumper.cs:29 
+  at StackTraceDumper.Catch (System.Action action) in StackTraceDumper.cs:54 
+
 System.Exception: Stack frame with 1 generic parameter
-  at StackTraceDumper.ThrowExceptionGeneric[T] (System.String message) in StackTraceDumper.cs:120 
-  at StackTraceDumper.Main () in StackTraceDumper.cs:41 
+  at StackTraceDumper.ThrowExceptionGeneric[T] (System.String message) in StackTraceDumper.cs:88 
+  at StackTraceDumper.<Main>m__5 () in StackTraceDumper.cs:32 
+  at StackTraceDumper.Catch (System.Action action) in StackTraceDumper.cs:54 
+Stacktrace:
+  at StackTraceDumper.ThrowExceptionGeneric[T] (System.String message) in StackTraceDumper.cs:88 
+  at StackTraceDumper.<Main>m__5 () in StackTraceDumper.cs:32 
+  at StackTraceDumper.Catch (System.Action action) in StackTraceDumper.cs:54 
+
 System.Exception: Stack frame with 2 generic parameters
-  at StackTraceDumper.ThrowExceptionGeneric[T1,T2] (System.String message) in StackTraceDumper.cs:140 
-  at StackTraceDumper.Main () in StackTraceDumper.cs:47 
+  at StackTraceDumper.ThrowExceptionGeneric[T1,T2] (System.String message) in StackTraceDumper.cs:108 
+  at StackTraceDumper.<Main>m__6 () in StackTraceDumper.cs:34 
+  at StackTraceDumper.Catch (System.Action action) in StackTraceDumper.cs:54 
+Stacktrace:
+  at StackTraceDumper.ThrowExceptionGeneric[T1,T2] (System.String message) in StackTraceDumper.cs:108 
+  at StackTraceDumper.<Main>m__6 () in StackTraceDumper.cs:34 
+  at StackTraceDumper.Catch (System.Action action) in StackTraceDumper.cs:54 
+
 System.Exception: Stack frame with generic method overload
-  at StackTraceDumper.ThrowExceptionGeneric[T] (T a1) in StackTraceDumper.cs:125 
-  at StackTraceDumper.Main () in StackTraceDumper.cs:53 
+  at StackTraceDumper.ThrowExceptionGeneric[T] (T a1) in StackTraceDumper.cs:93 
+  at StackTraceDumper.<Main>m__7 () in StackTraceDumper.cs:36 
+  at StackTraceDumper.Catch (System.Action action) in StackTraceDumper.cs:54 
+Stacktrace:
+  at StackTraceDumper.ThrowExceptionGeneric[T] (T a1) in StackTraceDumper.cs:93 
+  at StackTraceDumper.<Main>m__7 () in StackTraceDumper.cs:36 
+  at StackTraceDumper.Catch (System.Action action) in StackTraceDumper.cs:54 
+
 System.Exception: Stack trace with inner class
-  at StackTraceDumper+InnerClass.ThrowException (System.String message) in StackTraceDumper.cs:146 
-  at StackTraceDumper.Main () in StackTraceDumper.cs:59 
+  at StackTraceDumper+InnerClass.ThrowException (System.String message) in StackTraceDumper.cs:114 
+  at StackTraceDumper.<Main>m__8 () in StackTraceDumper.cs:38 
+  at StackTraceDumper.Catch (System.Action action) in StackTraceDumper.cs:54 
+Stacktrace:
+  at StackTraceDumper+InnerClass.ThrowException (System.String message) in StackTraceDumper.cs:114 
+  at StackTraceDumper.<Main>m__8 () in StackTraceDumper.cs:38 
+  at StackTraceDumper.Catch (System.Action action) in StackTraceDumper.cs:54 
+
 System.Exception: Stack trace with inner generic class
-  at StackTraceDumper+InnerGenericClass`1[T].ThrowException (System.String message) in StackTraceDumper.cs:153 
-  at StackTraceDumper.Main () in StackTraceDumper.cs:65 
+  at StackTraceDumper+InnerGenericClass`1[T].ThrowException (System.String message) in StackTraceDumper.cs:121 
+  at StackTraceDumper.<Main>m__9 () in StackTraceDumper.cs:40 
+  at StackTraceDumper.Catch (System.Action action) in StackTraceDumper.cs:54 
+Stacktrace:
+  at StackTraceDumper+InnerGenericClass`1[T].ThrowException (System.String message) in StackTraceDumper.cs:121 
+  at StackTraceDumper.<Main>m__9 () in StackTraceDumper.cs:40 
+  at StackTraceDumper.Catch (System.Action action) in StackTraceDumper.cs:54 
 Generic to string:string
+
 System.Exception: Stack trace with inner generic class and method generic parameter
-  at StackTraceDumper+InnerGenericClass`1[T].ThrowException (System.String message, T arg) in StackTraceDumper.cs:159 
-  at StackTraceDumper.Main () in StackTraceDumper.cs:71 
+  at StackTraceDumper+InnerGenericClass`1[T].ThrowException (System.String message, T arg) in StackTraceDumper.cs:127 
+  at StackTraceDumper.<Main>m__A () in StackTraceDumper.cs:42 
+  at StackTraceDumper.Catch (System.Action action) in StackTraceDumper.cs:54 
+Stacktrace:
+  at StackTraceDumper+InnerGenericClass`1[T].ThrowException (System.String message, T arg) in StackTraceDumper.cs:127 
+  at StackTraceDumper.<Main>m__A () in StackTraceDumper.cs:42 
+  at StackTraceDumper.Catch (System.Action action) in StackTraceDumper.cs:54 
+
 System.Exception: Stack trace with inner generic class and generic overload
-  at StackTraceDumper+InnerGenericClass`1[T].ThrowException[T1] (System.String message, T1 arg) in StackTraceDumper.cs:164 
-  at StackTraceDumper.Main () in StackTraceDumper.cs:77 
+  at StackTraceDumper+InnerGenericClass`1[T].ThrowException[T1] (System.String message, T1 arg) in StackTraceDumper.cs:132 
+  at StackTraceDumper.<Main>m__B () in StackTraceDumper.cs:44 
+  at StackTraceDumper.Catch (System.Action action) in StackTraceDumper.cs:54 
+Stacktrace:
+  at StackTraceDumper+InnerGenericClass`1[T].ThrowException[T1] (System.String message, T1 arg) in StackTraceDumper.cs:132 
+  at StackTraceDumper.<Main>m__B () in StackTraceDumper.cs:44 
+  at StackTraceDumper.Catch (System.Action action) in StackTraceDumper.cs:54 
+
 System.Exception: Stack trace with 2 inner generic class and generic overload
-  at StackTraceDumper+InnerGenericClass`1+InnerInnerGenericClass`1[T,T2].ThrowException (T message) in StackTraceDumper.cs:170 
-  at StackTraceDumper.Main () in StackTraceDumper.cs:83 
+  at StackTraceDumper+InnerGenericClass`1+InnerInnerGenericClass`1[T,T2].ThrowException (T message) in StackTraceDumper.cs:138 
+  at StackTraceDumper.<Main>m__C () in StackTraceDumper.cs:46 
+  at StackTraceDumper.Catch (System.Action action) in StackTraceDumper.cs:54 
+Stacktrace:
+  at StackTraceDumper+InnerGenericClass`1+InnerInnerGenericClass`1[T,T2].ThrowException (T message) in StackTraceDumper.cs:138 
+  at StackTraceDumper.<Main>m__C () in StackTraceDumper.cs:46 
+  at StackTraceDumper.Catch (System.Action action) in StackTraceDumper.cs:54 
+
 System.Exception: Stack trace with 2 inner generic class and generic overload
-  at StackTraceDumper+InnerGenericClass`1+InnerInnerGenericClass`1[T,T2].ThrowException (T2 message) in StackTraceDumper.cs:175 
-  at StackTraceDumper.Main () in StackTraceDumper.cs:89 
+  at StackTraceDumper+InnerGenericClass`1+InnerInnerGenericClass`1[T,T2].ThrowException (T2 message) in StackTraceDumper.cs:143 
+  at StackTraceDumper.<Main>m__D () in StackTraceDumper.cs:48 
+  at StackTraceDumper.Catch (System.Action action) in StackTraceDumper.cs:54 
+Stacktrace:
+  at StackTraceDumper+InnerGenericClass`1+InnerInnerGenericClass`1[T,T2].ThrowException (T2 message) in StackTraceDumper.cs:143 
+  at StackTraceDumper.<Main>m__D () in StackTraceDumper.cs:48 
+  at StackTraceDumper.Catch (System.Action action) in StackTraceDumper.cs:54 
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 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 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 ba25cb3730721bd49b13d20b62e9cc35cf6c07f9..685a822749100c2215ded9dd302e080a1d8f5106 100644 (file)
@@ -3420,48 +3420,6 @@ gboolean CreatePipe (gpointer *readpipe, gpointer *writepipe,
        return(TRUE);
 }
 
-guint32 GetTempPath (guint32 len, gunichar2 *buf)
-{
-       gchar *tmpdir=g_strdup (g_get_tmp_dir ());
-       gunichar2 *tmpdir16=NULL;
-       glong dirlen;
-       gsize bytes;
-       guint32 ret;
-       
-       if(tmpdir[strlen (tmpdir)]!='/') {
-               g_free (tmpdir);
-               tmpdir=g_strdup_printf ("%s/", g_get_tmp_dir ());
-       }
-       
-       tmpdir16=mono_unicode_from_external (tmpdir, &bytes);
-       if(tmpdir16==NULL) {
-               g_free (tmpdir);
-               return(0);
-       } else {
-               dirlen=(bytes/2);
-               
-               if(dirlen+1>len) {
-                       DEBUG ("%s: Size %d smaller than needed (%ld)",
-                                  __func__, len, dirlen+1);
-               
-                       ret=dirlen+1;
-               } else {
-                       /* Add the terminator */
-                       memset (buf, '\0', bytes+2);
-                       memcpy (buf, tmpdir16, bytes);
-               
-                       ret=dirlen;
-               }
-       }
-
-       if(tmpdir16!=NULL) {
-               g_free (tmpdir16);
-       }
-       g_free (tmpdir);
-       
-       return(ret);
-}
-
 #ifdef HAVE_GETFSSTAT
 /* Darwin has getfsstat */
 gint32 GetLogicalDriveStrings (guint32 len, gunichar2 *buf)
index e8627764812f3e98632ca244254d96fa7efc823d..12a1310d96784cf7bb40bb5a1c8c6789ebc6b145 100644 (file)
@@ -210,7 +210,6 @@ extern guint32 GetCurrentDirectory (guint32 length, gunichar2 *buffer);
 extern gboolean SetCurrentDirectory (const gunichar2 *path);
 extern gboolean CreatePipe (gpointer *readpipe, gpointer *writepipe,
                            WapiSecurityAttributes *security, guint32 size);
-extern guint32 GetTempPath (guint32 len, gunichar2 *buf);
 extern gint32 GetLogicalDriveStrings (guint32 len, gunichar2 *buf);
 extern gboolean GetDiskFreeSpaceEx(const gunichar2 *path_name, WapiULargeInteger *free_bytes_avail,
                                   WapiULargeInteger *total_number_of_bytes,
index a57d8aaeb7ad287a7eebf321b6ddf9e2b5c648ad..df101ae76a42d42424b56a21f47a2c1f2fb93566 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,53 @@ 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;
+       
+       size *= sizeof (gunichar2); /* adjust for unicode characters */
+
+       if (basename == NULL || size == 0)
+               return 0;
+
+       pid = GetProcessId (process);
+
+       path = wapi_process_get_path (pid);
+       if (path == NULL)
+               return 0;
+
+       proc_path = mono_unicode_from_external (path, &bytes);
+       g_free (path);
+
+       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);
+       }
+
+       g_free (proc_path);
+
+       return len;
+}
+
 guint32
 GetModuleBaseName (gpointer process, gpointer module,
                                   gunichar2 *basename, guint32 size)
@@ -2180,7 +2258,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 +2391,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 +2429,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 6db10c716ab4b526b485d03e429b550b75965df8..123755888b590792818522f1d80016c2525a74e9 100644 (file)
@@ -50,7 +50,6 @@
 #define GetCurrentDirectory wapi_GetCurrentDirectory 
 #define SetCurrentDirectory wapi_SetCurrentDirectory 
 #define CreatePipe wapi_CreatePipe 
-#define GetTempPath wapi_GetTempPath 
 #define GetLogicalDriveStrings wapi_GetLogicalDriveStrings 
 #define GetDiskFreeSpaceEx wapi_GetDiskFreeSpaceEx
 #define GetDriveType wapi_GetDriveType
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 aec0d136fc059c12ca222f245a7036aee71a8f06..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       \
@@ -235,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  \
index 0071cdecda3e6f6cac69b6c5d0a5ce537eaec77d..5a9433d6b67fcbf3df89c65fea4634435602aa37 100644 (file)
@@ -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 136
 
 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;
 
@@ -254,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 ();
@@ -481,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 ();
@@ -621,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);
 
@@ -666,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);
 
@@ -680,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;
 }
@@ -689,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);
 }
@@ -1959,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);
@@ -2363,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 6fcb23308e05b6b3247a1a4b68b088505576c2e2..46ea5ef635098895a28624e2a0dc101d5418e1da 100644 (file)
@@ -82,8 +82,6 @@ struct _MonoMethod {
        unsigned int is_inflated:1; /* whether we're a MonoMethodInflated */
        unsigned int skip_visibility:1; /* whenever to skip JIT visibility checks */
        unsigned int verification_success:1; /* whether this method has been verified successfully.*/
-       /* TODO we MUST get rid of this field, it's an ugly hack nobody is proud of. */
-       unsigned int is_mb_open : 1;            /* This is the fully open instantiation of a generic method_builder. Worse than is_tb_open, but it's temporary */
        signed int slot : 16;
 
        /*
@@ -522,6 +520,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. */
 };
 
 /*
@@ -1022,8 +1021,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);
@@ -1107,6 +1106,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..a36a0fca930c3e345c8c024db587525566d52fa6 100644 (file)
@@ -1009,7 +1009,6 @@ mono_class_inflate_generic_method_full_checked (MonoMethod *method, MonoClass *k
        MonoMethodInflated *iresult, *cached;
        MonoMethodSignature *sig;
        MonoGenericContext tmp_context;
-       gboolean is_mb_open = FALSE;
 
        mono_error_init (error);
 
@@ -1041,44 +1040,9 @@ mono_class_inflate_generic_method_full_checked (MonoMethod *method, MonoClass *k
                (method->klass->generic_container && context->class_inst)))
                return method;
 
-       /*
-        * The reason for this hack is to fix the behavior of inflating generic methods that come from a MethodBuilder.
-        * What happens is that instantiating a generic MethodBuilder with its own arguments should create a diferent object.
-        * This is opposite to the way non-SRE MethodInfos behave.
-        * 
-        * This happens, for example, when we want to emit a recursive generic method. Given the following C# code:
-        * 
-        * void Example<T> () {
-        *    Example<T> ();
-        * }
-        *  
-        * In Example, the method token must be encoded as: "void Example<!!0>()"
-        * 
-        * The reference to the first generic argument, "!!0", must be explicit otherwise it won't be inflated
-        * properly. To get that we need to inflate the MethodBuilder with its own arguments.
-        * 
-        * On the other hand, inflating a non-SRE generic method with its own arguments should
-        * return itself. For example:
-        * 
-        * MethodInfo m = ... //m is a generic method definition
-        * MethodInfo res = m.MakeGenericMethod (m.GetGenericArguments ());
-        * res == m
-        *
-        * To allow such scenarios we must allow inflation of MethodBuilder to happen in a diferent way than
-        * what happens with regular methods.
-        * 
-        * There is one last touch to this madness, once a TypeBuilder is finished, IOW CreateType() is called,
-        * everything should behave like a regular type or method.
-        * 
-        */
-       is_mb_open = method->is_generic &&
-               image_is_dynamic (method->klass->image) && !method->klass->wastypebuilder && /* that is a MethodBuilder from an unfinished TypeBuilder */
-               context->method_inst == mono_method_get_generic_container (method)->context.method_inst; /* and it's been instantiated with its own arguments.  */
-
        iresult = g_new0 (MonoMethodInflated, 1);
        iresult->context = *context;
        iresult->declaring = method;
-       iresult->method.method.is_mb_open = is_mb_open;
 
        if (!context->method_inst && method->is_generic)
                iresult->context.method_inst = mono_method_get_generic_container (method)->context.method_inst;
@@ -1094,7 +1058,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;
@@ -1123,7 +1093,6 @@ mono_class_inflate_generic_method_full_checked (MonoMethod *method, MonoClass *k
        result->is_generic = FALSE;
        result->sre_method = FALSE;
        result->signature = NULL;
-       result->is_mb_open = is_mb_open;
 
        if (!context->method_inst) {
                /* Set the generic_container of the result to the generic_container of method */
@@ -1166,7 +1135,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 +7441,21 @@ mono_image_init_name_cache (MonoImage *image)
        const char *name;
        const char *nspace;
        guint32 i, visib, nspace_index;
-       GHashTable *name_cache2, *nspace_table;
+       GHashTable *name_cache2, *nspace_table, *the_name_cache;
 
-       mono_image_lock (image);
-
-       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 +7479,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 +7501,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 +7510,14 @@ mono_image_init_name_cache (MonoImage *image)
        }
 
        g_hash_table_destroy (name_cache2);
+
+       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);
 }
 
@@ -7540,11 +7530,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 +7597,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 +7696,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 +7709,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 +7739,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 +7783,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 +7797,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 +7811,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 bdc8cb1f85481080cd96fda65eb3dbe64cc8c2d9..14585755bc58a8baa3055a169bbf410798945802 100644 (file)
@@ -872,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;
 
@@ -981,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 58eff825c01200ec73875191c4192f4afc991e2b..7708a482d7d2cc17b484f49c7235c599a8bb96fa 100644 (file)
@@ -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 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 8edf619c8d5b80df1c07177f10cfdbf1424d5685..873770b436abd3d9b4807b24ce46aca308403fc8 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
@@ -399,17 +396,13 @@ 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;
 
+       /* Maps MonoMethod* to weak links to DynamicMethod objects */
+       GHashTable *method_to_dyn_method;
+
        guint32 execution_context_field_offset;
 };
 
old mode 100755 (executable)
new mode 100644 (file)
index ee6b984..9bf4c49
@@ -93,7 +93,12 @@ static gboolean debug_domain_unload;
 
 gboolean mono_dont_free_domains;
 
-#define mono_appdomains_lock() mono_mutex_lock (&appdomains_mutex)
+#define mono_appdomains_lock() do {    \
+       MONO_TRY_BLOCKING;      \
+       mono_mutex_lock (&appdomains_mutex); \
+       MONO_FINISH_TRY_BLOCKING;       \
+} while (0);
+
 #define mono_appdomains_unlock() mono_mutex_unlock (&appdomains_mutex)
 static mono_mutex_t appdomains_mutex;
 
@@ -486,7 +491,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 +519,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 +849,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;
 }
 
@@ -1268,6 +1288,10 @@ mono_domain_free (MonoDomain *domain, gboolean force)
                g_hash_table_destroy (domain->ftnptrs_hash);
                domain->ftnptrs_hash = NULL;
        }
+       if (domain->method_to_dyn_method) {
+               g_hash_table_destroy (domain->method_to_dyn_method);
+               domain->method_to_dyn_method = NULL;
+       }
 
        mono_mutex_destroy (&domain->finalizable_objects_hash_lock);
        mono_mutex_destroy (&domain->assemblies_lock);
@@ -1290,10 +1314,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 +1334,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 +1538,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 +1969,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..fec434715b57dd6b963524948abf281552d5fed5 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? */
@@ -1177,43 +1177,11 @@ ves_icall_System_IO_MonoIO_get_InvalidPathChars ()
        return chars;
 }
 
-gint32
-ves_icall_System_IO_MonoIO_GetTempPath (MonoString **mono_name)
-{
-       gunichar2 *name;
-       int ret;
-
-       MONO_PREPARE_BLOCKING
-       name=g_new0 (gunichar2, 256);
-       
-       ret=GetTempPath (256, name);
-       if(ret>255) {
-               /* Buffer was too short. Try again... */
-               g_free (name);
-               name=g_new0 (gunichar2, ret+2); /* include the terminator */
-               ret=GetTempPath (ret, name);
-       }
-       MONO_FINISH_BLOCKING
-       
-       if(ret>0) {
-#ifdef DEBUG
-               g_message ("%s: Temp path is [%s] (len %d)", __func__, name, ret);
-#endif
-
-               mono_gc_wbarrier_generic_store ((gpointer) mono_name,
-                               (MonoObject*) mono_string_new_utf16 (mono_domain_get (), name, ret));
-       }
-
-       g_free (name);
-       
-       return(ret);
-}
-
 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 +1191,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 +1208,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 +1222,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 +1230,7 @@ mono_filesize_from_path (MonoString *string)
 
        g_free (path);
 
-       MONO_FINISH_BLOCKING
+       MONO_FINISH_BLOCKING;
        return res;
 }
 
@@ -1272,9 +1240,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 fc7f9e1231b4b0fd41df143c8b887a0930ab22fc..564bca32711733eee1cd25bd7cde804a40d40740 100644 (file)
@@ -238,9 +238,6 @@ ves_icall_System_IO_MonoIO_get_PathSeparator (void);
 extern MonoArray *
 ves_icall_System_IO_MonoIO_get_InvalidPathChars (void);
 
-extern gint32
-ves_icall_System_IO_MonoIO_GetTempPath (MonoString **mono_name);
-
 extern void ves_icall_System_IO_MonoIO_Lock (HANDLE handle, gint64 position,
                                             gint64 length, gint32 *error);
 extern void ves_icall_System_IO_MonoIO_Unlock (HANDLE handle, gint64 position,
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 4bcdfd55e0dce63229d6c0eadef5285cdf7962f2..ff442e43f6a7faf3484ec2848e7d0bc01d0f6438 100644 (file)
@@ -27,4 +27,4 @@
 GCStats gc_stats = {};
 #else
 GCStats gc_stats;
-#endif
\ No newline at end of file
+#endif
index cdc91abedac0a91e9c53bf7cc837fcda806e402f..5bef0b7b31ba167e4c229da5cb5a0577d66aaf77 100644 (file)
@@ -82,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;
 }
@@ -120,6 +120,9 @@ mono_gc_run_finalize (void *obj, void *data)
        MonoDomain *domain;
        RuntimeInvokeFunction runtime_invoke;
 
+       // This function is called from the innards of the GC, so our best alternative for now is to do polling here
+       MONO_SUSPEND_CHECK ();
+
        o = (MonoObject*)((char*)obj + GPOINTER_TO_UINT (data));
 
        if (log_finalizers)
@@ -317,8 +320,11 @@ object_register_finalizer (MonoObject *obj, void (*callback)(void *, void*))
         * end up running them while or after the domain is being cleared, so
         * the objects will not be valid anymore.
         */
-       if (!mono_domain_is_unloading (domain))
+       if (!mono_domain_is_unloading (domain)) {
+               MONO_TRY_BLOCKING;
                mono_gc_register_for_finalization (obj, callback);
+               MONO_FINISH_TRY_BLOCKING;
+       }
 #endif
 }
 
@@ -623,7 +629,12 @@ static HandleData gc_handles [] = {
        {NULL, NULL, 0, HANDLE_PINNED, 0}
 };
 
-#define lock_handles(handles) mono_mutex_lock (&handle_section)
+#define lock_handles(handles) do {     \
+       MONO_TRY_BLOCKING;      \
+       mono_mutex_lock (&handle_section);      \
+       MONO_FINISH_TRY_BLOCKING;       \
+} while (0)
+
 #define unlock_handles(handles) mono_mutex_unlock (&handle_section)
 
 static int
@@ -1088,7 +1099,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 */
@@ -1099,7 +1110,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 ();
index fa84d340345cbee4822e2b9f35758e0f39c7b922..d84494b65cb12d895a4d53bdad99baa843a0a78e 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)
@@ -335,7 +338,6 @@ ICALL(MONOIO_10, "GetFileSystemEntries", ves_icall_System_IO_MonoIO_GetFileSyste
 ICALL(MONOIO_11, "GetFileType(intptr,System.IO.MonoIOError&)", ves_icall_System_IO_MonoIO_GetFileType)
 ICALL(MONOIO_12, "GetLength(intptr,System.IO.MonoIOError&)", ves_icall_System_IO_MonoIO_GetLength)
 #ifndef PLATFORM_RO_FS
-ICALL(MONOIO_13, "GetTempPath(string&)", ves_icall_System_IO_MonoIO_GetTempPath)
 ICALL(MONOIO_14, "Lock(intptr,long,long,System.IO.MonoIOError&)", ves_icall_System_IO_MonoIO_Lock)
 ICALL(MONOIO_15, "MoveFile(string,string,System.IO.MonoIOError&)", ves_icall_System_IO_MonoIO_MoveFile)
 #endif /* !PLATFORM_RO_FS */
@@ -366,11 +368,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 +384,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 +517,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 +708,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)
@@ -871,6 +878,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)
index 2aace4cbc4b0ace9ade61f3a74abf0dccb51724b..0212a3c909d1d89fc6150ef9e9ff47f99bdf5dbe 100644 (file)
@@ -65,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>
@@ -120,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) {
@@ -162,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;
@@ -204,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)) {
@@ -278,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;
        }
 
@@ -470,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;
@@ -479,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) {
@@ -489,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 *
@@ -610,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)) {
@@ -626,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) {
@@ -641,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
@@ -744,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));
@@ -934,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;
@@ -950,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;
@@ -969,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;
@@ -981,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;
                }
        }
@@ -998,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;
@@ -1009,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
@@ -1035,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;
 
@@ -1067,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;
@@ -1085,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;
                }
 
@@ -1162,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)
 {
@@ -1806,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;
@@ -1920,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 
@@ -2664,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
@@ -2675,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;
 
@@ -2688,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));
@@ -2699,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;
@@ -2720,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;
        }
@@ -2779,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;
@@ -2790,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);
@@ -2810,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);
@@ -2827,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;
@@ -2835,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);
@@ -2853,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);
@@ -2883,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) {
@@ -2999,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;
@@ -3007,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);
@@ -3042,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 { \
@@ -3090,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) {
@@ -4643,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);
 }
 
@@ -5677,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);
@@ -5698,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;
@@ -5714,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);
@@ -6198,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
@@ -6824,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 d9ae9d6fde02568d9854d795c587b31ca8c8043c..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;
@@ -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
+               } 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 959dd36aa3c282a90216973f6402dac5990bb871..e0e6ac96a61053d69735feb81d1cbb5e378e5041 100644 (file)
@@ -109,14 +109,16 @@ static void
 add_record (RecordType record_kind, RuntimeLocks kind, gpointer lock)
 {
        int i = 0;
-       gpointer frames[10];
+       const int no_frames = 6;
+       gpointer frames[no_frames];
+
        char *msg;
        if (!trace_file)
                return;
 
-       memset (frames, 0, sizeof (gpointer));
-       mono_backtrace (frames, 6);
-       for (i = 0; i < 6; ++i)
+       memset (frames, 0, sizeof (gpointer) * no_frames);
+       mono_backtrace (frames, no_frames);
+       for (i = 0; i < no_frames; ++i)
                frames [i] = (gpointer)((size_t)frames[i] - base_address);
 
        /*We only dump 5 frames, which should be more than enough to most analysis.*/
index 249acd881700a280b802995c4cb4f2a4f65d7af4..4c6ae67820d24b42774f5805cb50cda488060a20 100644 (file)
@@ -27,6 +27,7 @@
 #include "mono/metadata/debug-helpers.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"
@@ -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;
        }
        
@@ -256,8 +244,8 @@ mono_marshal_init (void)
 #ifdef USE_COOP_GC
                register_icall (mono_threads_prepare_blocking, "mono_threads_prepare_blocking", "int", FALSE);
                register_icall (mono_threads_finish_blocking, "mono_threads_finish_blocking", "void int", FALSE);
-               register_icall (mono_threads_reset_blocking_start, "mono_threads_reset_blocking_start","int", FALSE);
-               register_icall (mono_threads_reset_blocking_end, "mono_threads_reset_blocking_end","void int", FALSE);
+               register_icall (mono_threads_reset_blocking_start, "mono_threads_reset_blocking_start","int", TRUE);
+               register_icall (mono_threads_reset_blocking_end, "mono_threads_reset_blocking_end","void int", TRUE);
 #endif
        }
 }
@@ -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 ())
@@ -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)))
@@ -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 6d46ecf25a97325d707e95b3cfbf5345371446af..f08f7fa0b8998b8dd4cbd9d0f992e98353bef5e2 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*/
@@ -2100,8 +2150,6 @@ inflated_method_equal (gconstpointer a, gconstpointer b)
        const MonoMethodInflated *mb = b;
        if (ma->declaring != mb->declaring)
                return FALSE;
-       if (ma->method.method.is_mb_open != mb->method.method.is_mb_open)
-               return FALSE;
        return mono_metadata_generic_context_equal (&ma->context, &mb->context);
 }
 
@@ -2109,7 +2157,7 @@ static guint
 inflated_method_hash (gconstpointer a)
 {
        const MonoMethodInflated *ma = a;
-       return (mono_metadata_generic_context_hash (&ma->context) ^ mono_aligned_addr_hash (ma->declaring)) + ma->method.method.is_mb_open;
+       return (mono_metadata_generic_context_hash (&ma->context) ^ mono_aligned_addr_hash (ma->declaring));
 }
 
 static gboolean
@@ -2347,6 +2395,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 +2413,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 +2796,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 +2841,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 +2883,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:
  *
@@ -6522,3 +6558,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;
index c8d7a6a10dbabdff4afc406795de473a1d29cf32..bea26483112d833b2036a638339494f1e1319814 100644 (file)
@@ -31,6 +31,7 @@
 #include <glib.h>
 #include "mono-hash.h"
 #include "metadata/gc-internal.h"
+#include <mono/utils/checked-build.h>
 
 #ifdef HAVE_BOEHM_GC
 #define mg_new0(type,n)  ((type *) GC_MALLOC(sizeof(type) * (n)))
@@ -65,6 +66,9 @@ struct _MonoGHashTable {
        MonoGHashGCType gc_type;
 };
 
+static MonoGHashTable *
+mono_g_hash_table_new (GHashFunc hash_func, GEqualFunc key_equal_func);
+
 #ifdef HAVE_SGEN_GC
 static MonoGCDescriptor table_hash_descr = MONO_GC_DESCRIPTOR_NULL;
 
@@ -144,7 +148,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 +169,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;
@@ -218,6 +208,8 @@ do_rehash (void *_data)
 static void
 rehash (MonoGHashTable *hash)
 {
+       MONO_REQ_GC_UNSAFE_MODE; //we must run in unsafe mode to make rehash safe
+
        int diff = ABS (hash->last_rehash - hash->in_use);
        RehashData data;
        void *old_table G_GNUC_UNUSED; /* unused on Boehm */
@@ -232,7 +224,12 @@ rehash (MonoGHashTable *hash)
        data.new_size = g_spaced_primes_closest (hash->in_use);
        data.table = mg_new0 (Slot *, data.new_size);
 
+#ifdef USE_COOP_GC
+       /* We cannot be preempted */
+       old_table = do_rehash (&data);
+#else
        old_table = mono_gc_invoke_with_gc_lock (do_rehash, &data);
+#endif
        mg_free (old_table);
 }
 
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);
index 15482c9771dfa19b8570bcbf8fa8bacf15c5c015..331969425b391128fffa67b30a2bc0447d996835 100644 (file)
@@ -255,6 +255,8 @@ struct _MonoException {
        MonoObject *_data;
        MonoObject *captured_traces;
        MonoArray  *native_trace_ips;
+       /* Dynamic methods referenced by the stack trace */
+       MonoObject *dynamic_methods;
 };
 
 typedef struct {
@@ -416,7 +418,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 +636,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 a05a1d51faaa425665dbd581211858e85da4e0cf..0a2070ab9db1b299d5c11e61142e64e031d11264 100644 (file)
@@ -42,6 +42,7 @@
 #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"
 
 static void
@@ -64,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;
 
@@ -108,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
@@ -151,6 +168,8 @@ static MonoRuntimeCallbacks callbacks;
 void
 mono_thread_set_main (MonoThread *thread)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        static gboolean registered = FALSE;
 
        if (!registered) {
@@ -164,6 +183,8 @@ mono_thread_set_main (MonoThread *thread)
 MonoThread*
 mono_thread_get_main (void)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        return main_thread;
 }
 
@@ -202,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;
@@ -240,6 +263,8 @@ get_type_init_exception_for_vtable (MonoVTable *vtable)
 void
 mono_runtime_class_init (MonoVTable *vtable)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        mono_runtime_class_init_full (vtable, TRUE);
 }
 
@@ -252,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;
@@ -288,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;
+       }
+
+       tid = GetCurrentThreadId ();
+
+       mono_type_initialization_lock ();
+       /* double check... */
+       if (vtable->initialized) {
+               mono_type_initialization_unlock ();
+               return NULL;
+       }
+       if (vtable->init_failed) {
+               mono_type_initialization_unlock ();
 
-       if (method) {
-               MonoDomain *domain = vtable->domain;
-               TypeInitializationLock *lock;
-               guint32 tid = GetCurrentThreadId();
-               int do_initialization = 0;
-               MonoDomain *last_domain = NULL;
+               /* 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;
 
-               mono_type_initialization_lock ();
-               /* double check... */
-               if (vtable->initialized) {
+               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;
 }
@@ -432,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;
@@ -457,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 ();
@@ -570,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;
@@ -580,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);
 }
 
@@ -620,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);
 
@@ -641,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;
@@ -765,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);
 }
 
@@ -913,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};
@@ -989,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);
@@ -1041,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;
@@ -1113,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;
 
@@ -1175,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) {
@@ -1206,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 ();
@@ -1230,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 */
@@ -1265,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;
@@ -1406,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);
 }
 
@@ -1423,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);
@@ -1463,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);
@@ -1496,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;
 
@@ -1554,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;
@@ -1615,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;
   
@@ -1664,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;
 
@@ -1775,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);
@@ -1803,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);
@@ -1816,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;
 
        /*
@@ -1837,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;
@@ -2170,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;
@@ -2327,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))
@@ -2348,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))
@@ -2365,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;
 
@@ -2387,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;
        
@@ -2438,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);
 
@@ -2458,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;
@@ -2516,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;
        
@@ -2566,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) {
@@ -2606,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;
@@ -2649,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;
@@ -2772,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 ())
@@ -2841,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
@@ -2953,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));
@@ -2974,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);
@@ -3004,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];
@@ -3012,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) {
@@ -3053,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);
@@ -3076,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;
@@ -3204,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);
@@ -3249,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;
        
@@ -3259,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);
@@ -3297,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);
 }
 
@@ -3318,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);
 }
 
@@ -3341,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);
 }
 
@@ -3361,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);
@@ -3391,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);
@@ -3420,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 */
@@ -3439,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 */
@@ -3458,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 */
@@ -3484,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;
 
@@ -3505,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 ();
@@ -3520,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)
@@ -3540,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 ();
@@ -3579,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 ();
@@ -3698,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];
@@ -3725,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 ();
@@ -3769,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;
 
@@ -3800,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;
@@ -3827,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 ();
@@ -3916,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;
@@ -3985,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;
@@ -4116,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;
@@ -4293,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 ());
 }
 
@@ -4310,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);
@@ -4327,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);
@@ -4350,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 */
@@ -4381,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))
@@ -4392,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);
 }
 
@@ -4407,6 +4597,8 @@ 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))
@@ -4444,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;
 
@@ -4463,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;
 
@@ -4489,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;
 
@@ -4522,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;
@@ -4580,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);
 }
 
@@ -4605,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);
@@ -4633,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;
@@ -4710,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);
@@ -4729,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;
@@ -4758,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);
@@ -4778,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;
@@ -4811,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;
@@ -4840,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;
@@ -4866,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;
@@ -4913,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)
@@ -4931,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;
@@ -4989,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);
 }
 
@@ -5006,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));
@@ -5021,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);
 }
 
@@ -5033,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);
 }
 /**
@@ -5044,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;
@@ -5073,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);
@@ -5088,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);
 
@@ -5103,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)
@@ -5166,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;
                
@@ -5184,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;
@@ -5195,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);
@@ -5213,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;
@@ -5270,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);
 }
 
@@ -5283,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);
 }
 
@@ -5298,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;
@@ -5318,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;
@@ -5368,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);
        
@@ -5388,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;
@@ -5430,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;
 
@@ -5462,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);
 }
 
@@ -5474,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);
 }
 
@@ -5490,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)
@@ -5517,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;
@@ -5543,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;
 
@@ -5565,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;
@@ -5589,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;
@@ -5626,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);
 }
 
@@ -5638,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);
 }
 
@@ -5665,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
@@ -5677,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);
 }
 
@@ -5690,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;
@@ -5709,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;
 
@@ -5732,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) {
@@ -5762,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 */
@@ -5783,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;
@@ -5818,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;
@@ -5872,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);
@@ -5893,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;
@@ -5904,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);
        }
 }
 
@@ -5927,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];
 
@@ -5951,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;
@@ -5988,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);
@@ -6016,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;
@@ -6044,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;
@@ -6108,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;
@@ -6147,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;
@@ -6164,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);
 }
 
 /**
@@ -6181,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;
@@ -6233,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;
        
@@ -6293,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 ()) {
@@ -6352,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);
 
@@ -6408,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;
@@ -6430,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);
 
@@ -6467,7 +6766,7 @@ mono_store_remote_field (MonoObject *this, MonoClass *klass, MonoClassField *fie
 
 /**
  * mono_store_remote_field_new:
- * @this:
+ * @this_obj:
  * @klass:
  * @field:
  * @arg:
@@ -6475,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);
 
@@ -6549,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;
 }
 
@@ -6561,6 +6864,8 @@ mono_string_chars (MonoString *s)
 int
 mono_string_length (MonoString *s)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        return s->length;
 }
 
@@ -6574,6 +6879,8 @@ mono_string_length (MonoString *s)
 uintptr_t
 mono_array_length (MonoArray *array)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        return array->max_length;
 }
 
@@ -6588,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 ad42828aee8ff493b5648ddc1de52d035a0e4eea..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;
@@ -469,7 +470,7 @@ static GPtrArray* get_domain_assemblies (MonoDomain *domain)
 }
 
 /* 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;
@@ -488,7 +489,7 @@ MonoArray *ves_icall_System_Diagnostics_Process_GetModules_internal (MonoObject
                current_process = ves_icall_System_Diagnostics_Process_GetProcess_internal (pid);
        }
 
-       STASH_SYS_ASS (this);
+       STASH_SYS_ASS (this_obj);
 
        if (process == current_process) {
                assemblies = get_domain_assemblies (mono_domain_get ());
@@ -546,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));
 }
@@ -662,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;
@@ -802,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);
@@ -822,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;
        
@@ -1076,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 096db3127ae0586e894e39196b9f2b367716450d..a06c29c7c139760f866ddc14509b54f52a948078 100644 (file)
@@ -43,6 +43,7 @@
 #include <mono/metadata/mono-ptr-array.h>
 #include <mono/utils/mono-string.h>
 #include <mono/utils/mono-error-internals.h>
+#include <mono/utils/checked-build.h>
 
 static gboolean is_usertype (MonoReflectionType *ref);
 static MonoReflectionType *mono_reflection_type_resolve_user_types (MonoReflectionType *type);
@@ -223,7 +224,9 @@ mono_reflection_init (void)
 static inline void
 dynamic_image_lock (MonoDynamicImage *image)
 {
+       MONO_TRY_BLOCKING;
        mono_image_lock ((MonoImage*)image);
+       MONO_FINISH_TRY_BLOCKING;
 }
 
 static inline void
@@ -235,6 +238,8 @@ dynamic_image_unlock (MonoDynamicImage *image)
 static void
 register_dyn_token (MonoDynamicImage *assembly, guint32 token, MonoObject *obj)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        dynamic_image_lock (assembly);
        mono_g_hash_table_insert (assembly->tokens, GUINT_TO_POINTER (token), obj);
        dynamic_image_unlock (assembly);
@@ -243,6 +248,8 @@ register_dyn_token (MonoDynamicImage *assembly, guint32 token, MonoObject *obj)
 static MonoObject*
 lookup_dyn_token (MonoDynamicImage *assembly, guint32 token)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoObject *obj;
 
        dynamic_image_lock (assembly);
@@ -255,6 +262,8 @@ lookup_dyn_token (MonoDynamicImage *assembly, guint32 token)
 static void
 sigbuffer_init (SigBuffer *buf, int size)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        buf->buf = g_malloc (size);
        buf->p = buf->buf;
        buf->end = buf->buf + size;
@@ -263,6 +272,8 @@ sigbuffer_init (SigBuffer *buf, int size)
 static void
 sigbuffer_make_room (SigBuffer *buf, int size)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        if (buf->end - buf->p < size) {
                int new_size = buf->end - buf->buf + size + 32;
                char *p = g_realloc (buf->buf, new_size);
@@ -276,6 +287,8 @@ sigbuffer_make_room (SigBuffer *buf, int size)
 static void
 sigbuffer_add_value (SigBuffer *buf, guint32 val)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        sigbuffer_make_room (buf, 6);
        mono_metadata_encode_value (val, buf->p, &buf->p);
 }
@@ -283,6 +296,8 @@ sigbuffer_add_value (SigBuffer *buf, guint32 val)
 static void
 sigbuffer_add_byte (SigBuffer *buf, guint8 val)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        sigbuffer_make_room (buf, 1);
        buf->p [0] = val;
        buf->p++;
@@ -291,6 +306,8 @@ sigbuffer_add_byte (SigBuffer *buf, guint8 val)
 static void
 sigbuffer_add_mem (SigBuffer *buf, char *p, guint32 size)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        sigbuffer_make_room (buf, size);
        memcpy (buf->p, p, size);
        buf->p += size;
@@ -299,6 +316,8 @@ sigbuffer_add_mem (SigBuffer *buf, char *p, guint32 size)
 static void
 sigbuffer_free (SigBuffer *buf)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        g_free (buf->buf);
 }
 
@@ -312,6 +331,8 @@ sigbuffer_free (SigBuffer *buf)
 static gpointer
 image_g_malloc (MonoImage *image, guint size)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        if (image)
                return mono_image_alloc (image, size);
        else
@@ -328,6 +349,8 @@ image_g_malloc (MonoImage *image, guint size)
 static gpointer
 image_g_malloc0 (MonoImage *image, guint size)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        if (image)
                return mono_image_alloc0 (image, size);
        else
@@ -338,6 +361,8 @@ image_g_malloc0 (MonoImage *image, guint size)
 static char*
 image_strdup (MonoImage *image, const char *s)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        if (image)
                return mono_image_strdup (image, s);
        else
@@ -355,6 +380,8 @@ image_strdup (MonoImage *image, const char *s)
 static void
 alloc_table (MonoDynamicTable *table, guint nrows)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        table->rows = nrows;
        g_assert (table->columns);
        if (nrows + 1 >= table->alloc_rows) {
@@ -372,6 +399,8 @@ alloc_table (MonoDynamicTable *table, guint nrows)
 static void
 make_room_in_stream (MonoDynamicStream *stream, int size)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        if (size <= stream->alloc_size)
                return;
        
@@ -388,6 +417,8 @@ make_room_in_stream (MonoDynamicStream *stream, int size)
 static guint32
 string_heap_insert (MonoDynamicStream *sh, const char *str)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        guint32 idx;
        guint32 len;
        gpointer oldkey, oldval;
@@ -414,6 +445,8 @@ string_heap_insert (MonoDynamicStream *sh, const char *str)
 static guint32
 string_heap_insert_mstring (MonoDynamicStream *sh, MonoString *str)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        char *name = mono_string_to_utf8 (str);
        guint32 idx;
        idx = string_heap_insert (sh, name);
@@ -425,6 +458,8 @@ string_heap_insert_mstring (MonoDynamicStream *sh, MonoString *str)
 static void
 string_heap_init (MonoDynamicStream *sh)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        sh->index = 0;
        sh->alloc_size = 4096;
        sh->data = g_malloc (4096);
@@ -436,6 +471,8 @@ string_heap_init (MonoDynamicStream *sh)
 static guint32
 mono_image_add_stream_data (MonoDynamicStream *stream, const char *data, guint32 len)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        guint32 idx;
        
        make_room_in_stream (stream, stream->index + len);
@@ -452,6 +489,8 @@ mono_image_add_stream_data (MonoDynamicStream *stream, const char *data, guint32
 static guint32
 mono_image_add_stream_zero (MonoDynamicStream *stream, guint32 len)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        guint32 idx;
        
        make_room_in_stream (stream, stream->index + len);
@@ -464,6 +503,8 @@ mono_image_add_stream_zero (MonoDynamicStream *stream, guint32 len)
 static void
 stream_data_align (MonoDynamicStream *stream)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        char buf [4] = {0};
        guint32 count = stream->index % 4;
 
@@ -476,6 +517,8 @@ stream_data_align (MonoDynamicStream *stream)
 static int
 mono_blob_entry_hash (const char* str)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        guint len, h;
        const char *end;
        len = mono_metadata_decode_blob_size (str, &str);
@@ -492,6 +535,8 @@ mono_blob_entry_hash (const char* str)
 
 static gboolean
 mono_blob_entry_equal (const char *str1, const char *str2) {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        int len, len2;
        const char *end1;
        const char *end2;
@@ -505,6 +550,8 @@ mono_blob_entry_equal (const char *str1, const char *str2) {
 static guint32
 add_to_blob_cached (MonoDynamicImage *assembly, char *b1, int s1, char *b2, int s2)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        guint32 idx;
        char *copy;
        gpointer oldkey, oldval;
@@ -526,6 +573,8 @@ add_to_blob_cached (MonoDynamicImage *assembly, char *b1, int s1, char *b2, int
 static guint32
 sigbuffer_add_to_blob_cached (MonoDynamicImage *assembly, SigBuffer *buf)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        char blob_size [8];
        char *b = blob_size;
        guint32 size = buf->p - buf->buf;
@@ -541,6 +590,7 @@ sigbuffer_add_to_blob_cached (MonoDynamicImage *assembly, SigBuffer *buf)
  */
 static void
 swap_with_size (char *dest, const char* val, int len, int nelem) {
+       MONO_REQ_GC_NEUTRAL_MODE;
 #if G_BYTE_ORDER != G_LITTLE_ENDIAN
        int elem;
 
@@ -583,6 +633,8 @@ swap_with_size (char *dest, const char* val, int len, int nelem) {
 static guint32
 add_mono_string_to_blob_cached (MonoDynamicImage *assembly, MonoString *str)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+       
        char blob_size [64];
        char *b = blob_size;
        guint32 idx = 0, len;
@@ -608,6 +660,8 @@ add_mono_string_to_blob_cached (MonoDynamicImage *assembly, MonoString *str)
 static MonoClass *
 default_class_from_mono_type (MonoType *type)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        switch (type->type) {
        case MONO_TYPE_OBJECT:
                return mono_defaults.object_class;
@@ -660,6 +714,8 @@ default_class_from_mono_type (MonoType *type)
 gpointer
 mono_class_get_ref_info (MonoClass *klass)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        if (klass->ref_info_handle == 0)
                return NULL;
        else
@@ -669,6 +725,8 @@ mono_class_get_ref_info (MonoClass *klass)
 void
 mono_class_set_ref_info (MonoClass *klass, gpointer obj)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        klass->ref_info_handle = mono_gchandle_new ((MonoObject*)obj, FALSE);
        g_assert (klass->ref_info_handle != 0);
 }
@@ -676,6 +734,8 @@ mono_class_set_ref_info (MonoClass *klass, gpointer obj)
 void
 mono_class_free_ref_info (MonoClass *klass)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        if (klass->ref_info_handle) {
                mono_gchandle_free (klass->ref_info_handle);
                klass->ref_info_handle = 0;
@@ -685,6 +745,8 @@ mono_class_free_ref_info (MonoClass *klass)
 static void
 encode_generic_class (MonoDynamicImage *assembly, MonoGenericClass *gclass, SigBuffer *buf)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        int i;
        MonoGenericInst *class_inst;
        MonoClass *klass;
@@ -707,6 +769,8 @@ encode_generic_class (MonoDynamicImage *assembly, MonoGenericClass *gclass, SigB
 static void
 encode_type (MonoDynamicImage *assembly, MonoType *type, SigBuffer *buf)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        if (!type) {
                g_assert_not_reached ();
                return;
@@ -788,6 +852,8 @@ encode_type (MonoDynamicImage *assembly, MonoType *type, SigBuffer *buf)
 static void
 encode_reflection_type (MonoDynamicImage *assembly, MonoReflectionType *type, SigBuffer *buf)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        if (!type) {
                sigbuffer_add_value (buf, MONO_TYPE_VOID);
                return;
@@ -799,6 +865,8 @@ encode_reflection_type (MonoDynamicImage *assembly, MonoReflectionType *type, Si
 static void
 encode_custom_modifiers (MonoDynamicImage *assembly, MonoArray *modreq, MonoArray *modopt, SigBuffer *buf)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        int i;
 
        if (modreq) {
@@ -821,6 +889,8 @@ encode_custom_modifiers (MonoDynamicImage *assembly, MonoArray *modreq, MonoArra
 static guint32
 method_encode_signature (MonoDynamicImage *assembly, MonoMethodSignature *sig)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        SigBuffer buf;
        int i;
        guint32 nparams =  sig->param_count;
@@ -857,6 +927,8 @@ method_encode_signature (MonoDynamicImage *assembly, MonoMethodSignature *sig)
 static guint32
 method_builder_encode_signature (MonoDynamicImage *assembly, ReflectionMethodBuilder *mb)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        /*
         * FIXME: reuse code from method_encode_signature().
         */
@@ -912,6 +984,8 @@ method_builder_encode_signature (MonoDynamicImage *assembly, ReflectionMethodBui
 static guint32
 encode_locals (MonoDynamicImage *assembly, MonoReflectionILGen *ilgen)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoDynamicTable *table;
        guint32 *values;
        guint32 idx, sig_idx;
@@ -955,6 +1029,8 @@ encode_locals (MonoDynamicImage *assembly, MonoReflectionILGen *ilgen)
 static guint32
 method_count_clauses (MonoReflectionILGen *ilgen)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        guint32 num_clauses = 0;
        int i;
 
@@ -974,6 +1050,8 @@ method_count_clauses (MonoReflectionILGen *ilgen)
 static MonoExceptionClause*
 method_encode_clauses (MonoImage *image, MonoDynamicImage *assembly, MonoReflectionILGen *ilgen, guint32 num_clauses)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoExceptionClause *clauses;
        MonoExceptionClause *clause;
        MonoILExceptionInfo *ex_info;
@@ -1023,6 +1101,8 @@ method_encode_clauses (MonoImage *image, MonoDynamicImage *assembly, MonoReflect
 static guint32
 method_encode_code (MonoDynamicImage *assembly, ReflectionMethodBuilder *mb)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        char flags = 0;
        guint32 idx;
        guint32 code_size;
@@ -1178,6 +1258,8 @@ fat_header:
 static guint32
 find_index_in_table (MonoDynamicImage *assembly, int table_idx, int col, guint32 token)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        int i;
        MonoDynamicTable *table;
        guint32 *values;
@@ -1201,6 +1283,8 @@ find_index_in_table (MonoDynamicImage *assembly, int table_idx, int col, guint32
 static MonoCustomAttrInfo*
 lookup_custom_attr (MonoImage *image, gpointer member)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        MonoCustomAttrInfo* res;
 
        res = mono_image_property_lookup (image, member, MONO_PROP_DYNAMIC_CATTR);
@@ -1216,6 +1300,8 @@ lookup_custom_attr (MonoImage *image, gpointer member)
 static gboolean
 custom_attr_visible (MonoImage *image, MonoReflectionCustomAttr *cattr)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        /* FIXME: Need to do more checks */
        if (cattr->ctor->method && (cattr->ctor->method->klass->image != image)) {
                int visibility = cattr->ctor->method->klass->flags & TYPE_ATTRIBUTE_VISIBILITY_MASK;
@@ -1230,6 +1316,8 @@ custom_attr_visible (MonoImage *image, MonoReflectionCustomAttr *cattr)
 static MonoCustomAttrInfo*
 mono_custom_attrs_from_builders (MonoImage *alloc_img, MonoImage *image, MonoArray *cattrs)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        int i, index, count, not_visible;
        MonoCustomAttrInfo *ainfo;
        MonoReflectionCustomAttr *cattr;
@@ -1278,6 +1366,8 @@ mono_custom_attrs_from_builders (MonoImage *alloc_img, MonoImage *image, MonoArr
 static void
 mono_save_custom_attrs (MonoImage *image, void *obj, MonoArray *cattrs)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoCustomAttrInfo *ainfo, *tmp;
 
        if (!cattrs || !mono_array_length (cattrs))
@@ -1298,6 +1388,8 @@ mono_save_custom_attrs (MonoImage *image, void *obj, MonoArray *cattrs)
 void
 mono_custom_attrs_free (MonoCustomAttrInfo *ainfo)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        if (!ainfo->cached)
                g_free (ainfo);
 }
@@ -1309,6 +1401,8 @@ mono_custom_attrs_free (MonoCustomAttrInfo *ainfo)
 static void
 mono_image_add_cattrs (MonoDynamicImage *assembly, guint32 idx, guint32 type, MonoArray *cattrs)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoDynamicTable *table;
        MonoReflectionCustomAttr *cattr;
        guint32 *values;
@@ -1361,6 +1455,8 @@ mono_image_add_cattrs (MonoDynamicImage *assembly, guint32 idx, guint32 type, Mo
 static void
 mono_image_add_decl_security (MonoDynamicImage *assembly, guint32 parent_token, MonoArray *permissions)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoDynamicTable *table;
        guint32 *values;
        guint32 count, i, idx;
@@ -1410,6 +1506,8 @@ mono_image_add_decl_security (MonoDynamicImage *assembly, guint32 parent_token,
 static void
 mono_image_basic_method (ReflectionMethodBuilder *mb, MonoDynamicImage *assembly)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoDynamicTable *table;
        guint32 *values;
        guint i, count;
@@ -1485,6 +1583,8 @@ mono_image_basic_method (ReflectionMethodBuilder *mb, MonoDynamicImage *assembly
 static void
 reflection_methodbuilder_from_method_builder (ReflectionMethodBuilder *rmb, MonoReflectionMethodBuilder *mb)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        memset (rmb, 0, sizeof (ReflectionMethodBuilder));
 
        rmb->ilgen = mb->ilgen;
@@ -1524,6 +1624,8 @@ reflection_methodbuilder_from_method_builder (ReflectionMethodBuilder *rmb, Mono
 static void
 reflection_methodbuilder_from_ctor_builder (ReflectionMethodBuilder *rmb, MonoReflectionCtorBuilder *mb)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        const char *name = mb->attrs & METHOD_ATTRIBUTE_STATIC ? ".cctor": ".ctor";
 
        memset (rmb, 0, sizeof (ReflectionMethodBuilder));
@@ -1557,6 +1659,8 @@ reflection_methodbuilder_from_ctor_builder (ReflectionMethodBuilder *rmb, MonoRe
 static void
 reflection_methodbuilder_from_dynamic_method (ReflectionMethodBuilder *rmb, MonoReflectionDynamicMethod *mb)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        memset (rmb, 0, sizeof (ReflectionMethodBuilder));
 
        rmb->ilgen = mb->ilgen;
@@ -1589,6 +1693,8 @@ reflection_methodbuilder_from_dynamic_method (ReflectionMethodBuilder *rmb, Mono
 static void
 mono_image_add_methodimpl (MonoDynamicImage *assembly, MonoReflectionMethodBuilder *mb)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoReflectionTypeBuilder *tb = (MonoReflectionTypeBuilder *)mb->type;
        MonoDynamicTable *table;
        guint32 *values;
@@ -1628,6 +1734,8 @@ mono_image_add_methodimpl (MonoDynamicImage *assembly, MonoReflectionMethodBuild
 static void
 mono_image_get_method_info (MonoReflectionMethodBuilder *mb, MonoDynamicImage *assembly)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoDynamicTable *table;
        guint32 *values;
        ReflectionMethodBuilder rmb;
@@ -1681,6 +1789,8 @@ mono_image_get_method_info (MonoReflectionMethodBuilder *mb, MonoDynamicImage *a
 static void
 mono_image_get_ctor_info (MonoDomain *domain, MonoReflectionCtorBuilder *mb, MonoDynamicImage *assembly)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        ReflectionMethodBuilder rmb;
 
        reflection_methodbuilder_from_ctor_builder (&rmb, mb);
@@ -1693,11 +1803,16 @@ mono_image_get_ctor_info (MonoDomain *domain, MonoReflectionCtorBuilder *mb, Mon
 static char*
 type_get_fully_qualified_name (MonoType *type)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        return mono_type_get_name_full (type, MONO_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED);
 }
 
 static char*
-type_get_qualified_name (MonoType *type, MonoAssembly *ass) {
+type_get_qualified_name (MonoType *type, MonoAssembly *ass)
+{
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoClass *klass;
        MonoAssembly *ta;
 
@@ -1721,6 +1836,8 @@ type_get_qualified_name (MonoType *type, MonoAssembly *ass) {
 static guint32
 fieldref_encode_signature (MonoDynamicImage *assembly, MonoImage *field_image, MonoType *type)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        SigBuffer buf;
        guint32 idx, i, token;
 
@@ -1761,6 +1878,8 @@ fieldref_encode_signature (MonoDynamicImage *assembly, MonoImage *field_image, M
 static guint32
 field_encode_signature (MonoDynamicImage *assembly, MonoReflectionFieldBuilder *fb)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        SigBuffer buf;
        guint32 idx;
        guint32 typespec = 0;
@@ -1794,7 +1913,10 @@ field_encode_signature (MonoDynamicImage *assembly, MonoReflectionFieldBuilder *
 }
 
 static guint32
-encode_constant (MonoDynamicImage *assembly, MonoObject *val, guint32 *ret_type) {
+encode_constant (MonoDynamicImage *assembly, MonoObject *val, guint32 *ret_type)
+{
+       MONO_REQ_GC_UNSAFE_MODE;
+
        char blob_size [64];
        char *b = blob_size;
        char *box_val;
@@ -1891,7 +2013,10 @@ handle_enum:
 }
 
 static guint32
-encode_marshal_blob (MonoDynamicImage *assembly, MonoReflectionMarshal *minfo) {
+encode_marshal_blob (MonoDynamicImage *assembly, MonoReflectionMarshal *minfo)
+{
+       MONO_REQ_GC_UNSAFE_MODE;
+
        char *str;
        SigBuffer buf;
        guint32 idx, len;
@@ -1968,6 +2093,8 @@ encode_marshal_blob (MonoDynamicImage *assembly, MonoReflectionMarshal *minfo) {
 static void
 mono_image_get_field_info (MonoReflectionFieldBuilder *fb, MonoDynamicImage *assembly)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoDynamicTable *table;
        guint32 *values;
 
@@ -2032,6 +2159,8 @@ mono_image_get_field_info (MonoReflectionFieldBuilder *fb, MonoDynamicImage *ass
 static guint32
 property_encode_signature (MonoDynamicImage *assembly, MonoReflectionPropertyBuilder *fb)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        SigBuffer buf;
        guint32 nparams = 0;
        MonoReflectionMethodBuilder *mb = fb->get_method;
@@ -2073,6 +2202,8 @@ property_encode_signature (MonoDynamicImage *assembly, MonoReflectionPropertyBui
 static void
 mono_image_get_property_info (MonoReflectionPropertyBuilder *pb, MonoDynamicImage *assembly)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoDynamicTable *table;
        guint32 *values;
        guint num_methods = 0;
@@ -2131,6 +2262,8 @@ mono_image_get_property_info (MonoReflectionPropertyBuilder *pb, MonoDynamicImag
 static void
 mono_image_get_event_info (MonoReflectionEventBuilder *eb, MonoDynamicImage *assembly)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoDynamicTable *table;
        guint32 *values;
        guint num_methods = 0;
@@ -2187,6 +2320,8 @@ mono_image_get_event_info (MonoReflectionEventBuilder *eb, MonoDynamicImage *ass
 static void
 encode_constraints (MonoReflectionGenericParam *gparam, guint32 owner, MonoDynamicImage *assembly)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoDynamicTable *table;
        guint32 num_constraints, i;
        guint32 *values;
@@ -2225,6 +2360,8 @@ encode_constraints (MonoReflectionGenericParam *gparam, guint32 owner, MonoDynam
 static void
 mono_image_get_generic_param_info (MonoReflectionGenericParam *gparam, guint32 owner, MonoDynamicImage *assembly)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        GenericParamTableEntry *entry;
 
        /*
@@ -2246,6 +2383,8 @@ mono_image_get_generic_param_info (MonoReflectionGenericParam *gparam, guint32 o
 static void
 write_generic_param_entry (MonoDynamicImage *assembly, GenericParamTableEntry *entry)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoDynamicTable *table;
        MonoGenericParam *param;
        guint32 *values;
@@ -2270,6 +2409,8 @@ write_generic_param_entry (MonoDynamicImage *assembly, GenericParamTableEntry *e
 static guint32
 resolution_scope_from_image (MonoDynamicImage *assembly, MonoImage *image)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoDynamicTable *table;
        guint32 token;
        guint32 *values;
@@ -2340,6 +2481,8 @@ resolution_scope_from_image (MonoDynamicImage *assembly, MonoImage *image)
 static guint32
 create_typespec (MonoDynamicImage *assembly, MonoType *type)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        MonoDynamicTable *table;
        guint32 *values;
        guint32 token;
@@ -2392,6 +2535,8 @@ create_typespec (MonoDynamicImage *assembly, MonoType *type)
 static guint32
 mono_image_typedef_or_ref_full (MonoDynamicImage *assembly, MonoType *type, gboolean try_typespec)
 {
+       MONO_REQ_GC_UNSAFE_MODE;
+
        MonoDynamicTable *table;
        guint32 *values;
        guint32 token, scope, enclosing;
@@ -2454,6 +2599,8 @@ mono_image_typedef_or_ref (MonoDynamicImage *assembly, MonoType *type)
 static guint32
 mono_image_add_memberef_row (MonoDynamicImage *assembly, guint32 parent, const char *name, guint32 sig)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        MonoDynamicTable *table;
        guint32 *values;
        guint32 token, pclass;
@@ -2500,6 +2647,8 @@ mono_image_add_memberef_row (MonoDynamicImage *assembly, guint32 parent, const c
 static guint32
 mono_image_get_memberref_token (MonoDynamicImage *assembly, MonoType *type, const char *name, guint32 sig)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        guint32 parent = mono_image_typedef_or_ref (assembly, type);
        return mono_image_add_memberef_row (assembly, parent, name, sig);
 }
@@ -2508,6 +2657,8 @@ mono_image_get_memberref_token (MonoDynamicImage *assembly, MonoType *type, cons
 static guint32
 mono_image_get_methodref_token (MonoDynamicImage *assembly, MonoMethod *method, gboolean create_typespec)
 {
+       MONO_REQ_GC_NEUTRAL_MODE;
+
        guint32 token;
        MonoMethodSignature *sig;
        
@@ -11738,8 +11889,19 @@ static void
 free_dynamic_method (void *dynamic_method)
 {
        DynamicMethodReleaseData *data = dynamic_method;
+       MonoDomain *domain = data->domain;
+       MonoMethod *method = data->handle;
+       gpointer *dis_link;
+
+       mono_domain_lock (domain);
+       dis_link = g_hash_table_lookup (domain->method_to_dyn_method, method);
+       g_hash_table_remove (domain->method_to_dyn_method, method);
+       mono_domain_unlock (domain);
+       g_assert (dis_link);
+       mono_gc_weak_link_remove (dis_link, TRUE);
+       g_free (dis_link);
 
-       mono_runtime_free_method (data->domain, data->handle);
+       mono_runtime_free_method (domain, method);
        g_free (data);
 }
 
@@ -11752,7 +11914,9 @@ mono_reflection_create_dynamic_method (MonoReflectionDynamicMethod *mb)
        ReflectionMethodBuilder rmb;
        MonoMethodSignature *sig;
        MonoClass *klass;
+       MonoDomain *domain;
        GSList *l;
+       void *dis_link;
        int i;
 
        if (mono_runtime_is_shutting_down ())
@@ -11849,6 +12013,15 @@ mono_reflection_create_dynamic_method (MonoReflectionDynamicMethod *mb)
 
        /* ilgen is no longer needed */
        mb->ilgen = NULL;
+
+       domain = mono_domain_get ();
+       mono_domain_lock (domain);
+       if (!domain->method_to_dyn_method)
+               domain->method_to_dyn_method = g_hash_table_new (NULL, NULL);
+       dis_link = g_new0 (gpointer, 1);
+       mono_gc_weak_link_add (dis_link, (MonoObject*)mb, TRUE);
+       g_hash_table_insert (domain->method_to_dyn_method, handle, dis_link);
+       mono_domain_unlock (domain);
 }
 
 #endif /* DISABLE_REFLECTION_EMIT */
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 2847011dc22d42f47fb168607d3a12ccb77b946b..ede6e48ba408d971d305f1b682051554faea5561 100644 (file)
@@ -103,6 +103,30 @@ enum {
        INTERNAL_MEM_MAX
 };
 
+static inline mword
+sgen_mono_array_size (GCVTable vtable, MonoArray *array, mword *bounds_size, mword descr)
+{
+       mword size, size_without_bounds;
+       int element_size;
+
+       if ((descr & DESC_TYPE_MASK) == DESC_TYPE_VECTOR)
+               element_size = ((descr) >> VECTOR_ELSIZE_SHIFT) & MAX_ELEMENT_SIZE;
+       else
+               element_size = vtable->klass->sizes.element_size;
+
+       size_without_bounds = size = sizeof (MonoArray) + 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) * vtable->klass->rank;
+       }
+
+       if (bounds_size)
+               *bounds_size = size - size_without_bounds;
+       return size;
+}
+
 #define SGEN_CLIENT_OBJECT_HEADER_SIZE         (sizeof (GCObject))
 #define SGEN_CLIENT_MINIMUM_OBJECT_SIZE                SGEN_CLIENT_OBJECT_HEADER_SIZE
 
@@ -118,14 +142,7 @@ sgen_client_slow_object_get_size (GCVTable vtable, GCObject* o)
        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;
+               return sgen_mono_array_size (vtable, (MonoArray*)o, NULL, 0);
        } else {
                /* from a created object: the class must be inited already */
                return klass->instance_size;
@@ -150,20 +167,7 @@ sgen_client_par_object_get_size (GCVTable vtable, GCObject* o)
        } 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_mono_array_size (vtable, (MonoArray*)o, NULL, descr);
        }
 
        return sgen_client_slow_object_get_size (vtable, o);
index 936348752203892fa15151ac0f87acb96e290f86..0a3b810c447d29214064c50076022a2ad1ae57c2 100644 (file)
@@ -870,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
@@ -1010,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);         \
@@ -1381,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";
@@ -1594,15 +1596,17 @@ sgen_client_cardtable_scan_object (GCObject *obj, mword block_obj_size, guint8 *
        SGEN_ASSERT (0, SGEN_VTABLE_HAS_REFERENCES (vt), "Why would we ever call this on reference-free objects?");
 
        if (vt->rank) {
+               MonoArray *arr = (MonoArray*)obj;
                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, obj);
-               char *obj_end = (char*)obj + obj_size;
+               mword bounds_size;
+               mword obj_size = sgen_mono_array_size (vt, arr, &bounds_size, sgen_vtable_get_descriptor (vt));
+               /* We don't want to scan the bounds entries at the end of multidimensional arrays */
+               char *obj_end = (char*)obj + obj_size - bounds_size;
                size_t card_count;
                size_t extra_idx = 0;
 
-               MonoArray *arr = (MonoArray*)obj;
                mword desc = (mword)klass->element_class->gc_descr;
                int elem_size = mono_array_element_size (klass);
 
@@ -1843,7 +1847,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 ((GCObject*)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 {
@@ -2142,7 +2146,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);
@@ -2750,7 +2754,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.
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 656d8393045abfc5cf3a4d49365cc6c6f13a686b..3145a5e35353e235923ce95f58075a0f1b7526f5 100644 (file)
@@ -61,25 +61,25 @@ sgen_suspend_thread (SgenThreadInfo *info)
 #ifdef USE_MONO_CTX
        memset (&info->client_info.ctx, 0, sizeof (MonoContext));
 #ifdef TARGET_AMD64
-       info->client_info.ctx.rip = context.Rip;
-       info->client_info.ctx.rax = context.Rax;
-       info->client_info.ctx.rcx = context.Rcx;
-       info->client_info.ctx.rdx = context.Rdx;
-       info->client_info.ctx.rbx = context.Rbx;
-       info->client_info.ctx.rsp = context.Rsp;
-       info->client_info.ctx.rbp = context.Rbp;
-       info->client_info.ctx.rsi = context.Rsi;
-       info->client_info.ctx.rdi = context.Rdi;
-       info->client_info.ctx.r8 = context.R8;
-       info->client_info.ctx.r9 = context.R9;
-       info->client_info.ctx.r10 = context.R10;
-       info->client_info.ctx.r11 = context.R11;
-       info->client_info.ctx.r12 = context.R12;
-       info->client_info.ctx.r13 = context.R13;
-       info->client_info.ctx.r14 = context.R14;
-       info->client_info.ctx.r15 = context.R15;
-       info->client_info.stopped_ip = info->client_info.ctx.rip;
-       info->client_info.stack_start = (char*)info->client_info.ctx.rsp - REDZONE_SIZE;
+    info->client_info.ctx.gregs[AMD64_RIP] = context.Rip;
+    info->client_info.ctx.gregs[AMD64_RAX] = context.Rax;
+    info->client_info.ctx.gregs[AMD64_RCX] = context.Rcx;
+    info->client_info.ctx.gregs[AMD64_RDX] = context.Rdx;
+    info->client_info.ctx.gregs[AMD64_RBX] = context.Rbx;
+    info->client_info.ctx.gregs[AMD64_RSP] = context.Rsp;
+    info->client_info.ctx.gregs[AMD64_RBP] = context.Rbp;
+    info->client_info.ctx.gregs[AMD64_RSI] = context.Rsi;
+    info->client_info.ctx.gregs[AMD64_RDI] = context.Rdi;
+    info->client_info.ctx.gregs[AMD64_R8] = context.R8;
+    info->client_info.ctx.gregs[AMD64_R9] = context.R9;
+    info->client_info.ctx.gregs[AMD64_R10] = context.R10;
+    info->client_info.ctx.gregs[AMD64_R11] = context.R11;
+    info->client_info.ctx.gregs[AMD64_R12] = context.R12;
+    info->client_info.ctx.gregs[AMD64_R13] = context.R13;
+    info->client_info.ctx.gregs[AMD64_R14] = context.R14;
+    info->client_info.ctx.gregs[AMD64_R15] = context.R15;
+    info->client_info.stopped_ip = info->client_info.ctx.gregs[AMD64_RIP];
+    info->client_info.stack_start = (char*)info->client_info.ctx.gregs[AMD64_RSP] - REDZONE_SIZE;
 #else
        info->client_info.ctx.edi = context.Edi;
        info->client_info.ctx.esi = context.Esi;
index 3ef7a0aa08ef524a5d25fe96a910f506aa6e8c29..475d8321378203b1ef83c3482f998149b2b6efba 100644 (file)
@@ -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;
@@ -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
index eb18b3e98e6ae590da09a16686dde0928516a624..bf619214c8557f19a08553296a81a69719ee3d1c 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,26 +55,46 @@ epoll_cleanup (void)
 }
 
 static void
-epoll_update_add (gint fd, gint events, gboolean is_new)
+epoll_register_fd (gint fd, gint events, gboolean is_new)
 {
        struct epoll_event event;
 
+#ifndef EPOLLONESHOT
+/* it was only defined on android in May 2013 */
+#define EPOLLONESHOT 0x40000000
+#endif
+
        event.data.fd = fd;
-       if ((events & MONO_POLLIN) != 0)
+       event.events = EPOLLONESHOT;
+       if ((events & EVENT_IN) != 0)
                event.events |= EPOLLIN;
-       if ((events & MONO_POLLOUT) != 0)
+       if ((events & EVENT_OUT) != 0)
                event.events |= EPOLLOUT;
 
        if (epoll_ctl (epoll_fd, 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", is_new ? "EPOLL_CTL_ADD" : "EPOLL_CTL_MOD", errno, g_strerror (errno));
+               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 void
+epoll_remove_fd (gint fd)
+{
+       if (epoll_ctl (epoll_fd, EPOLL_CTL_DEL, fd, NULL) == -1)
+                       g_error ("epoll_remove_fd: epoll_ctl (EPOLL_CTL_DEL) failed, error (%d) %s", errno, g_strerror (errno));
 }
 
 static gint
-epoll_event_wait (void)
+epoll_event_wait (void (*callback) (gint fd, gint events, gpointer user_data), gpointer user_data)
 {
-       gint ready;
+       gint i, ready;
+
+       memset (epoll_events, 0, sizeof (struct epoll_event) * EPOLL_NEVENTS);
+
+       mono_gc_set_skip_thread (TRUE);
 
        ready = epoll_wait (epoll_fd, epoll_events, EPOLL_NEVENTS, -1);
+
+       mono_gc_set_skip_thread (FALSE);
+
        if (ready == -1) {
                switch (errno) {
                case EINTR:
@@ -82,54 +102,35 @@ epoll_event_wait (void)
                        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;
                }
        }
 
-       return ready;
-}
-
-static gint
-epoll_event_get_fd_max (void)
-{
-       return EPOLL_NEVENTS;
-}
+       if (ready == -1)
+               return -1;
 
-static gint
-epoll_event_get_fd_at (gint i, gint *events)
-{
-       g_assert (events);
+       for (i = 0; i < ready; ++i) {
+               gint fd, events = 0;
 
-       *events = ((epoll_events [i].events & (EPOLLIN | EPOLLERR | EPOLLHUP)) ? MONO_POLLIN : 0)
-                   | ((epoll_events [i].events & (EPOLLOUT | EPOLLERR | EPOLLHUP)) ? MONO_POLLOUT : 0);
+               fd = epoll_events [i].data.fd;
+               if (epoll_events [i].events & (EPOLLIN | EPOLLERR | EPOLLHUP))
+                       events |= EVENT_IN;
+               if (epoll_events [i].events & (EPOLLOUT | EPOLLERR | EPOLLHUP))
+                       events |= EVENT_OUT;
 
-       return epoll_events [i].data.fd;
-}
-
-static void
-epoll_event_reset_fd_at (gint i, gint events)
-{
-       if (events == 0) {
-               if (epoll_ctl (epoll_fd, EPOLL_CTL_DEL, epoll_events [i].data.fd, &epoll_events [i]) == -1)
-                       g_warning ("epoll_event_reset_fd_at: epoll_ctl (EPOLL_CTL_DEL) failed, error (%d) %s", errno, g_strerror (errno));
-       } else {
-               epoll_events [i].events = ((events & MONO_POLLOUT) ? EPOLLOUT : 0)
-                                           | ((events & MONO_POLLIN) ? EPOLLIN : 0);
-
-               if (epoll_ctl (epoll_fd, EPOLL_CTL_MOD, epoll_events [i].data.fd, &epoll_events [i]) == -1)
-                       g_warning ("epoll_event_get_ioares_at: epoll_ctl (EPOLL_CTL_MOD) failed, error (%d) %s", errno, g_strerror (errno));
+               callback (fd, events, user_data);
        }
+
+       return 0;
 }
 
 static ThreadPoolIOBackend backend_epoll = {
        .init = epoll_init,
        .cleanup = epoll_cleanup,
-       .update_add = epoll_update_add,
+       .register_fd = epoll_register_fd,
+       .remove_fd = epoll_remove_fd,
        .event_wait = epoll_event_wait,
-       .event_get_fd_max = epoll_event_get_fd_max,
-       .event_get_fd_at = epoll_event_get_fd_at,
-       .event_reset_fd_at = epoll_event_reset_fd_at,
 };
 
 #endif
index 26113bdd7a6785a74b1fa57457fff22ec308bb3b..093d3399dc947736f20140470c3ef08cfa306aa0 100644 (file)
 static gint kqueue_fd;
 static struct kevent *kqueue_events;
 
-static gboolean
-kqueue_init (gint wakeup_pipe_fd)
+static gint
+KQUEUE_INIT_FD (gint fd, gint events, gint flags)
 {
        struct kevent event;
+       EV_SET (&event, fd, events, flags, 0, 0, 0);
+       return kevent (kqueue_fd, &event, 1, NULL, 0, NULL);
+}
 
+static gboolean
+kqueue_init (gint wakeup_pipe_fd)
+{
        kqueue_fd = kqueue ();
        if (kqueue_fd == -1) {
-               g_warning ("kqueue_init: kqueue () failed, error (%d) %s", errno, g_strerror (errno));
+               g_error ("kqueue_init: kqueue () failed, error (%d) %s", errno, g_strerror (errno));
                return FALSE;
        }
 
-       EV_SET (&event, wakeup_pipe_fd, EVFILT_READ, EV_ADD | EV_ENABLE, 0, 0, 0);
-       if (kevent (kqueue_fd, &event, 1, NULL, 0, NULL) == -1) {
-               g_warning ("kqueue_init: kevent () failed, error (%d) %s", errno, g_strerror (errno));
+       if (KQUEUE_INIT_FD (wakeup_pipe_fd, EVFILT_READ, EV_ADD | EV_ENABLE) == -1) {
+               g_error ("kqueue_init: kevent () failed, error (%d) %s", errno, g_strerror (errno));
                close (kqueue_fd);
                return FALSE;
        }
@@ -46,25 +51,47 @@ kqueue_cleanup (void)
 }
 
 static void
-kqueue_update_add (gint fd, gint events, gboolean is_new)
+kqueue_register_fd (gint fd, gint events, gboolean is_new)
 {
-       struct kevent event;
-
-       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 (events & EVENT_IN) {
+               if (KQUEUE_INIT_FD (fd, EVFILT_READ, EV_ADD | EV_ENABLE) == -1)
+                       g_error ("kqueue_register_fd: kevent(read,enable) failed, error (%d) %s", errno, g_strerror (errno));
+       } else {
+               if (KQUEUE_INIT_FD (fd, EVFILT_READ, EV_ADD | EV_DISABLE) == -1)
+                       g_error ("kqueue_register_fd: kevent(read,disable) failed, error (%d) %s", errno, g_strerror (errno));
+       }
+       if (events & EVENT_OUT) {
+               if (KQUEUE_INIT_FD (fd, EVFILT_WRITE, EV_ADD | EV_ENABLE) == -1)
+                       g_error ("kqueue_register_fd: kevent(write,enable) failed, error (%d) %s", errno, g_strerror (errno));
+       } else {
+               if (KQUEUE_INIT_FD (fd, EVFILT_WRITE, EV_ADD | EV_DISABLE) == -1)
+                       g_error ("kqueue_register_fd: kevent(write,disable) failed, error (%d) %s", errno, g_strerror (errno));
+       }
+}
 
-       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));
+static void
+kqueue_remove_fd (gint fd)
+{
+       /* FIXME: a race between closing and adding operation in the Socket managed code trigger a ENOENT error */
+       if (KQUEUE_INIT_FD (fd, EVFILT_READ, EV_DELETE) == -1)
+               g_error ("kqueue_register_fd: kevent(read,delete) failed, error (%d) %s", errno, g_strerror (errno));
+       if (KQUEUE_INIT_FD (fd, EVFILT_WRITE, EV_DELETE) == -1)
+               g_error ("kqueue_register_fd: kevent(write,delete) failed, error (%d) %s", errno, g_strerror (errno));
 }
 
 static gint
-kqueue_event_wait (void)
+kqueue_event_wait (void (*callback) (gint fd, gint events, gpointer user_data), gpointer user_data)
 {
-       gint ready;
+       gint i, ready;
+
+       memset (kqueue_events, 0, sizeof (struct kevent) * KQUEUE_NEVENTS);
+
+       mono_gc_set_skip_thread (TRUE);
 
        ready = kevent (kqueue_fd, NULL, 0, kqueue_events, KQUEUE_NEVENTS, NULL);
+
+       mono_gc_set_skip_thread (FALSE);
+
        if (ready == -1) {
                switch (errno) {
                case EINTR:
@@ -72,56 +99,35 @@ kqueue_event_wait (void)
                        ready = 0;
                        break;
                default:
-                       g_warning ("kqueue_event_wait: kevent () failed, error (%d) %s", errno, g_strerror (errno));
+                       g_error ("kqueue_event_wait: kevent () failed, error (%d) %s", errno, g_strerror (errno));
                        break;
                }
        }
 
-       return ready;
-}
-
-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);
+       if (ready == -1)
+               return -1;
 
-       return kqueue_events [i].ident;
-}
+       for (i = 0; i < ready; ++i) {
+               gint fd, events = 0;
 
-static gint
-kqueue_event_get_fd_max (void)
-{
-       return KQUEUE_NEVENTS;
-}
+               fd = kqueue_events [i].ident;
+               if (kqueue_events [i].filter == EVFILT_READ || (kqueue_events [i].flags & EV_ERROR) != 0)
+                       events |= EVENT_IN;
+               if (kqueue_events [i].filter == EVFILT_WRITE || (kqueue_events [i].flags & EV_ERROR) != 0)
+                       events |= EVENT_OUT;
 
-static void
-kqueue_event_reset_fd_at (gint i, gint events)
-{
-       if (kqueue_events [i].filter == EVFILT_READ && (events & MONO_POLLIN) != 0) {
-               EV_SET (&kqueue_events [i], kqueue_events [i].ident, EVFILT_READ, EV_ADD | EV_ENABLE | EV_ONESHOT, 0, 0, 0);
-               if (kevent (kqueue_fd, &kqueue_events [i], 1, NULL, 0, NULL) == -1) {
-                       g_warning ("kqueue_event_reset_fd_at: kevent (read) failed, error (%d) %s", errno, g_strerror (errno));
-               }
-       }
-       if (kqueue_events [i].filter == EVFILT_WRITE && (events & MONO_POLLOUT) != 0) {
-               EV_SET (&kqueue_events [i], kqueue_events [i].ident, EVFILT_WRITE, EV_ADD | EV_ENABLE | EV_ONESHOT, 0, 0, 0);
-               if (kevent (kqueue_fd, &kqueue_events [i], 1, NULL, 0, NULL) == -1) {
-                       g_warning ("kqueue_event_reset_fd_at: kevent (write) failed, error (%d) %s", errno, g_strerror (errno));
-               }
+               callback (fd, events, user_data);
        }
+
+       return 0;
 }
 
 static ThreadPoolIOBackend backend_kqueue = {
        .init = kqueue_init,
        .cleanup = kqueue_cleanup,
-       .update_add = kqueue_update_add,
+       .register_fd = kqueue_register_fd,
+       .remove_fd = kqueue_remove_fd,
        .event_wait = kqueue_event_wait,
-       .event_get_fd_max = kqueue_event_get_fd_max,
-       .event_get_fd_at = kqueue_event_get_fd_at,
-       .event_reset_fd_at = kqueue_event_reset_fd_at,
 };
 
 #endif
index fd423b86c93afa62ca46c8db241c20a5bc1382da..a02ceea4c50411148fc47ec79dd5d38b7a449c9c 100644 (file)
@@ -1,5 +1,24 @@
 
-#define POLL_NEVENTS 1024
+#if defined(HAVE_POLL)
+
+#if defined(HAVE_POLL_H)
+#include <poll.h>
+#elif defined(HAVE_SYS_POLL_H)
+#include <sys/poll.h>
+#endif
+
+typedef struct pollfd mono_pollfd;
+
+#elif defined(HOST_WIN32)
+
+#include "mswsock.h"
+
+typedef WSAPOLLFD mono_pollfd;
+
+#else
+/* poll is not defined */
+#error
+#endif
 
 static mono_pollfd *poll_fds;
 static guint poll_fds_capacity;
@@ -16,15 +35,20 @@ POLL_INIT_FD (mono_pollfd *poll_fd, gint fd, gint events)
 static gboolean
 poll_init (gint wakeup_pipe_fd)
 {
-       guint i;
+       gint i;
+
+       poll_fds_size = wakeup_pipe_fd + 1;
+       poll_fds_capacity = 64;
+
+       while (wakeup_pipe_fd >= poll_fds_capacity)
+               poll_fds_capacity *= 4;
 
-       poll_fds_size = 1;
-       poll_fds_capacity = POLL_NEVENTS;
        poll_fds = g_new0 (mono_pollfd, poll_fds_capacity);
 
-       POLL_INIT_FD (poll_fds, wakeup_pipe_fd, MONO_POLLIN);
-       for (i = 1; i < poll_fds_capacity; ++i)
-               POLL_INIT_FD (poll_fds + i, -1, 0);
+       for (i = 0; i < wakeup_pipe_fd; ++i)
+               POLL_INIT_FD (&poll_fds [i], -1, 0);
+
+       POLL_INIT_FD (&poll_fds [wakeup_pipe_fd], wakeup_pipe_fd, POLLIN);
 
        return TRUE;
 }
@@ -35,85 +59,80 @@ poll_cleanup (void)
        g_free (poll_fds);
 }
 
-static inline gint
-poll_mark_bad_fds (mono_pollfd *poll_fds, gint poll_fds_size)
+static void
+poll_register_fd (gint fd, gint events, gboolean is_new)
 {
        gint i;
-       gint ret;
-       gint ready = 0;
        mono_pollfd *poll_fd;
 
-       for (i = 0; i < poll_fds_size; i++) {
-               poll_fd = poll_fds + i;
-               if (poll_fd->fd == -1)
-                       continue;
+       g_assert (fd >= 0);
+       g_assert (poll_fds_size <= poll_fds_capacity);
 
-               ret = mono_poll (poll_fd, 1, 0);
-               if (ret == 1)
-                       ready++;
-               if (ret == -1) {
-#if !defined(HOST_WIN32)
-                       if (errno == EBADF)
-#else
-                       if (WSAGetLastError () == WSAEBADF)
-#endif
-                       {
-                               poll_fd->revents |= MONO_POLLNVAL;
-                               ready++;
-                       }
-               }
-       }
+       if (fd >= poll_fds_capacity) {
+               do {
+                       poll_fds_capacity *= 4;
+               } while (fd >= poll_fds_capacity);
 
-       return ready;
-}
+               poll_fds = g_renew (mono_pollfd, poll_fds, poll_fds_capacity);
+       }
 
-static void
-poll_update_add (gint fd, gint events, gboolean is_new)
-{
-       gboolean found = FALSE;
-       gint j, k;
+       if (fd >= poll_fds_size) {
+               for (i = poll_fds_size; i <= fd; ++i)
+                       POLL_INIT_FD (&poll_fds [i], -1, 0);
 
-       for (j = 1; j < poll_fds_size; ++j) {
-               mono_pollfd *poll_fd = poll_fds + j;
-               if (poll_fd->fd == fd) {
-                       found = TRUE;
-                       break;
-               }
+               poll_fds_size = fd + 1;
        }
 
-       if (!found) {
-               for (j = 1; j < poll_fds_capacity; ++j) {
-                       mono_pollfd *poll_fd = poll_fds + j;
-                       if (poll_fd->fd == -1)
-                               break;
-               }
-       }
+       poll_fd = &poll_fds [fd];
 
-       if (j == poll_fds_capacity) {
-               poll_fds_capacity += POLL_NEVENTS;
-               poll_fds = g_renew (mono_pollfd, poll_fds, poll_fds_capacity);
-               for (k = j; k < poll_fds_capacity; ++k)
-                       POLL_INIT_FD (poll_fds + k, -1, 0);
+       if (poll_fd->fd != -1) {
+               g_assert (poll_fd->fd == fd);
+               g_assert (!is_new);
        }
 
-       POLL_INIT_FD (poll_fds + j, fd, events);
+       POLL_INIT_FD (poll_fd, fd, ((events & EVENT_IN) ? POLLIN : 0) | ((events & EVENT_OUT) ? POLLOUT : 0));
+}
 
-       if (j >= poll_fds_size)
-               poll_fds_size = j + 1;
+static void
+poll_remove_fd (gint fd)
+{
+       mono_pollfd *poll_fd;
+
+       g_assert (fd >= 0);
+
+       g_assert (fd < poll_fds_size);
+       poll_fd = &poll_fds [fd];
+
+       g_assert (poll_fd->fd == fd);
+       POLL_INIT_FD (poll_fd, -1, 0);
 }
 
 static gint
-poll_event_wait (void)
+poll_event_wait (void (*callback) (gint fd, gint events, gpointer user_data), gpointer user_data)
 {
-       gint ready;
+       gint i, ready;
+
+       for (i = 0; i < poll_fds_size; ++i)
+               poll_fds [i].revents = 0;
+
+       mono_gc_set_skip_thread (TRUE);
+
+#if !defined(HOST_WIN32)
+       ready = poll (poll_fds, poll_fds_size, -1);
+#else
+       ready = WSAPoll(poll_fds, poll_fds_size, -1);
+       if (ready == SOCKET_ERROR)
+               ready = -1;
+#endif
+
+       mono_gc_set_skip_thread (FALSE);
 
-       ready = mono_poll (poll_fds, poll_fds_size, -1);
        if (ready == -1) {
                /*
                 * 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
+                *      then as 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.
@@ -133,63 +152,51 @@ poll_event_wait (void)
 #else
                case WSAEINTR:
 #endif
+               {
                        mono_thread_internal_check_for_interruption_critical (mono_thread_internal_current ());
                        ready = 0;
                        break;
-#if !defined(HOST_WIN32)
-               case EBADF:
-#else
-               case WSAEBADF:
-#endif
-                       ready = poll_mark_bad_fds (poll_fds, poll_fds_size);
-                       break;
+               }
                default:
 #if !defined(HOST_WIN32)
-                       g_warning ("poll_event_wait: mono_poll () failed, error (%d) %s", errno, g_strerror (errno));
+                       g_error ("poll_event_wait: mono_poll () failed, error (%d) %s", errno, g_strerror (errno));
 #else
-                       g_warning ("poll_event_wait: mono_poll () failed, error (%d)\n", WSAGetLastError ());
+                       g_error ("poll_event_wait: mono_poll () failed, error (%d)\n", WSAGetLastError ());
 #endif
                        break;
                }
        }
 
-       return ready;
-}
+       if (ready == -1)
+               return -1;
 
-static gint
-poll_event_get_fd_at (gint i, gint *events)
-{
-       g_assert (events);
+       for (i = 0; i < poll_fds_size; ++i) {
+               gint fd, events = 0;
 
-       *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 (poll_fds [i].fd == -1)
+                       continue;
+               if (poll_fds [i].revents == 0)
+                       continue;
 
-       /* 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;
-}
+               fd = poll_fds [i].fd;
+               if (poll_fds [i].revents & (POLLIN | POLLERR | POLLHUP | POLLNVAL))
+                       events |= EVENT_IN;
+               if (poll_fds [i].revents & (POLLOUT | POLLERR | POLLHUP | POLLNVAL))
+                       events |= EVENT_OUT;
 
-static gint
-poll_event_get_fd_max (void)
-{
-       return poll_fds_size;
-}
+               callback (fd, events, user_data);
 
-static void
-poll_event_reset_fd_at (gint i, gint events)
-{
-       g_assert (poll_fds [i].fd != -1);
-       g_assert (poll_fds [i].revents != 0);
+               if (--ready == 0)
+                       break;
+       }
 
-       POLL_INIT_FD (&poll_fds [i], events == 0 ? -1 : poll_fds [i].fd, events);
+       return 0;
 }
 
 static ThreadPoolIOBackend backend_poll = {
        .init = poll_init,
        .cleanup = poll_cleanup,
-       .update_add = poll_update_add,
+       .register_fd = poll_register_fd,
+       .remove_fd = poll_remove_fd,
        .event_wait = poll_event_wait,
-       .event_get_fd_max = poll_event_get_fd_max,
-       .event_get_fd_at = poll_event_get_fd_at,
-       .event_reset_fd_at = poll_event_reset_fd_at,
 };
index 71f5bac5f3ef31acf01ed310eba3b0e9dd2c5f7c..d6f8b25b2521e381534cefb1f05561bdf72accea 100644 (file)
 #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>
+#include <mono/utils/mono-logger-internal.h>
 
 typedef struct {
        gboolean (*init) (gint wakeup_pipe_fd);
        void     (*cleanup) (void);
-       void     (*update_add) (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);
-       void     (*event_reset_fd_at) (gint i, gint events);
+       void     (*register_fd) (gint fd, gint events, gboolean is_new);
+       void     (*remove_fd) (gint fd);
+       gint     (*event_wait) (void (*callback) (gint fd, gint events, gpointer user_data), gpointer user_data);
 } ThreadPoolIOBackend;
 
+enum {
+       EVENT_IN   = 1 << 0,
+       EVENT_OUT  = 1 << 1,
+} ThreadPoolIOEvent;
+
 #include "threadpool-ms-io-epoll.c"
 #include "threadpool-ms-io-kqueue.c"
 #include "threadpool-ms-io-poll.c"
 
+#define UPDATES_CAPACITY 128
+
 /* Keep in sync with System.Net.Sockets.Socket.SocketOperation */
 enum {
        AIO_OP_FIRST,
@@ -62,20 +68,42 @@ enum {
        AIO_OP_LAST
 };
 
+typedef enum {
+       UPDATE_EMPTY = 0,
+       UPDATE_ADD,
+       UPDATE_REMOVE_SOCKET,
+       UPDATE_REMOVE_DOMAIN,
+} ThreadPoolIOUpdateType;
+
 typedef struct {
+       gint fd;
        MonoSocketAsyncResult *sockares;
-} ThreadPoolIOUpdate;
+} ThreadPoolIOUpdate_Add;
 
 typedef struct {
-       MonoGHashTable *states;
-       mono_mutex_t states_lock;
+       gint fd;
+} ThreadPoolIOUpdate_RemoveSocket;
+
+typedef struct {
+       MonoDomain *domain;
+} ThreadPoolIOUpdate_RemoveDomain;
 
+typedef struct {
+       ThreadPoolIOUpdateType type;
+       union {
+               ThreadPoolIOUpdate_Add add;
+               ThreadPoolIOUpdate_RemoveSocket remove_socket;
+               ThreadPoolIOUpdate_RemoveDomain remove_domain;
+       } data;
+} ThreadPoolIOUpdate;
+
+typedef struct {
        ThreadPoolIOBackend backend;
 
-       ThreadPoolIOUpdate *updates;
-       guint updates_size;
-       guint updates_capacity;
+       ThreadPoolIOUpdate updates [UPDATES_CAPACITY];
+       gint updates_size;
        mono_mutex_t updates_lock;
+       mono_cond_t updates_cond;
 
 #if !defined(HOST_WIN32)
        gint wakeup_pipes [2];
@@ -84,8 +112,9 @@ typedef struct {
 #endif
 } ThreadPoolIO;
 
-static gint32 io_status = STATUS_NOT_INITIALIZED;
-static gint32 io_thread_status = STATUS_NOT_INITIALIZED;
+static mono_lazy_init_t io_status = MONO_LAZY_INIT_STATUS_NOT_INITIALIZED;
+
+static gboolean io_selector_running = FALSE;
 
 static ThreadPoolIO* threadpool_io;
 
@@ -100,14 +129,14 @@ get_events_from_sockares (MonoSocketAsyncResult *ares)
        case AIO_OP_READPIPE:
        case AIO_OP_ACCEPTRECEIVE:
        case AIO_OP_RECEIVE_BUFFERS:
-               return MONO_POLLIN;
+               return EVENT_IN;
        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;
+               return EVENT_OUT;
        default:
                g_assert_not_reached ();
        }
@@ -116,33 +145,29 @@ 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)))
-                       events |= get_events_from_sockares (ares);
+       for (current = list; current; current = mono_mlist_next (current))
+               events |= get_events_from_sockares ((MonoSocketAsyncResult*) mono_mlist_get_data (current));
 
        return events;
 }
@@ -203,101 +228,241 @@ selector_thread_wakeup_drain_pipes (void)
        }
 }
 
+typedef struct {
+       MonoDomain *domain;
+       MonoGHashTable *states;
+} FilterSockaresForDomainData;
+
 static void
-selector_thread (gpointer data)
+filter_sockares_for_domain (gpointer key, gpointer value, gpointer user_data)
 {
-       io_thread_status = STATUS_INITIALIZED;
+       FilterSockaresForDomainData *data;
+       MonoMList *list = value, *element;
+       MonoDomain *domain;
+       MonoGHashTable *states;
 
-       for (;;) {
-               guint i;
-               guint max;
-               gint ready = 0;
+       g_assert (user_data);
+       data = user_data;
+       domain = data->domain;
+       states = data->states;
 
-               mono_mutex_lock (&threadpool_io->states_lock);
-               mono_mutex_lock (&threadpool_io->updates_lock);
+       for (element = list; element; element = mono_mlist_next (element)) {
+               MonoSocketAsyncResult *sockares = (MonoSocketAsyncResult*) mono_mlist_get_data (element);
+               if (mono_object_domain (sockares) == domain)
+                       mono_mlist_set_data (element, NULL);
+       }
 
-               for (i = 0; i < threadpool_io->updates_size; ++i) {
-                       ThreadPoolIOUpdate *update;
-                       MonoMList *list;
+       /* we skip all the first elements which are NULL */
+       for (; list; list = mono_mlist_next (list)) {
+               if (mono_mlist_get_data (list))
+                       break;
+       }
 
-                       update = &threadpool_io->updates [i];
+       if (list) {
+               g_assert (mono_mlist_get_data (list));
+
+               /* we delete all the NULL elements after the first one */
+               for (element = list; element;) {
+                       MonoMList *next;
+                       if (!(next = mono_mlist_next (element)))
+                               break;
+                       if (mono_mlist_get_data (next))
+                               element = next;
+                       else
+                               mono_mlist_set_next (element, mono_mlist_next (next));
+               }
+       }
 
-                       g_assert (update->sockares);
+       mono_g_hash_table_replace (states, key, list);
+}
 
-                       list = mono_g_hash_table_lookup (threadpool_io->states, update->sockares->handle);
-                       list = mono_mlist_append (list, (MonoObject*) update->sockares);
-                       mono_g_hash_table_replace (threadpool_io->states, update->sockares->handle, list);
+static void
+wait_callback (gint fd, gint events, gpointer user_data)
+{
+       if (mono_runtime_is_shutting_down ())
+               return;
 
-                       threadpool_io->backend.update_add (GPOINTER_TO_INT (update->sockares->handle), get_events (list), mono_mlist_next (list) == NULL);
-               }
-               if (threadpool_io->updates_size > 0) {
-                       ThreadPoolIOUpdate *updates_old;
+       if (fd == threadpool_io->wakeup_pipes [0]) {
+               mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_THREADPOOL, "io threadpool: wke");
+               selector_thread_wakeup_drain_pipes ();
+       } else {
+               MonoGHashTable *states;
+               MonoMList *list = NULL;
+               gpointer k;
 
-                       threadpool_io->updates_size = 0;
-                       threadpool_io->updates_capacity = 128;
+               g_assert (user_data);
+               states = user_data;
 
-                       updates_old = threadpool_io->updates;
+               mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_THREADPOOL, "io threadpool: cal fd %3d, events = %2s | %2s",
+                       fd, (events & EVENT_IN) ? "RD" : "..", (events & EVENT_OUT) ? "WR" : "..");
 
-                       threadpool_io->updates = mono_gc_alloc_fixed (sizeof (ThreadPoolIOUpdate) * threadpool_io->updates_capacity, MONO_GC_DESCRIPTOR_NULL);
-                       g_assert (threadpool_io->updates);
+               if (!mono_g_hash_table_lookup_extended (states, GINT_TO_POINTER (fd), &k, (gpointer*) &list))
+                       g_error ("wait_callback: fd %d not found in states table", fd);
 
-                       mono_gc_free_fixed (updates_old);
+               if (list && (events & EVENT_IN) != 0) {
+                       MonoSocketAsyncResult *sockares = get_sockares_for_event (&list, EVENT_IN);
+                       if (sockares)
+                               mono_threadpool_ms_enqueue_work_item (((MonoObject*) sockares)->vtable->domain, (MonoObject*) sockares);
+               }
+               if (list && (events & EVENT_OUT) != 0) {
+                       MonoSocketAsyncResult *sockares = get_sockares_for_event (&list, EVENT_OUT);
+                       if (sockares)
+                               mono_threadpool_ms_enqueue_work_item (((MonoObject*) sockares)->vtable->domain, (MonoObject*) sockares);
                }
 
-               mono_mutex_unlock (&threadpool_io->updates_lock);
-               mono_mutex_unlock (&threadpool_io->states_lock);
+               mono_g_hash_table_replace (states, GINT_TO_POINTER (fd), list);
 
-               mono_gc_set_skip_thread (TRUE);
+               events = get_events (list);
 
-               ready = threadpool_io->backend.event_wait ();
+               mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_THREADPOOL, "io threadpool: res fd %3d, events = %2s | %2s",
+                       fd, (events & EVENT_IN) ? "RD" : "..", (events & EVENT_OUT) ? "WR" : "..");
 
-               mono_gc_set_skip_thread (FALSE);
+               threadpool_io->backend.register_fd (fd, events, FALSE);
+       }
+}
 
-               if (ready == -1 || mono_runtime_is_shutting_down ())
-                       break;
+static void
+selector_thread (gpointer data)
+{
+       MonoGHashTable *states;
 
-               max = threadpool_io->backend.event_get_fd_max ();
+       io_selector_running = TRUE;
 
-               mono_mutex_lock (&threadpool_io->states_lock);
+       if (mono_runtime_is_shutting_down ()) {
+               io_selector_running = FALSE;
+               return;
+       }
 
-               for (i = 0; i < max && ready > 0; ++i) {
-                       gint events;
-                       gint fd = threadpool_io->backend.event_get_fd_at (i, &events);
+       states = mono_g_hash_table_new_type (g_direct_hash, g_direct_equal, MONO_HASH_VALUE_GC);
 
-                       if (fd == -1)
-                               continue;
+       for (;;) {
+               gint i, j;
+               gint res;
 
-                       if (fd == threadpool_io->wakeup_pipes [0]) {
-                               selector_thread_wakeup_drain_pipes ();
-                       } else {
-                               MonoMList *list = mono_g_hash_table_lookup (threadpool_io->states, GINT_TO_POINTER (fd));
+               mono_mutex_lock (&threadpool_io->updates_lock);
 
-                               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);
+               for (i = 0; i < threadpool_io->updates_size; ++i) {
+                       ThreadPoolIOUpdate *update = &threadpool_io->updates [i];
+
+                       switch (update->type) {
+                       case UPDATE_EMPTY:
+                               break;
+                       case UPDATE_ADD: {
+                               gint fd;
+                               gint events;
+                               gpointer k;
+                               gboolean exists;
+                               MonoMList *list = NULL;
+                               MonoSocketAsyncResult *sockares;
+
+                               fd = update->data.add.fd;
+                               g_assert (fd >= 0);
+
+                               sockares = update->data.add.sockares;
+                               g_assert (sockares);
+
+                               exists = mono_g_hash_table_lookup_extended (states, GINT_TO_POINTER (fd), &k, (gpointer*) &list);
+                               list = mono_mlist_append (list, (MonoObject*) sockares);
+                               mono_g_hash_table_replace (states, sockares->handle, list);
+
+                               events = get_events (list);
+
+                               mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_THREADPOOL, "io threadpool: %3s fd %3d, events = %2s | %2s",
+                                       exists ? "mod" : "add", fd, (events & EVENT_IN) ? "RD" : "..", (events & EVENT_OUT) ? "WR" : "..");
+
+                               threadpool_io->backend.register_fd (fd, events, !exists);
+
+                               break;
+                       }
+                       case UPDATE_REMOVE_SOCKET: {
+                               gint fd;
+                               gpointer k;
+                               MonoMList *list = NULL;
+
+                               fd = update->data.remove_socket.fd;
+                               g_assert (fd >= 0);
+
+                               if (mono_g_hash_table_lookup_extended (states, GINT_TO_POINTER (fd), &k, (gpointer*) &list)) {
+                                       mono_g_hash_table_remove (states, GINT_TO_POINTER (fd));
+
+                                       for (j = i + 1; j < threadpool_io->updates_size; ++j) {
+                                               ThreadPoolIOUpdate *update = &threadpool_io->updates [j];
+                                               if (update->type == UPDATE_ADD && update->data.add.fd == fd)
+                                                       memset (update, 0, sizeof (ThreadPoolIOUpdate));
+                                       }
+
+                                       for (; list; list = mono_mlist_remove_item (list, list))
+                                               mono_threadpool_ms_enqueue_work_item (mono_object_domain (mono_mlist_get_data (list)), mono_mlist_get_data (list));
+
+                                       mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_THREADPOOL, "io threadpool: del fd %3d", fd);
+                                       threadpool_io->backend.remove_fd (fd);
                                }
 
-                               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);
+                               break;
+                       }
+                       case UPDATE_REMOVE_DOMAIN: {
+                               MonoDomain *domain;
+
+                               domain = update->data.remove_domain.domain;
+                               g_assert (domain);
+
+                               FilterSockaresForDomainData user_data = { .domain = domain, .states = states };
+                               mono_g_hash_table_foreach (states, filter_sockares_for_domain, &user_data);
 
-                               threadpool_io->backend.event_reset_fd_at (i, get_events (list));
+                               for (j = i + 1; j < threadpool_io->updates_size; ++j) {
+                                       ThreadPoolIOUpdate *update = &threadpool_io->updates [j];
+                                       if (update->type == UPDATE_ADD && mono_object_domain (update->data.add.sockares) == domain)
+                                               memset (update, 0, sizeof (ThreadPoolIOUpdate));
+                               }
+
+                               break;
                        }
+                       default:
+                               g_assert_not_reached ();
+                       }
+               }
 
-                       ready -= 1;
+               mono_cond_broadcast (&threadpool_io->updates_cond);
+
+               if (threadpool_io->updates_size > 0) {
+                       threadpool_io->updates_size = 0;
+                       memset (&threadpool_io->updates, 0, UPDATES_CAPACITY * sizeof (ThreadPoolIOUpdate));
                }
 
-               mono_mutex_unlock (&threadpool_io->states_lock);
+               mono_mutex_unlock (&threadpool_io->updates_lock);
+
+               mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_IO_THREADPOOL, "io threadpool: wai");
+
+               res = threadpool_io->backend.event_wait (wait_callback, states);
+
+               if (res == -1 || mono_runtime_is_shutting_down ())
+                       break;
        }
 
-       io_thread_status = STATUS_CLEANED_UP;
+       mono_g_hash_table_destroy (states);
+
+       io_selector_running = FALSE;
+}
+
+/* Locking: threadpool_io->updates_lock must be held */
+static ThreadPoolIOUpdate*
+update_get_new (void)
+{
+       ThreadPoolIOUpdate *update = NULL;
+       g_assert (threadpool_io->updates_size <= UPDATES_CAPACITY);
+
+       while (threadpool_io->updates_size == UPDATES_CAPACITY) {
+               /* we wait for updates to be applied in the selector_thread and we loop
+                * as long as none are available. if it happends too much, then we need
+                * to increase UPDATES_CAPACITY */
+               mono_cond_wait (&threadpool_io->updates_cond, &threadpool_io->updates_lock);
+       }
+
+       g_assert (threadpool_io->updates_size < UPDATES_CAPACITY);
+
+       update = &threadpool_io->updates [threadpool_io->updates_size ++];
+
+       return update;
 }
 
 static void
@@ -358,87 +523,49 @@ 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);
 
-       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);
+       mono_mutex_init_recursive (&threadpool_io->updates_lock);
+       mono_cond_init (&threadpool_io->updates_cond, NULL);
+       mono_gc_register_root ((void*)&threadpool_io->updates [0], sizeof (threadpool_io->updates), MONO_GC_DESCRIPTOR_NULL);
 
-       threadpool_io->updates = NULL;
        threadpool_io->updates_size = 0;
-       threadpool_io->updates_capacity = 0;
-       mono_mutex_init (&threadpool_io->updates_lock);
 
+       threadpool_io->backend = backend_poll;
+       if (g_getenv ("MONO_ENABLE_AIO") != NULL) {
 #if defined(HAVE_EPOLL)
-       threadpool_io->backend = backend_epoll;
+               threadpool_io->backend = backend_epoll;
 #elif defined(HAVE_KQUEUE)
-       threadpool_io->backend = backend_kqueue;
-#else
-       threadpool_io->backend = backend_poll;
+               threadpool_io->backend = backend_kqueue;
 #endif
-       if (g_getenv ("MONO_DISABLE_AIO") != NULL)
-               threadpool_io->backend = backend_poll;
+       }
 
        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_GC_UNREGISTER_ROOT (threadpool_io->states);
-       mono_g_hash_table_destroy (threadpool_io->states);
-       mono_mutex_destroy (&threadpool_io->states_lock);
-
-       if (threadpool_io->updates)
-               mono_gc_free_fixed (threadpool_io->updates);
        mono_mutex_destroy (&threadpool_io->updates_lock);
+       mono_cond_destroy (&threadpool_io->updates_cond);
 
        threadpool_io->backend.cleanup ();
 
@@ -454,8 +581,6 @@ ensure_cleanedup (void)
        g_free (threadpool_io);
        threadpool_io = NULL;
        g_assert (!threadpool_io);
-
-       io_status = STATUS_CLEANED_UP;
 }
 
 static gboolean
@@ -464,7 +589,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;
 }
@@ -475,7 +599,6 @@ is_async_read_handler (MonoImage *system_image, MonoClass *class)
        MonoClass *async_read_handler_class = NULL;
 
        async_read_handler_class = mono_class_from_name (system_image, "System.Diagnostics", "Process/AsyncReadHandler");
-       g_assert (async_read_handler_class);
 
        return class == async_read_handler_class;
 }
@@ -503,7 +626,7 @@ 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 *
@@ -516,146 +639,70 @@ mono_threadpool_ms_io_add (MonoAsyncResult *ares, MonoSocketAsyncResult *sockare
 
        if (mono_runtime_is_shutting_down ())
                return NULL;
+       if (mono_domain_is_unloading (mono_object_domain (sockares)))
+               return NULL;
 
-       ensure_initialized ();
+       mono_lazy_initialize (&io_status, initialize);
 
        MONO_OBJECT_SETREF (sockares, ares, ares);
 
        mono_mutex_lock (&threadpool_io->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;
-
-               updates_old_capacity = threadpool_io->updates_capacity;
-               updates_new_capacity = updates_old_capacity + 128;
-
-               updates_old = threadpool_io->updates;
-               updates_new = mono_gc_alloc_fixed (sizeof (ThreadPoolIOUpdate) * updates_new_capacity, MONO_GC_DESCRIPTOR_NULL);
-               g_assert (updates_new);
+       update = update_get_new ();
+       update->type = UPDATE_ADD;
+       update->data.add.fd = GPOINTER_TO_INT (sockares->handle);
+       update->data.add.sockares = sockares;
+       mono_memory_barrier (); /* Ensure this is safely published before we wake up the selector */
 
-               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->sockares = sockares;
+       selector_thread_wakeup ();
 
        mono_mutex_unlock (&threadpool_io->updates_lock);
 
-       selector_thread_wakeup ();
-
        return ares;
 }
 
 void
 mono_threadpool_ms_io_remove_socket (int fd)
 {
-       MonoMList *list;
-       gint i;
+       ThreadPoolIOUpdate *update;
 
-       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->updates_lock);
 
-       g_assert (threadpool_io->states);
-
-       list = mono_g_hash_table_lookup (threadpool_io->states, GINT_TO_POINTER (fd));
-       if (list)
-               mono_g_hash_table_remove (threadpool_io->states, GINT_TO_POINTER (fd));
+       update = update_get_new ();
+       update->type = UPDATE_REMOVE_SOCKET;
+       update->data.add.fd = fd;
+       mono_memory_barrier (); /* Ensure this is safely published before we wake up the selector */
 
-       for (i = 0; i < threadpool_io->updates_size; ++i) {
-               ThreadPoolIOUpdate *update = &threadpool_io->updates [i];
-
-               g_assert (update->sockares);
-
-               if (GPOINTER_TO_INT (update->sockares->handle) == fd) {
-                       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));
+       selector_thread_wakeup ();
 
-                       threadpool_io->updates_size -= 1;
-               }
-       }
+       mono_cond_wait (&threadpool_io->updates_cond, &threadpool_io->updates_lock);
 
        mono_mutex_unlock (&threadpool_io->updates_lock);
-       mono_mutex_unlock (&threadpool_io->states_lock);
-
-       for (; list; list = mono_mlist_remove_item (list, list)) {
-               MonoSocketAsyncResult *sockares = (MonoSocketAsyncResult*) mono_mlist_get_data (list);
-
-               if (!sockares)
-                       continue;
-
-               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;
-               }
-
-               mono_threadpool_ms_enqueue_work_item (((MonoObject*) sockares)->vtable->domain, (MonoObject*) sockares);
-       }
-}
-
-static gboolean
-remove_sockstate_for_domain (gpointer key, gpointer value, gpointer user_data)
-{
-       MonoMList *list;
-       gboolean remove = FALSE;
-
-       for (list = value; list; list = mono_mlist_next (list)) {
-               MonoObject *data = mono_mlist_get_data (list);
-               if (mono_object_domain (data) == user_data) {
-                       remove = TRUE;
-                       mono_mlist_set_data (list, NULL);
-               }
-       }
-
-       //FIXME is there some sort of additional unregistration we need to perform here?
-       return remove;
 }
 
 void
 mono_threadpool_ms_io_remove_domain_jobs (MonoDomain *domain)
 {
-       gint i;
+       ThreadPoolIOUpdate *update;
 
-       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->updates_lock);
 
-       mono_g_hash_table_foreach_remove (threadpool_io->states, remove_sockstate_for_domain, domain);
-
-       for (i = 0; i < threadpool_io->updates_size; ++i) {
-               ThreadPoolIOUpdate *update = &threadpool_io->updates [i];
-
-               g_assert (update->sockares);
+       update = update_get_new ();
+       update->type = UPDATE_REMOVE_DOMAIN;
+       update->data.remove_domain.domain = domain;
+       mono_memory_barrier (); /* Ensure this is safely published before we wake up the selector */
 
-               if (mono_object_domain (update->sockares) == domain) {
-                       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));
+       selector_thread_wakeup ();
 
-                       threadpool_io->updates_size -= 1;
-               }
-       }
+       mono_cond_wait (&threadpool_io->updates_cond, &threadpool_io->updates_lock);
 
        mono_mutex_unlock (&threadpool_io->updates_lock);
-       mono_mutex_unlock (&threadpool_io->states_lock);
 }
 
 void
@@ -710,4 +757,4 @@ icall_append_io_job (MonoObject *target, MonoSocketAsyncResult *state)
        g_assert_not_reached ();
 }
 
-#endif
\ No newline at end of file
+#endif
index b8ba32c85be9706709af8cead51f93d6ad9ef5a1..d5e388d1e28186ec210c79788ea9f43bda0361e2 100644 (file)
@@ -35,6 +35,9 @@
 #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>
@@ -44,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.
@@ -160,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;
@@ -231,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);
@@ -310,41 +301,28 @@ 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);
+       MONO_FINISH_BLOCKING;
 
        /* stop all threadpool->working_threads */
        for (i = 0; i < threadpool->working_threads->len; ++i)
@@ -355,8 +333,6 @@ 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;
 }
 
 void
@@ -514,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 ()) {
@@ -532,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
@@ -543,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) {
@@ -551,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;
 }
 
@@ -572,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", "_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);
 
@@ -596,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;
 
@@ -637,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 ++;
@@ -646,7 +634,7 @@ 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_thread_internal_unhandled_exception (exc);
                        else if (res && *(MonoBoolean*) mono_object_unbox (res) == FALSE)
@@ -679,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)
@@ -701,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 --;
@@ -737,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)
@@ -744,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;
                }
@@ -798,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;
@@ -833,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);
@@ -842,6 +874,7 @@ monitor_thread (void)
                        }
                }
                mono_mutex_unlock (&threadpool->active_threads_lock);
+               MONO_FINISH_BLOCKING;
 
                if (all_waitsleepjoin) {
                        ThreadPoolCounter counter;
@@ -856,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
@@ -899,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;
@@ -1218,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 *
@@ -1235,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);
 
@@ -1281,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) {
@@ -1296,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;
@@ -1347,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) {
@@ -1385,7 +1426,7 @@ ves_icall_System_Threading_ThreadPool_GetAvailableThreadsNative (gint32 *worker_
        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;
@@ -1397,7 +1438,7 @@ ves_icall_System_Threading_ThreadPool_GetMinThreadsNative (gint32 *worker_thread
        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;
@@ -1409,7 +1450,7 @@ ves_icall_System_Threading_ThreadPool_GetMaxThreadsNative (gint32 *worker_thread
        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;
@@ -1418,7 +1459,7 @@ ves_icall_System_Threading_ThreadPool_GetMaxThreadsNative (gint32 *worker_thread
 MonoBoolean
 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;
@@ -1436,7 +1477,7 @@ ves_icall_System_Threading_ThreadPool_SetMaxThreadsNative (gint32 worker_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;
@@ -1452,7 +1493,12 @@ ves_icall_System_Threading_ThreadPool_SetMaxThreadsNative (gint32 worker_threads
 void
 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
index fa611ee8302deaf40d6e7407ffd79d4612a3b328..8aee68c4c035c10b0cfb88870a771de5ccc79d4e 100644 (file)
@@ -9,14 +9,6 @@
 
 #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;
 
 void
index 73fd440651834e769335f4fa82da3c91e0dc3888..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,10 +181,11 @@ 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);
 
index b62ca4b31e49a8d1ee2f4edbcfb7d04b48e02592..28903fe586e140104cba982de25de8e62443d0ad 100644 (file)
@@ -228,13 +228,12 @@ static gboolean shutting_down = FALSE;
 
 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
@@ -379,9 +378,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
@@ -453,7 +452,7 @@ static void thread_cleanup (MonoInternalThread *thread)
                }
                /* This needs to be called even if handle_remove () fails */
                if (mono_thread_cleanup_fn)
-                       mono_thread_cleanup_fn ((MonoNativeThreadId)thread->tid);
+                       mono_thread_cleanup_fn (thread_get_tid (thread));
                return;
        }
        mono_release_type_locks (thread);
@@ -480,7 +479,7 @@ static void thread_cleanup (MonoInternalThread *thread)
        thread->appdomain_refs = NULL;
 
        if (mono_thread_cleanup_fn)
-               mono_thread_cleanup_fn ((MonoNativeThreadId)thread->tid);
+               mono_thread_cleanup_fn (thread_get_tid (thread));
 
        if (mono_gc_is_moving ()) {
                MONO_GC_UNREGISTER_ROOT (thread->thread_pinning_ref);
@@ -650,7 +649,7 @@ static guint32 WINAPI start_wrapper_internal(void *data)
        internal->thread_info = info;
        internal->small_id = info->small_id;
 
-       tid=internal->tid;
+       tid = internal->tid;
 
        SET_CURRENT_OBJECT (internal);
 
@@ -804,7 +803,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) {
@@ -832,10 +831,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 */
@@ -867,9 +866,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) {
                /*
@@ -880,9 +879,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;
@@ -981,8 +980,8 @@ mono_thread_attach_full (MonoDomain *domain, gboolean force_attach)
 
        tid=GetCurrentThreadId ();
 
-       thread->handle=thread_handle;
-       thread->tid=tid;
+       thread->handle = thread_handle;
+       thread->tid = tid;
        thread->stack_ptr = &tid;
 
        THREAD_DEBUG (g_message ("%s: Attached thread ID %"G_GSIZE_FORMAT" (handle %p)", __func__, tid, thread_handle));
@@ -1094,28 +1093,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);
 
@@ -1127,17 +1126,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;
@@ -1155,7 +1154,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));
 
@@ -1167,16 +1166,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);
        }
 }
@@ -1194,9 +1193,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);
 
@@ -1325,7 +1324,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)
 {
 }
 
@@ -1385,36 +1384,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);
        
@@ -1440,12 +1439,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;
@@ -1563,7 +1562,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 ();
@@ -1606,9 +1605,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);
 
@@ -2022,23 +2021,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);
        }
 }
 
@@ -2104,7 +2103,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;
@@ -2149,9 +2148,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;
 
@@ -2208,9 +2207,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;
        }
@@ -2584,6 +2583,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
@@ -2691,9 +2708,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() */
@@ -2754,9 +2771,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() */
@@ -2818,7 +2835,7 @@ static void build_wait_tids (gpointer key, gpointer value, gpointer user)
                        return;
                }
 
-               handle = mono_threads_open_thread_handle (thread->handle, (MonoNativeThreadId)thread->tid);
+               handle = mono_threads_open_thread_handle (thread->handle, thread_get_tid (thread));
                if (handle == NULL) {
                        THREAD_DEBUG (g_message ("%s: ignoring unopenable thread %"G_GSIZE_FORMAT, __func__, (gsize)thread->tid));
                        return;
@@ -2858,7 +2875,7 @@ remove_and_abort_threads (gpointer key, gpointer value, gpointer user)
        if (thread->tid != self && (thread->state & ThreadState_Background) != 0 &&
                !(thread->flags & MONO_THREAD_FLAG_DONT_MANAGE)) {
        
-               handle = mono_threads_open_thread_handle (thread->handle, (MonoNativeThreadId)thread->tid);
+               handle = mono_threads_open_thread_handle (thread->handle, thread_get_tid (thread));
                if (handle == NULL)
                        return FALSE;
 
@@ -3040,7 +3057,7 @@ collect_threads_for_suspend (gpointer key, gpointer value, gpointer user_data)
                return;
 
        if (wait->num<MAXIMUM_WAIT_OBJECTS) {
-               handle = mono_threads_open_thread_handle (thread->handle, (MonoNativeThreadId)thread->tid);
+               handle = mono_threads_open_thread_handle (thread->handle, thread_get_tid (thread));
                if (handle == NULL)
                        return;
 
@@ -3162,7 +3179,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) {
@@ -3231,7 +3248,7 @@ dump_thread (gpointer key, gpointer value, gpointer user)
        We probably should loop a bit around trying to get it to either managed code
        or WSJ state.
        */
-       mono_thread_info_safe_suspend_and_run ((MonoNativeThreadId)(gsize)thread->tid, FALSE, print_thread_dump, thread);
+       mono_thread_info_safe_suspend_and_run (thread_get_tid (thread), FALSE, print_thread_dump, thread);
 }
 
 void
@@ -3407,7 +3424,7 @@ collect_appdomain_thread (gpointer key, gpointer value, gpointer user_data)
                /* printf ("ABORTING THREAD %p BECAUSE IT REFERENCES DOMAIN %s.\n", thread->tid, domain->friendly_name); */
 
                if(data->wait.num<MAXIMUM_WAIT_OBJECTS) {
-                       HANDLE handle = mono_threads_open_thread_handle (thread->handle, (MonoNativeThreadId)thread->tid);
+                       HANDLE handle = mono_threads_open_thread_handle (thread->handle, thread_get_tid (thread));
                        if (handle == NULL)
                                return;
                        data->wait.handles [data->wait.num] = handle;
@@ -3702,17 +3719,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 ();
 }
 
 /*
@@ -4011,8 +4027,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) {
@@ -4382,7 +4399,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
@@ -4404,7 +4421,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) {
@@ -4425,7 +4442,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;
        }
 }
@@ -4446,20 +4464,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);
+       mono_thread_info_safe_suspend_and_run (thread_get_tid (thread), TRUE, abort_thread_critical, &data);
+       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
@@ -4472,7 +4492,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) {
@@ -4483,7 +4503,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,9 +4528,9 @@ suspend_thread_internal (MonoInternalThread *thread, gboolean interrupt)
                data.thread = thread;
                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);
+               mono_thread_info_safe_suspend_and_run (thread_get_tid (thread), interrupt, suspend_thread_critical, &data);
+               if (data.interrupt_token)
+                       mono_thread_info_finish_interrupt (data.interrupt_token);
                UNLOCK_THREAD (thread);
        }
 }
@@ -4532,7 +4552,7 @@ resume_thread_internal (MonoInternalThread *thread)
 {
        UNLOCK_THREAD (thread);
        /* Awake the thread */
-       if (!mono_thread_info_resume ((MonoNativeThreadId)(gpointer)(gsize)thread->tid))
+       if (!mono_thread_info_resume (thread_get_tid (thread)))
                return FALSE;
        LOCK_THREAD (thread);
        thread->state &= ~ThreadState_Suspended;
index d1ca2c423651574f6c4333d71e74a5490e65eaed..cb409a9fedc9b02a439fc3a5c8109f453f730241 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,23 +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
-else
-       -($(RUNTIME) --regression $(regtests); echo $$? > regressionexitcode.out) | $(srcdir)/emitnunit.pl
+       for i in $(regtests); do echo "running test $$i"; $(MINI_RUNTIME) $$i --exclude 'NaClDisable' || exit 1; done
+elif JENKINS_URL
+       -($(MINI_RUNTIME) --regression $(regtests); echo $$? > regressionexitcode.out) | $(srcdir)/emitnunit.pl
        exit $$(cat regressionexitcode.out)
+else
+       $(MINI_RUNTIME) --regression $(regtests)
 endif
 
-rcheck2: mono $(regtests)
-       $(RUNTIME) --regression $(regtests)
-
 check-seq-points: mono $(regtests)
        rm -f TestResults_op_il_seq_point.xml
        for i in $(regtests); do $(srcdir)/test_op_il_seq_point.sh $$i || ($(srcdir)/test_op_il_seq_point_headerfooter.sh; exit 1) || exit 1; done
@@ -662,14 +663,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 +682,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 +719,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 2d9a03b1bb2f72394c03b84ec92022caab725148..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>
@@ -298,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);
 
@@ -517,9 +519,9 @@ emit_info_symbol (MonoAotCompile *acfg, const char *name)
        if (acfg->llvm) {
                emit_label (acfg, name);
                /* LLVM generated code references this */
-               sprintf (symbol, "%s%s", acfg->user_symbol_prefix, name);
+               sprintf (symbol, "%s%s%s", acfg->user_symbol_prefix, acfg->global_prefix, name);
                emit_label (acfg, symbol);
-               emit_global (acfg, symbol, FALSE);
+               emit_global_inner (acfg, symbol, FALSE);
        } else {
                emit_label (acfg, name);
        }
@@ -1196,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:
  *
@@ -1219,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;
@@ -1311,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);
@@ -1377,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
@@ -1546,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);
@@ -3137,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:
@@ -3337,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));
@@ -3363,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);
@@ -5323,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:
@@ -5374,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:
@@ -5918,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) {
@@ -5935,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;
@@ -6202,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
@@ -6247,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);
@@ -6541,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="));
@@ -6680,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) {
@@ -6688,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
@@ -6781,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:
@@ -7476,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)
@@ -7543,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)
@@ -8351,6 +8476,15 @@ 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);
@@ -8359,6 +8493,7 @@ emit_got (MonoAotCompile *acfg)
                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);
@@ -8458,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);
@@ -8836,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;
                }
 
@@ -9060,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 ("");
        }
@@ -9069,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);
@@ -9110,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;
@@ -9558,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->global_prefix, TRUE);
+               mono_llvm_create_aot_module (acfg->image->assembly, acfg->global_prefix, TRUE, acfg->aot_opts.static_link);
        }
 #endif
 
index fa5d6ca73253584c8145c7a0d787dcbce9209ce5..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>
@@ -889,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:
@@ -1834,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;
        }
@@ -1864,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);
                }
@@ -2078,6 +2072,20 @@ load_aot_module (MonoAssembly *assembly, gpointer user_data)
 
        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
         * referenced assemblies, we depend on the exact versions of the referenced assemblies.
@@ -2102,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);
@@ -2421,10 +2427,8 @@ 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->methods [table [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;
@@ -2469,7 +2473,7 @@ decode_llvm_mono_eh_frame (MonoAotModule *amodule, MonoDomain *domain,
        guint8 *fde, *cie, *code_start, *code_end;
        int version, fde_count;
        gint32 *table;
-       int i, j, pos, left, right, code_len;
+       int i, pos, left, right, code_len;
        MonoJitExceptionInfo *ei;
        guint32 fde_len, ei_len, nested_len, nindex;
        gpointer *type_info;
@@ -2555,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 ++;
        }
 
        /*
@@ -2615,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);
@@ -3280,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)
@@ -3371,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:
@@ -3720,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;
@@ -3731,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)
@@ -3759,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);
@@ -3816,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;
 
@@ -3841,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;
@@ -4302,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 */
@@ -4561,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")) {
@@ -4644,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
@@ -4652,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)
 {
@@ -4703,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.
@@ -4743,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);
@@ -4822,6 +4870,7 @@ 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)
 {
@@ -4940,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);
@@ -4979,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 17e3cfafee9a6476951c576492969fa282691f5b..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;
@@ -202,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> ();
@@ -257,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 0d63141cf8a39ca3ce675910996a8872575206c4..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
@@ -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 d9c2a5f2751408528f0551ced8def387fd9aa798..440e6a69e14b46711625758d458e12955ddc9f5a 100644 (file)
@@ -480,3 +480,4 @@ atomic_store_r4: dest:b src1:f len:24
 atomic_store_r8: dest:b src1:f len:20
 
 generic_class_init: src1:a len:44 clob:c
+gc_safe_point: src1:i len:12 clob:c
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 1fd3ff90b475ac5d78f20e846f4639defb069303..5763be8c8f4ea1066ac29358213047bfd90e1a77 100644 (file)
@@ -225,11 +225,6 @@ typedef struct {
      */
        MonoThreadUnwindState filter_state;
 
-       /*
-        * The callee address of the last mono_runtime_invoke call
-        */
-       gpointer invoke_addr;
-
        gboolean abort_requested;
 
        /*
@@ -273,7 +268,7 @@ typedef struct {
 #define HEADER_LENGTH 11
 
 #define MAJOR_VERSION 2
-#define MINOR_VERSION 40
+#define MINOR_VERSION 41
 
 typedef enum {
        CMD_SET_VM = 1,
@@ -655,12 +650,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;
@@ -690,7 +688,6 @@ static DebuggerProfiler debugger_profiler;
 
 /* The single step request instance */
 static SingleStepReq *ss_req;
-static gpointer ss_invoke_addr;
 
 #ifdef MONO_ARCH_SOFT_DEBUG_SUPPORTED
 /* Number of single stepping operations in progress */
@@ -704,6 +701,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 +715,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)
@@ -760,10 +758,6 @@ static void emit_assembly_load (gpointer assembly, gpointer user_data);
 
 static void emit_type_load (gpointer key, gpointer type, gpointer user_data);
 
-static void start_runtime_invoke (MonoProfiler *prof, MonoMethod *method);
-
-static void end_runtime_invoke (MonoProfiler *prof, MonoMethod *method);
-
 static void jit_end (MonoProfiler *prof, MonoMethod *method, MonoJitInfo *jinfo, int result);
 
 static void add_pending_breakpoints (MonoMethod *method, MonoJitInfo *jinfo);
@@ -988,7 +982,6 @@ mono_debugger_agent_init (void)
        mono_profiler_install_thread (thread_startup, thread_end);
        mono_profiler_install_assembly (NULL, assembly_load, assembly_unload, NULL);
        mono_profiler_install_jit_end (jit_end);
-       mono_profiler_install_method_invoke (start_runtime_invoke, end_runtime_invoke);
 
        mono_native_tls_alloc (&debugger_tls_id, NULL);
 
@@ -1088,9 +1081,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 +1315,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 +1537,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 +1591,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 +1603,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 +1808,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 +1837,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 +1906,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 +2123,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 +2252,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 +2276,6 @@ get_id (MonoDomain *domain, IdType type, gpointer val)
 
        dbg_unlock ();
 
-       mono_domain_unlock (domain);
-
-       mono_loader_unlock ();
-
        return id->id;
 }
 
@@ -2520,7 +2508,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 +2544,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 +2636,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 +2736,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 ++;
 
@@ -2784,9 +2776,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 --;
@@ -2830,9 +2822,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 +2899,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 +2913,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 +3062,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))
@@ -3983,60 +3975,6 @@ assembly_unload (MonoProfiler *prof, MonoAssembly *assembly)
        clear_types_for_assembly (assembly);
 }
 
-static void
-start_runtime_invoke (MonoProfiler *prof, MonoMethod *method)
-{
-#if defined(HOST_WIN32) && !defined(__GNUC__)
-       gpointer stackptr = ((guint64)_AddressOfReturnAddress () - sizeof (void*));
-#else
-       gpointer stackptr = __builtin_frame_address (1);
-#endif
-       MonoInternalThread *thread = mono_thread_internal_current ();
-       DebuggerTlsData *tls;
-
-       mono_loader_lock ();
-       
-       tls = mono_g_hash_table_lookup (thread_to_tls, thread);
-       /* Could be the debugger thread with assembly/type load hooks */
-       if (tls)
-               tls->invoke_addr = stackptr;
-
-       mono_loader_unlock ();
-}
-
-static void
-end_runtime_invoke (MonoProfiler *prof, MonoMethod *method)
-{
-       int i;
-#if defined(HOST_WIN32) && !defined(__GNUC__)
-       gpointer stackptr = ((guint64)_AddressOfReturnAddress () - sizeof (void*));
-#else
-       gpointer stackptr = __builtin_frame_address (1);
-#endif
-
-       if (!embedding || ss_req == NULL || stackptr != ss_invoke_addr || ss_req->thread != mono_thread_internal_current ())
-               return;
-
-       /*
-        * We need to stop single stepping when exiting a runtime invoke, since if it is
-        * a step out, it may return to native code, and thus never end.
-        */
-       mono_loader_lock ();
-       ss_invoke_addr = NULL;
-
-       for (i = 0; i < event_requests->len; ++i) {
-               EventRequest *req = g_ptr_array_index (event_requests, i);
-
-               if (req->event_kind == EVENT_KIND_STEP) {
-                       ss_destroy (req->info);
-                       g_ptr_array_remove_index_fast (event_requests, i);
-                       g_free (req);
-                       break;
-               }
-       }
-       mono_loader_unlock ();
-}
-
 static void
 send_type_load (MonoClass *klass)
 {
@@ -4044,18 +3982,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 +4006,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 +4084,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 +4184,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 +4211,9 @@ remove_breakpoint (BreakpointInstance *inst)
 #endif
 }      
 
+/*
+ * This doesn't take any locks.
+ */
 static inline gboolean
 bp_matches_method (MonoBreakpoint *bp, MonoMethod *method)
 {
@@ -4341,11 +4281,16 @@ add_pending_breakpoints (MonoMethod *method, MonoJitInfo *ji)
                }
 
                if (!found) {
+                       MonoMethod *declaring = NULL;
+
                        jmethod = jinfo_get_method (ji);
+                       if (jmethod->is_inflated)
+                               declaring = mono_method_get_declaring_generic_method (jmethod);
+
                        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 +4347,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 +4369,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 +4599,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 +4631,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 +4863,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);
 
@@ -5054,17 +5016,6 @@ start_single_stepping (void)
 
        if (val == 1)
                mono_arch_start_single_stepping ();
-
-       if (ss_req != NULL && ss_invoke_addr == NULL) {
-               DebuggerTlsData *tls;
-       
-               mono_loader_lock ();
-       
-               tls = mono_g_hash_table_lookup (thread_to_tls, ss_req->thread);
-               ss_invoke_addr = tls->invoke_addr;
-               
-               mono_loader_unlock ();
-       }
 #else
        g_assert_not_reached ();
 #endif
@@ -5078,8 +5029,6 @@ stop_single_stepping (void)
 
        if (val == 0)
                mono_arch_stop_single_stepping ();
-       if (ss_req != NULL)
-               ss_invoke_addr = NULL;
 #else
        g_assert_not_reached ();
 #endif
@@ -5956,7 +5905,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 +5970,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 +6427,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 +6452,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 +6464,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 +6487,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 +6507,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 +6614,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 +6630,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) {
@@ -7028,7 +7013,7 @@ vm_commands (int command, int id, guint8 *p, guint8 *end, Buffer *buf)
                 * Store the invoke data into tls, the thread will execute it after it is
                 * resumed.
                 */
-               if (tls->pending_invoke)
+               if (tls->pending_invoke || tls->invoke)
                        return ERR_NOT_SUSPENDED;
                tls->pending_invoke = g_new0 (InvokeData, 1);
                tls->pending_invoke->id = id;
@@ -9136,6 +9121,7 @@ string_commands (int command, guint8 *p, guint8 *end, Buffer *buf)
        char *s;
        int i, index, length;
        gunichar2 *c;
+       gboolean use_utf16 = FALSE;
 
        objid = decode_objid (p, &p, end);
        err = get_object (objid, (MonoObject**)&str);
@@ -9144,9 +9130,20 @@ string_commands (int command, guint8 *p, guint8 *end, Buffer *buf)
 
        switch (command) {
        case CMD_STRING_REF_GET_VALUE:
-               s = mono_string_to_utf8 (str);
-               buffer_add_string (buf, s);
-               g_free (s);
+               if (CHECK_PROTOCOL_VERSION (2, 41)) {
+                       for (i = 0; i < mono_string_length (str); ++i)
+                               if (mono_string_chars (str)[i] == 0)
+                                       use_utf16 = TRUE;
+                       buffer_add_byte (buf, use_utf16 ? 1 : 0);
+               }
+               if (use_utf16) {
+                       buffer_add_int (buf, mono_string_length (str) * 2);
+                       buffer_add_data (buf, (guint8*)mono_string_chars (str), mono_string_length (str) * 2);
+               } else {
+                       s = mono_string_to_utf8 (str);
+                       buffer_add_string (buf, s);
+                       g_free (s);
+               }
                break;
        case CMD_STRING_REF_GET_LENGTH:
                buffer_add_long (buf, mono_string_length (str));
@@ -9544,9 +9541,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) {
@@ -9605,9 +9602,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) {
@@ -9642,9 +9639,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;
@@ -9734,12 +9731,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 decdd5ec10e092bf8f0eccbdf31d72b5174171d7..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);
 
index e0edb684baa9657568993292f08650423980df00..4f7e336e6d2ee53f4ef524810ac7d667809d8723 100644 (file)
@@ -511,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
@@ -519,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,
@@ -540,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);
 
@@ -843,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);
@@ -1027,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");
@@ -1036,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..1088e12ea426ae53272624cb11c3a49de19e8863 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";
@@ -783,3 +786,16 @@ mono_arch_handle_exception (void *ctx, gpointer obj)
        return result;
 #endif
 }
+
+
+// FIX ME: This is not complete
+void
+mono_arch_setup_async_callback (MonoContext *ctx, void (*async_cb)(void *fun), gpointer user_data)
+{
+       uintptr_t sp = (uintptr_t) MONO_CONTEXT_GET_SP(ctx);
+       sp -= PPC_MINIMAL_STACK_SIZE;
+       *(unsigned long *)sp = MONO_CONTEXT_GET_SP(ctx);
+       MONO_CONTEXT_SET_BP(ctx, sp);
+       MONO_CONTEXT_SET_IP(ctx, (unsigned long) async_cb);
+}
+
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 ea146bda57d13777695b38460d3fa0c067173748..f5ee9bbbf6069effddeddeeed2067809a3058226 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;
        }
 
@@ -1291,6 +1300,7 @@ public class Tests
 
        interface IFaceBox {
                object box<T> (T t);
+               bool is_null<T> (T t);
        }
 
        class ClassBox : IFaceBox {
@@ -1298,6 +1308,12 @@ public class Tests
                        object o = t;
                        return o;
                }
+
+               public bool is_null<T> (T t) {
+                       if (!(default(T) == null))
+                               return false;
+                       return true;
+               }
        }
 
        public static int test_0_nullable_box () {
@@ -1320,6 +1336,15 @@ public class Tests
                return 0;
        }
 
+       public static int test_0_nullable_box_brtrue_opt () {
+               IFaceBox c = new ClassBox ();
+
+               if (c.is_null<double?> (null))
+                       return 0;
+               else
+                       return 1;
+       }
+
        interface IFaceUnbox2 {
                T unbox<T> (object o);
        }
index eeea8d938145942265353fe04d3a117800ff2d37..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)
 
index e0c9e31a941b18002533adefea0ffbcda6292e19..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)
index d31e06e63c5f99dd4511a227031563398f31594f..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);
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 ef3090304837c0dfb8ffd2254ddcd2ee339d35e1..b1c38b700076b9186e73838f4a6d20b08b768894 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>
@@ -147,12 +146,8 @@ static int inline_method (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSigna
                                                  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
@@ -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,7 +2497,7 @@ 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;
 
                /*
@@ -2520,10 +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 {
-                       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;
                }
        }
@@ -2549,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;
 
@@ -2725,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;
@@ -2757,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);
 
@@ -2783,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;
@@ -2884,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*
@@ -3056,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 {
@@ -3232,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);
@@ -3329,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)
@@ -3364,19 +3359,19 @@ mini_emit_initobj (MonoCompile *cfg, MonoInst *dest, const guchar *ip, MonoClass
 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);
@@ -3386,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);
@@ -3406,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;
        }
 }
@@ -3708,7 +3703,7 @@ 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)
+emit_class_init (MonoCompile *cfg, MonoClass *klass)
 {
        MonoInst *vtable_arg;
        int context_used;
@@ -3770,20 +3765,6 @@ emit_generic_class_init (MonoCompile *cfg, MonoClass *klass)
        }
 }
 
-
-static void
-emit_class_init (MonoCompile *cfg, MonoClass *klass)
-{
-       /* 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);
-               return;
-       }
-
-       mono_emit_abs_call (cfg, MONO_PATCH_INFO_CLASS_INIT, klass, helper_sig_class_init_trampoline, NULL);
-}
-
 static void
 emit_seq_point (MonoCompile *cfg, MonoMethod *method, guint8* ip, gboolean intr_loc, gboolean nonempty_stack)
 {
@@ -4088,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);
 
@@ -4142,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);
@@ -4207,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;
@@ -4307,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;
@@ -4332,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;
        }
@@ -5036,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];
 
                /*
@@ -5064,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);
@@ -5083,7 +5063,7 @@ 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)) {
+               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;
@@ -5158,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)
@@ -5293,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);
@@ -5343,7 +5323,7 @@ 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_klass (cfg, klass, MONO_RGCTX_INFO_ARRAY_ELEMENT_SIZE);
@@ -5452,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);
@@ -5527,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);
@@ -5540,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*
@@ -5569,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
@@ -5618,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)
@@ -5930,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;
@@ -5989,7 +5969,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->dreg = mono_alloc_ireg_ref (cfg);
                                        ins->type = STACK_OBJ;
                                        break;
@@ -6004,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;
@@ -6036,59 +6016,6 @@ mini_emit_inst_for_method (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSign
                                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)) {
@@ -6205,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 ||
@@ -6275,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;
                        }
@@ -6298,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 ||
@@ -6371,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;
                        }
@@ -6440,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)
@@ -6504,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;
                                }
@@ -6517,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;
@@ -6661,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 */
@@ -6678,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;
@@ -6781,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) {
@@ -6805,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);
@@ -6817,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) {
@@ -6833,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);
@@ -6985,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));
                
@@ -7224,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;
@@ -7480,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;
        }
@@ -7489,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;
 }
@@ -7679,11 +7610,11 @@ handle_ctor_call (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSignature *fs
                } 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);
@@ -7843,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) {
@@ -7928,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);
                                }
@@ -7971,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);
@@ -7987,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
@@ -8128,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) {
@@ -8588,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);
@@ -8675,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
                                 */
@@ -8768,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;
                                        }
                                }
@@ -8781,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;
                                        }
@@ -8789,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);
@@ -8850,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 {
@@ -8859,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)))
@@ -8867,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);
                          }
                        */
@@ -8877,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);
@@ -8890,7 +8840,7 @@ 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) {
@@ -8924,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;
@@ -8962,12 +8918,13 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                                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,
@@ -9038,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);
+                       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);
@@ -9125,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;
@@ -9135,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)
@@ -9220,7 +9177,7 @@ 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;
                                }
 
@@ -9279,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;
 
@@ -9332,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);
 
                                /*
@@ -9393,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);
@@ -9425,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) {
@@ -9575,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) {
                                                /* 
@@ -10342,8 +10299,8 @@ 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, 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);
+                       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);
                        }
 
@@ -10583,7 +10540,7 @@ 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)) {
+                       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)) {
@@ -10677,6 +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) &&
+                               !mini_is_gsharedvt_klass (klass) &&
                                ip + 5 < end && ip_in_bb (cfg, cfg->cbb, ip + 5) &&
                                (ip [5] == CEE_BRTRUE || 
                                 ip [5] == CEE_BRTRUE_S ||
@@ -10847,11 +10805,13 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                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;
@@ -10909,7 +10869,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);
@@ -10994,7 +10954,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);
@@ -11010,7 +10970,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);
@@ -11036,8 +10996,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;
 
@@ -11127,7 +11085,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);
+                                       emit_class_init (cfg, klass);
 
                                /*
                                 * The pointer we're computing here is
@@ -11137,7 +11095,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);
@@ -11530,7 +11488,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);
@@ -11716,7 +11674,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
@@ -12854,7 +12812,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);
@@ -13864,7 +13822,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 522497fcfe0ed9f63dfbbc54583266b7de29d0c2..f0ca62d8d97a358f1e46b44e832fc73b5abcffb9 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.
@@ -182,6 +179,15 @@ amd64_is_near_call (guint8 *code)
        return code [0] == 0xe8;
 }
 
+static inline gboolean
+amd64_use_imm32 (gint64 val)
+{
+       if (mini_get_debug_options()->single_imm_size)
+               return FALSE;
+
+       return amd64_is_imm32 (val);
+}
+
 #ifdef __native_client_codegen__
 
 /* Keep track of instruction "depth", that is, the level of sub-instruction */
@@ -591,12 +597,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 +647,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 +733,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 +745,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 +789,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 +837,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 +913,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 +998,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 +1023,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 +1069,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 +1096,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 +1147,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 +1180,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 +1224,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 +1253,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;
@@ -1446,7 +1456,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;
 
        /*
@@ -1631,7 +1641,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
@@ -1704,7 +1714,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);
 
@@ -1930,13 +1940,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)) {
@@ -2085,9 +2095,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));
 
@@ -2181,7 +2191,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;
 
@@ -2206,7 +2216,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)
@@ -2250,7 +2260,7 @@ mono_arch_emit_call (MonoCompile *cfg, MonoCallInst *call)
                        t = &mono_defaults.object_class->byval_arg;
                else
                        t = sig->params [i - sig->hasthis];
-               t = mini_get_underlying_type (cfg, t);
+               t = mini_get_underlying_type (t);
 
                switch (ainfo->storage) {
                case ArgInIReg:
@@ -2323,7 +2333,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;
 
@@ -2458,7 +2468,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))
@@ -2552,7 +2562,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);
@@ -2631,7 +2641,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) {
@@ -2725,7 +2735,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:
@@ -3181,7 +3191,7 @@ mono_arch_lowering_pass (MonoCompile *cfg, MonoBasicBlock *bb)
                        break;
                case OP_COMPARE_IMM:
                case OP_LCOMPARE_IMM:
-                       if (!amd64_is_imm32 (ins->inst_imm)) {
+                       if (!amd64_use_imm32 (ins->inst_imm)) {
                                NEW_INS (cfg, ins, temp, OP_I8CONST);
                                temp->inst_c0 = ins->inst_imm;
                                temp->dreg = mono_alloc_ireg (cfg);
@@ -3196,7 +3206,7 @@ mono_arch_lowering_pass (MonoCompile *cfg, MonoBasicBlock *bb)
 #ifndef __native_client_codegen__
                /*  Don't generate memindex opcodes (to simplify */
                /*  read sandboxing) */
-                       if (!amd64_is_imm32 (ins->inst_offset)) {
+                       if (!amd64_use_imm32 (ins->inst_offset)) {
                                NEW_INS (cfg, ins, temp, OP_I8CONST);
                                temp->inst_c0 = ins->inst_offset;
                                temp->dreg = mono_alloc_ireg (cfg);
@@ -3209,7 +3219,7 @@ mono_arch_lowering_pass (MonoCompile *cfg, MonoBasicBlock *bb)
                case OP_STORE_MEMBASE_IMM:
 #endif
                case OP_STOREI8_MEMBASE_IMM:
-                       if (!amd64_is_imm32 (ins->inst_imm)) {
+                       if (!amd64_use_imm32 (ins->inst_imm)) {
                                NEW_INS (cfg, ins, temp, OP_I8CONST);
                                temp->inst_c0 = ins->inst_imm;
                                temp->dreg = mono_alloc_ireg (cfg);
@@ -3409,7 +3419,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);
                }
@@ -3431,7 +3441,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;
 
@@ -3475,12 +3485,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:
@@ -3498,9 +3508,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)
@@ -3841,10 +3852,10 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
 #endif
                case OP_LOADI8_MEM:
                        // FIXME: Decompose this earlier
-                       if (amd64_is_imm32 (ins->inst_imm))
+                       if (amd64_use_imm32 (ins->inst_imm))
                                amd64_mov_reg_mem (code, ins->dreg, ins->inst_imm, 8);
                        else {
-                               amd64_mov_reg_imm (code, ins->dreg, ins->inst_imm);
+                               amd64_mov_reg_imm_size (code, ins->dreg, ins->inst_imm, sizeof(gpointer));
                                amd64_mov_reg_membase (code, ins->dreg, ins->dreg, 0, 8);
                        }
                        break;
@@ -3854,10 +3865,10 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                        break;
                case OP_LOADU4_MEM:
                        // FIXME: Decompose this earlier
-                       if (amd64_is_imm32 (ins->inst_imm))
+                       if (amd64_use_imm32 (ins->inst_imm))
                                amd64_mov_reg_mem (code, ins->dreg, ins->inst_imm, 4);
                        else {
-                               amd64_mov_reg_imm (code, ins->dreg, ins->inst_imm);
+                               amd64_mov_reg_imm_size (code, ins->dreg, ins->inst_imm, sizeof(gpointer));
                                amd64_mov_reg_membase (code, ins->dreg, ins->dreg, 0, 4);
                        }
                        break;
@@ -4588,7 +4599,7 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
 
                case OP_ICONST:
                case OP_I8CONST:
-                       if ((((guint64)ins->inst_c0) >> 32) == 0)
+                       if ((((guint64)ins->inst_c0) >> 32) == 0 && !mini_get_debug_options()->single_imm_size)
                                amd64_mov_reg_imm_size (code, ins->dreg, ins->inst_c0, 4);
                        else
                                amd64_mov_reg_imm_size (code, ins->dreg, ins->inst_c0, 8);
@@ -4854,7 +4865,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;
 
@@ -7554,7 +7565,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) {
@@ -7674,7 +7685,7 @@ mono_arch_flush_register_windows (void)
 gboolean 
 mono_arch_is_inst_imm (gint64 imm)
 {
-       return amd64_is_imm32 (imm);
+       return amd64_use_imm32 (imm);
 }
 
 /*
@@ -7801,11 +7812,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);
 
@@ -7842,8 +7856,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;
@@ -7863,16 +7882,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);
@@ -7887,8 +7910,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;
 }
@@ -7903,31 +7930,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;
@@ -7943,7 +7962,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) {
@@ -7952,10 +7971,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 ();
 
@@ -7977,7 +7999,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 ();
@@ -7991,7 +8015,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
@@ -8050,13 +8080,14 @@ 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];
                if (item->is_equals) {
                        if (item->check_target_idx) {
                                if (!item->compare_done) {
-                                       if (amd64_is_imm32 (item->key))
+                                       if (amd64_use_imm32 ((gint64)item->key))
                                                item->chunk_size += CMP_SIZE;
                                        else
                                                item->chunk_size += MOV_REG_IMM_SIZE + CMP_REG_REG_SIZE;
@@ -8092,7 +8123,7 @@ mono_arch_build_imt_thunk (MonoVTable *vtable, MonoDomain *domain, MonoIMTCheckI
                                }
                        }
                } else {
-                       if (amd64_is_imm32 (item->key))
+                       if (amd64_use_imm32 ((gint64)item->key))
                                item->chunk_size += CMP_SIZE;
                        else
                                item->chunk_size += MOV_REG_IMM_SIZE + CMP_REG_REG_SIZE;
@@ -8112,6 +8143,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;
@@ -8120,10 +8154,10 @@ mono_arch_build_imt_thunk (MonoVTable *vtable, MonoDomain *domain, MonoIMTCheckI
 
                        if (item->check_target_idx || fail_case) {
                                if (!item->compare_done || fail_case) {
-                                       if (amd64_is_imm32 (item->key))
+                                       if (amd64_use_imm32 ((gint64)item->key))
                                                amd64_alu_reg_imm_size (code, X86_CMP, MONO_ARCH_IMT_REG, (guint32)(gssize)item->key, sizeof(gpointer));
                                        else {
-                                               amd64_mov_reg_imm (code, MONO_ARCH_IMT_SCRATCH_REG, item->key);
+                                               amd64_mov_reg_imm_size (code, MONO_ARCH_IMT_SCRATCH_REG, item->key, sizeof(gpointer));
                                                amd64_alu_reg_reg (code, X86_CMP, MONO_ARCH_IMT_REG, MONO_ARCH_IMT_SCRATCH_REG);
                                        }
                                }
@@ -8171,10 +8205,10 @@ mono_arch_build_imt_thunk (MonoVTable *vtable, MonoDomain *domain, MonoIMTCheckI
 #endif
                        }
                } else {
-                       if (amd64_is_imm32 (item->key))
+                       if (amd64_use_imm32 ((gint64)item->key))
                                amd64_alu_reg_imm_size (code, X86_CMP, MONO_ARCH_IMT_REG, (guint32)(gssize)item->key, sizeof (gpointer));
                        else {
-                               amd64_mov_reg_imm (code, MONO_ARCH_IMT_SCRATCH_REG, item->key);
+                               amd64_mov_reg_imm_size (code, MONO_ARCH_IMT_SCRATCH_REG, item->key, sizeof (gpointer));
                                amd64_alu_reg_reg (code, X86_CMP, MONO_ARCH_IMT_REG, MONO_ARCH_IMT_SCRATCH_REG);
                        }
                        item->jmp_code = code;
@@ -8202,6 +8236,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 c32445361f09c5066f48739fa108aa9203afd22f..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
@@ -407,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 09b0f0aad6c13449f05f85ec4c82ba4a58cbedc5..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);
@@ -4880,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) {
@@ -4957,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;
                }
@@ -5052,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 */
@@ -5461,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);
@@ -5831,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__);
@@ -5854,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)
 {
@@ -5866,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
 }
 
@@ -6000,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) {
@@ -6117,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;
@@ -6309,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);
@@ -6467,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);
        }
@@ -6502,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;
@@ -6524,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 {
@@ -6540,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);
@@ -6705,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)
@@ -6773,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
@@ -6827,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) {
@@ -6837,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
@@ -6851,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);
@@ -6927,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);
@@ -6958,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;
@@ -6974,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
                                }
@@ -6992,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);
@@ -7091,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 baeb61fe85352adcddeb24b95da9c39f5130a031..5135fcbb94808cdea4d403716a883cdd7b2326fd 100644 (file)
@@ -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
 
@@ -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..309ebd82531bf937c0f302cc1955da251b7f8435 100644 (file)
@@ -239,23 +239,30 @@ 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;
        gboolean using_lldb = FALSE;
 
+       using_lldb = TRUE;
+
        argv [0] = g_find_program_in_path ("gdb");
-       if (!argv [0]) {
-               // FIXME: LLDB doesn't quit when given the 'quit' command
-               //argv [0] = g_find_program_in_path ("lldb");
-               //using_lldb = TRUE;
-       }
+       if (argv [0])
+               using_lldb = FALSE;
+
+       if (using_lldb)
+               argv [0] = g_find_program_in_path ("lldb");
 
        if (argv [0] == NULL)
                return;
@@ -277,6 +284,7 @@ mono_gdb_render_native_backtraces (pid_t crashed_pid)
        } else {
                fprintf (commands, "attach %ld\n", (long) crashed_pid);
                fprintf (commands, "info threads\n");
+               fprintf (commands, " t a a info thread\n");
                fprintf (commands, "thread apply all bt\n");
                argv [1] = "-batch";
                argv [2] = "-x";
@@ -286,8 +294,13 @@ mono_gdb_render_native_backtraces (pid_t crashed_pid)
        fflush (commands);
        fclose (commands);
 
+       fclose (stdin);
+
        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 c43da613f60e1eba364a30e409baef5541ccdeab..fd607d71f4397a9742c42d61a649a7878f220829 100644 (file)
@@ -53,6 +53,7 @@
 #include <mono/metadata/profiler.h>
 #include <mono/metadata/mono-endian.h>
 #include <mono/metadata/environment.h>
+#include <mono/metadata/mono-mlist.h>
 #include <mono/utils/mono-mmap.h>
 #include <mono/utils/mono-logger-internal.h>
 
@@ -98,13 +99,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);
@@ -165,7 +166,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 ();
@@ -205,7 +206,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, 
@@ -225,7 +226,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;
 
@@ -243,6 +244,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;
@@ -301,10 +304,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;
 
@@ -385,7 +388,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;
 
@@ -397,7 +400,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) {
@@ -451,6 +454,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)
 {
@@ -511,7 +517,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);
@@ -521,15 +527,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);
@@ -539,18 +545,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;
 }
@@ -615,50 +621,6 @@ mono_exception_walk_trace (MonoException *ex, MonoExceptionFrameWalk func, gpoin
        return len > 0;
 }
 
-MonoString *
-ves_icall_System_Exception_get_trace (MonoException *ex)
-{
-       MonoDomain *domain = mono_domain_get ();
-       MonoString *res;
-       MonoArray *ta = ex->trace_ips;
-       int i, len;
-       GString *trace_str;
-
-       if (ta == NULL)
-               /* Exception is not thrown yet */
-               return NULL;
-
-       len = mono_array_length (ta) >> 1;
-       trace_str = g_string_new ("");
-       for (i = 0; i < len; i++) {
-               MonoJitInfo *ji;
-               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);
-               if (ji == NULL) {
-                       /* Unmanaged frame */
-                       g_string_append_printf (trace_str, "in (unmanaged) %p\n", ip);
-               } else {
-                       gchar *location;
-                       gint32 address;
-                       MonoMethod *method = get_method_from_stack_frame (ji, generic_info);
-
-                       address = (char *)ip - (char *)ji->code_start;
-                       location = mono_debug_print_stack_frame (
-                               method, address, ex->object.vtable->domain);
-
-                       g_string_append_printf (trace_str, "%s\n", location);
-                       g_free (location);
-               }
-       }
-
-       res = mono_string_new (ex->object.vtable->domain, trace_str->str);
-       g_string_free (trace_str, TRUE);
-
-       return res;
-}
-
 MonoArray *
 ves_icall_get_trace (MonoException *exc, gint32 skip, MonoBoolean need_file_info)
 {
@@ -808,6 +770,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],
@@ -870,7 +836,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);
@@ -889,7 +855,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;
@@ -944,7 +910,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;
@@ -1085,7 +1053,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);
 }
 
 /*
@@ -1183,18 +1151,42 @@ build_native_trace (void)
 #endif
 }
 
-#define setup_managed_stacktrace_information() do {    \
-       if (mono_ex && !initial_trace_ips) {    \
-               trace_ips = g_list_reverse (trace_ips); \
-               MONO_OBJECT_SETREF (mono_ex, trace_ips, glist_to_array (trace_ips, mono_defaults.int_class));   \
-               MONO_OBJECT_SETREF (mono_ex, native_trace_ips, build_native_trace ());  \
-               if (has_dynamic_methods)        \
-                       /* These methods could go away anytime, so compute the stack trace now */       \
-                       MONO_OBJECT_SETREF (mono_ex, stack_trace, ves_icall_System_Exception_get_trace (mono_ex));      \
-       }       \
-       g_list_free (trace_ips);        \
-       trace_ips = NULL;       \
-} while (0)
+static void
+setup_stack_trace (MonoException *mono_ex, GSList *dynamic_methods, MonoArray *initial_trace_ips, GList **trace_ips)
+{
+       if (mono_ex && !initial_trace_ips) {
+               *trace_ips = g_list_reverse (*trace_ips);
+               MONO_OBJECT_SETREF (mono_ex, trace_ips, glist_to_array (*trace_ips, mono_defaults.int_class));
+               MONO_OBJECT_SETREF (mono_ex, native_trace_ips, build_native_trace ());
+               if (dynamic_methods) {
+                       /* These methods could go away anytime, so save a reference to them in the exception object */
+                       GSList *l;
+                       MonoMList *list = NULL;
+
+                       for (l = dynamic_methods; l; l = l->next) {
+                               gpointer *dis_link;
+                               MonoDomain *domain = mono_domain_get ();
+
+                               if (domain->method_to_dyn_method) {
+                                       mono_domain_lock (domain);
+                                       dis_link = g_hash_table_lookup (domain->method_to_dyn_method, l->data);
+                                       mono_domain_unlock (domain);
+                                       if (dis_link) {
+                                               MonoObject *o = mono_gc_weak_link_get (dis_link);
+                                               if (o) {
+                                                       list = mono_mlist_prepend (list, o);
+                                               }
+                                       }
+                               }
+                       }
+
+                       MONO_OBJECT_SETREF (mono_ex, dynamic_methods, list);
+               }
+       }
+       g_list_free (*trace_ips);
+       *trace_ips = NULL;
+}
+
 /*
  * mono_handle_exception_internal_first_pass:
  *
@@ -1212,12 +1204,12 @@ mono_handle_exception_internal_first_pass (MonoContext *ctx, gpointer obj, gint3
        MonoLMF *lmf = mono_get_lmf ();
        MonoArray *initial_trace_ips = NULL;
        GList *trace_ips = NULL;
+       GSList *dynamic_methods = NULL;
        MonoException *mono_ex;
        gboolean stack_overflow = FALSE;
        MonoContext initial_ctx;
        MonoMethod *method;
        int frame_count = 0;
-       gboolean has_dynamic_methods = FALSE;
        gint32 filter_idx;
        int i;
        MonoObject *ex_obj;
@@ -1265,7 +1257,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;
                        }
@@ -1274,7 +1268,8 @@ mono_handle_exception_internal_first_pass (MonoContext *ctx, gpointer obj, gint3
                }
 
                if (!unwind_res) {
-                       setup_managed_stacktrace_information ();
+                       setup_stack_trace (mono_ex, dynamic_methods, initial_trace_ips, &trace_ips);
+                       g_slist_free (dynamic_methods);
                        return FALSE;
                }
 
@@ -1302,7 +1297,7 @@ mono_handle_exception_internal_first_pass (MonoContext *ctx, gpointer obj, gint3
                }
 
                if (method->dynamic)
-                       has_dynamic_methods = TRUE;
+                       dynamic_methods = g_slist_prepend (dynamic_methods, method);
 
                if (stack_overflow) {
                        if (DOES_STACK_GROWS_UP)
@@ -1349,7 +1344,7 @@ mono_handle_exception_internal_first_pass (MonoContext *ctx, gpointer obj, gint3
                                        FIXME Not 100% sure if it's a good idea even with user clauses.
                                        */
                                        if (is_user_frame)
-                                               setup_managed_stacktrace_information ();
+                                               setup_stack_trace (mono_ex, dynamic_methods, initial_trace_ips, &trace_ips);
 
 #ifdef MONO_CONTEXT_SET_LLVM_EXC_REG
                                        if (ji->from_llvm)
@@ -1385,7 +1380,8 @@ mono_handle_exception_internal_first_pass (MonoContext *ctx, gpointer obj, gint3
 
                                        if (filtered) {
                                                if (!is_user_frame)
-                                                       setup_managed_stacktrace_information ();
+                                                       setup_stack_trace (mono_ex, dynamic_methods, initial_trace_ips, &trace_ips);
+                                               g_slist_free (dynamic_methods);
                                                /* mono_debugger_agent_handle_exception () needs this */
                                                MONO_CONTEXT_SET_IP (ctx, ei->handler_start);
                                                return TRUE;
@@ -1393,7 +1389,8 @@ mono_handle_exception_internal_first_pass (MonoContext *ctx, gpointer obj, gint3
                                }
 
                                if (ei->flags == MONO_EXCEPTION_CLAUSE_NONE && mono_object_isinst (ex_obj, catch_class)) {
-                                       setup_managed_stacktrace_information ();
+                                       setup_stack_trace (mono_ex, dynamic_methods, initial_trace_ips, &trace_ips);
+                                       g_slist_free (dynamic_methods);
 
                                        if (out_ji)
                                                *out_ji = ji;
@@ -1560,18 +1557,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
@@ -1603,7 +1599,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;
                                }
@@ -1732,8 +1730,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;
@@ -1741,8 +1738,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;
@@ -2045,7 +2041,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) {
@@ -2098,7 +2094,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>.");
@@ -2112,7 +2108,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) {
@@ -2131,7 +2127,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) {
@@ -2527,20 +2523,16 @@ mono_thread_state_init_from_sigctx (MonoThreadUnwindState *ctx, void *sigctx)
                return FALSE;
        }
 
-       if (sigctx)
+       if (sigctx) {
                mono_sigctx_to_monoctx (sigctx, &ctx->ctx);
-       else
-#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->jit_data;
+               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->jit_data;
+       }
+       else {
+               mono_thread_state_init (ctx);
+       }
 
        if (!ctx->unwind_data [MONO_UNWIND_DATA_DOMAIN] || !ctx->unwind_data [MONO_UNWIND_DATA_LMF])
                return FALSE;
@@ -2553,6 +2545,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 ac9c9a2d83afaa003c22b8ec7a8b5b1c2ad016e8..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;
                }
@@ -1044,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;
@@ -1081,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;
@@ -1128,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)
+                                 MonoGenericContext *context, MonoClass *klass)
 {
        gpointer data;
        gboolean temporary;
@@ -1148,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:
@@ -1284,7 +1279,7 @@ instantiate_info (MonoDomain *domain, MonoRuntimeGenericContextInfoTemplate *oti
                /*
                 * This is an indirect call to the address passed by the caller in the rgctx reg.
                 */
-               addr = mini_get_gsharedvt_wrapper (FALSE, NULL, sig, gsig, NULL, -1, TRUE);
+               addr = mini_get_gsharedvt_wrapper (FALSE, NULL, sig, gsig, -1, TRUE);
                return addr;
        }
        case MONO_RGCTX_INFO_METHOD_GSHAREDVT_OUT_TRAMPOLINE:
@@ -1350,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, NULL, 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));
@@ -1382,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, NULL, -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, NULL, -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));
                        }
@@ -1426,7 +1421,7 @@ instantiate_info (MonoDomain *domain, MonoRuntimeGenericContextInfoTemplate *oti
                                offset += size;
                                break;
                        default:
-                               res->entries [i] = instantiate_info (domain, template, context, class);
+                               res->entries [i] = instantiate_info (domain, template, context, klass);
                                break;
                        }
                }
@@ -1445,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;
 
@@ -1525,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;
 
@@ -1541,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;
@@ -1563,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;
 }
@@ -1648,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 ();
 
@@ -1672,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);
@@ -1684,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 ();
 
@@ -1714,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) {
@@ -1727,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);
 
@@ -1798,8 +1793,8 @@ fill_runtime_generic_context (MonoVTable *class_vtable, MonoRuntimeGenericContex
        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;
@@ -1844,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);
+       info = instantiate_info (domain, &oti, &context, klass);
 
        /*
        if (method_inst)
@@ -2402,7 +2397,7 @@ 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)
 {
        if (gshared_supported)
                return TRUE;
@@ -2410,22 +2405,6 @@ mono_class_generic_sharing_enabled (MonoClass *class)
                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);
-}
-
 MonoGenericContext*
 mini_method_get_context (MonoMethod *method)
 {
@@ -2504,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;
 }
 
 /*
@@ -2520,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;
@@ -2571,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;
@@ -2592,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);
@@ -2632,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);
                }
        }
        
@@ -2668,7 +2630,7 @@ 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 || type->type == MONO_TYPE_MVAR) {
                return type->data.generic_param->gshared_constraint && type->data.generic_param->gshared_constraint->type == MONO_TYPE_VALUETYPE;
@@ -2679,10 +2641,9 @@ mini_type_var_is_vt (MonoCompile *cfg, MonoType *type)
 }
 
 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);
 }
 
@@ -2707,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
@@ -2724,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
@@ -3081,31 +3042,25 @@ mini_get_rgctx_entry_slot (MonoJumpInfoRgctxEntry *entry)
 #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 5b399ee03b7586a9359283631ecc6d62b46901dc..f894a7721648c58e1f40e1f0556a192aec0923c6 100644 (file)
@@ -445,6 +445,12 @@ 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:"));
 
@@ -642,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 a60dcecaae21b4dc86a7ce11f79a1d5b81ee9221..efc7662f93b33bf770e2896ac728cc4fa59d3bb5 100644 (file)
@@ -90,6 +90,9 @@ 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 db1fbe76654b8696bc07d035d2ec899f33b84964..c93a83728120c36d2acf7129423f905f4cb52856 100644 (file)
@@ -14,7 +14,7 @@
 typedef void (*MonoLLVMVoidFunc)(void);
 typedef void (*MonoLLVMCFGFunc)(MonoCompile *cfg);
 typedef void (*MonoLLVMEmitCallFunc)(MonoCompile *cfg, MonoCallInst *call);
-typedef void (*MonoLLVMCreateAotFunc)(const char *global_prefix, 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);
@@ -56,10 +56,10 @@ mono_llvm_emit_call (MonoCompile *cfg, MonoCallInst *call)
 }
 
 void
-mono_llvm_create_aot_module (const char *global_prefix, 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 (global_prefix, emit_dwarf);
+       mono_llvm_create_aot_module_fptr (assembly, global_prefix, emit_dwarf, static_link);
 }
 
 void
index 7b3b0e57f47b3c64926f10823b4abff8046228b3..ee281f871157c9c5538aaad068bb2a874cb59e5a 100644 (file)
@@ -45,8 +45,7 @@ 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;
+       LLVMValueRef throw, rethrow, throw_corlib_exception, state_poll;
        GHashTable *llvm_types;
        LLVMValueRef got_var;
        const char *got_symbol;
@@ -65,11 +64,14 @@ typedef struct {
        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;
 
 /*
@@ -279,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 ++;
 
@@ -391,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 ();
@@ -1170,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];
 
@@ -1195,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;
@@ -1284,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;
 
@@ -1292,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;
@@ -2044,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 */
@@ -2095,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]);
 
@@ -2104,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;
@@ -2115,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;
 
                /*
@@ -2202,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)
 {
@@ -2240,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);
@@ -2385,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) {
@@ -2427,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)
@@ -2463,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)
@@ -2485,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);
 
@@ -2504,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 */
@@ -2556,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");
@@ -2693,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");
                }
 
@@ -2830,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;
@@ -2849,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);
 
-                       if (linfo->ret.storage == LLVMArgVtypeByVal) {
+                               g_assert (addresses [ins->sreg1]);
+
+                               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]);
@@ -2858,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;
 
@@ -2873,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:
@@ -3456,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;
@@ -3736,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: {
@@ -4066,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;
@@ -4641,6 +4725,61 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
 
                case OP_DUMMY_USE:
                        break;
+               case OP_GC_SAFE_POINT: {
+                       LLVMValueRef callee, cmp, val;
+                       LLVMTypeRef llvm_sig;
+                       const char *icall_name;
+                       LLVMBasicBlockRef poll_bb, cont_bb;
+
+                       poll_bb = gen_bb (ctx, "POLL_BB");
+                       cont_bb = gen_bb (ctx, "NOPOLL_BB");
+
+                       val = LLVMBuildLoad (ctx->builder, convert (ctx, lhs, LLVMPointerType (LLVMInt8Type (), 0)), "");
+                       cmp = LLVMBuildICmp (builder, LLVMIntEQ, val, LLVMConstInt (LLVMTypeOf (val), 0, FALSE), "");
+                       LLVMBuildCondBr (ctx->builder, cmp, cont_bb, poll_bb);
+
+                       builder = ctx->builder = create_builder (ctx);
+                       LLVMPositionBuilderAtEnd (builder, poll_bb);
+
+                       MonoMethodSignature *sig = mono_metadata_signature_alloc (mono_get_corlib (), 0);
+                       sig->ret = &mono_get_void_class ()->byval_arg;
+                       icall_name = "mono_threads_state_poll";
+                       llvm_sig = sig_to_llvm_sig (ctx, sig);
+
+                       if (ctx->cfg->compile_aot) {
+                               callee = ctx->lmodule->state_poll;
+                               if (!callee) {
+                                       MonoMethodSignature *sig = mono_metadata_signature_alloc (mono_get_corlib (), 0);
+                                       sig->ret = &mono_get_void_class ()->byval_arg;
+                                       llvm_sig = sig_to_llvm_sig (ctx, sig);
+
+                                       callee = get_plt_entry (ctx, llvm_sig, MONO_PATCH_INFO_INTERNAL_METHOD, icall_name);
+                               }
+                       } else {
+                               callee = ctx->lmodule->state_poll;
+                               if (!callee) {
+                                       MonoMethodSignature *sig = mono_metadata_signature_alloc (mono_get_corlib (), 0);
+                                       sig->ret = &mono_get_void_class ()->byval_arg;
+                                       llvm_sig = sig_to_llvm_sig (ctx, sig);
+
+                                       callee = LLVMAddFunction (ctx->module, icall_name, llvm_sig);
+                                       LLVMAddGlobalMapping (ctx->lmodule->ee, callee, resolve_patch (ctx->cfg, MONO_PATCH_INFO_INTERNAL_METHOD, icall_name));
+                                       ctx->lmodule->state_poll = callee;
+                               }
+                       }
+                       //
+                       // FIXME: This can use the PreserveAll cconv to avoid clobbering registers.
+                       // It requires the wrapper to also use that calling convention.
+                       //
+                       val = emit_call (ctx, bb, &builder, callee, NULL, 0);
+                       LLVMBuildBr (builder, cont_bb);
+
+                       builder = ctx->builder = create_builder (ctx);
+                       LLVMPositionBuilderAtEnd (builder, cont_bb);
+
+                       bblocks [bb->block_num].end_bblock = cont_bb;
+                       break;
+               }
 
                        /*
                         * EXCEPTION HANDLING
@@ -5018,6 +5157,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);
@@ -5039,6 +5182,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);
 
@@ -5366,7 +5514,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);
@@ -5438,10 +5588,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) {
@@ -5471,19 +5622,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;
                        }
                }
        }
@@ -5872,26 +6029,31 @@ mono_llvm_free_domain_info (MonoDomain *domain)
 }
 
 void
-mono_llvm_create_aot_module (const char *global_prefix, 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);
-
-       memset (&aot_module, 0, sizeof (aot_module));
+       MonoLLVMModule *lmodule = &aot_module;
 
-       aot_module.module = LLVMModuleCreateWithName ("aot");
-       aot_module.got_symbol = g_strdup_printf ("%s_llvm_got", global_prefix);
-       aot_module.eh_frame_symbol = g_strdup_printf ("%s_eh_frame", global_prefix);
-       aot_module.external_symbols = TRUE;
-       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 */
        /*
@@ -5901,31 +6063,16 @@ mono_llvm_create_aot_module (const char *global_prefix, gboolean emit_dwarf)
         * its size is known in mono_llvm_emit_aot_module ().
         */
        {
-               LLVMTypeRef got_type = LLVMArrayType (aot_module.ptr_type, 0);
-
-               aot_module.got_var = LLVMAddGlobal (aot_module.module, got_type, "mono_dummy_got");
-               LLVMSetInitializer (aot_module.got_var, LLVMConstNull (got_type));
-       }
+               LLVMTypeRef got_type = LLVMArrayType (lmodule->ptr_type, 0);
 
-       /* 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);
+               aot_module.got_var = LLVMAddGlobal (lmodule->module, got_type, "mono_dummy_got");
+               LLVMSetInitializer (lmodule->got_var, LLVMConstNull (got_type));
        }
 
-       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);
+       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
@@ -5951,9 +6098,11 @@ llvm_array_from_uints (LLVMTypeRef el_type, guint32 *values, int nvalues)
 void
 mono_llvm_emit_aot_file_info (MonoAotFileInfo *info, gboolean has_jitted_code)
 {
+       MonoLLVMModule *lmodule = &aot_module;
+
        /* Save these for later */
-       memcpy (&aot_module.aot_info, info, sizeof (MonoAotFileInfo));
-       aot_module.has_jitted_code = has_jitted_code;
+       memcpy (&lmodule->aot_info, info, sizeof (MonoAotFileInfo));
+       lmodule->has_jitted_code = has_jitted_code;
 }
 
 /*
@@ -5970,7 +6119,23 @@ mono_llvm_emit_aot_data (const char *symbol, guint8 *data, int data_len)
 
        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
@@ -6004,7 +6169,11 @@ emit_aot_file_info (MonoLLVMModule *lmodule)
        file_info_type = LLVMStructCreateNamed (LLVMGetGlobalContext (), "MonoAotFileInfo");
        LLVMStructSetBody (file_info_type, eltypes, nfields, FALSE);
 
-       info_var = LLVMAddGlobal (aot_module.module, file_info_type, "mono_aot_file_info");
+       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);
@@ -6016,54 +6185,56 @@ emit_aot_file_info (MonoLLVMModule *lmodule)
         * for symbols defined in the .s file emitted by the aot compiler.
         */
        eltype = eltypes [tindex];
-       fields [tindex ++] = LLVMAddGlobal (aot_module.module, eltype, "jit_got");
-       fields [tindex ++] = aot_module.got_var;
+       fields [tindex ++] = AddJitGlobal (lmodule, eltype, "jit_got");
+       fields [tindex ++] = lmodule->got_var;
        /* llc defines this directly */
-       fields [tindex ++] = LLVMAddGlobal (aot_module.module, eltype, aot_module.eh_frame_symbol);
-       if (TRUE || aot_module.has_jitted_code) {
-               fields [tindex ++] = LLVMAddGlobal (aot_module.module, eltype, "jit_code_start");
-               fields [tindex ++] = LLVMAddGlobal (aot_module.module, eltype, "jit_code_end");
-               fields [tindex ++] = LLVMAddGlobal (aot_module.module, eltype, "method_addresses");
+       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 (aot_module.module, "blob");
-       fields [tindex ++] = LLVMGetNamedGlobal (aot_module.module, "class_name_table");
-       fields [tindex ++] = LLVMGetNamedGlobal (aot_module.module, "class_info_offsets");
-       fields [tindex ++] = LLVMGetNamedGlobal (aot_module.module, "method_info_offsets");
-       fields [tindex ++] = LLVMGetNamedGlobal (aot_module.module, "ex_info_offsets");
-       fields [tindex ++] = LLVMGetNamedGlobal (aot_module.module, "extra_method_info_offsets");
-       fields [tindex ++] = LLVMGetNamedGlobal (aot_module.module, "extra_method_table");
-       fields [tindex ++] = LLVMGetNamedGlobal (aot_module.module, "got_info_offsets");
-       fields [tindex ++] = LLVMGetNamedGlobal (aot_module.module, "llvm_got_info_offsets");
+       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 (aot_module.module, "image_table");
-       fields [tindex ++] = LLVMGetNamedGlobal (aot_module.module, "assembly_guid");
-       fields [tindex ++] = LLVMGetNamedGlobal (aot_module.module, "runtime_version");
+       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 ++] = LLVMAddGlobal (aot_module.module, eltype, "specific_trampolines");
-               fields [tindex ++] = LLVMAddGlobal (aot_module.module, eltype, "static_rgctx_trampolines");
-               fields [tindex ++] = LLVMAddGlobal (aot_module.module, eltype, "imt_thunks");
-               fields [tindex ++] = LLVMAddGlobal (aot_module.module, eltype, "gsharedvt_arg_trampolines");
+               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);
        }
-       // FIXME:
-       fields [tindex ++] = LLVMConstNull (eltype);
-       fields [tindex ++] = LLVMGetNamedGlobal (aot_module.module, "assembly_name");
-       if (TRUE || aot_module.has_jitted_code) {
-               fields [tindex ++] = LLVMAddGlobal (aot_module.module, eltype, "plt");
-               fields [tindex ++] = LLVMAddGlobal (aot_module.module, eltype, "plt_end");
-               fields [tindex ++] = LLVMAddGlobal (aot_module.module, eltype, "unwind_info");
-               fields [tindex ++] = LLVMAddGlobal (aot_module.module, eltype, "unbox_trampolines");
-               fields [tindex ++] = LLVMAddGlobal (aot_module.module, eltype, "unbox_trampolines_end");
-               fields [tindex ++] = LLVMAddGlobal (aot_module.module, eltype, "unbox_trampoline_addresses");
+       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);
@@ -6073,6 +6244,9 @@ emit_aot_file_info (MonoLLVMModule *lmodule)
                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);
@@ -6095,6 +6269,23 @@ emit_aot_file_info (MonoLLVMModule *lmodule)
        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);
+       }
 }
 
 /*
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..4ff795aeb6cb9fb6d7bb3731a1238b0e698b2cec 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) || defined(TARGET_ARM64)
 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 72e64a2c16980c17c26a097b88a177ec39b2aec0..16d3eaf28ebb9fb5546e75f73733e5888a368a18 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:
@@ -1091,8 +1096,10 @@ get_call_info (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig)
                                        cinfo->args [n].reg = fr;
                                        fr ++;
                                        FP_ALSO_IN_REG (gr ++);
+#if !defined(__mono_ppc64__)
                                        if (size == 8)
                                                FP_ALSO_IN_REG (gr ++);
+#endif
                                        ALWAYS_ON_STACK (stack_size += size);
                                } else {
                                        cinfo->args [n].offset = PPC_STACK_PARAM_OFFSET + stack_size;
@@ -1160,7 +1167,10 @@ get_call_info (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig)
                        cinfo->args [n].size = 4;
 
                        /* It was 7, now it is 8 in LinuxPPC */
-                       if (fr <= PPC_LAST_FPARG_REG) {
+                       if (fr <= PPC_LAST_FPARG_REG
+                       // For non-native vararg calls the parms must go in storage
+                                && !(!sig->pinvoke && (sig->call_convention == MONO_CALL_VARARG))
+                               ) {
                                cinfo->args [n].regtype = RegTypeFP;
                                cinfo->args [n].reg = fr;
                                fr ++;
@@ -1177,7 +1187,10 @@ get_call_info (MonoGenericSharingContext *gsctx, MonoMethodSignature *sig)
                case MONO_TYPE_R8:
                        cinfo->args [n].size = 8;
                        /* It was 7, now it is 8 in LinuxPPC */
-                       if (fr <= PPC_LAST_FPARG_REG) {
+                       if (fr <= PPC_LAST_FPARG_REG
+                       // For non-native vararg calls the parms must go in storage
+                                && !(!sig->pinvoke && (sig->call_convention == MONO_CALL_VARARG))
+                                ) {
                                cinfo->args [n].regtype = RegTypeFP;
                                cinfo->args [n].reg = fr;
                                fr ++;
@@ -1206,7 +1219,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 +1280,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 +1362,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 (sig->ret)->type) {
                case MONO_TYPE_VOID:
                        break;
                case MONO_TYPE_R4:
@@ -1486,7 +1499,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 +1545,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 +1555,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 +1741,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 +1759,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 +1822,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;
@@ -4417,6 +4428,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;
@@ -4450,21 +4477,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;
@@ -4635,7 +4647,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;
@@ -4803,7 +4814,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;
@@ -5745,6 +5756,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 0c611f251a54f7e70eb00d4d4671301c648dfb55..45e5dc3e60acc2d8147222b66a121de57e5a22b0 100644 (file)
@@ -139,8 +139,15 @@ typedef struct MonoCompileArch {
 /* Linux */
 #ifdef __mono_ppc64__
 #define PPC_RET_ADDR_OFFSET 16
-#define PPC_STACK_PARAM_OFFSET 48
-#define PPC_MINIMAL_STACK_SIZE 48
+ // Power LE abvi2
+ #if (_CALL_ELF == 2)
+  #define PPC_STACK_PARAM_OFFSET 32
+  #define PPC_MINIMAL_STACK_SIZE 32
+ #else
+  #define PPC_STACK_PARAM_OFFSET 48
+  #define PPC_MINIMAL_STACK_SIZE 48
+ #endif
+#define MONO_ARCH_HAVE_SETUP_ASYNC_CALLBACK 1
 #define PPC_MINIMAL_PARAM_AREA_SIZE 64
 #define PPC_LAST_FPARG_REG ppc_f13
 #define PPC_PASS_STRUCTS_BY_VALUE 1
index b597688610482ec362dd8d1ea444b0caed4c75ab..2cf9580859fbd425b7f80849c27ada1dbee6fb61 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"
@@ -118,12 +119,14 @@ static void register_icalls (void);
 gboolean
 mono_running_on_valgrind (void)
 {
+#ifndef HOST_WIN32
        if (RUNNING_ON_VALGRIND){
 #ifdef VALGRIND_JIT_REGISTER_MAP
                valgrind_register = TRUE;
 #endif
                return TRUE;
        } else
+#endif
                return FALSE;
 }
 
@@ -155,7 +158,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 +173,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);
@@ -286,7 +293,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 +467,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 +483,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 +497,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 +604,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 +624,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 +656,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 +1035,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 +1179,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 +1204,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 +1460,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;
 
@@ -1596,15 +1591,6 @@ mono_resolve_patch_target (MonoMethod *method, MonoDomain *domain, guint8 *code,
                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)
@@ -1976,6 +1962,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 */
@@ -2259,7 +2247,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;
@@ -2340,7 +2330,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))
@@ -2426,7 +2416,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))
@@ -2606,8 +2596,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 {
@@ -2666,6 +2658,8 @@ mini_parse_debug_options (void)
                        debug_options.gen_sdb_seq_points = TRUE;
                else if (!strcmp (arg, "gen-compact-seq-points"))
                        debug_options.gen_seq_points_compact_data = TRUE;
+               else if (!strcmp (arg, "single-imm-size"))
+                       debug_options.single_imm_size = TRUE;
                else if (!strcmp (arg, "init-stacks"))
                        debug_options.init_stacks = TRUE;
                else if (!strcmp (arg, "casts"))
@@ -2674,6 +2668,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"))
@@ -2682,7 +2678,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', 'suspend-on-sigsegv', 'suspend-on-exception', 'suspend-on-unhandled', 'dont-free-domains', 'dyn-runtime-invoke', 'gdb', 'explicit-null-checks', 'gen-seq-points', 'gen-compact-seq-points', 'single-imm-size', 'init-stacks', 'casts', 'soft-breakpoints', 'check-pinvoke-callconv', 'arm-use-fallback-tls', 'debug-domain-unload', 'partial-sharing', 'align-small-structs'\n");
                        exit (1);
                }
        }
@@ -2785,12 +2781,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);
@@ -2849,7 +2844,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);
@@ -2917,6 +2911,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");
@@ -2970,6 +2966,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 ();
 
@@ -3031,11 +3028,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);
@@ -3143,8 +3135,6 @@ register_icalls (void)
                                ves_icall_get_frame_info);
        mono_add_internal_call ("System.Diagnostics.StackTrace::get_trace",
                                ves_icall_get_trace);
-       mono_add_internal_call ("System.Exception::get_trace",
-                               ves_icall_System_Exception_get_trace);
        mono_add_internal_call ("Mono.Runtime::mono_runtime_install_handlers",
                                mono_runtime_install_handlers);
 
@@ -3230,16 +3220,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
@@ -3360,8 +3353,6 @@ register_icalls (void)
        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);
@@ -3490,8 +3481,6 @@ mini_cleanup (MonoDomain *domain)
 
        mono_mutex_destroy (&jit_mutex);
 
-       mono_mutex_destroy (&mono_delegate_section);
-
        mono_code_manager_cleanup ();
 
 #ifdef USE_JUMP_TABLES
@@ -3603,6 +3592,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 4173a9d47a3d7a0a660ff3fcc48a3e260c99bd8e..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++;
        }
@@ -1557,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);
@@ -1585,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) {
@@ -1633,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;
@@ -1664,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);
@@ -1726,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) {
@@ -1974,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:
@@ -2347,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];
 
@@ -2563,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) {
@@ -2663,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;
        /*-----------------------------------------*/
@@ -4157,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);
@@ -4771,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:
@@ -5713,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;
 
@@ -5749,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;
 }
@@ -5769,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;
@@ -5812,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 ();
 
@@ -5840,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 ();
@@ -6033,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 838097abb2a54a63f664470145bd970ceb88e338..d4af8df57a08e4065f746f834cfc369e426a6a9c 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;
@@ -341,21 +340,18 @@ mini_add_method_trampoline (MonoMethod *m, gpointer compiled_method, gboolean ad
                }
        }
 
-       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));
        }
@@ -707,7 +703,7 @@ 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;
@@ -726,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 */
@@ -874,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)
 {
@@ -937,29 +896,6 @@ mono_rgctx_lazy_fetch_trampoline (mgreg_t *regs, guint8 *code, gpointer data, gu
                return mono_class_fill_runtime_generic_context (arg, 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);
-}
-
 /*
  * Precompute data to speed up mono_delegate_trampoline ().
  * METHOD might be NULL.
@@ -1066,7 +1002,10 @@ mono_delegate_trampoline (mgreg_t *regs, guint8 *code, gpointer *arg, guint8* tr
                                }
                        }
                }
-       } else {
+       // If "delegate->method_ptr" is null mono_get_addr_from_ftnptr will fail if
+       // ftnptrs are being used.  "method" would end up null on archtitectures without
+       // ftnptrs so we can just skip this.
+       } else if (delegate->method_ptr) {
                ji = mono_jit_info_table_find (domain, mono_get_addr_from_ftnptr (delegate->method_ptr));
                if (ji)
                        method = jinfo_get_method (ji);
@@ -1212,7 +1151,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;
        }
@@ -1235,10 +1174,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
@@ -1255,12 +1190,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
@@ -1280,7 +1209,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;
 }
@@ -1295,8 +1224,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);
@@ -1307,9 +1234,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);
@@ -1325,8 +1249,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)
@@ -1352,42 +1274,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)
 {
@@ -1564,7 +1450,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);
        }
 
@@ -1587,95 +1473,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
 /*
@@ -1697,20 +1494,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)
 {
@@ -1734,17 +1517,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"
 };
@@ -1787,30 +1565,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:
  *
@@ -1830,7 +1584,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 ();
@@ -1862,7 +1616,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..9d314f7436c22fe1ba3a2d192a7996d3928da419 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,8 @@ 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);
+       if (!mono_aot_only)
+               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 +772,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 +1052,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 +1199,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 +1247,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 +1296,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 +1323,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 +1354,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 +1427,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 +1485,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 +1515,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 +1644,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 +1663,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 +1733,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 +2295,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 +2311,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 +2776,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 +5133,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 +5436,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 +5515,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 +5588,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 +5615,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 +5818,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 +5855,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 +5944,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 +6111,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 +6137,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 +6204,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 +6230,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 +6247,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 +6264,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 +6279,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 +6324,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 +6352,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 +6368,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
@@ -6608,13 +6689,6 @@ mono_arch_get_trampolines (gboolean aot)
        return tramps;
 }
 
-
-#if __APPLE__
-#define DBG_SIGNAL SIGBUS
-#else
-#define DBG_SIGNAL SIGSEGV
-#endif
-
 /* Soft Debug support */
 #ifdef MONO_ARCH_SOFT_DEBUG_SUPPORTED
 
@@ -6627,15 +6701,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 +6715,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 +6730,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 +6741,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 +6753,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 +6774,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 +6785,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 67aea21fee19ed726b0a15176cc95aba0d7f5aca..607c627462d74ae7c6b9b7ad68963a47076726ef 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,42 @@ 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->method->wrapper_type == MONO_WRAPPER_NATIVE_TO_MANAGED) {
+               if (cfg->verbose_level > 1)
+                       printf ("SKIPPING SAFEPOINTS for native-to-managed wrappers.\n");
+               return;
+       }
+
+       if (cfg->method->wrapper_type == MONO_WRAPPER_MANAGED_TO_NATIVE) {
+               WrapperInfo *info = mono_marshal_get_wrapper_info (cfg->method);
+
+               if (info && info->subtype == WRAPPER_SUBTYPE_ICALL_WRAPPER &&
+                       (info->d.icall.func == mono_thread_interruption_checkpoint ||
+                       info->d.icall.func == mono_threads_finish_blocking ||
+                       info->d.icall.func == mono_threads_reset_blocking_start)) {
+                       /* These wrappers are called from the wrapper for the polling function, leading to potential stack overflow */
+                       if (cfg->verbose_level > 1)
+                               printf ("SKIPPING SAFEPOINTS for wrapper %s\n", cfg->method->name);
+                       return;
+               }
+       }
 
        if (cfg->verbose_level > 1)
                printf ("INSERTING SAFEPOINTS\n");
@@ -3230,7 +3272,6 @@ mini_method_compile (MonoMethod *method, guint32 opts, MonoDomain *domain, JitFl
        cfg->orig_method = method;
        cfg->gen_seq_points = debug_options.gen_seq_points_compact_data || debug_options.gen_sdb_seq_points;
        cfg->gen_sdb_seq_points = debug_options.gen_sdb_seq_points;
-       cfg->flags = flags;
 
 #ifdef PLATFORM_ANDROID
        if (cfg->method->wrapper_type != MONO_WRAPPER_NONE) {
@@ -3249,7 +3290,7 @@ 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)
@@ -3269,7 +3310,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;
 
@@ -3292,11 +3333,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;
@@ -3437,13 +3478,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));
@@ -3570,6 +3611,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));
 
@@ -3946,17 +3989,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, int aot_method_index)
+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)
 {
@@ -3986,7 +4075,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)
@@ -4185,7 +4274,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++;
@@ -4277,32 +4366,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
@@ -4314,7 +4377,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;
@@ -4345,7 +4408,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;
@@ -4366,113 +4429,6 @@ void mono_llvm_emit_aot_data (const char *symbol, guint8 *data, int data_len)
 }
 #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;
-}
-
-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
-
-/*
- * 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:
  *
@@ -4481,10 +4437,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
@@ -4496,6 +4451,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 375e8c79f60d9f6be343f755a4698475aa894717..b47a0ab2f8763752a2e6ba1984d86736315dd4fa 100644 (file)
 #endif
 
 /* Version number of the AOT file format */
-#define MONO_AOT_FILE_VERSION 119
+#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))
@@ -307,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;
@@ -498,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;
@@ -512,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])
@@ -726,6 +725,9 @@ typedef enum {
         * consists of floats/doubles.
         */
        LLVMArgFpStruct,
+       LLVMArgVtypeByRef,
+       /* Vtype returned as an int */
+       LLVMArgVtypeAsScalar,
 } LLVMArgStorage;
 
 typedef struct {
@@ -1319,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
@@ -1337,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,
@@ -1469,8 +1457,6 @@ typedef struct {
        /* The current virtual register number */
        guint32 next_vreg;
 
-       MonoGenericSharingContext *generic_sharing_context;
-
        MonoGenericSharingContext gsctx;
        MonoGenericContext *gsctx_context;
 
@@ -1923,12 +1909,18 @@ 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.
         */
        gboolean gen_sdb_seq_points;
        gboolean gen_seq_points_compact_data;
+       /*
+        * Setting single_imm_size should guarantee that each time managed code is compiled
+        * the same instructions and registers are used, regardless of the size of used values.
+        */
+       gboolean single_imm_size;
        gboolean explicit_null_checks;
        /*
         * Fill stack frames with 0x2a in method prologs. This helps with the
@@ -2129,8 +2121,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;
@@ -2334,12 +2324,12 @@ 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 *global_prefix, 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;
@@ -2443,7 +2433,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;
 
@@ -2508,8 +2498,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);
@@ -2528,7 +2518,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);
@@ -2575,11 +2565,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);
@@ -2652,6 +2642,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);
 
@@ -2689,7 +2680,6 @@ MonoBoolean ves_icall_get_frame_info            (gint32 skip, MonoBoolean need_f
                                                 MonoReflectionMethod **method, 
                                                 gint32 *iloffset, gint32 *native_offset,
                                                 MonoString **file, gint32 *line, gint32 *column);
-MonoString *ves_icall_System_Exception_get_trace (MonoException *exc);
 void mono_set_cast_details                      (MonoClass *from, MonoClass *to);
 
 /* Installs a function which is called when the runtime encounters an unhandled exception.
@@ -2829,8 +2819,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);
@@ -2847,39 +2835,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 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..5df176e4755c968607feee268744df3ab860bb28 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
@@ -19,6 +19,10 @@ clean_aot () {
        rm -rf *.exe..so *.exe.dylib *.exe.dylib.dSYM
 }
 
+# The test compares the generated native code size between a compilation with and without seq points.
+# In some architectures ie:amd64 when possible 32bit instructions and registers are used instead of 64bit ones.
+# Using MONO_DEBUG=single-imm-size avoids 32bit optimizations thus mantaining the native code size between compilations.
+
 get_methods () {
        if [ -z $4 ]; then
                MONO_PATH=$1 $2 -v --compile-all=1 $3 | grep '^Method .*code length' | sed 's/emitted[^()]*//' | sort
@@ -39,14 +43,14 @@ get_method () {
 
 diff_methods () {
        TMP_FILE=$(tmp_file)
-       echo "$(get_methods $1 $2 $3 $4)" >$TMP_FILE
-       diff <(cat $TMP_FILE) <(echo "$(MONO_DEBUG=gen-compact-seq-points get_methods $1 $2 $3 $4)")
+       echo "$(MONO_DEBUG=single-imm-size get_methods $1 $2 $3 $4)" >$TMP_FILE
+       diff <(cat $TMP_FILE) <(echo "$(MONO_DEBUG=gen-compact-seq-points,single-imm-size get_methods $1 $2 $3 $4)")
 }
 
 diff_method () {
        TMP_FILE=$(tmp_file)
-       echo "$(get_method $1 $2 $3 $4 $5)" >$TMP_FILE
-       sdiff -w 150 <(cat $TMP_FILE) <(echo "$(MONO_DEBUG=gen-compact-seq-points get_method $1 $2 $3 $4 $5 | grep -Ev il_seq_point)")
+       echo "$(MONO_DEBUG=single-imm-size get_method $1 $2 $3 $4 $5)" >$TMP_FILE
+       sdiff -w 150 <(cat $TMP_FILE) <(echo "$(MONO_DEBUG=gen-compact-seq-points,single-imm-size get_method $1 $2 $3 $4 $5 | grep -Ev il_seq_point)")
 }
 
 get_method_name () {
index 3ed9254036f8aa3bb9bc74f981f827ee22d808f4..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;
@@ -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));
                        }
index 4be828414da66c2fdd47259d72db0fc4ae9060ee..edeb4d3f5753d1f80c8df7e8063fed32c29cf781 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;
 }
 
@@ -139,6 +148,11 @@ mono_arch_get_llvm_imt_trampoline (MonoDomain *domain, MonoMethod *m, int vt_off
        return start;
 }
 
+#ifdef _WIN64
+// Workaround lack of Valgrind support for 64-bit Windows
+#define VALGRIND_DISCARD_TRANSLATIONS(...)
+#endif
+
 /*
  * mono_arch_patch_callsite:
  *
@@ -279,116 +293,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 +309,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 +333,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 +353,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 +366,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 +428,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 +459,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 +606,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 +633,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 +716,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 +805,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 +833,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 +849,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 +924,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 +950,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 +991,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..6e79922512c9f3b165e62ebace0af1d2de63b81f 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) {
+               x86_breakpoint (code);
+       } 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..7e2fe8d5af06259c940ffdc7fb1e1b1250b4d50a 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,22 +211,24 @@ 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
@@ -229,7 +237,17 @@ typedef struct _LogBuffer LogBuffer;
  * if mtype == TYPE_IMAGE
  *     [flags: uleb128] must be 0
  *     [name: string] image file name
- * if mtype == TYPE_THREAD
+ * 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
+ *     [flags: uleb128] must be 0
+ *     [domain: sleb128] domain id as pointer
+ * if mtype == TYPE_THREAD && (format_version < 11 || (format_version > 10 && exinfo == 0))
  *     [flags: uleb128] must be 0
  *     [name: string] thread name
  *
@@ -296,6 +314,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 +475,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 +906,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 +949,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 +969,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 +982,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 +1011,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 +1090,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 +1125,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 +1148,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 +1173,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 +1268,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 +1292,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 +1408,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 +1438,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 +1496,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 +1516,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 +1541,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 +1564,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 +1582,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 +1616,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 +1643,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 +1658,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 +1671,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 +1699,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 +1918,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 +2093,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 +2117,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 +2366,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 +2388,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 +2425,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 +2455,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 +2463,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 +2577,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 +2596,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 +2821,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 +2836,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 +2876,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 +2902,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 +3007,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 +3032,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 +3079,7 @@ perfcounters_emit (MonoProfiler *profiler)
        }
        EXIT_LOG (logbuffer);
 
-       safe_send (profiler, ensure_logbuf (0));
+       safe_send (profiler, logbuffer);
 }
 
 static gboolean
@@ -2508,14 +3135,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 +3173,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 +3193,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 +3305,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 +3330,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 +3355,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 +3378,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 +3417,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 +3428,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 +3446,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 +3474,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 +3487,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 +3507,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 +3519,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 +3543,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 +3632,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 +3654,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 +3677,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 +3700,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 +3775,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 +3788,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 +3805,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 +3842,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 +3863,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 +4019,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 +4173,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 +4312,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 +4325,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 +4525,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 +4713,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 410ba6aab0a0435b0e61a4f1cdded22bc4e2ad62..5e349f8416ee22539b4e1eee99f7e4599765cbd8 100644 (file)
@@ -88,8 +88,8 @@
        } while (0)
 
 /* MS_BLOCK_SIZE must be a multiple of the system pagesize, which for some
-   archs is 64k.  */
-#if defined(TARGET_POWERPC64) && _CALL_ELF == 2
+   architectures is 64k.  */
+#if defined(TARGET_POWERPC64)
 #define ARCH_MIN_MS_BLOCK_SIZE (64*1024)
 #define ARCH_MIN_MS_BLOCK_SIZE_SHIFT   16
 #endif
index cb332823789a01da7a3ac9ee0a2ad2b987d82b8a..15ff659f715e42ff5b6070425188447d9d500c95 100644 (file)
@@ -272,8 +272,6 @@ void sgen_client_describe_invalid_pointer (GCObject *ptr);
 #define BEGIN_PROTOCOL_ENTRY_HEAVY6(method,t1,f1,t2,f2,t3,f3,t4,f4,t5,f5,t6,f6) \
        void sgen_client_ ## method (t1 f1, t2 f2, t3 f3, t4 f4, t5 f5, t6 f6);
 
-#define FLUSH()
-
 #define DEFAULT_PRINT()
 #define CUSTOM_PRINT(_)
 
@@ -282,6 +280,7 @@ void sgen_client_describe_invalid_pointer (GCObject *ptr);
 #define IS_VTABLE_MATCH(_)
 
 #define END_PROTOCOL_ENTRY
+#define END_PROTOCOL_ENTRY_FLUSH
 #define END_PROTOCOL_ENTRY_HEAVY
 
 #include "sgen-protocol-def.h"
index 5b4f7fe3ce4851feb66109b5ff9af19532c51524..79e23ed453bea3003b1ed3947e7fdc786770ec73 100644 (file)
@@ -336,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
@@ -469,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);
 
@@ -623,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
@@ -679,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 ((GCObject*)cur);
+                       CHECK_CANARY_FOR_OBJECT ((GCObject*)cur, TRUE);
                        CANARIFY_SIZE (size);
                }
                cur += size;
@@ -844,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);
 
@@ -1041,7 +1041,7 @@ 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);
 
@@ -1216,7 +1216,7 @@ 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 a24badfaf7c185d8a870932a9ed92ad26f23face..ce9d71e04210d62a9314c702557225fee02fd53a 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,7 +484,7 @@ sgen_scan_area_with_callback (char *start, char *end, IterateObjectCallbackFunc
                }
 
                if (!sgen_client_object_is_array_fill ((GCObject*)obj)) {
-                       CHECK_CANARY_FOR_OBJECT ((GCObject*)obj);
+                       CHECK_CANARY_FOR_OBJECT ((GCObject*)obj, fail_on_canaries);
                        size = ALIGN_UP (safe_object_get_size ((GCObject*)obj));
                        callback ((GCObject*)obj, size, data);
                        CANARIFY_SIZE (size);
@@ -664,7 +664,7 @@ 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) {
@@ -822,7 +822,7 @@ sgen_conservatively_pin_objects_from (void **start, void **end, void *start_nurs
 {
        int count = 0;
 
-#ifdef VALGRIND_MAKE_MEM_DEFINED_IF_ADDRESSABLE
+#if defined(VALGRIND_MAKE_MEM_DEFINED_IF_ADDRESSABLE) && !defined(_WIN64)
        VALGRIND_MAKE_MEM_DEFINED_IF_ADDRESSABLE (start, (char*)end - (char*)start);
 #endif
 
@@ -885,20 +885,6 @@ pin_from_roots (void *start_nursery, void *end_nursery, ScanCopyContext ctx)
        sgen_client_scan_thread_data (start_nursery, end_nursery, FALSE, ctx);
 }
 
-static void
-unpin_objects_from_queue (SgenGrayQueue *queue)
-{
-       for (;;) {
-               GCObject *addr;
-               SgenDescriptor desc;
-               GRAY_OBJECT_DEQUEUE (queue, &addr, &desc);
-               if (!addr)
-                       break;
-               g_assert (SGEN_OBJECT_IS_PINNED (addr));
-               SGEN_UNPIN_OBJECT (addr);
-       }
-}
-
 static void
 single_arg_user_copy_or_mark (GCObject **obj, void *gc_data)
 {
@@ -1671,23 +1657,6 @@ collect_nursery (SgenGrayQueue *unpin_queue, gboolean finish_up_concurrent_mark)
        return needs_major;
 }
 
-static void
-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
-        * to use sgen_obj_get_descriptor_safe(), which masks out the vtable tag bits.
-        */
-       ctx->ops->scan_object (obj, sgen_obj_get_descriptor_safe (obj), ctx->queue);
-}
-
-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);
-}
-
 typedef enum {
        COPY_OR_MARK_FROM_ROOTS_SERIAL,
        COPY_OR_MARK_FROM_ROOTS_START_CONCURRENT,
@@ -1695,7 +1664,7 @@ typedef enum {
 } CopyOrMarkFromRootsMode;
 
 static void
-major_copy_or_mark_from_roots (size_t *old_next_pin_slot, CopyOrMarkFromRootsMode mode, gboolean scan_whole_nursery, SgenObjectOperations *object_ops)
+major_copy_or_mark_from_roots (size_t *old_next_pin_slot, CopyOrMarkFromRootsMode mode, SgenObjectOperations *object_ops)
 {
        LOSObject *bigobj;
        TV_DECLARE (atv);
@@ -1710,10 +1679,7 @@ major_copy_or_mark_from_roots (size_t *old_next_pin_slot, CopyOrMarkFromRootsMod
 
        SGEN_ASSERT (0, !!concurrent == !!concurrent_collection_in_progress, "We've been called with the wrong mode.");
 
-       if (scan_whole_nursery)
-               SGEN_ASSERT (0, mode == COPY_OR_MARK_FROM_ROOTS_FINISH_CONCURRENT, "Scanning whole nursery only makes sense when we're finishing a concurrent collection.");
-
-       if (concurrent) {
+       if (mode == COPY_OR_MARK_FROM_ROOTS_START_CONCURRENT) {
                /*This cleans up unused fragments */
                sgen_nursery_allocator_prepare_for_pinning ();
 
@@ -1760,19 +1726,6 @@ major_copy_or_mark_from_roots (size_t *old_next_pin_slot, CopyOrMarkFromRootsMod
        SGEN_LOG (6, "Collecting pinned addresses");
        pin_from_roots ((void*)lowest_heap_address, (void*)highest_heap_address, ctx);
 
-       if (mode != COPY_OR_MARK_FROM_ROOTS_START_CONCURRENT) {
-               if (major_collector.is_concurrent) {
-                       /*
-                        * The concurrent major collector cannot evict
-                        * yet, so we need to pin cemented objects to
-                        * not break some asserts.
-                        *
-                        * FIXME: We could evict now!
-                        */
-                       sgen_pin_cemented_objects ();
-               }
-       }
-
        sgen_optimize_pin_queue ();
 
        sgen_client_collecting_major_1 ();
@@ -1814,41 +1767,10 @@ major_copy_or_mark_from_roots (size_t *old_next_pin_slot, CopyOrMarkFromRootsMod
                        sgen_client_pinned_los_object (bigobj->data);
                }
        }
-       /* second pass for the sections */
 
-       /*
-        * Concurrent mark never follows references into the nursery.  In the start and
-        * finish pauses we must scan live nursery objects, though.
-        *
-        * In the finish pause we do this conservatively by scanning all nursery objects.
-        * Previously we would only scan pinned objects here.  We assumed that all objects
-        * that were pinned during the nursery collection immediately preceding this finish
-        * mark would be pinned again here.  Due to the way we get the stack end for the GC
-        * thread, however, that's not necessarily the case: we scan part of the stack used
-        * by the GC itself, which changes constantly, so pinning isn't entirely
-        * deterministic.
-        *
-        * The split nursery also complicates things because non-pinned objects can survive
-        * in the nursery.  That's why we need to do a full scan of the nursery for it, too.
-        *
-        * In the future we shouldn't do a preceding nursery collection at all and instead
-        * do the finish pause with promotion from the nursery.
-        *
-        * A further complication arises when we have late-pinned objects from the preceding
-        * nursery collection.  Those are the result of being out of memory when trying to
-        * evacuate objects.  They won't be found from the roots, so we just scan the whole
-        * nursery.
-        *
-        * Non-concurrent mark evacuates from the nursery, so it's
-        * sufficient to just scan pinned nursery objects.
-        */
-       if (scan_whole_nursery || mode == COPY_OR_MARK_FROM_ROOTS_FINISH_CONCURRENT || (concurrent && sgen_minor_collector.is_split)) {
-               scan_nursery_objects (ctx);
-       } else {
-               pin_objects_in_nursery (concurrent, ctx);
-               if (check_nursery_objects_pinned && !sgen_minor_collector.is_split)
-                       sgen_check_nursery_objects_pinned (mode != COPY_OR_MARK_FROM_ROOTS_START_CONCURRENT);
-       }
+       pin_objects_in_nursery (mode == COPY_OR_MARK_FROM_ROOTS_START_CONCURRENT, ctx);
+       if (check_nursery_objects_pinned && !sgen_minor_collector.is_split)
+               sgen_check_nursery_objects_pinned (mode != COPY_OR_MARK_FROM_ROOTS_START_CONCURRENT);
 
        major_collector.pin_objects (WORKERS_DISTRIBUTE_GRAY_QUEUE);
        if (old_next_pin_slot)
@@ -1913,22 +1835,30 @@ major_copy_or_mark_from_roots (size_t *old_next_pin_slot, CopyOrMarkFromRootsMod
 }
 
 static void
-major_finish_copy_or_mark (void)
+major_finish_copy_or_mark (CopyOrMarkFromRootsMode mode)
 {
-       if (!concurrent_collection_in_progress)
-               return;
-
-       /*
-        * Prepare the pin queue for the next collection.  Since pinning runs on the worker
-        * threads we must wait for the jobs to finish before we can reset it.
-        */
-       sgen_workers_wait_for_jobs_finished ();
-       sgen_finish_pinning ();
+       switch (mode) {
+       case COPY_OR_MARK_FROM_ROOTS_START_CONCURRENT:
+               /*
+                * Prepare the pin queue for the next collection.  Since pinning runs on the worker
+                * threads we must wait for the jobs to finish before we can reset it.
+                */
+               sgen_workers_wait_for_jobs_finished ();
+               sgen_finish_pinning ();
 
-       sgen_pin_stats_reset ();
+               sgen_pin_stats_reset ();
 
-       if (do_concurrent_checks)
-               sgen_debug_check_nursery_is_clean ();
+               if (do_concurrent_checks)
+                       sgen_debug_check_nursery_is_clean ();
+               break;
+       case COPY_OR_MARK_FROM_ROOTS_FINISH_CONCURRENT:
+               sgen_workers_wait_for_jobs_finished ();
+               break;
+       case COPY_OR_MARK_FROM_ROOTS_SERIAL:
+               break;
+       default:
+               g_assert_not_reached ();
+       }
 }
 
 static void
@@ -1942,7 +1872,8 @@ major_start_collection (gboolean concurrent, size_t *old_next_pin_slot)
 
        g_assert (sgen_section_gray_queue_is_empty (sgen_workers_get_distribute_section_gray_queue ()));
 
-       sgen_cement_reset ();
+       if (!concurrent)
+               sgen_cement_reset ();
 
        if (concurrent) {
                g_assert (major_collector.is_concurrent);
@@ -1969,15 +1900,16 @@ major_start_collection (gboolean concurrent, size_t *old_next_pin_slot)
        if (major_collector.start_major_collection)
                major_collector.start_major_collection ();
 
-       major_copy_or_mark_from_roots (old_next_pin_slot, concurrent ? COPY_OR_MARK_FROM_ROOTS_START_CONCURRENT : COPY_OR_MARK_FROM_ROOTS_SERIAL, FALSE, object_ops);
-       major_finish_copy_or_mark ();
+       major_copy_or_mark_from_roots (old_next_pin_slot, concurrent ? COPY_OR_MARK_FROM_ROOTS_START_CONCURRENT : COPY_OR_MARK_FROM_ROOTS_SERIAL, object_ops);
+       major_finish_copy_or_mark (concurrent ? COPY_OR_MARK_FROM_ROOTS_START_CONCURRENT : COPY_OR_MARK_FROM_ROOTS_SERIAL);
 }
 
 static void
-major_finish_collection (const char *reason, size_t old_next_pin_slot, gboolean forced, gboolean scan_whole_nursery)
+major_finish_collection (const char *reason, size_t old_next_pin_slot, gboolean forced)
 {
        ScannedObjectCounts counts;
        SgenObjectOperations *object_ops;
+       mword fragment_total;
        TV_DECLARE (atv);
        TV_DECLARE (btv);
 
@@ -1986,9 +1918,9 @@ major_finish_collection (const char *reason, size_t old_next_pin_slot, gboolean
        if (concurrent_collection_in_progress) {
                object_ops = &major_collector.major_ops_concurrent_finish;
 
-               major_copy_or_mark_from_roots (NULL, COPY_OR_MARK_FROM_ROOTS_FINISH_CONCURRENT, scan_whole_nursery, object_ops);
+               major_copy_or_mark_from_roots (NULL, COPY_OR_MARK_FROM_ROOTS_FINISH_CONCURRENT, object_ops);
 
-               major_finish_copy_or_mark ();
+               major_finish_copy_or_mark (COPY_OR_MARK_FROM_ROOTS_FINISH_CONCURRENT);
 
                sgen_workers_join ();
 
@@ -1997,11 +1929,7 @@ major_finish_collection (const char *reason, size_t old_next_pin_slot, gboolean
 #ifdef SGEN_DEBUG_INTERNAL_ALLOC
                main_gc_thread = NULL;
 #endif
-
-               if (do_concurrent_checks)
-                       sgen_debug_check_nursery_is_clean ();
        } else {
-               SGEN_ASSERT (0, !scan_whole_nursery, "scan_whole_nursery only applies to concurrent collections");
                object_ops = &major_collector.major_ops_serial;
        }
 
@@ -2045,22 +1973,25 @@ major_finish_collection (const char *reason, size_t old_next_pin_slot, gboolean
        reset_heap_boundaries ();
        sgen_update_heap_boundaries ((mword)sgen_get_nursery_start (), (mword)sgen_get_nursery_end ());
 
-       if (!concurrent_collection_in_progress) {
-               /* walk the pin_queue, build up the fragment list of free memory, unmark
-                * pinned objects as we go, memzero() the empty fragments so they are ready for the
-                * next allocations.
-                */
-               if (!sgen_build_nursery_fragments (nursery_section, NULL))
-                       degraded_mode = 1;
+       /* walk the pin_queue, build up the fragment list of free memory, unmark
+        * pinned objects as we go, memzero() the empty fragments so they are ready for the
+        * next allocations.
+        */
+       fragment_total = sgen_build_nursery_fragments (nursery_section, NULL);
+       if (!fragment_total)
+               degraded_mode = 1;
+       SGEN_LOG (4, "Free space in nursery after major %ld", fragment_total);
 
-               /* prepare the pin queue for the next collection */
-               sgen_finish_pinning ();
+       if (do_concurrent_checks && concurrent_collection_in_progress)
+               sgen_debug_check_nursery_is_clean ();
 
-               /* Clear TLABs for all threads */
-               sgen_clear_tlabs ();
+       /* prepare the pin queue for the next collection */
+       sgen_finish_pinning ();
 
-               sgen_pin_stats_reset ();
-       }
+       /* Clear TLABs for all threads */
+       sgen_clear_tlabs ();
+
+       sgen_pin_stats_reset ();
 
        sgen_cement_clear_below_threshold ();
 
@@ -2136,7 +2067,7 @@ major_do_collection (const char *reason, gboolean forced)
        TV_GETTIME (time_start);
 
        major_start_collection (FALSE, &old_next_pin_slot);
-       major_finish_collection (reason, old_next_pin_slot, forced, FALSE);
+       major_finish_collection (reason, old_next_pin_slot, forced);
 
        TV_GETTIME (time_end);
        gc_stats.major_gc_time += TV_ELAPSED (time_start, time_end);
@@ -2211,9 +2142,6 @@ major_finish_concurrent_collection (gboolean forced)
 {
        TV_DECLARE (total_start);
        TV_DECLARE (total_end);
-       gboolean late_pinned;
-       SgenGrayQueue unpin_queue;
-       memset (&unpin_queue, 0, sizeof (unpin_queue));
 
        TV_GETTIME (total_start);
 
@@ -2233,20 +2161,16 @@ major_finish_concurrent_collection (gboolean forced)
        major_collector.update_cardtable_mod_union ();
        sgen_los_update_cardtable_mod_union ();
 
-       late_pinned = collect_nursery (&unpin_queue, TRUE);
-
        if (mod_union_consistency_check)
                sgen_check_mod_union_consistency ();
 
        current_collection_generation = GENERATION_OLD;
-       major_finish_collection ("finishing", -1, forced, late_pinned);
+       sgen_cement_reset ();
+       major_finish_collection ("finishing", -1, forced);
 
        if (whole_heap_check_before_collection)
                sgen_check_whole_heap (FALSE);
 
-       unpin_objects_from_queue (&unpin_queue);
-       sgen_gray_object_queue_deinit (&unpin_queue);
-
        TV_GETTIME (total_end);
        gc_stats.major_gc_time += TV_ELAPSED (total_start, total_end) - TV_ELAPSED (last_minor_collection_start_tv, last_minor_collection_end_tv);
 
@@ -2744,7 +2668,7 @@ mono_gc_wbarrier_generic_store (gpointer ptr, GCObject* value)
 {
        SGEN_LOG (8, "Wbarrier store at %p to %p (%s)", ptr, value, value ? sgen_client_vtable_get_name (SGEN_LOAD_VTABLE (value)) : "null");
        SGEN_UPDATE_REFERENCE_ALLOW_NULL (ptr, value);
-       if (ptr_in_nursery (value))
+       if (ptr_in_nursery (value) || concurrent_collection_in_progress)
                mono_gc_wbarrier_generic_nostore (ptr);
        sgen_dummy_use (value);
 }
@@ -2761,7 +2685,7 @@ mono_gc_wbarrier_generic_store_atomic (gpointer ptr, GCObject *value)
 
        InterlockedWritePointer (ptr, value);
 
-       if (ptr_in_nursery (value))
+       if (ptr_in_nursery (value) || concurrent_collection_in_progress)
                mono_gc_wbarrier_generic_nostore (ptr);
 
        sgen_dummy_use (value);
@@ -3007,9 +2931,6 @@ sgen_gc_init (void)
 
        sgen_nursery_size = DEFAULT_NURSERY_SIZE;
 
-       if (major_collector.is_concurrent)
-               cement_enabled = FALSE;
-
        if (opts) {
                gboolean usage_printed = FALSE;
 
@@ -3166,11 +3087,6 @@ sgen_gc_init (void)
 
        alloc_nursery ();
 
-       if (major_collector.is_concurrent && cement_enabled) {
-               sgen_env_var_error (MONO_GC_PARAMS_NAME, "Ignoring.", "`cementing` is not supported on concurrent major collectors.");
-               cement_enabled = FALSE;
-       }
-
        sgen_cement_init (cement_enabled);
 
        if ((env = g_getenv (MONO_GC_DEBUG_NAME))) {
@@ -3243,6 +3159,7 @@ sgen_gc_init (void)
                                        sgen_env_var_error (MONO_GC_DEBUG_NAME, "Ignoring.", "`check-concurrent` only works with concurrent major collectors.");
                                        continue;
                                }
+                               nursery_clear_policy = CLEAR_AT_GC;
                                do_concurrent_checks = TRUE;
                        } else if (!strcmp (opt, "dump-nursery-at-minor-gc")) {
                                do_dump_nursery_content = TRUE;
index bc1b131f508a1a0adf327a9d07ad26a0f2a5a8e3..103a7fe5d9ffddf00da9a06cb2cf9bd41684293b 100644 (file)
@@ -98,7 +98,12 @@ struct _GCMemSection {
 
 extern LOCK_DECLARE (sgen_interruption_mutex);
 
-#define LOCK_INTERRUPTION mono_mutex_lock (&sgen_interruption_mutex)
+#define LOCK_INTERRUPTION do { \
+       MONO_TRY_BLOCKING       \
+       mono_mutex_lock (&sgen_interruption_mutex);     \
+       MONO_FINISH_TRY_BLOCKING        \
+} while (0)
+
 #define UNLOCK_INTERRUPTION mono_mutex_unlock (&sgen_interruption_mutex)
 
 /* FIXME: Use InterlockedAdd & InterlockedAdd64 to reduce the CAS cost. */
@@ -384,7 +389,7 @@ 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);
+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? */
 /*
@@ -1056,13 +1061,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 70cf34fb8a9a6e26828a8453f0af92181c063d5b..ea1ba4692ea64a635a639476aba2be9c22ba16d6 100644 (file)
@@ -92,6 +92,12 @@ static char *los_segment = NULL;
 static int los_segment_index = 0;
 #endif
 
+mword
+sgen_los_object_size (LOSObject *obj)
+{
+       return obj->size & ~1L;
+}
+
 #ifdef LOS_CONSISTENCY_CHECK
 static void
 los_consistency_check (void)
@@ -102,12 +108,13 @@ los_consistency_check (void)
        mword memory_usage = 0;
 
        for (obj = los_object_list; obj; obj = obj->next) {
-               char *end = obj->data + obj->size;
+               mword obj_size = sgen_los_object_size (obj);
+               char *end = obj->data + obj_size;
                int start_index, num_chunks;
 
-               memory_usage += obj->size;
+               memory_usage += obj_size;
 
-               if (obj->size > LOS_SECTION_OBJECT_LIMIT)
+               if (obj_size > LOS_SECTION_OBJECT_LIMIT)
                        continue;
 
                section = LOS_SECTION_FOR_OBJ (obj);
@@ -115,7 +122,7 @@ los_consistency_check (void)
                g_assert (end <= (char*)section + LOS_SECTION_SIZE);
 
                start_index = LOS_CHUNK_INDEX (obj, section);
-               num_chunks = (obj->size + sizeof (LOSObject) + LOS_CHUNK_SIZE - 1) >> LOS_CHUNK_BITS;
+               num_chunks = (obj_size + sizeof (LOSObject) + LOS_CHUNK_SIZE - 1) >> LOS_CHUNK_BITS;
                for (i = start_index; i < start_index + num_chunks; ++i)
                        g_assert (!section->free_chunk_map [i]);
        }
@@ -296,9 +303,9 @@ sgen_los_free_object (LOSObject *obj)
        SGEN_ASSERT (0, !obj->cardtable_mod_union, "We should never free a LOS object with a mod-union table.");
 
 #ifndef LOS_DUMMY
-       size_t size = obj->size;
-       SGEN_LOG (4, "Freed large object %p, size %lu", obj->data, (unsigned long)obj->size);
-       binary_protocol_empty (obj->data, obj->size);
+       mword size = sgen_los_object_size (obj);
+       SGEN_LOG (4, "Freed large object %p, size %lu", obj->data, (unsigned long)size);
+       binary_protocol_empty (obj->data, size);
 
        los_memory_usage -= size;
        los_num_objects--;
@@ -418,7 +425,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, (char*)bigobj->data, bigobj->size);
+                       sgen_card_table_free_mod_union (bigobj->cardtable_mod_union, (char*)bigobj->data, sgen_los_object_size (bigobj));
                        bigobj->cardtable_mod_union = NULL;
                }
 
@@ -502,7 +509,7 @@ sgen_ptr_is_in_los (char *ptr, char **start)
 
        *start = NULL;
        for (obj = los_object_list; obj; obj = obj->next) {
-               char *end = (char*)obj->data + obj->size;
+               char *end = (char*)obj->data + sgen_los_object_size (obj);
 
                if (ptr >= (char*)obj->data && ptr < end) {
                        *start = (char*)obj->data;
@@ -518,7 +525,7 @@ sgen_los_iterate_objects (IterateObjectCallbackFunc cb, void *user_data)
        LOSObject *obj;
 
        for (obj = los_object_list; obj; obj = obj->next)
-               cb (obj->data, obj->size, user_data);
+               cb (obj->data, sgen_los_object_size (obj), user_data);
 }
 
 gboolean
@@ -543,7 +550,7 @@ mono_sgen_los_describe_pointer (char *ptr)
                mword size;
                gboolean pinned;
 
-               if ((char*)obj->data > ptr || (char*)obj->data + obj->size <= ptr)
+               if ((char*)obj->data > ptr || (char*)obj->data + sgen_los_object_size (obj) <= ptr)
                        continue;
 
                size = sgen_los_object_size (obj);
@@ -573,24 +580,25 @@ sgen_los_iterate_live_block_ranges (sgen_cardtable_block_callback callback)
        for (obj = los_object_list; obj; obj = obj->next) {
                GCVTable vt = SGEN_LOAD_VTABLE (obj->data);
                if (SGEN_VTABLE_HAS_REFERENCES (vt))
-                       callback ((mword)obj->data, (mword)obj->size);
+                       callback ((mword)obj->data, sgen_los_object_size (obj));
        }
 }
 
 static guint8*
 get_cardtable_mod_union_for_object (LOSObject *obj)
 {
+       mword size = sgen_los_object_size (obj);
        guint8 *mod_union = obj->cardtable_mod_union;
        guint8 *other;
        if (mod_union)
                return mod_union;
-       mod_union = sgen_card_table_alloc_mod_union ((char*)obj->data, obj->size);
+       mod_union = sgen_card_table_alloc_mod_union ((char*)obj->data, 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, (char*)obj->data, obj->size);
+       sgen_card_table_free_mod_union (mod_union, (char*)obj->data, size);
        return other;
 }
 
@@ -615,7 +623,7 @@ sgen_los_scan_card_table (gboolean mod_union, ScanCopyContext ctx)
                        cards = NULL;
                }
 
-               sgen_cardtable_scan_object (obj->data, obj->size, cards, mod_union, ctx);
+               sgen_cardtable_scan_object (obj->data, sgen_los_object_size (obj), cards, mod_union, ctx);
        }
 }
 
@@ -629,7 +637,7 @@ sgen_los_count_cards (long long *num_total_cards, long long *num_marked_cards)
        for (obj = los_object_list; obj; obj = obj->next) {
                int i;
                guint8 *cards = sgen_card_table_get_card_scan_address ((mword) obj->data);
-               guint8 *cards_end = sgen_card_table_get_card_scan_address ((mword) obj->data + obj->size - 1);
+               guint8 *cards_end = sgen_card_table_get_card_scan_address ((mword) obj->data + sgen_los_object_size (obj) - 1);
                mword num_cards = (cards_end - cards) + 1;
 
                if (!SGEN_OBJECT_HAS_REFERENCES (obj->data))
@@ -655,16 +663,10 @@ 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),
-                               (char*)obj->data, obj->size, NULL);
+                               (char*)obj->data, sgen_los_object_size (obj), NULL);
        }
 }
 
-mword
-sgen_los_object_size (LOSObject *obj)
-{
-       return obj->size & ~1L;
-}
-
 LOSObject*
 sgen_los_header_for_object (GCObject *data)
 {
index b2061da8ca18b15dce41354c0c054571493bf156..1ed9eb8a4bb454b793c29918310c8e5970014955 100644 (file)
@@ -85,8 +85,19 @@ major_scan_object_no_mark_concurrent (GCObject *start, SgenDescriptor desc, Sgen
        major_scan_object_no_mark_concurrent_anywhere (start, desc, queue);
 }
 
-#undef ADD_TO_GLOBAL_REMSET
-#define ADD_TO_GLOBAL_REMSET(object,ptr,target)        sgen_add_to_global_remset ((ptr), (target))
+#undef HANDLE_PTR
+#define HANDLE_PTR(ptr,obj)     do {                                    \
+                void *__old = *(ptr);                                   \
+                binary_protocol_scan_process_reference ((obj), (ptr), __old); \
+                if (__old) {                                            \
+                        gboolean __still_in_nursery = major_copy_or_mark_object_no_evacuation ((ptr), __old, queue); \
+                        if (G_UNLIKELY (__still_in_nursery && !sgen_ptr_in_nursery ((ptr)) && !SGEN_OBJECT_IS_CEMENTED (*(ptr)))) { \
+                                void *__copy = *(ptr);                  \
+                                sgen_add_to_global_remset ((ptr), __copy); \
+                        }                                              \
+                }                                                       \
+        } while (0)
+
 
 static void
 major_scan_vtype_concurrent_finish (GCObject *full_object, char *start, SgenDescriptor desc, SgenGrayQueue *queue BINARY_PROTOCOL_ARG (size_t size))
index fe3ab1a1742b5bc311b41e7cb65aca8a7d3ad471..96444b1dc60d066f17aaf60924ba950538269c7a 100644 (file)
@@ -739,7 +739,11 @@ free_pinned_object (GCObject *obj, size_t size)
 static GCObject*
 major_alloc_degraded (GCVTable vtable, size_t size)
 {
-       GCObject *obj = alloc_obj (vtable, size, FALSE, SGEN_VTABLE_HAS_REFERENCES (vtable));
+       GCObject *obj;
+
+       major_finish_sweep_checking ();
+
+       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);
index c546bac45c895b4aa2f07b9d35b47e5f31845a12..ca1e053e64ba01fef649be738e5875dc384f8320 100644 (file)
@@ -6,20 +6,18 @@ IS_VTABLE_MATCH (FALSE)
 END_PROTOCOL_ENTRY
 
 BEGIN_PROTOCOL_ENTRY2 (binary_protocol_collection_begin, TYPE_INT, index, TYPE_INT, generation)
-FLUSH ()
 DEFAULT_PRINT ()
 IS_ALWAYS_MATCH (TRUE)
 MATCH_INDEX (BINARY_PROTOCOL_MATCH)
 IS_VTABLE_MATCH (FALSE)
-END_PROTOCOL_ENTRY
+END_PROTOCOL_ENTRY_FLUSH
 
 BEGIN_PROTOCOL_ENTRY4 (binary_protocol_collection_end, TYPE_INT, index, TYPE_INT, generation, TYPE_LONGLONG, num_scanned_objects, TYPE_LONGLONG, num_unique_scanned_objects)
-FLUSH()
 CUSTOM_PRINT (printf ("%d generation %d scanned %lld unique %lld %0.2f%%", entry->index, entry->generation, entry->num_scanned_objects, entry->num_unique_scanned_objects, entry->num_unique_scanned_objects ? (100.0 * (double) entry->num_scanned_objects / (double) entry->num_unique_scanned_objects) : 0.0))
 IS_ALWAYS_MATCH (TRUE)
 MATCH_INDEX (BINARY_PROTOCOL_MATCH)
 IS_VTABLE_MATCH (FALSE)
-END_PROTOCOL_ENTRY
+END_PROTOCOL_ENTRY_FLUSH
 
 BEGIN_PROTOCOL_ENTRY0 (binary_protocol_concurrent_start)
 DEFAULT_PRINT ()
@@ -373,8 +371,6 @@ END_PROTOCOL_ENTRY_HEAVY
 #undef BEGIN_PROTOCOL_ENTRY_HEAVY5
 #undef BEGIN_PROTOCOL_ENTRY_HEAVY6
 
-#undef FLUSH
-
 #undef DEFAULT_PRINT
 #undef CUSTOM_PRINT
 
@@ -383,4 +379,5 @@ END_PROTOCOL_ENTRY_HEAVY
 #undef IS_VTABLE_MATCH
 
 #undef END_PROTOCOL_ENTRY
+#undef END_PROTOCOL_ENTRY_FLUSH
 #undef END_PROTOCOL_ENTRY_HEAVY
index cb512fedf4fb503bc711709d5237d3134544dad0..4ea1ac391c9a4e083a5fa3f842d1e8ed3548ff53 100644 (file)
@@ -386,9 +386,6 @@ protocol_entry (unsigned char type, gpointer data, int size)
                int __size = sizeof (PROTOCOL_STRUCT(method)); \
                CLIENT_PROTOCOL_NAME (method) (f1, f2, f3, f4, f5, f6);
 
-#define FLUSH() \
-               binary_protocol_flush_buffers (FALSE);
-
 #define DEFAULT_PRINT()
 #define CUSTOM_PRINT(_)
 
@@ -400,6 +397,11 @@ protocol_entry (unsigned char type, gpointer data, int size)
                protocol_entry (__type, __data, __size); \
        }
 
+#define END_PROTOCOL_ENTRY_FLUSH \
+               protocol_entry (__type, __data, __size); \
+               binary_protocol_flush_buffers (FALSE); \
+       }
+
 #ifdef SGEN_HEAVY_BINARY_PROTOCOL
 #define BEGIN_PROTOCOL_ENTRY_HEAVY0(method) \
        BEGIN_PROTOCOL_ENTRY0 (method)
index 2b7176e5f2d062118f01c0c1cc51b24e616d0bbc..220418e8167deea8101378669fffc325ee38be66 100644 (file)
@@ -55,8 +55,6 @@ enum {
 #define BEGIN_PROTOCOL_ENTRY_HEAVY5(method,t1,f1,t2,f2,t3,f3,t4,f4,t5,f5) PROTOCOL_ID(method),
 #define BEGIN_PROTOCOL_ENTRY_HEAVY6(method,t1,f1,t2,f2,t3,f3,t4,f4,t5,f5,t6,f6) PROTOCOL_ID(method),
 
-#define FLUSH()
-
 #define DEFAULT_PRINT()
 #define CUSTOM_PRINT(_)
 
@@ -65,6 +63,7 @@ enum {
 #define IS_VTABLE_MATCH(_)
 
 #define END_PROTOCOL_ENTRY
+#define END_PROTOCOL_ENTRY_FLUSH
 #define END_PROTOCOL_ENTRY_HEAVY
 
 #include "sgen-protocol-def.h"
@@ -126,8 +125,6 @@ enum {
 #define BEGIN_PROTOCOL_ENTRY_HEAVY6(method,t1,f1,t2,f2,t3,f3,t4,f4,t5,f5,t6,f6) \
        BEGIN_PROTOCOL_ENTRY6 (method,t1,f1,t2,f2,t3,f3,t4,f4,t5,f5,t6,f6)
 
-#define FLUSH()
-
 #define DEFAULT_PRINT()
 #define CUSTOM_PRINT(_)
 
@@ -136,6 +133,7 @@ enum {
 #define IS_VTABLE_MATCH(_)
 
 #define END_PROTOCOL_ENTRY
+#define END_PROTOCOL_ENTRY_FLUSH
 #define END_PROTOCOL_ENTRY_HEAVY
 
 #include "sgen-protocol-def.h"
@@ -198,8 +196,6 @@ void binary_protocol_flush_buffers (gboolean force);
        static inline void method (t1 f1, t2 f2, t3 f3, t4 f4, t5 f5, t6 f6) {}
 #endif
 
-#define FLUSH()
-
 #define DEFAULT_PRINT()
 #define CUSTOM_PRINT(_)
 
@@ -208,6 +204,7 @@ void binary_protocol_flush_buffers (gboolean force);
 #define IS_VTABLE_MATCH(_)
 
 #define END_PROTOCOL_ENTRY
+#define END_PROTOCOL_ENTRY_FLUSH
 #define END_PROTOCOL_ENTRY_HEAVY
 
 #include "sgen-protocol-def.h"
index d965c177bb3d62a4dd05bdb14334546b08a8c62f..a2f9a63f103df7f67c0d70bb8596d5e306ca318e 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            \
@@ -328,6 +331,7 @@ BASE_TEST_CS_SRC=           \
        bug-80392.2.cs          \
        dynamic-method-access.2.cs      \
        dynamic-method-finalize.2.cs    \
+       dynamic-method-stack-traces.cs  \
        bug-82194.2.cs  \
        anonarray.2.cs  \
        ienumerator-interfaces.2.cs     \
@@ -944,6 +948,7 @@ SGEN_TESTS =        \
        sgen-descriptors.exe    \
        sgen-gshared-vtype.exe  \
        sgen-domain-unload.exe  \
+       sgen-domain-unload-2.exe        \
        sgen-weakref-stress.exe \
        sgen-cementing-stress.exe       \
        sgen-case-23400.exe     \
@@ -1091,7 +1096,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    \
@@ -1346,10 +1351,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
diff --git a/mono/tests/dynamic-method-stack-traces.cs b/mono/tests/dynamic-method-stack-traces.cs
new file mode 100644 (file)
index 0000000..965c525
--- /dev/null
@@ -0,0 +1,86 @@
+using System;
+using System.Threading;
+using System.Reflection;
+using System.Reflection.Emit;
+using System.Runtime.ExceptionServices;
+using System.Diagnostics;
+
+public class A
+{
+       public static Exception Caught;
+
+       public static void ThrowMe()
+       {
+               Exception e;
+               try
+               {
+                       throw new Exception("test");
+               }
+               catch (Exception e2)
+               {
+                       e = e2;
+               }
+
+               var edi = ExceptionDispatchInfo.Capture(e);
+
+               edi.Throw();
+       }
+
+       public static void Handler(Exception e)
+       {
+               Caught = e;
+       }
+}
+
+public class Example
+{
+       public static int Main()
+       {
+               TT();
+               string expected = A.Caught.StackTrace.ToString ();
+
+               for (int i = 0; i < 1000; ++i) {
+                       Thread t = new Thread (delegate () {
+                                       TT ();
+                               });
+                       t.Start ();
+                       t.Join ();
+                       GC.Collect ();
+                       GC.WaitForPendingFinalizers ();
+                       if (A.Caught.StackTrace != expected) {
+                               Console.WriteLine ("FAILED");
+                               return 1;
+                       }
+               }
+               return 0;
+       }
+
+       static void TT()
+       {
+               DynamicMethod multiplyHidden = new DynamicMethod(
+                       "",
+                       typeof(void), new[] { typeof(int) }, typeof(Example));
+
+               ILGenerator ig = multiplyHidden.GetILGenerator();
+
+               ig.BeginExceptionBlock();
+
+               ig.Emit(OpCodes.Call, typeof(A).GetMethod("ThrowMe"));
+
+               ig.BeginCatchBlock(typeof(Exception));
+
+               ig.Emit(OpCodes.Call, typeof(A).GetMethod("Handler"));
+
+               ig.EndExceptionBlock();
+
+               ig.Emit(OpCodes.Ret);
+
+               var invoke = (Action<int>)
+                       multiplyHidden.CreateDelegate(
+                               typeof(Action<int>)
+
+                       );
+
+               invoke(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..85b35589de88301b046abab0954aa49ad6ee0f52 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;
@@ -3815,7 +3825,7 @@ test_method_thunk (int test_id, gpointer test_method_handle, gpointer create_obj
                if (a1->A != 42)
                        return 8;
 
-               if (!fabs (a1->B - 3.1415) < 0.001)
+               if (!(fabs (a1->B - 3.1415) < 0.001))
                        return 9;
 
                break;
@@ -3842,7 +3852,7 @@ test_method_thunk (int test_id, gpointer test_method_handle, gpointer create_obj
                if (a1->A != 42)
                        return 5;
 
-               if (!fabs (a1->B - 3.1415) < 0.001)
+               if (!(fabs (a1->B - 3.1415) < 0.001))
                        return 6;
 
                break;
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;
diff --git a/mono/tests/suspend-stress-test.cs b/mono/tests/suspend-stress-test.cs
new file mode 100644 (file)
index 0000000..3289a3e
--- /dev/null
@@ -0,0 +1,223 @@
+using System;
+using System.Collections.Generic;
+using System.Threading;
+using System.Diagnostics;
+using System.IO;
+
+/*
+TODO
+       Some tests are much more expensive than others (on cycles and synchronization), add a calibration step to figure out duration.
+       Some tests are more disrruptive than others, add weights to tests so some are picked more frequently.
+       The workload is too static, add some background generation noise tests.
+       The workload is too stable, add perturbance on the number of available tasks.
+       Fuse threadpool with non threadpool workloads by firing some tasks as separate threads.
+       Add an external watchdog so we can run the stress test in a loop for very long times and get results out of it.
+       We don't have enough tests, add one per locking operation we got in the runtime.
+
+Missing tests:
+       Ephemerons
+       Dynamic methods
+       Regular SRE
+       Remoting / Transparent Proxies
+       Context locals
+       Thread locals
+       Finalizers
+       Async socket IO
+*/
+
+class Driver {
+       static bool stop_please;
+       const int TEST_DURATION = 1000;
+
+       static object very_contended_object = new object ();
+
+       static bool Ok (ref int loops) {
+               if (loops == -1)
+                       return !stop_please;
+               if (loops == 0)
+                       return false;
+               loops--;
+               return true;
+
+       }
+       static void MonitorEnterInALoop (int loops)
+       {
+               while (Ok (ref loops)) {
+                       if (Monitor.TryEnter (very_contended_object, 100)) {
+                               Thread.Sleep (30);
+                               Monitor.Exit (very_contended_object);
+                       }
+               }
+       }
+
+       static void AllocObjectInALoop (int loops) {
+               while (Ok (ref loops)) {
+                       var a = new object ();
+                       var b = new byte [100];
+               }
+       }
+
+       static void AllocDomainInALoop (int loops) {
+               int count = 0;
+               while (Ok (ref loops)) {
+                       var a = AppDomain.CreateDomain ("test_domain_" + ++count);
+                       AppDomain.Unload (a);
+               }
+       }
+
+       static void FileIO (int loops) {
+               while (Ok (ref loops)) {
+                       var dir = Path.GetTempFileName () + "_" + Thread.CurrentThread.ManagedThreadId;
+                       Directory.CreateDirectory (dir);
+                       Directory.Delete (dir);
+                       
+               }
+       }
+
+    static void Timer_Elapsed(object sender, EventArgs e)
+    {
+        HashSet<string> h = new HashSet<string>();
+        for (int j = 0; j < 500; j++)
+        {
+            h.Add(""+j+""+j);
+        }
+    }
+
+       //From sgen-new-threads-dont-join-stw
+       static void TimerStress (int loops) {
+               while (Ok (ref loops)) {
+                       System.Timers.Timer timer = new System.Timers.Timer();
+            timer.Elapsed += Timer_Elapsed;
+            timer.AutoReset = false;
+            timer.Interval = 500;
+            timer.Start ();
+               }
+       }
+
+       //from sgen-weakref-stress
+       static void WeakRefStress (int loops) {
+               while (Ok (ref loops)) {
+                  for (int j = 0; j < 500; ++j) {
+                      new WeakReference (new object ());
+                  }
+               }
+       }
+       static Tuple<Action<int>,string>[] available_tests = new [] {
+               Tuple.Create (new Action<int> (MonitorEnterInALoop), "monitor"),
+               Tuple.Create (new Action<int> (AllocObjectInALoop), "alloc"),
+               Tuple.Create (new Action<int> (AllocDomainInALoop), "appdomain"),
+               Tuple.Create (new Action<int> (FileIO), "file-io"),
+               Tuple.Create (new Action<int> (TimerStress), "timers"),
+               Tuple.Create (new Action<int> (WeakRefStress), "weakref"),
+       };
+
+       static void GcPump (int timeInMillis)
+       {
+               var sw = Stopwatch.StartNew ();
+               do {
+                       GC.Collect ();
+                       Thread.Sleep (1);
+               } while (sw.ElapsedMilliseconds < timeInMillis);
+               stop_please = true;
+       }
+
+       const int minTpSteps = 1;
+       const int maxTpSteps = 30;
+
+       static void QueueStuffUsingTpl (int threadCount) {
+               int pendingJobs = 0;
+               int maxPending = threadCount * 2;
+               int generatorIdx = 0;
+               Random rand = new Random (0);
+
+               while (!stop_please) {
+                       while (pendingJobs < maxPending) {
+                               var task = available_tests [generatorIdx++ % available_tests.Length].Item1;
+                               int steps = rand.Next(minTpSteps, maxTpSteps);
+                               ThreadPool.QueueUserWorkItem (_ => {
+                                       task (steps);
+                                       Interlocked.Decrement (ref pendingJobs);
+                               });
+                               Interlocked.Increment (ref pendingJobs);
+                       }
+                       Thread.Sleep (1);
+               }
+               while (pendingJobs > 0)
+                       Thread.Sleep (1);
+       }
+
+       static void DynamicLoadGenerator (int threadCount, int timeInMillis) {
+               var t = new Thread (() => QueueStuffUsingTpl (threadCount));
+               t.Start ();
+
+               GcPump (timeInMillis);
+
+               t.Join ();
+       }
+
+       static void StaticLoadGenerator (int threadCount, int testIndex, int timeInMillis) {
+               List<Thread> threads = new List<Thread> ();
+
+               for (int i = 0; i < threadCount; ++i) {
+                       var dele = (testIndex >= 0 ? available_tests [testIndex] : available_tests [i % available_tests.Length]).Item1;
+                       var t = new Thread (() => dele (-1));
+                       t.Start ();
+                       threads.Add (t);
+               }
+
+               GcPump (timeInMillis);
+
+               foreach (var t in threads)
+                       t.Join ();
+       }
+       
+       static int ParseTestName (string name) {
+               for (int i = 0; i < available_tests.Length; ++i) {
+                       if (available_tests[i].Item2 == name)
+                               return i;
+               }
+               Console.WriteLine ("Invalid test name {0}", name);
+               Environment.Exit (2);
+               return -1;
+       }
+
+       static int Main (string[] args) {
+               int threadCount = Environment.ProcessorCount - 1;
+               int timeInMillis = TEST_DURATION;
+               int testIndex = -1;
+               bool tpLoadGenerator = false;
+               string testName = "static";
+               
+
+               for (int j = 0; j < args.Length;) {
+                       if ((args [j] == "--duration") || (args [j] == "-d")) {
+                               timeInMillis = Int32.Parse (args [j + 1]);
+                               j += 2;
+                       } else if ((args [j] == "--test") || (args [j] == "-t")) {
+                               if (args [j + 1] == "static")
+                                       testIndex = -1;
+                               else if (args [j + 1] == "tp")
+                                       tpLoadGenerator = true;
+                               else
+                                       testIndex = ParseTestName (testName = args [j + 1]);
+                               j += 2;
+                       } else  if ((args [j] == "--thread-count") || (args [j] == "-tc")) {
+                               threadCount = Int32.Parse (args [j + 1]);
+                               j += 2;
+                       }else {
+                               Console.WriteLine ("Unknown argument: " + args [j]);
+                               return 1;
+                       }
+        }
+
+               if (tpLoadGenerator) {
+                       Console.WriteLine ("tp window {0} duration {1}", threadCount, timeInMillis);
+                       DynamicLoadGenerator (threadCount, timeInMillis);
+               } else {
+                       Console.WriteLine ("thread count {0} duration {1} test {2}", threadCount, timeInMillis, testName);
+                       StaticLoadGenerator (threadCount, testIndex, timeInMillis);
+               }
+
+               return 0;
+       }
+}
\ No newline at end of file
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..e1b1034327e1db36902cac3fce48c32a566a99b7 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          \
@@ -108,6 +109,7 @@ monoutils_sources = \
        mono-threads-openbsd.c  \
        mono-threads-android.c  \
        mono-threads.h  \
+       mono-threads-api.h      \
        mono-threads-coop.c     \
        mono-threads-coop.h     \
        mono-tls.h      \
@@ -138,7 +140,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 f32e14c7cfe0f0b419affe2e45a5c6477459d3ea..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,16 +145,21 @@ 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, state, count);
 #else
        return thread_set_state (thread, ARM_THREAD_STATE, state, count);
 #endif
+#endif
 }
 
 void *
@@ -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..82ee789dd1d02bf048e4fe48cf2c087ef3216f33 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))
@@ -317,8 +350,8 @@ typedef struct {
                : "x30", "memory"                       \
        );                                                              \
        __asm__ __volatile__( \
-               "adr %0, L0\n" \
-               "L0:\n" \
+               "adr %0, L0%=\n" \
+               "L0%=:\n"       \
                : "=r" (ctx.pc)         \
                :                                       \
                : "memory"                       \
@@ -335,6 +368,100 @@ typedef struct {
  * We might also want to add an additional field to propagate
  * the original context from the signal handler.
  */
+#ifdef __mono_ppc64__
+
+typedef struct {
+       gulong sc_ir;          // pc 
+       gulong sc_sp;          // r1
+       mgreg_t regs [32];
+       double fregs [32];
+} MonoContext;
+
+/* we have the stack pointer, not the base pointer in sigcontext */
+#define MONO_CONTEXT_SET_IP(ctx,ip) do { (ctx)->sc_ir = (gulong)ip; } while (0);
+#define MONO_CONTEXT_SET_BP(ctx,bp) do { (ctx)->sc_sp = (gulong)bp; } while (0);
+#define MONO_CONTEXT_SET_SP(ctx,sp) do { (ctx)->sc_sp = (gulong)sp; } while (0);
+
+#define MONO_CONTEXT_GET_IP(ctx) ((gpointer)((ctx)->sc_ir))
+#define MONO_CONTEXT_GET_BP(ctx) ((gpointer)((ctx)->regs [ppc_r31-13]))
+#define MONO_CONTEXT_GET_SP(ctx) ((gpointer)((ctx)->sc_sp))
+
+#define MONO_CONTEXT_GET_CURRENT(ctx)  \
+       __asm__ __volatile__(   \
+               "std 0, 0(%0)\n"        \
+               "std 1, 8(%0)\n"        \
+               "std 0, 8*0+16(%0)\n"   \
+               "std 1, 8*1+16(%0)\n"   \
+               "std 2, 8*2+16(%0)\n"   \
+               "std 3, 8*3+16(%0)\n"   \
+               "std 4, 8*4+16(%0)\n"   \
+               "std 5, 8*5+16(%0)\n"   \
+               "std 6, 8*6+16(%0)\n"   \
+               "std 7, 8*7+16(%0)\n"   \
+               "std 8, 8*8+16(%0)\n"   \
+               "std 9, 8*9+16(%0)\n"   \
+               "std 10, 8*10+16(%0)\n" \
+               "std 11, 8*11+16(%0)\n" \
+               "std 12, 8*12+16(%0)\n" \
+               "std 13, 8*13+16(%0)\n" \
+               "std 14, 8*14+16(%0)\n" \
+               "std 15, 8*15+16(%0)\n" \
+               "std 16, 8*16+16(%0)\n" \
+               "std 17, 8*17+16(%0)\n" \
+               "std 18, 8*18+16(%0)\n" \
+               "std 19, 8*19+16(%0)\n" \
+               "std 20, 8*20+16(%0)\n" \
+               "std 21, 8*21+16(%0)\n" \
+               "std 22, 8*22+16(%0)\n" \
+               "std 23, 8*23+16(%0)\n" \
+               "std 24, 8*24+16(%0)\n" \
+               "std 25, 8*25+16(%0)\n" \
+               "std 26, 8*26+16(%0)\n" \
+               "std 27, 8*27+16(%0)\n" \
+               "std 28, 8*28+16(%0)\n" \
+               "std 29, 8*29+16(%0)\n" \
+               "std 30, 8*30+16(%0)\n" \
+               "std 31, 8*31+16(%0)\n" \
+               "stfd 0, 8*0+8*32+16(%0)\n"     \
+               "stfd 1, 8*1+8*32+16(%0)\n"     \
+               "stfd 2, 8*2+8*32+16(%0)\n"     \
+               "stfd 3, 8*3+8*32+16(%0)\n"     \
+               "stfd 4, 8*4+8*32+16(%0)\n"     \
+               "stfd 5, 8*5+8*32+16(%0)\n"     \
+               "stfd 6, 8*6+8*32+16(%0)\n"     \
+               "stfd 7, 8*7+8*32+16(%0)\n"     \
+               "stfd 8, 8*8+8*32+16(%0)\n"     \
+               "stfd 9, 8*9+8*32+16(%0)\n"     \
+               "stfd 10, 8*10+8*32+16(%0)\n"   \
+               "stfd 11, 8*11+8*32+16(%0)\n"   \
+               "stfd 12, 8*12+8*32+16(%0)\n"   \
+               "stfd 13, 8*13+8*32+16(%0)\n"   \
+               "stfd 14, 8*14+8*32+16(%0)\n"   \
+               "stfd 15, 8*15+8*32+16(%0)\n"   \
+               "stfd 16, 8*16+8*32+16(%0)\n"   \
+               "stfd 17, 8*17+8*32+16(%0)\n"   \
+               "stfd 18, 8*18+8*32+16(%0)\n"   \
+               "stfd 19, 8*19+8*32+16(%0)\n"   \
+               "stfd 20, 8*20+8*32+16(%0)\n"   \
+               "stfd 21, 8*21+8*32+16(%0)\n"   \
+               "stfd 22, 8*22+8*32+16(%0)\n"   \
+               "stfd 23, 8*23+8*32+16(%0)\n"   \
+               "stfd 24, 8*24+8*32+16(%0)\n"   \
+               "stfd 25, 8*25+8*32+16(%0)\n"   \
+               "stfd 26, 8*26+8*32+16(%0)\n"   \
+               "stfd 27, 8*27+8*32+16(%0)\n"   \
+               "stfd 28, 8*28+8*32+16(%0)\n"   \
+               "stfd 29, 8*29+8*32+16(%0)\n"   \
+               "stfd 30, 8*30+8*32+16(%0)\n"   \
+               "stfd 31, 8*31+8*32+16(%0)\n"   \
+               : : "r" (&(ctx))        \
+               : "memory"                      \
+       )
+
+#define MONO_ARCH_HAS_MONO_CONTEXT 1
+
+#else 
+
 typedef struct {
        gulong sc_ir;          // pc 
        gulong sc_sp;          // r1
@@ -351,6 +478,7 @@ typedef struct {
 #define MONO_CONTEXT_GET_IP(ctx) ((gpointer)((ctx)->sc_ir))
 #define MONO_CONTEXT_GET_BP(ctx) ((gpointer)((ctx)->regs [ppc_r31-13]))
 #define MONO_CONTEXT_GET_SP(ctx) ((gpointer)((ctx)->sc_sp))
+#endif
 
 #elif defined(__sparc__) || defined(sparc) /* defined(__mono_ppc__) */
 
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..ee88665ae6c185ceaf09da5d3b9ba6edf887d5d6 100644 (file)
@@ -14,13 +14,17 @@ typedef enum {
         MONO_TRACE_CONFIG              = (1<<4),
        MONO_TRACE_AOT                  = (1<<5),
        MONO_TRACE_SECURITY             = (1<<6),
+       MONO_TRACE_THREADPOOL           = (1<<7),
+       MONO_TRACE_IO_THREADPOOL        = (1<<8),
        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 |
+                                         MONO_TRACE_IO_THREADPOOL
 } MonoTraceMask;
 
 void 
index 73c54f17993fee0e5cb6eb43300d85474c304ac0..0b2c8a7f69b4e070157089cf25bb0d0b42a68a8f 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", "io-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_IO_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 8e051abcdbf343b65b6dc97804b24ccc336ec520..78a4f140cff747d7b4ef911d3c3e74988fd90c87 100644 (file)
@@ -114,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 0b52af568c009f1caf7e9618e5f88fd24383cab0..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,10 +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);
 
-       if (cpu_usage < 0 || cpu_usage > 100) {
-               g_error ("incorrect cpu usage %d, cpu_busy_time %lld cpu_total_time %lld\n", cpu_usage, cpu_busy_time, cpu_total_time);
-               return -1;
-       }
-
        return cpu_usage;
 }
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 {
diff --git a/mono/utils/mono-threads-api.h b/mono/utils/mono-threads-api.h
new file mode 100644 (file)
index 0000000..f94fd66
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * mono-threads-api.h: Low level access to thread state.
+ *
+ * Author:
+ *     Rodrigo Kumpera (kumpera@gmail.com)
+ *
+ * (C) 2015 Xamarin
+ */
+
+#ifndef __MONO_THREADS_API_H__
+#define __MONO_THREADS_API_H__
+
+#include <mono/utils/mono-publib.h>
+MONO_BEGIN_DECLS
+
+/*
+>>>> WARNING WARNING WARNING <<<<
+
+This API is experimental. It will eventually be required to properly use the rest of the raw-omp embedding API.
+*/
+
+/* Don't use those directly, use the MONO_(BEGIN|END)_EFRAME */
+MONO_API void* mono_threads_enter_gc_unsafe_region (void);
+MONO_API void mono_threads_exit_gc_unsafe_region (void *region_cookie);
+
+/*
+Use those macros to limit regions of code that interact with managed memory or use the embedding API.
+This will put the current thread in GC Unsafe mode.
+
+For further explanation of what can and can't be done in GC unsafe mode:
+http://www.mono-project.com/docs/advanced/runtime/docs/coop-suspend/#gc-unsafe-mode
+
+*/
+#define MONO_BEGIN_EFRAME { void *__region_cookie = mono_threads_enter_gc_unsafe_region ();
+#define MONO_END_EFRAME mono_threads_exit_gc_unsafe_region (__region_cookie); }
+
+
+MONO_END_DECLS
+
+#endif /* __MONO_LOGGER_H__ */
index b44719109ffc277ad377942a4b219b21a92d8408..4c9826aa767dd4ce4c61080dfc785706744cf40f 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 TARGET_OSX
+#include <mono/utils/mach-support.h>
+#endif
 
 #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 +43,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 +64,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 +74,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 +124,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 +164,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 +174,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,18 +241,31 @@ 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.
 }
 
 void
 mono_threads_platform_free (MonoThreadInfo *info)
 {
+#ifdef TARGET_OSX
+       mach_port_deallocate (current_task (), info->native_handle);
+#endif
+
        //See the above for what's wrong here.
 }
 
 void
 mono_threads_platform_register (MonoThreadInfo *info)
 {
+#ifdef TARGET_OSX
+       info->native_handle = mach_thread_self ();
+#endif
+
        //See the above for what's wrong here.
 }
 
@@ -262,5 +281,29 @@ mono_threads_core_end_global_suspend (void)
        mono_polling_required = 0;
 }
 
+void*
+mono_threads_enter_gc_unsafe_region (void)
+{
+       return mono_threads_reset_blocking_start ();
+}
+
+void
+mono_threads_exit_gc_unsafe_region (void *regions_cookie)
+{
+       mono_threads_reset_blocking_end (regions_cookie);
+}
+
+#else
+
+void*
+mono_threads_enter_gc_unsafe_region (void)
+{
+       return NULL;
+}
+
+void
+mono_threads_exit_gc_unsafe_region (void *regions_cookie)
+{
+}
 
 #endif
\ No newline at end of file
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..3e2790024a80fa4ba75f7df33426d51ad7a7f12b 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);
 
@@ -145,10 +145,13 @@ mono_threads_core_create_thread (LPTHREAD_START_ROUTINE start_routine, gpointer
                return NULL;
        }
 
+       MONO_TRY_BLOCKING;
        /* Wait until the thread register itself in various places */
        while (MONO_SEM_WAIT (&(start_info.registered)) != 0) {
                /*if (EINTR != errno) ABORT("sem_wait failed"); */
        }
+       MONO_FINISH_TRY_BLOCKING;
+
        MONO_SEM_DESTROY (&(start_info.registered));
 
        if (out_tid)
@@ -236,30 +239,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 +254,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 366f09468e952c5882802b4dd0edf07d8655bd73..4b2bcdc6937683efc045e2e05bec08cb70942974 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) {
@@ -357,14 +357,7 @@ unregister_thread (void *arg)
        if (threads_callbacks.thread_detach)
                threads_callbacks.thread_detach (info);
 
-       /*
-       Since the thread info lock is taken from within blocking sections, we can't check from there, so it must be done here.
-       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_thread_info_suspend_lock ();
-       MONO_FINISH_BLOCKING
 
        /*
        Now perform the callback that must be done under locks.
@@ -681,7 +674,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)) {
@@ -884,6 +877,7 @@ mono_thread_info_safe_suspend_and_run (MonoNativeThreadId id, gboolean interrupt
        /*FIXME: unify this with self-suspend*/
        g_assert (id != mono_native_thread_id_get ());
 
+       /* This can block during stw */
        mono_thread_info_suspend_lock ();
        mono_threads_begin_global_suspend ();
 
@@ -968,7 +962,9 @@ STW to make sure no unsafe pending suspend is in progress.
 void
 mono_thread_info_suspend_lock (void)
 {
+       MONO_TRY_BLOCKING;
        MONO_SEM_WAIT_UNITERRUPTIBLE (&global_suspend_semaphore);
+       MONO_FINISH_TRY_BLOCKING;
 }
 
 void
@@ -1153,42 +1149,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_self_interrupt ()
+{
+       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_clear_interruption (void)
+mono_thread_info_describe_interrupt_token (MonoThreadInfo *info, GString *text)
 {
-       mono_threads_core_clear_interruption ();
+       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..003b4d2f3397714845abbc9c24b8c25a81e41052 100644 (file)
@@ -16,6 +16,7 @@
 #include <mono/utils/mono-mutex.h>
 #include <mono/utils/mono-tls.h>
 #include <mono/utils/mono-threads-coop.h>
+#include <mono/utils/mono-threads-api.h>
 
 #include <glib.h>
 #include <config.h>
@@ -117,6 +118,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 +177,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 +252,8 @@ typedef struct {
        volatile gint32 service_requests;
 
        void *jit_data;
+
+       MonoThreadInfoInterruptToken *interrupt_token;
 } MonoThreadInfo;
 
 typedef struct {
@@ -270,6 +281,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 +413,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 +478,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 +543,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 +633,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 6954d751d5eb0c4f47b9f05622a92e00a9609d7a..a8b3ce55cce59f500ebfdf52e5bc6da651d8350a 100644 (file)
@@ -451,7 +451,7 @@ typedef
 
 #if defined(PLAT_amd64_win64) && !defined(__GNUC__)
 
-#error Unsupported compiler.
+//#error Unsupported compiler.
 
 #endif /* PLAT_amd64_win64 */
 
index b1692556f80b275d93911a9097be4e230f06f122..b3d0229f79d09827dabf9277216c18ab9caae03a 100644 (file)
   <PropertyGroup Label="UserMacros" />\r
   <PropertyGroup>\r
     <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\lib\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\lib\$(Configuration)\</OutDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|Win32'">$(Platform)\lib\</OutDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\lib\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\lib\$(Configuration)\</OutDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Release_SGen|Win32'">$(Platform)\lib\</OutDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release_SGen|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\lib\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\lib\$(Configuration)\</OutDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|x64'">$(Platform)\lib\</OutDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\lib\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\lib\$(Configuration)\</OutDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Release_SGen|x64'">$(Platform)\lib\</OutDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release_SGen|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
index 4b2af22d19036e17be43016de27653b2d5f04976..001463f7af21b3eadd9fc8e0a0516b34bb01a61a 100644 (file)
   <PropertyGroup Label="UserMacros" />\r
   <PropertyGroup>\r
     <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\obj\$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|Win32'">$(Platform)\bin\</OutDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|Win32'">$(Platform)\obj\$(ProjectName)\</IntDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\obj\$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|x64'">$(Platform)\bin\</OutDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|x64'">$(Platform)\obj\$(ProjectName)\</IntDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\obj\$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Release_SGen|Win32'">$(Platform)\bin\</OutDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release_SGen|Win32'">$(Platform)\obj\$(ProjectName)\</IntDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\obj\$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Release_SGen|x64'">$(Platform)\bin\</OutDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release_SGen|x64'">$(Platform)\obj\$(ProjectName)\</IntDir>\r
   </PropertyGroup>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>eglib.lib;libmonoutils.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>\r
       <SuppressStartupBanner>true</SuppressStartupBanner>\r
       <AdditionalLibraryDirectories>$(Platform)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>eglib.lib;libmonoutils.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>\r
       <SuppressStartupBanner>true</SuppressStartupBanner>\r
       <AdditionalLibraryDirectories>$(Platform)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>eglib.lib;libmonoutils.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>\r
       <SuppressStartupBanner>true</SuppressStartupBanner>\r
       <AdditionalLibraryDirectories>$(Platform)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <SubSystem>Console</SubSystem>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>eglib.lib;libmonoutils.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>\r
       <SuppressStartupBanner>true</SuppressStartupBanner>\r
       <AdditionalLibraryDirectories>$(Platform)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <SubSystem>Console</SubSystem>\r
   <ItemGroup>\r
     <ProjectReference Include="eglib.vcxproj">\r
       <Project>{158073ed-99ae-4196-9edc-ddb2344f8466}</Project>\r
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+      <Private>false</Private>\r
+      <ReferenceOutputAssembly>true</ReferenceOutputAssembly>\r
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>\r
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>\r
     </ProjectReference>\r
   </ItemGroup>\r
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
index d3dd9ffd2fa8c2687bcf7a2b92fc9837c9e27871..2be0904f02ff1167dd55961a015e7ff56cc5b356 100644 (file)
   <PropertyGroup Label="UserMacros" />\r
   <PropertyGroup>\r
     <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\lib\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\lib\$(Configuration)\</OutDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|Win32'">$(Platform)\lib\</OutDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\lib\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\lib\$(Configuration)\</OutDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Release_SGen|Win32'">$(Platform)\lib\</OutDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release_SGen|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\lib\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\lib\$(Configuration)\</OutDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|x64'">$(Platform)\lib\</OutDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\lib\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\lib\$(Configuration)\</OutDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Release_SGen|x64'">$(Platform)\lib\</OutDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release_SGen|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
index 925a6158311bc2b4253c34945cc98c3a90759464..026306597d62025b81fb104747cd27bcd478c0b3 100644 (file)
     <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|x64'">monosgen-2.0</TargetName>\r
     <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">mono-2.0</TargetName>\r
     <TargetName Condition="'$(Configuration)|$(Platform)'=='Release_SGen|x64'">monosgen-2.0</TargetName>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|Win32'">$(Platform)\bin\</OutDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\bin\</OutDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release_SGen|Win32'">$(Platform)\bin\</OutDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\bin\</OutDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|x64'">$(Platform)\bin\</OutDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\bin\</OutDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release_SGen|x64'">$(Platform)\bin\</OutDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\bin\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|Win32'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release_SGen|Win32'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|x64'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release_SGen|x64'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\bin\$(Configuration)\</OutDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release_SGen|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>libgc.lib;libmonoruntime.lib;libmonoutils.lib;eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <ModuleDefinitionFile>mono.def</ModuleDefinitionFile>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
       <DataExecutionPrevention>\r
       </DataExecutionPrevention>\r
-      <ImportLibrary>$(Platform)\lib\$(TargetName).lib</ImportLibrary>\r
+      <ImportLibrary>$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
       <ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>\r
     </Link>\r
+    <PostBuildEvent>\r
+      <Command>xcopy /F /Y "$(SolutionDir)..\mono\cil\opcode.def" "$(SolutionDir)include\mono\cil\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\mini\jit.h" "$(SolutionDir)include\mono\jit\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\metadata\*.h" "$(SolutionDir)include\mono\metadata\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-counters.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-dl-fallback.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-error.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-logger.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-publib.h" "$(SolutionDir)include\mono\utils\"</Command>\r
+    </PostBuildEvent>\r
   </ItemDefinitionGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|Win32'">\r
     <PreBuildEvent>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>libmonoruntimesgen.lib;libmonoutils.lib;eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <ModuleDefinitionFile>monosgen.def</ModuleDefinitionFile>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
       <DataExecutionPrevention>\r
       </DataExecutionPrevention>\r
-      <ImportLibrary>$(Platform)\lib\$(TargetName).lib</ImportLibrary>\r
+      <ImportLibrary>$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
       <ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>\r
     </Link>\r
+    <PostBuildEvent>\r
+      <Command>xcopy /F /Y "$(SolutionDir)..\mono\cil\opcode.def" "$(SolutionDir)include\mono\cil\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\mini\jit.h" "$(SolutionDir)include\mono\jit\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\metadata\*.h" "$(SolutionDir)include\mono\metadata\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-counters.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-dl-fallback.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-error.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-logger.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-publib.h" "$(SolutionDir)include\mono\utils\"</Command>\r
+    </PostBuildEvent>\r
   </ItemDefinitionGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
     <PreBuildEvent>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>libgc.lib;libmonoruntime.lib;libmonoutils.lib;eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <ModuleDefinitionFile>mono.def</ModuleDefinitionFile>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
-      <ImportLibrary>$(Platform)\lib\$(TargetName).lib</ImportLibrary>\r
+      <ImportLibrary>$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
       <TargetMachine>MachineX64</TargetMachine>\r
     </Link>\r
+    <PostBuildEvent>\r
+      <Command>xcopy /F /Y "$(SolutionDir)..\mono\cil\opcode.def" "$(SolutionDir)include\mono\cil\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\mini\jit.h" "$(SolutionDir)include\mono\jit\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\metadata\*.h" "$(SolutionDir)include\mono\metadata\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-counters.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-dl-fallback.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-error.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-logger.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-publib.h" "$(SolutionDir)include\mono\utils\"</Command>\r
+    </PostBuildEvent>\r
   </ItemDefinitionGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|x64'">\r
     <PreBuildEvent>\r
     <Link>\r
       <AdditionalDependencies>libgc.lib;libmonoruntimesgen.lib;libmonoutils.lib;eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
-      <ModuleDefinitionFile>monosgen64.def</ModuleDefinitionFile>\r
+      <ModuleDefinitionFile>monosgen.def</ModuleDefinitionFile>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
-      <ImportLibrary>$(Platform)\lib\$(TargetName).lib</ImportLibrary>\r
+      <ImportLibrary>$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
       <TargetMachine>MachineX64</TargetMachine>\r
     </Link>\r
+    <PostBuildEvent>\r
+      <Command>xcopy /F /Y "$(SolutionDir)..\mono\cil\opcode.def" "$(SolutionDir)include\mono\cil\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\mini\jit.h" "$(SolutionDir)include\mono\jit\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\metadata\*.h" "$(SolutionDir)include\mono\metadata\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-counters.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-dl-fallback.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-error.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-logger.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-publib.h" "$(SolutionDir)include\mono\utils\"</Command>\r
+    </PostBuildEvent>\r
   </ItemDefinitionGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
     <PreBuildEvent>\r
       <FunctionLevelLinking>true</FunctionLevelLinking>\r
       <PrecompiledHeader>\r
       </PrecompiledHeader>\r
-      <PrecompiledHeaderOutputFile>.\Release/libmono.pch</PrecompiledHeaderOutputFile>\r
+      <PrecompiledHeaderOutputFile>\r
+      </PrecompiledHeaderOutputFile>\r
       <CompileAs>CompileAsC</CompileAs>\r
     </ClCompile>\r
     <ResourceCompile>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>libgc.lib;libmonoruntime.lib;libmonoutils.lib;eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <ModuleDefinitionFile>mono.def</ModuleDefinitionFile>\r
       <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
       <DataExecutionPrevention>\r
       </DataExecutionPrevention>\r
-      <ImportLibrary>$(Platform)\lib\$(TargetName).lib</ImportLibrary>\r
+      <ImportLibrary>$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
     </Link>\r
+    <PostBuildEvent>\r
+      <Command>xcopy /F /Y "$(SolutionDir)..\mono\cil\opcode.def" "$(SolutionDir)include\mono\cil\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\mini\jit.h" "$(SolutionDir)include\mono\jit\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\metadata\*.h" "$(SolutionDir)include\mono\metadata\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-counters.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-dl-fallback.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-error.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-logger.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-publib.h" "$(SolutionDir)include\mono\utils\"</Command>\r
+    </PostBuildEvent>\r
   </ItemDefinitionGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_SGen|Win32'">\r
     <PreBuildEvent>\r
       <FunctionLevelLinking>true</FunctionLevelLinking>\r
       <PrecompiledHeader>\r
       </PrecompiledHeader>\r
-      <PrecompiledHeaderOutputFile>.\Release/libmono.pch</PrecompiledHeaderOutputFile>\r
+      <PrecompiledHeaderOutputFile>\r
+      </PrecompiledHeaderOutputFile>\r
       <CompileAs>CompileAsC</CompileAs>\r
     </ClCompile>\r
     <ResourceCompile>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>libgc.lib;libmonoruntimesgen.lib;libmonoutils.lib;eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <ModuleDefinitionFile>monosgen.def</ModuleDefinitionFile>\r
       <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
       <DataExecutionPrevention>\r
       </DataExecutionPrevention>\r
-      <ImportLibrary>$(Platform)\lib\$(TargetName).lib</ImportLibrary>\r
+      <ImportLibrary>$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>\r
     </Link>\r
+    <PostBuildEvent>\r
+      <Command>xcopy /F /Y "$(SolutionDir)..\mono\cil\opcode.def" "$(SolutionDir)include\mono\cil\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\mini\jit.h" "$(SolutionDir)include\mono\jit\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\metadata\*.h" "$(SolutionDir)include\mono\metadata\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-counters.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-dl-fallback.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-error.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-logger.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-publib.h" "$(SolutionDir)include\mono\utils\"</Command>\r
+    </PostBuildEvent>\r
   </ItemDefinitionGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
     <PreBuildEvent>\r
       <FunctionLevelLinking>true</FunctionLevelLinking>\r
       <PrecompiledHeader>\r
       </PrecompiledHeader>\r
-      <PrecompiledHeaderOutputFile>.\Release/libmono.pch</PrecompiledHeaderOutputFile>\r
+      <PrecompiledHeaderOutputFile>\r
+      </PrecompiledHeaderOutputFile>\r
       <CompileAs>CompileAsC</CompileAs>\r
     </ClCompile>\r
     <ResourceCompile>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>libgc.lib;libmonoruntime.lib;libmonoutils.lib;eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <ModuleDefinitionFile>mono.def</ModuleDefinitionFile>\r
-      <ImportLibrary>$(Platform)\lib\$(TargetName).lib</ImportLibrary>\r
+      <ImportLibrary>$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
       <TargetMachine>MachineX64</TargetMachine>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
     </Link>\r
+    <PostBuildEvent>\r
+      <Command>xcopy /F /Y "$(SolutionDir)..\mono\cil\opcode.def" "$(SolutionDir)include\mono\cil\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\mini\jit.h" "$(SolutionDir)include\mono\jit\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\metadata\*.h" "$(SolutionDir)include\mono\metadata\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-counters.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-dl-fallback.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-error.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-logger.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-publib.h" "$(SolutionDir)include\mono\utils\"</Command>\r
+    </PostBuildEvent>\r
   </ItemDefinitionGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_SGen|x64'">\r
     <PreBuildEvent>\r
       <FunctionLevelLinking>true</FunctionLevelLinking>\r
       <PrecompiledHeader>\r
       </PrecompiledHeader>\r
-      <PrecompiledHeaderOutputFile>.\Release/libmono.pch</PrecompiledHeaderOutputFile>\r
+      <PrecompiledHeaderOutputFile>\r
+      </PrecompiledHeaderOutputFile>\r
       <CompileAs>CompileAsC</CompileAs>\r
     </ClCompile>\r
     <ResourceCompile>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>libgc.lib;libmonoruntimesgen.lib;libmonoutils.lib;eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
-      <ModuleDefinitionFile>monosgen64.def</ModuleDefinitionFile>\r
-      <ImportLibrary>$(Platform)\lib\$(TargetName).lib</ImportLibrary>\r
+      <ModuleDefinitionFile>monosgen.def</ModuleDefinitionFile>\r
+      <ImportLibrary>$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
       <TargetMachine>MachineX64</TargetMachine>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
     </Link>\r
+    <PostBuildEvent>\r
+      <Command>xcopy /F /Y "$(SolutionDir)..\mono\cil\opcode.def" "$(SolutionDir)include\mono\cil\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\mini\jit.h" "$(SolutionDir)include\mono\jit\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\metadata\*.h" "$(SolutionDir)include\mono\metadata\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-counters.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-dl-fallback.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-error.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-logger.h" "$(SolutionDir)include\mono\utils\"\r
+xcopy /F /Y "$(SolutionDir)..\mono\utils\mono-publib.h" "$(SolutionDir)include\mono\utils\"</Command>\r
+    </PostBuildEvent>\r
   </ItemDefinitionGroup>\r
   <ItemGroup>\r
     <CustomBuildStep Include="..\mono\mini\mini-x86.h">\r
   <ItemGroup>\r
     <ProjectReference Include="eglib.vcxproj">\r
       <Project>{158073ed-99ae-4196-9edc-ddb2344f8466}</Project>\r
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
-    </ProjectReference>\r
-    <ProjectReference Include="genmdesc.vcxproj">\r
-      <Project>{b7098dfa-31e6-4006-8a15-1c9a4e925149}</Project>\r
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+      <Private>false</Private>\r
+      <ReferenceOutputAssembly>true</ReferenceOutputAssembly>\r
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>\r
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>\r
     </ProjectReference>\r
     <ProjectReference Include="libgc.vcxproj">\r
       <Project>{eb56000b-c80b-4e8b-908d-d84d31b517d3}</Project>\r
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+      <ReferenceOutputAssembly>true</ReferenceOutputAssembly>\r
+      <Private>false</Private>\r
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>\r
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>\r
+    </ProjectReference>\r
+    <ProjectReference Include="libmonoruntime.vcxproj">\r
+      <Project>{c36612bd-22d3-4b95-85e2-7fdc4fc5d739}</Project>\r
+      <Private>false</Private>\r
+      <ReferenceOutputAssembly>true</ReferenceOutputAssembly>\r
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>\r
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>\r
+    </ProjectReference>\r
+    <ProjectReference Include="libmonoutils.vcxproj">\r
+      <Project>{8fc2b0c8-51ad-49df-851f-5d01a77a75e4}</Project>\r
+      <Private>false</Private>\r
+      <ReferenceOutputAssembly>true</ReferenceOutputAssembly>\r
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>\r
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>\r
     </ProjectReference>\r
   </ItemGroup>\r
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
index 84ed279abfc550bf76a7a46a09958757ed9d2074..942da86574d2625ba0b3818f70d6f6caa0cdf6de 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
   </ImportGroup>\r
   <PropertyGroup Label="UserMacros" />\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
-    <OutDir>$(Platform)\lib\</OutDir>\r
+    <OutDir>$(Platform)\lib\$(Configuration)\</OutDir>\r
     <IntDir>$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
   </PropertyGroup>\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|Win32'">\r
-    <OutDir>$(Platform)\lib\</OutDir>\r
+    <OutDir>$(Platform)\lib\$(Configuration)\</OutDir>\r
     <IntDir>$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <TargetName>$(ProjectName)sgen</TargetName>\r
   </PropertyGroup>\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
-    <OutDir>$(Platform)\lib\</OutDir>\r
+    <OutDir>$(Platform)\lib\$(Configuration)\</OutDir>\r
     <IntDir>$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
   </PropertyGroup>\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|x64'">\r
-    <OutDir>$(Platform)\lib\</OutDir>\r
+    <OutDir>$(Platform)\lib\$(Configuration)\</OutDir>\r
     <IntDir>$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <TargetName>$(ProjectName)sgen</TargetName>\r
   </PropertyGroup>\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
-    <OutDir>$(Platform)\lib\</OutDir>\r
+    <OutDir>$(Platform)\lib\$(Configuration)\</OutDir>\r
     <IntDir>$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
   </PropertyGroup>\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_SGen|Win32'">\r
-    <OutDir>$(Platform)\lib\</OutDir>\r
+    <OutDir>$(Platform)\lib\$(Configuration)\</OutDir>\r
     <IntDir>$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <TargetName>$(ProjectName)sgen</TargetName>\r
   </PropertyGroup>\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
-    <OutDir>$(Platform)\lib\</OutDir>\r
+    <OutDir>$(Platform)\lib\$(Configuration)\</OutDir>\r
     <IntDir>$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
   </PropertyGroup>\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_SGen|x64'">\r
-    <OutDir>$(Platform)\lib\</OutDir>\r
+    <OutDir>$(Platform)\lib\$(Configuration)\</OutDir>\r
     <IntDir>$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <TargetName>$(ProjectName)sgen</TargetName>\r
   </PropertyGroup>\r
       <Optimization>Disabled</Optimization>\r
       <PreprocessorDefinitions>WIN32;$(BOEHM_DEFINES);_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <AdditionalIncludeDirectories>$(top_srcdir);$(top_srcdir)/mono;$(LIBGC_CPPFLAGS_INCLUDE);$(GLIB_CFLAGS_INCLUDE)</AdditionalIncludeDirectories>\r
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
     </ClCompile>\r
     <Link>\r
       <SubSystem>Windows</SubSystem>\r
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
   <ImportGroup Label="ExtensionTargets">\r
   </ImportGroup>\r
-</Project>\r
+</Project>
\ No newline at end of file
index 52e3dc4bc47fa8e341b87e8c279c8dfa56b647af..599febb589a161be9f828dfbfb527cce16fae33b 100644 (file)
   </ImportGroup>\r
   <PropertyGroup Label="UserMacros" />\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
-    <OutDir>$(Platform)\lib\</OutDir>\r
+    <OutDir>$(Platform)\lib\$(Configuration)\</OutDir>\r
     <IntDir>$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
   </PropertyGroup>\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
-    <OutDir>$(Platform)\lib\</OutDir>\r
+    <OutDir>$(Platform)\lib\$(Configuration)\</OutDir>\r
     <IntDir>$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
   </PropertyGroup>\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
-    <OutDir>$(Platform)\lib\</OutDir>\r
+    <OutDir>$(Platform)\lib\$(Configuration)\</OutDir>\r
     <IntDir>$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
   </PropertyGroup>\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
-    <OutDir>$(Platform)\lib\</OutDir>\r
+    <OutDir>$(Platform)\lib\$(Configuration)\</OutDir>\r
     <IntDir>$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
   </PropertyGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
index 49eba7f2e5abc997d7cd0d422a214c77e0080a9f..64aaae18a4a7460a573e0c5dcb51fab88bf6251d 100644 (file)
   <PropertyGroup Label="UserMacros" />\r
   <PropertyGroup>\r
     <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\obj\$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\obj\$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\obj\$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\obj\$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
   </PropertyGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>eglib.lib;Psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>Psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <SubSystem>Windows</SubSystem>\r
       <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
       <DataExecutionPrevention>\r
       </DataExecutionPrevention>\r
-      <ImportLibrary>$(Platform)\lib\$(TargetName).lib</ImportLibrary>\r
+      <ImportLibrary>$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
       <TargetMachine>MachineX86</TargetMachine>\r
     </Link>\r
   </ItemDefinitionGroup>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>eglib.lib;Psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>Psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <SubSystem>Windows</SubSystem>\r
-      <ImportLibrary>$(Platform)\lib\$(TargetName).lib</ImportLibrary>\r
+      <ImportLibrary>$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
       <TargetMachine>MachineX64</TargetMachine>\r
     </Link>\r
   </ItemDefinitionGroup>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>eglib.lib;Psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>Psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <SubSystem>Windows</SubSystem>\r
       <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
       <DataExecutionPrevention>\r
       </DataExecutionPrevention>\r
-      <ImportLibrary>$(Platform)\lib\$(TargetName).lib</ImportLibrary>\r
+      <ImportLibrary>$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
       <TargetMachine>MachineX86</TargetMachine>\r
     </Link>\r
   </ItemDefinitionGroup>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>eglib.lib;Psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>Psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <SubSystem>Windows</SubSystem>\r
       <OptimizeReferences>true</OptimizeReferences>\r
       <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
-      <ImportLibrary>$(Platform)\lib\$(TargetName).lib</ImportLibrary>\r
+      <ImportLibrary>$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
       <TargetMachine>MachineX64</TargetMachine>\r
     </Link>\r
   </ItemDefinitionGroup>\r
   <ItemGroup>\r
     <ProjectReference Include="eglib.vcxproj">\r
       <Project>{158073ed-99ae-4196-9edc-ddb2344f8466}</Project>\r
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+      <ReferenceOutputAssembly>true</ReferenceOutputAssembly>\r
+      <Private>false</Private>\r
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>\r
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>\r
     </ProjectReference>\r
   </ItemGroup>\r
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
index d98ead82b479a38b8a48d2d14c84825fb4a28c8e..97aa760a07e65fd67418ee0d363a6a711c28c060 100644 (file)
@@ -317,8 +317,6 @@ mono_g_hash_table_foreach_remove
 mono_g_hash_table_insert
 mono_g_hash_table_lookup
 mono_g_hash_table_lookup_extended
-mono_g_hash_table_new
-mono_g_hash_table_new_full
 mono_g_hash_table_new_type
 mono_g_hash_table_print_stats
 mono_g_hash_table_remove
@@ -472,9 +470,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
@@ -829,11 +824,9 @@ mono_thread_detach_if_exiting
 mono_thread_exit
 mono_thread_get_main
 mono_thread_get_undeniable_exception
-mono_thread_info_clear_interruption
 mono_thread_info_exit
 mono_thread_info_finish_interrupt
 mono_thread_info_get_stack_bounds
-mono_thread_info_interrupt
 mono_thread_info_open_handle
 mono_thread_info_prepare_interrupt
 mono_thread_info_self_interrupt
@@ -847,10 +840,6 @@ mono_thread_set_main
 mono_thread_set_manage_callback
 mono_thread_stop
 mono_threads_attach_tools_thread
-mono_threads_core_clear_interruption
-mono_threads_core_finish_interrupt
-mono_threads_core_prepare_interrupt
-mono_threads_core_self_interrupt
 mono_threads_create_thread
 mono_threads_get_default_stacksize
 mono_threads_request_thread_dump
@@ -904,4 +893,3 @@ mono_win32_compat_CopyMemory
 mono_win32_compat_FillMemory
 mono_win32_compat_MoveMemory
 mono_win32_compat_ZeroMemory
-mono_xdebug_flush
index 3ecf25bff1e7ea2cac166a736f947f6a5ce88391..84edfbbe9333ad20aba79b038b5ad20c425c1397 100644 (file)
   <PropertyGroup Label="UserMacros" />\r
   <PropertyGroup>\r
     <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\bin\</OutDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|Win32'">$(Platform)\bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\bin\</OutDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|x64'">$(Platform)\bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\bin\</OutDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release_SGen|Win32'">$(Platform)\bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release_SGen|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\bin\</OutDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release_SGen|x64'">$(Platform)\bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release_SGen|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\bin\$(Configuration)</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|Win32'">$(Platform)\bin\$(Configuration)</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\bin\$(Configuration)</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|x64'">$(Platform)\bin\$(Configuration)</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\bin\$(Configuration)</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release_SGen|Win32'">$(Platform)\bin\$(Configuration)</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release_SGen|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\bin\$(Configuration)</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release_SGen|x64'">$(Platform)\bin\$(Configuration)</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release_SGen|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)</IntDir>\r
     <TargetName Condition="'$(Configuration)|$(Platform)'=='Release_SGen|Win32'">$(ProjectName)-sgen</TargetName>\r
     <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug_SGen|Win32'">$(ProjectName)-sgen</TargetName>\r
     <TargetName Condition="'$(Configuration)|$(Platform)'=='Release_SGen|x64'">$(ProjectName)-sgen</TargetName>\r
     </ClCompile>\r
     <ProjectReference />\r
     <Link>\r
-      <AdditionalDependencies>mono-2.0.lib;libgc.lib;eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <SubSystem>Console</SubSystem>\r
     </ClCompile>\r
     <ProjectReference />\r
     <Link>\r
-      <AdditionalDependencies>monosgen-2.0.lib;eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <SubSystem>Console</SubSystem>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>mono-2.0.lib;libgc.lib;eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <SubSystem>Console</SubSystem>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>mono-2.0.lib;libgc.lib;eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <SubSystem>Console</SubSystem>\r
       <OptimizeReferences>true</OptimizeReferences>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>monosgen-2.0.lib;libgc.lib;eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <SubSystem>Console</SubSystem>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>mono-2.0.lib;libgc.lib;eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <SubSystem>Console</SubSystem>\r
   <ItemGroup>\r
     <ProjectReference Include="eglib.vcxproj">\r
       <Project>{158073ed-99ae-4196-9edc-ddb2344f8466}</Project>\r
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+      <ReferenceOutputAssembly>true</ReferenceOutputAssembly>\r
+      <Private>false</Private>\r
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>\r
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>\r
     </ProjectReference>\r
     <ProjectReference Include="libmono.vcxproj">\r
       <Project>{cb0d9e92-293c-439c-9ac7-c5f59b6e0771}</Project>\r
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+      <ReferenceOutputAssembly>true</ReferenceOutputAssembly>\r
+      <Private>false</Private>\r
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>\r
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>\r
     </ProjectReference>\r
   </ItemGroup>\r
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
index b4b2c4e5d80ff5c1a97820c2774a9a6a27eabadc..8f6320705186b24a25c3b93159d8454b11718175 100644 (file)
   <PropertyGroup Label="UserMacros" />\r
   <PropertyGroup>\r
     <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
   </PropertyGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
@@ -82,7 +82,7 @@
       <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;__WIN32__;HAVE_CONFIG_H;__i386__;TARGET_X86;HOST_WIN32;TARGET_WIN32;GC_NOT_DLL;GC_GCJ_SUPPORT;GC_WIN32_THREADS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <MinimalRebuild>true</MinimalRebuild>\r
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
-      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>\r
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
       <BufferSecurityCheck>true</BufferSecurityCheck>\r
       <PrecompiledHeader>\r
       </PrecompiledHeader>\r
index b9cae332c8e15b2f6857590b2f797d5dc4381b44..9a739c622b362a421674251b9cdd62456b6e8b1a 100644 (file)
   <PropertyGroup Label="UserMacros" />\r
   <PropertyGroup>\r
     <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
   </PropertyGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
     <ClCompile>\r
       <Optimization>Disabled</Optimization>\r
-      <AdditionalIncludeDirectories>..\;..\VSDependancies\include\glib-2.0;..\VSDependancies\include\glib-2.0\glib;..\VSDependancies\include;..\VSDependancies\lib\glib-2.0\include;..\mono\;..\mono\jit;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <AdditionalIncludeDirectories>..\;..\eglib\src;..\mono\;..\mono\jit;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
       <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WINDOWS;__WIN32__;HOST_WIN32;TARGET_WIN32;__i386__;TARGET_X86;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <MinimalRebuild>true</MinimalRebuild>\r
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
-      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>\r
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
       <BufferSecurityCheck>true</BufferSecurityCheck>\r
       <PrecompiledHeader>\r
       </PrecompiledHeader>\r
       <DisableSpecificWarnings>4996;4018;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
     </ClCompile>\r
     <ProjectReference>\r
-      <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>glib-2.0.lib;gmodule-2.0.lib;ws2_32.lib;gthread-2.0.lib;gobject-2.0.lib;mono.lib;Psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>\r
+      </AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)_$(Configuration)/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <SubSystem>Console</SubSystem>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
     <ClCompile>\r
       <Optimization>MinSpace</Optimization>\r
-      <AdditionalIncludeDirectories>..\;..\VSDependancies\include\glib-2.0;..\VSDependancies\include\glib-2.0\glib;..\VSDependancies\include;..\VSDependancies\lib\glib-2.0\include;..\mono\;..\mono\jit;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <AdditionalIncludeDirectories>..\;..\eglib\src;..\mono\;..\mono\jit;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
       <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
       <BufferSecurityCheck>true</BufferSecurityCheck>\r
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
     </ClCompile>\r
     <ProjectReference>\r
-      <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
       <AdditionalLibraryDirectories>$(Platform)_$(Configuration)/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <DataExecutionPrevention>\r
       </DataExecutionPrevention>\r
       <TargetMachine>MachineX86</TargetMachine>\r
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>\r
     </Link>\r
   </ItemDefinitionGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
     </Midl>\r
     <ClCompile>\r
       <Optimization>Disabled</Optimization>\r
-      <AdditionalIncludeDirectories>..\;..\VSDependancies\include\glib-2.0;..\VSDependancies\include\glib-2.0\glib;..\VSDependancies\include;..\VSDependancies\lib\glib-2.0\include;..\mono\;..\mono\jit;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <AdditionalIncludeDirectories>..\;..\eglib\src;..\mono\;..\mono\jit;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
       <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WINDOWS;__WIN32__;HOST_WIN32;TARGET_WIN32;__i386__;TARGET_X86;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <MinimalRebuild>true</MinimalRebuild>\r
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
       <DisableSpecificWarnings>4996;4018;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>\r
     </ClCompile>\r
     <ProjectReference>\r
-      <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>glib-2.0.lib;gmodule-2.0.lib;ws2_32.lib;gthread-2.0.lib;gobject-2.0.lib;libmono.lib;Psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>\r
+      </AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)_$(Configuration)/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <SubSystem>Console</SubSystem>\r
     </Midl>\r
     <ClCompile>\r
       <Optimization>MinSpace</Optimization>\r
-      <AdditionalIncludeDirectories>..\;..\VSDependancies\include\glib-2.0;..\VSDependancies\include\glib-2.0\glib;..\VSDependancies\include;..\VSDependancies\lib\glib-2.0\include;..\mono\;..\mono\jit;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <AdditionalIncludeDirectories>..\;..\eglib\src;..\mono\;..\mono\jit;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
       <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
       <BufferSecurityCheck>true</BufferSecurityCheck>\r
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
     </ClCompile>\r
     <ProjectReference>\r
-      <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
       <AdditionalLibraryDirectories>$(Platform)_$(Configuration)/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <OptimizeReferences>true</OptimizeReferences>\r
       <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
       <TargetMachine>MachineX64</TargetMachine>\r
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>\r
     </Link>\r
   </ItemDefinitionGroup>\r
   <ItemGroup>\r
     <ClInclude Include="..\mono\dis\util.h" />\r
   </ItemGroup>\r
   <ItemGroup>\r
+    <ProjectReference Include="eglib.vcxproj">\r
+      <Project>{158073ed-99ae-4196-9edc-ddb2344f8466}</Project>\r
+      <Private>false</Private>\r
+      <ReferenceOutputAssembly>true</ReferenceOutputAssembly>\r
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>\r
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>\r
+    </ProjectReference>\r
     <ProjectReference Include="libmono.vcxproj">\r
       <Project>{cb0d9e92-293c-439c-9ac7-c5f59b6e0771}</Project>\r
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
     </ProjectReference>\r
   </ItemGroup>\r
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
index f77df6ffae81890739e5eadd50d0029204d392c4..962d5bacf515679a4d14793cf9b3ec324692db47 100644 (file)
   <PropertyGroup Label="UserMacros" />\r
   <PropertyGroup>\r
     <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
   </PropertyGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
     <ClCompile>\r
       <Optimization>Disabled</Optimization>\r
-      <AdditionalIncludeDirectories>..\;..\VSDependancies\include\glib-2.0;..\VSDependancies\include\glib-2.0\glib;..\VSDependancies\include;..\VSDependancies\lib\glib-2.0\include;..\mono\;..\mono\jit;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <AdditionalIncludeDirectories>..\;..\eglib\src;..\mono\;..\mono\jit;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
       <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WINDOWS;__WIN32__;HOST_WIN32;TARGET_WIN32;__i386__;TARGET_X86;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <MinimalRebuild>true</MinimalRebuild>\r
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
-      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>\r
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
       <BufferSecurityCheck>true</BufferSecurityCheck>\r
       <PrecompiledHeader>\r
       </PrecompiledHeader>\r
@@ -95,7 +95,7 @@
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>glib-2.0.lib;gmodule-2.0.lib;ws2_32.lib;gthread-2.0.lib;gobject-2.0.lib;mono.lib;Psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>ws2_32.lib;Psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)_$(Configuration)/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <SubSystem>Console</SubSystem>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
     <ClCompile>\r
       <Optimization>MinSpace</Optimization>\r
-      <AdditionalIncludeDirectories>..\;..\VSDependancies\include\glib-2.0;..\VSDependancies\include\glib-2.0\glib;..\VSDependancies\include;..\VSDependancies\lib\glib-2.0\include;..\mono\;..\mono\jit;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <AdditionalIncludeDirectories>..\;..\eglib\src;..\mono\;..\mono\jit;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
       <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
       <BufferSecurityCheck>true</BufferSecurityCheck>\r
     </Midl>\r
     <ClCompile>\r
       <Optimization>Disabled</Optimization>\r
-      <AdditionalIncludeDirectories>..\;..\VSDependancies\include\glib-2.0;..\VSDependancies\include\glib-2.0\glib;..\VSDependancies\include;..\VSDependancies\lib\glib-2.0\include;..\mono\;..\mono\jit;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <AdditionalIncludeDirectories>..\;..\eglib\src;..\mono\;..\mono\jit;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
       <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WINDOWS;__WIN32__;HOST_WIN32;TARGET_WIN32;__i386__;TARGET_X86;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <MinimalRebuild>true</MinimalRebuild>\r
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>glib-2.0.lib;gmodule-2.0.lib;ws2_32.lib;gthread-2.0.lib;gobject-2.0.lib;libmono.lib;Psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>ws2_32.lib;libmono.lib;Psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)_$(Configuration)/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <SubSystem>Console</SubSystem>\r
     </Midl>\r
     <ClCompile>\r
       <Optimization>MinSpace</Optimization>\r
-      <AdditionalIncludeDirectories>..\;..\VSDependancies\include\glib-2.0;..\VSDependancies\include\glib-2.0\glib;..\VSDependancies\include;..\VSDependancies\lib\glib-2.0\include;..\mono\;..\mono\jit;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <AdditionalIncludeDirectories>..\;..\eglib\src;..\mono\;..\mono\jit;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
       <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
       <BufferSecurityCheck>true</BufferSecurityCheck>\r
     </Link>\r
   </ItemDefinitionGroup>\r
   <ItemGroup>\r
-    <ClCompile Include="..\mono\monograph\monograph.c" />\r
     <ClCompile Include="..\mono\metadata\opcodes.c" />\r
+    <ClCompile Include="..\tools\monograph\monograph.c" />\r
   </ItemGroup>\r
   <ItemGroup>\r
+    <ProjectReference Include="eglib.vcxproj">\r
+      <Project>{158073ed-99ae-4196-9edc-ddb2344f8466}</Project>\r
+      <Private>false</Private>\r
+      <ReferenceOutputAssembly>true</ReferenceOutputAssembly>\r
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>\r
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>\r
+    </ProjectReference>\r
     <ProjectReference Include="libmono.vcxproj">\r
       <Project>{cb0d9e92-293c-439c-9ac7-c5f59b6e0771}</Project>\r
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+      <Private>false</Private>\r
+      <ReferenceOutputAssembly>true</ReferenceOutputAssembly>\r
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>\r
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>\r
     </ProjectReference>\r
   </ItemGroup>\r
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
index 8fd2d718c9090383136ee828abc03868c31fd7b1..df216b7622ccae357b321e8ac672676996079786 100644 (file)
   <PropertyGroup Label="UserMacros" />\r
   <PropertyGroup>\r
     <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\obj\$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\obj\$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\obj\$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\obj\$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
     <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">MonoPosixHelper</TargetName>\r
     <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MonoPosixHelper</TargetName>\r
@@ -94,7 +94,7 @@
       <CompileAs>CompileAsC</CompileAs>\r
     </ClCompile>\r
     <Link>\r
-      <AdditionalDependencies>$(TargetDir)..\lib\eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>\r
       <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>\r
       <ModuleDefinitionFile>monoposixhelper.def</ModuleDefinitionFile>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
       <DataExecutionPrevention>\r
       </DataExecutionPrevention>\r
-      <ImportLibrary>$(Platform)\lib\$(TargetName).lib</ImportLibrary>\r
+      <ImportLibrary>$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
       <TargetMachine>MachineX86</TargetMachine>\r
     </Link>\r
   </ItemDefinitionGroup>\r
       <ModuleDefinitionFile>monoposixhelper.def</ModuleDefinitionFile>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <SubSystem>Windows</SubSystem>\r
-      <ImportLibrary>$(Platform)\lib\$(TargetName).lib</ImportLibrary>\r
+      <ImportLibrary>$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
       <TargetMachine>MachineX64</TargetMachine>\r
-      <AdditionalDependencies>$(TargetDir)..\lib\eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>\r
     </Link>\r
   </ItemDefinitionGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
       <CompileAs>CompileAsC</CompileAs>\r
     </ClCompile>\r
     <Link>\r
-      <AdditionalDependencies>$(TargetDir)..\lib\eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>\r
       <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>\r
       <ModuleDefinitionFile>monoposixhelper.def</ModuleDefinitionFile>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
       <DataExecutionPrevention>\r
       </DataExecutionPrevention>\r
-      <ImportLibrary>$(Platform)\lib\$(TargetName).lib</ImportLibrary>\r
+      <ImportLibrary>$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
       <TargetMachine>MachineX86</TargetMachine>\r
     </Link>\r
   </ItemDefinitionGroup>\r
       <SubSystem>Windows</SubSystem>\r
       <OptimizeReferences>true</OptimizeReferences>\r
       <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
-      <ImportLibrary>$(Platform)\lib\$(TargetName).lib</ImportLibrary>\r
+      <ImportLibrary>$(Platform)\lib\$(Configuration)\$(TargetName).lib</ImportLibrary>\r
       <TargetMachine>MachineX64</TargetMachine>\r
-      <AdditionalDependencies>$(TargetDir)..\lib\eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>\r
     </Link>\r
   </ItemDefinitionGroup>\r
   <ItemGroup>\r
     <None Include="monoposixhelper.def" />\r
   </ItemGroup>\r
   <ItemGroup>\r
+    <ProjectReference Include="eglib.vcxproj">\r
+      <Project>{158073ed-99ae-4196-9edc-ddb2344f8466}</Project>\r
+    </ProjectReference>\r
     <ProjectReference Include="genmdesc.vcxproj">\r
       <Project>{b7098dfa-31e6-4006-8a15-1c9a4e925149}</Project>\r
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
index eb44f062a3faea6fb3254903257c48c375eedffc..215e64142f1f1bcd82fc1549991954e4b191a10b 100644 (file)
@@ -317,8 +317,6 @@ mono_g_hash_table_foreach_remove
 mono_g_hash_table_insert
 mono_g_hash_table_lookup
 mono_g_hash_table_lookup_extended
-mono_g_hash_table_new
-mono_g_hash_table_new_full
 mono_g_hash_table_new_type
 mono_g_hash_table_print_stats
 mono_g_hash_table_remove
@@ -474,8 +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
@@ -831,11 +827,8 @@ mono_thread_detach_if_exiting
 mono_thread_exit
 mono_thread_get_main
 mono_thread_get_undeniable_exception
-mono_thread_info_clear_interruption
 mono_thread_info_exit
-mono_thread_info_finish_interrupt
 mono_thread_info_get_stack_bounds
-mono_thread_info_interrupt
 mono_thread_info_open_handle
 mono_thread_info_prepare_interrupt
 mono_thread_info_self_interrupt
@@ -849,10 +842,6 @@ mono_thread_set_main
 mono_thread_set_manage_callback
 mono_thread_stop
 mono_threads_attach_tools_thread
-mono_threads_core_clear_interruption
-mono_threads_core_finish_interrupt
-mono_threads_core_prepare_interrupt
-mono_threads_core_self_interrupt
 mono_threads_create_thread
 mono_threads_get_default_stacksize
 mono_threads_request_thread_dump
@@ -906,4 +895,3 @@ mono_win32_compat_CopyMemory
 mono_win32_compat_FillMemory
 mono_win32_compat_MoveMemory
 mono_win32_compat_ZeroMemory
-mono_xdebug_flush
diff --git a/msvc/monosgen64.def b/msvc/monosgen64.def
deleted file mode 100644 (file)
index f77f019..0000000
+++ /dev/null
@@ -1,862 +0,0 @@
-; file generated by create-windef.pl
-LIBRARY monosgen-2.0.dll
-EXPORTS
-MonoFixupCorEE
-mono_add_internal_call
-mono_aot_register_globals
-mono_aot_register_module
-mono_array_addr_with_size
-mono_array_class_get
-mono_array_clone
-mono_array_element_size
-mono_array_length
-mono_array_new
-mono_array_new_full
-mono_array_new_specific
-mono_assemblies_cleanup
-mono_assemblies_init
-mono_assembly_close
-mono_assembly_fill_assembly_name
-mono_assembly_foreach
-mono_assembly_get_assemblyref
-mono_assembly_get_image
-mono_assembly_get_main
-mono_assembly_get_object
-mono_assembly_getrootdir
-mono_assembly_invoke_load_hook
-mono_assembly_invoke_search_hook
-mono_assembly_load
-mono_assembly_load_from
-mono_assembly_load_from_full
-mono_assembly_load_full
-mono_assembly_load_module
-mono_assembly_load_reference
-mono_assembly_load_references
-mono_assembly_load_with_partial_name
-mono_assembly_loaded
-mono_assembly_loaded_full
-mono_assembly_name_free
-mono_assembly_name_get_culture
-mono_assembly_name_get_name
-mono_assembly_name_get_pubkeytoken
-mono_assembly_name_get_version
-mono_assembly_name_new
-mono_assembly_names_equal
-mono_assembly_open
-mono_assembly_open_full
-mono_assembly_set_main
-mono_assembly_setrootdir
-mono_binary_search
-mono_bitset_alloc_size
-mono_bitset_clear
-mono_bitset_clear_all
-mono_bitset_clone
-mono_bitset_copyto
-mono_bitset_count
-mono_bitset_equal
-mono_bitset_find_first
-mono_bitset_find_first_unset
-mono_bitset_find_last
-mono_bitset_find_start
-mono_bitset_foreach
-mono_bitset_free
-mono_bitset_intersection
-mono_bitset_intersection_2
-mono_bitset_invert
-mono_bitset_mem_new
-mono_bitset_new
-mono_bitset_set
-mono_bitset_set_all
-mono_bitset_size
-mono_bitset_sub
-mono_bitset_test
-mono_bitset_test_bulk
-mono_bitset_union
-mono_bounded_array_class_get
-mono_breakpoint_clean_code
-mono_check_corlib_version
-mono_class_array_element_size
-mono_class_data_size
-mono_class_describe_statics
-mono_class_enum_basetype
-mono_class_from_generic_parameter
-mono_class_from_mono_type
-mono_class_from_name
-mono_class_from_name_case
-mono_class_from_typeref
-mono_class_get
-mono_class_get_byref_type
-mono_class_get_com_object_class
-mono_class_get_element_class
-mono_class_get_event_token
-mono_class_get_events
-mono_class_get_field
-mono_class_get_field_from_name
-mono_class_get_field_token
-mono_class_get_fields
-mono_class_get_flags
-mono_class_get_full
-mono_class_get_idispatch_class
-mono_class_get_image
-mono_class_get_interfaces
-mono_class_get_interop_proxy_class
-mono_class_get_iunknown_class
-mono_class_get_method_from_name
-mono_class_get_method_from_name_flags
-mono_class_get_methods
-mono_class_get_name
-mono_class_get_namespace
-mono_class_get_nested_types
-mono_class_get_nesting_type
-mono_class_get_parent
-mono_class_get_properties
-mono_class_get_property_from_name
-mono_class_get_property_token
-mono_class_get_rank
-mono_class_get_type
-mono_class_get_type_token
-mono_class_get_variant_class
-mono_class_implements_interface
-mono_class_inflate_generic_method
-mono_class_inflate_generic_type
-mono_class_init
-mono_class_instance_size
-mono_class_interface_offset
-mono_class_is_assignable_from
-mono_class_is_delegate
-mono_class_is_enum
-mono_class_is_subclass_of
-mono_class_is_valid_enum
-mono_class_is_valuetype
-mono_class_min_align
-mono_class_name_from_token
-mono_class_num_events
-mono_class_num_fields
-mono_class_num_methods
-mono_class_num_properties
-mono_class_value_size
-mono_class_vtable
-mono_cli_rva_image_map
-mono_code_manager_cleanup
-mono_code_manager_commit
-mono_code_manager_destroy
-mono_code_manager_foreach
-mono_code_manager_init
-mono_code_manager_invalidate
-mono_code_manager_new
-mono_code_manager_new_dynamic
-mono_code_manager_reserve
-mono_code_manager_reserve_align
-mono_code_manager_set_read_only
-mono_code_manager_size
-mono_compile_method
-mono_config_cleanup
-mono_config_for_assembly
-mono_config_is_server_mode
-mono_config_parse
-mono_config_parse_memory
-mono_config_set_server_mode
-mono_config_string_for_assembly_file
-mono_context_get
-mono_context_get_desc
-mono_context_init
-mono_context_set
-mono_counters_cleanup
-mono_counters_dump
-mono_counters_enable
-mono_counters_register
-mono_custom_attrs_construct
-mono_custom_attrs_free
-mono_custom_attrs_from_assembly
-mono_custom_attrs_from_class
-mono_custom_attrs_from_event
-mono_custom_attrs_from_field
-mono_custom_attrs_from_index
-mono_custom_attrs_from_method
-mono_custom_attrs_from_param
-mono_custom_attrs_from_property
-mono_custom_attrs_get_attr
-mono_custom_attrs_has_attr
-mono_debug_add_delegate_trampoline
-mono_debug_add_method
-mono_debug_cleanup
-mono_debug_close_image
-mono_debug_close_mono_symbol_file
-mono_debug_domain_create
-mono_debug_domain_unload
-mono_debug_enabled
-mono_debug_find_method
-mono_debug_free_method_jit_info
-mono_debug_free_source_location
-mono_debug_il_offset_from_address
-mono_debug_init
-mono_debug_list_add
-mono_debug_list_remove
-mono_debug_lookup_locals
-mono_debug_lookup_method
-mono_debug_lookup_method_addresses
-mono_debug_lookup_source_location
-mono_debug_open_image_from_memory
-mono_debug_open_mono_symbols
-mono_debug_print_stack_frame
-mono_debug_print_vars
-mono_debug_remove_method
-mono_debug_symfile_free_locals
-mono_debug_symfile_free_location
-mono_debug_symfile_get_line_numbers
-mono_debug_symfile_get_line_numbers_full
-mono_debug_symfile_is_loaded
-mono_debug_symfile_lookup_locals
-mono_debug_symfile_lookup_location
-mono_debug_symfile_lookup_method
-mono_debugger_insert_breakpoint
-mono_debugger_method_has_breakpoint
-mono_debugger_run_finally
-mono_declsec_flags_from_assembly
-mono_declsec_flags_from_class
-mono_declsec_flags_from_method
-mono_declsec_get_assembly_action
-mono_declsec_get_class_action
-mono_declsec_get_demands
-mono_declsec_get_inheritdemands_class
-mono_declsec_get_inheritdemands_method
-mono_declsec_get_linkdemands
-mono_declsec_get_method_action
-mono_digest_get_public_token
-mono_disasm_code
-mono_disasm_code_one
-mono_dl_fallback_register
-mono_dl_fallback_unregister
-mono_dllmap_insert
-mono_domain_add_class_static_data
-mono_domain_assembly_open
-mono_domain_create
-mono_domain_create_appdomain
-mono_domain_finalize
-mono_domain_foreach
-mono_domain_free
-mono_domain_from_appdomain
-mono_domain_get
-mono_domain_get_by_id
-mono_domain_get_id
-mono_domain_has_type_resolve
-mono_domain_is_unloading
-mono_domain_owns_vtable_slot
-mono_domain_set
-mono_domain_set_config
-mono_domain_set_internal
-mono_domain_try_type_resolve
-mono_domain_try_unload
-mono_domain_unload
-mono_dwarf_escape_path
-mono_emit_native_call
-mono_environment_exitcode_get
-mono_environment_exitcode_set
-mono_error_cleanup
-mono_error_get_error_code
-mono_error_get_message
-mono_error_init
-mono_error_init_flags
-mono_error_ok
-mono_escape_uri_string
-mono_event_get_add_method
-mono_event_get_flags
-mono_event_get_name
-mono_event_get_object
-mono_event_get_parent
-mono_event_get_raise_method
-mono_event_get_remove_method
-mono_exception_from_name
-mono_exception_from_name_domain
-mono_exception_from_name_msg
-mono_exception_from_name_two_strings
-mono_exception_from_token
-mono_exception_from_token_two_strings
-mono_exception_walk_trace
-mono_field_from_token
-mono_field_full_name
-mono_field_get_data
-mono_field_get_flags
-mono_field_get_name
-mono_field_get_object
-mono_field_get_offset
-mono_field_get_parent
-mono_field_get_type
-mono_field_get_value
-mono_field_get_value_object
-mono_field_set_value
-mono_field_static_get_value
-mono_field_static_set_value
-mono_file_map
-mono_file_map_close
-mono_file_map_fd
-mono_file_map_open
-mono_file_map_size
-mono_file_unmap
-mono_free
-mono_free_bstr
-mono_free_method
-mono_free_verify_list
-mono_g_hash_table_destroy
-mono_g_hash_table_find
-mono_g_hash_table_foreach
-mono_g_hash_table_foreach_remove
-mono_g_hash_table_insert
-mono_g_hash_table_lookup
-mono_g_hash_table_lookup_extended
-mono_g_hash_table_new
-mono_g_hash_table_new_full
-mono_g_hash_table_new_type
-mono_g_hash_table_print_stats
-mono_g_hash_table_remove
-mono_g_hash_table_replace
-mono_g_hash_table_size
-mono_gc_collect
-mono_gc_collection_count
-mono_gc_get_generation
-mono_gc_get_heap_size
-mono_gc_get_used_size
-mono_gc_invoke_finalizers
-mono_gc_max_generation
-mono_gc_reference_queue_add
-mono_gc_reference_queue_free
-mono_gc_reference_queue_new
-mono_gc_toggleref_add
-mono_gc_toggleref_register_callback
-mono_gc_walk_heap
-mono_gc_wbarrier_arrayref_copy
-mono_gc_wbarrier_generic_nostore
-mono_gc_wbarrier_generic_store
-mono_gc_wbarrier_generic_store_atomic
-mono_gc_wbarrier_object_copy
-mono_gc_wbarrier_set_arrayref
-mono_gc_wbarrier_set_field
-mono_gc_wbarrier_value_copy
-mono_gchandle_free
-mono_gchandle_get_target
-mono_gchandle_new
-mono_gchandle_new_weakref
-mono_get_array_class
-mono_get_boolean_class
-mono_get_byte_class
-mono_get_char_class
-mono_get_config_dir
-mono_get_corlib
-mono_get_dbnull_object
-mono_get_delegate_begin_invoke
-mono_get_delegate_end_invoke
-mono_get_delegate_invoke
-mono_get_double_class
-mono_get_enum_class
-mono_get_exception_appdomain_unloaded
-mono_get_exception_argument
-mono_get_exception_argument_null
-mono_get_exception_argument_out_of_range
-mono_get_exception_arithmetic
-mono_get_exception_array_type_mismatch
-mono_get_exception_bad_image_format
-mono_get_exception_bad_image_format2
-mono_get_exception_cannot_unload_appdomain
-mono_get_exception_class
-mono_get_exception_divide_by_zero
-mono_get_exception_execution_engine
-mono_get_exception_field_access
-mono_get_exception_file_not_found
-mono_get_exception_file_not_found2
-mono_get_exception_index_out_of_range
-mono_get_exception_invalid_cast
-mono_get_exception_invalid_operation
-mono_get_exception_io
-mono_get_exception_method_access
-mono_get_exception_missing_field
-mono_get_exception_missing_method
-mono_get_exception_not_implemented
-mono_get_exception_not_supported
-mono_get_exception_null_reference
-mono_get_exception_out_of_memory
-mono_get_exception_overflow
-mono_get_exception_reflection_type_load
-mono_get_exception_runtime_wrapped
-mono_get_exception_security
-mono_get_exception_serialization
-mono_get_exception_stack_overflow
-mono_get_exception_synchronization_lock
-mono_get_exception_thread_abort
-mono_get_exception_thread_interrupted
-mono_get_exception_thread_state
-mono_get_exception_type_initialization
-mono_get_exception_type_load
-mono_get_inflated_method
-mono_get_int16_class
-mono_get_int32_class
-mono_get_int64_class
-mono_get_intptr_class
-mono_get_machine_config
-mono_get_method
-mono_get_method_constrained
-mono_get_method_full
-mono_get_object_class
-mono_get_root_domain
-mono_get_runtime_build_info
-mono_get_sbyte_class
-mono_get_single_class
-mono_get_string_class
-mono_get_thread_class
-mono_get_trampoline_func
-mono_get_uint16_class
-mono_get_uint32_class
-mono_get_uint64_class
-mono_get_uintptr_class
-mono_get_void_class
-mono_guid_to_string
-mono_image_add_to_name_cache
-mono_image_addref
-mono_image_close
-mono_image_ensure_section
-mono_image_ensure_section_idx
-mono_image_fixup_vtable
-mono_image_get_assembly
-mono_image_get_entry_point
-mono_image_get_filename
-mono_image_get_guid
-mono_image_get_name
-mono_image_get_public_key
-mono_image_get_resource
-mono_image_get_strong_name
-mono_image_get_table_info
-mono_image_get_table_rows
-mono_image_has_authenticode_entry
-mono_image_init
-mono_image_init_name_cache
-mono_image_is_dynamic
-mono_image_load_file_for_image
-mono_image_load_module
-mono_image_loaded
-mono_image_loaded_by_guid
-mono_image_loaded_by_guid_full
-mono_image_loaded_full
-mono_image_lookup_resource
-mono_image_open
-mono_image_open_from_data
-mono_image_open_from_data_full
-mono_image_open_from_data_with_name
-mono_image_open_full
-mono_image_rva_map
-mono_image_strerror
-mono_image_strong_name_position
-mono_images_cleanup
-mono_images_init
-mono_init
-mono_init_from_assembly
-mono_init_version
-mono_inst_name
-mono_install_assembly_load_hook
-mono_install_assembly_postload_refonly_search_hook
-mono_install_assembly_postload_search_hook
-mono_install_assembly_preload_hook
-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
-mono_jit_exec
-mono_jit_info_get_code_size
-mono_jit_info_get_code_start
-mono_jit_info_get_method
-mono_jit_info_table_find
-mono_jit_init
-mono_jit_init_version
-mono_jit_parse_options
-mono_jit_set_aot_only
-mono_jit_set_domain
-mono_jit_set_trace_options
-mono_jit_thread_attach
-mono_ldstr
-mono_ldtoken
-mono_lls_init
-mono_load_remote_field
-mono_load_remote_field_new
-mono_local_deadce
-mono_locks_dump
-mono_lookup_icall_symbol
-mono_lookup_internal_call
-mono_lookup_pinvoke_call
-mono_main
-mono_marshal_string_to_utf16
-mono_md5_final
-mono_md5_get_digest
-mono_md5_get_digest_from_file
-mono_md5_init
-mono_md5_update
-mono_mempool_alloc
-mono_mempool_alloc0
-mono_mempool_contains_addr
-mono_mempool_destroy
-mono_mempool_empty
-mono_mempool_get_allocated
-mono_mempool_invalidate
-mono_mempool_new
-mono_mempool_new_size
-mono_mempool_stats
-mono_mempool_strdup
-mono_metadata_blob_heap
-mono_metadata_cleanup
-mono_metadata_compute_size
-mono_metadata_custom_attrs_from_index
-mono_metadata_declsec_from_index
-mono_metadata_decode_blob_size
-mono_metadata_decode_row
-mono_metadata_decode_row_col
-mono_metadata_decode_signed_value
-mono_metadata_decode_table_row
-mono_metadata_decode_table_row_col
-mono_metadata_decode_value
-mono_metadata_encode_value
-mono_metadata_events_from_typedef
-mono_metadata_field_info
-mono_metadata_field_info_with_mempool
-mono_metadata_free_array
-mono_metadata_free_inflated_signature
-mono_metadata_free_marshal_spec
-mono_metadata_free_method_signature
-mono_metadata_free_mh
-mono_metadata_free_type
-mono_metadata_generic_class_is_valuetype
-mono_metadata_get_constant_index
-mono_metadata_get_generic_param_row
-mono_metadata_get_inflated_signature
-mono_metadata_get_marshal_info
-mono_metadata_guid_heap
-mono_metadata_implmap_from_method
-mono_metadata_init
-mono_metadata_interfaces_from_typedef
-mono_metadata_load_generic_param_constraints
-mono_metadata_load_generic_params
-mono_metadata_locate
-mono_metadata_locate_token
-mono_metadata_methods_from_event
-mono_metadata_methods_from_property
-mono_metadata_nested_in_typedef
-mono_metadata_nesting_typedef
-mono_metadata_packing_from_typedef
-mono_metadata_parse_array
-mono_metadata_parse_custom_mod
-mono_metadata_parse_field_type
-mono_metadata_parse_marshal_spec
-mono_metadata_parse_method_signature
-mono_metadata_parse_method_signature_full
-mono_metadata_parse_mh
-mono_metadata_parse_mh_full
-mono_metadata_parse_param
-mono_metadata_parse_signature
-mono_metadata_parse_type
-mono_metadata_parse_type_full
-mono_metadata_parse_typedef_or_ref
-mono_metadata_properties_from_typedef
-mono_metadata_signature_alloc
-mono_metadata_signature_dup
-mono_metadata_signature_equal
-mono_metadata_string_heap
-mono_metadata_token_from_dor
-mono_metadata_translate_token_index
-mono_metadata_type_equal
-mono_metadata_type_hash
-mono_metadata_typedef_from_field
-mono_metadata_typedef_from_method
-mono_metadata_user_string
-mono_method_body_get_object
-mono_method_can_access_field
-mono_method_can_access_method
-mono_method_desc_free
-mono_method_desc_from_method
-mono_method_desc_full_match
-mono_method_desc_match
-mono_method_desc_new
-mono_method_desc_search_in_class
-mono_method_desc_search_in_image
-mono_method_full_name
-mono_method_get_class
-mono_method_get_flags
-mono_method_get_generic_container
-mono_method_get_header
-mono_method_get_index
-mono_method_get_last_managed
-mono_method_get_marshal_info
-mono_method_get_name
-mono_method_get_object
-mono_method_get_param_names
-mono_method_get_param_token
-mono_method_get_signature
-mono_method_get_signature_full
-mono_method_get_token
-mono_method_get_unmanaged_thunk
-mono_method_has_marshal_info
-mono_method_header_get_clauses
-mono_method_header_get_code
-mono_method_header_get_locals
-mono_method_header_get_num_clauses
-mono_method_signature
-mono_method_verify
-mono_mlist_alloc
-mono_mlist_append
-mono_mlist_get_data
-mono_mlist_last
-mono_mlist_length
-mono_mlist_next
-mono_mlist_prepend
-mono_mlist_remove_item
-mono_mlist_set_data
-mono_mlist_set_next
-mono_module_file_get_object
-mono_module_get_object
-mono_monitor_enter
-mono_monitor_exit
-mono_monitor_try_enter
-mono_mprotect
-mono_mutex_init_suspend_safe
-mono_object_castclass_mbyref
-mono_object_castclass_with_cache
-mono_object_clone
-mono_object_describe
-mono_object_describe_fields
-mono_object_get_class
-mono_object_get_domain
-mono_object_get_size
-mono_object_get_virtual_method
-mono_object_hash
-mono_object_isinst
-mono_object_isinst_mbyref
-mono_object_isinst_with_cache
-mono_object_new
-mono_object_new_alloc_specific
-mono_object_new_fast
-mono_object_new_from_token
-mono_object_new_specific
-mono_object_to_string
-mono_object_unbox
-mono_op_to_op_imm_noemul
-mono_opcode_name
-mono_opcode_value
-mono_pagesize
-mono_param_get_objects
-mono_parse_default_optimizations
-mono_path_canonicalize
-mono_path_resolve_symlinks
-mono_pe_file_open
-mono_perfcounters_init
-mono_pmip
-mono_poll
-mono_print_method_from_ip
-mono_print_thread_dump
-mono_print_thread_dump_from_ctx
-mono_print_unhandled_exception
-mono_profiler_coverage_get
-mono_profiler_get_events
-mono_profiler_install
-mono_profiler_install_allocation
-mono_profiler_install_appdomain
-mono_profiler_install_assembly
-mono_profiler_install_class
-mono_profiler_install_code_buffer_new
-mono_profiler_install_code_chunk_destroy
-mono_profiler_install_code_chunk_new
-mono_profiler_install_coverage_filter
-mono_profiler_install_enter_leave
-mono_profiler_install_exception
-mono_profiler_install_gc
-mono_profiler_install_gc_moves
-mono_profiler_install_gc_roots
-mono_profiler_install_iomap
-mono_profiler_install_jit_compile
-mono_profiler_install_jit_end
-mono_profiler_install_method_free
-mono_profiler_install_method_invoke
-mono_profiler_install_module
-mono_profiler_install_monitor
-mono_profiler_install_runtime_initialized
-mono_profiler_install_statistical
-mono_profiler_install_statistical_call_chain
-mono_profiler_install_thread
-mono_profiler_install_thread_name
-mono_profiler_install_transition
-mono_profiler_load
-mono_profiler_set_events
-mono_property_get_flags
-mono_property_get_get_method
-mono_property_get_name
-mono_property_get_object
-mono_property_get_parent
-mono_property_get_set_method
-mono_property_get_value
-mono_property_hash_destroy
-mono_property_hash_insert
-mono_property_hash_lookup
-mono_property_hash_new
-mono_property_hash_remove_object
-mono_property_set_value
-mono_ptr_class_get
-mono_raise_exception
-mono_realloc_native_code
-mono_reflection_free_type_info
-mono_reflection_get_custom_attrs
-mono_reflection_get_custom_attrs_blob
-mono_reflection_get_custom_attrs_by_type
-mono_reflection_get_custom_attrs_data
-mono_reflection_get_custom_attrs_info
-mono_reflection_get_token
-mono_reflection_get_type
-mono_reflection_parse_type
-mono_reflection_type_from_name
-mono_reflection_type_get_type
-mono_register_bundled_assemblies
-mono_register_config_for_assembly
-mono_register_machine_config
-mono_register_symfile_for_assembly
-mono_replace_ins
-mono_runtime_class_init
-mono_runtime_cleanup
-mono_runtime_delegate_invoke
-mono_runtime_exec_main
-mono_runtime_exec_managed_code
-mono_runtime_get_main_args
-mono_runtime_init
-mono_runtime_invoke
-mono_runtime_invoke_array
-mono_runtime_is_shutting_down
-mono_runtime_object_init
-mono_runtime_quit
-mono_runtime_resource_check_limit
-mono_runtime_resource_limit
-mono_runtime_resource_set_callback
-mono_runtime_run_main
-mono_runtime_set_shutting_down
-mono_security_core_clr_get_options
-mono_security_core_clr_require_elevated_permissions
-mono_security_core_clr_set_options
-mono_security_enable_core_clr
-mono_security_set_core_clr_platform_callback
-mono_sem_post
-mono_sem_timedwait
-mono_sem_wait
-mono_set_assemblies_path
-mono_set_break_policy
-mono_set_config_dir
-mono_set_defaults
-mono_set_dirs
-mono_set_is_debugger_attached
-mono_set_rootdir
-mono_set_signal_chaining
-mono_sha1_final
-mono_sha1_get_digest
-mono_sha1_get_digest_from_file
-mono_sha1_init
-mono_sha1_update
-mono_shared_area
-mono_shared_area_for_pid
-mono_shared_area_instances
-mono_shared_area_remove
-mono_shared_area_unload
-mono_signature_explicit_this
-mono_signature_get_call_conv
-mono_signature_get_desc
-mono_signature_get_param_count
-mono_signature_get_params
-mono_signature_get_return_type
-mono_signature_hash
-mono_signature_is_instance
-mono_signature_param_is_out
-mono_signature_vararg_start
-mono_signbit_double
-mono_signbit_float
-mono_stack_walk
-mono_stack_walk_no_il
-mono_store_remote_field
-mono_store_remote_field_new
-mono_string_chars
-mono_string_equal
-mono_string_from_bstr
-mono_string_from_utf16
-mono_string_hash
-mono_string_intern
-mono_string_is_interned
-mono_string_length
-mono_string_new
-mono_string_new_len
-mono_string_new_size
-mono_string_new_utf16
-mono_string_new_wrapper
-mono_string_to_utf16
-mono_string_to_utf8
-mono_string_to_utf8_checked
-mono_stringify_assembly_name
-mono_table_info_get_rows
-mono_thread_attach
-mono_thread_cleanup
-mono_thread_create
-mono_thread_current
-mono_thread_detach
-mono_thread_exit
-mono_thread_get_main
-mono_thread_get_undeniable_exception
-mono_thread_init
-mono_thread_is_foreign
-mono_thread_manage
-mono_thread_new_init
-mono_thread_set_main
-mono_thread_set_manage_callback
-mono_thread_stop
-mono_threads_get_default_stacksize
-mono_threads_request_thread_dump
-mono_threads_set_default_stacksize
-mono_tls_key_get_offset
-mono_tls_key_set_offset
-mono_trace_set_level_string
-mono_trace_set_mask_string
-mono_type_create_from_typespec
-mono_type_full_name
-mono_type_generic_inst_is_valuetype
-mono_type_get_array_type
-mono_type_get_class
-mono_type_get_desc
-mono_type_get_modifiers
-mono_type_get_name
-mono_type_get_object
-mono_type_get_ptr_type
-mono_type_get_signature
-mono_type_get_type
-mono_type_get_underlying_type
-mono_type_is_byref
-mono_type_is_pointer
-mono_type_is_reference
-mono_type_is_struct
-mono_type_is_valid_enum_basetype
-mono_type_is_void
-mono_type_size
-mono_type_stack_size
-mono_type_to_unmanaged
-mono_unhandled_exception
-mono_unicode_from_external
-mono_unicode_to_external
-mono_upgrade_remote_class_wrapper
-mono_utf8_from_external
-mono_utf8_validate_and_len
-mono_utf8_validate_and_len_with_bounds
-mono_valloc
-mono_valloc_aligned
-mono_value_box
-mono_value_copy
-mono_value_copy_array
-mono_value_describe_fields
-mono_verify_corlib
-mono_vfree
-mono_vtable_get_static_field_data
-mono_win32_compat_CopyMemory
-mono_win32_compat_FillMemory
-mono_win32_compat_MoveMemory
-mono_win32_compat_ZeroMemory
-mono_xdebug_flush
index 5e57c01b5dd91ad006d1752bfd865ecd40daa186..275e4c17c95efe7c35b181ead4fa308851e7bf6e 100644 (file)
   <PropertyGroup Label="UserMacros" />\r
   <PropertyGroup>\r
     <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
   </PropertyGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
     <ClCompile>\r
       <Optimization>Disabled</Optimization>\r
-      <AdditionalIncludeDirectories>..\;..\libgc\include;..\VSDependancies\include\glib-2.0\glib;..\VSDependancies\include;..\mono\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <AdditionalIncludeDirectories>$(SolutionDir)..\eglib\src\;$(SolutionDir)..\;$(SolutionDir)..\mono\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
       <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WINDOWS;__WIN32__;HOST_WIN32;TARGET_WIN32;__i386__;TARGET_X86;GC_NOT_DLL;GC_GCJ_SUPPORT;GC_WIN32_THREADS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <MinimalRebuild>true</MinimalRebuild>\r
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
@@ -98,7 +98,7 @@
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>glib-2.0.lib;ws2_32.lib;gthread-2.0.lib;libgc.lib;mono.lib;Psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>Psapi.lib;Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)_$(Configuration)/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <SubSystem>Console</SubSystem>\r
       </PrecompiledHeader>\r
       <WarningLevel>Level3</WarningLevel>\r
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <AdditionalIncludeDirectories>$(SolutionDir)..\eglib\src\;$(SolutionDir)..\;$(SolutionDir)..\mono\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
     </ClCompile>\r
     <ProjectReference>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>glib-2.0.lib;ws2_32.lib;gthread-2.0.lib;libmono.lib;Psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>Psapi.lib;Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)_$(Configuration)/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <SubSystem>Console</SubSystem>\r
     </Midl>\r
     <ClCompile>\r
       <Optimization>Disabled</Optimization>\r
-      <AdditionalIncludeDirectories>..\;..\libgc\include;..\VSDependancies\include\glib-2.0\glib;..\VSDependancies\include;..\mono\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <AdditionalIncludeDirectories>$(SolutionDir)..\eglib\src\;$(SolutionDir)..\;$(SolutionDir)..\mono\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
       <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WINDOWS;__WIN32__;HOST_WIN32;TARGET_WIN32;__i386__;TARGET_X86;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <MinimalRebuild>true</MinimalRebuild>\r
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>glib-2.0.lib;ws2_32.lib;gthread-2.0.lib;libmono.lib;Psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>Psapi.lib;Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)_$(Configuration)/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <SubSystem>Console</SubSystem>\r
       </PrecompiledHeader>\r
       <WarningLevel>Level3</WarningLevel>\r
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <AdditionalIncludeDirectories>$(SolutionDir)..\eglib\src\;$(SolutionDir)..\;$(SolutionDir)..\mono\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
     </ClCompile>\r
     <ProjectReference>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>glib-2.0.lib;ws2_32.lib;gthread-2.0.lib;libmono.lib;Psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>Psapi.lib;Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)_$(Configuration)/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <SubSystem>Console</SubSystem>\r
     </Link>\r
   </ItemDefinitionGroup>\r
   <ItemGroup>\r
-    <ClCompile Include="..\mono\utils\strtod.c" />\r
     <ClCompile Include="..\mono\metadata\appdomain.c" />\r
     <ClCompile Include="..\mono\metadata\assembly.c" />\r
     <ClCompile Include="..\mono\metadata\boehm-gc.c" />\r
     <ClCompile Include="..\mono\metadata\class.c" />\r
     <ClCompile Include="..\mono\metadata\console-win32.c" />\r
-    <ClCompile Include="..\mono\metadata\decimal.c" />\r
     <ClCompile Include="..\mono\metadata\domain.c" />\r
     <ClCompile Include="..\mono\metadata\environment.c" />\r
     <ClCompile Include="..\mono\metadata\file-io.c" />\r
     <ClCompile Include="..\mono\metadata\process.c" />\r
     <ClCompile Include="..\mono\metadata\profiler.c" />\r
     <ClCompile Include="..\mono\metadata\rand.c" />\r
-    <ClCompile Include="..\mono\metadata\rawbuffer.c" />\r
     <ClCompile Include="..\mono\metadata\reflection.c" />\r
     <ClCompile Include="..\mono\metadata\security-manager.c" />\r
-    <ClCompile Include="..\mono\metadata\security.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\threads.c" />\r
   </ItemGroup>\r
   <ItemGroup>\r
+    <ProjectReference Include="eglib.vcxproj">\r
+      <Project>{158073ed-99ae-4196-9edc-ddb2344f8466}</Project>\r
+      <Private>false</Private>\r
+      <ReferenceOutputAssembly>true</ReferenceOutputAssembly>\r
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>\r
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>\r
+    </ProjectReference>\r
+    <ProjectReference Include="libgc.vcxproj">\r
+      <Project>{eb56000b-c80b-4e8b-908d-d84d31b517d3}</Project>\r
+      <Private>false</Private>\r
+      <ReferenceOutputAssembly>true</ReferenceOutputAssembly>\r
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>\r
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>\r
+    </ProjectReference>\r
     <ProjectReference Include="libmono.vcxproj">\r
       <Project>{cb0d9e92-293c-439c-9ac7-c5f59b6e0771}</Project>\r
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+      <ReferenceOutputAssembly>true</ReferenceOutputAssembly>\r
+      <Private>false</Private>\r
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>\r
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>\r
+    </ProjectReference>\r
+    <ProjectReference Include="libmonoruntime.vcxproj">\r
+      <Project>{c36612bd-22d3-4b95-85e2-7fdc4fc5d739}</Project>\r
+      <Private>false</Private>\r
+      <ReferenceOutputAssembly>true</ReferenceOutputAssembly>\r
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>\r
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>\r
+    </ProjectReference>\r
+    <ProjectReference Include="libmonoutils.vcxproj">\r
+      <Project>{8fc2b0c8-51ad-49df-851f-5d01a77a75e4}</Project>\r
+      <Private>false</Private>\r
+      <ReferenceOutputAssembly>true</ReferenceOutputAssembly>\r
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>\r
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>\r
     </ProjectReference>\r
   </ItemGroup>\r
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
index ecfc8d6953c2c425241da579a84e2ce28e4d254a..2088fa3f0acf3f4f0573e740b00ff492b00a37d3 100644 (file)
   <PropertyGroup Label="UserMacros" />\r
   <PropertyGroup>\r
     <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
   </PropertyGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
     <ClCompile>\r
       <Optimization>Disabled</Optimization>\r
-      <AdditionalIncludeDirectories>..\..\..\libgc\include;..\..\VSDependancies\include\glib-2.0;..\..\VSDependancies\include\glib-2.0\glib;..\..\VSDependancies\lib\glib-2.0\include;..\..\VSDependancies\include;..\..\;C:\cygwin\opt\mono\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
       <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <MinimalRebuild>true</MinimalRebuild>\r
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
@@ -97,7 +97,7 @@
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>glib-2.0.lib;gmodule-2.0.lib;ws2_32.lib;gthread-2.0.lib;gobject-2.0.lib;libmono.lib;Psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>ws2_32.lib;Psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)_$(Configuration)/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <SubSystem>Console</SubSystem>\r
       </PrecompiledHeader>\r
       <WarningLevel>Level3</WarningLevel>\r
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
     </ClCompile>\r
     <ProjectReference>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </Midl>\r
     <ClCompile>\r
       <Optimization>Disabled</Optimization>\r
-      <AdditionalIncludeDirectories>..\..\..\libgc\include;..\..\VSDependancies\include\glib-2.0;..\..\VSDependancies\include\glib-2.0\glib;..\..\VSDependancies\lib\glib-2.0\include;..\..\VSDependancies\include;..\..\;C:\cygwin\opt\mono\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
       <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <MinimalRebuild>true</MinimalRebuild>\r
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
       </PrecompiledHeader>\r
       <WarningLevel>Level3</WarningLevel>\r
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
     </ClCompile>\r
     <ProjectReference>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     <ProjectReference Include="libmono.vcxproj">\r
       <Project>{cb0d9e92-293c-439c-9ac7-c5f59b6e0771}</Project>\r
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+      <Private>false</Private>\r
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>\r
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>\r
     </ProjectReference>\r
   </ItemGroup>\r
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
index 3159e42dbb82f9e1cca8e6ccd4a1fa93f00d1eba..42a5bd68e092bd3c059328a98257b833996cd210 100644 (file)
   <PropertyGroup Label="UserMacros" />\r
   <PropertyGroup>\r
     <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
   </PropertyGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
     <ClCompile>\r
       <Optimization>Disabled</Optimization>\r
-      <AdditionalIncludeDirectories>..\..;..\..\VSDependancies\include\glib-2.0\glib;..\..\VSDependancies\include;C:\cygwin\opt\mono\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <AdditionalIncludeDirectories>$(SolutionDir)..\eglib\src;$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
       <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <MinimalRebuild>true</MinimalRebuild>\r
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
@@ -97,7 +97,7 @@
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>glib-2.0.lib;gmodule-2.0.lib;ws2_32.lib;gthread-2.0.lib;gobject-2.0.lib;libmono.lib;Psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>ws2_32.lib;Psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)_$(Configuration)/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <SubSystem>Console</SubSystem>\r
       </PrecompiledHeader>\r
       <WarningLevel>Level3</WarningLevel>\r
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <AdditionalIncludeDirectories>$(SolutionDir)..\eglib\src;$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
     </ClCompile>\r
     <ProjectReference>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </Midl>\r
     <ClCompile>\r
       <Optimization>Disabled</Optimization>\r
-      <AdditionalIncludeDirectories>..\..;..\..\VSDependancies\include\glib-2.0\glib;..\..\VSDependancies\include;C:\cygwin\opt\mono\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <AdditionalIncludeDirectories>$(SolutionDir)..\eglib\src;$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
       <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <MinimalRebuild>true</MinimalRebuild>\r
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
       </PrecompiledHeader>\r
       <WarningLevel>Level3</WarningLevel>\r
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <AdditionalIncludeDirectories>$(SolutionDir)..\eglib\src;$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
     </ClCompile>\r
     <ProjectReference>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     <ProjectReference Include="libmono.vcxproj">\r
       <Project>{cb0d9e92-293c-439c-9ac7-c5f59b6e0771}</Project>\r
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+      <Private>false</Private>\r
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>\r
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>\r
     </ProjectReference>\r
   </ItemGroup>\r
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
index 69a9aefb9c0520e2952dd187cb6317620c5e553e..6986e99de777b4c346960db7ce742ce6668b42a0 100644 (file)
   <PropertyGroup Label="UserMacros" />\r
   <PropertyGroup>\r
     <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
   </PropertyGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
     <ClCompile>\r
@@ -89,7 +89,7 @@
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>Ws2_32.lib;Psapi.lib;eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>Ws2_32.lib;Psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <OptimizeReferences>false</OptimizeReferences>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>Ws2_32.lib;Psapi.lib;eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>Ws2_32.lib;Psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
       <DataExecutionPrevention>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>Ws2_32.lib;Psapi.lib;eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>Ws2_32.lib;Psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <OptimizeReferences>false</OptimizeReferences>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>Ws2_32.lib;Psapi.lib;eglib.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>Ws2_32.lib;Psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <TargetMachine>MachineX64</TargetMachine>\r
     </Link>\r
     <ProjectReference Include="eglib.vcxproj">\r
       <Project>{158073ed-99ae-4196-9edc-ddb2344f8466}</Project>\r
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+      <Private>false</Private>\r
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>\r
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>\r
     </ProjectReference>\r
   </ItemGroup>\r
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
index 8ec30a352f2d7ebbb1973164d584c3c912448348..772dd3692c51cebdf903baa56d5465c814a8cecd 100644 (file)
   <PropertyGroup Label="UserMacros" />\r
   <PropertyGroup>\r
     <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)_$(Configuration)/bin\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)_$(Configuration)/obj/$(ProjectName)\</IntDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\bin\$(Configuration)\</OutDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\obj\$(ProjectName)\$(Configuration)\</IntDir>\r
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
   </PropertyGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
     <ClCompile>\r
       <Optimization>Disabled</Optimization>\r
-      <AdditionalIncludeDirectories>..\..\..\libgc\include;..\..\VSDependancies\include\glib-2.0;..\..\VSDependancies\include\glib-2.0\glib;..\..\VSDependancies\lib\glib-2.0\include;..\..\VSDependancies\include;..\..\;C:\cygwin\opt\mono\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
       <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <MinimalRebuild>true</MinimalRebuild>\r
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
@@ -97,7 +97,7 @@
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </ProjectReference>\r
     <Link>\r
-      <AdditionalDependencies>glib-2.0.lib;gmodule-2.0.lib;ws2_32.lib;gthread-2.0.lib;gobject-2.0.lib;libmono.lib;Psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>ws2_32.lib;Psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
       <AdditionalLibraryDirectories>$(Platform)_$(Configuration)/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <SubSystem>Console</SubSystem>\r
       </PrecompiledHeader>\r
       <WarningLevel>Level3</WarningLevel>\r
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
     </ClCompile>\r
     <ProjectReference>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     </Midl>\r
     <ClCompile>\r
       <Optimization>Disabled</Optimization>\r
-      <AdditionalIncludeDirectories>..\..\..\libgc\include;..\..\VSDependancies\include\glib-2.0;..\..\VSDependancies\include\glib-2.0\glib;..\..\VSDependancies\lib\glib-2.0\include;..\..\VSDependancies\include;..\..\;C:\cygwin\opt\mono\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
       <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <MinimalRebuild>true</MinimalRebuild>\r
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
       </PrecompiledHeader>\r
       <WarningLevel>Level3</WarningLevel>\r
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <AdditionalIncludeDirectories>$(SolutionDir)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
     </ClCompile>\r
     <ProjectReference>\r
       <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
     <ProjectReference Include="libmono.vcxproj">\r
       <Project>{cb0d9e92-293c-439c-9ac7-c5f59b6e0771}</Project>\r
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+      <Private>false</Private>\r
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>\r
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>\r
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>\r
     </ProjectReference>\r
   </ItemGroup>\r
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
index 8f9d7470e0f8179547dfe942a24f2b1fcd8cc089..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
 
@@ -27,9 +27,9 @@ SUPPORT_FILES = $(symlinks) mono-wrapper etc/mono/config
 
 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
@@ -37,7 +37,11 @@ build_profiles += monodroid
 endif
 
 if INSTALL_MONOTOUCH
-build_profiles += monotouch monotouch_runtime monotouch_watch
+build_profiles += monotouch monotouch_runtime
+endif
+
+if INSTALL_MONOTOUCH_WATCH
+build_profiles += monotouch_watch
 endif
 
 if INSTALL_XAMMAC
@@ -107,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; \
@@ -140,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 c91511cf0e24d3f70f944a3e2676c44b92c2f01a..79154fc99bbd9b232eb8c4bd1e16119b07d9bb45 100644 (file)
@@ -39,6 +39,7 @@ MPH_UNIX_SOURCE =                             \
        serial.c                                \
        sys-mman.c                              \
        sys-sendfile.c                          \
+       sys-socket.c                            \
        sys-stat.c                              \
        sys-statvfs.c                           \
        sys-time.c                              \
@@ -135,12 +136,14 @@ refresh:
        --impl-macro=_GNU_SOURCE --impl-macro=_XOPEN_SOURCE   \
        --impl-header="<sys/types.h>"                         \
        --impl-header="<sys/stat.h>"                          \
+       --autoconf-header="<netinet/in.h>"                    \
        --autoconf-header="<sys/time.h>"                      \
        --autoconf-header="<sys/poll.h>"                      \
        --autoconf-header="<sys/wait.h>"                      \
        --autoconf-header="<sys/statvfs.h>"                   \
        --autoconf-header="<sys/xattr.h>"                     \
        --autoconf-header="<sys/mman.h>"                      \
+       --autoconf-header="<sys/socket.h>"                    \
        --autoconf-header="<sys/uio.h>"                       \
        --autoconf-header="<unistd.h>"                        \
        --impl-header="<fcntl.h>"                             \
@@ -158,7 +161,7 @@ refresh:
        --rename-member=st_mtime=st_mtime_                    \
        --rename-namespace=Mono.Unix.Native=Mono.Posix        \
        --library=MonoPosixHelper                             \
-       $(mcs_topdir)/class/lib/net_4_5/Mono.Posix.dll map
+       $(mcs_topdir)/class/lib/net_4_x/Mono.Posix.dll map
 
 # Useful if mono is compiled with --enable-shared=no
 patch-libtool:
index 26ee780169183aff8538e23987818f38721356f4..74c2fdf5648bd0613f87d8cb93b41431e1481e2d 100644 (file)
@@ -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 737c217727585521e981daf3f93ed8c7b5eb1f7b..ee61ae661d9be7e741c0997fdf7e6de54ccc5d9a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * This file was automatically generated by create-native-map from /cvs/mono/mcs/class/lib/net_4_5/Mono.Posix.dll.
+ * This file was automatically generated by create-native-map from /home/kiesssn/prog/mono/mono/mcs/class/lib/net_4_x/Mono.Posix.dll.
  *
  * DO NOT MODIFY.
  */
@@ -27,6 +27,9 @@
  */
 #include <sys/types.h>
 #include <sys/stat.h>
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif /* ndef HAVE_NETINET_IN_H */
 #ifdef HAVE_SYS_TIME_H
 #include <sys/time.h>
 #endif /* ndef HAVE_SYS_TIME_H */
@@ -45,6 +48,9 @@
 #ifdef HAVE_SYS_MMAN_H
 #include <sys/mman.h>
 #endif /* ndef HAVE_SYS_MMAN_H */
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif /* ndef HAVE_SYS_SOCKET_H */
 #ifdef HAVE_SYS_UIO_H
 #include <sys/uio.h>
 #endif /* ndef HAVE_SYS_UIO_H */
@@ -3115,6 +3121,40 @@ Mono_Posix_ToIovec (struct iovec *from, struct Mono_Posix_Iovec *to)
 #endif /* ndef HAVE_STRUCT_IOVEC */
 
 
+#ifdef HAVE_STRUCT_LINGER
+int
+Mono_Posix_FromLinger (struct Mono_Posix_Linger *from, struct linger *to)
+{
+       _cnm_return_val_if_overflow (int, from->l_onoff, -1);
+       _cnm_return_val_if_overflow (int, from->l_linger, -1);
+
+       memset (to, 0, sizeof(*to));
+
+       to->l_onoff  = from->l_onoff;
+       to->l_linger = from->l_linger;
+
+       return 0;
+}
+#endif /* ndef HAVE_STRUCT_LINGER */
+
+
+#ifdef HAVE_STRUCT_LINGER
+int
+Mono_Posix_ToLinger (struct linger *from, struct Mono_Posix_Linger *to)
+{
+       _cnm_return_val_if_overflow (int, from->l_onoff, -1);
+       _cnm_return_val_if_overflow (int, from->l_linger, -1);
+
+       memset (to, 0, sizeof(*to));
+
+       to->l_onoff  = from->l_onoff;
+       to->l_linger = from->l_linger;
+
+       return 0;
+}
+#endif /* ndef HAVE_STRUCT_LINGER */
+
+
 int Mono_Posix_FromLockType (short x, short *r)
 {
        *r = 0;
@@ -3217,6 +3257,212 @@ int Mono_Posix_ToLockfCommand (int x, int *r)
        errno = EINVAL; return -1;
 }
 
+int Mono_Posix_FromMessageFlags (int x, int *r)
+{
+       *r = 0;
+       if ((x & Mono_Posix_MessageFlags_MSG_CMSG_CLOEXEC) == Mono_Posix_MessageFlags_MSG_CMSG_CLOEXEC)
+#ifdef MSG_CMSG_CLOEXEC
+               *r |= MSG_CMSG_CLOEXEC;
+#else /* def MSG_CMSG_CLOEXEC */
+               {errno = EINVAL; return -1;}
+#endif /* ndef MSG_CMSG_CLOEXEC */
+       if ((x & Mono_Posix_MessageFlags_MSG_CONFIRM) == Mono_Posix_MessageFlags_MSG_CONFIRM)
+#ifdef MSG_CONFIRM
+               *r |= MSG_CONFIRM;
+#else /* def MSG_CONFIRM */
+               {errno = EINVAL; return -1;}
+#endif /* ndef MSG_CONFIRM */
+       if ((x & Mono_Posix_MessageFlags_MSG_CTRUNC) == Mono_Posix_MessageFlags_MSG_CTRUNC)
+#ifdef MSG_CTRUNC
+               *r |= MSG_CTRUNC;
+#else /* def MSG_CTRUNC */
+               {errno = EINVAL; return -1;}
+#endif /* ndef MSG_CTRUNC */
+       if ((x & Mono_Posix_MessageFlags_MSG_DONTROUTE) == Mono_Posix_MessageFlags_MSG_DONTROUTE)
+#ifdef MSG_DONTROUTE
+               *r |= MSG_DONTROUTE;
+#else /* def MSG_DONTROUTE */
+               {errno = EINVAL; return -1;}
+#endif /* ndef MSG_DONTROUTE */
+       if ((x & Mono_Posix_MessageFlags_MSG_DONTWAIT) == Mono_Posix_MessageFlags_MSG_DONTWAIT)
+#ifdef MSG_DONTWAIT
+               *r |= MSG_DONTWAIT;
+#else /* def MSG_DONTWAIT */
+               {errno = EINVAL; return -1;}
+#endif /* ndef MSG_DONTWAIT */
+       if ((x & Mono_Posix_MessageFlags_MSG_EOR) == Mono_Posix_MessageFlags_MSG_EOR)
+#ifdef MSG_EOR
+               *r |= MSG_EOR;
+#else /* def MSG_EOR */
+               {errno = EINVAL; return -1;}
+#endif /* ndef MSG_EOR */
+       if ((x & Mono_Posix_MessageFlags_MSG_ERRQUEUE) == Mono_Posix_MessageFlags_MSG_ERRQUEUE)
+#ifdef MSG_ERRQUEUE
+               *r |= MSG_ERRQUEUE;
+#else /* def MSG_ERRQUEUE */
+               {errno = EINVAL; return -1;}
+#endif /* ndef MSG_ERRQUEUE */
+       if ((x & Mono_Posix_MessageFlags_MSG_FASTOPEN) == Mono_Posix_MessageFlags_MSG_FASTOPEN)
+#ifdef MSG_FASTOPEN
+               *r |= MSG_FASTOPEN;
+#else /* def MSG_FASTOPEN */
+               {errno = EINVAL; return -1;}
+#endif /* ndef MSG_FASTOPEN */
+       if ((x & Mono_Posix_MessageFlags_MSG_FIN) == Mono_Posix_MessageFlags_MSG_FIN)
+#ifdef MSG_FIN
+               *r |= MSG_FIN;
+#else /* def MSG_FIN */
+               {errno = EINVAL; return -1;}
+#endif /* ndef MSG_FIN */
+       if ((x & Mono_Posix_MessageFlags_MSG_MORE) == Mono_Posix_MessageFlags_MSG_MORE)
+#ifdef MSG_MORE
+               *r |= MSG_MORE;
+#else /* def MSG_MORE */
+               {errno = EINVAL; return -1;}
+#endif /* ndef MSG_MORE */
+       if ((x & Mono_Posix_MessageFlags_MSG_NOSIGNAL) == Mono_Posix_MessageFlags_MSG_NOSIGNAL)
+#ifdef MSG_NOSIGNAL
+               *r |= MSG_NOSIGNAL;
+#else /* def MSG_NOSIGNAL */
+               {errno = EINVAL; return -1;}
+#endif /* ndef MSG_NOSIGNAL */
+       if ((x & Mono_Posix_MessageFlags_MSG_OOB) == Mono_Posix_MessageFlags_MSG_OOB)
+#ifdef MSG_OOB
+               *r |= MSG_OOB;
+#else /* def MSG_OOB */
+               {errno = EINVAL; return -1;}
+#endif /* ndef MSG_OOB */
+       if ((x & Mono_Posix_MessageFlags_MSG_PEEK) == Mono_Posix_MessageFlags_MSG_PEEK)
+#ifdef MSG_PEEK
+               *r |= MSG_PEEK;
+#else /* def MSG_PEEK */
+               {errno = EINVAL; return -1;}
+#endif /* ndef MSG_PEEK */
+       if ((x & Mono_Posix_MessageFlags_MSG_PROXY) == Mono_Posix_MessageFlags_MSG_PROXY)
+#ifdef MSG_PROXY
+               *r |= MSG_PROXY;
+#else /* def MSG_PROXY */
+               {errno = EINVAL; return -1;}
+#endif /* ndef MSG_PROXY */
+       if ((x & Mono_Posix_MessageFlags_MSG_RST) == Mono_Posix_MessageFlags_MSG_RST)
+#ifdef MSG_RST
+               *r |= MSG_RST;
+#else /* def MSG_RST */
+               {errno = EINVAL; return -1;}
+#endif /* ndef MSG_RST */
+       if ((x & Mono_Posix_MessageFlags_MSG_SYN) == Mono_Posix_MessageFlags_MSG_SYN)
+#ifdef MSG_SYN
+               *r |= MSG_SYN;
+#else /* def MSG_SYN */
+               {errno = EINVAL; return -1;}
+#endif /* ndef MSG_SYN */
+       if ((x & Mono_Posix_MessageFlags_MSG_TRUNC) == Mono_Posix_MessageFlags_MSG_TRUNC)
+#ifdef MSG_TRUNC
+               *r |= MSG_TRUNC;
+#else /* def MSG_TRUNC */
+               {errno = EINVAL; return -1;}
+#endif /* ndef MSG_TRUNC */
+       if ((x & Mono_Posix_MessageFlags_MSG_WAITALL) == Mono_Posix_MessageFlags_MSG_WAITALL)
+#ifdef MSG_WAITALL
+               *r |= MSG_WAITALL;
+#else /* def MSG_WAITALL */
+               {errno = EINVAL; return -1;}
+#endif /* ndef MSG_WAITALL */
+       if ((x & Mono_Posix_MessageFlags_MSG_WAITFORONE) == Mono_Posix_MessageFlags_MSG_WAITFORONE)
+#ifdef MSG_WAITFORONE
+               *r |= MSG_WAITFORONE;
+#else /* def MSG_WAITFORONE */
+               {errno = EINVAL; return -1;}
+#endif /* ndef MSG_WAITFORONE */
+       if (x == 0)
+               return 0;
+       return 0;
+}
+
+int Mono_Posix_ToMessageFlags (int x, int *r)
+{
+       *r = 0;
+       if (x == 0)
+               return 0;
+#ifdef MSG_CMSG_CLOEXEC
+       if ((x & MSG_CMSG_CLOEXEC) == MSG_CMSG_CLOEXEC)
+               *r |= Mono_Posix_MessageFlags_MSG_CMSG_CLOEXEC;
+#endif /* ndef MSG_CMSG_CLOEXEC */
+#ifdef MSG_CONFIRM
+       if ((x & MSG_CONFIRM) == MSG_CONFIRM)
+               *r |= Mono_Posix_MessageFlags_MSG_CONFIRM;
+#endif /* ndef MSG_CONFIRM */
+#ifdef MSG_CTRUNC
+       if ((x & MSG_CTRUNC) == MSG_CTRUNC)
+               *r |= Mono_Posix_MessageFlags_MSG_CTRUNC;
+#endif /* ndef MSG_CTRUNC */
+#ifdef MSG_DONTROUTE
+       if ((x & MSG_DONTROUTE) == MSG_DONTROUTE)
+               *r |= Mono_Posix_MessageFlags_MSG_DONTROUTE;
+#endif /* ndef MSG_DONTROUTE */
+#ifdef MSG_DONTWAIT
+       if ((x & MSG_DONTWAIT) == MSG_DONTWAIT)
+               *r |= Mono_Posix_MessageFlags_MSG_DONTWAIT;
+#endif /* ndef MSG_DONTWAIT */
+#ifdef MSG_EOR
+       if ((x & MSG_EOR) == MSG_EOR)
+               *r |= Mono_Posix_MessageFlags_MSG_EOR;
+#endif /* ndef MSG_EOR */
+#ifdef MSG_ERRQUEUE
+       if ((x & MSG_ERRQUEUE) == MSG_ERRQUEUE)
+               *r |= Mono_Posix_MessageFlags_MSG_ERRQUEUE;
+#endif /* ndef MSG_ERRQUEUE */
+#ifdef MSG_FASTOPEN
+       if ((x & MSG_FASTOPEN) == MSG_FASTOPEN)
+               *r |= Mono_Posix_MessageFlags_MSG_FASTOPEN;
+#endif /* ndef MSG_FASTOPEN */
+#ifdef MSG_FIN
+       if ((x & MSG_FIN) == MSG_FIN)
+               *r |= Mono_Posix_MessageFlags_MSG_FIN;
+#endif /* ndef MSG_FIN */
+#ifdef MSG_MORE
+       if ((x & MSG_MORE) == MSG_MORE)
+               *r |= Mono_Posix_MessageFlags_MSG_MORE;
+#endif /* ndef MSG_MORE */
+#ifdef MSG_NOSIGNAL
+       if ((x & MSG_NOSIGNAL) == MSG_NOSIGNAL)
+               *r |= Mono_Posix_MessageFlags_MSG_NOSIGNAL;
+#endif /* ndef MSG_NOSIGNAL */
+#ifdef MSG_OOB
+       if ((x & MSG_OOB) == MSG_OOB)
+               *r |= Mono_Posix_MessageFlags_MSG_OOB;
+#endif /* ndef MSG_OOB */
+#ifdef MSG_PEEK
+       if ((x & MSG_PEEK) == MSG_PEEK)
+               *r |= Mono_Posix_MessageFlags_MSG_PEEK;
+#endif /* ndef MSG_PEEK */
+#ifdef MSG_PROXY
+       if ((x & MSG_PROXY) == MSG_PROXY)
+               *r |= Mono_Posix_MessageFlags_MSG_PROXY;
+#endif /* ndef MSG_PROXY */
+#ifdef MSG_RST
+       if ((x & MSG_RST) == MSG_RST)
+               *r |= Mono_Posix_MessageFlags_MSG_RST;
+#endif /* ndef MSG_RST */
+#ifdef MSG_SYN
+       if ((x & MSG_SYN) == MSG_SYN)
+               *r |= Mono_Posix_MessageFlags_MSG_SYN;
+#endif /* ndef MSG_SYN */
+#ifdef MSG_TRUNC
+       if ((x & MSG_TRUNC) == MSG_TRUNC)
+               *r |= Mono_Posix_MessageFlags_MSG_TRUNC;
+#endif /* ndef MSG_TRUNC */
+#ifdef MSG_WAITALL
+       if ((x & MSG_WAITALL) == MSG_WAITALL)
+               *r |= Mono_Posix_MessageFlags_MSG_WAITALL;
+#endif /* ndef MSG_WAITALL */
+#ifdef MSG_WAITFORONE
+       if ((x & MSG_WAITFORONE) == MSG_WAITFORONE)
+               *r |= Mono_Posix_MessageFlags_MSG_WAITFORONE;
+#endif /* ndef MSG_WAITFORONE */
+       return 0;
+}
+
 int Mono_Posix_FromMlockallFlags (int x, int *r)
 {
        *r = 0;
@@ -4491,6 +4737,52 @@ int Mono_Posix_ToSeekFlags (short x, short *r)
        errno = EINVAL; return -1;
 }
 
+int Mono_Posix_FromShutdownOption (int x, int *r)
+{
+       *r = 0;
+       if (x == Mono_Posix_ShutdownOption_SHUT_RD)
+#ifdef SHUT_RD
+               {*r = SHUT_RD; return 0;}
+#else /* def SHUT_RD */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SHUT_RD */
+       if (x == Mono_Posix_ShutdownOption_SHUT_RDWR)
+#ifdef SHUT_RDWR
+               {*r = SHUT_RDWR; return 0;}
+#else /* def SHUT_RDWR */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SHUT_RDWR */
+       if (x == Mono_Posix_ShutdownOption_SHUT_WR)
+#ifdef SHUT_WR
+               {*r = SHUT_WR; return 0;}
+#else /* def SHUT_WR */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SHUT_WR */
+       if (x == 0)
+               return 0;
+       errno = EINVAL; return -1;
+}
+
+int Mono_Posix_ToShutdownOption (int x, int *r)
+{
+       *r = 0;
+       if (x == 0)
+               return 0;
+#ifdef SHUT_RD
+       if (x == SHUT_RD)
+               {*r = Mono_Posix_ShutdownOption_SHUT_RD; return 0;}
+#endif /* ndef SHUT_RD */
+#ifdef SHUT_RDWR
+       if (x == SHUT_RDWR)
+               {*r = Mono_Posix_ShutdownOption_SHUT_RDWR; return 0;}
+#endif /* ndef SHUT_RDWR */
+#ifdef SHUT_WR
+       if (x == SHUT_WR)
+               {*r = Mono_Posix_ShutdownOption_SHUT_WR; return 0;}
+#endif /* ndef SHUT_WR */
+       errno = EINVAL; return -1;
+}
+
 int Mono_Posix_FromSignum (int x, int *r)
 {
        *r = 0;
@@ -7373,6 +7665,1286 @@ Mono_Posix_ToTimezone (struct timezone *from, struct Mono_Posix_Timezone *to)
 #endif /* ndef HAVE_STRUCT_TIMEZONE */
 
 
+int Mono_Posix_FromUnixAddressFamily (int x, int *r)
+{
+       *r = 0;
+       if (x == Mono_Posix_UnixAddressFamily_AF_ALG)
+#ifdef AF_ALG
+               {*r = AF_ALG; return 0;}
+#else /* def AF_ALG */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_ALG */
+       if (x == Mono_Posix_UnixAddressFamily_AF_APPLETALK)
+#ifdef AF_APPLETALK
+               {*r = AF_APPLETALK; return 0;}
+#else /* def AF_APPLETALK */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_APPLETALK */
+       if (x == Mono_Posix_UnixAddressFamily_AF_ASH)
+#ifdef AF_ASH
+               {*r = AF_ASH; return 0;}
+#else /* def AF_ASH */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_ASH */
+       if (x == Mono_Posix_UnixAddressFamily_AF_ATMPVC)
+#ifdef AF_ATMPVC
+               {*r = AF_ATMPVC; return 0;}
+#else /* def AF_ATMPVC */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_ATMPVC */
+       if (x == Mono_Posix_UnixAddressFamily_AF_ATMSVC)
+#ifdef AF_ATMSVC
+               {*r = AF_ATMSVC; return 0;}
+#else /* def AF_ATMSVC */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_ATMSVC */
+       if (x == Mono_Posix_UnixAddressFamily_AF_AX25)
+#ifdef AF_AX25
+               {*r = AF_AX25; return 0;}
+#else /* def AF_AX25 */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_AX25 */
+       if (x == Mono_Posix_UnixAddressFamily_AF_BLUETOOTH)
+#ifdef AF_BLUETOOTH
+               {*r = AF_BLUETOOTH; return 0;}
+#else /* def AF_BLUETOOTH */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_BLUETOOTH */
+       if (x == Mono_Posix_UnixAddressFamily_AF_BRIDGE)
+#ifdef AF_BRIDGE
+               {*r = AF_BRIDGE; return 0;}
+#else /* def AF_BRIDGE */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_BRIDGE */
+       if (x == Mono_Posix_UnixAddressFamily_AF_CAIF)
+#ifdef AF_CAIF
+               {*r = AF_CAIF; return 0;}
+#else /* def AF_CAIF */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_CAIF */
+       if (x == Mono_Posix_UnixAddressFamily_AF_CAN)
+#ifdef AF_CAN
+               {*r = AF_CAN; return 0;}
+#else /* def AF_CAN */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_CAN */
+       if (x == Mono_Posix_UnixAddressFamily_AF_DECnet)
+#ifdef AF_DECnet
+               {*r = AF_DECnet; return 0;}
+#else /* def AF_DECnet */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_DECnet */
+       if (x == Mono_Posix_UnixAddressFamily_AF_ECONET)
+#ifdef AF_ECONET
+               {*r = AF_ECONET; return 0;}
+#else /* def AF_ECONET */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_ECONET */
+       if (x == Mono_Posix_UnixAddressFamily_AF_IEEE802154)
+#ifdef AF_IEEE802154
+               {*r = AF_IEEE802154; return 0;}
+#else /* def AF_IEEE802154 */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_IEEE802154 */
+       if (x == Mono_Posix_UnixAddressFamily_AF_INET)
+#ifdef AF_INET
+               {*r = AF_INET; return 0;}
+#else /* def AF_INET */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_INET */
+       if (x == Mono_Posix_UnixAddressFamily_AF_INET6)
+#ifdef AF_INET6
+               {*r = AF_INET6; return 0;}
+#else /* def AF_INET6 */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_INET6 */
+       if (x == Mono_Posix_UnixAddressFamily_AF_IPX)
+#ifdef AF_IPX
+               {*r = AF_IPX; return 0;}
+#else /* def AF_IPX */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_IPX */
+       if (x == Mono_Posix_UnixAddressFamily_AF_IRDA)
+#ifdef AF_IRDA
+               {*r = AF_IRDA; return 0;}
+#else /* def AF_IRDA */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_IRDA */
+       if (x == Mono_Posix_UnixAddressFamily_AF_ISDN)
+#ifdef AF_ISDN
+               {*r = AF_ISDN; return 0;}
+#else /* def AF_ISDN */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_ISDN */
+       if (x == Mono_Posix_UnixAddressFamily_AF_IUCV)
+#ifdef AF_IUCV
+               {*r = AF_IUCV; return 0;}
+#else /* def AF_IUCV */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_IUCV */
+       if (x == Mono_Posix_UnixAddressFamily_AF_KEY)
+#ifdef AF_KEY
+               {*r = AF_KEY; return 0;}
+#else /* def AF_KEY */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_KEY */
+       if (x == Mono_Posix_UnixAddressFamily_AF_LLC)
+#ifdef AF_LLC
+               {*r = AF_LLC; return 0;}
+#else /* def AF_LLC */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_LLC */
+       if (x == Mono_Posix_UnixAddressFamily_AF_NETBEUI)
+#ifdef AF_NETBEUI
+               {*r = AF_NETBEUI; return 0;}
+#else /* def AF_NETBEUI */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_NETBEUI */
+       if (x == Mono_Posix_UnixAddressFamily_AF_NETLINK)
+#ifdef AF_NETLINK
+               {*r = AF_NETLINK; return 0;}
+#else /* def AF_NETLINK */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_NETLINK */
+       if (x == Mono_Posix_UnixAddressFamily_AF_NETROM)
+#ifdef AF_NETROM
+               {*r = AF_NETROM; return 0;}
+#else /* def AF_NETROM */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_NETROM */
+       if (x == Mono_Posix_UnixAddressFamily_AF_NFC)
+#ifdef AF_NFC
+               {*r = AF_NFC; return 0;}
+#else /* def AF_NFC */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_NFC */
+       if (x == Mono_Posix_UnixAddressFamily_AF_PACKET)
+#ifdef AF_PACKET
+               {*r = AF_PACKET; return 0;}
+#else /* def AF_PACKET */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_PACKET */
+       if (x == Mono_Posix_UnixAddressFamily_AF_PHONET)
+#ifdef AF_PHONET
+               {*r = AF_PHONET; return 0;}
+#else /* def AF_PHONET */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_PHONET */
+       if (x == Mono_Posix_UnixAddressFamily_AF_PPPOX)
+#ifdef AF_PPPOX
+               {*r = AF_PPPOX; return 0;}
+#else /* def AF_PPPOX */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_PPPOX */
+       if (x == Mono_Posix_UnixAddressFamily_AF_RDS)
+#ifdef AF_RDS
+               {*r = AF_RDS; return 0;}
+#else /* def AF_RDS */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_RDS */
+       if (x == Mono_Posix_UnixAddressFamily_AF_ROSE)
+#ifdef AF_ROSE
+               {*r = AF_ROSE; return 0;}
+#else /* def AF_ROSE */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_ROSE */
+       if (x == Mono_Posix_UnixAddressFamily_AF_RXRPC)
+#ifdef AF_RXRPC
+               {*r = AF_RXRPC; return 0;}
+#else /* def AF_RXRPC */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_RXRPC */
+       if (x == Mono_Posix_UnixAddressFamily_AF_SECURITY)
+#ifdef AF_SECURITY
+               {*r = AF_SECURITY; return 0;}
+#else /* def AF_SECURITY */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_SECURITY */
+       if (x == Mono_Posix_UnixAddressFamily_AF_SNA)
+#ifdef AF_SNA
+               {*r = AF_SNA; return 0;}
+#else /* def AF_SNA */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_SNA */
+       if (x == Mono_Posix_UnixAddressFamily_AF_TIPC)
+#ifdef AF_TIPC
+               {*r = AF_TIPC; return 0;}
+#else /* def AF_TIPC */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_TIPC */
+       if (x == Mono_Posix_UnixAddressFamily_AF_UNIX)
+#ifdef AF_UNIX
+               {*r = AF_UNIX; return 0;}
+#else /* def AF_UNIX */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_UNIX */
+       if (x == Mono_Posix_UnixAddressFamily_AF_UNSPEC)
+#ifdef AF_UNSPEC
+               {*r = AF_UNSPEC; return 0;}
+#else /* def AF_UNSPEC */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_UNSPEC */
+       if (x == Mono_Posix_UnixAddressFamily_AF_VSOCK)
+#ifdef AF_VSOCK
+               {*r = AF_VSOCK; return 0;}
+#else /* def AF_VSOCK */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_VSOCK */
+       if (x == Mono_Posix_UnixAddressFamily_AF_WANPIPE)
+#ifdef AF_WANPIPE
+               {*r = AF_WANPIPE; return 0;}
+#else /* def AF_WANPIPE */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_WANPIPE */
+       if (x == Mono_Posix_UnixAddressFamily_AF_X25)
+#ifdef AF_X25
+               {*r = AF_X25; return 0;}
+#else /* def AF_X25 */
+               {errno = EINVAL; return -1;}
+#endif /* ndef AF_X25 */
+       if (x == 0)
+               return 0;
+       errno = EINVAL; return -1;
+}
+
+int Mono_Posix_ToUnixAddressFamily (int x, int *r)
+{
+       *r = 0;
+       if (x == 0)
+               return 0;
+#ifdef AF_ALG
+       if (x == AF_ALG)
+               {*r = Mono_Posix_UnixAddressFamily_AF_ALG; return 0;}
+#endif /* ndef AF_ALG */
+#ifdef AF_APPLETALK
+       if (x == AF_APPLETALK)
+               {*r = Mono_Posix_UnixAddressFamily_AF_APPLETALK; return 0;}
+#endif /* ndef AF_APPLETALK */
+#ifdef AF_ASH
+       if (x == AF_ASH)
+               {*r = Mono_Posix_UnixAddressFamily_AF_ASH; return 0;}
+#endif /* ndef AF_ASH */
+#ifdef AF_ATMPVC
+       if (x == AF_ATMPVC)
+               {*r = Mono_Posix_UnixAddressFamily_AF_ATMPVC; return 0;}
+#endif /* ndef AF_ATMPVC */
+#ifdef AF_ATMSVC
+       if (x == AF_ATMSVC)
+               {*r = Mono_Posix_UnixAddressFamily_AF_ATMSVC; return 0;}
+#endif /* ndef AF_ATMSVC */
+#ifdef AF_AX25
+       if (x == AF_AX25)
+               {*r = Mono_Posix_UnixAddressFamily_AF_AX25; return 0;}
+#endif /* ndef AF_AX25 */
+#ifdef AF_BLUETOOTH
+       if (x == AF_BLUETOOTH)
+               {*r = Mono_Posix_UnixAddressFamily_AF_BLUETOOTH; return 0;}
+#endif /* ndef AF_BLUETOOTH */
+#ifdef AF_BRIDGE
+       if (x == AF_BRIDGE)
+               {*r = Mono_Posix_UnixAddressFamily_AF_BRIDGE; return 0;}
+#endif /* ndef AF_BRIDGE */
+#ifdef AF_CAIF
+       if (x == AF_CAIF)
+               {*r = Mono_Posix_UnixAddressFamily_AF_CAIF; return 0;}
+#endif /* ndef AF_CAIF */
+#ifdef AF_CAN
+       if (x == AF_CAN)
+               {*r = Mono_Posix_UnixAddressFamily_AF_CAN; return 0;}
+#endif /* ndef AF_CAN */
+#ifdef AF_DECnet
+       if (x == AF_DECnet)
+               {*r = Mono_Posix_UnixAddressFamily_AF_DECnet; return 0;}
+#endif /* ndef AF_DECnet */
+#ifdef AF_ECONET
+       if (x == AF_ECONET)
+               {*r = Mono_Posix_UnixAddressFamily_AF_ECONET; return 0;}
+#endif /* ndef AF_ECONET */
+#ifdef AF_IEEE802154
+       if (x == AF_IEEE802154)
+               {*r = Mono_Posix_UnixAddressFamily_AF_IEEE802154; return 0;}
+#endif /* ndef AF_IEEE802154 */
+#ifdef AF_INET
+       if (x == AF_INET)
+               {*r = Mono_Posix_UnixAddressFamily_AF_INET; return 0;}
+#endif /* ndef AF_INET */
+#ifdef AF_INET6
+       if (x == AF_INET6)
+               {*r = Mono_Posix_UnixAddressFamily_AF_INET6; return 0;}
+#endif /* ndef AF_INET6 */
+#ifdef AF_IPX
+       if (x == AF_IPX)
+               {*r = Mono_Posix_UnixAddressFamily_AF_IPX; return 0;}
+#endif /* ndef AF_IPX */
+#ifdef AF_IRDA
+       if (x == AF_IRDA)
+               {*r = Mono_Posix_UnixAddressFamily_AF_IRDA; return 0;}
+#endif /* ndef AF_IRDA */
+#ifdef AF_ISDN
+       if (x == AF_ISDN)
+               {*r = Mono_Posix_UnixAddressFamily_AF_ISDN; return 0;}
+#endif /* ndef AF_ISDN */
+#ifdef AF_IUCV
+       if (x == AF_IUCV)
+               {*r = Mono_Posix_UnixAddressFamily_AF_IUCV; return 0;}
+#endif /* ndef AF_IUCV */
+#ifdef AF_KEY
+       if (x == AF_KEY)
+               {*r = Mono_Posix_UnixAddressFamily_AF_KEY; return 0;}
+#endif /* ndef AF_KEY */
+#ifdef AF_LLC
+       if (x == AF_LLC)
+               {*r = Mono_Posix_UnixAddressFamily_AF_LLC; return 0;}
+#endif /* ndef AF_LLC */
+#ifdef AF_NETBEUI
+       if (x == AF_NETBEUI)
+               {*r = Mono_Posix_UnixAddressFamily_AF_NETBEUI; return 0;}
+#endif /* ndef AF_NETBEUI */
+#ifdef AF_NETLINK
+       if (x == AF_NETLINK)
+               {*r = Mono_Posix_UnixAddressFamily_AF_NETLINK; return 0;}
+#endif /* ndef AF_NETLINK */
+#ifdef AF_NETROM
+       if (x == AF_NETROM)
+               {*r = Mono_Posix_UnixAddressFamily_AF_NETROM; return 0;}
+#endif /* ndef AF_NETROM */
+#ifdef AF_NFC
+       if (x == AF_NFC)
+               {*r = Mono_Posix_UnixAddressFamily_AF_NFC; return 0;}
+#endif /* ndef AF_NFC */
+#ifdef AF_PACKET
+       if (x == AF_PACKET)
+               {*r = Mono_Posix_UnixAddressFamily_AF_PACKET; return 0;}
+#endif /* ndef AF_PACKET */
+#ifdef AF_PHONET
+       if (x == AF_PHONET)
+               {*r = Mono_Posix_UnixAddressFamily_AF_PHONET; return 0;}
+#endif /* ndef AF_PHONET */
+#ifdef AF_PPPOX
+       if (x == AF_PPPOX)
+               {*r = Mono_Posix_UnixAddressFamily_AF_PPPOX; return 0;}
+#endif /* ndef AF_PPPOX */
+#ifdef AF_RDS
+       if (x == AF_RDS)
+               {*r = Mono_Posix_UnixAddressFamily_AF_RDS; return 0;}
+#endif /* ndef AF_RDS */
+#ifdef AF_ROSE
+       if (x == AF_ROSE)
+               {*r = Mono_Posix_UnixAddressFamily_AF_ROSE; return 0;}
+#endif /* ndef AF_ROSE */
+#ifdef AF_RXRPC
+       if (x == AF_RXRPC)
+               {*r = Mono_Posix_UnixAddressFamily_AF_RXRPC; return 0;}
+#endif /* ndef AF_RXRPC */
+#ifdef AF_SECURITY
+       if (x == AF_SECURITY)
+               {*r = Mono_Posix_UnixAddressFamily_AF_SECURITY; return 0;}
+#endif /* ndef AF_SECURITY */
+#ifdef AF_SNA
+       if (x == AF_SNA)
+               {*r = Mono_Posix_UnixAddressFamily_AF_SNA; return 0;}
+#endif /* ndef AF_SNA */
+#ifdef AF_TIPC
+       if (x == AF_TIPC)
+               {*r = Mono_Posix_UnixAddressFamily_AF_TIPC; return 0;}
+#endif /* ndef AF_TIPC */
+#ifdef AF_UNIX
+       if (x == AF_UNIX)
+               {*r = Mono_Posix_UnixAddressFamily_AF_UNIX; return 0;}
+#endif /* ndef AF_UNIX */
+#ifdef AF_UNSPEC
+       if (x == AF_UNSPEC)
+               {*r = Mono_Posix_UnixAddressFamily_AF_UNSPEC; return 0;}
+#endif /* ndef AF_UNSPEC */
+#ifdef AF_VSOCK
+       if (x == AF_VSOCK)
+               {*r = Mono_Posix_UnixAddressFamily_AF_VSOCK; return 0;}
+#endif /* ndef AF_VSOCK */
+#ifdef AF_WANPIPE
+       if (x == AF_WANPIPE)
+               {*r = Mono_Posix_UnixAddressFamily_AF_WANPIPE; return 0;}
+#endif /* ndef AF_WANPIPE */
+#ifdef AF_X25
+       if (x == AF_X25)
+               {*r = Mono_Posix_UnixAddressFamily_AF_X25; return 0;}
+#endif /* ndef AF_X25 */
+       errno = EINVAL; return -1;
+}
+
+int Mono_Posix_FromUnixSocketFlags (int x, int *r)
+{
+       *r = 0;
+       if ((x & Mono_Posix_UnixSocketFlags_SOCK_CLOEXEC) == Mono_Posix_UnixSocketFlags_SOCK_CLOEXEC)
+#ifdef SOCK_CLOEXEC
+               *r |= SOCK_CLOEXEC;
+#else /* def SOCK_CLOEXEC */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SOCK_CLOEXEC */
+       if ((x & Mono_Posix_UnixSocketFlags_SOCK_NONBLOCK) == Mono_Posix_UnixSocketFlags_SOCK_NONBLOCK)
+#ifdef SOCK_NONBLOCK
+               *r |= SOCK_NONBLOCK;
+#else /* def SOCK_NONBLOCK */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SOCK_NONBLOCK */
+       if (x == 0)
+               return 0;
+       return 0;
+}
+
+int Mono_Posix_ToUnixSocketFlags (int x, int *r)
+{
+       *r = 0;
+       if (x == 0)
+               return 0;
+#ifdef SOCK_CLOEXEC
+       if ((x & SOCK_CLOEXEC) == SOCK_CLOEXEC)
+               *r |= Mono_Posix_UnixSocketFlags_SOCK_CLOEXEC;
+#endif /* ndef SOCK_CLOEXEC */
+#ifdef SOCK_NONBLOCK
+       if ((x & SOCK_NONBLOCK) == SOCK_NONBLOCK)
+               *r |= Mono_Posix_UnixSocketFlags_SOCK_NONBLOCK;
+#endif /* ndef SOCK_NONBLOCK */
+       return 0;
+}
+
+int Mono_Posix_FromUnixSocketOptionName (int x, int *r)
+{
+       *r = 0;
+       if (x == Mono_Posix_UnixSocketOptionName_SO_ACCEPTCONN)
+#ifdef SO_ACCEPTCONN
+               {*r = SO_ACCEPTCONN; return 0;}
+#else /* def SO_ACCEPTCONN */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_ACCEPTCONN */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_ATTACH_FILTER)
+#ifdef SO_ATTACH_FILTER
+               {*r = SO_ATTACH_FILTER; return 0;}
+#else /* def SO_ATTACH_FILTER */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_ATTACH_FILTER */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_BINDTODEVICE)
+#ifdef SO_BINDTODEVICE
+               {*r = SO_BINDTODEVICE; return 0;}
+#else /* def SO_BINDTODEVICE */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_BINDTODEVICE */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_BROADCAST)
+#ifdef SO_BROADCAST
+               {*r = SO_BROADCAST; return 0;}
+#else /* def SO_BROADCAST */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_BROADCAST */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_BSDCOMPAT)
+#ifdef SO_BSDCOMPAT
+               {*r = SO_BSDCOMPAT; return 0;}
+#else /* def SO_BSDCOMPAT */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_BSDCOMPAT */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_BUSY_POLL)
+#ifdef SO_BUSY_POLL
+               {*r = SO_BUSY_POLL; return 0;}
+#else /* def SO_BUSY_POLL */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_BUSY_POLL */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_DEBUG)
+#ifdef SO_DEBUG
+               {*r = SO_DEBUG; return 0;}
+#else /* def SO_DEBUG */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_DEBUG */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_DETACH_FILTER)
+#ifdef SO_DETACH_FILTER
+               {*r = SO_DETACH_FILTER; return 0;}
+#else /* def SO_DETACH_FILTER */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_DETACH_FILTER */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_DOMAIN)
+#ifdef SO_DOMAIN
+               {*r = SO_DOMAIN; return 0;}
+#else /* def SO_DOMAIN */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_DOMAIN */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_DONTROUTE)
+#ifdef SO_DONTROUTE
+               {*r = SO_DONTROUTE; return 0;}
+#else /* def SO_DONTROUTE */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_DONTROUTE */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_ERROR)
+#ifdef SO_ERROR
+               {*r = SO_ERROR; return 0;}
+#else /* def SO_ERROR */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_ERROR */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_KEEPALIVE)
+#ifdef SO_KEEPALIVE
+               {*r = SO_KEEPALIVE; return 0;}
+#else /* def SO_KEEPALIVE */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_KEEPALIVE */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_LINGER)
+#ifdef SO_LINGER
+               {*r = SO_LINGER; return 0;}
+#else /* def SO_LINGER */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_LINGER */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_LOCK_FILTER)
+#ifdef SO_LOCK_FILTER
+               {*r = SO_LOCK_FILTER; return 0;}
+#else /* def SO_LOCK_FILTER */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_LOCK_FILTER */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_MARK)
+#ifdef SO_MARK
+               {*r = SO_MARK; return 0;}
+#else /* def SO_MARK */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_MARK */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_MAX_PACING_RATE)
+#ifdef SO_MAX_PACING_RATE
+               {*r = SO_MAX_PACING_RATE; return 0;}
+#else /* def SO_MAX_PACING_RATE */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_MAX_PACING_RATE */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_NOFCS)
+#ifdef SO_NOFCS
+               {*r = SO_NOFCS; return 0;}
+#else /* def SO_NOFCS */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_NOFCS */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_NO_CHECK)
+#ifdef SO_NO_CHECK
+               {*r = SO_NO_CHECK; return 0;}
+#else /* def SO_NO_CHECK */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_NO_CHECK */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_OOBINLINE)
+#ifdef SO_OOBINLINE
+               {*r = SO_OOBINLINE; return 0;}
+#else /* def SO_OOBINLINE */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_OOBINLINE */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_PASSCRED)
+#ifdef SO_PASSCRED
+               {*r = SO_PASSCRED; return 0;}
+#else /* def SO_PASSCRED */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_PASSCRED */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_PASSSEC)
+#ifdef SO_PASSSEC
+               {*r = SO_PASSSEC; return 0;}
+#else /* def SO_PASSSEC */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_PASSSEC */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_PEEK_OFF)
+#ifdef SO_PEEK_OFF
+               {*r = SO_PEEK_OFF; return 0;}
+#else /* def SO_PEEK_OFF */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_PEEK_OFF */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_PEERCRED)
+#ifdef SO_PEERCRED
+               {*r = SO_PEERCRED; return 0;}
+#else /* def SO_PEERCRED */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_PEERCRED */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_PEERNAME)
+#ifdef SO_PEERNAME
+               {*r = SO_PEERNAME; return 0;}
+#else /* def SO_PEERNAME */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_PEERNAME */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_PEERSEC)
+#ifdef SO_PEERSEC
+               {*r = SO_PEERSEC; return 0;}
+#else /* def SO_PEERSEC */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_PEERSEC */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_PRIORITY)
+#ifdef SO_PRIORITY
+               {*r = SO_PRIORITY; return 0;}
+#else /* def SO_PRIORITY */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_PRIORITY */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_PROTOCOL)
+#ifdef SO_PROTOCOL
+               {*r = SO_PROTOCOL; return 0;}
+#else /* def SO_PROTOCOL */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_PROTOCOL */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_RCVBUF)
+#ifdef SO_RCVBUF
+               {*r = SO_RCVBUF; return 0;}
+#else /* def SO_RCVBUF */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_RCVBUF */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_RCVBUFFORCE)
+#ifdef SO_RCVBUFFORCE
+               {*r = SO_RCVBUFFORCE; return 0;}
+#else /* def SO_RCVBUFFORCE */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_RCVBUFFORCE */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_RCVLOWAT)
+#ifdef SO_RCVLOWAT
+               {*r = SO_RCVLOWAT; return 0;}
+#else /* def SO_RCVLOWAT */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_RCVLOWAT */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_RCVTIMEO)
+#ifdef SO_RCVTIMEO
+               {*r = SO_RCVTIMEO; return 0;}
+#else /* def SO_RCVTIMEO */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_RCVTIMEO */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_REUSEADDR)
+#ifdef SO_REUSEADDR
+               {*r = SO_REUSEADDR; return 0;}
+#else /* def SO_REUSEADDR */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_REUSEADDR */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_REUSEPORT)
+#ifdef SO_REUSEPORT
+               {*r = SO_REUSEPORT; return 0;}
+#else /* def SO_REUSEPORT */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_REUSEPORT */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_RXQ_OVFL)
+#ifdef SO_RXQ_OVFL
+               {*r = SO_RXQ_OVFL; return 0;}
+#else /* def SO_RXQ_OVFL */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_RXQ_OVFL */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_SECURITY_AUTHENTICATION)
+#ifdef SO_SECURITY_AUTHENTICATION
+               {*r = SO_SECURITY_AUTHENTICATION; return 0;}
+#else /* def SO_SECURITY_AUTHENTICATION */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_SECURITY_AUTHENTICATION */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_SECURITY_ENCRYPTION_NETWORK)
+#ifdef SO_SECURITY_ENCRYPTION_NETWORK
+               {*r = SO_SECURITY_ENCRYPTION_NETWORK; return 0;}
+#else /* def SO_SECURITY_ENCRYPTION_NETWORK */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_SECURITY_ENCRYPTION_NETWORK */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_SECURITY_ENCRYPTION_TRANSPORT)
+#ifdef SO_SECURITY_ENCRYPTION_TRANSPORT
+               {*r = SO_SECURITY_ENCRYPTION_TRANSPORT; return 0;}
+#else /* def SO_SECURITY_ENCRYPTION_TRANSPORT */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_SECURITY_ENCRYPTION_TRANSPORT */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_SELECT_ERR_QUEUE)
+#ifdef SO_SELECT_ERR_QUEUE
+               {*r = SO_SELECT_ERR_QUEUE; return 0;}
+#else /* def SO_SELECT_ERR_QUEUE */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_SELECT_ERR_QUEUE */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_SNDBUF)
+#ifdef SO_SNDBUF
+               {*r = SO_SNDBUF; return 0;}
+#else /* def SO_SNDBUF */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_SNDBUF */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_SNDBUFFORCE)
+#ifdef SO_SNDBUFFORCE
+               {*r = SO_SNDBUFFORCE; return 0;}
+#else /* def SO_SNDBUFFORCE */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_SNDBUFFORCE */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_SNDLOWAT)
+#ifdef SO_SNDLOWAT
+               {*r = SO_SNDLOWAT; return 0;}
+#else /* def SO_SNDLOWAT */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_SNDLOWAT */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_SNDTIMEO)
+#ifdef SO_SNDTIMEO
+               {*r = SO_SNDTIMEO; return 0;}
+#else /* def SO_SNDTIMEO */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_SNDTIMEO */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_TIMESTAMP)
+#ifdef SO_TIMESTAMP
+               {*r = SO_TIMESTAMP; return 0;}
+#else /* def SO_TIMESTAMP */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_TIMESTAMP */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_TIMESTAMPING)
+#ifdef SO_TIMESTAMPING
+               {*r = SO_TIMESTAMPING; return 0;}
+#else /* def SO_TIMESTAMPING */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_TIMESTAMPING */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_TIMESTAMPNS)
+#ifdef SO_TIMESTAMPNS
+               {*r = SO_TIMESTAMPNS; return 0;}
+#else /* def SO_TIMESTAMPNS */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_TIMESTAMPNS */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_TYPE)
+#ifdef SO_TYPE
+               {*r = SO_TYPE; return 0;}
+#else /* def SO_TYPE */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_TYPE */
+       if (x == Mono_Posix_UnixSocketOptionName_SO_WIFI_STATUS)
+#ifdef SO_WIFI_STATUS
+               {*r = SO_WIFI_STATUS; return 0;}
+#else /* def SO_WIFI_STATUS */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SO_WIFI_STATUS */
+       if (x == 0)
+               return 0;
+       errno = EINVAL; return -1;
+}
+
+int Mono_Posix_ToUnixSocketOptionName (int x, int *r)
+{
+       *r = 0;
+       if (x == 0)
+               return 0;
+#ifdef SO_ACCEPTCONN
+       if (x == SO_ACCEPTCONN)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_ACCEPTCONN; return 0;}
+#endif /* ndef SO_ACCEPTCONN */
+#ifdef SO_ATTACH_FILTER
+       if (x == SO_ATTACH_FILTER)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_ATTACH_FILTER; return 0;}
+#endif /* ndef SO_ATTACH_FILTER */
+#ifdef SO_BINDTODEVICE
+       if (x == SO_BINDTODEVICE)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_BINDTODEVICE; return 0;}
+#endif /* ndef SO_BINDTODEVICE */
+#ifdef SO_BROADCAST
+       if (x == SO_BROADCAST)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_BROADCAST; return 0;}
+#endif /* ndef SO_BROADCAST */
+#ifdef SO_BSDCOMPAT
+       if (x == SO_BSDCOMPAT)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_BSDCOMPAT; return 0;}
+#endif /* ndef SO_BSDCOMPAT */
+#ifdef SO_BUSY_POLL
+       if (x == SO_BUSY_POLL)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_BUSY_POLL; return 0;}
+#endif /* ndef SO_BUSY_POLL */
+#ifdef SO_DEBUG
+       if (x == SO_DEBUG)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_DEBUG; return 0;}
+#endif /* ndef SO_DEBUG */
+#ifdef SO_DETACH_FILTER
+       if (x == SO_DETACH_FILTER)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_DETACH_FILTER; return 0;}
+#endif /* ndef SO_DETACH_FILTER */
+#ifdef SO_DOMAIN
+       if (x == SO_DOMAIN)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_DOMAIN; return 0;}
+#endif /* ndef SO_DOMAIN */
+#ifdef SO_DONTROUTE
+       if (x == SO_DONTROUTE)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_DONTROUTE; return 0;}
+#endif /* ndef SO_DONTROUTE */
+#ifdef SO_ERROR
+       if (x == SO_ERROR)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_ERROR; return 0;}
+#endif /* ndef SO_ERROR */
+#ifdef SO_KEEPALIVE
+       if (x == SO_KEEPALIVE)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_KEEPALIVE; return 0;}
+#endif /* ndef SO_KEEPALIVE */
+#ifdef SO_LINGER
+       if (x == SO_LINGER)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_LINGER; return 0;}
+#endif /* ndef SO_LINGER */
+#ifdef SO_LOCK_FILTER
+       if (x == SO_LOCK_FILTER)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_LOCK_FILTER; return 0;}
+#endif /* ndef SO_LOCK_FILTER */
+#ifdef SO_MARK
+       if (x == SO_MARK)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_MARK; return 0;}
+#endif /* ndef SO_MARK */
+#ifdef SO_MAX_PACING_RATE
+       if (x == SO_MAX_PACING_RATE)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_MAX_PACING_RATE; return 0;}
+#endif /* ndef SO_MAX_PACING_RATE */
+#ifdef SO_NOFCS
+       if (x == SO_NOFCS)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_NOFCS; return 0;}
+#endif /* ndef SO_NOFCS */
+#ifdef SO_NO_CHECK
+       if (x == SO_NO_CHECK)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_NO_CHECK; return 0;}
+#endif /* ndef SO_NO_CHECK */
+#ifdef SO_OOBINLINE
+       if (x == SO_OOBINLINE)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_OOBINLINE; return 0;}
+#endif /* ndef SO_OOBINLINE */
+#ifdef SO_PASSCRED
+       if (x == SO_PASSCRED)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_PASSCRED; return 0;}
+#endif /* ndef SO_PASSCRED */
+#ifdef SO_PASSSEC
+       if (x == SO_PASSSEC)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_PASSSEC; return 0;}
+#endif /* ndef SO_PASSSEC */
+#ifdef SO_PEEK_OFF
+       if (x == SO_PEEK_OFF)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_PEEK_OFF; return 0;}
+#endif /* ndef SO_PEEK_OFF */
+#ifdef SO_PEERCRED
+       if (x == SO_PEERCRED)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_PEERCRED; return 0;}
+#endif /* ndef SO_PEERCRED */
+#ifdef SO_PEERNAME
+       if (x == SO_PEERNAME)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_PEERNAME; return 0;}
+#endif /* ndef SO_PEERNAME */
+#ifdef SO_PEERSEC
+       if (x == SO_PEERSEC)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_PEERSEC; return 0;}
+#endif /* ndef SO_PEERSEC */
+#ifdef SO_PRIORITY
+       if (x == SO_PRIORITY)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_PRIORITY; return 0;}
+#endif /* ndef SO_PRIORITY */
+#ifdef SO_PROTOCOL
+       if (x == SO_PROTOCOL)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_PROTOCOL; return 0;}
+#endif /* ndef SO_PROTOCOL */
+#ifdef SO_RCVBUF
+       if (x == SO_RCVBUF)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_RCVBUF; return 0;}
+#endif /* ndef SO_RCVBUF */
+#ifdef SO_RCVBUFFORCE
+       if (x == SO_RCVBUFFORCE)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_RCVBUFFORCE; return 0;}
+#endif /* ndef SO_RCVBUFFORCE */
+#ifdef SO_RCVLOWAT
+       if (x == SO_RCVLOWAT)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_RCVLOWAT; return 0;}
+#endif /* ndef SO_RCVLOWAT */
+#ifdef SO_RCVTIMEO
+       if (x == SO_RCVTIMEO)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_RCVTIMEO; return 0;}
+#endif /* ndef SO_RCVTIMEO */
+#ifdef SO_REUSEADDR
+       if (x == SO_REUSEADDR)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_REUSEADDR; return 0;}
+#endif /* ndef SO_REUSEADDR */
+#ifdef SO_REUSEPORT
+       if (x == SO_REUSEPORT)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_REUSEPORT; return 0;}
+#endif /* ndef SO_REUSEPORT */
+#ifdef SO_RXQ_OVFL
+       if (x == SO_RXQ_OVFL)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_RXQ_OVFL; return 0;}
+#endif /* ndef SO_RXQ_OVFL */
+#ifdef SO_SECURITY_AUTHENTICATION
+       if (x == SO_SECURITY_AUTHENTICATION)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_SECURITY_AUTHENTICATION; return 0;}
+#endif /* ndef SO_SECURITY_AUTHENTICATION */
+#ifdef SO_SECURITY_ENCRYPTION_NETWORK
+       if (x == SO_SECURITY_ENCRYPTION_NETWORK)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_SECURITY_ENCRYPTION_NETWORK; return 0;}
+#endif /* ndef SO_SECURITY_ENCRYPTION_NETWORK */
+#ifdef SO_SECURITY_ENCRYPTION_TRANSPORT
+       if (x == SO_SECURITY_ENCRYPTION_TRANSPORT)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_SECURITY_ENCRYPTION_TRANSPORT; return 0;}
+#endif /* ndef SO_SECURITY_ENCRYPTION_TRANSPORT */
+#ifdef SO_SELECT_ERR_QUEUE
+       if (x == SO_SELECT_ERR_QUEUE)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_SELECT_ERR_QUEUE; return 0;}
+#endif /* ndef SO_SELECT_ERR_QUEUE */
+#ifdef SO_SNDBUF
+       if (x == SO_SNDBUF)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_SNDBUF; return 0;}
+#endif /* ndef SO_SNDBUF */
+#ifdef SO_SNDBUFFORCE
+       if (x == SO_SNDBUFFORCE)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_SNDBUFFORCE; return 0;}
+#endif /* ndef SO_SNDBUFFORCE */
+#ifdef SO_SNDLOWAT
+       if (x == SO_SNDLOWAT)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_SNDLOWAT; return 0;}
+#endif /* ndef SO_SNDLOWAT */
+#ifdef SO_SNDTIMEO
+       if (x == SO_SNDTIMEO)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_SNDTIMEO; return 0;}
+#endif /* ndef SO_SNDTIMEO */
+#ifdef SO_TIMESTAMP
+       if (x == SO_TIMESTAMP)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_TIMESTAMP; return 0;}
+#endif /* ndef SO_TIMESTAMP */
+#ifdef SO_TIMESTAMPING
+       if (x == SO_TIMESTAMPING)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_TIMESTAMPING; return 0;}
+#endif /* ndef SO_TIMESTAMPING */
+#ifdef SO_TIMESTAMPNS
+       if (x == SO_TIMESTAMPNS)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_TIMESTAMPNS; return 0;}
+#endif /* ndef SO_TIMESTAMPNS */
+#ifdef SO_TYPE
+       if (x == SO_TYPE)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_TYPE; return 0;}
+#endif /* ndef SO_TYPE */
+#ifdef SO_WIFI_STATUS
+       if (x == SO_WIFI_STATUS)
+               {*r = Mono_Posix_UnixSocketOptionName_SO_WIFI_STATUS; return 0;}
+#endif /* ndef SO_WIFI_STATUS */
+       errno = EINVAL; return -1;
+}
+
+int Mono_Posix_FromUnixSocketProtocol (int x, int *r)
+{
+       *r = 0;
+       if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_AH)
+#ifdef IPPROTO_AH
+               {*r = IPPROTO_AH; return 0;}
+#else /* def IPPROTO_AH */
+               {errno = EINVAL; return -1;}
+#endif /* ndef IPPROTO_AH */
+       if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_BEETPH)
+#ifdef IPPROTO_BEETPH
+               {*r = IPPROTO_BEETPH; return 0;}
+#else /* def IPPROTO_BEETPH */
+               {errno = EINVAL; return -1;}
+#endif /* ndef IPPROTO_BEETPH */
+       if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_COMP)
+#ifdef IPPROTO_COMP
+               {*r = IPPROTO_COMP; return 0;}
+#else /* def IPPROTO_COMP */
+               {errno = EINVAL; return -1;}
+#endif /* ndef IPPROTO_COMP */
+       if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_DCCP)
+#ifdef IPPROTO_DCCP
+               {*r = IPPROTO_DCCP; return 0;}
+#else /* def IPPROTO_DCCP */
+               {errno = EINVAL; return -1;}
+#endif /* ndef IPPROTO_DCCP */
+       if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_EGP)
+#ifdef IPPROTO_EGP
+               {*r = IPPROTO_EGP; return 0;}
+#else /* def IPPROTO_EGP */
+               {errno = EINVAL; return -1;}
+#endif /* ndef IPPROTO_EGP */
+       if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_ENCAP)
+#ifdef IPPROTO_ENCAP
+               {*r = IPPROTO_ENCAP; return 0;}
+#else /* def IPPROTO_ENCAP */
+               {errno = EINVAL; return -1;}
+#endif /* ndef IPPROTO_ENCAP */
+       if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_ESP)
+#ifdef IPPROTO_ESP
+               {*r = IPPROTO_ESP; return 0;}
+#else /* def IPPROTO_ESP */
+               {errno = EINVAL; return -1;}
+#endif /* ndef IPPROTO_ESP */
+       if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_GRE)
+#ifdef IPPROTO_GRE
+               {*r = IPPROTO_GRE; return 0;}
+#else /* def IPPROTO_GRE */
+               {errno = EINVAL; return -1;}
+#endif /* ndef IPPROTO_GRE */
+       if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_ICMP)
+#ifdef IPPROTO_ICMP
+               {*r = IPPROTO_ICMP; return 0;}
+#else /* def IPPROTO_ICMP */
+               {errno = EINVAL; return -1;}
+#endif /* ndef IPPROTO_ICMP */
+       if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_IDP)
+#ifdef IPPROTO_IDP
+               {*r = IPPROTO_IDP; return 0;}
+#else /* def IPPROTO_IDP */
+               {errno = EINVAL; return -1;}
+#endif /* ndef IPPROTO_IDP */
+       if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_IGMP)
+#ifdef IPPROTO_IGMP
+               {*r = IPPROTO_IGMP; return 0;}
+#else /* def IPPROTO_IGMP */
+               {errno = EINVAL; return -1;}
+#endif /* ndef IPPROTO_IGMP */
+       if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_IP)
+#ifdef IPPROTO_IP
+               {*r = IPPROTO_IP; return 0;}
+#else /* def IPPROTO_IP */
+               {errno = EINVAL; return -1;}
+#endif /* ndef IPPROTO_IP */
+       if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_IPIP)
+#ifdef IPPROTO_IPIP
+               {*r = IPPROTO_IPIP; return 0;}
+#else /* def IPPROTO_IPIP */
+               {errno = EINVAL; return -1;}
+#endif /* ndef IPPROTO_IPIP */
+       if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_IPV6)
+#ifdef IPPROTO_IPV6
+               {*r = IPPROTO_IPV6; return 0;}
+#else /* def IPPROTO_IPV6 */
+               {errno = EINVAL; return -1;}
+#endif /* ndef IPPROTO_IPV6 */
+       if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_MTP)
+#ifdef IPPROTO_MTP
+               {*r = IPPROTO_MTP; return 0;}
+#else /* def IPPROTO_MTP */
+               {errno = EINVAL; return -1;}
+#endif /* ndef IPPROTO_MTP */
+       if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_PIM)
+#ifdef IPPROTO_PIM
+               {*r = IPPROTO_PIM; return 0;}
+#else /* def IPPROTO_PIM */
+               {errno = EINVAL; return -1;}
+#endif /* ndef IPPROTO_PIM */
+       if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_PUP)
+#ifdef IPPROTO_PUP
+               {*r = IPPROTO_PUP; return 0;}
+#else /* def IPPROTO_PUP */
+               {errno = EINVAL; return -1;}
+#endif /* ndef IPPROTO_PUP */
+       if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_RAW)
+#ifdef IPPROTO_RAW
+               {*r = IPPROTO_RAW; return 0;}
+#else /* def IPPROTO_RAW */
+               {errno = EINVAL; return -1;}
+#endif /* ndef IPPROTO_RAW */
+       if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_RSVP)
+#ifdef IPPROTO_RSVP
+               {*r = IPPROTO_RSVP; return 0;}
+#else /* def IPPROTO_RSVP */
+               {errno = EINVAL; return -1;}
+#endif /* ndef IPPROTO_RSVP */
+       if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_SCTP)
+#ifdef IPPROTO_SCTP
+               {*r = IPPROTO_SCTP; return 0;}
+#else /* def IPPROTO_SCTP */
+               {errno = EINVAL; return -1;}
+#endif /* ndef IPPROTO_SCTP */
+       if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_TCP)
+#ifdef IPPROTO_TCP
+               {*r = IPPROTO_TCP; return 0;}
+#else /* def IPPROTO_TCP */
+               {errno = EINVAL; return -1;}
+#endif /* ndef IPPROTO_TCP */
+       if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_TP)
+#ifdef IPPROTO_TP
+               {*r = IPPROTO_TP; return 0;}
+#else /* def IPPROTO_TP */
+               {errno = EINVAL; return -1;}
+#endif /* ndef IPPROTO_TP */
+       if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_UDP)
+#ifdef IPPROTO_UDP
+               {*r = IPPROTO_UDP; return 0;}
+#else /* def IPPROTO_UDP */
+               {errno = EINVAL; return -1;}
+#endif /* ndef IPPROTO_UDP */
+       if (x == Mono_Posix_UnixSocketProtocol_IPPROTO_UDPLITE)
+#ifdef IPPROTO_UDPLITE
+               {*r = IPPROTO_UDPLITE; return 0;}
+#else /* def IPPROTO_UDPLITE */
+               {errno = EINVAL; return -1;}
+#endif /* ndef IPPROTO_UDPLITE */
+       if (x == Mono_Posix_UnixSocketProtocol_SOL_SOCKET)
+#ifdef SOL_SOCKET
+               {*r = SOL_SOCKET; return 0;}
+#else /* def SOL_SOCKET */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SOL_SOCKET */
+       if (x == 0)
+               return 0;
+       errno = EINVAL; return -1;
+}
+
+int Mono_Posix_ToUnixSocketProtocol (int x, int *r)
+{
+       *r = 0;
+       if (x == 0)
+               return 0;
+#ifdef IPPROTO_AH
+       if (x == IPPROTO_AH)
+               {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_AH; return 0;}
+#endif /* ndef IPPROTO_AH */
+#ifdef IPPROTO_BEETPH
+       if (x == IPPROTO_BEETPH)
+               {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_BEETPH; return 0;}
+#endif /* ndef IPPROTO_BEETPH */
+#ifdef IPPROTO_COMP
+       if (x == IPPROTO_COMP)
+               {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_COMP; return 0;}
+#endif /* ndef IPPROTO_COMP */
+#ifdef IPPROTO_DCCP
+       if (x == IPPROTO_DCCP)
+               {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_DCCP; return 0;}
+#endif /* ndef IPPROTO_DCCP */
+#ifdef IPPROTO_EGP
+       if (x == IPPROTO_EGP)
+               {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_EGP; return 0;}
+#endif /* ndef IPPROTO_EGP */
+#ifdef IPPROTO_ENCAP
+       if (x == IPPROTO_ENCAP)
+               {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_ENCAP; return 0;}
+#endif /* ndef IPPROTO_ENCAP */
+#ifdef IPPROTO_ESP
+       if (x == IPPROTO_ESP)
+               {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_ESP; return 0;}
+#endif /* ndef IPPROTO_ESP */
+#ifdef IPPROTO_GRE
+       if (x == IPPROTO_GRE)
+               {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_GRE; return 0;}
+#endif /* ndef IPPROTO_GRE */
+#ifdef IPPROTO_ICMP
+       if (x == IPPROTO_ICMP)
+               {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_ICMP; return 0;}
+#endif /* ndef IPPROTO_ICMP */
+#ifdef IPPROTO_IDP
+       if (x == IPPROTO_IDP)
+               {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_IDP; return 0;}
+#endif /* ndef IPPROTO_IDP */
+#ifdef IPPROTO_IGMP
+       if (x == IPPROTO_IGMP)
+               {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_IGMP; return 0;}
+#endif /* ndef IPPROTO_IGMP */
+#ifdef IPPROTO_IP
+       if (x == IPPROTO_IP)
+               {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_IP; return 0;}
+#endif /* ndef IPPROTO_IP */
+#ifdef IPPROTO_IPIP
+       if (x == IPPROTO_IPIP)
+               {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_IPIP; return 0;}
+#endif /* ndef IPPROTO_IPIP */
+#ifdef IPPROTO_IPV6
+       if (x == IPPROTO_IPV6)
+               {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_IPV6; return 0;}
+#endif /* ndef IPPROTO_IPV6 */
+#ifdef IPPROTO_MTP
+       if (x == IPPROTO_MTP)
+               {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_MTP; return 0;}
+#endif /* ndef IPPROTO_MTP */
+#ifdef IPPROTO_PIM
+       if (x == IPPROTO_PIM)
+               {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_PIM; return 0;}
+#endif /* ndef IPPROTO_PIM */
+#ifdef IPPROTO_PUP
+       if (x == IPPROTO_PUP)
+               {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_PUP; return 0;}
+#endif /* ndef IPPROTO_PUP */
+#ifdef IPPROTO_RAW
+       if (x == IPPROTO_RAW)
+               {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_RAW; return 0;}
+#endif /* ndef IPPROTO_RAW */
+#ifdef IPPROTO_RSVP
+       if (x == IPPROTO_RSVP)
+               {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_RSVP; return 0;}
+#endif /* ndef IPPROTO_RSVP */
+#ifdef IPPROTO_SCTP
+       if (x == IPPROTO_SCTP)
+               {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_SCTP; return 0;}
+#endif /* ndef IPPROTO_SCTP */
+#ifdef IPPROTO_TCP
+       if (x == IPPROTO_TCP)
+               {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_TCP; return 0;}
+#endif /* ndef IPPROTO_TCP */
+#ifdef IPPROTO_TP
+       if (x == IPPROTO_TP)
+               {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_TP; return 0;}
+#endif /* ndef IPPROTO_TP */
+#ifdef IPPROTO_UDP
+       if (x == IPPROTO_UDP)
+               {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_UDP; return 0;}
+#endif /* ndef IPPROTO_UDP */
+#ifdef IPPROTO_UDPLITE
+       if (x == IPPROTO_UDPLITE)
+               {*r = Mono_Posix_UnixSocketProtocol_IPPROTO_UDPLITE; return 0;}
+#endif /* ndef IPPROTO_UDPLITE */
+#ifdef SOL_SOCKET
+       if (x == SOL_SOCKET)
+               {*r = Mono_Posix_UnixSocketProtocol_SOL_SOCKET; return 0;}
+#endif /* ndef SOL_SOCKET */
+       errno = EINVAL; return -1;
+}
+
+int Mono_Posix_FromUnixSocketType (int x, int *r)
+{
+       *r = 0;
+       if (x == Mono_Posix_UnixSocketType_SOCK_DCCP)
+#ifdef SOCK_DCCP
+               {*r = SOCK_DCCP; return 0;}
+#else /* def SOCK_DCCP */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SOCK_DCCP */
+       if (x == Mono_Posix_UnixSocketType_SOCK_DGRAM)
+#ifdef SOCK_DGRAM
+               {*r = SOCK_DGRAM; return 0;}
+#else /* def SOCK_DGRAM */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SOCK_DGRAM */
+       if (x == Mono_Posix_UnixSocketType_SOCK_PACKET)
+#ifdef SOCK_PACKET
+               {*r = SOCK_PACKET; return 0;}
+#else /* def SOCK_PACKET */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SOCK_PACKET */
+       if (x == Mono_Posix_UnixSocketType_SOCK_RAW)
+#ifdef SOCK_RAW
+               {*r = SOCK_RAW; return 0;}
+#else /* def SOCK_RAW */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SOCK_RAW */
+       if (x == Mono_Posix_UnixSocketType_SOCK_RDM)
+#ifdef SOCK_RDM
+               {*r = SOCK_RDM; return 0;}
+#else /* def SOCK_RDM */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SOCK_RDM */
+       if (x == Mono_Posix_UnixSocketType_SOCK_SEQPACKET)
+#ifdef SOCK_SEQPACKET
+               {*r = SOCK_SEQPACKET; return 0;}
+#else /* def SOCK_SEQPACKET */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SOCK_SEQPACKET */
+       if (x == Mono_Posix_UnixSocketType_SOCK_STREAM)
+#ifdef SOCK_STREAM
+               {*r = SOCK_STREAM; return 0;}
+#else /* def SOCK_STREAM */
+               {errno = EINVAL; return -1;}
+#endif /* ndef SOCK_STREAM */
+       if (x == 0)
+               return 0;
+       errno = EINVAL; return -1;
+}
+
+int Mono_Posix_ToUnixSocketType (int x, int *r)
+{
+       *r = 0;
+       if (x == 0)
+               return 0;
+#ifdef SOCK_DCCP
+       if (x == SOCK_DCCP)
+               {*r = Mono_Posix_UnixSocketType_SOCK_DCCP; return 0;}
+#endif /* ndef SOCK_DCCP */
+#ifdef SOCK_DGRAM
+       if (x == SOCK_DGRAM)
+               {*r = Mono_Posix_UnixSocketType_SOCK_DGRAM; return 0;}
+#endif /* ndef SOCK_DGRAM */
+#ifdef SOCK_PACKET
+       if (x == SOCK_PACKET)
+               {*r = Mono_Posix_UnixSocketType_SOCK_PACKET; return 0;}
+#endif /* ndef SOCK_PACKET */
+#ifdef SOCK_RAW
+       if (x == SOCK_RAW)
+               {*r = Mono_Posix_UnixSocketType_SOCK_RAW; return 0;}
+#endif /* ndef SOCK_RAW */
+#ifdef SOCK_RDM
+       if (x == SOCK_RDM)
+               {*r = Mono_Posix_UnixSocketType_SOCK_RDM; return 0;}
+#endif /* ndef SOCK_RDM */
+#ifdef SOCK_SEQPACKET
+       if (x == SOCK_SEQPACKET)
+               {*r = Mono_Posix_UnixSocketType_SOCK_SEQPACKET; return 0;}
+#endif /* ndef SOCK_SEQPACKET */
+#ifdef SOCK_STREAM
+       if (x == SOCK_STREAM)
+               {*r = Mono_Posix_UnixSocketType_SOCK_STREAM; return 0;}
+#endif /* ndef SOCK_STREAM */
+       errno = EINVAL; return -1;
+}
+
 #ifdef HAVE_STRUCT_UTIMBUF
 int
 Mono_Posix_FromUtimbuf (struct Mono_Posix_Utimbuf *from, struct utimbuf *to)
index 9c170eac0dc5faf2d525c4e40aa2121080901830..34cdb68ab4da8bab5ff81cddbf5c53e4e976b712 100644 (file)
@@ -621,6 +621,49 @@ enum Mono_Posix_LockfCommand {
 int Mono_Posix_FromLockfCommand (int x, int *r);
 int Mono_Posix_ToLockfCommand (int x, int *r);
 
+enum Mono_Posix_MessageFlags {
+       Mono_Posix_MessageFlags_MSG_CMSG_CLOEXEC       = 0x40000000,
+       #define Mono_Posix_MessageFlags_MSG_CMSG_CLOEXEC Mono_Posix_MessageFlags_MSG_CMSG_CLOEXEC
+       Mono_Posix_MessageFlags_MSG_CONFIRM            = 0x00000800,
+       #define Mono_Posix_MessageFlags_MSG_CONFIRM      Mono_Posix_MessageFlags_MSG_CONFIRM
+       Mono_Posix_MessageFlags_MSG_CTRUNC             = 0x00000008,
+       #define Mono_Posix_MessageFlags_MSG_CTRUNC       Mono_Posix_MessageFlags_MSG_CTRUNC
+       Mono_Posix_MessageFlags_MSG_DONTROUTE          = 0x00000004,
+       #define Mono_Posix_MessageFlags_MSG_DONTROUTE    Mono_Posix_MessageFlags_MSG_DONTROUTE
+       Mono_Posix_MessageFlags_MSG_DONTWAIT           = 0x00000040,
+       #define Mono_Posix_MessageFlags_MSG_DONTWAIT     Mono_Posix_MessageFlags_MSG_DONTWAIT
+       Mono_Posix_MessageFlags_MSG_EOR                = 0x00000080,
+       #define Mono_Posix_MessageFlags_MSG_EOR          Mono_Posix_MessageFlags_MSG_EOR
+       Mono_Posix_MessageFlags_MSG_ERRQUEUE           = 0x00002000,
+       #define Mono_Posix_MessageFlags_MSG_ERRQUEUE     Mono_Posix_MessageFlags_MSG_ERRQUEUE
+       Mono_Posix_MessageFlags_MSG_FASTOPEN           = 0x20000000,
+       #define Mono_Posix_MessageFlags_MSG_FASTOPEN     Mono_Posix_MessageFlags_MSG_FASTOPEN
+       Mono_Posix_MessageFlags_MSG_FIN                = 0x00000200,
+       #define Mono_Posix_MessageFlags_MSG_FIN          Mono_Posix_MessageFlags_MSG_FIN
+       Mono_Posix_MessageFlags_MSG_MORE               = 0x00008000,
+       #define Mono_Posix_MessageFlags_MSG_MORE         Mono_Posix_MessageFlags_MSG_MORE
+       Mono_Posix_MessageFlags_MSG_NOSIGNAL           = 0x00004000,
+       #define Mono_Posix_MessageFlags_MSG_NOSIGNAL     Mono_Posix_MessageFlags_MSG_NOSIGNAL
+       Mono_Posix_MessageFlags_MSG_OOB                = 0x00000001,
+       #define Mono_Posix_MessageFlags_MSG_OOB          Mono_Posix_MessageFlags_MSG_OOB
+       Mono_Posix_MessageFlags_MSG_PEEK               = 0x00000002,
+       #define Mono_Posix_MessageFlags_MSG_PEEK         Mono_Posix_MessageFlags_MSG_PEEK
+       Mono_Posix_MessageFlags_MSG_PROXY              = 0x00000010,
+       #define Mono_Posix_MessageFlags_MSG_PROXY        Mono_Posix_MessageFlags_MSG_PROXY
+       Mono_Posix_MessageFlags_MSG_RST                = 0x00001000,
+       #define Mono_Posix_MessageFlags_MSG_RST          Mono_Posix_MessageFlags_MSG_RST
+       Mono_Posix_MessageFlags_MSG_SYN                = 0x00000400,
+       #define Mono_Posix_MessageFlags_MSG_SYN          Mono_Posix_MessageFlags_MSG_SYN
+       Mono_Posix_MessageFlags_MSG_TRUNC              = 0x00000020,
+       #define Mono_Posix_MessageFlags_MSG_TRUNC        Mono_Posix_MessageFlags_MSG_TRUNC
+       Mono_Posix_MessageFlags_MSG_WAITALL            = 0x00000100,
+       #define Mono_Posix_MessageFlags_MSG_WAITALL      Mono_Posix_MessageFlags_MSG_WAITALL
+       Mono_Posix_MessageFlags_MSG_WAITFORONE         = 0x00010000,
+       #define Mono_Posix_MessageFlags_MSG_WAITFORONE   Mono_Posix_MessageFlags_MSG_WAITFORONE
+};
+int Mono_Posix_FromMessageFlags (int x, int *r);
+int Mono_Posix_ToMessageFlags (int x, int *r);
+
 enum Mono_Posix_MlockallFlags {
        Mono_Posix_MlockallFlags_MCL_CURRENT       = 0x00000001,
        #define Mono_Posix_MlockallFlags_MCL_CURRENT Mono_Posix_MlockallFlags_MCL_CURRENT
@@ -889,6 +932,17 @@ enum Mono_Posix_SeekFlags {
 int Mono_Posix_FromSeekFlags (short x, short *r);
 int Mono_Posix_ToSeekFlags (short x, short *r);
 
+enum Mono_Posix_ShutdownOption {
+       Mono_Posix_ShutdownOption_SHUT_RD         = 0x00000001,
+       #define Mono_Posix_ShutdownOption_SHUT_RD   Mono_Posix_ShutdownOption_SHUT_RD
+       Mono_Posix_ShutdownOption_SHUT_RDWR       = 0x00000003,
+       #define Mono_Posix_ShutdownOption_SHUT_RDWR Mono_Posix_ShutdownOption_SHUT_RDWR
+       Mono_Posix_ShutdownOption_SHUT_WR         = 0x00000002,
+       #define Mono_Posix_ShutdownOption_SHUT_WR   Mono_Posix_ShutdownOption_SHUT_WR
+};
+int Mono_Posix_FromShutdownOption (int x, int *r);
+int Mono_Posix_ToShutdownOption (int x, int *r);
+
 enum Mono_Posix_Signum {
        Mono_Posix_Signum_SIGABRT         = 0x00000006,
        #define Mono_Posix_Signum_SIGABRT   Mono_Posix_Signum_SIGABRT
@@ -1454,6 +1508,271 @@ enum Mono_Posix_SyslogOptions {
 int Mono_Posix_FromSyslogOptions (int x, int *r);
 int Mono_Posix_ToSyslogOptions (int x, int *r);
 
+enum Mono_Posix_UnixAddressFamily {
+       Mono_Posix_UnixAddressFamily_AF_ALG              = 0x00000026,
+       #define Mono_Posix_UnixAddressFamily_AF_ALG        Mono_Posix_UnixAddressFamily_AF_ALG
+       Mono_Posix_UnixAddressFamily_AF_APPLETALK        = 0x00000005,
+       #define Mono_Posix_UnixAddressFamily_AF_APPLETALK  Mono_Posix_UnixAddressFamily_AF_APPLETALK
+       Mono_Posix_UnixAddressFamily_AF_ASH              = 0x00000012,
+       #define Mono_Posix_UnixAddressFamily_AF_ASH        Mono_Posix_UnixAddressFamily_AF_ASH
+       Mono_Posix_UnixAddressFamily_AF_ATMPVC           = 0x00000008,
+       #define Mono_Posix_UnixAddressFamily_AF_ATMPVC     Mono_Posix_UnixAddressFamily_AF_ATMPVC
+       Mono_Posix_UnixAddressFamily_AF_ATMSVC           = 0x00000014,
+       #define Mono_Posix_UnixAddressFamily_AF_ATMSVC     Mono_Posix_UnixAddressFamily_AF_ATMSVC
+       Mono_Posix_UnixAddressFamily_AF_AX25             = 0x00000003,
+       #define Mono_Posix_UnixAddressFamily_AF_AX25       Mono_Posix_UnixAddressFamily_AF_AX25
+       Mono_Posix_UnixAddressFamily_AF_BLUETOOTH        = 0x0000001f,
+       #define Mono_Posix_UnixAddressFamily_AF_BLUETOOTH  Mono_Posix_UnixAddressFamily_AF_BLUETOOTH
+       Mono_Posix_UnixAddressFamily_AF_BRIDGE           = 0x00000007,
+       #define Mono_Posix_UnixAddressFamily_AF_BRIDGE     Mono_Posix_UnixAddressFamily_AF_BRIDGE
+       Mono_Posix_UnixAddressFamily_AF_CAIF             = 0x00000025,
+       #define Mono_Posix_UnixAddressFamily_AF_CAIF       Mono_Posix_UnixAddressFamily_AF_CAIF
+       Mono_Posix_UnixAddressFamily_AF_CAN              = 0x0000001d,
+       #define Mono_Posix_UnixAddressFamily_AF_CAN        Mono_Posix_UnixAddressFamily_AF_CAN
+       Mono_Posix_UnixAddressFamily_AF_DECnet           = 0x0000000c,
+       #define Mono_Posix_UnixAddressFamily_AF_DECnet     Mono_Posix_UnixAddressFamily_AF_DECnet
+       Mono_Posix_UnixAddressFamily_AF_ECONET           = 0x00000013,
+       #define Mono_Posix_UnixAddressFamily_AF_ECONET     Mono_Posix_UnixAddressFamily_AF_ECONET
+       Mono_Posix_UnixAddressFamily_AF_IEEE802154       = 0x00000024,
+       #define Mono_Posix_UnixAddressFamily_AF_IEEE802154 Mono_Posix_UnixAddressFamily_AF_IEEE802154
+       Mono_Posix_UnixAddressFamily_AF_INET             = 0x00000002,
+       #define Mono_Posix_UnixAddressFamily_AF_INET       Mono_Posix_UnixAddressFamily_AF_INET
+       Mono_Posix_UnixAddressFamily_AF_INET6            = 0x0000000a,
+       #define Mono_Posix_UnixAddressFamily_AF_INET6      Mono_Posix_UnixAddressFamily_AF_INET6
+       Mono_Posix_UnixAddressFamily_AF_IPX              = 0x00000004,
+       #define Mono_Posix_UnixAddressFamily_AF_IPX        Mono_Posix_UnixAddressFamily_AF_IPX
+       Mono_Posix_UnixAddressFamily_AF_IRDA             = 0x00000017,
+       #define Mono_Posix_UnixAddressFamily_AF_IRDA       Mono_Posix_UnixAddressFamily_AF_IRDA
+       Mono_Posix_UnixAddressFamily_AF_ISDN             = 0x00000022,
+       #define Mono_Posix_UnixAddressFamily_AF_ISDN       Mono_Posix_UnixAddressFamily_AF_ISDN
+       Mono_Posix_UnixAddressFamily_AF_IUCV             = 0x00000020,
+       #define Mono_Posix_UnixAddressFamily_AF_IUCV       Mono_Posix_UnixAddressFamily_AF_IUCV
+       Mono_Posix_UnixAddressFamily_AF_KEY              = 0x0000000f,
+       #define Mono_Posix_UnixAddressFamily_AF_KEY        Mono_Posix_UnixAddressFamily_AF_KEY
+       Mono_Posix_UnixAddressFamily_AF_LLC              = 0x0000001a,
+       #define Mono_Posix_UnixAddressFamily_AF_LLC        Mono_Posix_UnixAddressFamily_AF_LLC
+       Mono_Posix_UnixAddressFamily_AF_NETBEUI          = 0x0000000d,
+       #define Mono_Posix_UnixAddressFamily_AF_NETBEUI    Mono_Posix_UnixAddressFamily_AF_NETBEUI
+       Mono_Posix_UnixAddressFamily_AF_NETLINK          = 0x00000010,
+       #define Mono_Posix_UnixAddressFamily_AF_NETLINK    Mono_Posix_UnixAddressFamily_AF_NETLINK
+       Mono_Posix_UnixAddressFamily_AF_NETROM           = 0x00000006,
+       #define Mono_Posix_UnixAddressFamily_AF_NETROM     Mono_Posix_UnixAddressFamily_AF_NETROM
+       Mono_Posix_UnixAddressFamily_AF_NFC              = 0x00000027,
+       #define Mono_Posix_UnixAddressFamily_AF_NFC        Mono_Posix_UnixAddressFamily_AF_NFC
+       Mono_Posix_UnixAddressFamily_AF_PACKET           = 0x00000011,
+       #define Mono_Posix_UnixAddressFamily_AF_PACKET     Mono_Posix_UnixAddressFamily_AF_PACKET
+       Mono_Posix_UnixAddressFamily_AF_PHONET           = 0x00000023,
+       #define Mono_Posix_UnixAddressFamily_AF_PHONET     Mono_Posix_UnixAddressFamily_AF_PHONET
+       Mono_Posix_UnixAddressFamily_AF_PPPOX            = 0x00000018,
+       #define Mono_Posix_UnixAddressFamily_AF_PPPOX      Mono_Posix_UnixAddressFamily_AF_PPPOX
+       Mono_Posix_UnixAddressFamily_AF_RDS              = 0x00000015,
+       #define Mono_Posix_UnixAddressFamily_AF_RDS        Mono_Posix_UnixAddressFamily_AF_RDS
+       Mono_Posix_UnixAddressFamily_AF_ROSE             = 0x0000000b,
+       #define Mono_Posix_UnixAddressFamily_AF_ROSE       Mono_Posix_UnixAddressFamily_AF_ROSE
+       Mono_Posix_UnixAddressFamily_AF_RXRPC            = 0x00000021,
+       #define Mono_Posix_UnixAddressFamily_AF_RXRPC      Mono_Posix_UnixAddressFamily_AF_RXRPC
+       Mono_Posix_UnixAddressFamily_AF_SECURITY         = 0x0000000e,
+       #define Mono_Posix_UnixAddressFamily_AF_SECURITY   Mono_Posix_UnixAddressFamily_AF_SECURITY
+       Mono_Posix_UnixAddressFamily_AF_SNA              = 0x00000016,
+       #define Mono_Posix_UnixAddressFamily_AF_SNA        Mono_Posix_UnixAddressFamily_AF_SNA
+       Mono_Posix_UnixAddressFamily_AF_TIPC             = 0x0000001e,
+       #define Mono_Posix_UnixAddressFamily_AF_TIPC       Mono_Posix_UnixAddressFamily_AF_TIPC
+       Mono_Posix_UnixAddressFamily_AF_UNIX             = 0x00000001,
+       #define Mono_Posix_UnixAddressFamily_AF_UNIX       Mono_Posix_UnixAddressFamily_AF_UNIX
+       Mono_Posix_UnixAddressFamily_AF_UNSPEC           = 0x00000000,
+       #define Mono_Posix_UnixAddressFamily_AF_UNSPEC     Mono_Posix_UnixAddressFamily_AF_UNSPEC
+       Mono_Posix_UnixAddressFamily_AF_VSOCK            = 0x00000028,
+       #define Mono_Posix_UnixAddressFamily_AF_VSOCK      Mono_Posix_UnixAddressFamily_AF_VSOCK
+       Mono_Posix_UnixAddressFamily_AF_WANPIPE          = 0x00000019,
+       #define Mono_Posix_UnixAddressFamily_AF_WANPIPE    Mono_Posix_UnixAddressFamily_AF_WANPIPE
+       Mono_Posix_UnixAddressFamily_AF_X25              = 0x00000009,
+       #define Mono_Posix_UnixAddressFamily_AF_X25        Mono_Posix_UnixAddressFamily_AF_X25
+};
+int Mono_Posix_FromUnixAddressFamily (int x, int *r);
+int Mono_Posix_ToUnixAddressFamily (int x, int *r);
+
+enum Mono_Posix_UnixSocketFlags {
+       Mono_Posix_UnixSocketFlags_SOCK_CLOEXEC        = 0x00080000,
+       #define Mono_Posix_UnixSocketFlags_SOCK_CLOEXEC  Mono_Posix_UnixSocketFlags_SOCK_CLOEXEC
+       Mono_Posix_UnixSocketFlags_SOCK_NONBLOCK       = 0x00000800,
+       #define Mono_Posix_UnixSocketFlags_SOCK_NONBLOCK Mono_Posix_UnixSocketFlags_SOCK_NONBLOCK
+};
+int Mono_Posix_FromUnixSocketFlags (int x, int *r);
+int Mono_Posix_ToUnixSocketFlags (int x, int *r);
+
+enum Mono_Posix_UnixSocketOptionName {
+       Mono_Posix_UnixSocketOptionName_SO_ACCEPTCONN                          = 0x0000001e,
+       #define Mono_Posix_UnixSocketOptionName_SO_ACCEPTCONN                    Mono_Posix_UnixSocketOptionName_SO_ACCEPTCONN
+       Mono_Posix_UnixSocketOptionName_SO_ATTACH_FILTER                       = 0x0000001a,
+       #define Mono_Posix_UnixSocketOptionName_SO_ATTACH_FILTER                 Mono_Posix_UnixSocketOptionName_SO_ATTACH_FILTER
+       Mono_Posix_UnixSocketOptionName_SO_BINDTODEVICE                        = 0x00000019,
+       #define Mono_Posix_UnixSocketOptionName_SO_BINDTODEVICE                  Mono_Posix_UnixSocketOptionName_SO_BINDTODEVICE
+       Mono_Posix_UnixSocketOptionName_SO_BROADCAST                           = 0x00000006,
+       #define Mono_Posix_UnixSocketOptionName_SO_BROADCAST                     Mono_Posix_UnixSocketOptionName_SO_BROADCAST
+       Mono_Posix_UnixSocketOptionName_SO_BSDCOMPAT                           = 0x0000000e,
+       #define Mono_Posix_UnixSocketOptionName_SO_BSDCOMPAT                     Mono_Posix_UnixSocketOptionName_SO_BSDCOMPAT
+       Mono_Posix_UnixSocketOptionName_SO_BUSY_POLL                           = 0x0000002e,
+       #define Mono_Posix_UnixSocketOptionName_SO_BUSY_POLL                     Mono_Posix_UnixSocketOptionName_SO_BUSY_POLL
+       Mono_Posix_UnixSocketOptionName_SO_DEBUG                               = 0x00000001,
+       #define Mono_Posix_UnixSocketOptionName_SO_DEBUG                         Mono_Posix_UnixSocketOptionName_SO_DEBUG
+       Mono_Posix_UnixSocketOptionName_SO_DETACH_FILTER                       = 0x0000001b,
+       #define Mono_Posix_UnixSocketOptionName_SO_DETACH_FILTER                 Mono_Posix_UnixSocketOptionName_SO_DETACH_FILTER
+       Mono_Posix_UnixSocketOptionName_SO_DOMAIN                              = 0x00000027,
+       #define Mono_Posix_UnixSocketOptionName_SO_DOMAIN                        Mono_Posix_UnixSocketOptionName_SO_DOMAIN
+       Mono_Posix_UnixSocketOptionName_SO_DONTROUTE                           = 0x00000005,
+       #define Mono_Posix_UnixSocketOptionName_SO_DONTROUTE                     Mono_Posix_UnixSocketOptionName_SO_DONTROUTE
+       Mono_Posix_UnixSocketOptionName_SO_ERROR                               = 0x00000004,
+       #define Mono_Posix_UnixSocketOptionName_SO_ERROR                         Mono_Posix_UnixSocketOptionName_SO_ERROR
+       Mono_Posix_UnixSocketOptionName_SO_KEEPALIVE                           = 0x00000009,
+       #define Mono_Posix_UnixSocketOptionName_SO_KEEPALIVE                     Mono_Posix_UnixSocketOptionName_SO_KEEPALIVE
+       Mono_Posix_UnixSocketOptionName_SO_LINGER                              = 0x0000000d,
+       #define Mono_Posix_UnixSocketOptionName_SO_LINGER                        Mono_Posix_UnixSocketOptionName_SO_LINGER
+       Mono_Posix_UnixSocketOptionName_SO_LOCK_FILTER                         = 0x0000002c,
+       #define Mono_Posix_UnixSocketOptionName_SO_LOCK_FILTER                   Mono_Posix_UnixSocketOptionName_SO_LOCK_FILTER
+       Mono_Posix_UnixSocketOptionName_SO_MARK                                = 0x00000024,
+       #define Mono_Posix_UnixSocketOptionName_SO_MARK                          Mono_Posix_UnixSocketOptionName_SO_MARK
+       Mono_Posix_UnixSocketOptionName_SO_MAX_PACING_RATE                     = 0x0000002f,
+       #define Mono_Posix_UnixSocketOptionName_SO_MAX_PACING_RATE               Mono_Posix_UnixSocketOptionName_SO_MAX_PACING_RATE
+       Mono_Posix_UnixSocketOptionName_SO_NOFCS                               = 0x0000002b,
+       #define Mono_Posix_UnixSocketOptionName_SO_NOFCS                         Mono_Posix_UnixSocketOptionName_SO_NOFCS
+       Mono_Posix_UnixSocketOptionName_SO_NO_CHECK                            = 0x0000000b,
+       #define Mono_Posix_UnixSocketOptionName_SO_NO_CHECK                      Mono_Posix_UnixSocketOptionName_SO_NO_CHECK
+       Mono_Posix_UnixSocketOptionName_SO_OOBINLINE                           = 0x0000000a,
+       #define Mono_Posix_UnixSocketOptionName_SO_OOBINLINE                     Mono_Posix_UnixSocketOptionName_SO_OOBINLINE
+       Mono_Posix_UnixSocketOptionName_SO_PASSCRED                            = 0x00000010,
+       #define Mono_Posix_UnixSocketOptionName_SO_PASSCRED                      Mono_Posix_UnixSocketOptionName_SO_PASSCRED
+       Mono_Posix_UnixSocketOptionName_SO_PASSSEC                             = 0x00000022,
+       #define Mono_Posix_UnixSocketOptionName_SO_PASSSEC                       Mono_Posix_UnixSocketOptionName_SO_PASSSEC
+       Mono_Posix_UnixSocketOptionName_SO_PEEK_OFF                            = 0x0000002a,
+       #define Mono_Posix_UnixSocketOptionName_SO_PEEK_OFF                      Mono_Posix_UnixSocketOptionName_SO_PEEK_OFF
+       Mono_Posix_UnixSocketOptionName_SO_PEERCRED                            = 0x00000011,
+       #define Mono_Posix_UnixSocketOptionName_SO_PEERCRED                      Mono_Posix_UnixSocketOptionName_SO_PEERCRED
+       Mono_Posix_UnixSocketOptionName_SO_PEERNAME                            = 0x0000001c,
+       #define Mono_Posix_UnixSocketOptionName_SO_PEERNAME                      Mono_Posix_UnixSocketOptionName_SO_PEERNAME
+       Mono_Posix_UnixSocketOptionName_SO_PEERSEC                             = 0x0000001f,
+       #define Mono_Posix_UnixSocketOptionName_SO_PEERSEC                       Mono_Posix_UnixSocketOptionName_SO_PEERSEC
+       Mono_Posix_UnixSocketOptionName_SO_PRIORITY                            = 0x0000000c,
+       #define Mono_Posix_UnixSocketOptionName_SO_PRIORITY                      Mono_Posix_UnixSocketOptionName_SO_PRIORITY
+       Mono_Posix_UnixSocketOptionName_SO_PROTOCOL                            = 0x00000026,
+       #define Mono_Posix_UnixSocketOptionName_SO_PROTOCOL                      Mono_Posix_UnixSocketOptionName_SO_PROTOCOL
+       Mono_Posix_UnixSocketOptionName_SO_RCVBUF                              = 0x00000008,
+       #define Mono_Posix_UnixSocketOptionName_SO_RCVBUF                        Mono_Posix_UnixSocketOptionName_SO_RCVBUF
+       Mono_Posix_UnixSocketOptionName_SO_RCVBUFFORCE                         = 0x00000021,
+       #define Mono_Posix_UnixSocketOptionName_SO_RCVBUFFORCE                   Mono_Posix_UnixSocketOptionName_SO_RCVBUFFORCE
+       Mono_Posix_UnixSocketOptionName_SO_RCVLOWAT                            = 0x00000012,
+       #define Mono_Posix_UnixSocketOptionName_SO_RCVLOWAT                      Mono_Posix_UnixSocketOptionName_SO_RCVLOWAT
+       Mono_Posix_UnixSocketOptionName_SO_RCVTIMEO                            = 0x00000014,
+       #define Mono_Posix_UnixSocketOptionName_SO_RCVTIMEO                      Mono_Posix_UnixSocketOptionName_SO_RCVTIMEO
+       Mono_Posix_UnixSocketOptionName_SO_REUSEADDR                           = 0x00000002,
+       #define Mono_Posix_UnixSocketOptionName_SO_REUSEADDR                     Mono_Posix_UnixSocketOptionName_SO_REUSEADDR
+       Mono_Posix_UnixSocketOptionName_SO_REUSEPORT                           = 0x0000000f,
+       #define Mono_Posix_UnixSocketOptionName_SO_REUSEPORT                     Mono_Posix_UnixSocketOptionName_SO_REUSEPORT
+       Mono_Posix_UnixSocketOptionName_SO_RXQ_OVFL                            = 0x00000028,
+       #define Mono_Posix_UnixSocketOptionName_SO_RXQ_OVFL                      Mono_Posix_UnixSocketOptionName_SO_RXQ_OVFL
+       Mono_Posix_UnixSocketOptionName_SO_SECURITY_AUTHENTICATION             = 0x00000016,
+       #define Mono_Posix_UnixSocketOptionName_SO_SECURITY_AUTHENTICATION       Mono_Posix_UnixSocketOptionName_SO_SECURITY_AUTHENTICATION
+       Mono_Posix_UnixSocketOptionName_SO_SECURITY_ENCRYPTION_NETWORK         = 0x00000018,
+       #define Mono_Posix_UnixSocketOptionName_SO_SECURITY_ENCRYPTION_NETWORK   Mono_Posix_UnixSocketOptionName_SO_SECURITY_ENCRYPTION_NETWORK
+       Mono_Posix_UnixSocketOptionName_SO_SECURITY_ENCRYPTION_TRANSPORT       = 0x00000017,
+       #define Mono_Posix_UnixSocketOptionName_SO_SECURITY_ENCRYPTION_TRANSPORT Mono_Posix_UnixSocketOptionName_SO_SECURITY_ENCRYPTION_TRANSPORT
+       Mono_Posix_UnixSocketOptionName_SO_SELECT_ERR_QUEUE                    = 0x0000002d,
+       #define Mono_Posix_UnixSocketOptionName_SO_SELECT_ERR_QUEUE              Mono_Posix_UnixSocketOptionName_SO_SELECT_ERR_QUEUE
+       Mono_Posix_UnixSocketOptionName_SO_SNDBUF                              = 0x00000007,
+       #define Mono_Posix_UnixSocketOptionName_SO_SNDBUF                        Mono_Posix_UnixSocketOptionName_SO_SNDBUF
+       Mono_Posix_UnixSocketOptionName_SO_SNDBUFFORCE                         = 0x00000020,
+       #define Mono_Posix_UnixSocketOptionName_SO_SNDBUFFORCE                   Mono_Posix_UnixSocketOptionName_SO_SNDBUFFORCE
+       Mono_Posix_UnixSocketOptionName_SO_SNDLOWAT                            = 0x00000013,
+       #define Mono_Posix_UnixSocketOptionName_SO_SNDLOWAT                      Mono_Posix_UnixSocketOptionName_SO_SNDLOWAT
+       Mono_Posix_UnixSocketOptionName_SO_SNDTIMEO                            = 0x00000015,
+       #define Mono_Posix_UnixSocketOptionName_SO_SNDTIMEO                      Mono_Posix_UnixSocketOptionName_SO_SNDTIMEO
+       Mono_Posix_UnixSocketOptionName_SO_TIMESTAMP                           = 0x0000001d,
+       #define Mono_Posix_UnixSocketOptionName_SO_TIMESTAMP                     Mono_Posix_UnixSocketOptionName_SO_TIMESTAMP
+       Mono_Posix_UnixSocketOptionName_SO_TIMESTAMPING                        = 0x00000025,
+       #define Mono_Posix_UnixSocketOptionName_SO_TIMESTAMPING                  Mono_Posix_UnixSocketOptionName_SO_TIMESTAMPING
+       Mono_Posix_UnixSocketOptionName_SO_TIMESTAMPNS                         = 0x00000023,
+       #define Mono_Posix_UnixSocketOptionName_SO_TIMESTAMPNS                   Mono_Posix_UnixSocketOptionName_SO_TIMESTAMPNS
+       Mono_Posix_UnixSocketOptionName_SO_TYPE                                = 0x00000003,
+       #define Mono_Posix_UnixSocketOptionName_SO_TYPE                          Mono_Posix_UnixSocketOptionName_SO_TYPE
+       Mono_Posix_UnixSocketOptionName_SO_WIFI_STATUS                         = 0x00000029,
+       #define Mono_Posix_UnixSocketOptionName_SO_WIFI_STATUS                   Mono_Posix_UnixSocketOptionName_SO_WIFI_STATUS
+};
+int Mono_Posix_FromUnixSocketOptionName (int x, int *r);
+int Mono_Posix_ToUnixSocketOptionName (int x, int *r);
+
+enum Mono_Posix_UnixSocketProtocol {
+       Mono_Posix_UnixSocketProtocol_IPPROTO_AH            = 0x00000033,
+       #define Mono_Posix_UnixSocketProtocol_IPPROTO_AH      Mono_Posix_UnixSocketProtocol_IPPROTO_AH
+       Mono_Posix_UnixSocketProtocol_IPPROTO_BEETPH        = 0x0000005e,
+       #define Mono_Posix_UnixSocketProtocol_IPPROTO_BEETPH  Mono_Posix_UnixSocketProtocol_IPPROTO_BEETPH
+       Mono_Posix_UnixSocketProtocol_IPPROTO_COMP          = 0x0000006c,
+       #define Mono_Posix_UnixSocketProtocol_IPPROTO_COMP    Mono_Posix_UnixSocketProtocol_IPPROTO_COMP
+       Mono_Posix_UnixSocketProtocol_IPPROTO_DCCP          = 0x00000021,
+       #define Mono_Posix_UnixSocketProtocol_IPPROTO_DCCP    Mono_Posix_UnixSocketProtocol_IPPROTO_DCCP
+       Mono_Posix_UnixSocketProtocol_IPPROTO_EGP           = 0x00000008,
+       #define Mono_Posix_UnixSocketProtocol_IPPROTO_EGP     Mono_Posix_UnixSocketProtocol_IPPROTO_EGP
+       Mono_Posix_UnixSocketProtocol_IPPROTO_ENCAP         = 0x00000062,
+       #define Mono_Posix_UnixSocketProtocol_IPPROTO_ENCAP   Mono_Posix_UnixSocketProtocol_IPPROTO_ENCAP
+       Mono_Posix_UnixSocketProtocol_IPPROTO_ESP           = 0x00000032,
+       #define Mono_Posix_UnixSocketProtocol_IPPROTO_ESP     Mono_Posix_UnixSocketProtocol_IPPROTO_ESP
+       Mono_Posix_UnixSocketProtocol_IPPROTO_GRE           = 0x0000002f,
+       #define Mono_Posix_UnixSocketProtocol_IPPROTO_GRE     Mono_Posix_UnixSocketProtocol_IPPROTO_GRE
+       Mono_Posix_UnixSocketProtocol_IPPROTO_ICMP          = 0x00000001,
+       #define Mono_Posix_UnixSocketProtocol_IPPROTO_ICMP    Mono_Posix_UnixSocketProtocol_IPPROTO_ICMP
+       Mono_Posix_UnixSocketProtocol_IPPROTO_IDP           = 0x00000016,
+       #define Mono_Posix_UnixSocketProtocol_IPPROTO_IDP     Mono_Posix_UnixSocketProtocol_IPPROTO_IDP
+       Mono_Posix_UnixSocketProtocol_IPPROTO_IGMP          = 0x00000002,
+       #define Mono_Posix_UnixSocketProtocol_IPPROTO_IGMP    Mono_Posix_UnixSocketProtocol_IPPROTO_IGMP
+       Mono_Posix_UnixSocketProtocol_IPPROTO_IP            = 0x00000400,
+       #define Mono_Posix_UnixSocketProtocol_IPPROTO_IP      Mono_Posix_UnixSocketProtocol_IPPROTO_IP
+       Mono_Posix_UnixSocketProtocol_IPPROTO_IPIP          = 0x00000004,
+       #define Mono_Posix_UnixSocketProtocol_IPPROTO_IPIP    Mono_Posix_UnixSocketProtocol_IPPROTO_IPIP
+       Mono_Posix_UnixSocketProtocol_IPPROTO_IPV6          = 0x00000029,
+       #define Mono_Posix_UnixSocketProtocol_IPPROTO_IPV6    Mono_Posix_UnixSocketProtocol_IPPROTO_IPV6
+       Mono_Posix_UnixSocketProtocol_IPPROTO_MTP           = 0x0000005c,
+       #define Mono_Posix_UnixSocketProtocol_IPPROTO_MTP     Mono_Posix_UnixSocketProtocol_IPPROTO_MTP
+       Mono_Posix_UnixSocketProtocol_IPPROTO_PIM           = 0x00000067,
+       #define Mono_Posix_UnixSocketProtocol_IPPROTO_PIM     Mono_Posix_UnixSocketProtocol_IPPROTO_PIM
+       Mono_Posix_UnixSocketProtocol_IPPROTO_PUP           = 0x0000000c,
+       #define Mono_Posix_UnixSocketProtocol_IPPROTO_PUP     Mono_Posix_UnixSocketProtocol_IPPROTO_PUP
+       Mono_Posix_UnixSocketProtocol_IPPROTO_RAW           = 0x000000ff,
+       #define Mono_Posix_UnixSocketProtocol_IPPROTO_RAW     Mono_Posix_UnixSocketProtocol_IPPROTO_RAW
+       Mono_Posix_UnixSocketProtocol_IPPROTO_RSVP          = 0x0000002e,
+       #define Mono_Posix_UnixSocketProtocol_IPPROTO_RSVP    Mono_Posix_UnixSocketProtocol_IPPROTO_RSVP
+       Mono_Posix_UnixSocketProtocol_IPPROTO_SCTP          = 0x00000084,
+       #define Mono_Posix_UnixSocketProtocol_IPPROTO_SCTP    Mono_Posix_UnixSocketProtocol_IPPROTO_SCTP
+       Mono_Posix_UnixSocketProtocol_IPPROTO_TCP           = 0x00000006,
+       #define Mono_Posix_UnixSocketProtocol_IPPROTO_TCP     Mono_Posix_UnixSocketProtocol_IPPROTO_TCP
+       Mono_Posix_UnixSocketProtocol_IPPROTO_TP            = 0x0000001d,
+       #define Mono_Posix_UnixSocketProtocol_IPPROTO_TP      Mono_Posix_UnixSocketProtocol_IPPROTO_TP
+       Mono_Posix_UnixSocketProtocol_IPPROTO_UDP           = 0x00000011,
+       #define Mono_Posix_UnixSocketProtocol_IPPROTO_UDP     Mono_Posix_UnixSocketProtocol_IPPROTO_UDP
+       Mono_Posix_UnixSocketProtocol_IPPROTO_UDPLITE       = 0x00000088,
+       #define Mono_Posix_UnixSocketProtocol_IPPROTO_UDPLITE Mono_Posix_UnixSocketProtocol_IPPROTO_UDPLITE
+       Mono_Posix_UnixSocketProtocol_SOL_SOCKET            = 0x00000800,
+       #define Mono_Posix_UnixSocketProtocol_SOL_SOCKET      Mono_Posix_UnixSocketProtocol_SOL_SOCKET
+};
+int Mono_Posix_FromUnixSocketProtocol (int x, int *r);
+int Mono_Posix_ToUnixSocketProtocol (int x, int *r);
+
+enum Mono_Posix_UnixSocketType {
+       Mono_Posix_UnixSocketType_SOCK_DCCP            = 0x00000006,
+       #define Mono_Posix_UnixSocketType_SOCK_DCCP      Mono_Posix_UnixSocketType_SOCK_DCCP
+       Mono_Posix_UnixSocketType_SOCK_DGRAM           = 0x00000002,
+       #define Mono_Posix_UnixSocketType_SOCK_DGRAM     Mono_Posix_UnixSocketType_SOCK_DGRAM
+       Mono_Posix_UnixSocketType_SOCK_PACKET          = 0x0000000a,
+       #define Mono_Posix_UnixSocketType_SOCK_PACKET    Mono_Posix_UnixSocketType_SOCK_PACKET
+       Mono_Posix_UnixSocketType_SOCK_RAW             = 0x00000003,
+       #define Mono_Posix_UnixSocketType_SOCK_RAW       Mono_Posix_UnixSocketType_SOCK_RAW
+       Mono_Posix_UnixSocketType_SOCK_RDM             = 0x00000004,
+       #define Mono_Posix_UnixSocketType_SOCK_RDM       Mono_Posix_UnixSocketType_SOCK_RDM
+       Mono_Posix_UnixSocketType_SOCK_SEQPACKET       = 0x00000005,
+       #define Mono_Posix_UnixSocketType_SOCK_SEQPACKET Mono_Posix_UnixSocketType_SOCK_SEQPACKET
+       Mono_Posix_UnixSocketType_SOCK_STREAM          = 0x00000001,
+       #define Mono_Posix_UnixSocketType_SOCK_STREAM    Mono_Posix_UnixSocketType_SOCK_STREAM
+};
+int Mono_Posix_FromUnixSocketType (int x, int *r);
+int Mono_Posix_ToUnixSocketType (int x, int *r);
+
 enum Mono_Posix_WaitOptions {
        Mono_Posix_WaitOptions_WNOHANG         = 0x00000001,
        #define Mono_Posix_WaitOptions_WNOHANG   Mono_Posix_WaitOptions_WNOHANG
@@ -1481,6 +1800,7 @@ int Mono_Posix_ToXattrFlags (int x, int *r);
 
 struct Mono_Posix_Flock;
 struct Mono_Posix_Iovec;
+struct Mono_Posix_Linger;
 struct Mono_Posix_Pollfd;
 struct Mono_Posix_Stat;
 struct Mono_Posix_Statvfs;
@@ -1501,6 +1821,7 @@ struct Mono_Unix_UnixSignal_SignalInfo;
 
 struct flock;
 struct iovec;
+struct linger;
 struct pollfd;
 struct timespec;
 struct timeval;
@@ -1542,6 +1863,17 @@ int
 Mono_Posix_ToIovec (struct iovec *from, struct Mono_Posix_Iovec* to);
 
 
+struct Mono_Posix_Linger {
+       int l_onoff;
+       int l_linger;
+};
+
+int
+Mono_Posix_FromLinger (struct Mono_Posix_Linger* from, struct linger *to);
+int
+Mono_Posix_ToLinger (struct linger *from, struct Mono_Posix_Linger* to);
+
+
 struct Mono_Posix_Pollfd {
        int   fd;
        short events;
@@ -1755,6 +2087,8 @@ int Mono_Posix_Syscall_endpwent (void);
 int Mono_Posix_Syscall_endusershell (void);
 int Mono_Posix_Syscall_fcntl (int fd, int cmd);
 int Mono_Posix_Syscall_fcntl_arg (int fd, int cmd, gint64 arg);
+int Mono_Posix_Syscall_fcntl_arg_int (int fd, int cmd, int arg);
+int Mono_Posix_Syscall_fcntl_arg_ptr (int fd, int cmd, void* ptr);
 int Mono_Posix_Syscall_fcntl_lock (int fd, int cmd, struct Mono_Posix_Flock* lock);
 int Mono_Posix_Syscall_fgetgrent (void* stream, struct Mono_Posix_Syscall__Group* grbuf);
 int Mono_Posix_Syscall_fgetpwent (void* stream, struct Mono_Posix_Syscall__Passwd* pwbuf);
@@ -1790,6 +2124,9 @@ int Mono_Posix_Syscall_getpwnam (const char* name, struct Mono_Posix_Syscall__Pa
 int Mono_Posix_Syscall_getpwnam_r (const char* name, struct Mono_Posix_Syscall__Passwd* pwbuf, void** pwbufp);
 int Mono_Posix_Syscall_getpwuid (unsigned int uid, struct Mono_Posix_Syscall__Passwd* passwd);
 int Mono_Posix_Syscall_getpwuid_r (unsigned int uid, struct Mono_Posix_Syscall__Passwd* pwbuf, void** pwbufp);
+int Mono_Posix_Syscall_getsockopt (int socket, int level, int option_name, void* option_value, gint64* option_len);
+int Mono_Posix_Syscall_getsockopt_linger (int socket, int level, int option_name, struct Mono_Posix_Linger* option_value);
+int Mono_Posix_Syscall_getsockopt_timeval (int socket, int level, int option_name, struct Mono_Posix_Timeval* option_value);
 int Mono_Posix_Syscall_gettimeofday (struct Mono_Posix_Timeval* tv, void* ignore);
 gint64 Mono_Posix_Syscall_getxattr (const char* path, const char* name, unsigned char* value, guint64 size);
 int Mono_Posix_Syscall_L_ctermid (void);
@@ -1833,10 +2170,12 @@ int Mono_Posix_Syscall_readdir_r (void* dirp, struct Mono_Posix_Syscall__Dirent*
 gint64 Mono_Posix_Syscall_readlink (const char* path, unsigned char* buf, guint64 bufsiz);
 gint64 Mono_Posix_Syscall_readlinkat (int dirfd, const char* pathname, unsigned char* buf, guint64 bufsiz);
 gint64 Mono_Posix_Syscall_readv (int fd, struct Mono_Posix_Iovec* iov, int iovcnt);
+gint64 Mono_Posix_Syscall_recv (int socket, void* buffer, guint64 length, int flags);
 int Mono_Posix_Syscall_remap_file_pages (void* start, guint64 size, int prot, gint64 pgoff, int flags);
 int Mono_Posix_Syscall_removexattr (const char* path, const char* name);
 int Mono_Posix_Syscall_rewinddir (void* dir);
 int Mono_Posix_Syscall_seekdir (void* dir, gint64 offset);
+gint64 Mono_Posix_Syscall_send (int socket, void* message, guint64 length, int flags);
 gint64 Mono_Posix_Syscall_sendfile (int out_fd, int in_fd, gint64* offset, guint64 count);
 int Mono_Posix_Syscall_setdomainname (const char* name, guint64 len);
 int Mono_Posix_Syscall_setfsent (void);
@@ -1845,9 +2184,13 @@ int Mono_Posix_Syscall_setgroups (guint64 size, unsigned int* list);
 int Mono_Posix_Syscall_sethostid (gint64 hostid);
 int Mono_Posix_Syscall_sethostname (const char* name, guint64 len);
 int Mono_Posix_Syscall_setpwent (void);
+int Mono_Posix_Syscall_setsockopt (int socket, int level, int option_name, void* option_value, gint64 option_len);
+int Mono_Posix_Syscall_setsockopt_linger (int socket, int level, int option_name, struct Mono_Posix_Linger* option_value);
+int Mono_Posix_Syscall_setsockopt_timeval (int socket, int level, int option_name, struct Mono_Posix_Timeval* option_value);
 int Mono_Posix_Syscall_settimeofday (struct Mono_Posix_Timeval* tv, struct Mono_Posix_Timezone* tz);
 int Mono_Posix_Syscall_setusershell (void);
 int Mono_Posix_Syscall_setxattr (const char* path, const char* name, unsigned char* value, guint64 size, int flags);
+int Mono_Posix_Syscall_socketpair (int domain, int type, int protocol, int* socket1, int* socket2);
 int Mono_Posix_Syscall_stat (const char* file_name, struct Mono_Posix_Stat* buf);
 int Mono_Posix_Syscall_statvfs (const char* path, struct Mono_Posix_Statvfs* buf);
 int Mono_Posix_Syscall_stime (gint64* t);
index aedff01b7f32d6f8ce7f2a570c0472afa6e48c6e..cb5d94131da010bec4af329b7495109199948641 100644 (file)
@@ -149,6 +149,13 @@ typedef gint64 suseconds_t;
                return ret; \
        }}G_STMT_END
 
+#define mph_have_uint_overflow(var) ((var) < 0 || (var) > UINT_MAX)
+
+#define mph_return_val_if_uint_overflow(var, ret) \
+       _mph_return_val_if_cb_(var, ret, mph_have_uint_overflow)
+
+#define mph_return_if_uint_overflow(var) mph_return_val_if_uint_overflow(var, -1)
+
 #define mph_have_long_overflow(var) ((var) > LONG_MAX || (var) < LONG_MIN)
 
 #define mph_return_val_if_long_overflow(var, ret) \
@@ -156,14 +163,14 @@ typedef gint64 suseconds_t;
 
 #define mph_return_if_long_overflow(var) mph_return_val_if_long_overflow(var, -1)
 
-#define mph_have_ulong_overflow(var) ((var) > ULONG_MAX)
+#define mph_have_ulong_overflow(var) (var) < 0 || ((var) > ULONG_MAX)
 
 #define mph_return_val_if_ulong_overflow(var, ret) \
        _mph_return_val_if_cb_(var, ret, mph_have_ulong_overflow)
 
 #define mph_return_if_ulong_overflow(var) mph_return_val_if_ulong_overflow(var, -1)
 
-#define mph_have_size_t_overflow(var) ((var) > MPH_SIZE_T_MAX)
+#define mph_have_size_t_overflow(var) ((var) < 0 || (var) > MPH_SIZE_T_MAX)
 
 #define mph_return_val_if_size_t_overflow(var, ret) \
        _mph_return_val_if_cb_(var, ret, mph_have_size_t_overflow)
@@ -185,6 +192,8 @@ typedef gint64 suseconds_t;
 
 #define mph_return_if_time_t_overflow(var) mph_return_if_long_overflow(var)
 
+#define mph_return_if_socklen_t_overflow(var) mph_return_if_uint_overflow(var)
+
 #define mph_return_if_val_in_list5(var,a,b,c,d,e) \
        do {                                                            \
                int v = (var);                                                \
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
diff --git a/support/sys-socket.c b/support/sys-socket.c
new file mode 100644 (file)
index 0000000..188df56
--- /dev/null
@@ -0,0 +1,140 @@
+/*
+ * <sys/socket.h> wrapper functions.
+ *
+ * Authors:
+ *   Steffen Kiess (s-kiess@web.de)
+ *
+ * Copyright (C) 2015 Steffen Kiess
+ */
+
+#include <sys/socket.h>
+#include <sys/time.h>
+#include <netinet/in.h>
+#include <sys/un.h>
+
+#include <stddef.h>
+
+#include "map.h"
+#include "mph.h"
+
+G_BEGIN_DECLS
+
+int
+Mono_Posix_Syscall_socketpair (int domain, int type, int protocol, int* socket1, int* socket2)
+{
+       int filedes[2] = {-1, -1};
+       int r;
+
+       r = socketpair (domain, type, protocol, filedes);
+
+       *socket1 = filedes[0];
+       *socket2 = filedes[1];
+       return r;
+}
+
+int
+Mono_Posix_Syscall_getsockopt (int socket, int level, int option_name, void* option_value, gint64* option_len)
+{
+       socklen_t len;
+       int r;
+
+       mph_return_if_socklen_t_overflow (*option_len);
+
+       len = *option_len;
+
+       r = getsockopt (socket, level, option_name, option_value, &len);
+
+       *option_len = len;
+
+       return r;
+}
+
+int
+Mono_Posix_Syscall_getsockopt_timeval (int socket, int level, int option_name, struct Mono_Posix_Timeval* option_value)
+{
+       struct timeval tv;
+       int r;
+       socklen_t size;
+
+       size = sizeof (struct timeval);
+       r = getsockopt (socket, level, option_name, &tv, &size);
+
+       if (r != -1 && size == sizeof (struct timeval)) {
+               if (Mono_Posix_ToTimeval (&tv, option_value) != 0)
+                       return -1;
+       } else {
+               memset (option_value, 0, sizeof (struct Mono_Posix_Timeval));
+               if (r != -1)
+                       errno = EINVAL;
+       }
+
+       return r;
+}
+
+int
+Mono_Posix_Syscall_getsockopt_linger (int socket, int level, int option_name, struct Mono_Posix_Linger* option_value)
+{
+       struct linger ling;
+       int r;
+       socklen_t size;
+
+       size = sizeof (struct linger);
+       r = getsockopt (socket, level, option_name, &ling, &size);
+
+       if (r != -1 && size == sizeof (struct linger)) {
+               if (Mono_Posix_ToLinger (&ling, option_value) != 0)
+                       return -1;
+       } else {
+               memset (option_value, 0, sizeof (struct Mono_Posix_Linger));
+               if (r != -1)
+                       errno = EINVAL;
+       }
+
+       return r;
+}
+
+int
+Mono_Posix_Syscall_setsockopt (int socket, int level, int option_name, void* option_value, gint64 option_len)
+{
+       mph_return_if_socklen_t_overflow (option_len);
+
+       return setsockopt (socket, level, option_name, option_value, option_len);
+}
+
+int
+Mono_Posix_Syscall_setsockopt_timeval (int socket, int level, int option_name, struct Mono_Posix_Timeval* option_value)
+{
+       struct timeval tv;
+
+       if (Mono_Posix_FromTimeval (option_value, &tv) != 0)
+               return -1;
+
+       return setsockopt (socket, level, option_name, &tv, sizeof (struct timeval));
+}
+
+int
+Mono_Posix_Syscall_setsockopt_linger (int socket, int level, int option_name, struct Mono_Posix_Linger* option_value)
+{
+       struct linger ling;
+
+       if (Mono_Posix_FromLinger (option_value, &ling) != 0)
+               return -1;
+
+       return setsockopt (socket, level, option_name, &ling, sizeof (struct linger));
+}
+
+gint64
+Mono_Posix_Syscall_recv (int socket, void* message, guint64 length, int flags)
+{
+       mph_return_if_size_t_overflow (length);
+
+       return recv (socket, message, length, flags);
+}
+
+gint64
+Mono_Posix_Syscall_send (int socket, void* message, guint64 length, int flags)
+{
+       mph_return_if_size_t_overflow (length);
+
+       return send (socket, message, length, flags);
+}
index 761b695c61b128f595ab309bb0e69adfdfeb872d..49aa9506009e61411990764a262ad454eeeca8cf 100644 (file)
@@ -110,8 +110,6 @@ read_entry (EntryStream *stream, void *data)
 #define BEGIN_PROTOCOL_ENTRY_HEAVY6(method,t1,f1,t2,f2,t3,f3,t4,f4,t5,f5,t6,f6) \
        BEGIN_PROTOCOL_ENTRY6 (method,t1,f1,t2,f2,t3,f3,t4,f4,t5,f5,t6,f6)
 
-#define FLUSH()
-
 #define DEFAULT_PRINT()
 #define CUSTOM_PRINT(_)
 
@@ -120,6 +118,7 @@ read_entry (EntryStream *stream, void *data)
 #define IS_VTABLE_MATCH(_)
 
 #define END_PROTOCOL_ENTRY
+#define END_PROTOCOL_ENTRY_FLUSH
 #define END_PROTOCOL_ENTRY_HEAVY
 
 #include <mono/sgen/sgen-protocol-def.h>
@@ -169,8 +168,6 @@ is_always_match (int type)
 #define BEGIN_PROTOCOL_ENTRY_HEAVY6(method,t1,f1,t2,f2,t3,f3,t4,f4,t5,f5,t6,f6) \
        BEGIN_PROTOCOL_ENTRY6 (method,t1,f1,t2,f2,t3,f3,t4,f4,t5,f5,t6,f6)
 
-#define FLUSH()
-
 #define DEFAULT_PRINT()
 #define CUSTOM_PRINT(_)
 
@@ -180,6 +177,7 @@ is_always_match (int type)
 #define IS_VTABLE_MATCH(_)
 
 #define END_PROTOCOL_ENTRY
+#define END_PROTOCOL_ENTRY_FLUSH
 #define END_PROTOCOL_ENTRY_HEAVY
 
 #include <mono/sgen/sgen-protocol-def.h>
@@ -402,8 +400,6 @@ print_entry (int type, void *data, int num_nums, int *match_indices, gboolean co
 #define BEGIN_PROTOCOL_ENTRY_HEAVY6(method,t1,f1,t2,f2,t3,f3,t4,f4,t5,f5,t6,f6) \
        BEGIN_PROTOCOL_ENTRY6 (method,t1,f1,t2,f2,t3,f3,t4,f4,t5,f5,t6,f6)
 
-#define FLUSH()
-
 #define DEFAULT_PRINT() \
        print_entry_content (pes_size, pes, color_output);
 #define CUSTOM_PRINT(print) \
@@ -417,6 +413,8 @@ print_entry (int type, void *data, int num_nums, int *match_indices, gboolean co
                printf ("\n"); \
                break; \
        }
+#define END_PROTOCOL_ENTRY_FLUSH \
+       END_PROTOCOL_ENTRY
 #define END_PROTOCOL_ENTRY_HEAVY \
        END_PROTOCOL_ENTRY
 
@@ -487,8 +485,6 @@ match_index (gpointer ptr, int type, void *data)
 #define BEGIN_PROTOCOL_ENTRY_HEAVY6(method,t1,f1,t2,f2,t3,f3,t4,f4,t5,f5,t6,f6) \
        BEGIN_PROTOCOL_ENTRY6 (method,t1,f1,t2,f2,t3,f3,t4,f4,t5,f5,t6,f6)
 
-#define FLUSH()
-
 #define DEFAULT_PRINT()
 #define CUSTOM_PRINT(_)
 
@@ -500,6 +496,8 @@ match_index (gpointer ptr, int type, void *data)
 #define END_PROTOCOL_ENTRY \
                break; \
        }
+#define END_PROTOCOL_ENTRY_FLUSH \
+       END_PROTOCOL_ENTRY
 #define END_PROTOCOL_ENTRY_HEAVY \
        END_PROTOCOL_ENTRY
 
@@ -550,8 +548,6 @@ is_vtable_match (gpointer ptr, int type, void *data)
 #define BEGIN_PROTOCOL_ENTRY_HEAVY6(method,t1,f1,t2,f2,t3,f3,t4,f4,t5,f5,t6,f6) \
        BEGIN_PROTOCOL_ENTRY6 (method,t1,f1,t2,f2,t3,f3,t4,f4,t5,f5,t6,f6)
 
-#define FLUSH()
-
 #define DEFAULT_PRINT()
 #define CUSTOM_PRINT(_)
 
@@ -563,6 +559,8 @@ is_vtable_match (gpointer ptr, int type, void *data)
 #define END_PROTOCOL_ENTRY \
                break; \
        }
+#define END_PROTOCOL_ENTRY_FLUSH \
+       END_PROTOCOL_ENTRY
 #define END_PROTOCOL_ENTRY_HEAVY \
        END_PROTOCOL_ENTRY
 
index af1960918fc45fc49caee3b49435361aef9e0a6d..b30a3eb1c8e67f4e8ef9cd171b1dc6971f53fa99 100644 (file)
 #error Unknown architecture
 #endif
 
+#define WINVER 0x0A00
+
+#include <SDKDDKVer.h>
+
 #if _WIN32_WINNT < 0x0600
 #error "Mono requires Windows Vista or later"
 #endif /* _WIN32_WINNT < 0x0600 */
 /* Using the simple generational GC. */
 /* #undef HAVE_SGEN_GC */
 
+ /* Have signal */
+#define HAVE_SIGNAL 1
+
 /* Have signbit */
 /* #undef HAVE_SIGNBIT */