API diff

mscorlib.dll
System.dll
System.Core.dll
System.Data.dll
System.ServiceModel.dll
System.Transactions.dll
MonoTouch.Dialog-1.dll
MonoTouch.NUnitLite.dll
OpenTK-1.0.dll
System.Net.Http.dll
Xamarin.iOS.dll


mscorlib.dll

Hide non-breaking changes

Namespace Microsoft.Win32

Type Changed: Microsoft.Win32.RegistryKey

Added properties:

	public SafeHandles.SafeRegistryHandle Handle { get; }
	public string Name { get; }
	public int SubKeyCount { get; }
	public int ValueCount { get; }
	public RegistryView View { get; }

Removed method:

	public static object GetValue (string keyName, string valueName, object defaultValue);

Added methods:

	public RegistryKey CreateSubKey (string subkey, bool writable);
	public RegistryKey CreateSubKey (string subkey, bool writable, RegistryOptions options);
	public void DeleteSubKey (string subkey);
	public void DeleteSubKey (string subkey, bool throwOnMissingSubKey);
	public void DeleteSubKeyTree (string subkey);
	public void DeleteSubKeyTree (string subkey, bool throwOnMissingSubKey);
	public void DeleteValue (string name);
	public void DeleteValue (string name, bool throwOnMissingValue);
	public void Flush ();
	public static RegistryKey FromHandle (SafeHandles.SafeRegistryHandle handle);
	public static RegistryKey FromHandle (SafeHandles.SafeRegistryHandle handle, RegistryView view);
	public string[] GetSubKeyNames ();
	public object GetValue (string name);
	public object GetValue (string name, object defaultValue, RegistryValueOptions options);
	public RegistryValueKind GetValueKind (string name);
	public string[] GetValueNames ();
	public static RegistryKey OpenBaseKey (RegistryHive hKey, RegistryView view);
	public RegistryKey OpenSubKey (string name);
	public RegistryKey OpenSubKey (string name, System.Security.AccessControl.RegistryRights rights);

Namespace Microsoft.Win32.SafeHandles

Type Changed: Microsoft.Win32.SafeHandles.SafeAccessTokenHandle

Removed constructor:

	public SafeAccessTokenHandle ();

Added constructor:

	public SafeAccessTokenHandle (IntPtr handle);

Added property:

	public static SafeAccessTokenHandle InvalidHandle { get; }

Namespace System

Type Changed: System.AppContext

Added properties:

	public static string BaseDirectory { get; }
	public static string TargetFrameworkName { get; }

Added methods:

	public static object GetData (string name);
	public static void SetSwitch (string switchName, bool isEnabled);
	public static bool TryGetSwitch (string switchName, out bool isEnabled);

Type Changed: System.Console

Added properties:

	public static ConsoleColor BackgroundColor { get; set; }
	public static int BufferHeight { get; set; }
	public static int BufferWidth { get; set; }
	public static bool CapsLock { get; }
	public static int CursorLeft { get; set; }
	public static int CursorSize { get; set; }
	public static int CursorTop { get; set; }
	public static bool CursorVisible { get; set; }
	public static ConsoleColor ForegroundColor { get; set; }
	public static bool IsErrorRedirected { get; }
	public static bool IsInputRedirected { get; }
	public static bool IsOutputRedirected { get; }
	public static bool KeyAvailable { get; }
	public static int LargestWindowHeight { get; set; }
	public static int LargestWindowWidth { get; set; }
	public static bool NumberLock { get; }
	public static string Title { get; set; }
	public static bool TreatControlCAsInput { get; set; }
	public static int WindowHeight { get; set; }
	public static int WindowLeft { get; set; }
	public static int WindowTop { get; set; }
	public static int WindowWidth { get; set; }

Added event:

	public event ConsoleCancelEventHandler CancelKeyPress;

Added methods:

	public static void Beep ();
	public static void Beep (int frequency, int duration);
	public static void Clear ();
	public static void MoveBufferArea (int sourceLeft, int sourceTop, int sourceWidth, int sourceHeight, int targetLeft, int targetTop);
	public static void MoveBufferArea (int sourceLeft, int sourceTop, int sourceWidth, int sourceHeight, int targetLeft, int targetTop, char sourceChar, ConsoleColor sourceForeColor, ConsoleColor sourceBackColor);
	public static ConsoleKeyInfo ReadKey ();
	public static ConsoleKeyInfo ReadKey (bool intercept);
	public static void ResetColor ();
	public static void SetBufferSize (int width, int height);
	public static void SetCursorPosition (int left, int top);
	public static void SetWindowPosition (int left, int top);
	public static void SetWindowSize (int width, int height);

Type Changed: System.Environment

Added methods:

	public static string GetEnvironmentVariable (string variable, EnvironmentVariableTarget target);
	public static Collections.IDictionary GetEnvironmentVariables (EnvironmentVariableTarget target);
	public static void SetEnvironmentVariable (string variable, string value, EnvironmentVariableTarget target);

Namespace System.Diagnostics.Tracing

Type Changed: System.Diagnostics.Tracing.EventAttribute

Added properties:

	public EventActivityOptions ActivityOptions { get; set; }
	public EventChannel Channel { get; set; }
	public string Message { get; set; }
	public EventOpcode Opcode { get; set; }
	public EventTags Tags { get; set; }
	public EventTask Task { get; set; }
	public byte Version { get; set; }

Type Changed: System.Diagnostics.Tracing.EventSource

Added event:

	public event System.EventHandler<EventCommandEventArgs> EventCommandExecuted;

Added methods:

	public static string GenerateManifest (System.Type eventSourceType, string assemblyPathToIncludeInManifest);
	public static string GenerateManifest (System.Type eventSourceType, string assemblyPathToIncludeInManifest, EventManifestOptions flags);
	public static System.Guid GetGuid (System.Type eventSourceType);
	public static string GetName (System.Type eventSourceType);
	public static System.Collections.Generic.IEnumerable<EventSource> GetSources ();
	public static void SendCommand (EventSource eventSource, EventCommand command, System.Collections.Generic.IDictionary<System.String,System.String> commandArguments);
	public static void SetCurrentThreadActivityId (System.Guid activityId);
	public static void SetCurrentThreadActivityId (System.Guid activityId, out System.Guid oldActivityThatWillContinue);
	public void Write (string eventName, EventSourceOptions options);
	protected void WriteEventCore (int eventId, int eventDataCount, EventSource.EventData* data);
	protected void WriteEventWithRelatedActivityId (int eventId, System.Guid relatedActivityId, object[] args);
	protected void WriteEventWithRelatedActivityIdCore (int eventId, System.Guid* relatedActivityId, int eventDataCount, EventSource.EventData* data);
	protected override void ~EventSource ();

Namespace System.IO

Type Changed: System.IO.DirectoryInfo

Added interface:

	System.Runtime.Serialization.ISerializable

Type Changed: System.IO.File

Added method:

	public static FileStream Create (string path, int bufferSize, FileOptions options);

Type Changed: System.IO.FileInfo

Added interface:

	System.Runtime.Serialization.ISerializable

Added methods:

	public FileInfo Replace (string destinationFileName, string destinationBackupFileName);
	public FileInfo Replace (string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors);

Type Changed: System.IO.FileSystemInfo

Added interface:

	System.Runtime.Serialization.ISerializable

Added method:

	public virtual void GetObjectData (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);

Namespace System.Runtime.CompilerServices

Type Changed: System.Runtime.CompilerServices.ConditionalWeakTable`2

Added method:

	protected override void ~ConditionalWeakTable ();

Namespace System.Runtime.InteropServices

Type Changed: System.Runtime.InteropServices.ExternalException

Added method:

	public override string ToString ();

Type Changed: System.Runtime.InteropServices.Marshal

Added methods:

	public static bool AreComObjectsAvailableForCleanup ();
	public static TWrapper CreateWrapperOfType<T, TWrapper> (T o);
	public static object CreateWrapperOfType (object o, System.Type t);
	public static int FinalReleaseComObject (object o);
	public static IntPtr GetComInterfaceForObject<T, TInterface> (T o);
	public static IntPtr GetComInterfaceForObject (object o, System.Type T);
	public static IntPtr GetComInterfaceForObject (object o, System.Type T, CustomQueryInterfaceMode mode);
	public static int GetExceptionCode ();
	public static int GetHRForException (System.Exception e);
	public static int GetHRForLastWin32Error ();
	public static IntPtr GetIUnknownForObject (object o);
	public static void GetNativeVariantForObject (object obj, IntPtr pDstNativeVariant);
	public static void GetNativeVariantForObject<T> (T obj, IntPtr pDstNativeVariant);
	public static object GetObjectForIUnknown (IntPtr pUnk);
	public static T GetObjectForNativeVariant<T> (IntPtr pSrcNativeVariant);
	public static object GetObjectForNativeVariant (IntPtr pSrcNativeVariant);
	public static T[] GetObjectsForNativeVariants<T> (IntPtr aSrcNativeVariant, int cVars);
	public static object[] GetObjectsForNativeVariants (IntPtr aSrcNativeVariant, int cVars);
	public static int GetStartComSlot (System.Type t);
	public static System.Type GetTypeFromCLSID (System.Guid clsid);
	public static string GetTypeInfoName (ComTypes.ITypeInfo typeInfo);
	public static object GetUniqueObjectForIUnknown (IntPtr unknown);
	public static bool IsComObject (object o);
	public static int ReleaseComObject (object o);

New Type System.Runtime.InteropServices.ComImportAttribute

public sealed class ComImportAttribute : System.Attribute {
	// constructors
	public ComImportAttribute ();
}

New Type System.Runtime.InteropServices.DispatchWrapper

[Serializable]
public sealed class DispatchWrapper {
	// constructors
	public DispatchWrapper (object obj);
	// properties
	public object WrappedObject { get; }
}

New Type System.Runtime.InteropServices.ErrorWrapper

[Serializable]
public sealed class ErrorWrapper {
	// constructors
	public ErrorWrapper (System.Exception e);
	public ErrorWrapper (int errorCode);
	public ErrorWrapper (object errorCode);
	// properties
	public int ErrorCode { get; }
}

Namespace System.Security

Type Changed: System.Security.CodeAccessPermission

Modified methods:

public virtual final void Assert ()
public virtual final void Demand ()
public virtual final void Deny ()
public virtual final void PermitOnly ()

Namespace System.Security.AccessControl

Type Changed: System.Security.AccessControl.AuthorizationRuleCollection

Added constructor:

	public AuthorizationRuleCollection ();

Added method:

	public void AddRule (AuthorizationRule rule);

Type Changed: System.Security.AccessControl.CommonSecurityDescriptor

Added methods:

	public void AddDiscretionaryAcl (byte revision, int trusted);
	public void AddSystemAcl (byte revision, int trusted);

Type Changed: System.Security.AccessControl.DiscretionaryAcl

Added methods:

	public void AddAccess (AccessControlType accessType, System.Security.Principal.SecurityIdentifier sid, ObjectAccessRule rule);
	public bool RemoveAccess (AccessControlType accessType, System.Security.Principal.SecurityIdentifier sid, ObjectAccessRule rule);
	public void RemoveAccessSpecific (AccessControlType accessType, System.Security.Principal.SecurityIdentifier sid, ObjectAccessRule rule);
	public void SetAccess (AccessControlType accessType, System.Security.Principal.SecurityIdentifier sid, ObjectAccessRule rule);

Type Changed: System.Security.AccessControl.ObjectSecurity

Added constructors:

	protected ObjectSecurity ();
	protected ObjectSecurity (CommonSecurityDescriptor securityDescriptor);

Type Changed: System.Security.AccessControl.SystemAcl

Added methods:

	public void AddAudit (System.Security.Principal.SecurityIdentifier sid, ObjectAuditRule rule);
	public bool RemoveAudit (System.Security.Principal.SecurityIdentifier sid, ObjectAuditRule rule);
	public void RemoveAuditSpecific (System.Security.Principal.SecurityIdentifier sid, ObjectAuditRule rule);
	public void SetAudit (System.Security.Principal.SecurityIdentifier sid, ObjectAuditRule rule);

Namespace System.Security.Principal

Type Changed: System.Security.Principal.WindowsIdentity

Added methods:

	public static void RunImpersonated (Microsoft.Win32.SafeHandles.SafeAccessTokenHandle safeAccessTokenHandle, System.Action action);
	public static T RunImpersonated<T> (Microsoft.Win32.SafeHandles.SafeAccessTokenHandle safeAccessTokenHandle, System.Func<T> func);

Namespace System.Threading

Type Changed: System.Threading.EventWaitHandle

Added method:

	protected override void Dispose (bool explicitDisposing);


System.dll

Hide non-breaking changes

Namespace Mono.Security.Interface

Type Changed: Mono.Security.Interface.MonoTlsProviderFactory

Removed field:

	public static MonoTlsProviderFactoryDelegate _PrivateFactoryDelegate;

Removed Type Mono.Security.Interface.MonoTlsProviderFactoryDelegate

Namespace System

Type Changed: System.Uri

Added property:

	public string IdnHost { get; }

Added methods:

	[Obsolete ("The method has been deprecated. It is not used by the system. http://go.microsoft.com/fwlink/?linkid=14202")]
	protected virtual void Canonicalize ();

	[Obsolete ("The method has been deprecated. It is not used by the system. http://go.microsoft.com/fwlink/?linkid=14202")]
	protected virtual void CheckSecurity ();

Type Changed: System.UriParser

Modified methods:

protected protected virtual string GetComponents (Uri uri, UriComponents components, UriFormat format)
protected protected virtual void InitializeAndValidate (Uri uri, out UriFormatException parsingError)
protected protected virtual bool IsBaseOf (Uri baseUri, Uri relativeUri)
protected protected virtual bool IsWellFormedOriginalString (Uri uri)
protected protected virtual UriParser OnNewUri ()
protected protected virtual string Resolve (Uri baseUri, Uri relativeUri, out UriFormatException parsingError)

New Type System.GopherStyleUriParser

public class GopherStyleUriParser : System.UriParser {
	// constructors
	public GopherStyleUriParser ();
}

New Type System.LdapStyleUriParser

public class LdapStyleUriParser : System.UriParser {
	// constructors
	public LdapStyleUriParser ();
}

Namespace System.Diagnostics

Type Changed: System.Diagnostics.Process

Added property:

	public Microsoft.Win32.SafeHandles.SafeProcessHandle SafeHandle { get; }

Removed method:

	protected override void ~Process ();

Modified methods:

public Process Start (string fileName, string username userName, System.Security.SecureString password, string domain)
public Process Start (string fileName, string arguments, string username userName, System.Security.SecureString password, string domain)

Type Changed: System.Diagnostics.ProcessModuleCollection

Added property:

	public ProcessModule Item { get; }

Added methods:

	public bool Contains (ProcessModule module);
	public void CopyTo (ProcessModule[] array, int index);
	public int IndexOf (ProcessModule module);

Type Changed: System.Diagnostics.ProcessModuleCollectionBase

Added method:

	public System.Collections.IEnumerator GetEnumerator ();

Type Changed: System.Diagnostics.ProcessStartInfo

Modified constructors:

public ProcessStartInfo (string filename fileName)
public ProcessStartInfo (string filename fileName, string arguments)

Added properties:

	public System.Collections.Generic.IDictionary<System.String,System.String> Environment { get; }
	public string PasswordInClearText { get; set; }

Type Changed: System.Diagnostics.ProcessThreadCollection

Added property:

	public ProcessThread Item { get; }

Added methods:

	public int Add (ProcessThread thread);
	public bool Contains (ProcessThread thread);
	public void CopyTo (ProcessThread[] array, int index);
	public int IndexOf (ProcessThread thread);
	public void Insert (int index, ProcessThread thread);
	public void Remove (ProcessThread thread);

Type Changed: System.Diagnostics.ProcessThreadCollectionBase

Added method:

	public System.Collections.IEnumerator GetEnumerator ();

Namespace System.IO

Type Changed: System.IO.FileSystemWatcher

Added interface:

	System.IDisposable

Added methods:

	public virtual void Dispose ();
	protected virtual void Dispose (bool disposing);

Namespace System.IO.Compression

Type Changed: System.IO.Compression.DeflateStream

Modified constructors:

public DeflateStream (System.IO.Stream compressedStream stream, CompressionMode mode)
public DeflateStream (System.IO.Stream compressedStream stream, CompressionMode mode, bool leaveOpen)

Modified methods:

public override int Read (byte[] dest array, int dest_offset offset, int count)
public override void Write (byte[] src array, int src_offset offset, int count)

Type Changed: System.IO.Compression.GZipStream

Modified methods:

public override int Read (byte[] dest array, int dest_offset offset, int count)
public override void Write (byte[] src array, int src_offset offset, int count)

Namespace System.Net

Type Changed: System.Net.FileWebResponse

Added property:

	public override bool SupportsHeaders { get; }

Removed methods:

	protected override void Dispose (bool disposing);
	protected override void ~FileWebResponse ();

Type Changed: System.Net.FtpWebResponse

Added property:

	public override bool SupportsHeaders { get; }

Type Changed: System.Net.HttpWebResponse

Added property:

	public override bool SupportsHeaders { get; }

Type Changed: System.Net.IPAddress

Added property:

	public bool IsIPv4MappedToIPv6 { get; }

Type Changed: System.Net.TransportContext

Added method:

	public virtual System.Collections.Generic.IEnumerable<System.Security.Authentication.ExtendedProtection.TokenBinding> GetTlsTokenBindings ();

Namespace System.Net.NetworkInformation

Type Changed: System.Net.NetworkInformation.GatewayIPAddressInformationCollection

Modified constructors:

protected protected GatewayIPAddressInformationCollection ()

Type Changed: System.Net.NetworkInformation.IPGlobalProperties

Added methods:

	public virtual System.IAsyncResult BeginGetUnicastAddresses (System.AsyncCallback callback, object state);
	public virtual UnicastIPAddressInformationCollection EndGetUnicastAddresses (System.IAsyncResult asyncResult);
	public virtual UnicastIPAddressInformationCollection GetUnicastAddresses ();
	public virtual System.Threading.Tasks.Task<UnicastIPAddressInformationCollection> GetUnicastAddressesAsync ();

Type Changed: System.Net.NetworkInformation.IPv6InterfaceProperties

Added method:

	public virtual long GetScopeId (ScopeLevel scopeLevel);

Type Changed: System.Net.NetworkInformation.NetworkInformationException

Modified base type: System.Exception System.ComponentModel.Win32Exception

Added constructor:

	protected NetworkInformationException (System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext);

Modified properties:

public override int ErrorCode { get; }

Type Changed: System.Net.NetworkInformation.NetworkInterface

Modified properties:

public abstract virtual string Description { get; }
public abstract virtual string Id { get; }
public abstract virtual bool IsReceiveOnly { get; }
public abstract virtual string Name { get; }
public abstract virtual NetworkInterfaceType NetworkInterfaceType { get; }
public abstract virtual OperationalStatus OperationalStatus { get; }
public abstract virtual long Speed { get; }
public abstract virtual bool SupportsMulticast { get; }

Added property:

	public static int IPv6LoopbackInterfaceIndex { get; }

Removed method:

	public static System.Net.IPAddress GetNetMask (System.Net.IPAddress address);

Modified methods:

public abstract virtual IPInterfaceProperties GetIPProperties ()
public abstract virtual IPv4InterfaceStatistics GetIPv4Statistics ()
public abstract virtual PhysicalAddress GetPhysicalAddress ()
public abstract virtual bool Supports (NetworkInterfaceComponent networkInterfaceComponent)

Added method:

	public virtual IPInterfaceStatistics GetIPStatistics ();

Type Changed: System.Net.NetworkInformation.NetworkInterfaceType

Added values:

	Wman = 237,
	Wwanpp = 243,
	Wwanpp2 = 244,

New Type System.Net.NetworkInformation.NetworkInformationPermission

[Serializable]
public sealed class NetworkInformationPermission : System.Security.CodeAccessPermission, System.Security.IPermission, System.Security.ISecurityEncodable, System.Security.IStackWalk, System.Security.Permissions.IUnrestrictedPermission {
	// constructors
	public NetworkInformationPermission (NetworkInformationAccess access);
	public NetworkInformationPermission (System.Security.Permissions.PermissionState state);
	// properties
	public NetworkInformationAccess Access { get; }
	// methods
	public void AddPermission (NetworkInformationAccess access);
	public override System.Security.IPermission Copy ();
	public override void FromXml (System.Security.SecurityElement securityElement);
	public override System.Security.IPermission Intersect (System.Security.IPermission target);
	public override bool IsSubsetOf (System.Security.IPermission target);
	public virtual bool IsUnrestricted ();
	public override System.Security.SecurityElement ToXml ();
	public override System.Security.IPermission Union (System.Security.IPermission target);
}

New Type System.Net.NetworkInformation.NetworkInformationPermissionAttribute

[Serializable]
public sealed class NetworkInformationPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute {
	// constructors
	public NetworkInformationPermissionAttribute (System.Security.Permissions.SecurityAction action);
	// properties
	public string Access { get; set; }
	// methods
	public override System.Security.IPermission CreatePermission ();
}

Namespace System.Net.Security

Type Changed: System.Net.Security.NegotiateStream

Added methods:

	public virtual System.Threading.Tasks.Task AuthenticateAsClientAsync ();
	public virtual System.Threading.Tasks.Task AuthenticateAsClientAsync (System.Net.NetworkCredential credential, string targetName);
	public virtual System.Threading.Tasks.Task AuthenticateAsClientAsync (System.Net.NetworkCredential credential, System.Security.Authentication.ExtendedProtection.ChannelBinding binding, string targetName);
	public virtual System.Threading.Tasks.Task AuthenticateAsClientAsync (System.Net.NetworkCredential credential, string targetName, ProtectionLevel requiredProtectionLevel, System.Security.Principal.TokenImpersonationLevel allowedImpersonationLevel);
	public virtual System.Threading.Tasks.Task AuthenticateAsClientAsync (System.Net.NetworkCredential credential, System.Security.Authentication.ExtendedProtection.ChannelBinding binding, string targetName, ProtectionLevel requiredProtectionLevel, System.Security.Principal.TokenImpersonationLevel allowedImpersonationLevel);
	public virtual System.Threading.Tasks.Task AuthenticateAsServerAsync ();
	public virtual System.Threading.Tasks.Task AuthenticateAsServerAsync (System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy policy);
	public virtual System.Threading.Tasks.Task AuthenticateAsServerAsync (System.Net.NetworkCredential credential, ProtectionLevel requiredProtectionLevel, System.Security.Principal.TokenImpersonationLevel requiredImpersonationLevel);
	public virtual System.Threading.Tasks.Task AuthenticateAsServerAsync (System.Net.NetworkCredential credential, System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy policy, ProtectionLevel requiredProtectionLevel, System.Security.Principal.TokenImpersonationLevel requiredImpersonationLevel);

Type Changed: System.Net.Security.SslStream

Added constructor:

	public SslStream (System.IO.Stream innerStream, bool leaveInnerStreamOpen, RemoteCertificateValidationCallback userCertificateValidationCallback, LocalCertificateSelectionCallback userCertificateSelectionCallback, EncryptionPolicy encryptionPolicy);

Namespace System.Net.Sockets

Type Changed: System.Net.Sockets.Socket

Modified methods:

public void Bind (System.Net.EndPoint local_end localEP)
public byte[] GetSocketOption (SocketOptionLevel optionLevel, SocketOptionName optionName, int length optionLength)
public int IOControl (int ioctl_code ioControlCode, byte[] in_value optionInValue, byte[] out_value optionOutValue)
public bool Poll (int time_us microSeconds, SelectMode mode)
public int Receive (byte[] buffer, SocketFlags flags socketFlags)
public int Receive (byte[] buffer, int size, SocketFlags flags socketFlags)
public int Receive (byte[] buffer, int offset, int size, SocketFlags flags socketFlags)
public int Receive (byte[] buffer, int offset, int size, SocketFlags flags socketFlags, out SocketError error errorCode)
public int ReceiveFrom (byte[] buffer, SocketFlags flags socketFlags, ref System.Net.EndPoint remoteEP)
public int ReceiveFrom (byte[] buffer, int size, SocketFlags flags socketFlags, ref System.Net.EndPoint remoteEP)
public int ReceiveFrom (byte[] buffer, int offset, int size, SocketFlags flags socketFlags, ref System.Net.EndPoint remoteEP)
public int Send (byte[] buffer, SocketFlags flags socketFlags)
public int Send (byte[] buffer, int size, SocketFlags flags socketFlags)
public int Send (byte[] buffer, int offset, int size, SocketFlags flags socketFlags)
public int Send (byte[] buffer, int offset, int size, SocketFlags flags socketFlags, out SocketError error errorCode)
public int SendTo (byte[] buffer, System.Net.EndPoint remote_end remoteEP)
public int SendTo (byte[] buffer, SocketFlags flags socketFlags, System.Net.EndPoint remote_end remoteEP)
public int SendTo (byte[] buffer, int size, SocketFlags flags socketFlags, System.Net.EndPoint remote_end remoteEP)
public int SendTo (byte[] buffer, int offset, int size, SocketFlags flags socketFlags, System.Net.EndPoint remote_end remoteEP)

Added methods:

	public static void CancelConnectAsync (SocketAsyncEventArgs e);
	public static bool ConnectAsync (SocketType socketType, ProtocolType protocolType, SocketAsyncEventArgs e);

Type Changed: System.Net.Sockets.SocketAsyncEventArgs

Added properties:

	public IPPacketInformation ReceiveMessageFromPacketInfo { get; }
	public SendPacketsElement[] SendPacketsElements { get; set; }

Type Changed: System.Net.Sockets.TcpClient

Added method:

	public virtual void Dispose ();

Type Changed: System.Net.Sockets.UdpClient

Added method:

	public virtual void Dispose ();

Namespace System.Security.AccessControl

Type Changed: System.Security.AccessControl.SemaphoreAccessRule

Modified constructors:

public SemaphoreAccessRule (System.Security.Principal.IdentityReference identity, SemaphoreRights semaphoreRights eventRights, AccessControlType type)
public SemaphoreAccessRule (string identity, SemaphoreRights semaphoreRights eventRights, AccessControlType type)

Type Changed: System.Security.AccessControl.SemaphoreAuditRule

Modified constructors:

public SemaphoreAuditRule (System.Security.Principal.IdentityReference identity, SemaphoreRights semaphoreRights eventRights, AuditFlags flags)

Namespace System.Security.Authentication.ExtendedProtection

Type Changed: System.Security.Authentication.ExtendedProtection.ServiceNameCollection

Added method:

	public bool Contains (string searchServiceName);

New Type System.Security.Authentication.ExtendedProtection.TokenBinding

public class TokenBinding {
	// properties
	public TokenBindingType BindingType { get; }
	// methods
	public byte[] GetRawTokenBindingId ();
}

New Type System.Security.Authentication.ExtendedProtection.TokenBindingType

[Serializable]
public enum TokenBindingType {
	Provided = 0,
	Referred = 1,
}

Namespace System.Security.Cryptography

Type Changed: System.Security.Cryptography.Oid

Added methods:

	public static Oid FromFriendlyName (string friendlyName, OidGroup group);
	public static Oid FromOidValue (string oidValue, OidGroup group);

Namespace System.Security.Cryptography.X509Certificates

Type Changed: System.Security.Cryptography.X509Certificates.X509Chain

Added property:

	public Microsoft.Win32.SafeHandles.SafeX509ChainHandle SafeHandle { get; }

Type Changed: System.Security.Cryptography.X509Certificates.X509ChainStatusFlags

Added values:

	ExplicitDistrust = 67108864,
	HasNotSupportedCriticalExtension = 134217728,
	HasWeakSignature = 1048576,

Type Changed: System.Security.Cryptography.X509Certificates.X509KeyUsageExtension

Modified methods:

public override void CopyFrom (System.Security.Cryptography.AsnEncodedData encodedData asnEncodedData)

Type Changed: System.Security.Cryptography.X509Certificates.X509Store

Added interface:

	System.IDisposable

Added method:

	public virtual void Dispose ();

Type Changed: System.Security.Cryptography.X509Certificates.X509SubjectKeyIdentifierExtension

Modified methods:

public override void CopyFrom (System.Security.Cryptography.AsnEncodedData encodedData asnEncodedData)

Namespace System.Text.RegularExpressions

Type Changed: System.Text.RegularExpressions.Regex

Added properties:

	protected System.Collections.IDictionary CapNames { get; set; }
	protected System.Collections.IDictionary Caps { get; set; }


System.Core.dll

Hide non-breaking changes

Namespace System.IO.MemoryMappedFiles

Type Changed: System.IO.MemoryMappedFiles.MemoryMappedFile

Added methods:

	public static MemoryMappedFile CreateFromFile (System.IO.FileStream fileStream, string mapName, long capacity, MemoryMappedFileAccess access, System.IO.HandleInheritability inheritability, bool leaveOpen);
	public static MemoryMappedFile CreateNew (string mapName, long capacity, MemoryMappedFileAccess access, MemoryMappedFileOptions options, System.IO.HandleInheritability inheritability);
	public static MemoryMappedFile CreateOrOpen (string mapName, long capacity, MemoryMappedFileAccess access, MemoryMappedFileOptions options, System.IO.HandleInheritability inheritability);

Namespace System.IO.Pipes

Type Changed: System.IO.Pipes.NamedPipeClientStream

Added methods:

	public System.Threading.Tasks.Task ConnectAsync ();
	public System.Threading.Tasks.Task ConnectAsync (int timeout);
	public System.Threading.Tasks.Task ConnectAsync (System.Threading.CancellationToken cancellationToken);
	public System.Threading.Tasks.Task ConnectAsync (int timeout, System.Threading.CancellationToken cancellationToken);
	protected override void ~NamedPipeClientStream ();

Type Changed: System.IO.Pipes.NamedPipeServerStream

Added methods:

	public System.Threading.Tasks.Task WaitForConnectionAsync ();
	public System.Threading.Tasks.Task WaitForConnectionAsync (System.Threading.CancellationToken cancellationToken);

Type Changed: System.IO.Pipes.PipeStream

Added method:

	public void WaitForPipeDrain ();

New Type System.IO.Pipes.PipeAccessRights

[Serializable]
[Flags]
public enum PipeAccessRights {
	AccessSystemSecurity = 16777216,
	ChangePermissions = 262144,
	CreateNewInstance = 4,
	Delete = 65536,
	FullControl = 2032031,
	Read = 131209,
	ReadAttributes = 128,
	ReadData = 1,
	ReadExtendedAttributes = 8,
	ReadPermissions = 131072,
	ReadWrite = 131483,
	Synchronize = 1048576,
	TakeOwnership = 524288,
	Write = 274,
	WriteAttributes = 256,
	WriteData = 2,
	WriteExtendedAttributes = 16,
}

New Type System.IO.Pipes.PipeAccessRule

public sealed class PipeAccessRule : System.Security.AccessControl.AccessRule {
	// constructors
	public PipeAccessRule (System.Security.Principal.IdentityReference identity, PipeAccessRights rights, System.Security.AccessControl.AccessControlType type);
	public PipeAccessRule (string identity, PipeAccessRights rights, System.Security.AccessControl.AccessControlType type);
	// properties
	public PipeAccessRights PipeAccessRights { get; }
}

New Type System.IO.Pipes.PipeAuditRule

public sealed class PipeAuditRule : System.Security.AccessControl.AuditRule {
	// constructors
	public PipeAuditRule (System.Security.Principal.IdentityReference identity, PipeAccessRights rights, System.Security.AccessControl.AuditFlags flags);
	public PipeAuditRule (string identity, PipeAccessRights rights, System.Security.AccessControl.AuditFlags flags);
	// properties
	public PipeAccessRights PipeAccessRights { get; }
}

New Type System.IO.Pipes.PipeSecurity

public class PipeSecurity : System.Security.AccessControl.NativeObjectSecurity {
	// constructors
	public PipeSecurity ();
	// properties
	public override System.Type AccessRightType { get; }
	public override System.Type AccessRuleType { get; }
	public override System.Type AuditRuleType { get; }
	// methods
	public override System.Security.AccessControl.AccessRule AccessRuleFactory (System.Security.Principal.IdentityReference identityReference, int accessMask, bool isInherited, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.AccessControlType type);
	public void AddAccessRule (PipeAccessRule rule);
	public void AddAuditRule (PipeAuditRule rule);
	public override System.Security.AccessControl.AuditRule AuditRuleFactory (System.Security.Principal.IdentityReference identityReference, int accessMask, bool isInherited, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.AuditFlags flags);
	protected void Persist (System.Runtime.InteropServices.SafeHandle handle);
	protected void Persist (string name);
	public bool RemoveAccessRule (PipeAccessRule rule);
	public void RemoveAccessRuleSpecific (PipeAccessRule rule);
	public bool RemoveAuditRule (PipeAuditRule rule);
	public void RemoveAuditRuleAll (PipeAuditRule rule);
	public void RemoveAuditRuleSpecific (PipeAuditRule rule);
	public void ResetAccessRule (PipeAccessRule rule);
	public void SetAccessRule (PipeAccessRule rule);
	public void SetAuditRule (PipeAuditRule rule);
}

New Type System.IO.Pipes.PipeStreamImpersonationWorker

public sealed delegate PipeStreamImpersonationWorker : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public PipeStreamImpersonationWorker (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke ();
}

Namespace System.Linq

Type Changed: System.Linq.Enumerable

Added methods:

	public static System.Collections.Generic.IEnumerable<TSource> Append<TSource> (System.Collections.Generic.IEnumerable<TSource> source, TSource element);
	public static System.Collections.Generic.IEnumerable<TSource> Prepend<TSource> (System.Collections.Generic.IEnumerable<TSource> source, TSource element);

Namespace System.Linq.Expressions

Type Changed: System.Linq.Expressions.Expression`1

Added method:

	public TDelegate Compile (bool preferInterpretation);

Type Changed: System.Linq.Expressions.LambdaExpression

Added method:

	public System.Delegate Compile (bool preferInterpretation);

Namespace System.Security.Cryptography

Type Changed: System.Security.Cryptography.CngAlgorithm

Added properties:

	public static CngAlgorithm ECDiffieHellman { get; }
	public static CngAlgorithm ECDsa { get; }

Type Changed: System.Security.Cryptography.CngKey

Added properties:

	public CngAlgorithm Algorithm { get; }
	public CngAlgorithmGroup AlgorithmGroup { get; }
	public CngExportPolicies ExportPolicy { get; }
	public Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle Handle { get; }
	public bool IsEphemeral { get; }
	public bool IsMachineKey { get; }
	public string KeyName { get; }
	public int KeySize { get; }
	public CngKeyUsages KeyUsage { get; }
	public IntPtr ParentWindowHandle { get; set; }
	public CngProvider Provider { get; }
	public Microsoft.Win32.SafeHandles.SafeNCryptProviderHandle ProviderHandle { get; }
	public CngUIPolicy UIPolicy { get; }
	public string UniqueName { get; }

Added methods:

	public static CngKey Create (CngAlgorithm algorithm);
	public static CngKey Create (CngAlgorithm algorithm, string keyName);
	public static CngKey Create (CngAlgorithm algorithm, string keyName, CngKeyCreationParameters creationParameters);
	public void Delete ();
	public static bool Exists (string keyName);
	public static bool Exists (string keyName, CngProvider provider);
	public static bool Exists (string keyName, CngProvider provider, CngKeyOpenOptions options);
	public byte[] Export (CngKeyBlobFormat format);
	public CngProperty GetProperty (string name, CngPropertyOptions options);
	public bool HasProperty (string name, CngPropertyOptions options);
	public static CngKey Import (byte[] keyBlob, CngKeyBlobFormat format);
	public static CngKey Import (byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider);
	public static CngKey Open (string keyName);
	public static CngKey Open (Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle keyHandle, CngKeyHandleOpenOptions keyHandleOpenOptions);
	public static CngKey Open (string keyName, CngProvider provider);
	public static CngKey Open (string keyName, CngProvider provider, CngKeyOpenOptions openOptions);
	public void SetProperty (CngProperty property);

Type Changed: System.Security.Cryptography.CngKeyBlobFormat

Added properties:

	public static CngKeyBlobFormat EccFullPrivateBlob { get; }
	public static CngKeyBlobFormat EccFullPublicBlob { get; }

Type Changed: System.Security.Cryptography.ECDsa

Added methods:

	public static ECDsa Create (ECCurve curve);
	public static ECDsa Create (ECParameters parameters);
	public virtual ECParameters ExportExplicitParameters (bool includePrivateParameters);
	public virtual ECParameters ExportParameters (bool includePrivateParameters);
	public virtual void GenerateKey (ECCurve curve);
	public virtual void ImportParameters (ECParameters parameters);

Type Changed: System.Security.Cryptography.ECDsaCng

Added constructors:

	public ECDsaCng (int keySize);
	public ECDsaCng (CngKey key);
	public ECDsaCng (ECCurve curve);

Added property:

	public CngKey Key { get; }

Type Changed: System.Security.Cryptography.RSACng

Added constructors:

	public RSACng (int keySize);
	public RSACng (CngKey key);

Added property:

	public CngKey Key { get; }

New Type System.Security.Cryptography.ECCurve

public struct ECCurve {
	// fields
	public byte[] A;
	public byte[] B;
	public byte[] Cofactor;
	public ECCurve.ECCurveType CurveType;
	public ECPoint G;
	public HashAlgorithmName? Hash;
	public byte[] Order;
	public byte[] Polynomial;
	public byte[] Prime;
	public byte[] Seed;
	// properties
	public bool IsCharacteristic2 { get; }
	public bool IsExplicit { get; }
	public bool IsNamed { get; }
	public bool IsPrime { get; }
	public Oid Oid { get; }
	// methods
	public static ECCurve CreateFromFriendlyName (string oidFriendlyName);
	public static ECCurve CreateFromOid (Oid curveOid);
	public static ECCurve CreateFromValue (string oidValue);
	public void Validate ();

	// inner types
	[Serializable]
	public enum ECCurveType {
		public static const ECCurve.ECCurveType Characteristic2;
		public static const ECCurve.ECCurveType Implicit;
		public static const ECCurve.ECCurveType Named;
		public static const ECCurve.ECCurveType PrimeMontgomery;
		public static const ECCurve.ECCurveType PrimeShortWeierstrass;
		public static const ECCurve.ECCurveType PrimeTwistedEdwards;
	}
	public static class NamedCurves {
		// properties
		public static ECCurve brainpoolP160r1 { get; }
		public static ECCurve brainpoolP160t1 { get; }
		public static ECCurve brainpoolP192r1 { get; }
		public static ECCurve brainpoolP192t1 { get; }
		public static ECCurve brainpoolP224r1 { get; }
		public static ECCurve brainpoolP224t1 { get; }
		public static ECCurve brainpoolP256r1 { get; }
		public static ECCurve brainpoolP256t1 { get; }
		public static ECCurve brainpoolP320r1 { get; }
		public static ECCurve brainpoolP320t1 { get; }
		public static ECCurve brainpoolP384r1 { get; }
		public static ECCurve brainpoolP384t1 { get; }
		public static ECCurve brainpoolP512r1 { get; }
		public static ECCurve brainpoolP512t1 { get; }
		public static ECCurve nistP256 { get; }
		public static ECCurve nistP384 { get; }
		public static ECCurve nistP521 { get; }
	}
}

New Type System.Security.Cryptography.ECParameters

public struct ECParameters {
	// fields
	public ECCurve Curve;
	public byte[] D;
	public ECPoint Q;
	// methods
	public void Validate ();
}

New Type System.Security.Cryptography.ECPoint

public struct ECPoint {
	// fields
	public byte[] X;
	public byte[] Y;
}

New Type System.Security.Cryptography.IncrementalHash

public sealed class IncrementalHash : System.IDisposable {
	// properties
	public HashAlgorithmName AlgorithmName { get; }
	// methods
	public void AppendData (byte[] data);
	public void AppendData (byte[] data, int offset, int count);
	public static IncrementalHash CreateHMAC (HashAlgorithmName hashAlgorithm, byte[] key);
	public static IncrementalHash CreateHash (HashAlgorithmName hashAlgorithm);
	public virtual void Dispose ();
	public byte[] GetHashAndReset ();
}


System.Data.dll

Hide non-breaking changes

Namespace Microsoft.SqlServer.Server

Type Changed: Microsoft.SqlServer.Server.SqlDataRecord

Removed constructor:

	public SqlDataRecord ();

Added constructor:

	public SqlDataRecord (SqlMetaData[] metaData);

Modified properties:

public virtual final int FieldCount { get; }
public virtual final object this [int ordinal] { get; }
public virtual final object this [string name] { get; }

Modified methods:

public virtual final bool GetBoolean (int ordinal)
public virtual final byte GetByte (int ordinal)
public virtual final long GetBytes (int ordinal, long fieldOffset, byte[] buffer, int bufferOffset, int length)
public virtual final char GetChar (int ordinal)
public virtual final long GetChars (int ordinal, long fieldOffset, char[] buffer, int bufferOffset, int length)
public virtual final System.Data.IDataReader GetData (int ordinal)
public virtual final string GetDataTypeName (int ordinal)
public virtual final System.DateTime GetDateTime (int ordinal)
public virtual final System.Decimal GetDecimal (int ordinal)
public virtual final double GetDouble (int ordinal)
public virtual final System.Type GetFieldType (int ordinal)
public virtual final float GetFloat (int ordinal)
public virtual final System.Guid GetGuid (int ordinal)
public virtual final short GetInt16 (int ordinal)
public virtual final int GetInt32 (int ordinal)
public virtual final long GetInt64 (int ordinal)
public virtual final string GetName (int ordinal)
public virtual final int GetOrdinal (string name)
public virtual final string GetString (int ordinal)
public virtual final object GetValue (int ordinal)
public virtual final int GetValues (object[] values)
public virtual final bool IsDBNull (int ordinal)

Added methods:

	public virtual System.DateTimeOffset GetDateTimeOffset (int ordinal);
	public virtual System.Data.SqlTypes.SqlBinary GetSqlBinary (int ordinal);
	public virtual System.Data.SqlTypes.SqlBoolean GetSqlBoolean (int ordinal);
	public virtual System.Data.SqlTypes.SqlByte GetSqlByte (int ordinal);
	public virtual System.Data.SqlTypes.SqlBytes GetSqlBytes (int ordinal);
	public virtual System.Data.SqlTypes.SqlChars GetSqlChars (int ordinal);
	public virtual System.Data.SqlTypes.SqlDateTime GetSqlDateTime (int ordinal);
	public virtual System.Data.SqlTypes.SqlDecimal GetSqlDecimal (int ordinal);
	public virtual System.Data.SqlTypes.SqlDouble GetSqlDouble (int ordinal);
	public virtual System.Type GetSqlFieldType (int ordinal);
	public virtual System.Data.SqlTypes.SqlGuid GetSqlGuid (int ordinal);
	public virtual System.Data.SqlTypes.SqlInt16 GetSqlInt16 (int ordinal);
	public virtual System.Data.SqlTypes.SqlInt32 GetSqlInt32 (int ordinal);
	public virtual System.Data.SqlTypes.SqlInt64 GetSqlInt64 (int ordinal);
	public virtual SqlMetaData GetSqlMetaData (int ordinal);
	public virtual System.Data.SqlTypes.SqlMoney GetSqlMoney (int ordinal);
	public virtual System.Data.SqlTypes.SqlSingle GetSqlSingle (int ordinal);
	public virtual System.Data.SqlTypes.SqlString GetSqlString (int ordinal);
	public virtual object GetSqlValue (int ordinal);
	public virtual int GetSqlValues (object[] values);
	public virtual System.Data.SqlTypes.SqlXml GetSqlXml (int ordinal);
	public virtual System.TimeSpan GetTimeSpan (int ordinal);
	public virtual void SetBoolean (int ordinal, bool value);
	public virtual void SetByte (int ordinal, byte value);
	public virtual void SetBytes (int ordinal, long fieldOffset, byte[] buffer, int bufferOffset, int length);
	public virtual void SetChar (int ordinal, char value);
	public virtual void SetChars (int ordinal, long fieldOffset, char[] buffer, int bufferOffset, int length);
	public virtual void SetDBNull (int ordinal);
	public virtual void SetDateTime (int ordinal, System.DateTime value);
	public virtual void SetDateTimeOffset (int ordinal, System.DateTimeOffset value);
	public virtual void SetDecimal (int ordinal, System.Decimal value);
	public virtual void SetDouble (int ordinal, double value);
	public virtual void SetFloat (int ordinal, float value);
	public virtual void SetGuid (int ordinal, System.Guid value);
	public virtual void SetInt16 (int ordinal, short value);
	public virtual void SetInt32 (int ordinal, int value);
	public virtual void SetInt64 (int ordinal, long value);
	public virtual void SetSqlBinary (int ordinal, System.Data.SqlTypes.SqlBinary value);
	public virtual void SetSqlBoolean (int ordinal, System.Data.SqlTypes.SqlBoolean value);
	public virtual void SetSqlByte (int ordinal, System.Data.SqlTypes.SqlByte value);
	public virtual void SetSqlBytes (int ordinal, System.Data.SqlTypes.SqlBytes value);
	public virtual void SetSqlChars (int ordinal, System.Data.SqlTypes.SqlChars value);
	public virtual void SetSqlDateTime (int ordinal, System.Data.SqlTypes.SqlDateTime value);
	public virtual void SetSqlDecimal (int ordinal, System.Data.SqlTypes.SqlDecimal value);
	public virtual void SetSqlDouble (int ordinal, System.Data.SqlTypes.SqlDouble value);
	public virtual void SetSqlGuid (int ordinal, System.Data.SqlTypes.SqlGuid value);
	public virtual void SetSqlInt16 (int ordinal, System.Data.SqlTypes.SqlInt16 value);
	public virtual void SetSqlInt32 (int ordinal, System.Data.SqlTypes.SqlInt32 value);
	public virtual void SetSqlInt64 (int ordinal, System.Data.SqlTypes.SqlInt64 value);
	public virtual void SetSqlMoney (int ordinal, System.Data.SqlTypes.SqlMoney value);
	public virtual void SetSqlSingle (int ordinal, System.Data.SqlTypes.SqlSingle value);
	public virtual void SetSqlString (int ordinal, System.Data.SqlTypes.SqlString value);
	public virtual void SetSqlXml (int ordinal, System.Data.SqlTypes.SqlXml value);
	public virtual void SetString (int ordinal, string value);
	public virtual void SetTimeSpan (int ordinal, System.TimeSpan value);
	public virtual void SetValue (int ordinal, object value);
	public virtual int SetValues (object[] values);

Type Changed: Microsoft.SqlServer.Server.SqlMetaData

Added constructors:

	public SqlMetaData (string name, System.Data.SqlDbType dbType, bool useServerDefault, bool isUniqueKey, System.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal);
	public SqlMetaData (string name, System.Data.SqlDbType dbType, long maxLength, bool useServerDefault, bool isUniqueKey, System.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal);
	public SqlMetaData (string name, System.Data.SqlDbType dbType, byte precision, byte scale, bool useServerDefault, bool isUniqueKey, System.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal);
	public SqlMetaData (string name, System.Data.SqlDbType dbType, long maxLength, long locale, System.Data.SqlTypes.SqlCompareOptions compareOptions, bool useServerDefault, bool isUniqueKey, System.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal);
	public SqlMetaData (string name, System.Data.SqlDbType dbType, string database, string owningSchema, string objectName, bool useServerDefault, bool isUniqueKey, System.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal);
	public SqlMetaData (string name, System.Data.SqlDbType dbType, long maxLength, byte precision, byte scale, long localeId, System.Data.SqlTypes.SqlCompareOptions compareOptions, System.Type userDefinedType, bool useServerDefault, bool isUniqueKey, System.Data.SqlClient.SortOrder columnSortOrder, int sortOrdinal);

Added properties:

	public bool IsUniqueKey { get; }
	public System.Data.SqlClient.SortOrder SortOrder { get; }
	public int SortOrdinal { get; }
	public bool UseServerDefault { get; }

Added methods:

	public System.Data.SqlTypes.SqlXml Adjust (System.Data.SqlTypes.SqlXml value);
	public System.DateTimeOffset Adjust (System.DateTimeOffset value);
	public System.TimeSpan Adjust (System.TimeSpan value);

Namespace System.Data.SqlClient

Type Changed: System.Data.SqlClient.SqlBulkCopy

Added property:

	public bool EnableStreaming { get; set; }

Added methods:

	public void WriteToServer (System.Data.Common.DbDataReader reader);
	public System.Threading.Tasks.Task WriteToServerAsync (System.Data.Common.DbDataReader reader);
	public System.Threading.Tasks.Task WriteToServerAsync (System.Data.Common.DbDataReader reader, System.Threading.CancellationToken cancellationToken);

Type Changed: System.Data.SqlClient.SqlCommand

Added methods:

	public System.Threading.Tasks.Task<SqlDataReader> ExecuteReaderAsync ();
	public System.Threading.Tasks.Task<SqlDataReader> ExecuteReaderAsync (System.Data.CommandBehavior behavior);
	public System.Threading.Tasks.Task<SqlDataReader> ExecuteReaderAsync (System.Threading.CancellationToken cancellationToken);
	public System.Threading.Tasks.Task<SqlDataReader> ExecuteReaderAsync (System.Data.CommandBehavior behavior, System.Threading.CancellationToken cancellationToken);
	public System.Threading.Tasks.Task<System.Xml.XmlReader> ExecuteXmlReaderAsync ();
	public System.Threading.Tasks.Task<System.Xml.XmlReader> ExecuteXmlReaderAsync (System.Threading.CancellationToken cancellationToken);

Type Changed: System.Data.SqlClient.SqlConnection

Added property:

	public System.Guid ClientConnectionId { get; }

Added methods:

	public void ResetStatistics ();
	public System.Collections.IDictionary RetrieveStatistics ();

Type Changed: System.Data.SqlClient.SqlDataReader

Added methods:

	public override System.Threading.Tasks.Task<T> GetFieldValueAsync<T> (int i, System.Threading.CancellationToken cancellationToken);
	public override System.IO.Stream GetStream (int i);
	public override System.IO.TextReader GetTextReader (int i);
	public override System.Threading.Tasks.Task<bool> IsDBNullAsync (int i, System.Threading.CancellationToken cancellationToken);

Type Changed: System.Data.SqlClient.SqlException

Added property:

	public System.Guid ClientConnectionId { get; }

Type Changed: System.Data.SqlClient.SqlParameter

Added property:

	public string TypeName { get; set; }


System.ServiceModel.dll

Hide non-breaking changes

Namespace System.ServiceModel

Type Changed: System.ServiceModel.ActionNotSupportedException

Modified constructors:

public ActionNotSupportedException (string msg message)
public ActionNotSupportedException (string msg message, System.Exception inner innerException)

Type Changed: System.ServiceModel.ChannelFactory

Modified methods:

protected virtual void ApplyConfiguration (string endpointConfig configurationName)
protected void InitializeEndpoint (Channels.Binding binding, EndpointAddress remoteAddress address)
protected void InitializeEndpoint (string endpointConfigurationName configurationName, EndpointAddress remoteAddress)

Type Changed: System.ServiceModel.ChannelFactory`1

Modified constructors:

protected ChannelFactory`1 (System.Type type channelType)

Type Changed: System.ServiceModel.CommunicationException

Modified constructors:

public CommunicationException (string msg message)
public CommunicationException (string msg message, System.Exception inner innerException)

Type Changed: System.ServiceModel.CommunicationObjectAbortedException

Modified constructors:

public CommunicationObjectAbortedException (string msg message)
public CommunicationObjectAbortedException (string msg message, System.Exception inner innerException)

Type Changed: System.ServiceModel.CommunicationObjectFaultedException

Modified constructors:

public CommunicationObjectFaultedException (string msg message)
public CommunicationObjectFaultedException (string msg message, System.Exception inner innerException)

Type Changed: System.ServiceModel.DnsEndpointIdentity

Modified constructors:

public DnsEndpointIdentity (string dns dnsName)

Type Changed: System.ServiceModel.DuplexClientBase`1

Modified constructors:

protected DuplexClientBase`1 (object instance callbackInstance)
protected DuplexClientBase`1 (InstanceContext instance callbackInstance)
protected DuplexClientBase`1 (object instance callbackInstance, Description.ServiceEndpoint endpoint)
protected DuplexClientBase`1 (object instance callbackInstance, string configurationName endpointConfigurationName)
protected DuplexClientBase`1 (InstanceContext instance callbackInstance, Description.ServiceEndpoint endpoint)
protected DuplexClientBase`1 (InstanceContext instance callbackInstance, string configurationName endpointConfigurationName)
protected DuplexClientBase`1 (object instance callbackInstance, Channels.Binding binding, EndpointAddress address remoteAddress)
protected DuplexClientBase`1 (object instance callbackInstance, string bindingConfigurationName, EndpointAddress address remoteAddress)
protected DuplexClientBase`1 (object instance callbackInstance, string endpointConfigurationName, string remoteAddress)
protected DuplexClientBase`1 (InstanceContext instance callbackInstance, Channels.Binding binding, EndpointAddress address remoteAddress)
protected DuplexClientBase`1 (InstanceContext instance callbackInstance, string configurationName endpointConfigurationName, EndpointAddress address)
protected DuplexClientBase`1 (InstanceContext instance callbackInstance, string endpointConfigurationName, string remoteAddress)

Type Changed: System.ServiceModel.EndpointAddress

Modified constructors:

public EndpointAddress (System.Uri uri, Channels.AddressHeader[] headers addressHeaders)
public EndpointAddress (System.Uri uri, EndpointIdentity identity, Channels.AddressHeader[] headers addressHeaders)

Type Changed: System.ServiceModel.EndpointAddressBuilder

Added property:

	public EndpointIdentity Identity { get; set; }

Type Changed: System.ServiceModel.EndpointNotFoundException

Modified constructors:

public EndpointNotFoundException (string msg message)
public EndpointNotFoundException (string msg message, System.Exception inner innerException)

Type Changed: System.ServiceModel.FaultCode

Modified constructors:

public FaultCode (string name, FaultCode subcode subCode)
public FaultCode (string name, string ns, FaultCode subcode subCode)

Modified methods:

public FaultCode CreateReceiverFaultCode (FaultCode subcode subCode)
public FaultCode CreateSenderFaultCode (FaultCode subcode subCode)

Type Changed: System.ServiceModel.FaultException

Modified methods:

public FaultException CreateFault (Channels.MessageFault fault messageFault, System.Type[] details faultDetailTypes)

Type Changed: System.ServiceModel.InstanceContext

Modified base type: System.Object System.ServiceModel.Channels.CommunicationObject

Modified constructors:

public InstanceContext (object dummy implementation)

Added interfaces:

	ICommunicationObject
	System.ServiceModel.IExtensibleObject<InstanceContext>

Added properties:

	protected override System.TimeSpan DefaultCloseTimeout { get; }
	protected override System.TimeSpan DefaultOpenTimeout { get; }
	public System.Threading.SynchronizationContext SynchronizationContext { get; set; }

Added methods:

	public object GetServiceInstance (Channels.Message message);
	protected override void OnAbort ();
	protected override System.IAsyncResult OnBeginClose (System.TimeSpan timeout, System.AsyncCallback callback, object state);
	protected override System.IAsyncResult OnBeginOpen (System.TimeSpan timeout, System.AsyncCallback callback, object state);
	protected override void OnClose (System.TimeSpan timeout);
	protected override void OnClosed ();
	protected override void OnEndClose (System.IAsyncResult result);
	protected override void OnEndOpen (System.IAsyncResult result);
	protected override void OnFaulted ();
	protected override void OnOpen (System.TimeSpan timeout);
	protected override void OnOpened ();
	protected override void OnOpening ();

Type Changed: System.ServiceModel.InvalidMessageContractException

Modified constructors:

public InvalidMessageContractException (string msg message)
public InvalidMessageContractException (string msg message, System.Exception inner innerException)

Type Changed: System.ServiceModel.MessageHeaderException

Modified constructors:

public MessageHeaderException (string msg message)
public MessageHeaderException (string msg message, System.Exception inner innerException)

Type Changed: System.ServiceModel.MessageHeader`1

Modified constructors:

public MessageHeader`1 (T content, bool must_understand mustUnderstand, string actor, bool relay)

Type Changed: System.ServiceModel.MessageSecurityOverTcp

Added constructor:

	public MessageSecurityOverTcp ();

Type Changed: System.ServiceModel.ProtocolException

Modified constructors:

public ProtocolException (string msg message)
public ProtocolException (string msg message, System.Exception inner innerException)

Type Changed: System.ServiceModel.QuotaExceededException

Modified constructors:

public QuotaExceededException (string msg message)
public QuotaExceededException (string msg message, System.Exception inner innerException)

Type Changed: System.ServiceModel.ServerTooBusyException

Modified constructors:

public ServerTooBusyException (string msg message)
public ServerTooBusyException (string msg message, System.Exception inner innerException)

Type Changed: System.ServiceModel.ServiceActivationException

Modified constructors:

public ServiceActivationException (string msg message)
public ServiceActivationException (string msg message, System.Exception inner innerException)

Type Changed: System.ServiceModel.SpnEndpointIdentity

Modified constructors:

public SpnEndpointIdentity (string spn spnName)

Type Changed: System.ServiceModel.TcpTransportSecurity

Added property:

	public System.Security.Authentication.SslProtocols SslProtocols { get; set; }

Type Changed: System.ServiceModel.UpnEndpointIdentity

Modified constructors:

public UpnEndpointIdentity (string upn upnName)

Namespace System.ServiceModel.Channels

Type Changed: System.ServiceModel.Channels.AddressHeader

Modified methods:

public AddressHeader CreateAddressHeader (object value, System.Runtime.Serialization.XmlObjectSerializer formatter serializer)
public AddressHeader CreateAddressHeader (string name, string ns, object value, System.Runtime.Serialization.XmlObjectSerializer formatter serializer)
public T GetValue<T> (System.Runtime.Serialization.XmlObjectSerializer formatter serializer)

Type Changed: System.ServiceModel.Channels.AddressHeaderCollection

Modified constructors:

public AddressHeaderCollection (System.Collections.Generic.IEnumerable<AddressHeader> headers addressHeaders)

Type Changed: System.ServiceModel.Channels.BindingContext

Modified constructors:

public BindingContext (CustomBinding binding, BindingParameterCollection parms parameters)

Type Changed: System.ServiceModel.Channels.BindingElement

Modified constructors:

protected BindingElement (BindingElement other elementToBeCloned)

Type Changed: System.ServiceModel.Channels.BindingElementCollection

Modified constructors:

public BindingElementCollection (System.Collections.Generic.IEnumerable<BindingElement> bindings elements)
public BindingElementCollection (BindingElement[] bindings elements)

Type Changed: System.ServiceModel.Channels.ChannelBase

Modified constructors:

protected ChannelBase (ChannelManagerBase manager channelManager)

Type Changed: System.ServiceModel.Channels.ChannelFactoryBase`1

Modified methods:

public virtual final TChannel CreateChannel (System.ServiceModel.EndpointAddress remoteAddress address)
public virtual final TChannel CreateChannel (System.ServiceModel.EndpointAddress remoteAddress address, System.Uri via)
protected abstract TChannel OnCreateChannel (System.ServiceModel.EndpointAddress remoteAddress address, System.Uri via)

Type Changed: System.ServiceModel.Channels.CustomBinding

Modified constructors:

public CustomBinding (System.Collections.Generic.IEnumerable<BindingElement> bindingElements bindingElementsInTopDownChannelStackOrder)
public CustomBinding (BindingElement[] binding bindingElementsInTopDownChannelStackOrder)
public CustomBinding (string name, string ns, BindingElement[] binding bindingElementsInTopDownChannelStackOrder)

Type Changed: System.ServiceModel.Channels.FaultConverter

Modified methods:

protected abstract bool OnTryCreateException (Message message, MessageFault fault, out System.Exception error exception)
protected abstract bool OnTryCreateFaultMessage (System.Exception error exception, out Message message)
public bool TryCreateException (Message message, MessageFault fault, out System.Exception error exception)
public bool TryCreateFaultMessage (System.Exception error exception, out Message message)

Type Changed: System.ServiceModel.Channels.HttpTransportBindingElement

Modified constructors:

protected HttpTransportBindingElement (HttpTransportBindingElement other elementToBeCloned)

Type Changed: System.ServiceModel.Channels.HttpsTransportBindingElement

Modified constructors:

protected HttpsTransportBindingElement (HttpsTransportBindingElement other elementToBeCloned)

Type Changed: System.ServiceModel.Channels.Message

Modified methods:

public Message CreateMessage (MessageVersion version, string action, object body, System.Runtime.Serialization.XmlObjectSerializer xmlFormatter serializer)
public T GetBody<T> (System.Runtime.Serialization.XmlObjectSerializer xmlFormatter serializer)

Type Changed: System.ServiceModel.Channels.MessageEncodingBindingElement

Modified constructors:

public MessageEncodingBindingElement (MessageEncodingBindingElement source elementToBeCloned)

Modified methods:

public override T GetProperty<T> (BindingContext ctx context)

Type Changed: System.ServiceModel.Channels.MessageFault

Modified methods:

public T GetDetail<T> (System.Runtime.Serialization.XmlObjectSerializer formatter serializer)

Type Changed: System.ServiceModel.Channels.MessageHeader

Modified methods:

public MessageHeader CreateHeader (string name, string ns, object value, bool must_understand mustUnderstand)
public MessageHeader CreateHeader (string name, string ns, object value, System.Runtime.Serialization.XmlObjectSerializer formatter serializer)
public MessageHeader CreateHeader (string name, string ns, object value, bool must_understand mustUnderstand, string actor)
public MessageHeader CreateHeader (string name, string ns, object value, System.Runtime.Serialization.XmlObjectSerializer formatter serializer, bool must_understand mustUnderstand)
public MessageHeader CreateHeader (string name, string ns, object value, bool must_understand mustUnderstand, string actor, bool relay)
public MessageHeader CreateHeader (string name, string ns, object value, System.Runtime.Serialization.XmlObjectSerializer formatter serializer, bool must_understand mustUnderstand, string actor)
public MessageHeader CreateHeader (string name, string ns, object value, System.Runtime.Serialization.XmlObjectSerializer formatter serializer, bool must_understand mustUnderstand, string actor, bool relay)
public virtual bool IsMessageVersionSupported (MessageVersion version messageVersion)
protected abstract void OnWriteHeaderContents (System.Xml.XmlDictionaryWriter writer, MessageVersion version messageVersion)
protected virtual void OnWriteStartHeader (System.Xml.XmlDictionaryWriter writer, MessageVersion version messageVersion)
public void WriteHeader (System.Xml.XmlDictionaryWriter writer, MessageVersion version messageVersion)
public void WriteHeader (System.Xml.XmlWriter writer, MessageVersion version messageVersion)
protected void WriteHeaderAttributes (System.Xml.XmlDictionaryWriter writer, MessageVersion version messageVersion)
public void WriteHeaderContents (System.Xml.XmlDictionaryWriter writer, MessageVersion version messageVersion)
public void WriteStartHeader (System.Xml.XmlDictionaryWriter writer, MessageVersion version messageVersion)

Type Changed: System.ServiceModel.Channels.MessageHeaders

Modified methods:

public void CopyHeaderFrom (Message m message, int index headerIndex)
public void CopyHeaderFrom (MessageHeaders headers collection, int index headerIndex)
public void CopyHeadersFrom (Message m message)
public void CopyHeadersFrom (MessageHeaders headers collection)
public void CopyTo (MessageHeaderInfo[] dst array, int index)
public System.Xml.XmlDictionaryReader GetReaderAtHeader (int index headerIndex)
public void Insert (int index headerIndex, MessageHeader header)
public void RemoveAt (int index headerIndex)
public void WriteHeader (int index headerIndex, System.Xml.XmlDictionaryWriter writer)
public void WriteHeader (int index headerIndex, System.Xml.XmlWriter writer)
public void WriteHeaderContents (int index headerIndex, System.Xml.XmlDictionaryWriter writer)
public void WriteHeaderContents (int index headerIndex, System.Xml.XmlWriter writer)
public void WriteStartHeader (int index headerIndex, System.Xml.XmlDictionaryWriter writer)
public void WriteStartHeader (int index headerIndex, System.Xml.XmlWriter writer)

Type Changed: System.ServiceModel.Channels.MessageVersion

Modified methods:

public MessageVersion CreateVersion (System.ServiceModel.EnvelopeVersion envelope_version envelopeVersion)
public MessageVersion CreateVersion (System.ServiceModel.EnvelopeVersion envelope_version envelopeVersion, AddressingVersion addressing_version addressingVersion)
public override bool Equals (object value obj)

Type Changed: System.ServiceModel.Channels.SecurityBindingElement

Added properties:

	public System.ServiceModel.Security.Tokens.SupportingTokenParameters EndpointSupportingTokenParameters { get; }
	public System.ServiceModel.MessageSecurityVersion MessageSecurityVersion { get; set; }
	public SecurityHeaderLayout SecurityHeaderLayout { get; set; }

Added methods:

	public static SecurityBindingElement CreateSecureConversationBindingElement (SecurityBindingElement bootstrapSecurity);
	public static SecurityBindingElement CreateSecureConversationBindingElement (SecurityBindingElement bootstrapSecurity, bool requireCancellation);
	public static SecurityBindingElement CreateSecureConversationBindingElement (SecurityBindingElement bootstrapSecurity, bool requireCancellation, System.ServiceModel.Security.ChannelProtectionRequirements bootstrapProtectionRequirements);

Type Changed: System.ServiceModel.Channels.SslStreamSecurityBindingElement

Added property:

	public System.Security.Authentication.SslProtocols SslProtocols { get; set; }

Type Changed: System.ServiceModel.Channels.TcpTransportBindingElement

Modified constructors:

protected TcpTransportBindingElement (TcpTransportBindingElement other elementToBeCloned)

Type Changed: System.ServiceModel.Channels.TransportBindingElement

Modified constructors:

protected TransportBindingElement (TransportBindingElement other elementToBeCloned)

Namespace System.ServiceModel.Description

Type Changed: System.ServiceModel.Description.ClientCredentials

Modified constructors:

protected ClientCredentials (ClientCredentials source other)

Added properties:

	public System.ServiceModel.Security.X509CertificateInitiatorClientCredential ClientCertificate { get; }
	public System.ServiceModel.Security.HttpDigestClientCredential HttpDigest { get; }
	public System.ServiceModel.Security.X509CertificateRecipientClientCredential ServiceCertificate { get; }
	public System.ServiceModel.Security.WindowsClientCredential Windows { get; }

Modified methods:

public virtual void ApplyClientBehavior (ServiceEndpoint endpoint serviceEndpoint, System.ServiceModel.Dispatcher.ClientRuntime behavior)

Type Changed: System.ServiceModel.Description.IContractBehavior

Modified methods:

public abstract void AddBindingParameters (ContractDescription description contractDescription, ServiceEndpoint endpoint, System.ServiceModel.Channels.BindingParameterCollection parameters bindingParameters)
public abstract void ApplyClientBehavior (ContractDescription description contractDescription, ServiceEndpoint endpoint, System.ServiceModel.Dispatcher.ClientRuntime proxy clientRuntime)
public abstract void ApplyDispatchBehavior (ContractDescription description contractDescription, ServiceEndpoint endpoint, System.ServiceModel.Dispatcher.DispatchRuntime dispatch dispatchRuntime)
public abstract void Validate (ContractDescription description contractDescription, ServiceEndpoint endpoint)

Type Changed: System.ServiceModel.Description.IEndpointBehavior

Modified methods:

public abstract void AddBindingParameters (ServiceEndpoint endpoint, System.ServiceModel.Channels.BindingParameterCollection parameters bindingParameters)
public abstract void ApplyClientBehavior (ServiceEndpoint serviceEndpoint endpoint, System.ServiceModel.Dispatcher.ClientRuntime behavior clientRuntime)
public abstract void ApplyDispatchBehavior (ServiceEndpoint serviceEndpoint endpoint, System.ServiceModel.Dispatcher.EndpointDispatcher dispatcher endpointDispatcher)
public abstract void Validate (ServiceEndpoint serviceEndpoint endpoint)

Type Changed: System.ServiceModel.Description.IOperationBehavior

Modified methods:

public abstract void AddBindingParameters (OperationDescription description operationDescription, System.ServiceModel.Channels.BindingParameterCollection parameters bindingParameters)
public abstract void ApplyClientBehavior (OperationDescription description operationDescription, System.ServiceModel.Dispatcher.ClientOperation proxy clientOperation)
public abstract void ApplyDispatchBehavior (OperationDescription description operationDescription, System.ServiceModel.Dispatcher.DispatchOperation dispatch dispatchOperation)
public abstract void Validate (OperationDescription description operationDescription)

Namespace System.ServiceModel.Dispatcher

Type Changed: System.ServiceModel.Dispatcher.IClientMessageFormatter

Modified methods:

public abstract object DeserializeReply (System.ServiceModel.Channels.Message message, object[] paremeters parameters)
public abstract System.ServiceModel.Channels.Message SerializeRequest (System.ServiceModel.Channels.MessageVersion version messageVersion, object[] inputs parameters)

Type Changed: System.ServiceModel.Dispatcher.IClientMessageInspector

Modified methods:

public abstract void AfterReceiveReply (ref System.ServiceModel.Channels.Message message reply, object correlationState)
public abstract object BeforeSendRequest (ref System.ServiceModel.Channels.Message message request, System.ServiceModel.IClientChannel channel)

Namespace System.ServiceModel.Security

New Type System.ServiceModel.Security.ChannelProtectionRequirements

public class ChannelProtectionRequirements {
	// constructors
	public ChannelProtectionRequirements ();
	public ChannelProtectionRequirements (ChannelProtectionRequirements other);
	// properties
	public ScopedMessagePartSpecification IncomingEncryptionParts { get; }
	public ScopedMessagePartSpecification IncomingSignatureParts { get; }
	public bool IsReadOnly { get; }
	public ScopedMessagePartSpecification OutgoingEncryptionParts { get; }
	public ScopedMessagePartSpecification OutgoingSignatureParts { get; }
	// methods
	public void Add (ChannelProtectionRequirements protectionRequirements);
	public void Add (ChannelProtectionRequirements protectionRequirements, bool channelScopeOnly);
	public ChannelProtectionRequirements CreateInverse ();
	public void MakeReadOnly ();
}

New Type System.ServiceModel.Security.MessagePartSpecification

public class MessagePartSpecification {
	// constructors
	public MessagePartSpecification ();
	public MessagePartSpecification (bool isBodyIncluded);
	public MessagePartSpecification (System.Xml.XmlQualifiedName[] headerTypes);
	public MessagePartSpecification (bool isBodyIncluded, System.Xml.XmlQualifiedName[] headerTypes);
	// properties
	public System.Collections.Generic.ICollection<System.Xml.XmlQualifiedName> HeaderTypes { get; }
	public bool IsBodyIncluded { get; set; }
	public bool IsReadOnly { get; }
	public static MessagePartSpecification NoParts { get; }
	// methods
	public void Clear ();
	public void MakeReadOnly ();
	public void Union (MessagePartSpecification other);
}

New Type System.ServiceModel.Security.ScopedMessagePartSpecification

public class ScopedMessagePartSpecification {
	// constructors
	public ScopedMessagePartSpecification ();
	public ScopedMessagePartSpecification (ScopedMessagePartSpecification other);
	// properties
	public System.Collections.Generic.ICollection<string> Actions { get; }
	public MessagePartSpecification ChannelParts { get; }
	public bool IsReadOnly { get; }
	// methods
	public void AddParts (MessagePartSpecification parts);
	public void AddParts (MessagePartSpecification parts, string action);
	public void MakeReadOnly ();
	public bool TryGetParts (string action, out MessagePartSpecification parts);
	public bool TryGetParts (string action, bool excludeChannelScope, out MessagePartSpecification parts);
}

New Type System.ServiceModel.Security.X509CertificateInitiatorClientCredential

public sealed class X509CertificateInitiatorClientCredential {
	// properties
	public System.Security.Cryptography.X509Certificates.X509Certificate2 Certificate { get; set; }
	// methods
	public void SetCertificate (string subjectName, System.Security.Cryptography.X509Certificates.StoreLocation storeLocation, System.Security.Cryptography.X509Certificates.StoreName storeName);
	public void SetCertificate (System.Security.Cryptography.X509Certificates.StoreLocation storeLocation, System.Security.Cryptography.X509Certificates.StoreName storeName, System.Security.Cryptography.X509Certificates.X509FindType findType, object findValue);
}

New Type System.ServiceModel.Security.X509CertificateRecipientClientCredential

public sealed class X509CertificateRecipientClientCredential {
	// properties
	public X509ServiceCertificateAuthentication Authentication { get; }
	public System.Security.Cryptography.X509Certificates.X509Certificate2 DefaultCertificate { get; set; }
	public System.Collections.Generic.Dictionary<System.Uri,System.Security.Cryptography.X509Certificates.X509Certificate2> ScopedCertificates { get; }
	public X509ServiceCertificateAuthentication SslCertificateAuthentication { get; set; }
	// methods
	public void SetDefaultCertificate (string subjectName, System.Security.Cryptography.X509Certificates.StoreLocation storeLocation, System.Security.Cryptography.X509Certificates.StoreName storeName);
	public void SetDefaultCertificate (System.Security.Cryptography.X509Certificates.StoreLocation storeLocation, System.Security.Cryptography.X509Certificates.StoreName storeName, System.Security.Cryptography.X509Certificates.X509FindType findType, object findValue);
	public void SetScopedCertificate (string subjectName, System.Security.Cryptography.X509Certificates.StoreLocation storeLocation, System.Security.Cryptography.X509Certificates.StoreName storeName, System.Uri targetService);
	public void SetScopedCertificate (System.Security.Cryptography.X509Certificates.StoreLocation storeLocation, System.Security.Cryptography.X509Certificates.StoreName storeName, System.Security.Cryptography.X509Certificates.X509FindType findType, object findValue, System.Uri targetService);
}

New Type System.ServiceModel.Security.X509ServiceCertificateAuthentication

public class X509ServiceCertificateAuthentication {
	// constructors
	public X509ServiceCertificateAuthentication ();
	// properties
	public X509CertificateValidationMode CertificateValidationMode { get; set; }
	public System.IdentityModel.Selectors.X509CertificateValidator CustomCertificateValidator { get; set; }
	public System.Security.Cryptography.X509Certificates.X509RevocationMode RevocationMode { get; set; }
	public System.Security.Cryptography.X509Certificates.StoreLocation TrustedStoreLocation { get; set; }
}

Namespace System.ServiceModel.Security.Tokens

Type Changed: System.ServiceModel.Security.Tokens.SecureConversationSecurityTokenParameters

Modified constructors:

public SecureConversationSecurityTokenParameters (System.ServiceModel.Channels.SecurityBindingElement element bootstrapSecurityBindingElement)
public SecureConversationSecurityTokenParameters (System.ServiceModel.Channels.SecurityBindingElement element bootstrapSecurityBindingElement, bool requireCancellation)


System.Transactions.dll

Hide non-breaking changes

Namespace System.Transactions

Type Changed: System.Transactions.TransactionScope

Added constructors:

	public TransactionScope (TransactionScopeAsyncFlowOption asyncFlow);
	public TransactionScope (TransactionScopeOption option, TransactionScopeAsyncFlowOption asyncFlow);
	public TransactionScope (TransactionScopeOption option, System.TimeSpan timeout, TransactionScopeAsyncFlowOption asyncFlow);

New Type System.Transactions.TransactionScopeAsyncFlowOption

[Serializable]
public enum TransactionScopeAsyncFlowOption {
	Enabled = 1,
	Suppress = 0,
}


MonoTouch.Dialog-1.dll

Hide non-breaking changes

Namespace MonoTouch.Dialog

Type Changed: MonoTouch.Dialog.BaseBooleanImageElement

Type Changed: MonoTouch.Dialog.BaseBooleanImageElement.TextWithImageCellView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	UIKit.IUIFocusItem

Type Changed: MonoTouch.Dialog.GlassButton

Added interfaces:

	CoreAnimation.ICALayerDelegate
	UIKit.IUIFocusItem

Type Changed: MonoTouch.Dialog.MessageSummaryView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	UIKit.IUIFocusItem

Type Changed: MonoTouch.Dialog.RefreshTableHeaderView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	UIKit.IUIFocusItem


MonoTouch.NUnitLite.dll

Hide non-breaking changes

Namespace MonoTouch.NUnit.UI

Type Changed: MonoTouch.NUnit.UI.TouchOptions

Added property:

	public string Transport { get; set; }

Namespace NUnit.Framework

Type Changed: NUnit.Framework.Assert

Added methods:

	public static void IsInstanceOfType (System.Type expected, object actual);
	public static void IsInstanceOfType (object anObject, string message, object[] args);
	public static void IsInstanceOfType (System.Type expected, object actual, string message);
	public static void IsInstanceOfType (System.Type expected, object actual, string message, object[] args);

Namespace NUnit.Framework.Internal

Type Changed: NUnit.Framework.Internal.NUnitLiteTestAssemblyRunner

Removed constructor:

	public NUnitLiteTestAssemblyRunner (NUnit.Framework.Api.ITestAssemblyBuilder builder);

Added constructor:

	public NUnitLiteTestAssemblyRunner (NUnit.Framework.Api.ITestAssemblyBuilder builder, FinallyDelegate finallyDelegate);

Type Changed: NUnit.Framework.Internal.Test

Removed method:

	public virtual WorkItems.WorkItem CreateWorkItem (NUnit.Framework.Api.ITestFilter childFilter);

Added method:

	public virtual WorkItems.WorkItem CreateWorkItem (NUnit.Framework.Api.ITestFilter childFilter, FinallyDelegate finD);

Type Changed: NUnit.Framework.Internal.TestMethod

Removed method:

	public override WorkItems.WorkItem CreateWorkItem (NUnit.Framework.Api.ITestFilter childFilter);

Added method:

	public override WorkItems.WorkItem CreateWorkItem (NUnit.Framework.Api.ITestFilter childFilter, FinallyDelegate fd);

Type Changed: NUnit.Framework.Internal.TestResult

Added field:

	public bool ThreadCrashFail;

Type Changed: NUnit.Framework.Internal.TestSuite

Removed method:

	public override WorkItems.WorkItem CreateWorkItem (NUnit.Framework.Api.ITestFilter childFilter);

Added method:

	public override WorkItems.WorkItem CreateWorkItem (NUnit.Framework.Api.ITestFilter childFilter, FinallyDelegate finD);

New Type NUnit.Framework.Internal.FinallyDelegate

public class FinallyDelegate {
	// constructors
	public FinallyDelegate ();
	// methods
	public void Complete ();
	public void HandleUnhandledExc (System.Exception ex);
	public void Set (TestExecutionContext context, long startTicks, TestResult result);
}

Namespace NUnit.Framework.Internal.WorkItems

Type Changed: NUnit.Framework.Internal.WorkItems.CompositeWorkItem

Removed constructor:

	public CompositeWorkItem (NUnit.Framework.Internal.TestSuite suite, NUnit.Framework.Api.ITestFilter childFilter);

Added constructor:

	public CompositeWorkItem (NUnit.Framework.Internal.TestSuite suite, NUnit.Framework.Api.ITestFilter childFilter, NUnit.Framework.Internal.FinallyDelegate fd);

Type Changed: NUnit.Framework.Internal.WorkItems.SimpleWorkItem

Removed constructors:

	public SimpleWorkItem (NUnit.Framework.Internal.Commands.TestCommand command);
	public SimpleWorkItem (NUnit.Framework.Internal.TestMethod test);

Added constructors:

	public SimpleWorkItem (NUnit.Framework.Internal.Commands.TestCommand command, NUnit.Framework.Internal.FinallyDelegate fd);
	public SimpleWorkItem (NUnit.Framework.Internal.TestMethod test, NUnit.Framework.Internal.FinallyDelegate fd);

Type Changed: NUnit.Framework.Internal.WorkItems.WorkItem

Removed constructor:

	public WorkItem (NUnit.Framework.Internal.Test test);

Added constructor:

	public WorkItem (NUnit.Framework.Internal.Test test, NUnit.Framework.Internal.FinallyDelegate finallyDelegate);

Added field:

	protected NUnit.Framework.Internal.FinallyDelegate finD;

Namespace NUnitLite.Runner

Type Changed: NUnitLite.Runner.TextUI

Added method:

	public void TopLevelHandler (object sender, System.UnhandledExceptionEventArgs e);


OpenTK-1.0.dll

Hide non-breaking changes

Namespace OpenTK.Platform.iPhoneOS

Type Changed: OpenTK.Platform.iPhoneOS.iPhoneOSGameView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	UIKit.IUIFocusItem


System.Net.Http.dll

Hide non-breaking changes

Namespace System.Net.Http

Type Changed: System.Net.Http.HttpClientHandler

Added properties:

	public bool CheckCertificateRevocationList { get; set; }
	public System.Security.Cryptography.X509Certificates.X509CertificateCollection ClientCertificates { get; }
	public System.Net.ICredentials DefaultProxyCredentials { get; set; }
	public int MaxConnectionsPerServer { get; set; }
	public int MaxResponseHeadersLength { get; set; }
	public System.Collections.Generic.IDictionary<System.String,System.Object> Properties { get; }
	public System.Func<HttpRequestMessage,System.Security.Cryptography.X509Certificates.X509Certificate2,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors,System.Boolean> ServerCertificateCustomValidationCallback { get; set; }
	public System.Security.Authentication.SslProtocols SslProtocols { get; set; }


Xamarin.iOS.dll

Hide non-breaking changes

Namespace AVFoundation

Type Changed: AVFoundation.AVAssetDownloadDelegate

Added methods:

	public virtual void DidFinishCollectingMetrics (Foundation.NSUrlSession session, Foundation.NSUrlSessionTask task, Foundation.NSUrlSessionTaskMetrics metrics);
	public virtual void DidFinishDownloadingToUrl (Foundation.NSUrlSession session, AVAssetDownloadTask assetDownloadTask, Foundation.NSUrl location);

Type Changed: AVFoundation.AVAssetDownloadDelegate_Extensions

Added method:

	public static void DidFinishDownloadingToUrl (IAVAssetDownloadDelegate This, Foundation.NSUrlSession session, AVAssetDownloadTask assetDownloadTask, Foundation.NSUrl location);

Type Changed: AVFoundation.AVAssetDownloadUrlSession

Added methods:

	public AVAssetDownloadTask GetAssetDownloadTask (AVUrlAsset urlAsset, string title, Foundation.NSData artworkData, AVAssetDownloadOptions options);
	public virtual AVAssetDownloadTask GetAssetDownloadTask (AVUrlAsset urlAsset, string title, Foundation.NSData artworkData, Foundation.NSDictionary options);

Type Changed: AVFoundation.AVAudioChannelLayout

Obsoleted constructors:

[Obsolete ("Valid instance of this type cannot be directly created")] public AVAudioChannelLayout ();

Type Changed: AVFoundation.AVAudioConnectionPoint

Obsoleted constructors:

[Obsolete ("Valid instance of this type cannot be directly created")] public AVAudioConnectionPoint ();

Type Changed: AVFoundation.AVAudioConverterPrimeInfo

Added constructor:

	public AVAudioConverterPrimeInfo (uint leadingFrames, uint trailingFrames);

Added methods:

	public bool Equals (AVAudioConverterPrimeInfo other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public override string ToString ();
	public static bool op_Equality (AVAudioConverterPrimeInfo left, AVAudioConverterPrimeInfo right);
	public static bool op_Inequality (AVAudioConverterPrimeInfo left, AVAudioConverterPrimeInfo right);

Type Changed: AVFoundation.AVAudioFormat

Added property:

	public virtual Foundation.NSData MagicCookie { get; set; }

Type Changed: AVFoundation.AVAudioPlayer

Added property:

	public virtual AVAudioFormat Format { get; }

Added method:

	public virtual void SetVolume (float volume, double duration);

Type Changed: AVFoundation.AVAudioRecorder

Added property:

	public virtual AVAudioFormat Format { get; }

Added method:

	public static AVAudioRecorder Create (Foundation.NSUrl url, AVAudioFormat format, out Foundation.NSError error);

Type Changed: AVFoundation.AVAudioSession

Added methods:

	public virtual bool SetAggregatedIOPreference (AVAudioSessionIOType ioType, out Foundation.NSError error);
	public virtual bool SetCategory (string category, string mode, AVAudioSessionCategoryOptions options, out Foundation.NSError outError);

Type Changed: AVFoundation.AVAudioSessionCategoryOptions

Added values:

	AllowAirPlay = 64,
	AllowBluetoothA2DP = 32,

Type Changed: AVFoundation.AVAudioSessionPortDescription

Added property:

	public virtual bool HasHardwareVoiceCallProcessing { get; }

Type Changed: AVFoundation.AVAudioSettings

Added property:

	public static Foundation.NSString AVSampleRateConverterAlgorithm_MinimumPhase { get; }

Type Changed: AVFoundation.AVBeatRange

Added methods:

	public bool Equals (AVBeatRange other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public override string ToString ();
	public static bool op_Equality (AVBeatRange left, AVBeatRange right);
	public static bool op_Inequality (AVBeatRange left, AVBeatRange right);

Type Changed: AVFoundation.AVCaptureConnection

Added methods:

	public static AVCaptureConnection FromInputPort (AVCaptureInputPort port, AVCaptureVideoPreviewLayer layer);
	public static AVCaptureConnection FromInputPorts (AVCaptureInputPort[] ports, AVCaptureOutput output);

Type Changed: AVFoundation.AVCaptureDevice

Added properties:

	public virtual AVCaptureColorSpace ActiveColorSpace { get; set; }
	public AVCaptureDeviceType DeviceType { get; }
	public virtual bool LockingFocusWithCustomLensPositionSupported { get; }
	public virtual bool LockingWhiteBalanceWithCustomDeviceGainsSupported { get; }

Added method:

	public static AVCaptureDevice GetDefaultDevice (AVCaptureDeviceType deviceType, string mediaType, AVCaptureDevicePosition position);

Type Changed: AVFoundation.AVCaptureDeviceFormat

Added property:

	public virtual Foundation.NSNumber[] SupportedColorSpaces { get; }

Type Changed: AVFoundation.AVCaptureMovieFileOutput

Added property:

	public virtual Foundation.NSString[] AvailableVideoCodecTypes { get; }

Added methods:

	public virtual Foundation.NSDictionary GetOutputSettings (AVCaptureConnection connection);
	public virtual void SetOutputSettings (Foundation.NSDictionary outputSettings, AVCaptureConnection connection);

Type Changed: AVFoundation.AVCaptureSession

Added property:

	public virtual bool AutomaticallyConfiguresCaptureDeviceForWideColor { get; set; }

Type Changed: AVFoundation.AVCaptureWhiteBalanceChromaticityValues

Added methods:

	public bool Equals (AVCaptureWhiteBalanceChromaticityValues other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public static bool op_Equality (AVCaptureWhiteBalanceChromaticityValues left, AVCaptureWhiteBalanceChromaticityValues right);
	public static bool op_Inequality (AVCaptureWhiteBalanceChromaticityValues left, AVCaptureWhiteBalanceChromaticityValues right);

Type Changed: AVFoundation.AVCaptureWhiteBalanceGains

Added methods:

	public bool Equals (AVCaptureWhiteBalanceGains other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public static bool op_Equality (AVCaptureWhiteBalanceGains left, AVCaptureWhiteBalanceGains right);
	public static bool op_Inequality (AVCaptureWhiteBalanceGains left, AVCaptureWhiteBalanceGains right);

Type Changed: AVFoundation.AVCaptureWhiteBalanceTemperatureAndTintValues

Added methods:

	public bool Equals (AVCaptureWhiteBalanceTemperatureAndTintValues other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public static bool op_Equality (AVCaptureWhiteBalanceTemperatureAndTintValues left, AVCaptureWhiteBalanceTemperatureAndTintValues right);
	public static bool op_Inequality (AVCaptureWhiteBalanceTemperatureAndTintValues left, AVCaptureWhiteBalanceTemperatureAndTintValues right);

Type Changed: AVFoundation.AVError

Modified fields:

ApplicationIsNotAuthorizedToUseDevice = 11852 -11852
MaximumStillImageCaptureRequestsExceeded = 11830 -11830

Added values:

	OperationNotAllowed = -11862,
	UnsupportedOutputSettings = -11861,

Type Changed: AVFoundation.AVMediaCharacteristic

Added property:

	public static Foundation.NSString UsesWideGamutColorSpace { get; }

Type Changed: AVFoundation.AVMetadata

Added properties:

	public static Foundation.NSString ID3MetadataKeyInvolvedPeopleList_v24 { get; }
	public static Foundation.NSString IsoUserDataKeyDate { get; }

Type Changed: AVFoundation.AVMetadataIdentifiers

Type Changed: AVFoundation.AVMetadataIdentifiers.Iso

Added property:

	public static Foundation.NSString UserDataDate { get; }

Type Changed: AVFoundation.AVMutableVideoComposition

Added properties:

	public virtual string ColorPrimaries { get; set; }
	public virtual string ColorTransferFunction { get; set; }
	public virtual string ColorYCbCrMatrix { get; set; }

Type Changed: AVFoundation.AVPlayer

Added properties:

	public virtual bool AutomaticallyWaitsToMinimizeStalling { get; set; }
	public virtual string ReasonForWaitingToPlay { get; }
	public virtual AVPlayerTimeControlStatus TimeControlStatus { get; }
	public static Foundation.NSString WaitingToMinimizeStallsReason { get; }
	public static Foundation.NSString WaitingWhileEvaluatingBufferingRateReason { get; }
	public static Foundation.NSString WaitingWithNoItemToPlayReason { get; }

Added method:

	public virtual void PlayImmediatelyAtRate (float rate);

Type Changed: AVFoundation.AVPlayerItem

Added property:

	public virtual double PreferredForwardBufferDuration { get; set; }

Type Changed: AVFoundation.AVPlayerItemAccessLogEvent

Added properties:

	public virtual double AverageAudioBitrate { get; }
	public virtual double AverageVideoBitrate { get; }

Type Changed: AVFoundation.AVPlayerItemVideoOutput

Added constructor:

	public AVPlayerItemVideoOutput (AVPlayerItemVideoOutputSettings settings);

Type Changed: AVFoundation.AVSampleBufferDisplayLayer

Added properties:

	public static Foundation.NSString FailedToDecodeNotification { get; }
	public static Foundation.NSString FailedToDecodeNotificationErrorKey { get; }

Type Changed: AVFoundation.AVSpeechSynthesisVoice

Added property:

	public static Foundation.NSString IpaNotationAttribute { get; }

Type Changed: AVFoundation.AVSpeechSynthesizer

Added property:

	public virtual AVAudioSessionChannelDescription[] OutputChannels { get; set; }

Type Changed: AVFoundation.AVSpeechUtterance

Added constructor:

	public AVSpeechUtterance (Foundation.NSAttributedString speechString);

Added property:

	public virtual Foundation.NSAttributedString AttributedSpeechString { get; }

Added method:

	public static AVSpeechUtterance FromString (Foundation.NSAttributedString speechString);

Type Changed: AVFoundation.AVUrlAsset

Added properties:

	public static Foundation.NSString AllowsCellularAccessKey { get; }
	public virtual AVAssetCache Cache { get; }

Type Changed: AVFoundation.AVVideoCompositing

Added property:

	public virtual bool SupportsWideColorSourceFrames { get; }

Type Changed: AVFoundation.AVVideoCompositing_Extensions

Added method:

	public static bool GetSupportsWideColorSourceFrames (IAVVideoCompositing This);

Type Changed: AVFoundation.AVVideoComposition

Added properties:

	public virtual string ColorPrimaries { get; }
	public virtual string ColorTransferFunction { get; }
	public virtual string ColorYCbCrMatrix { get; }

New Type AVFoundation.AVAssetCache

public class AVAssetCache : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected AVAssetCache (Foundation.NSObjectFlag t);
	protected AVAssetCache (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual bool IsPlayableOffline { get; }
	// methods
	public virtual AVMediaSelectionOption[] GetMediaSelectionOptions (AVMediaSelectionGroup mediaSelectionGroup);
}

New Type AVFoundation.AVAudioSessionIOType

[Serializable]
public enum AVAudioSessionIOType {
	Aggregated = 1,
	NotSpecified = 0,
}

New Type AVFoundation.AVCaptureColorSpace

[Serializable]
public enum AVCaptureColorSpace {
	P3D65 = 1,
	Srgb = 0,
}

New Type AVFoundation.AVCaptureDeviceDiscoverySession

public class AVCaptureDeviceDiscoverySession : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected AVCaptureDeviceDiscoverySession (Foundation.NSObjectFlag t);
	protected AVCaptureDeviceDiscoverySession (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual AVCaptureDevice[] Devices { get; }
	// methods
	public static AVCaptureDeviceDiscoverySession Create (AVCaptureDeviceType[] deviceTypes, string mediaType, AVCaptureDevicePosition position);
}

New Type AVFoundation.AVCaptureDeviceType

[Serializable]
public enum AVCaptureDeviceType {
	BuiltInDuoCamera = 3,
	BuiltInMicrophone = 0,
	BuiltInTelephotoCamera = 2,
	BuiltInWideAngleCamera = 1,
}

New Type AVFoundation.AVCaptureDeviceTypeExtensions

public static class AVCaptureDeviceTypeExtensions {
	// methods
	public static Foundation.NSString GetConstant (AVCaptureDeviceType self);
	public static AVCaptureDeviceType GetValue (Foundation.NSString constant);
}

New Type AVFoundation.AVCapturePhotoBracketSettings

public class AVCapturePhotoBracketSettings : AVFoundation.AVCapturePhotoSettings, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected AVCapturePhotoBracketSettings (Foundation.NSObjectFlag t);
	protected AVCapturePhotoBracketSettings (IntPtr handle);
	// properties
	public virtual AVCaptureBracketedStillImageSettings[] BracketedSettings { get; }
	public override IntPtr ClassHandle { get; }
	public virtual bool IsLensStabilizationEnabled { get; set; }
	// methods
	public static AVCapturePhotoBracketSettings FromRawPixelFormatType (uint rawPixelFormatType, Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> format, AVCaptureBracketedStillImageSettings[] bracketedSettings);
}

New Type AVFoundation.AVCapturePhotoCaptureDelegate

public class AVCapturePhotoCaptureDelegate : Foundation.NSObject, IAVCapturePhotoCaptureDelegate, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public AVCapturePhotoCaptureDelegate ();
	protected AVCapturePhotoCaptureDelegate (Foundation.NSObjectFlag t);
	protected AVCapturePhotoCaptureDelegate (IntPtr handle);
	// methods
	public virtual void DidCapturePhoto (AVCapturePhotoOutput captureOutput, AVCaptureResolvedPhotoSettings resolvedSettings);
	public virtual void DidFinishCapture (AVCapturePhotoOutput captureOutput, AVCaptureResolvedPhotoSettings resolvedSettings, Foundation.NSError error);
	public virtual void DidFinishProcessingLivePhotoMovie (AVCapturePhotoOutput captureOutput, Foundation.NSUrl outputFileUrl, CoreMedia.CMTime duration, CoreMedia.CMTime photoDisplayTime, AVCaptureResolvedPhotoSettings resolvedSettings, Foundation.NSError error);
	public virtual void DidFinishProcessingPhoto (AVCapturePhotoOutput captureOutput, CoreMedia.CMSampleBuffer photoSampleBuffer, CoreMedia.CMSampleBuffer previewPhotoSampleBuffer, AVCaptureResolvedPhotoSettings resolvedSettings, AVCaptureBracketedStillImageSettings bracketSettings, Foundation.NSError error);
	public virtual void DidFinishProcessingRawPhoto (AVCapturePhotoOutput captureOutput, CoreMedia.CMSampleBuffer rawSampleBuffer, CoreMedia.CMSampleBuffer previewPhotoSampleBuffer, AVCaptureResolvedPhotoSettings resolvedSettings, AVCaptureBracketedStillImageSettings bracketSettings, Foundation.NSError error);
	public virtual void DidFinishRecordingLivePhotoMovie (AVCapturePhotoOutput captureOutput, Foundation.NSUrl outputFileUrl, AVCaptureResolvedPhotoSettings resolvedSettings);
	public virtual void WillBeginCapture (AVCapturePhotoOutput captureOutput, AVCaptureResolvedPhotoSettings resolvedSettings);
	public virtual void WillCapturePhoto (AVCapturePhotoOutput captureOutput, AVCaptureResolvedPhotoSettings resolvedSettings);
}

New Type AVFoundation.AVCapturePhotoCaptureDelegate_Extensions

public static class AVCapturePhotoCaptureDelegate_Extensions {
	// methods
	public static void DidCapturePhoto (IAVCapturePhotoCaptureDelegate This, AVCapturePhotoOutput captureOutput, AVCaptureResolvedPhotoSettings resolvedSettings);
	public static void DidFinishCapture (IAVCapturePhotoCaptureDelegate This, AVCapturePhotoOutput captureOutput, AVCaptureResolvedPhotoSettings resolvedSettings, Foundation.NSError error);
	public static void DidFinishProcessingLivePhotoMovie (IAVCapturePhotoCaptureDelegate This, AVCapturePhotoOutput captureOutput, Foundation.NSUrl outputFileUrl, CoreMedia.CMTime duration, CoreMedia.CMTime photoDisplayTime, AVCaptureResolvedPhotoSettings resolvedSettings, Foundation.NSError error);
	public static void DidFinishProcessingPhoto (IAVCapturePhotoCaptureDelegate This, AVCapturePhotoOutput captureOutput, CoreMedia.CMSampleBuffer photoSampleBuffer, CoreMedia.CMSampleBuffer previewPhotoSampleBuffer, AVCaptureResolvedPhotoSettings resolvedSettings, AVCaptureBracketedStillImageSettings bracketSettings, Foundation.NSError error);
	public static void DidFinishProcessingRawPhoto (IAVCapturePhotoCaptureDelegate This, AVCapturePhotoOutput captureOutput, CoreMedia.CMSampleBuffer rawSampleBuffer, CoreMedia.CMSampleBuffer previewPhotoSampleBuffer, AVCaptureResolvedPhotoSettings resolvedSettings, AVCaptureBracketedStillImageSettings bracketSettings, Foundation.NSError error);
	public static void DidFinishRecordingLivePhotoMovie (IAVCapturePhotoCaptureDelegate This, AVCapturePhotoOutput captureOutput, Foundation.NSUrl outputFileUrl, AVCaptureResolvedPhotoSettings resolvedSettings);
	public static void WillBeginCapture (IAVCapturePhotoCaptureDelegate This, AVCapturePhotoOutput captureOutput, AVCaptureResolvedPhotoSettings resolvedSettings);
	public static void WillCapturePhoto (IAVCapturePhotoCaptureDelegate This, AVCapturePhotoOutput captureOutput, AVCaptureResolvedPhotoSettings resolvedSettings);
}

New Type AVFoundation.AVCapturePhotoOutput

public class AVCapturePhotoOutput : AVFoundation.AVCaptureOutput, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public AVCapturePhotoOutput ();
	protected AVCapturePhotoOutput (Foundation.NSObjectFlag t);
	protected AVCapturePhotoOutput (IntPtr handle);
	// properties
	public virtual string[] AvailablePhotoCodecTypes { get; }
	public virtual Foundation.NSNumber[] AvailablePhotoPixelFormatTypes { get; }
	public virtual Foundation.NSNumber[] AvailableRawPhotoPixelFormatTypes { get; }
	public override IntPtr ClassHandle { get; }
	public virtual bool IsFlashScene { get; }
	public virtual bool IsHighResolutionCaptureEnabled { get; set; }
	public virtual bool IsLensStabilizationDuringBracketedCaptureSupported { get; }
	public virtual bool IsLivePhotoAutoTrimmingEnabled { get; set; }
	public virtual bool IsLivePhotoCaptureEnabled { get; set; }
	public virtual bool IsLivePhotoCaptureSupported { get; }
	public virtual bool IsLivePhotoCaptureSuspended { get; set; }
	public virtual bool IsStillImageStabilizationScene { get; }
	public virtual bool IsStillImageStabilizationSupported { get; }
	public virtual uint MaxBracketedCapturePhotoCount { get; }
	public virtual AVCapturePhotoSettings PhotoSettingsForSceneMonitoring { get; set; }
	public virtual AVCapturePhotoSettings[] PreparedPhotoSettings { get; }
	public virtual Foundation.NSNumber[] SupportedFlashModes { get; }
	// methods
	public virtual void CapturePhoto (AVCapturePhotoSettings settings, IAVCapturePhotoCaptureDelegate cb);
	public static Foundation.NSData GetDngPhotoDataRepresentation (CoreMedia.CMSampleBuffer rawSampleBuffer, CoreMedia.CMSampleBuffer previewPhotoSampleBuffer);
	public static Foundation.NSData GetJpegPhotoDataRepresentation (CoreMedia.CMSampleBuffer JPEGSampleBuffer, CoreMedia.CMSampleBuffer previewPhotoSampleBuffer);
	public virtual void SetPreparedPhotoSettings (AVCapturePhotoSettings[] preparedPhotoSettingsArray, System.Action<System.Boolean,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<System.Tuple<System.Boolean,Foundation.NSError>> SetPreparedPhotoSettingsAsync (AVCapturePhotoSettings[] preparedPhotoSettingsArray);
}

New Type AVFoundation.AVCapturePhotoSettings

public class AVCapturePhotoSettings : Foundation.NSObject, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected AVCapturePhotoSettings (Foundation.NSObjectFlag t);
	protected AVCapturePhotoSettings (IntPtr handle);
	// properties
	public virtual Foundation.NSNumber[] AvailablePreviewPhotoPixelFormatTypes { get; }
	public override IntPtr ClassHandle { get; }
	public virtual AVCaptureFlashMode FlashMode { get; set; }
	public virtual Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> Format { get; }
	public virtual bool IsAutoStillImageStabilizationEnabled { get; set; }
	public virtual bool IsHighResolutionPhotoEnabled { get; set; }
	public virtual Foundation.NSUrl LivePhotoMovieFileUrl { get; set; }
	public virtual AVMetadataItem[] LivePhotoMovieMetadata { get; set; }
	public virtual Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> PreviewPhotoFormat { get; set; }
	public virtual uint RawPhotoPixelFormatType { get; }
	public virtual long UniqueID { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static AVCapturePhotoSettings Create ();
	public static AVCapturePhotoSettings FromFormat (Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> format);
	public static AVCapturePhotoSettings FromPhotoSettings (AVCapturePhotoSettings photoSettings);
	public static AVCapturePhotoSettings FromRawPixelFormatType (uint rawPixelFormatType);
	public static AVCapturePhotoSettings FromRawPixelFormatType (uint rawPixelFormatType, Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> processedFormat);
}

New Type AVFoundation.AVCaptureResolvedPhotoSettings

public class AVCaptureResolvedPhotoSettings : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected AVCaptureResolvedPhotoSettings (Foundation.NSObjectFlag t);
	protected AVCaptureResolvedPhotoSettings (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual bool IsFlashEnabled { get; }
	public virtual bool IsStillImageStabilizationEnabled { get; }
	public virtual CoreMedia.CMVideoDimensions LivePhotoMovieDimensions { get; }
	public virtual CoreMedia.CMVideoDimensions PhotoDimensions { get; }
	public virtual CoreMedia.CMVideoDimensions PreviewDimensions { get; }
	public virtual CoreMedia.CMVideoDimensions RawPhotoDimensions { get; }
	public virtual long UniqueID { get; }
}

New Type AVFoundation.AVCleanApertureProperties

public class AVCleanApertureProperties : Foundation.DictionaryContainer {
	// constructors
	public AVCleanApertureProperties ();
	public AVCleanApertureProperties (Foundation.NSDictionary dictionary);
	// properties
	public Foundation.NSNumber Height { get; set; }
	public Foundation.NSNumber HorizontalOffset { get; set; }
	public Foundation.NSNumber VerticalOffset { get; set; }
	public Foundation.NSNumber Width { get; set; }
}

New Type AVFoundation.AVColorProperties

public class AVColorProperties : Foundation.DictionaryContainer {
	// constructors
	public AVColorProperties ();
	public AVColorProperties (Foundation.NSDictionary dictionary);
	// properties
	public Foundation.NSString AVVideoColorPrimaries { get; set; }
	public Foundation.NSString AVVideoTransferFunction { get; set; }
	public Foundation.NSString AVVideoYCbCrMatrix { get; }
}

New Type AVFoundation.AVCompressionProperties

public class AVCompressionProperties : Foundation.DictionaryContainer {
	// constructors
	public AVCompressionProperties ();
	public AVCompressionProperties (Foundation.NSDictionary dictionary);
	// properties
	public AVCleanApertureProperties CleanAperture { get; set; }
	public AVPixelAspectRatioProperties PixelAspectRatio { get; set; }
}

New Type AVFoundation.AVMusicTrackLoopCount

[Serializable]
public enum AVMusicTrackLoopCount {
	Forever = -1,
}

New Type AVFoundation.AVPixelAspectRatioProperties

public class AVPixelAspectRatioProperties : Foundation.DictionaryContainer {
	// constructors
	public AVPixelAspectRatioProperties ();
	public AVPixelAspectRatioProperties (Foundation.NSDictionary dictionary);
	// properties
	public Foundation.NSNumber PixelAspectRatioHorizontalSpacing { get; set; }
	public Foundation.NSNumber PixelAspectRatioVerticalSpacing { get; set; }
}

New Type AVFoundation.AVPlayerItemVideoOutputSettings

public class AVPlayerItemVideoOutputSettings : Foundation.DictionaryContainer {
	// constructors
	public AVPlayerItemVideoOutputSettings ();
	public AVPlayerItemVideoOutputSettings (Foundation.NSDictionary dictionary);
	// properties
	public bool? AllowWideColor { get; set; }
	public Foundation.NSString Codec { get; set; }
	public AVColorProperties ColorProperties { get; set; }
	public AVCompressionProperties CompressionProperties { get; set; }
	public Foundation.NSNumber Height { get; set; }
	public Foundation.NSString ScalingMode { get; set; }
	public Foundation.NSNumber Width { get; set; }
}

New Type AVFoundation.AVPlayerLooper

public class AVPlayerLooper : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected AVPlayerLooper (Foundation.NSObjectFlag t);
	protected AVPlayerLooper (IntPtr handle);
	public AVPlayerLooper (AVQueuePlayer player, AVPlayerItem itemToLoop, CoreMedia.CMTimeRange loopRange);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSError Error { get; }
	public virtual nint LoopCount { get; }
	public virtual bool LoopingEnabled { get; }
	public virtual AVPlayerItem[] LoopingPlayerItems { get; }
	public virtual AVPlayerLooperStatus Status { get; }
	// methods
	public virtual void DisableLooping ();
	public static AVPlayerLooper FromPlayer (AVQueuePlayer player, AVPlayerItem itemToLoop);
	public static AVPlayerLooper FromPlayer (AVQueuePlayer player, AVPlayerItem itemToLoop, CoreMedia.CMTimeRange loopRange);
}

New Type AVFoundation.AVPlayerLooperStatus

[Serializable]
public enum AVPlayerLooperStatus {
	Cancelled = 3,
	Failed = 2,
	Ready = 1,
	Unknown = 0,
}

New Type AVFoundation.AVPlayerTimeControlStatus

[Serializable]
public enum AVPlayerTimeControlStatus {
	Paused = 0,
	Playing = 2,
	WaitingToPlayAtSpecifiedRate = 1,
}

New Type AVFoundation.AVVideoColorPrimaries

public static class AVVideoColorPrimaries {
	// properties
	public static Foundation.NSString Itu_R_709_2 { get; }
	public static Foundation.NSString P3_D65 { get; }
	public static Foundation.NSString Smpte_C { get; }
}

New Type AVFoundation.AVVideoTransferFunction

public static class AVVideoTransferFunction {
	// properties
	public static Foundation.NSString AVVideoTransferFunction_Itu_R_709_2 { get; }
}

New Type AVFoundation.AVVideoYCbCrMatrix

public static class AVVideoYCbCrMatrix {
	// properties
	public static Foundation.NSString Itu_R_601_4 { get; }
	public static Foundation.NSString Itu_R_709_2 { get; }
}

New Type AVFoundation.IAVCapturePhotoCaptureDelegate

public interface IAVCapturePhotoCaptureDelegate : ObjCRuntime.INativeObject, System.IDisposable {
}

Namespace AVKit

Type Changed: AVKit.AVPlayerViewController

Added property:

	public virtual bool UpdatesNowPlayingInfoCenter { get; set; }

Namespace AudioToolbox

Type Changed: AudioToolbox.AudioQueueStatus

Added value:

	CannotStartYet = -66665,

Type Changed: AudioToolbox.AudioServicesError

Added value:

	SystemSoundExceededMaximumDurationError = -1502,

Type Changed: AudioToolbox.MusicSequence

Added methods:

	public MusicTrack GetTempoTrack ();
	public void SetUserCallback (MusicSequenceUserCallback callback);

New Type AudioToolbox.MusicSequenceUserCallback

public sealed delegate MusicSequenceUserCallback : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public MusicSequenceUserCallback (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (MusicTrack track, double inEventTime, MusicEventUserData inEventData, double inStartSliceBeat, double inEndSliceBeat, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (MusicTrack track, double inEventTime, MusicEventUserData inEventData, double inStartSliceBeat, double inEndSliceBeat);
}

Namespace AudioUnit

Type Changed: AudioUnit.AUAudioUnit

Added properties:

	public virtual Foundation.NSNumber[] ChannelMap { get; set; }
	public virtual bool SupportsMpe { get; }
	public virtual AUHostTransportStateBlock TransportStateBlock { get; set; }

Type Changed: AudioUnit.AUAudioUnit_AUAudioInputOutputUnit

Added methods:

	public static AUInputHandler GetInputHandler (AUAudioUnit This);
	public static AURenderPullInputBlock GetOutputProvider (AUAudioUnit This);
	public static void SetInputHandler (AUAudioUnit This, AUInputHandler handler);
	public static void SetOutputProvider (AUAudioUnit This, AURenderPullInputBlock provider);

Type Changed: AudioUnit.AUParameter

Obsoleted methods:

[Obsolete ("Use the AUParameterObserverToken overload")] public virtual void SetValue (float value, IntPtr originator);
[Obsolete ("Use the AUParameterObserverToken overload")] public virtual void SetValue (float value, IntPtr originator, ulong hostTime);

Added methods:

	public void SetValue (float value, AUParameterObserverToken originator);
	public void SetValue (float value, AUParameterObserverToken originator, ulong hostTime);
	public void SetValue (float value, AUParameterObserverToken originator, ulong hostTime, AUParameterAutomationEventType eventType);

Type Changed: AudioUnit.AUParameterNode

Modified properties:

public virtual AUImplementorStringFromValueCallback ImplementorStringFromValueCallback { get; set; }

Added properties:

	public virtual AUImplementorDisplayNameWithLengthCallback ImplementorDisplayNameWithLengthCallback { get; set; }
	public virtual AUImplementorValueFromStringCallback ImplementorValueFromStringCallback { get; set; }

Obsoleted methods:

[Obsolete ("Use the AUParameterObserverToken overload")] public virtual void RemoveParameterObserver (IntPtr token);
[Obsolete ("Use the CreateTokenByAddingParameterObserver instead")] public virtual IntPtr TokenByAddingParameterObserver (AUParameterObserver observer);

Added methods:

	public AUParameterObserverToken CreateTokenByAddingParameterObserver (AUParameterObserver observer);
	public AUParameterObserverToken CreateTokenByAddingParameterRecordingObserver (AUParameterRecordingObserver observer);
	public AUParameterObserverToken GetToken (AUParameterAutomationObserver observer);
	public void RemoveParameterObserver (AUParameterObserverToken token);

	[Obsolete ("Use the CreateTokenByAddingParameterRecordingObserver instead")]
	public virtual IntPtr TokenByAddingParameterRecordingObserver (AUParameterRecordingObserver observer);

Type Changed: AudioUnit.AudioComponentStatus

Added value:

	RenderTimeout = -66745,

Type Changed: AudioUnit.AudioUnitPropertyIDType

Added values:

	InputAnchorTimeStamp = 3016,
	SupportsMpe = 58,

New Type AudioUnit.AUHostTransportStateBlock

public sealed delegate AUHostTransportStateBlock : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public AUHostTransportStateBlock (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (ref AUHostTransportStateFlags transportStateFlags, ref double currentSamplePosition, ref double cycleStartBeatPosition, ref double cycleEndBeatPosition, System.AsyncCallback callback, object object);
	public virtual bool EndInvoke (ref AUHostTransportStateFlags transportStateFlags, ref double currentSamplePosition, ref double cycleStartBeatPosition, ref double cycleEndBeatPosition, System.IAsyncResult result);
	public virtual bool Invoke (ref AUHostTransportStateFlags transportStateFlags, ref double currentSamplePosition, ref double cycleStartBeatPosition, ref double cycleEndBeatPosition);
}

New Type AudioUnit.AUImplementorDisplayNameWithLengthCallback

public sealed delegate AUImplementorDisplayNameWithLengthCallback : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public AUImplementorDisplayNameWithLengthCallback (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (AUParameterNode node, nint desiredLength, System.AsyncCallback callback, object object);
	public virtual string EndInvoke (System.IAsyncResult result);
	public virtual string Invoke (AUParameterNode node, nint desiredLength);
}

New Type AudioUnit.AUImplementorValueFromStringCallback

public sealed delegate AUImplementorValueFromStringCallback : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public AUImplementorValueFromStringCallback (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (AUParameter param, string str, System.AsyncCallback callback, object object);
	public virtual float EndInvoke (System.IAsyncResult result);
	public virtual float Invoke (AUParameter param, string str);
}

New Type AudioUnit.AUInputHandler

public sealed delegate AUInputHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public AUInputHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (ref AudioUnitRenderActionFlags actionFlags, ref AudioToolbox.AudioTimeStamp timestamp, uint frameCount, nint inputBusNumber, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (ref AudioUnitRenderActionFlags actionFlags, ref AudioToolbox.AudioTimeStamp timestamp, System.IAsyncResult result);
	public virtual void Invoke (ref AudioUnitRenderActionFlags actionFlags, ref AudioToolbox.AudioTimeStamp timestamp, uint frameCount, nint inputBusNumber);
}

New Type AudioUnit.AUParameterAutomationEvent

public struct AUParameterAutomationEvent {
	// fields
	public ulong Address;
	public AUParameterAutomationEventType EventType;
	public ulong HostTime;
	public float Value;
}

New Type AudioUnit.AUParameterAutomationEventType

[Serializable]
public enum AUParameterAutomationEventType {
	Release = 2,
	Touch = 1,
	Value = 0,
}

New Type AudioUnit.AUParameterAutomationObserver

public sealed delegate AUParameterAutomationObserver : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public AUParameterAutomationObserver (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (ulong address, float value, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (ulong address, float value);
}

New Type AudioUnit.AUParameterObserverToken

public struct AUParameterObserverToken {
	// constructors
	public AUParameterObserverToken (IntPtr observerToken);
	// fields
	public IntPtr ObserverToken;
}

New Type AudioUnit.AUParameterRecordingObserver

public sealed delegate AUParameterRecordingObserver : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public AUParameterRecordingObserver (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (nint numberOfEvents, ref AURecordedParameterEvent events, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (ref AURecordedParameterEvent events, System.IAsyncResult result);
	public virtual void Invoke (nint numberOfEvents, ref AURecordedParameterEvent events);
}

New Type AudioUnit.AURecordedParameterEvent

public struct AURecordedParameterEvent {
	// fields
	public ulong Address;
	public ulong HostTime;
	public float Value;
}

New Type AudioUnit.IAUAudioUnitFactory

public interface IAUAudioUnitFactory : Foundation.INSExtensionRequestHandling, ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public virtual AUAudioUnit CreateAudioUnit (AudioComponentDescription desc, out Foundation.NSError error);
}

Namespace CloudKit

Type Changed: CloudKit.CKContainer

Added properties:

	public static Foundation.NSString CurrentUserDefaultName { get; }
	public virtual CKDatabase SharedCloudDatabase { get; }

Added methods:

	public virtual void AcceptShareMetadata (CKShareMetadata metadata, System.Action<CKShare,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKShare> AcceptShareMetadataAsync (CKShareMetadata metadata);
	public virtual void DiscoverAllIdentities (System.Action<CKUserIdentity[],Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKUserIdentity[]> DiscoverAllIdentitiesAsync ();
	public virtual void DiscoverUserIdentity (CKRecordID userRecordID, System.Action<CKUserIdentity,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKUserIdentity> DiscoverUserIdentityAsync (CKRecordID userRecordID);
	public virtual void DiscoverUserIdentityWithEmailAddress (string email, System.Action<CKUserIdentity,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKUserIdentity> DiscoverUserIdentityWithEmailAddressAsync (string email);
	public virtual void DiscoverUserIdentityWithPhoneNumber (string phoneNumber, System.Action<CKUserIdentity,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKUserIdentity> DiscoverUserIdentityWithPhoneNumberAsync (string phoneNumber);
	public virtual void FetchShareMetadata (Foundation.NSUrl url, System.Action<CKShareMetadata,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKShareMetadata> FetchShareMetadataAsync (Foundation.NSUrl url);
	public virtual void FetchShareParticipant (CKRecordID userRecordID, System.Action<CKShareParticipant,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKShareParticipant> FetchShareParticipantAsync (CKRecordID userRecordID);
	public virtual void FetchShareParticipantWithEmailAddress (string emailAddress, System.Action<CKShareParticipant,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKShareParticipant> FetchShareParticipantWithEmailAddressAsync (string emailAddress);
	public virtual void FetchShareParticipantWithPhoneNumber (string phoneNumber, System.Action<CKShareParticipant,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<CKShareParticipant> FetchShareParticipantWithPhoneNumberAsync (string phoneNumber);
	public virtual CKDatabase GetDatabase (CKDatabaseScope databaseScope);

Type Changed: CloudKit.CKDatabase

Added property:

	public virtual CKDatabaseScope DatabaseScope { get; }

Type Changed: CloudKit.CKErrorCode

Added values:

	AlreadyShared = 30,
	ManagedAccountRestricted = 32,
	ParticipantMayNeedVerification = 33,
	ReferenceViolation = 31,
	TooManyParticipants = 29,

Type Changed: CloudKit.CKNotificationID

Obsoleted constructors:

[Obsolete ("This type is not meant to be created by user code")] public CKNotificationID ();

Type Changed: CloudKit.CKNotificationType

Added value:

	Database = 4,

Type Changed: CloudKit.CKOperation

Added properties:

	public virtual double TimeoutIntervalForRequest { get; set; }
	public virtual double TimeoutIntervalForResource { get; set; }

Type Changed: CloudKit.CKQueryNotification

Added property:

	public virtual CKDatabaseScope DatabaseScope { get; }

Type Changed: CloudKit.CKRecord

Added properties:

	public virtual CKReference Parent { get; set; }
	public static Foundation.NSString ParentKey { get; }
	public virtual CKReference Share { get; }
	public static Foundation.NSString ShareKey { get; }
	public static Foundation.NSString TypeShare { get; }

Added methods:

	public virtual void SetParent (CKRecord parentRecord);
	public virtual void SetParent (CKRecordID parentRecordID);

Type Changed: CloudKit.CKRecordZoneCapabilities

Added value:

	Sharing = 4,

Type Changed: CloudKit.CKRecordZoneNotification

Added property:

	public virtual CKDatabaseScope DatabaseScope { get; }

Type Changed: CloudKit.CKSubscriptionType

Added value:

	Database = 3,

New Type CloudKit.CKAcceptPerShareCompletionHandler

public sealed delegate CKAcceptPerShareCompletionHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public CKAcceptPerShareCompletionHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (CKShareMetadata shareMetadata, CKShare acceptedShare, Foundation.NSError error, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (CKShareMetadata shareMetadata, CKShare acceptedShare, Foundation.NSError error);
}

New Type CloudKit.CKAcceptSharesOperation

public class CKAcceptSharesOperation : CloudKit.CKOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKAcceptSharesOperation ();
	public CKAcceptSharesOperation (CKShareMetadata[] shareMetadatas);
	protected CKAcceptSharesOperation (Foundation.NSObjectFlag t);
	protected CKAcceptSharesOperation (IntPtr handle);
	// properties
	public virtual System.Action<Foundation.NSError> AcceptSharesCompleted { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual CKAcceptPerShareCompletionHandler PerShareCompleted { get; set; }
	public virtual CKShareMetadata[] ShareMetadatas { get; set; }
}

New Type CloudKit.CKDatabaseNotification

public class CKDatabaseNotification : CloudKit.CKNotification, Foundation.INSCoding, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKDatabaseNotification (Foundation.NSCoder coder);
	protected CKDatabaseNotification (Foundation.NSObjectFlag t);
	protected CKDatabaseNotification (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual CKDatabaseScope DatabaseScope { get; }
}

New Type CloudKit.CKDatabaseScope

[Serializable]
public enum CKDatabaseScope {
	Private = 2,
	Public = 1,
	Shared = 3,
}

New Type CloudKit.CKDatabaseSubscription

public class CKDatabaseSubscription : CloudKit.CKSubscription, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKDatabaseSubscription (Foundation.NSCoder coder);
	protected CKDatabaseSubscription (Foundation.NSObjectFlag t);
	protected CKDatabaseSubscription (IntPtr handle);
	public CKDatabaseSubscription (string subscriptionID);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string RecordType { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type CloudKit.CKDiscoverAllUserIdentitiesOperation

public class CKDiscoverAllUserIdentitiesOperation : CloudKit.CKOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKDiscoverAllUserIdentitiesOperation ();
	protected CKDiscoverAllUserIdentitiesOperation (Foundation.NSObjectFlag t);
	protected CKDiscoverAllUserIdentitiesOperation (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual System.Action<Foundation.NSError> Completed { get; set; }
	public virtual System.Action<CKUserIdentity> Discovered { get; set; }
}

New Type CloudKit.CKDiscoverUserIdentitiesOperation

public class CKDiscoverUserIdentitiesOperation : CloudKit.CKOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKDiscoverUserIdentitiesOperation ();
	public CKDiscoverUserIdentitiesOperation (CKUserIdentityLookupInfo[] userIdentityLookupInfos);
	protected CKDiscoverUserIdentitiesOperation (Foundation.NSObjectFlag t);
	protected CKDiscoverUserIdentitiesOperation (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual System.Action<Foundation.NSError> Completed { get; set; }
	public virtual System.Action<CKUserIdentity,CloudKit.CKUserIdentityLookupInfo> Discovered { get; set; }
	public virtual CKUserIdentityLookupInfo[] UserIdentityLookupInfos { get; set; }
}

New Type CloudKit.CKFetchDatabaseChangesCompletionHandler

public sealed delegate CKFetchDatabaseChangesCompletionHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public CKFetchDatabaseChangesCompletionHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (CKServerChangeToken serverChangeToken, bool moreComing, Foundation.NSError operationError, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (CKServerChangeToken serverChangeToken, bool moreComing, Foundation.NSError operationError);
}

New Type CloudKit.CKFetchDatabaseChangesOperation

public class CKFetchDatabaseChangesOperation : CloudKit.CKDatabaseOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKFetchDatabaseChangesOperation ();
	public CKFetchDatabaseChangesOperation (CKServerChangeToken previousServerChangeToken);
	protected CKFetchDatabaseChangesOperation (Foundation.NSObjectFlag t);
	protected CKFetchDatabaseChangesOperation (IntPtr handle);
	// properties
	public virtual System.Action<CKServerChangeToken> ChangeTokenUpdated { get; set; }
	public virtual System.Action<CKRecordZoneID> Changed { get; set; }
	public virtual CKFetchDatabaseChangesCompletionHandler ChangesCompleted { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual bool FetchAllChanges { get; set; }
	public virtual CKServerChangeToken PreviousServerChangeToken { get; set; }
	public virtual uint ResultsLimit { get; set; }
	public virtual System.Action<CKRecordZoneID> WasDeleted { get; set; }
}

New Type CloudKit.CKFetchPerShareMetadataHandler

public sealed delegate CKFetchPerShareMetadataHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public CKFetchPerShareMetadataHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (Foundation.NSUrl shareURL, CKShareMetadata shareMetadata, Foundation.NSError error, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (Foundation.NSUrl shareURL, CKShareMetadata shareMetadata, Foundation.NSError error);
}

New Type CloudKit.CKFetchRecordZoneChangesFetchCompletedHandler

public sealed delegate CKFetchRecordZoneChangesFetchCompletedHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public CKFetchRecordZoneChangesFetchCompletedHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (CKRecordZoneID recordZoneID, CKServerChangeToken serverChangeToken, Foundation.NSData clientChangeTokenData, bool moreComing, Foundation.NSError recordZoneError, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (CKRecordZoneID recordZoneID, CKServerChangeToken serverChangeToken, Foundation.NSData clientChangeTokenData, bool moreComing, Foundation.NSError recordZoneError);
}

New Type CloudKit.CKFetchRecordZoneChangesOperation

public class CKFetchRecordZoneChangesOperation : CloudKit.CKDatabaseOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKFetchRecordZoneChangesOperation ();
	protected CKFetchRecordZoneChangesOperation (Foundation.NSObjectFlag t);
	protected CKFetchRecordZoneChangesOperation (IntPtr handle);
	public CKFetchRecordZoneChangesOperation (CKRecordZoneID[] recordZoneIDs, Foundation.NSDictionary<CKRecordZoneID,CloudKit.CKFetchRecordZoneChangesOptions> optionsByRecordZoneID);
	// properties
	public virtual System.Action<Foundation.NSError> ChangesCompleted { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual bool FetchAllChanges { get; set; }
	public virtual CKFetchRecordZoneChangesFetchCompletedHandler FetchCompleted { get; set; }
	public virtual Foundation.NSDictionary<CKRecordZoneID,CloudKit.CKFetchRecordZoneChangesOptions> OptionsByRecordZoneID { get; set; }
	public virtual System.Action<CKRecord> RecordChanged { get; set; }
	public virtual CKFetchRecordZoneChangesWithIDWasDeletedHandler RecordWithIDWasDeleted { get; set; }
	public virtual CKFetchRecordZoneChangesTokensUpdatedHandler RecordZoneChangeTokensUpdated { get; set; }
	public virtual CKRecordZoneID[] RecordZoneIDs { get; set; }
}

New Type CloudKit.CKFetchRecordZoneChangesOptions

public class CKFetchRecordZoneChangesOptions : Foundation.NSObject, Foundation.INSCoding, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKFetchRecordZoneChangesOptions ();
	public CKFetchRecordZoneChangesOptions (Foundation.NSCoder coder);
	protected CKFetchRecordZoneChangesOptions (Foundation.NSObjectFlag t);
	protected CKFetchRecordZoneChangesOptions (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string[] DesiredKeys { get; set; }
	public virtual CKServerChangeToken PreviousServerChangeToken { get; set; }
	public virtual uint ResultsLimit { get; set; }
	// methods
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type CloudKit.CKFetchRecordZoneChangesTokensUpdatedHandler

public sealed delegate CKFetchRecordZoneChangesTokensUpdatedHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public CKFetchRecordZoneChangesTokensUpdatedHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (CKRecordZoneID recordZoneID, CKServerChangeToken serverChangeToken, Foundation.NSData clientChangeTokenData, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (CKRecordZoneID recordZoneID, CKServerChangeToken serverChangeToken, Foundation.NSData clientChangeTokenData);
}

New Type CloudKit.CKFetchRecordZoneChangesWithIDWasDeletedHandler

public sealed delegate CKFetchRecordZoneChangesWithIDWasDeletedHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public CKFetchRecordZoneChangesWithIDWasDeletedHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (CKRecordID recordID, Foundation.NSString recordType, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (CKRecordID recordID, Foundation.NSString recordType);
}

New Type CloudKit.CKFetchShareMetadataOperation

public class CKFetchShareMetadataOperation : CloudKit.CKOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKFetchShareMetadataOperation ();
	protected CKFetchShareMetadataOperation (Foundation.NSObjectFlag t);
	public CKFetchShareMetadataOperation (Foundation.NSUrl[] shareUrls);
	protected CKFetchShareMetadataOperation (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual System.Action<Foundation.NSError> FetchShareMetadataCompleted { get; set; }
	public virtual CKFetchPerShareMetadataHandler PerShareMetadata { get; set; }
	public virtual string[] RootRecordDesiredKeys { get; set; }
	public virtual Foundation.NSUrl[] ShareUrls { get; set; }
	public virtual bool ShouldFetchRootRecord { get; set; }
}

New Type CloudKit.CKFetchShareParticipantsOperation

public class CKFetchShareParticipantsOperation : CloudKit.CKOperation, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKFetchShareParticipantsOperation ();
	public CKFetchShareParticipantsOperation (CKUserIdentityLookupInfo[] userIdentityLookupInfos);
	protected CKFetchShareParticipantsOperation (Foundation.NSObjectFlag t);
	protected CKFetchShareParticipantsOperation (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual System.Action<Foundation.NSError> Completed { get; set; }
	public virtual System.Action<CKShareParticipant> Fetched { get; set; }
	public virtual CKUserIdentityLookupInfo[] UserIdentityLookupInfos { get; set; }
}

New Type CloudKit.CKQuerySubscription

public class CKQuerySubscription : CloudKit.CKSubscription, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKQuerySubscription (Foundation.NSCoder coder);
	protected CKQuerySubscription (Foundation.NSObjectFlag t);
	protected CKQuerySubscription (IntPtr handle);
	public CKQuerySubscription (string recordType, Foundation.NSPredicate predicate, CKQuerySubscriptionOptions querySubscriptionOptions);
	public CKQuerySubscription (string recordType, Foundation.NSPredicate predicate, string subscriptionID, CKQuerySubscriptionOptions querySubscriptionOptions);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSPredicate Predicate { get; }
	public virtual string RecordType { get; }
	public virtual CKQuerySubscriptionOptions SubscriptionOptions { get; }
	public virtual CKRecordZoneID ZoneID { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type CloudKit.CKQuerySubscriptionOptions

[Serializable]
public enum CKQuerySubscriptionOptions {
	FiresOnce = 8,
	RecordCreation = 1,
	RecordDeletion = 4,
	RecordUpdate = 2,
}

New Type CloudKit.CKRecordZoneSubscription

public class CKRecordZoneSubscription : CloudKit.CKSubscription, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKRecordZoneSubscription (CKRecordZoneID zoneID);
	public CKRecordZoneSubscription (Foundation.NSCoder coder);
	protected CKRecordZoneSubscription (Foundation.NSObjectFlag t);
	protected CKRecordZoneSubscription (IntPtr handle);
	public CKRecordZoneSubscription (CKRecordZoneID zoneID, string subscriptionID);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string RecordType { get; set; }
	public virtual CKRecordZoneID ZoneID { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type CloudKit.CKShare

public class CKShare : CloudKit.CKRecord, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKShare (CKRecord rootRecord);
	public CKShare (Foundation.NSCoder coder);
	protected CKShare (Foundation.NSObjectFlag t);
	protected CKShare (IntPtr handle);
	public CKShare (CKRecord rootRecord, CKRecordID shareID);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual CKShareParticipant CurrentUser { get; }
	public virtual CKShareParticipant Owner { get; }
	public virtual CKShareParticipant[] Participants { get; }
	public virtual CKShareParticipantPermission PublicPermission { get; set; }
	public virtual Foundation.NSUrl Url { get; }
	// methods
	public virtual void Add (CKShareParticipant participant);
	public virtual void Remove (CKShareParticipant participant);
}

New Type CloudKit.CKShareKeys

public static class CKShareKeys {
	// properties
	public static Foundation.NSString ThumbnailImageData { get; }
	public static Foundation.NSString Title { get; }
	public static Foundation.NSString Type { get; }
}

New Type CloudKit.CKShareMetadata

public class CKShareMetadata : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKShareMetadata ();
	public CKShareMetadata (Foundation.NSCoder coder);
	protected CKShareMetadata (Foundation.NSObjectFlag t);
	protected CKShareMetadata (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string ContainerIdentifier { get; }
	public virtual CKUserIdentity OwnerIdentity { get; }
	public virtual CKShareParticipantPermission Permission { get; }
	public virtual CKRecord RootRecord { get; }
	public virtual CKRecordID RootRecordID { get; }
	public virtual CKShare Share { get; }
	public virtual CKShareParticipantAcceptanceStatus Status { get; }
	public virtual CKShareParticipantType Type { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type CloudKit.CKShareParticipant

public class CKShareParticipant : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKShareParticipant (Foundation.NSCoder coder);
	protected CKShareParticipant (Foundation.NSObjectFlag t);
	protected CKShareParticipant (IntPtr handle);
	// properties
	public virtual CKShareParticipantAcceptanceStatus AcceptanceStatus { get; }
	public override IntPtr ClassHandle { get; }
	public virtual CKShareParticipantPermission Permission { get; set; }
	public virtual CKShareParticipantType Type { get; set; }
	public virtual CKUserIdentity UserIdentity { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type CloudKit.CKShareParticipantAcceptanceStatus

[Serializable]
public enum CKShareParticipantAcceptanceStatus {
	Accepted = 2,
	Pending = 1,
	Removed = 3,
	Unknown = 0,
}

New Type CloudKit.CKShareParticipantPermission

[Serializable]
public enum CKShareParticipantPermission {
	None = 1,
	ReadOnly = 2,
	ReadWrite = 3,
	Unknown = 0,
}

New Type CloudKit.CKShareParticipantType

[Serializable]
public enum CKShareParticipantType {
	Owner = 1,
	PrivateUser = 3,
	PublicUser = 4,
	Unknown = 0,
}

New Type CloudKit.CKUserIdentity

public class CKUserIdentity : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKUserIdentity (Foundation.NSCoder coder);
	protected CKUserIdentity (Foundation.NSObjectFlag t);
	protected CKUserIdentity (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual bool HasICloudAccount { get; }
	public virtual CKUserIdentityLookupInfo LookupInfo { get; }
	public virtual Foundation.NSPersonNameComponents NameComponents { get; }
	public virtual CKRecordID UserRecordID { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type CloudKit.CKUserIdentityLookupInfo

public class CKUserIdentityLookupInfo : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CKUserIdentityLookupInfo (CKRecordID userRecordID);
	public CKUserIdentityLookupInfo (Foundation.NSCoder coder);
	protected CKUserIdentityLookupInfo (Foundation.NSObjectFlag t);
	protected CKUserIdentityLookupInfo (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string EmailAddress { get; }
	public virtual string PhoneNumber { get; }
	public virtual CKRecordID UserRecordID { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public static CKUserIdentityLookupInfo FromEmail (string email);
	public static CKUserIdentityLookupInfo FromPhoneNumber (string phoneNumber);
	public static CKUserIdentityLookupInfo[] GetLookupInfos (CKRecordID[] recordIDs);
	public static CKUserIdentityLookupInfo[] GetLookupInfosWithEmails (string[] emails);
	public static CKUserIdentityLookupInfo[] GetLookupInfosWithPhoneNumbers (string[] phoneNumbers);
}

Namespace Contacts

Type Changed: Contacts.CNContact

Added property:

	public virtual string PhoneticOrganizationName { get; }

Type Changed: Contacts.CNContactFetchRequest

Added constructor:

	public CNContactFetchRequest (Foundation.NSCoder coder);

Added interfaces:

	Foundation.INSCoding
	Foundation.INSSecureCoding

Added method:

	public virtual void EncodeTo (Foundation.NSCoder encoder);

Type Changed: Contacts.CNContactKey

Added property:

	public static Foundation.NSString PhoneticOrganizationName { get; }

Type Changed: Contacts.CNContactStore

Obsoleted methods:

[Obsolete ("Use the overload that takes CNContactStoreListContactsHandler instead")] public virtual bool EnumerateContacts (CNContactFetchRequest fetchRequest, out Foundation.NSError error, CNContactStoreEnumerateContactsHandler handler);

Added method:

	public bool EnumerateContacts (CNContactFetchRequest fetchRequest, out Foundation.NSError error, CNContactStoreListContactsHandler handler);

Type Changed: Contacts.CNMutableContact

Added property:

	public virtual string PhoneticOrganizationName { get; set; }

New Type Contacts.CNContactStoreListContactsHandler

public sealed delegate CNContactStoreListContactsHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public CNContactStoreListContactsHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (CNContact contact, ref bool stop, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (ref bool stop, System.IAsyncResult result);
	public virtual void Invoke (CNContact contact, ref bool stop);
}

Namespace CoreAnimation

Type Changed: CoreAnimation.CADisplayLink

Added properties:

	public virtual nint PreferredFramesPerSecond { get; set; }
	public virtual double TargetTimestamp { get; }

Type Changed: CoreAnimation.CAEmitterBehavior

Added property:

	public static Foundation.NSString SimpleAttractor { get; }

Type Changed: CoreAnimation.CALayer

Added property:

	public CAContentsFormat ContentsFormat { get; set; }

Type Changed: CoreAnimation.CALayerDelegate

Added method:

	public virtual void WillDrawLayer (CALayer layer);

Type Changed: CoreAnimation.CALayerDelegate_Extensions

Added method:

	public static void WillDrawLayer (ICALayerDelegate This, CALayer layer);

Type Changed: CoreAnimation.CATransform3D

Obsoleted methods:

[Obsolete ("Use Invert() as the argument to this method is unused.")] public CATransform3D Invert (CATransform3D t);

Added method:

	public CATransform3D Invert ();

New Type CoreAnimation.CAContentsFormat

[Serializable]
public enum CAContentsFormat {
	Gray8Uint = 0,
	Rgba16Float = 2,
	Rgba8Uint = 1,
}

New Type CoreAnimation.CAContentsFormatExtensions

public static class CAContentsFormatExtensions {
	// methods
	public static Foundation.NSString GetConstant (CAContentsFormat self);
	public static CAContentsFormat GetValue (Foundation.NSString constant);
}

Namespace CoreAudioKit

Type Changed: CoreAudioKit.CAInterAppAudioSwitcherView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	UIKit.IUIFocusItem

Type Changed: CoreAudioKit.CAInterAppAudioTransportView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	UIKit.IUIFocusItem

Namespace CoreBluetooth

Type Changed: CoreBluetooth.CBCentralManager

Modified base type: Foundation.NSObject CoreBluetooth.CBManager

Type Changed: CoreBluetooth.CBPeripheralManager

Modified base type: Foundation.NSObject CoreBluetooth.CBManager

Added constructor:

	public CBPeripheralManager ();

Type Changed: CoreBluetooth.CBUUID

Added property:

	public static Foundation.NSString CharacteristicValidRangeString { get; }

New Type CoreBluetooth.AdvertisementData

public class AdvertisementData : Foundation.DictionaryContainer {
	// constructors
	public AdvertisementData ();
	public AdvertisementData (Foundation.NSDictionary dictionary);
	// properties
	public bool? IsConnectable { get; set; }
	public string LocalName { get; set; }
	public Foundation.NSData ManufacturerData { get; set; }
	public CBUUID[] OverflowServiceUuids { get; set; }
	public Foundation.NSDictionary<CBUUID,Foundation.NSData> ServiceData { get; set; }
	public CBUUID[] ServiceUuids { get; set; }
	public CBUUID[] SolicitedServiceUuids { get; set; }
	public Foundation.NSNumber TxPowerLevel { get; set; }
}

New Type CoreBluetooth.CBManager

public class CBManager : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected CBManager (Foundation.NSObjectFlag t);
	protected CBManager (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual CBManagerState State { get; }
}

New Type CoreBluetooth.CBManagerState

[Serializable]
public enum CBManagerState {
	PoweredOff = 4,
	PoweredOn = 5,
	Resetting = 1,
	Unauthorized = 3,
	Unknown = 0,
	Unsupported = 2,
}

New Type CoreBluetooth.RestoredState

public class RestoredState : Foundation.DictionaryContainer {
	// constructors
	public RestoredState ();
	public RestoredState (Foundation.NSDictionary dictionary);
	// properties
	public CBPeripheral[] Peripherals { get; set; }
	public PeripheralScanningOptions ScanOptions { get; set; }
	public CBPeripheral[] ScanServices { get; set; }
}

Namespace CoreData

Type Changed: CoreData.NSEntityDescription

Added property:

	public virtual string RenamingIdentifier { get; set; }

Type Changed: CoreData.NSEntityMappingType

Modified fields:

Copy = 5 4
Transform = 6 5

Type Changed: CoreData.NSFetchRequest

Added method:

	public virtual INSFetchRequestResult[] Execute (out Foundation.NSError error);

Type Changed: CoreData.NSIncrementalStore

Modified methods:

public Foundation.NSObject IdentifierForNewStoreAtURL (Foundation.NSUrl storeURL storeUrl)

Type Changed: CoreData.NSManagedObject

Added constructor:

	public NSManagedObject (NSManagedObjectContext moc);

Added properties:

	public static bool ContextShouldIgnoreUnModeledPropertyChanges { get; }
	public virtual uint FaultingState { get; }

Added methods:

	public virtual void AwakeFromSnapshotEvents (NSSnapshotEventType flags);
	public static NSFetchRequest CreateFetchRequest ();
	public static NSEntityDescription GetEntityDescription ();

Type Changed: CoreData.NSManagedObjectContext

Added properties:

	public virtual bool AutomaticallyMergesChangesFromParent { get; set; }
	public virtual NSQueryGenerationToken QueryGenerationToken { get; }

Added method:

	public virtual bool SetQueryGenerationFromToken (NSQueryGenerationToken generation, out Foundation.NSError error);

Type Changed: CoreData.NSManagedObjectID

Added method:

	protected override void Dispose (bool disposing);

Type Changed: CoreData.NSMappingModel

Added method:

	public static NSMappingModel GetInferredMappingModel (NSManagedObjectModel source, NSManagedObjectModel destination, out Foundation.NSError error);

Type Changed: CoreData.NSMergePolicy

Added properties:

	public static NSMergePolicy ErrorPolicy { get; }
	public static NSMergePolicy MergeByPropertyObjectTrumpPolicy { get; }
	public static NSMergePolicy MergeByPropertyStoreTrumpPolicy { get; }
	public static NSMergePolicy OverwritePolicy { get; }
	public static NSMergePolicy RollbackPolicy { get; }

Type Changed: CoreData.NSMigrationManager

Modified methods:

public virtual bool MigrateStoreFromUrl (Foundation.NSUrl sourceURL sourceUrl, string sStoreType, Foundation.NSDictionary sOptions, NSMappingModel mappings, Foundation.NSUrl dURL dUrl, string dStoreType, Foundation.NSDictionary dOptions, out Foundation.NSError error)

Type Changed: CoreData.NSPersistentStore

Added methods:

	protected override void Dispose (bool disposing);
	public virtual bool LoadMetadata (out Foundation.NSError error);

Type Changed: CoreData.NSPersistentStoreCoordinator

Modified methods:

public virtual NSPersistentStore AddPersistentStoreWithType (Foundation.NSString storeType, string configuration, Foundation.NSUrl storeURL storeUrl, Foundation.NSDictionary options, out Foundation.NSError error)
public virtual NSPersistentStore MigratePersistentStore (NSPersistentStore store, Foundation.NSUrl URL url, Foundation.NSDictionary options, Foundation.NSString storeType, out Foundation.NSError error)
public virtual NSPersistentStore PersistentStoreForUrl (Foundation.NSUrl URL url)
public virtual bool ReplacePersistentStore (Foundation.NSUrl destinationURL destinationUrl, Foundation.NSDictionary destinationOptions, Foundation.NSUrl sourceURL sourceUrl, Foundation.NSDictionary sourceOptions, string storeType, out Foundation.NSError error)

Added methods:

	public virtual void AddPersistentStore (NSPersistentStoreDescription storeDescription, System.Action<NSPersistentStoreDescription,Foundation.NSError> block);
	public virtual System.Threading.Tasks.Task<NSPersistentStoreDescription> AddPersistentStoreAsync (NSPersistentStoreDescription storeDescription);
	public static Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> GetMetadata (string storeType, Foundation.NSUrl url, Foundation.NSDictionary options, out Foundation.NSError error);
	public static bool SetMetadata (Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> metadata, string storeType, Foundation.NSUrl url, Foundation.NSDictionary options, out Foundation.NSError error);

Type Changed: CoreData.NSPropertyDescription

Added property:

	public virtual string RenamingIdentifier { get; set; }

New Type CoreData.INSFetchRequestResult

public interface INSFetchRequestResult : ObjCRuntime.INativeObject, System.IDisposable {
}

New Type CoreData.MigrationErrorType

[Serializable]
public enum MigrationErrorType {
	EntityMigrationPolicy = 134170,
	ExternalRecordImport = 134200,
	InferredMappingModel = 134190,
	Migration = 134110,
	MigrationCancelled = 134120,
	MigrationManagerDestinationStore = 134160,
	MigrationManagerSourceStore = 134150,
	MigrationMissingMappingModel = 134140,
	MigrationMissingSourceModel = 134130,
}

New Type CoreData.NSExpressionDescription

public class NSExpressionDescription : CoreData.NSPropertyDescription, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public NSExpressionDescription ();
	public NSExpressionDescription (Foundation.NSCoder coder);
	protected NSExpressionDescription (Foundation.NSObjectFlag t);
	protected NSExpressionDescription (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSExpression Expression { get; set; }
	public virtual NSAttributeType ResultType { get; set; }
}

New Type CoreData.NSFetchRequestExpression

public class NSFetchRequestExpression : Foundation.NSExpression, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public NSFetchRequestExpression (Foundation.NSCoder coder);
	protected NSFetchRequestExpression (Foundation.NSObjectFlag t);
	protected NSFetchRequestExpression (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSExpression Context { get; }
	public virtual bool IsCountOnly { get; }
	public virtual Foundation.NSExpression Request { get; }
	// methods
	public static NSFetchRequestExpression FromFetch (Foundation.NSExpression fetch, Foundation.NSExpression context, bool countOnly);
}

New Type CoreData.NSPersistentContainer

public class NSPersistentContainer : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected NSPersistentContainer (Foundation.NSObjectFlag t);
	protected NSPersistentContainer (IntPtr handle);
	public NSPersistentContainer (string name);
	public NSPersistentContainer (string name, NSManagedObjectModel model);
	// properties
	public override IntPtr ClassHandle { get; }
	public static Foundation.NSUrl DefaultDirectoryUrl { get; }
	public virtual NSManagedObjectModel ManagedObjectModel { get; }
	public virtual string Name { get; }
	public virtual NSManagedObjectContext NewBackgroundContext { get; }
	public virtual NSPersistentStoreCoordinator PersistentStoreCoordinator { get; }
	public virtual NSPersistentStoreDescription[] PersistentStoreDescriptions { get; set; }
	public virtual NSManagedObjectContext ViewContext { get; }
	// methods
	public static NSPersistentContainer GetPersistentContainer (string name);
	public static NSPersistentContainer GetPersistentContainer (string name, NSManagedObjectModel model);
	public virtual void LoadPersistentStores (System.Action<NSPersistentStoreDescription,Foundation.NSError> block);
	public virtual System.Threading.Tasks.Task<NSPersistentStoreDescription> LoadPersistentStoresAsync ();
	public virtual void Perform (System.Action<NSManagedObjectContext> block);
}

New Type CoreData.NSPersistentStoreDescription

public class NSPersistentStoreDescription : Foundation.NSObject, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected NSPersistentStoreDescription (Foundation.NSObjectFlag t);
	public NSPersistentStoreDescription (Foundation.NSUrl url);
	protected NSPersistentStoreDescription (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string Configuration { get; set; }
	public virtual bool IsReadOnly { get; set; }
	public virtual Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> Options { get; }
	public virtual bool ShouldAddStoreAsynchronously { get; set; }
	public virtual bool ShouldInferMappingModelAutomatically { get; set; }
	public virtual bool ShouldMigrateStoreAutomatically { get; set; }
	public virtual Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> SqlitePragmas { get; }
	public virtual double Timeout { get; set; }
	public virtual string Type { get; set; }
	public virtual Foundation.NSUrl Url { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static NSPersistentStoreDescription GetPersistentStoreDescription (Foundation.NSUrl Url);
	public virtual void SetOption (Foundation.NSObject option, string key);
	public virtual void SetValue (Foundation.NSObject value, string name);
}

New Type CoreData.NSQueryGenerationToken

public class NSQueryGenerationToken : Foundation.NSObject, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public NSQueryGenerationToken ();
	protected NSQueryGenerationToken (Foundation.NSObjectFlag t);
	protected NSQueryGenerationToken (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public static NSQueryGenerationToken CurrentToken { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type CoreData.NSSnapshotEventType

[Serializable]
public enum NSSnapshotEventType {
	MergePolicy = 64,
	Refresh = 32,
	Rollback = 16,
	UndoDeletion = 4,
	UndoInsertion = 2,
	UndoUpdate = 8,
}

New Type CoreData.ObjectGraphManagementErrorType

[Serializable]
public enum ObjectGraphManagementErrorType {
	ManagedObjectContextLocking = 132000,
	ManagedObjectExternalRelationship = 133010,
	ManagedObjectMerge = 133020,
	ManagedObjectReferentialIntegrity = 133000,
	PersistentStoreCoordinatorLocking = 132010,
}

New Type CoreData.PersistentStoreErrorType

[Serializable]
public enum PersistentStoreErrorType {
	IncompatibleSchema = 134020,
	IncompatibleVersionHash = 134100,
	IncompleteSave = 134040,
	InvalidType = 134000,
	Open = 134080,
	Operation = 134070,
	Save = 134030,
	SaveConflicts = 134050,
	Timeout = 134090,
	TypeMismatch = 134010,
}

New Type CoreData.UserInfo

public class UserInfo : Foundation.DictionaryContainer {
	// constructors
	public UserInfo ();
	public UserInfo (Foundation.NSDictionary dictionary);
	// properties
	public NSPersistentStore[] AffectedStoresForError { get; set; }
	public Foundation.NSError[] DetailedErrors { get; set; }
	public Foundation.NSString KeyForValidationError { get; set; }
	public NSManagedObject ObjectForValidationError { get; set; }
	public NSMergeConflict[] PersistentStoreSaveConflicts { get; set; }
	public Foundation.NSPredicate PredicateForValidationError { get; set; }
	public Foundation.NSValue ValueForValidationError { get; set; }
}

New Type CoreData.UserInfoKeys

public static class UserInfoKeys {
	// properties
	public static Foundation.NSString AffectedStoresForErrorKey { get; }
	public static Foundation.NSString DetailedErrorsKey { get; }
	public static Foundation.NSString KeyForValidationErrorKey { get; }
	public static Foundation.NSString ObjectForValidationErrorKey { get; }
	public static Foundation.NSString PersistentStoreSaveConflictsKey { get; }
	public static Foundation.NSString PredicateForValidationErrorKey { get; }
	public static Foundation.NSString ValueForValidationErrorKey { get; }
}

New Type CoreData.ValidationErrorType

[Serializable]
public enum ValidationErrorType {
	DateTooLate = 1630,
	DateTooSoon = 1640,
	InvalidDate = 1650,
	ManagedObjectValidation = 1550,
	MissingMandatoryProperty = 1570,
	MultipleErrors = 1560,
	NumberTooLarge = 1610,
	NumberTooSmall = 1620,
	RelationshipDeniedDelete = 1600,
	RelationshipExceedsMaximumCount = 1590,
	RelationshipLacksMinimumCount = 1580,
	StringPatternMatching = 1680,
	StringTooLong = 1660,
	StringTooShort = 1670,
}

Namespace CoreGraphics

Type Changed: CoreGraphics.CGColorSpace

Added properties:

	public bool IsWideGamutRgb { get; }
	public string Name { get; }
	public bool SupportsOutput { get; }

Added method:

	public Foundation.NSData GetIccData ();

Type Changed: CoreGraphics.CGColorSpaceNames

Added properties:

	public static Foundation.NSString ExtendedGray { get; }
	public static Foundation.NSString ExtendedLinearGray { get; }
	public static Foundation.NSString ExtendedLinearSrgb { get; }
	public static Foundation.NSString ExtendedSrgb { get; }
	public static Foundation.NSString LinearGray { get; }
	public static Foundation.NSString LinearSrgb { get; }

New Type CoreGraphics.CGColorConversionInfo

public class CGColorConversionInfo : ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public CGColorConversionInfo (CGColorConversionOptions options, GColorConversionInfoTriple[] triples);
	public CGColorConversionInfo (CGColorSpace src, CGColorSpace dst);
	public CGColorConversionInfo (Foundation.NSDictionary options, GColorConversionInfoTriple[] triples);
	// properties
	public virtual IntPtr Handle { get; }
	// methods
	public virtual void Dispose ();
	protected virtual void Dispose (bool disposing);
	protected override void ~CGColorConversionInfo ();
}

New Type CoreGraphics.CGColorConversionInfoTransformType

[Serializable]
public enum CGColorConversionInfoTransformType {
	ApplySpace = 2,
	FromSpace = 0,
	ToSpace = 1,
}

New Type CoreGraphics.CGColorConversionOptions

public class CGColorConversionOptions : Foundation.DictionaryContainer {
	// constructors
	public CGColorConversionOptions ();
	public CGColorConversionOptions (Foundation.NSDictionary dictionary);
	// properties
	public bool? BlackPointCompensation { get; set; }
}

New Type CoreGraphics.GColorConversionInfoTriple

public struct GColorConversionInfoTriple {
	// fields
	public CGColorRenderingIntent Intent;
	public CGColorSpace Space;
	public CGColorConversionInfoTransformType Transform;
}

Namespace CoreImage

Type Changed: CoreImage.CIColor

Added constructors:

	public CIColor (nfloat red, nfloat green, nfloat blue, CoreGraphics.CGColorSpace colorSpace);
	public CIColor (nfloat red, nfloat green, nfloat blue, nfloat alpha, CoreGraphics.CGColorSpace colorSpace);

Added properties:

	public static CIColor BlackColor { get; }
	public static CIColor BlueColor { get; }
	public static CIColor ClearColor { get; }
	public static CIColor CyanColor { get; }
	public static CIColor GrayColor { get; }
	public static CIColor GreenColor { get; }
	public static CIColor MagentaColor { get; }
	public static CIColor RedColor { get; }
	public static CIColor WhiteColor { get; }
	public static CIColor YellowColor { get; }

Added methods:

	public static CIColor FromRgb (nfloat red, nfloat green, nfloat blue, CoreGraphics.CGColorSpace colorSpace);
	public static CIColor FromRgba (nfloat red, nfloat green, nfloat blue, nfloat alpha, CoreGraphics.CGColorSpace colorSpace);

Type Changed: CoreImage.CIContext

Added constructor:

	public CIContext (CIContextOptions options);

Added property:

	public virtual CIFormat WorkingFormat { get; }

Added methods:

	public virtual void ClearCaches ();
	public virtual CoreGraphics.CGImage CreateCGImage (CIImage image, CoreGraphics.CGRect fromRect, CIFormat format, CoreGraphics.CGColorSpace colorSpace, bool deferred);

Type Changed: CoreImage.CIContextOptions

Added properties:

	public bool? CacheIntermediates { get; set; }
	public bool? OutputPremultiplied { get; set; }

Type Changed: CoreImage.CIDetectorOptions

Added properties:

	public CIImageOrientation? ImageOrientation { get; set; }
	public int? MaxFeatureCount { get; set; }

Type Changed: CoreImage.CIFilter

Modified properties:

public virtual string Name { get; set; }

Added methods:

	public static CIFilter CreateRawFilter (Foundation.NSData data, CIRawFilterOptions options);
	public static CIFilter CreateRawFilter (Foundation.NSData data, Foundation.NSDictionary options);
	public static CIFilter CreateRawFilter (Foundation.NSUrl url, CIRawFilterOptions options);
	public static CIFilter CreateRawFilter (Foundation.NSUrl url, Foundation.NSDictionary options);
	public static CIFilter CreateRawFilter (CoreVideo.CVPixelBuffer pixelBuffer, Foundation.NSDictionary properties, CIRawFilterOptions options);
	public static CIFilter CreateRawFilter (CoreVideo.CVPixelBuffer pixelBuffer, Foundation.NSDictionary properties, Foundation.NSDictionary options);

Type Changed: CoreImage.CIImage

Added properties:

	public virtual CoreGraphics.CGImage CGImage { get; }
	public virtual CoreVideo.CVPixelBuffer PixelBuffer { get; }

Added methods:

	public virtual CIImage CreateByApplyingGaussianBlur (double sigma);
	public virtual CIImage CreateByClamping (CoreGraphics.CGRect rect);
	public virtual CIImage CreateByColorMatchingColorSpaceToWorkingSpace (CoreGraphics.CGColorSpace colorSpace);
	public virtual CIImage CreateByColorMatchingWorkingSpaceToColorSpace (CoreGraphics.CGColorSpace colorSpace);
	public virtual CIImage CreateByPremultiplyingAlpha ();
	public virtual CIImage CreateBySettingAlphaOne (CoreGraphics.CGRect extent);
	public virtual CIImage CreateBySettingProperties (Foundation.NSDictionary properties);
	public virtual CIImage CreateByUnpremultiplyingAlpha ();

New Type CoreImage.CIClamp

public class CIClamp : CoreImage.CIFilter, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CIClamp ();
	public CIClamp (Foundation.NSCoder coder);
	protected CIClamp (Foundation.NSObjectFlag t);
	public CIClamp (IntPtr handle);
	// properties
	public CIVector Extent { get; set; }
}

New Type CoreImage.CIContext_ImageRepresentation

public static class CIContext_ImageRepresentation {
	// methods
	public static Foundation.NSData GetJpegRepresentation (CIContext This, CIImage image, CoreGraphics.CGColorSpace colorSpace, Foundation.NSDictionary options);
	public static Foundation.NSData GetTiffRepresentation (CIContext This, CIImage image, CIFormat format, CoreGraphics.CGColorSpace colorSpace, Foundation.NSDictionary options);
	public static bool WriteJpegRepresentation (CIContext This, CIImage image, Foundation.NSUrl url, CoreGraphics.CGColorSpace colorSpace, Foundation.NSDictionary options, out Foundation.NSError error);
	public static bool WriteTiffRepresentation (CIContext This, CIImage image, Foundation.NSUrl url, CIFormat format, CoreGraphics.CGColorSpace colorSpace, Foundation.NSDictionary options, out Foundation.NSError error);
}

New Type CoreImage.CIHueSaturationValueGradient

public class CIHueSaturationValueGradient : CoreImage.CIFilter, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CIHueSaturationValueGradient ();
	public CIHueSaturationValueGradient (Foundation.NSCoder coder);
	protected CIHueSaturationValueGradient (Foundation.NSObjectFlag t);
	public CIHueSaturationValueGradient (IntPtr handle);
	// properties
	public CoreGraphics.CGColorSpace ColorSpace { get; set; }
	public float Dither { get; set; }
	public float Radius { get; set; }
	public float Softness { get; set; }
	public float Value { get; set; }
}

New Type CoreImage.CIImageProcessorKernel

public class CIImageProcessorKernel : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CIImageProcessorKernel ();
	protected CIImageProcessorKernel (Foundation.NSObjectFlag t);
	protected CIImageProcessorKernel (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public static CIFormat OutputFormat { get; }
	public static bool SynchronizeInputs { get; }
	// methods
	public static CIImage Apply (CoreGraphics.CGRect extent, CIImage[] inputs, Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> args, out Foundation.NSError error);
	public static CIFormat GetFormat (int input);
	public static CoreGraphics.CGRect GetRegionOfInterest (int input, Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> arguments, CoreGraphics.CGRect outputRect);
	public static bool Process (ICIImageProcessorInput[] inputs, Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> arguments, ICIImageProcessorOutput output, out Foundation.NSError error);
}

New Type CoreImage.CINinePartStretched

public class CINinePartStretched : CoreImage.CIFilter, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CINinePartStretched ();
	public CINinePartStretched (Foundation.NSCoder coder);
	protected CINinePartStretched (Foundation.NSObjectFlag t);
	public CINinePartStretched (IntPtr handle);
	// properties
	public CIVector Breakpoint0 { get; set; }
	public CIVector Breakpoint1 { get; set; }
	public CIVector GrowAmount { get; set; }
}

New Type CoreImage.CINinePartTiled

public class CINinePartTiled : CoreImage.CIFilter, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CINinePartTiled ();
	public CINinePartTiled (Foundation.NSCoder coder);
	protected CINinePartTiled (Foundation.NSObjectFlag t);
	public CINinePartTiled (IntPtr handle);
	// properties
	public CIVector Breakpoint0 { get; set; }
	public CIVector Breakpoint1 { get; set; }
	public bool FlipYTiles { get; set; }
	public CIVector GrowAmount { get; set; }
}

New Type CoreImage.CIRawFilterOptions

public class CIRawFilterOptions : Foundation.DictionaryContainer {
	// constructors
	public CIRawFilterOptions ();
	public CIRawFilterOptions (Foundation.NSDictionary dictionary);
	// properties
	public Foundation.NSSet ActiveKeys { get; }
	public bool? AllowDraftMode { get; set; }
	public float? BaselineExposure { get; set; }
	public float? Boost { get; set; }
	public float? BoostShadowAmount { get; set; }
	public double? ColorNoiseReductionAmount { get; set; }
	public bool? DisableGamutMap { get; set; }
	public bool? EnableChromaticNoiseTracking { get; set; }
	public bool? EnableSharpening { get; set; }
	public bool? EnableVendorLensCorrection { get; set; }
	public bool? IgnoreImageOrientation { get; set; }
	public int? ImageOrientation { get; set; }
	public CIFilter LinearSpaceFilter { get; set; }
	public double? LuminanceNoiseReductionAmount { get; set; }
	public float? NeutralChromaticityX { get; set; }
	public float? NeutralChromaticityY { get; set; }
	public CIVector NeutralLocation { get; set; }
	public float? NeutralTemperature { get; set; }
	public float? NeutralTint { get; set; }
	public double? NoiseReductionAmount { get; set; }
	public double? NoiseReductionContrastAmount { get; set; }
	public double? NoiseReductionDetailAmount { get; set; }
	public double? NoiseReductionSharpnessAmount { get; set; }
	public CIVector OutputNativeSize { get; set; }
	public float? ScaleFactor { get; set; }
	public Foundation.NSDictionary[] SupportedDecoderVersions { get; set; }
	public string Version { get; set; }
}

New Type CoreImage.CIThermal

public class CIThermal : CoreImage.CIFilter, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CIThermal ();
	public CIThermal (Foundation.NSCoder coder);
	protected CIThermal (Foundation.NSObjectFlag t);
	public CIThermal (IntPtr handle);
}

New Type CoreImage.CIXRay

public class CIXRay : CoreImage.CIFilter, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CIXRay ();
	public CIXRay (Foundation.NSCoder coder);
	protected CIXRay (Foundation.NSObjectFlag t);
	public CIXRay (IntPtr handle);
}

New Type CoreImage.ICIImageProcessorInput

public interface ICIImageProcessorInput : ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual IntPtr BaseAddress { get; }
	public virtual uint BytesPerRow { get; }
	public virtual CIFormat Format { get; }
	public virtual Metal.IMTLTexture MetalTexture { get; }
	public virtual CoreVideo.CVPixelBuffer PixelBuffer { get; }
	public virtual CoreGraphics.CGRect Region { get; }
}

New Type CoreImage.ICIImageProcessorOutput

public interface ICIImageProcessorOutput : ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual IntPtr BaseAddress { get; }
	public virtual uint BytesPerRow { get; }
	public virtual CIFormat Format { get; }
	public virtual Metal.IMTLCommandBuffer MetalCommandBuffer { get; }
	public virtual Metal.IMTLTexture MetalTexture { get; }
	public virtual CoreVideo.CVPixelBuffer PixelBuffer { get; }
	public virtual CoreGraphics.CGRect Region { get; }
}

Namespace CoreLocation

Type Changed: CoreLocation.CLHeading

Obsoleted methods:

[Obsolete ("Use the Description property from NSObject")] public virtual string Description ();

Type Changed: CoreLocation.CLLocation

Obsoleted methods:

[Obsolete ("Use the Description property from NSObject")] public virtual string Description ();

Type Changed: CoreLocation.CLLocationCoordinate2D

Added method:

	public override string ToString ();

Type Changed: CoreLocation.CLPlacemark

Added method:

	public static CLPlacemark GetPlacemark (CLLocation location, string name, Contacts.CNPostalAddress postalAddress);

Namespace CoreMedia

Type Changed: CoreMedia.CMBlockBuffer

Added interface:

	ICMAttachmentBearer

Added methods:

	public CMBlockBufferError AppendMemoryBlock (byte[] data, uint offsetToData, CMBlockBufferFlags flags);
	public CMBlockBufferError CopyDataBytes (uint offsetToData, uint dataLength, out byte[] destination);
	public static CMBlockBuffer FromMemoryBlock (byte[] data, uint offsetToData, CMBlockBufferFlags flags, out CMBlockBufferError error);
	public CMBlockBufferError ReplaceDataBytes (byte[] sourceBytes, uint offsetIntoDestination);

Type Changed: CoreMedia.CMSampleBuffer

Added interface:

	ICMAttachmentBearer

New Type CoreMedia.CMAttachmentBearer

public static class CMAttachmentBearer {
	// methods
	public static T GetAttachment<T> (ICMAttachmentBearer target, string key, out CMAttachmentMode attachmentModeOut);
	public static Foundation.NSDictionary GetAttachments (ICMAttachmentBearer target, CMAttachmentMode attachmentMode);
	public static void PropagateAttachments (ICMAttachmentBearer source, ICMAttachmentBearer destination);
	public static void RemoveAllAttachments (ICMAttachmentBearer target);
	public static void RemoveAttachment (ICMAttachmentBearer target, string key);
	public static void SetAttachment (ICMAttachmentBearer target, string key, ObjCRuntime.INativeObject value, CMAttachmentMode attachmentMode);
	public static void SetAttachments (ICMAttachmentBearer target, Foundation.NSDictionary theAttachments, CMAttachmentMode attachmentMode);
}

New Type CoreMedia.CMAttachmentMode

[Serializable]
public enum CMAttachmentMode {
	ShouldNotPropagate = 0,
	ShouldPropagate = 1,
}

New Type CoreMedia.ICMAttachmentBearer

public interface ICMAttachmentBearer : ObjCRuntime.INativeObject {
}

Namespace CoreMidi

New Type CoreMidi.MidiControlTransform

public struct MidiControlTransform {
	// constructors
	public MidiControlTransform (MidiTransformControlType controlType, MidiTransformControlType remappedControlType, ushort controlNumber, MidiTransformType transform, short param);
	// fields
	public ushort ControlNumber;
	public MidiTransformControlType ControlType;
	public short Param;
	public MidiTransformControlType RemappedControlType;
	public MidiTransformType Transform;
}

New Type CoreMidi.MidiThruConnection

public class MidiThruConnection : System.IDisposable {
	// constructors
	protected MidiThruConnection (uint handle);
	// properties
	public uint Handle { get; }
	// methods
	public static MidiThruConnection Create (string persistentOwnerID, MidiThruConnectionParams connectionParams);
	public static MidiThruConnection Create (string persistentOwnerID, MidiThruConnectionParams connectionParams, out MidiError error);
	public virtual void Dispose ();
	protected virtual void Dispose (bool disposing);
	public static MidiThruConnection[] Find (string persistentOwnerID);
	public static MidiThruConnection[] Find (string persistentOwnerID, out MidiError error);
	public MidiThruConnectionParams GetParams ();
	public MidiThruConnectionParams GetParams (out MidiError error);
	public MidiError SetParams (MidiThruConnectionParams connectionParams);
	protected override void ~MidiThruConnection ();
}

New Type CoreMidi.MidiThruConnectionEndpoint

public struct MidiThruConnectionEndpoint {
	// constructors
	public MidiThruConnectionEndpoint (int endpointRef, int uniqueID);
	// fields
	public int EndpointRef;
	public int UniqueID;
}

New Type CoreMidi.MidiThruConnectionParams

public class MidiThruConnectionParams {
	// constructors
	public MidiThruConnectionParams ();
	// properties
	public byte[] ChannelMap { get; set; }
	public MidiTransform ChannelPressure { get; set; }
	public MidiControlTransform[] Controls { get; set; }
	public MidiThruConnectionEndpoint[] Destinations { get; set; }
	public bool FilterOutAllControls { get; set; }
	public bool FilterOutBeatClock { get; set; }
	public bool FilterOutMtc { get; set; }
	public bool FilterOutSysEx { get; set; }
	public bool FilterOutTuneRequest { get; set; }
	public byte HighNote { get; set; }
	public byte HighVelocity { get; set; }
	public MidiTransform KeyPressure { get; set; }
	public byte LowNote { get; set; }
	public byte LowVelocity { get; set; }
	public MidiValueMap[] Maps { get; set; }
	public MidiTransform NoteNumber { get; set; }
	public MidiTransform PitchBend { get; set; }
	public MidiTransform ProgramChange { get; set; }
	public MidiThruConnectionEndpoint[] Sources { get; set; }
	public MidiTransform Velocity { get; set; }
}

New Type CoreMidi.MidiTransform

public struct MidiTransform {
	// constructors
	public MidiTransform (MidiTransformType transform, short param);
	// fields
	public short Param;
	public MidiTransformType Transform;
}

New Type CoreMidi.MidiTransformControlType

[Serializable]
public enum MidiTransformControlType {
	FourteenBit = 1,
	FourteenBitNRpn = 5,
	FourteenBitRpn = 3,
	SevenBit = 0,
	SevenBitNRpn = 4,
	SevenBitRpn = 2,
}

New Type CoreMidi.MidiTransformType

[Serializable]
public enum MidiTransformType {
	Add = 8,
	FilterOut = 1,
	MapControl = 2,
	MapValue = 12,
	MaxValue = 11,
	MinValue = 10,
	None = 0,
	Scale = 9,
}

New Type CoreMidi.MidiValueMap

public struct MidiValueMap {
	// properties
	public byte[] Value { get; set; }
}

Namespace CoreMotion

Type Changed: CoreMotion.CMAltimeter

Added method:

	public virtual System.Threading.Tasks.Task<CMAltitudeData> StartRelativeAltitudeUpdatesAsync (Foundation.NSOperationQueue queue);

Type Changed: CoreMotion.CMPedometer

Added property:

	public static bool IsPedometerEventTrackingAvailable { get; }

Added methods:

	public virtual void StartPedometerEventUpdates (System.Action<CMPedometerEvent,Foundation.NSError> handler);
	public virtual System.Threading.Tasks.Task<CMPedometerEvent> StartPedometerEventUpdatesAsync ();
	public virtual System.Threading.Tasks.Task<CMPedometerData> StartPedometerUpdatesAsync (Foundation.NSDate start);
	public virtual void StopPedometerEventUpdates ();

Type Changed: CoreMotion.CMPedometerData

Added property:

	public virtual Foundation.NSNumber AverageActivePace { get; }

New Type CoreMotion.CMPedometerEvent

public class CMPedometerEvent : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public CMPedometerEvent (Foundation.NSCoder coder);
	protected CMPedometerEvent (Foundation.NSObjectFlag t);
	protected CMPedometerEvent (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSDate Date { get; }
	public virtual CMPedometerEventType Type { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type CoreMotion.CMPedometerEventType

[Serializable]
public enum CMPedometerEventType {
	Pause = 0,
	Resume = 1,
}

Namespace CoreSpotlight

Type Changed: CoreSpotlight.CSCustomAttributeKey

Obsoleted constructors:

[Obsolete ("Use .ctor(string)")] public CSCustomAttributeKey ();

Type Changed: CoreSpotlight.CSSearchableItem

Added properties:

	public static Foundation.NSString ContinuationActionType { get; }
	public static Foundation.NSString QueryString { get; }

Type Changed: CoreSpotlight.CSSearchableItemAttributeSet

Added properties:

	public virtual string DomainIdentifier { get; set; }
	public virtual string FullyFormattedAddress { get; set; }
	public virtual string PostalCode { get; set; }
	public virtual string SubThoroughfare { get; set; }
	public virtual string Thoroughfare { get; set; }
	public virtual string WeakRelatedUniqueIdentifier { get; set; }

New Type CoreSpotlight.CSSearchQuery

public class CSSearchQuery : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected CSSearchQuery (Foundation.NSObjectFlag t);
	protected CSSearchQuery (IntPtr handle);
	public CSSearchQuery (string queryString, string[] attributes);
	// properties
	public virtual bool Cancelled { get; }
	public override IntPtr ClassHandle { get; }
	public virtual System.Action<Foundation.NSError> CompletionHandler { get; set; }
	public virtual uint FoundItemCount { get; }
	public virtual System.Action<CSSearchableItem[]> FoundItemsHandler { get; set; }
	public virtual string[] ProtectionClasses { get; set; }
	// methods
	public virtual void Cancel ();
	public virtual void Start ();
}

New Type CoreSpotlight.CSSearchQueryErrorCode

[Serializable]
public enum CSSearchQueryErrorCode {
	Cancelled = -2003,
	IndexUnreachable = -2001,
	InvalidQuery = -2002,
	Unknown = -2000,
}

New Type CoreSpotlight.CSSearchQueryErrorCodeExtensions

public static class CSSearchQueryErrorCodeExtensions {
	// methods
	public static Foundation.NSString GetDomain (CSSearchQueryErrorCode self);
}

Namespace CoreText

Type Changed: CoreText.CTStringAttributeKey

Added fields:

	public static Foundation.NSString BackgroundColor;
	public static Foundation.NSString HorizontalInVerticalForms;

Type Changed: CoreText.CTStringAttributes

Added properties:

	public CoreGraphics.CGColor BackgroundColor { get; set; }
	public int? HorizontalInVerticalForms { get; set; }

Namespace CoreVideo

Type Changed: CoreVideo.CVImageBuffer

Added property:

	public static Foundation.NSString TransferFunction_SMPTE_ST_428_1 { get; }

Type Changed: CoreVideo.CVPixelBufferPool

Added property:

	public static Foundation.NSString TransferFunction_SMPTE_ST_428_1 { get; }

Type Changed: CoreVideo.CVPixelFormatType

Added values:

	CV14BayerBggr = 1650943796,
	CV14BayerGbrg = 1734505012,
	CV14BayerGrbg = 1735549492,
	CV14BayerRggb = 1919379252,
	CV30RgbLePackedWideGamut = 1999843442,

Type Changed: CoreVideo.CVReturn

Added value:

	Retry = -6692,

Namespace Foundation

Type Changed: Foundation.DictionaryContainer

Added methods:

	protected CoreGraphics.CGPoint? GetCGPointValue (NSString key);
	protected CoreGraphics.CGRect? GetCGRectValue (NSString key);
	protected CoreGraphics.CGSize? GetCGSizeValue (NSString key);
	protected CoreMedia.CMTime? GetCMTimeValue (NSString key);
	protected Foundation.NSDictionary<TKey,TValue> GetNSDictionary<TKey, TValue> (NSString key);
	protected void SetCGPointValue (NSString key, CoreGraphics.CGPoint? value);
	protected void SetCGRectValue (NSString key, CoreGraphics.CGRect? value);
	protected void SetCGSizeValue (NSString key, CoreGraphics.CGSize? value);
	protected void SetCMTimeValue (NSString key, CoreMedia.CMTime? value);

Type Changed: Foundation.NSArray

Added method:

	public static T[] EnumsFromHandle<T> (IntPtr handle);

Type Changed: Foundation.NSCharacterSet

Added interface:

	INSSecureCoding

Type Changed: Foundation.NSCocoaError

Added values:

	CloudSharingConflictError = 5123,
	CloudSharingErrorMaximum = 5375,
	CloudSharingErrorMinimum = 5120,
	CloudSharingNetworkFailureError = 5120,
	CloudSharingNoPermissionError = 5124,
	CloudSharingOtherError = 5375,
	CloudSharingQuotaExceededError = 5121,
	CloudSharingTooManyParticipantsError = 5122,

Type Changed: Foundation.NSCoder

Added properties:

	public virtual NSDecodingFailurePolicy DecodingFailurePolicy { get; }
	public virtual NSError Error { get; }

Type Changed: Foundation.NSDateComponentsFormatterUnitsStyle

Added value:

	Brief = 5,

Type Changed: Foundation.NSDateIntervalFormatter

Added method:

	public virtual string ToString (NSDateInterval dateInterval);

Type Changed: Foundation.NSDictionary`2

Obsoleted methods:

[Obsolete ("TKey and TValue are inversed and won't work unless both types are identical. Use the generic overload that takes a count parameter instead")] public static Foundation.NSDictionary<TKey,TValue> FromObjectsAndKeys (TKey[] objects, TValue[] keys);

Added method:

	public static Foundation.NSDictionary<TKey,TValue> FromObjectsAndKeys (TValue[] objects, TKey[] keys, nint count);

Type Changed: Foundation.NSExpression

Added property:

	public virtual NSExpressionCallbackHandler Block { get; }

Obsoleted methods:

[Obsolete ("ValueWithObject is deprecated, please use EvaluateWith instead.")] public virtual NSExpression ExpressionValueWithObject (NSObject obj, NSMutableDictionary context);
[Obsolete ("FromFormat (string, NSExpression[]) is deprecated, please use FromFormat (string, NSObject[]) instead.")] public static NSExpression FromFormat (string format, NSExpression[] parameters);
[Obsolete ("FromFunction (NSExpressionHandler, NSExpression[]) is deprecated, please use FromFunction (NSExpressionCallbackHandler, NSExpression[]) instead.")] public static NSExpression FromFunction (NSExpressionHandler target, NSExpression[] parameters);

Modified methods:

public virtual NSExpression ExpressionValueWithObject (NSObject object1 obj, NSMutableDictionary context)

Added methods:

	public virtual NSObject EvaluateWith (NSObject obj, NSMutableDictionary context);
	public static NSExpression FromFormat (string expressionFormat);
	public static NSExpression FromFormat (string format, NSObject[] parameters);
	public static NSExpression FromFunction (NSExpressionCallbackHandler target, NSExpression[] parameters);

Type Changed: Foundation.NSKeyedArchiver

Added constructor:

	public NSKeyedArchiver ();

Added property:

	public virtual NSData EncodedData { get; }

Type Changed: Foundation.NSLocale

Added property:

	public virtual string CalendarIdentifier { get; }

Added method:

	public virtual string GetLocalizedCalendarIdentifier (string calendarIdentifier);

Type Changed: Foundation.NSMutableAttributedString

Added property:

	public virtual NSMutableString MutableString { get; }

Type Changed: Foundation.NSMutableCharacterSet

Added interface:

	INSSecureCoding

Type Changed: Foundation.NSMutableDictionary`2

Obsoleted methods:

[Obsolete ("TKey and TValue are inversed and won't work unless both types are identical. Use the generic overload that takes a count parameter instead")] public static Foundation.NSMutableDictionary<TKey,TValue> FromObjectsAndKeys (TKey[] objects, TValue[] keys);

Added method:

	public static Foundation.NSMutableDictionary<TKey,TValue> FromObjectsAndKeys (TValue[] objects, TKey[] keys, nint count);

Type Changed: Foundation.NSObject

Obsoleted fields:

[Obsolete ("Use PlatformAssembly for easier code sharing across platforms")] public static System.Reflection.Assembly MonoTouchAssembly;

Added field:

	public static System.Reflection.Assembly PlatformAssembly;

Type Changed: Foundation.NSPersonNameComponentsFormatter

Added method:

	public virtual NSPersonNameComponents GetComponents (string string);

Type Changed: Foundation.NSRunLoop

Added methods:

	public virtual void Perform (System.Action block);
	public virtual void Perform (NSString[] modes, System.Action block);

Type Changed: Foundation.NSStream

Added property:

	public static NSString NetworkServiceTypeCallSignaling { get; }

Type Changed: Foundation.NSString

Added method:

	public static string GetLocalizedUserNotificationString (string key, NSObject[] arguments);

Type Changed: Foundation.NSTimer

Added constructor:

	public NSTimer (NSDate date, double seconds, bool repeats, System.Action<NSTimer> block);

Added methods:

	public static NSTimer CreateScheduledTimer (double interval, bool repeats, System.Action<NSTimer> block);
	public static NSTimer CreateTimer (double interval, bool repeats, System.Action<NSTimer> block);

Type Changed: Foundation.NSUrl

Added property:

	public int Port { get; }

Added methods:

	public static bool op_Equality (NSUrl x, NSUrl y);
	public static bool op_Inequality (NSUrl x, NSUrl y);

Type Changed: Foundation.NSUrlRequestNetworkServiceType

Added value:

	CallSignaling = 11,

Type Changed: Foundation.NSUrlSessionTaskDelegate

Added method:

	public virtual void DidFinishCollectingMetrics (NSUrlSession session, NSUrlSessionTask task, NSUrlSessionTaskMetrics metrics);

Type Changed: Foundation.NSUrlSessionTaskDelegate_Extensions

Added method:

	public static void DidFinishCollectingMetrics (INSUrlSessionTaskDelegate This, NSUrlSession session, NSUrlSessionTask task, NSUrlSessionTaskMetrics metrics);

Type Changed: Foundation.NSUserActivity

Obsoleted constructors:

[Obsolete ("Use the constructor that allows you to set an activity type")] public NSUserActivity ();

Type Changed: Foundation.NSUserDefaults

Added property:

	public static NSString NoCloudAccountNotification { get; }

Type Changed: Foundation.NSUserDefaults.Notifications

Added method:

	public static NSObject ObserveNoCloudAccount (System.EventHandler<NSNotificationEventArgs> handler);

New Type Foundation.NSDateInterval

public class NSDateInterval : Foundation.NSObject, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSDateInterval ();
	public NSDateInterval (NSCoder coder);
	protected NSDateInterval (NSObjectFlag t);
	protected NSDateInterval (IntPtr handle);
	public NSDateInterval (NSDate startDate, NSDate endDate);
	public NSDateInterval (NSDate startDate, double duration);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual double Duration { get; }
	public virtual NSDate EndDate { get; }
	public virtual NSDate StartDate { get; }
	// methods
	public virtual NSComparisonResult Compare (NSDateInterval dateInterval);
	public virtual bool ContainsDate (NSDate date);
	public virtual NSObject Copy (NSZone zone);
	public virtual void EncodeTo (NSCoder encoder);
	public virtual NSDateInterval GetIntersection (NSDateInterval dateInterval);
	public virtual bool Intersects (NSDateInterval dateInterval);
	public virtual bool IsEqualTo (NSDateInterval dateInterval);
}

New Type Foundation.NSDecodingFailurePolicy

[Serializable]
public enum NSDecodingFailurePolicy {
	RaiseException = 0,
	SetErrorAndReturn = 1,
}

New Type Foundation.NSDimension

public abstract class NSDimension : Foundation.NSUnit, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	protected NSDimension (NSCoder coder);
	protected NSDimension (NSObjectFlag t);
	protected NSDimension (IntPtr handle);
	public NSDimension (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public virtual NSUnitConverter Converter { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSExpressionCallbackHandler

public sealed delegate NSExpressionCallbackHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public NSExpressionCallbackHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (NSObject evaluatedObject, NSExpression[] expressions, NSMutableDictionary context, System.AsyncCallback callback, object object);
	public virtual NSObject EndInvoke (System.IAsyncResult result);
	public virtual NSObject Invoke (NSObject evaluatedObject, NSExpression[] expressions, NSMutableDictionary context);
}

New Type Foundation.NSFileManager_NSUserInformation

public static class NSFileManager_NSUserInformation {
	// methods
	public static NSUrl GetTemporaryDirectory (NSFileManager This);
}

New Type Foundation.NSIso8601DateFormatOptions

[Serializable]
[Flags]
public enum NSIso8601DateFormatOptions {
	ColonSeparatorInTime = 512,
	ColonSeparatorInTimeZone = 1024,
	DashSeparatorInDate = 256,
	Day = 16,
	FullDate = 275,
	FullTime = 1632,
	InternetDateTime = 1907,
	Month = 2,
	SpaceBetweenDateAndTime = 128,
	Time = 32,
	TimeZone = 64,
	WeekOfYear = 4,
	Year = 1,
}

New Type Foundation.NSIso8601DateFormatter

public class NSIso8601DateFormatter : Foundation.NSFormatter, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSIso8601DateFormatter ();
	public NSIso8601DateFormatter (NSCoder coder);
	protected NSIso8601DateFormatter (NSObjectFlag t);
	protected NSIso8601DateFormatter (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual NSIso8601DateFormatOptions FormatOptions { get; set; }
	public virtual NSTimeZone TimeZone { get; set; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
	public static string Format (NSDate date, NSTimeZone timeZone, NSIso8601DateFormatOptions formatOptions);
	public virtual NSDate ToDate (string string);
	public virtual string ToString (NSDate date);
}

New Type Foundation.NSMeasurementFormatter

public class NSMeasurementFormatter : Foundation.NSFormatter, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSMeasurementFormatter ();
	public NSMeasurementFormatter (NSCoder coder);
	protected NSMeasurementFormatter (NSObjectFlag t);
	protected NSMeasurementFormatter (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual NSLocale Locale { get; set; }
	public virtual NSNumberFormatter NumberFormatter { get; set; }
	public virtual NSMeasurementFormatterUnitOptions UnitOptions { get; set; }
	public virtual NSFormattingUnitStyle UnitStyle { get; set; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
	public virtual string ToString (Foundation.NSMeasurement<NSUnit> measurement);
	public virtual string ToString (NSUnit unit);
}

New Type Foundation.NSMeasurementFormatterUnitOptions

[Serializable]
[Flags]
public enum NSMeasurementFormatterUnitOptions {
	NaturalScale = 2,
	ProvidedUnit = 1,
	TemperatureWithoutUnit = 4,
}

New Type Foundation.NSMeasurement`1

public class NSMeasurement`1 : Foundation.NSObject, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSMeasurement`1 (NSCoder coder);
	protected NSMeasurement`1 (NSObjectFlag t);
	protected NSMeasurement`1 (IntPtr handle);
	public NSMeasurement`1 (double doubleValue, NSUnit unit);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual double DoubleValue { get; }
	public virtual NSUnit Unit { get; }
	// methods
	public virtual bool CanBeConvertedTo (NSUnit unit);
	public virtual NSObject Copy (NSZone zone);
	public virtual void EncodeTo (NSCoder encoder);
	public virtual Foundation.NSMeasurement<UnitType> GetMeasurementByAdding (Foundation.NSMeasurement<UnitType> measurement);
	public virtual Foundation.NSMeasurement<UnitType> GetMeasurementByConverting (NSUnit unit);
	public virtual Foundation.NSMeasurement<UnitType> GetMeasurementBySubtracting (Foundation.NSMeasurement<UnitType> measurement);
}

New Type Foundation.NSUnit

public class NSUnit : Foundation.NSObject, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnit ();
	public NSUnit (NSCoder coder);
	protected NSUnit (NSObjectFlag t);
	protected NSUnit (IntPtr handle);
	public NSUnit (string symbol);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string Symbol { get; }
	// methods
	public virtual NSObject Copy (NSZone zone);
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitAcceleration

public class NSUnitAcceleration : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitAcceleration ();
	public NSUnitAcceleration (NSCoder coder);
	protected NSUnitAcceleration (NSObjectFlag t);
	protected NSUnitAcceleration (IntPtr handle);
	public NSUnitAcceleration (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitAcceleration Gravity { get; }
	public static NSUnitAcceleration MetersPerSecondSquared { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitAngle

public class NSUnitAngle : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitAngle ();
	public NSUnitAngle (NSCoder coder);
	protected NSUnitAngle (NSObjectFlag t);
	protected NSUnitAngle (IntPtr handle);
	public NSUnitAngle (string symbol, NSUnitConverter converter);
	// properties
	public static NSUnitAngle ArcMinutes { get; }
	public static NSUnitAngle ArcSeconds { get; }
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitAngle Degrees { get; }
	public static NSUnitAngle Gradians { get; }
	public static NSUnitAngle Radians { get; }
	public static NSUnitAngle Revolutions { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitArea

public class NSUnitArea : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitArea ();
	public NSUnitArea (NSCoder coder);
	protected NSUnitArea (NSObjectFlag t);
	protected NSUnitArea (IntPtr handle);
	public NSUnitArea (string symbol, NSUnitConverter converter);
	// properties
	public static NSUnitArea Acres { get; }
	public static NSUnitArea Ares { get; }
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitArea Hectares { get; }
	public static NSUnitArea SquareCentimeters { get; }
	public static NSUnitArea SquareFeet { get; }
	public static NSUnitArea SquareInches { get; }
	public static NSUnitArea SquareKilometers { get; }
	public static NSUnitArea SquareMegameters { get; }
	public static NSUnitArea SquareMeters { get; }
	public static NSUnitArea SquareMicrometers { get; }
	public static NSUnitArea SquareMiles { get; }
	public static NSUnitArea SquareMillimeters { get; }
	public static NSUnitArea SquareNanometers { get; }
	public static NSUnitArea SquareYards { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitConcentrationMass

public class NSUnitConcentrationMass : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitConcentrationMass ();
	public NSUnitConcentrationMass (NSCoder coder);
	protected NSUnitConcentrationMass (NSObjectFlag t);
	protected NSUnitConcentrationMass (IntPtr handle);
	public NSUnitConcentrationMass (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitConcentrationMass GramsPerLiter { get; }
	public static NSUnitConcentrationMass MilligramsPerDeciliter { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
	public static NSUnitConcentrationMass GetMillimolesPerLiter (double gramsPerMole);
}

New Type Foundation.NSUnitConverter

public class NSUnitConverter : Foundation.NSObject, INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitConverter ();
	protected NSUnitConverter (NSObjectFlag t);
	protected NSUnitConverter (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public virtual double GetBaseUnitValue (double value);
	public virtual double GetValue (double baseUnitValue);
}

New Type Foundation.NSUnitConverterLinear

public class NSUnitConverterLinear : Foundation.NSUnitConverter, INSCoding, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitConverterLinear ();
	public NSUnitConverterLinear (NSCoder coder);
	protected NSUnitConverterLinear (NSObjectFlag t);
	public NSUnitConverterLinear (double coefficient);
	protected NSUnitConverterLinear (IntPtr handle);
	public NSUnitConverterLinear (double coefficient, double constant);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual double Coefficient { get; }
	public virtual double Constant { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitDispersion

public class NSUnitDispersion : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitDispersion ();
	public NSUnitDispersion (NSCoder coder);
	protected NSUnitDispersion (NSObjectFlag t);
	protected NSUnitDispersion (IntPtr handle);
	public NSUnitDispersion (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitDispersion PartsPerMillion { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitDuration

public class NSUnitDuration : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitDuration ();
	public NSUnitDuration (NSCoder coder);
	protected NSUnitDuration (NSObjectFlag t);
	protected NSUnitDuration (IntPtr handle);
	public NSUnitDuration (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitDuration Hours { get; }
	public static NSUnitDuration Minutes { get; }
	public static NSUnitDuration Seconds { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitElectricCharge

public class NSUnitElectricCharge : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitElectricCharge ();
	public NSUnitElectricCharge (NSCoder coder);
	protected NSUnitElectricCharge (NSObjectFlag t);
	protected NSUnitElectricCharge (IntPtr handle);
	public NSUnitElectricCharge (string symbol, NSUnitConverter converter);
	// properties
	public static NSUnitElectricCharge AmpereHours { get; }
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitElectricCharge Coulombs { get; }
	public static NSUnitElectricCharge KiloampereHours { get; }
	public static NSUnitElectricCharge MegaampereHours { get; }
	public static NSUnitElectricCharge MicroampereHours { get; }
	public static NSUnitElectricCharge MilliampereHours { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitElectricCurrent

public class NSUnitElectricCurrent : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitElectricCurrent ();
	public NSUnitElectricCurrent (NSCoder coder);
	protected NSUnitElectricCurrent (NSObjectFlag t);
	protected NSUnitElectricCurrent (IntPtr handle);
	public NSUnitElectricCurrent (string symbol, NSUnitConverter converter);
	// properties
	public static NSUnitElectricCurrent Amperes { get; }
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitElectricCurrent Kiloamperes { get; }
	public static NSUnitElectricCurrent Megaamperes { get; }
	public static NSUnitElectricCurrent Microamperes { get; }
	public static NSUnitElectricCurrent Milliamperes { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitElectricPotentialDifference

public class NSUnitElectricPotentialDifference : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitElectricPotentialDifference ();
	public NSUnitElectricPotentialDifference (NSCoder coder);
	protected NSUnitElectricPotentialDifference (NSObjectFlag t);
	protected NSUnitElectricPotentialDifference (IntPtr handle);
	public NSUnitElectricPotentialDifference (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitElectricPotentialDifference Kilovolts { get; }
	public static NSUnitElectricPotentialDifference Megavolts { get; }
	public static NSUnitElectricPotentialDifference Microvolts { get; }
	public static NSUnitElectricPotentialDifference Millivolts { get; }
	public static NSUnitElectricPotentialDifference Volts { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitElectricResistance

public class NSUnitElectricResistance : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitElectricResistance ();
	public NSUnitElectricResistance (NSCoder coder);
	protected NSUnitElectricResistance (NSObjectFlag t);
	protected NSUnitElectricResistance (IntPtr handle);
	public NSUnitElectricResistance (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitElectricResistance Kiloohms { get; }
	public static NSUnitElectricResistance Megaohms { get; }
	public static NSUnitElectricResistance Microohms { get; }
	public static NSUnitElectricResistance Milliohms { get; }
	public static NSUnitElectricResistance Ohms { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitEnergy

public class NSUnitEnergy : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitEnergy ();
	public NSUnitEnergy (NSCoder coder);
	protected NSUnitEnergy (NSObjectFlag t);
	protected NSUnitEnergy (IntPtr handle);
	public NSUnitEnergy (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public static NSUnitEnergy Calories { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitEnergy Joules { get; }
	public static NSUnitEnergy Kilocalories { get; }
	public static NSUnitEnergy Kilojoules { get; }
	public static NSUnitEnergy KilowattHours { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitFrequency

public class NSUnitFrequency : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitFrequency ();
	public NSUnitFrequency (NSCoder coder);
	protected NSUnitFrequency (NSObjectFlag t);
	protected NSUnitFrequency (IntPtr handle);
	public NSUnitFrequency (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitFrequency Gigahertz { get; }
	public static NSUnitFrequency Hertz { get; }
	public static NSUnitFrequency Kilohertz { get; }
	public static NSUnitFrequency Megahertz { get; }
	public static NSUnitFrequency Microhertz { get; }
	public static NSUnitFrequency Millihertz { get; }
	public static NSUnitFrequency Nanohertz { get; }
	public static NSUnitFrequency Terahertz { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitFuelEfficiency

public class NSUnitFuelEfficiency : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitFuelEfficiency ();
	public NSUnitFuelEfficiency (NSCoder coder);
	protected NSUnitFuelEfficiency (NSObjectFlag t);
	protected NSUnitFuelEfficiency (IntPtr handle);
	public NSUnitFuelEfficiency (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitFuelEfficiency LitersPer100Kilometers { get; }
	public static NSUnitFuelEfficiency MilesPerGallon { get; }
	public static NSUnitFuelEfficiency MilesPerImperialGallon { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitIlluminance

public class NSUnitIlluminance : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitIlluminance ();
	public NSUnitIlluminance (NSCoder coder);
	protected NSUnitIlluminance (NSObjectFlag t);
	protected NSUnitIlluminance (IntPtr handle);
	public NSUnitIlluminance (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitIlluminance Lux { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitLength

public class NSUnitLength : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitLength ();
	public NSUnitLength (NSCoder coder);
	protected NSUnitLength (NSObjectFlag t);
	protected NSUnitLength (IntPtr handle);
	public NSUnitLength (string symbol, NSUnitConverter converter);
	// properties
	public static NSUnitLength AstronomicalUnits { get; }
	public static NSDimension BaseUnit { get; }
	public static NSUnitLength Centimeters { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitLength Decameters { get; }
	public static NSUnitLength Decimeters { get; }
	public static NSUnitLength Fathoms { get; }
	public static NSUnitLength Feet { get; }
	public static NSUnitLength Furlongs { get; }
	public static NSUnitLength Hectometers { get; }
	public static NSUnitLength Inches { get; }
	public static NSUnitLength Kilometers { get; }
	public static NSUnitLength Lightyears { get; }
	public static NSUnitLength Megameters { get; }
	public static NSUnitLength Meters { get; }
	public static NSUnitLength Micrometers { get; }
	public static NSUnitLength Miles { get; }
	public static NSUnitLength Millimeters { get; }
	public static NSUnitLength Nanometers { get; }
	public static NSUnitLength NauticalMiles { get; }
	public static NSUnitLength Parsecs { get; }
	public static NSUnitLength Picometers { get; }
	public static NSUnitLength ScandinavianMiles { get; }
	public static NSUnitLength Yards { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitMass

public class NSUnitMass : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitMass ();
	public NSUnitMass (NSCoder coder);
	protected NSUnitMass (NSObjectFlag t);
	protected NSUnitMass (IntPtr handle);
	public NSUnitMass (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public static NSUnitMass Carats { get; }
	public static NSUnitMass Centigrams { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitMass Decigrams { get; }
	public static NSUnitMass Grams { get; }
	public static NSUnitMass Kilograms { get; }
	public static NSUnitMass MetricTons { get; }
	public static NSUnitMass Micrograms { get; }
	public static NSUnitMass Milligrams { get; }
	public static NSUnitMass Nanograms { get; }
	public static NSUnitMass Ounces { get; }
	public static NSUnitMass OuncesTroy { get; }
	public static NSUnitMass Picograms { get; }
	public static NSUnitMass Pounds { get; }
	public static NSUnitMass ShortTons { get; }
	public static NSUnitMass Slugs { get; }
	public static NSUnitMass Stones { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitPower

public class NSUnitPower : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitPower ();
	public NSUnitPower (NSCoder coder);
	protected NSUnitPower (NSObjectFlag t);
	protected NSUnitPower (IntPtr handle);
	public NSUnitPower (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitPower Femtowatts { get; }
	public static NSUnitPower Gigawatts { get; }
	public static NSUnitPower Horsepower { get; }
	public static NSUnitPower Kilowatts { get; }
	public static NSUnitPower Megawatts { get; }
	public static NSUnitPower Microwatts { get; }
	public static NSUnitPower Milliwatts { get; }
	public static NSUnitPower Nanowatts { get; }
	public static NSUnitPower Picowatts { get; }
	public static NSUnitPower Terawatts { get; }
	public static NSUnitPower Watts { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitPressure

public class NSUnitPressure : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitPressure ();
	public NSUnitPressure (NSCoder coder);
	protected NSUnitPressure (NSObjectFlag t);
	protected NSUnitPressure (IntPtr handle);
	public NSUnitPressure (string symbol, NSUnitConverter converter);
	// properties
	public static NSUnitPressure Bars { get; }
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitPressure Gigapascals { get; }
	public static NSUnitPressure Hectopascals { get; }
	public static NSUnitPressure InchesOfMercury { get; }
	public static NSUnitPressure Kilopascals { get; }
	public static NSUnitPressure Megapascals { get; }
	public static NSUnitPressure Millibars { get; }
	public static NSUnitPressure MillimetersOfMercury { get; }
	public static NSUnitPressure NewtonsPerMetersSquared { get; }
	public static NSUnitPressure PoundsForcePerSquareInch { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitSpeed

public class NSUnitSpeed : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitSpeed ();
	public NSUnitSpeed (NSCoder coder);
	protected NSUnitSpeed (NSObjectFlag t);
	protected NSUnitSpeed (IntPtr handle);
	public NSUnitSpeed (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitSpeed KilometersPerHour { get; }
	public static NSUnitSpeed Knots { get; }
	public static NSUnitSpeed MetersPerSecond { get; }
	public static NSUnitSpeed MilesPerHour { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitTemperature

public class NSUnitTemperature : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitTemperature (NSCoder coder);
	protected NSUnitTemperature (NSObjectFlag t);
	protected NSUnitTemperature (IntPtr handle);
	public NSUnitTemperature (string symbol, NSUnitConverter converter);
	// properties
	public static NSDimension BaseUnit { get; }
	public static NSUnitTemperature Celsius { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitTemperature Fahrenheit { get; }
	public static NSUnitTemperature Kelvin { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUnitVolume

public class NSUnitVolume : Foundation.NSDimension, INSCoding, INSCopying, INSObjectProtocol, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUnitVolume ();
	public NSUnitVolume (NSCoder coder);
	protected NSUnitVolume (NSObjectFlag t);
	protected NSUnitVolume (IntPtr handle);
	public NSUnitVolume (string symbol, NSUnitConverter converter);
	// properties
	public static NSUnitVolume AcreFeet { get; }
	public static NSDimension BaseUnit { get; }
	public static NSUnitVolume Bushels { get; }
	public static NSUnitVolume Centiliters { get; }
	public override IntPtr ClassHandle { get; }
	public static NSUnitVolume CubicCentimeters { get; }
	public static NSUnitVolume CubicDecimeters { get; }
	public static NSUnitVolume CubicFeet { get; }
	public static NSUnitVolume CubicInches { get; }
	public static NSUnitVolume CubicKilometers { get; }
	public static NSUnitVolume CubicMeters { get; }
	public static NSUnitVolume CubicMiles { get; }
	public static NSUnitVolume CubicMillimeters { get; }
	public static NSUnitVolume CubicYards { get; }
	public static NSUnitVolume Cups { get; }
	public static NSUnitVolume Deciliters { get; }
	public static NSUnitVolume FluidOunces { get; }
	public static NSUnitVolume Gallons { get; }
	public static NSUnitVolume ImperialFluidOunces { get; }
	public static NSUnitVolume ImperialGallons { get; }
	public static NSUnitVolume ImperialPints { get; }
	public static NSUnitVolume ImperialQuarts { get; }
	public static NSUnitVolume ImperialTablespoons { get; }
	public static NSUnitVolume ImperialTeaspoons { get; }
	public static NSUnitVolume Kiloliters { get; }
	public static NSUnitVolume Liters { get; }
	public static NSUnitVolume Megaliters { get; }
	public static NSUnitVolume MetricCups { get; }
	public static NSUnitVolume Milliliters { get; }
	public static NSUnitVolume Pints { get; }
	public static NSUnitVolume Quarts { get; }
	public static NSUnitVolume Tablespoons { get; }
	public static NSUnitVolume Teaspoons { get; }
	// methods
	public virtual void EncodeTo (NSCoder encoder);
}

New Type Foundation.NSUrlSessionTaskMetrics

public class NSUrlSessionTaskMetrics : Foundation.NSObject, INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUrlSessionTaskMetrics ();
	protected NSUrlSessionTaskMetrics (NSObjectFlag t);
	protected NSUrlSessionTaskMetrics (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual uint RedirectCount { get; }
	public virtual NSDateInterval TaskInterval { get; }
	public virtual NSUrlSessionTaskTransactionMetrics[] TransactionMetrics { get; }
}

New Type Foundation.NSUrlSessionTaskMetricsResourceFetchType

[Serializable]
public enum NSUrlSessionTaskMetricsResourceFetchType {
	LocalCache = 3,
	NetworkLoad = 1,
	ServerPush = 2,
	Unknown = 0,
}

New Type Foundation.NSUrlSessionTaskTransactionMetrics

public class NSUrlSessionTaskTransactionMetrics : Foundation.NSObject, INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	public NSUrlSessionTaskTransactionMetrics ();
	protected NSUrlSessionTaskTransactionMetrics (NSObjectFlag t);
	protected NSUrlSessionTaskTransactionMetrics (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual NSDate ConnectEndDate { get; }
	public virtual NSDate ConnectStartDate { get; }
	public virtual NSDate DomainLookupEndDate { get; }
	public virtual NSDate DomainLookupStartDate { get; }
	public virtual NSDate FetchStartDate { get; }
	public virtual string NetworkProtocolName { get; }
	public virtual bool ProxyConnection { get; }
	public virtual NSUrlRequest Request { get; }
	public virtual NSDate RequestEndDate { get; }
	public virtual NSDate RequestStartDate { get; }
	public virtual NSUrlSessionTaskMetricsResourceFetchType ResourceFetchType { get; }
	public virtual NSUrlResponse Response { get; }
	public virtual NSDate ResponseEndDate { get; }
	public virtual NSDate ResponseStartDate { get; }
	public virtual bool ReusedConnection { get; }
	public virtual NSDate SecureConnectionEndDate { get; }
	public virtual NSDate SecureConnectionStartDate { get; }
}

Namespace GLKit

Type Changed: GLKit.GLKTextureInfo

Added properties:

	public virtual uint ArrayLength { get; }
	public virtual uint Depth { get; }
	public virtual uint MimapLevelCount { get; }

Type Changed: GLKit.GLKTextureLoader

Added methods:

	public virtual void BeginTextureLoad (string name, nfloat scaleFactor, Foundation.NSBundle bundle, Foundation.NSDictionary<Foundation.NSString,Foundation.NSNumber> options, CoreFoundation.DispatchQueue queue, GLKTextureLoaderCallback block);
	public virtual System.Threading.Tasks.Task<GLKTextureInfo> BeginTextureLoadAsync (string name, nfloat scaleFactor, Foundation.NSBundle bundle, Foundation.NSDictionary<Foundation.NSString,Foundation.NSNumber> options, CoreFoundation.DispatchQueue queue);
	public static GLKTextureInfo FromName (string name, nfloat scaleFactor, Foundation.NSBundle bundle, Foundation.NSDictionary<Foundation.NSString,Foundation.NSNumber> options, out Foundation.NSError outError);

Type Changed: GLKit.GLKTextureLoaderError

Added value:

	UnsupportedTextureTarget = 19,

Type Changed: GLKit.GLKView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	UIKit.IUIFocusItem

Namespace GameController

Type Changed: GameController.GCController

Added property:

	public virtual GCMicroGamepad MicroGamepad { get; }

New Type GameController.GCEventViewController

public class GCEventViewController : UIKit.UIViewController, Foundation.INSCoding, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.Collections.IEnumerable, System.IDisposable, System.IEquatable<Foundation.NSObject>, UIKit.IUIAppearanceContainer, UIKit.IUIContentContainer, UIKit.IUIFocusEnvironment, UIKit.IUITraitEnvironment {
	// constructors
	public GCEventViewController ();
	public GCEventViewController (Foundation.NSCoder coder);
	protected GCEventViewController (Foundation.NSObjectFlag t);
	protected GCEventViewController (IntPtr handle);
	public GCEventViewController (string nibName, Foundation.NSBundle bundle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual bool ControllerUserInteractionEnabled { get; set; }
}

New Type GameController.GCMicroGamepad

public class GCMicroGamepad : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GCMicroGamepad (Foundation.NSObjectFlag t);
	protected GCMicroGamepad (IntPtr handle);
	// properties
	public virtual bool AllowsRotation { get; set; }
	public virtual GCControllerButtonInput ButtonA { get; }
	public virtual GCControllerButtonInput ButtonX { get; }
	public override IntPtr ClassHandle { get; }
	public virtual GCController Controller { get; }
	public virtual GCControllerDirectionPad Dpad { get; }
	public virtual bool ReportsAbsoluteDpadValues { get; set; }
	public virtual GCMicroGamepadSnapshot SaveSnapshot { get; }
	public virtual GCMicroGamepadValueChangedHandler ValueChangedHandler { get; set; }
	// methods
	protected override void Dispose (bool disposing);
}

New Type GameController.GCMicroGamepadSnapShotDataV100

public struct GCMicroGamepadSnapShotDataV100 {
	// fields
	public float ButtonA;
	public float ButtonX;
	public float DPadX;
	public float DPadY;
	public ushort Size;
	public ushort Version;
	// methods
	public Foundation.NSData ToNSData ();
}

New Type GameController.GCMicroGamepadSnapshot

public class GCMicroGamepadSnapshot : GameController.GCMicroGamepad, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GCMicroGamepadSnapshot ();
	public GCMicroGamepadSnapshot (Foundation.NSData data);
	protected GCMicroGamepadSnapshot (Foundation.NSObjectFlag t);
	protected GCMicroGamepadSnapshot (IntPtr handle);
	public GCMicroGamepadSnapshot (GCController controller, Foundation.NSData data);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSData SnapshotData { get; set; }
	// methods
	public static bool TryGetSnapshotData (Foundation.NSData data, out GCMicroGamepadSnapShotDataV100 snapshotData);
}

New Type GameController.GCMicroGamepadValueChangedHandler

public sealed delegate GCMicroGamepadValueChangedHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public GCMicroGamepadValueChangedHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (GCMicroGamepad gamepad, GCControllerElement element, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (GCMicroGamepad gamepad, GCControllerElement element);
}

Namespace GameKit

Type Changed: GameKit.GKError

Added values:

	GameSessionRequestInvalid = 29,
	MatchNotConnected = 28,

Type Changed: GameKit.GKLocalPlayer

Added methods:

	public virtual void LoadRecentPlayers (System.Action<GKPlayer[],Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<GKPlayer[]> LoadRecentPlayersAsync ();

Type Changed: GameKit.GKLocalPlayerListener

Obsoleted methods:

[Obsolete ("Use DidRequestMatch(GKPlayer player, GKPlayer[] recipientPlayers) instead")] public virtual void DidRequestMatchWithPlayers (GKPlayer player, string[] playerIDsToInvite);

Type Changed: GameKit.GKPlayer

Modified base type: Foundation.NSObject GameKit.GKBasePlayer

New Type GameKit.GKBasePlayer

public class GKBasePlayer : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKBasePlayer ();
	protected GKBasePlayer (Foundation.NSObjectFlag t);
	protected GKBasePlayer (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string DisplayName { get; }
	public virtual string PlayerID { get; }
}

New Type GameKit.GKCloudPlayer

public class GKCloudPlayer : GameKit.GKBasePlayer, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKCloudPlayer ();
	protected GKCloudPlayer (Foundation.NSObjectFlag t);
	protected GKCloudPlayer (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public static void GetCurrentSignedInPlayer (string containerName, System.Action<GKCloudPlayer,Foundation.NSError> handler);
}

New Type GameKit.GKConnectionState

[Serializable]
public enum GKConnectionState {
	Connected = 1,
	NotConnected = 0,
}

New Type GameKit.GKGameSession

public class GKGameSession : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKGameSession ();
	protected GKGameSession (Foundation.NSObjectFlag t);
	protected GKGameSession (IntPtr handle);
	// properties
	public virtual GKCloudPlayer[] BadgedPlayers { get; }
	public override IntPtr ClassHandle { get; }
	public virtual string Identifier { get; }
	public virtual Foundation.NSDate LastModifiedDate { get; }
	public virtual GKCloudPlayer LastModifiedPlayer { get; }
	public virtual nint MaxNumberOfConnectedPlayers { get; }
	public virtual GKCloudPlayer Owner { get; }
	public virtual GKCloudPlayer[] Players { get; }
	public virtual string Title { get; }
	// methods
	public static void AddEventListener (IGKGameSessionEventListener listener);
	public virtual void ClearBadge (GKCloudPlayer[] players, System.Action<Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task ClearBadgeAsync (GKCloudPlayer[] players);
	public static void CreateSession (string containerName, string title, nint maxPlayers, System.Action<GKGameSession,Foundation.NSError> completionHandler);
	public static System.Threading.Tasks.Task<GKGameSession> CreateSessionAsync (string containerName, string title, nint maxPlayers);
	public virtual GKCloudPlayer[] GetPlayers (GKConnectionState state);
	public virtual void GetShareUrl (System.Action<Foundation.NSUrl,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<Foundation.NSUrl> GetShareUrlAsync ();
	public virtual void LoadData (System.Action<Foundation.NSData,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<Foundation.NSData> LoadDataAsync ();
	public static void LoadSession (string identifier, System.Action<GKGameSession,Foundation.NSError> completionHandler);
	public static System.Threading.Tasks.Task<GKGameSession> LoadSessionAsync (string identifier);
	public static void LoadSessions (string containerName, System.Action<GKGameSession[],Foundation.NSError> completionHandler);
	public static System.Threading.Tasks.Task<GKGameSession[]> LoadSessionsAsync (string containerName);
	public static void RemoveEventListener (IGKGameSessionEventListener listener);
	public static void RemoveSession (string identifier, System.Action<Foundation.NSError> completionHandler);
	public static System.Threading.Tasks.Task RemoveSessionAsync (string identifier);
	public virtual void SaveData (Foundation.NSData data, System.Action<Foundation.NSData,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<Foundation.NSData> SaveDataAsync (Foundation.NSData data);
	public virtual void SendData (Foundation.NSData data, GKTransportType transport, System.Action<Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task SendDataAsync (Foundation.NSData data, GKTransportType transport);
	public virtual void SendMessage (string key, string[] arguments, Foundation.NSData data, GKCloudPlayer[] players, bool badgePlayers, System.Action<Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task SendMessageAsync (string key, string[] arguments, Foundation.NSData data, GKCloudPlayer[] players, bool badgePlayers);
	public virtual void SetConnectionState (GKConnectionState state, System.Action<Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task SetConnectionStateAsync (GKConnectionState state);
}

New Type GameKit.GKGameSessionErrorCode

[Serializable]
public enum GKGameSessionErrorCode {
	BadContainer = 12,
	CloudDriveDisabled = 15,
	CloudQuotaExceeded = 13,
	ConnectionCancelledByUser = 5,
	ConnectionFailed = 6,
	InvalidSession = 16,
	NetworkFailure = 14,
	NotAuthenticated = 2,
	SendDataNoRecipients = 9,
	SendDataNotConnected = 8,
	SendDataNotReachable = 10,
	SendRateLimitReached = 11,
	SessionConflict = 3,
	SessionHasMaxConnectedPlayers = 7,
	SessionNotShared = 4,
	Unknown = 1,
}

New Type GameKit.GKGameSessionErrorCodeExtensions

public static class GKGameSessionErrorCodeExtensions {
	// methods
	public static Foundation.NSString GetDomain (GKGameSessionErrorCode self);
}

New Type GameKit.GKGameSessionEventListener_Extensions

public static class GKGameSessionEventListener_Extensions {
	// methods
	public static void DidAddPlayer (IGKGameSessionEventListener This, GKGameSession session, GKCloudPlayer player);
	public static void DidChangeConnectionState (IGKGameSessionEventListener This, GKGameSession session, GKCloudPlayer player, GKConnectionState newState);
	public static void DidReceiveData (IGKGameSessionEventListener This, GKGameSession session, Foundation.NSData data, GKCloudPlayer player);
	public static void DidReceiveMessage (IGKGameSessionEventListener This, GKGameSession session, string message, Foundation.NSData data, GKCloudPlayer player);
	public static void DidRemovePlayer (IGKGameSessionEventListener This, GKGameSession session, GKCloudPlayer player);
	public static void DidSaveData (IGKGameSessionEventListener This, GKGameSession session, GKCloudPlayer player, Foundation.NSData data);
}

New Type GameKit.GKTransportType

[Serializable]
public enum GKTransportType {
	Reliable = 1,
	Unreliable = 0,
}

New Type GameKit.IGKGameSessionEventListener

public interface IGKGameSessionEventListener : ObjCRuntime.INativeObject, System.IDisposable {
}

Namespace GameplayKit

Type Changed: GameplayKit.GKAgent

Added constructor:

	public GKAgent (Foundation.NSCoder coder);

Added interface:

	Foundation.INSCoding

Modified properties:

public virtual float Speed { get; set; }

Added method:

	public virtual void EncodeTo (Foundation.NSCoder encoder);

Type Changed: GameplayKit.GKAgent2D

Added constructor:

	public GKAgent2D (Foundation.NSCoder coder);

Added interface:

	Foundation.INSCoding

Modified methods:

public virtual void Update (double seconds deltaTimeInSeconds)

Added method:

	public virtual void EncodeTo (Foundation.NSCoder encoder);

Type Changed: GameplayKit.GKBehavior

Added interface:

	Foundation.INSCopying

Added method:

	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);

Type Changed: GameplayKit.GKComponent

Added constructor:

	protected GKComponent (Foundation.NSCoder coder);

Added interface:

	Foundation.INSCoding

Modified methods:

public virtual void Update (double seconds deltaTimeInSeconds)

Added methods:

	public virtual void DidAddToEntity ();
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public virtual void WillRemoveFromEntity ();

Type Changed: GameplayKit.GKComponentSystem`1

Modified methods:

public virtual void Update (double seconds deltaTimeInSeconds)

Added methods:

	public virtual ObjCRuntime.Class GetClassForGenericArgument (uint index);
	public System.Type GetTypeForGenericArgument (uint index);

Type Changed: GameplayKit.GKEntity

Added constructor:

	public GKEntity (Foundation.NSCoder coder);

Added interface:

	Foundation.INSCoding

Modified methods:

public virtual void Update (double seconds deltaTimeInSeconds)

Added method:

	public virtual void EncodeTo (Foundation.NSCoder encoder);

Type Changed: GameplayKit.GKGraph

Added constructor:

	public GKGraph (Foundation.NSCoder coder);

Added interfaces:

	Foundation.INSCoding
	Foundation.INSCopying

Added methods:

	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);

Type Changed: GameplayKit.GKGraphNode

Added constructor:

	public GKGraphNode (Foundation.NSCoder coder);

Added interface:

	Foundation.INSCoding

Added method:

	public virtual void EncodeTo (Foundation.NSCoder encoder);

Type Changed: GameplayKit.GKGraphNode2D

Added constructor:

	public GKGraphNode2D (Foundation.NSCoder coder);

Added interface:

	Foundation.INSCoding

Type Changed: GameplayKit.GKGridGraph

Added constructors:

	public GKGridGraph (Foundation.NSCoder coder);
	public GKGridGraph (OpenTK.Vector2i position, int width, int height, bool diagonalsAllowed, ObjCRuntime.Class aClass);
	public GKGridGraph (OpenTK.Vector2i position, int width, int height, bool diagonalsAllowed, System.Type nodeType);

Added interfaces:

	Foundation.INSCoding
	Foundation.INSCopying

Added methods:

	public static GKGridGraph FromGridStartingAt (OpenTK.Vector2i position, int width, int height, bool diagonalsAllowed, ObjCRuntime.Class aClass);
	public static GKGridGraph FromGridStartingAt (OpenTK.Vector2i position, int width, int height, bool diagonalsAllowed, System.Type type);
	public virtual ObjCRuntime.Class GetClassForGenericArgument (uint index);
	public NodeType GetNodeAt<NodeType> (OpenTK.Vector2i position);
	public System.Type GetTypeForGenericArgument (uint index);

Type Changed: GameplayKit.GKGridGraphNode

Added constructor:

	public GKGridGraphNode (Foundation.NSCoder coder);

Added interface:

	Foundation.INSCoding

Type Changed: GameplayKit.GKObstacleGraph

Added constructor:

	public GKObstacleGraph (Foundation.NSCoder coder);

Added interfaces:

	Foundation.INSCoding
	Foundation.INSCopying

Added methods:

	public virtual ObjCRuntime.Class GetClassForGenericArgument (uint index);
	public System.Type GetTypeForGenericArgument (uint index);

Type Changed: GameplayKit.GKPath

Added constructors:

	public GKPath (GKGraphNode[] nodes, float radius);
	public GKPath (OpenTK.Vector3[] points, float radius, bool cyclical);

Added methods:

	public static GKPath FromGraphNodes (GKGraphNode[] nodes, float radius);
	public static GKPath FromPoints (OpenTK.Vector3[] points, float radius, bool cyclical);
	public virtual OpenTK.Vector2 GetVector2Point (uint index);
	public virtual OpenTK.Vector3 GetVector3Point (uint index);

Type Changed: GameplayKit.GKPolygonObstacle

Added constructor:

	public GKPolygonObstacle (Foundation.NSCoder coder);

Added interface:

	Foundation.INSCoding

Added method:

	public virtual void EncodeTo (Foundation.NSCoder encoder);

Type Changed: GameplayKit.GKQuadTree

Added constructor:

	public GKQuadTree (GKQuad quad, float minCellSize);

Obsoleted methods:

[Obsolete ("Use constructor with the same signature")] public static GKQuadTree QuadTreeWithMinPosition (OpenTK.Vector2 min, OpenTK.Vector2 max, float minCellSize);

Added methods:

	public virtual GKQuadTreeNode AddElement (Foundation.NSObject element, GKQuad quad);
	public virtual GKQuadTreeNode AddElement (Foundation.NSObject element, OpenTK.Vector2 point);
	public static GKQuadTree FromBoundingQuad (GKQuad quad, float minCellSize);
	public virtual Foundation.NSObject[] GetElements (GKQuad quad);
	public virtual Foundation.NSObject[] GetElements (OpenTK.Vector2 point);
	public virtual bool RemoveElement (Foundation.NSObject element);
	public virtual bool RemoveElement (Foundation.NSObject data, GKQuadTreeNode node);

Type Changed: GameplayKit.GKQuadTreeNode

Obsoleted constructors:

[Obsolete ("Valid instance of this type cannot be directly created")] public GKQuadTreeNode ();

Added property:

	public virtual GKQuad Quad { get; }

Type Changed: GameplayKit.GKState

Modified methods:

public virtual void Update (double seconds deltaTimeInSeconds)

Type Changed: GameplayKit.GKStateMachine

Modified methods:

public virtual void Update (double seconds deltaTimeInSeconds)

New Type GameplayKit.GKAgent3D

public class GKAgent3D : GameplayKit.GKAgent, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKAgent3D ();
	public GKAgent3D (Foundation.NSCoder coder);
	protected GKAgent3D (Foundation.NSObjectFlag t);
	protected GKAgent3D (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual OpenTK.Vector3 Position { get; set; }
	public virtual bool RightHanded { get; set; }
	public virtual OpenTK.Matrix3 Rotation { get; set; }
	public virtual OpenTK.Vector3 Velocity { get; }
	// methods
	public virtual void Update (double deltaTimeInSeconds);
}

New Type GameplayKit.GKBillowNoiseSource

public class GKBillowNoiseSource : GameplayKit.GKCoherentNoiseSource, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKBillowNoiseSource (Foundation.NSObjectFlag t);
	protected GKBillowNoiseSource (IntPtr handle);
	public GKBillowNoiseSource (double frequency, nint octaveCount, double persistence, double lacunarity, int seed);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual double Persistence { get; set; }
	// methods
	public static GKBillowNoiseSource Create (double frequency, nint octaveCount, double persistence, double lacunarity, int seed);
}

New Type GameplayKit.GKBox

public struct GKBox {
	// fields
	public OpenTK.Vector3 Max;
	public OpenTK.Vector3 Min;
}

New Type GameplayKit.GKCheckerboardNoiseSource

public class GKCheckerboardNoiseSource : GameplayKit.GKNoiseSource, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKCheckerboardNoiseSource (Foundation.NSObjectFlag t);
	public GKCheckerboardNoiseSource (double squareSize);
	protected GKCheckerboardNoiseSource (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual double SquareSize { get; set; }
	// methods
	public static GKCheckerboardNoiseSource Create (double squareSize);
}

New Type GameplayKit.GKCoherentNoiseSource

public abstract class GKCoherentNoiseSource : GameplayKit.GKNoiseSource, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKCoherentNoiseSource ();
	protected GKCoherentNoiseSource (Foundation.NSObjectFlag t);
	protected GKCoherentNoiseSource (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual double Frequency { get; set; }
	public virtual double Lacunarity { get; set; }
	public virtual nint OctaveCount { get; set; }
	public virtual int Seed { get; set; }
}

New Type GameplayKit.GKCompositeBehavior

public class GKCompositeBehavior : GameplayKit.GKBehavior, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKCompositeBehavior ();
	protected GKCompositeBehavior (Foundation.NSObjectFlag t);
	protected GKCompositeBehavior (IntPtr handle);
	// properties
	public virtual nint BehaviorCount { get; }
	public override IntPtr ClassHandle { get; }
	public Foundation.NSNumber Item { get; set; }
	public GKBehavior Item { get; }
	// methods
	public static GKCompositeBehavior FromBehaviors (GKBehavior[] behaviors);
	public static GKCompositeBehavior FromBehaviors (GKBehavior[] behaviors, Foundation.NSNumber[] weights);
	public virtual float GetWeight (GKBehavior behavior);
	public virtual void RemoveAllBehaviors ();
	public virtual void RemoveBehavior (GKBehavior behavior);
	public virtual void SetWeight (float weight, GKBehavior behavior);
}

New Type GameplayKit.GKConstantNoiseSource

public class GKConstantNoiseSource : GameplayKit.GKNoiseSource, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKConstantNoiseSource (Foundation.NSObjectFlag t);
	public GKConstantNoiseSource (double value);
	protected GKConstantNoiseSource (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual double Value { get; set; }
	// methods
	public static GKConstantNoiseSource Create (double value);
}

New Type GameplayKit.GKCylindersNoiseSource

public class GKCylindersNoiseSource : GameplayKit.GKNoiseSource, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKCylindersNoiseSource (Foundation.NSObjectFlag t);
	public GKCylindersNoiseSource (double frequency);
	protected GKCylindersNoiseSource (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual double Frequency { get; set; }
	// methods
	public static GKCylindersNoiseSource Create (double frequency);
}

New Type GameplayKit.GKDecisionNode

public class GKDecisionNode : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKDecisionNode (Foundation.NSObjectFlag t);
	protected GKDecisionNode (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public virtual GKDecisionNode CreateBranch (Foundation.NSNumber value, Foundation.NSObject attribute);
	public virtual GKDecisionNode CreateBranch (Foundation.NSPredicate predicate, Foundation.NSObject attribute);
	public virtual GKDecisionNode CreateBranch (nint weight, Foundation.NSObject attribute);
}

New Type GameplayKit.GKDecisionTree

public class GKDecisionTree : Foundation.NSObject, Foundation.INSCoding, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKDecisionTree (Foundation.NSCoder coder);
	public GKDecisionTree (Foundation.NSObject attribute);
	protected GKDecisionTree (Foundation.NSObjectFlag t);
	protected GKDecisionTree (IntPtr handle);
	public GKDecisionTree (Foundation.NSArray<Foundation.NSObject>[] examples, Foundation.NSObject[] actions, Foundation.NSObject[] attributes);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual GKRandomSource RandomSource { get; set; }
	public virtual GKDecisionNode RootNode { get; }
	// methods
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public virtual Foundation.NSObject FindAction (Foundation.NSDictionary<Foundation.NSObject,Foundation.NSObject> answers);
}

New Type GameplayKit.GKGraphNode3D

public class GKGraphNode3D : GameplayKit.GKGraphNode, Foundation.INSCoding, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKGraphNode3D (Foundation.NSCoder coder);
	protected GKGraphNode3D (Foundation.NSObjectFlag t);
	public GKGraphNode3D (OpenTK.Vector3 point);
	protected GKGraphNode3D (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual OpenTK.Vector3 Position { get; set; }
	// methods
	public static GKGraphNode3D FromPoint (OpenTK.Vector3 point);
}

New Type GameplayKit.GKMeshGraphTriangulationMode

[Serializable]
[Flags]
public enum GKMeshGraphTriangulationMode {
	Centers = 2,
	EdgeMidpoints = 4,
	Vertices = 1,
}

New Type GameplayKit.GKMeshGraph`1

public class GKMeshGraph`1 : GameplayKit.GKGraph, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKMeshGraph`1 ();
	public GKMeshGraph`1 (Foundation.NSCoder coder);
	protected GKMeshGraph`1 (Foundation.NSObjectFlag t);
	protected GKMeshGraph`1 (IntPtr handle);
	public GKMeshGraph`1 (float bufferRadius, OpenTK.Vector2 min, OpenTK.Vector2 max);
	public GKMeshGraph`1 (float bufferRadius, OpenTK.Vector2 min, OpenTK.Vector2 max, ObjCRuntime.Class nodeClass);
	public GKMeshGraph`1 (float bufferRadius, OpenTK.Vector2 min, OpenTK.Vector2 max, System.Type nodeType);
	// properties
	public virtual float BufferRadius { get; }
	public override IntPtr ClassHandle { get; }
	public virtual GKPolygonObstacle[] Obstacles { get; }
	public virtual uint TriangleCount { get; }
	public virtual GKMeshGraphTriangulationMode TriangulationMode { get; set; }
	// methods
	public virtual void AddObstacles (GKPolygonObstacle[] obstacles);
	public virtual void ConnectNodeUsingObstacles (NodeType node);
	public static GameplayKit.GKMeshGraph<NodeType> FromBufferRadius (float bufferRadius, OpenTK.Vector2 min, OpenTK.Vector2 max);
	public static GameplayKit.GKMeshGraph<NodeType> FromBufferRadius (float bufferRadius, OpenTK.Vector2 min, OpenTK.Vector2 max, ObjCRuntime.Class nodeClass);
	public static GameplayKit.GKMeshGraph<NodeType> FromBufferRadius (float bufferRadius, OpenTK.Vector2 min, OpenTK.Vector2 max, System.Type nodeType);
	public virtual ObjCRuntime.Class GetClassForGenericArgument (uint index);
	public virtual GKTriangle GetTriangle (uint index);
	public System.Type GetTypeForGenericArgument (uint index);
	public virtual void RemoveObstacles (GKPolygonObstacle[] obstacles);
	public virtual void Triangulate ();
}

New Type GameplayKit.GKNoise

public class GKNoise : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKNoise ();
	protected GKNoise (Foundation.NSObjectFlag t);
	public GKNoise (GKNoiseSource noiseSource);
	protected GKNoise (IntPtr handle);
	public GKNoise (GKNoiseSource noiseSource, Foundation.NSDictionary<Foundation.NSNumber,UIKit.UIColor> gradientColors);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSDictionary<Foundation.NSNumber,UIKit.UIColor> GradientColors { get; set; }
	// methods
	public virtual void Add (GKNoise noise);
	public virtual void ApplyAbsoluteValue ();
	public virtual void ApplyTurbulence (double frequency, double power, int roughness, int seed);
	public virtual void Clamp (double lowerBound, double upperBound);
	public virtual void DisplaceX (GKNoise xDisplacementNoise, GKNoise yDisplacementNoise, GKNoise zDisplacementNoise);
	public static GKNoise FromComponentNoises (GKNoise[] noises, GKNoise selectionNoise);
	public static GKNoise FromComponentNoises (GKNoise[] noises, GKNoise selectionNoise, Foundation.NSNumber[] componentBoundaries, Foundation.NSNumber[] blendDistances);
	public static GKNoise FromNoiseSource (GKNoiseSource noiseSource);
	public static GKNoise FromNoiseSource (GKNoiseSource noiseSource, Foundation.NSDictionary<Foundation.NSNumber,UIKit.UIColor> gradientColors);
	public virtual void GetMaximum (GKNoise noise);
	public virtual void GetMinimum (GKNoise noise);
	public virtual float GetValue (OpenTK.Vector2 position);
	public virtual void Invert ();
	public virtual void Move (OpenTK.Vector3d delta);
	public virtual void Multiply (GKNoise noise);
	public virtual void RaiseToPower (GKNoise noise);
	public virtual void RaiseToPower (double power);
	public virtual void RemapValuesToCurve (Foundation.NSDictionary<Foundation.NSNumber,Foundation.NSNumber> controlPoints);
	public virtual void RemapValuesToTerraces (Foundation.NSNumber[] peakInputValues, bool inverted);
	public virtual void Rotate (OpenTK.Vector3d radians);
	public virtual void Scale (OpenTK.Vector3d factor);
}

New Type GameplayKit.GKNoiseMap

public class GKNoiseMap : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKNoiseMap ();
	protected GKNoiseMap (Foundation.NSObjectFlag t);
	public GKNoiseMap (GKNoise noise);
	protected GKNoiseMap (IntPtr handle);
	public GKNoiseMap (GKNoise noise, OpenTK.Vector2d size, OpenTK.Vector2d origin, OpenTK.Vector2i sampleCount, bool seamless);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual OpenTK.Vector2d Origin { get; }
	public virtual OpenTK.Vector2i SampleCount { get; }
	public virtual bool Seamless { get; }
	public virtual OpenTK.Vector2d Size { get; }
	// methods
	public static GKNoiseMap FromNoise (GKNoise noise);
	public static GKNoiseMap FromNoise (GKNoise noise, OpenTK.Vector2d size, OpenTK.Vector2d origin, OpenTK.Vector2i sampleCount, bool seamless);
	public virtual float GetInterpolatedValue (OpenTK.Vector2 position);
	public virtual float GetValue (OpenTK.Vector2i position);
	public virtual void SetValue (float value, OpenTK.Vector2i position);
}

New Type GameplayKit.GKNoiseSource

public abstract class GKNoiseSource : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKNoiseSource (Foundation.NSObjectFlag t);
	protected GKNoiseSource (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
}

New Type GameplayKit.GKObstacleGraph`1

public class GKObstacleGraph`1 : GameplayKit.GKObstacleGraph, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKObstacleGraph`1 (Foundation.NSCoder coder);
	public GKObstacleGraph`1 (GKPolygonObstacle[] obstacles, float bufferRadius);
	// methods
	public static GameplayKit.GKObstacleGraph<NodeType> FromObstacles (GKPolygonObstacle[] obstacles, float bufferRadius);
	public NodeType[] GetNodes (GKPolygonObstacle obstacle);
}

New Type GameplayKit.GKOctreeNode

public class GKOctreeNode : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKOctreeNode (Foundation.NSObjectFlag t);
	protected GKOctreeNode (IntPtr handle);
	// properties
	public virtual GKBox Box { get; }
	public override IntPtr ClassHandle { get; }
}

New Type GameplayKit.GKOctree`1

public class GKOctree`1 : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKOctree`1 ();
	protected GKOctree`1 (Foundation.NSObjectFlag t);
	protected GKOctree`1 (IntPtr handle);
	public GKOctree`1 (GKBox box, float minCellSize);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public virtual GKOctreeNode AddElement (ElementType element, GKBox box);
	public virtual GKOctreeNode AddElement (ElementType element, OpenTK.Vector3 point);
	public static GameplayKit.GKOctree<ElementType> FromBoundingBox (GKBox box, float minCellSize);
	public virtual ElementType[] GetElements (GKBox box);
	public virtual ElementType[] GetElements (OpenTK.Vector3 point);
	public virtual bool RemoveElement (ElementType element);
	public virtual bool RemoveElement (ElementType element, GKOctreeNode node);
}

New Type GameplayKit.GKPerlinNoiseSource

public class GKPerlinNoiseSource : GameplayKit.GKCoherentNoiseSource, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKPerlinNoiseSource (Foundation.NSObjectFlag t);
	protected GKPerlinNoiseSource (IntPtr handle);
	public GKPerlinNoiseSource (double frequency, nint octaveCount, double persistence, double lacunarity, int seed);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual double Persistence { get; set; }
	// methods
	public static GKPerlinNoiseSource Create (double frequency, nint octaveCount, double persistence, double lacunarity, int seed);
}

New Type GameplayKit.GKQuad

public struct GKQuad {
	// fields
	public OpenTK.Vector2 Max;
	public OpenTK.Vector2 Min;
}

New Type GameplayKit.GKRTreeSplitStrategy

[Serializable]
public enum GKRTreeSplitStrategy {
	Halve = 0,
	Linear = 1,
	Quadratic = 2,
	ReduceOverlap = 3,
}

New Type GameplayKit.GKRTree`1

public class GKRTree`1 : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKRTree`1 (Foundation.NSObjectFlag t);
	protected GKRTree`1 (IntPtr handle);
	public GKRTree`1 (uint maxNumberOfChildren);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual uint QueryReserve { get; set; }
	// methods
	public virtual void AddElement (ElementType element, OpenTK.Vector2 boundingRectMin, OpenTK.Vector2 boundingRectMax, GKRTreeSplitStrategy splitStrategy);
	public static GameplayKit.GKRTree<ElementType> FromMaxNumberOfChildren (uint maxNumberOfChildren);
	public virtual ElementType[] GetElements (OpenTK.Vector2 rectMin, OpenTK.Vector2 rectMax);
	public virtual void RemoveElement (ElementType element, OpenTK.Vector2 boundingRectMin, OpenTK.Vector2 boundingRectMax);
}

New Type GameplayKit.GKRidgedNoiseSource

public class GKRidgedNoiseSource : GameplayKit.GKCoherentNoiseSource, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKRidgedNoiseSource (Foundation.NSObjectFlag t);
	protected GKRidgedNoiseSource (IntPtr handle);
	public GKRidgedNoiseSource (double frequency, nint octaveCount, double lacunarity, int seed);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public static GKRidgedNoiseSource Create (double frequency, nint octaveCount, double lacunarity, int seed);
}

New Type GameplayKit.GKSKNodeComponent

public class GKSKNodeComponent : GameplayKit.GKComponent, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, IGKAgentDelegate, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKSKNodeComponent ();
	public GKSKNodeComponent (Foundation.NSCoder coder);
	protected GKSKNodeComponent (Foundation.NSObjectFlag t);
	public GKSKNodeComponent (SpriteKit.SKNode node);
	protected GKSKNodeComponent (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual SpriteKit.SKNode Node { get; set; }
	// methods
	public virtual void AgentDidUpdate (GKAgent agent);
	public virtual void AgentWillUpdate (GKAgent agent);
	public static GKSKNodeComponent FromNode (SpriteKit.SKNode node);
}

New Type GameplayKit.GKScene

public class GKScene : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public GKScene ();
	public GKScene (Foundation.NSCoder coder);
	protected GKScene (Foundation.NSObjectFlag t);
	protected GKScene (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual GKEntity[] Entities { get; }
	public virtual Foundation.NSDictionary<Foundation.NSString,GameplayKit.GKGraph> Graphs { get; }
	public virtual IGKSceneRootNodeType RootNode { get; set; }
	// methods
	public virtual void AddEntity (GKEntity entity);
	public virtual void AddGraph (GKGraph graph, string name);
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	protected override void Dispose (bool disposing);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public static GKScene FromFile (string filename);
	public virtual void RemoveEntity (GKEntity entity);
	public virtual void RemoveGraph (string name);
}

New Type GameplayKit.GKSphereObstacle

public class GKSphereObstacle : GameplayKit.GKObstacle, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKSphereObstacle (Foundation.NSObjectFlag t);
	protected GKSphereObstacle (IntPtr handle);
	public GKSphereObstacle (float radius);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual OpenTK.Vector3 Position { get; set; }
	public virtual float Radius { get; set; }
	// methods
	public static GKSphereObstacle FromRadius (float radius);
}

New Type GameplayKit.GKSpheresNoiseSource

public class GKSpheresNoiseSource : GameplayKit.GKNoiseSource, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKSpheresNoiseSource (Foundation.NSObjectFlag t);
	public GKSpheresNoiseSource (double frequency);
	protected GKSpheresNoiseSource (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual double Frequency { get; set; }
	// methods
	public static GKSpheresNoiseSource Create (double frequency);
}

New Type GameplayKit.GKTriangle

public struct GKTriangle {
	// properties
	public OpenTK.Vector3[] Points { get; set; }
}

New Type GameplayKit.GKVoronoiNoiseSource

public class GKVoronoiNoiseSource : GameplayKit.GKNoiseSource, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected GKVoronoiNoiseSource (Foundation.NSObjectFlag t);
	protected GKVoronoiNoiseSource (IntPtr handle);
	public GKVoronoiNoiseSource (double frequency, double displacement, bool distanceEnabled, int seed);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual double Displacement { get; set; }
	public virtual bool DistanceEnabled { get; set; }
	public virtual double Frequency { get; set; }
	public virtual int Seed { get; set; }
	// methods
	public static GKVoronoiNoiseSource Create (double frequency, double displacement, bool distanceEnabled, int seed);
}

New Type GameplayKit.IGKSceneRootNodeType

public interface IGKSceneRootNodeType : ObjCRuntime.INativeObject, System.IDisposable {
}

New Type GameplayKit.NSArray_GameplayKit

public static class NSArray_GameplayKit {
	// methods
	public static T[] GetShuffledArray<T> (Foundation.NSArray This);
	public static T[] GetShuffledArray<T> (Foundation.NSArray This, GKRandomSource randomSource);
}

New Type GameplayKit.SKNode_GameplayKit

public static class SKNode_GameplayKit {
	// methods
	public static GKEntity GetEntity (SpriteKit.SKNode This);
	public static void SetEntity (SpriteKit.SKNode This, GKEntity entity);
}

Namespace HealthKit

Type Changed: HealthKit.HKCategoryTypeIdentifier

Added value:

	MindfulSession = 7,

Type Changed: HealthKit.HKCategoryTypeIdentifierKey

Added property:

	public static Foundation.NSString MindfulSession { get; }

Type Changed: HealthKit.HKCategoryValueSleepAnalysis

Added value:

	Awake = 2,

Type Changed: HealthKit.HKCharacteristicTypeIdentifier

Added value:

	WheelchairUse = 4,

Type Changed: HealthKit.HKCharacteristicTypeIdentifierKey

Added property:

	public static Foundation.NSString WheelchairUse { get; }

Type Changed: HealthKit.HKCorrelationType

Added method:

	public static HKCorrelationType Create (HKCorrelationTypeIdentifier kind);

Type Changed: HealthKit.HKHealthStore

Added methods:

	public virtual Foundation.NSDateComponents GetDateOfBirthComponents (out Foundation.NSError error);
	public virtual HKWheelchairUseObject GetWheelchairUse (out Foundation.NSError error);
	public virtual void StartWatchApp (HKWorkoutConfiguration workoutConfiguration, System.Action<System.Boolean,Foundation.NSError> completion);
	public virtual System.Threading.Tasks.Task<System.Tuple<System.Boolean,Foundation.NSError>> StartWatchAppAsync (HKWorkoutConfiguration workoutConfiguration);

Type Changed: HealthKit.HKMetadata

Added properties:

	public Foundation.NSString LapLength { get; }
	public Foundation.NSString SwimmingLocationType { get; }
	public Foundation.NSString SwimmingStrokeStyle { get; }
	public HKWeatherCondition? WeatherCondition { get; }
	public HKQuantity WeatherHumidity { get; }
	public HKQuantity WeatherTemperature { get; }

Type Changed: HealthKit.HKMetadataKey

Added properties:

	public static Foundation.NSString LapLength { get; }
	public static Foundation.NSString SwimmingLocationType { get; }
	public static Foundation.NSString SwimmingStrokeStyle { get; }
	public static Foundation.NSString WeatherCondition { get; }
	public static Foundation.NSString WeatherHumidity { get; }
	public static Foundation.NSString WeatherTemperature { get; }

Type Changed: HealthKit.HKObjectType

Obsoleted methods:

[Obsolete ("Use HKCategoryType.Create (HKCategoryTypeIdentifier)")] public static HKCategoryType GetCategoryType (Foundation.NSString hkCategoryTypeIdentifier);
[Obsolete ("Use HKCharacteristicType.Create (HKCharacteristicTypeIdentifier)")] public static HKCharacteristicType GetCharacteristicType (Foundation.NSString hkCharacteristicTypeIdentifier);
[Obsolete ("Use HKCorrelationType.Create (HKCorrelationTypeIdentifier)")] public static HKCorrelationType GetCorrelationType (Foundation.NSString hkCorrelationTypeIdentifier);
[Obsolete ("Use HKQuantityType.Create (HKQuantityTypeIdentifier)")] public static HKQuantityType GetQuantityType (Foundation.NSString hkTypeIdentifier);

Type Changed: HealthKit.HKPredicateKeyPath

Added properties:

	public static Foundation.NSString CdaAuthorName { get; }
	public static Foundation.NSString CdaCustodianName { get; }
	public static Foundation.NSString CdaPatientName { get; }
	public static Foundation.NSString CdaTitle { get; }
	public static Foundation.NSString WorkoutTotalSwimmingStrokeCount { get; }

Type Changed: HealthKit.HKQuantityTypeIdentifier

Added values:

	AppleExerciseTime = 68,
	DistanceSwimming = 71,
	DistanceWheelchair = 69,
	ElectrodermalActivity = 67,
	PushCount = 70,
	SwimmingStrokeCount = 72,

Type Changed: HealthKit.HKQuantityTypeIdentifierKey

Added properties:

	public static Foundation.NSString DistanceSwimming { get; }
	public static Foundation.NSString DistanceWheelchair { get; }
	public static Foundation.NSString PushCount { get; }
	public static Foundation.NSString SwimmingStrokeCount { get; }

Type Changed: HealthKit.HKQuery

Added method:

	public static Foundation.NSPredicate GetPredicateForTotalSwimmingStrokeCount (Foundation.NSPredicateOperatorType operatorType, HKQuantity totalSwimmingStrokeCount);

Type Changed: HealthKit.HKWorkout

Added properties:

	public static Foundation.NSString SortIdentifierTotalSwimmingStrokeCount { get; }
	public virtual HKQuantity TotalSwimmingStrokeCount { get; }

Added methods:

	public static HKWorkout Create (HKWorkoutActivityType workoutActivityType, Foundation.NSDate startDate, Foundation.NSDate endDate, HKWorkoutEvent[] workoutEvents, HKQuantity totalEnergyBurned, HKQuantity totalDistance, HKQuantity totalSwimmingStrokeCount, HKDevice device, Foundation.NSDictionary metadata);
	public static HKWorkout Create (HKWorkoutActivityType workoutActivityType, Foundation.NSDate startDate, Foundation.NSDate endDate, HKWorkoutEvent[] workoutEvents, HKQuantity totalEnergyBurned, HKQuantity totalDistance, HKQuantity totalSwimmingStrokeCount, HKDevice device, HKMetadata metadata);

Type Changed: HealthKit.HKWorkoutActivityType

Added values:

	Barre = 58,
	CoreTraining = 59,
	CrossCountrySkiing = 60,
	DownhillSkiing = 61,
	Flexibility = 62,
	HighIntensityIntervalTraining = 63,
	JumpRope = 64,
	Kickboxing = 65,
	Pilates = 66,
	Snowboarding = 67,
	Stairs = 68,
	StepTraining = 69,
	WheelchairRunPace = 71,
	WheelchairWalkPace = 70,

Type Changed: HealthKit.HKWorkoutEvent

Added interface:

	Foundation.INSCopying

Added properties:

	public HKMetadata Metadata { get; }
	public virtual Foundation.NSDictionary WeakMetadata { get; }

Added methods:

	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static HKWorkoutEvent Create (HKWorkoutEventType type, Foundation.NSDate date, Foundation.NSDictionary metadata);
	public static HKWorkoutEvent Create (HKWorkoutEventType type, Foundation.NSDate date, HKMetadata metadata);

Type Changed: HealthKit.HKWorkoutEventType

Added values:

	Lap = 3,
	Marker = 4,
	MotionPaused = 5,
	MotionResumed = 6,

New Type HealthKit.HKCdaDocument

public class HKCdaDocument : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected HKCdaDocument (Foundation.NSObjectFlag t);
	protected HKCdaDocument (IntPtr handle);
	// properties
	public virtual string AuthorName { get; }
	public override IntPtr ClassHandle { get; }
	public virtual string CustodianName { get; }
	public virtual Foundation.NSData DocumentData { get; }
	public virtual string PatientName { get; }
	public virtual string Title { get; }
}

New Type HealthKit.HKCdaDocumentSample

public class HKCdaDocumentSample : HealthKit.HKDocumentSample, Foundation.INSCoding, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public HKCdaDocumentSample (Foundation.NSCoder coder);
	protected HKCdaDocumentSample (Foundation.NSObjectFlag t);
	protected HKCdaDocumentSample (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual HKCdaDocument Document { get; }
	// methods
	public static HKCdaDocumentSample Create (Foundation.NSData documentData, Foundation.NSDate startDate, Foundation.NSDate endDate, Foundation.NSDictionary metadata, out Foundation.NSError validationError);
	public static HKCdaDocumentSample Create (Foundation.NSData documentData, Foundation.NSDate startDate, Foundation.NSDate endDate, HKMetadata metadata, out Foundation.NSError validationError);
}

New Type HealthKit.HKCorrelationTypeIdentifier

[Serializable]
public enum HKCorrelationTypeIdentifier {
	BloodPressure = 0,
	Food = 1,
}

New Type HealthKit.HKDetailedCdaErrors

public class HKDetailedCdaErrors : Foundation.DictionaryContainer {
	// constructors
	public HKDetailedCdaErrors ();
	public HKDetailedCdaErrors (Foundation.NSDictionary dictionary);
	// properties
	public Foundation.NSString ValidationError { get; }
}

New Type HealthKit.HKDocumentQuery

public class HKDocumentQuery : HealthKit.HKQuery, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected HKDocumentQuery (Foundation.NSObjectFlag t);
	protected HKDocumentQuery (IntPtr handle);
	public HKDocumentQuery (HKDocumentType documentType, Foundation.NSPredicate predicate, uint limit, Foundation.NSSortDescriptor[] sortDescriptors, bool includeDocumentData, System.Action<HKDocumentQuery,HealthKit.HKDocumentSample[],System.Boolean,Foundation.NSError> resultsHandler);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual bool IncludeDocumentData { get; }
	public virtual uint Limit { get; }
	public virtual Foundation.NSSortDescriptor[] SortDescriptors { get; }
}

New Type HealthKit.HKDocumentSample

public abstract class HKDocumentSample : HealthKit.HKSample, Foundation.INSCoding, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected HKDocumentSample (Foundation.NSCoder coder);
	protected HKDocumentSample (Foundation.NSObjectFlag t);
	protected HKDocumentSample (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual HKDocumentType DocumentType { get; }
}

New Type HealthKit.HKDocumentType

public class HKDocumentType : HealthKit.HKSampleType, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public HKDocumentType (Foundation.NSCoder coder);
	protected HKDocumentType (Foundation.NSObjectFlag t);
	protected HKDocumentType (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public static HKDocumentType Create (HKDocumentTypeIdentifier kind);
}

New Type HealthKit.HKDocumentTypeIdentifier

[Serializable]
public enum HKDocumentTypeIdentifier {
	Cda = 0,
}

New Type HealthKit.HKDocumentTypeIdentifierExtensions

public static class HKDocumentTypeIdentifierExtensions {
	// methods
	public static Foundation.NSString GetConstant (HKDocumentTypeIdentifier self);
	public static HKDocumentTypeIdentifier GetValue (Foundation.NSString constant);
}

New Type HealthKit.HKSwimmingStrokeStyle

[Serializable]
public enum HKSwimmingStrokeStyle {
	Backstroke = 3,
	Breaststroke = 4,
	Butterfly = 5,
	Freestyle = 2,
	Mixed = 1,
	Unknown = 0,
}

New Type HealthKit.HKWeatherCondition

[Serializable]
public enum HKWeatherCondition {
	Blustery = 9,
	Clear = 1,
	Cloudy = 5,
	Drizzle = 21,
	Dust = 11,
	Fair = 2,
	Foggy = 6,
	FreezingDrizzle = 15,
	FreezingRain = 16,
	Hail = 13,
	Haze = 7,
	Hurricane = 26,
	MixedRainAndHail = 17,
	MixedRainAndSleet = 19,
	MixedRainAndSnow = 18,
	MixedSnowAndSleet = 20,
	MostlyCloudy = 4,
	None = 0,
	PartlyCloudy = 3,
	ScatteredShowers = 22,
	Showers = 23,
	Sleet = 14,
	Smoky = 10,
	Snow = 12,
	Thunderstorms = 24,
	Tornado = 27,
	TropicalStorm = 25,
	Windy = 8,
}

New Type HealthKit.HKWheelchairUse

[Serializable]
public enum HKWheelchairUse {
	No = 1,
	NotSet = 0,
	Yes = 2,
}

New Type HealthKit.HKWheelchairUseObject

public class HKWheelchairUseObject : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public HKWheelchairUseObject ();
	public HKWheelchairUseObject (Foundation.NSCoder coder);
	protected HKWheelchairUseObject (Foundation.NSObjectFlag t);
	protected HKWheelchairUseObject (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual HKWheelchairUse WheelchairUse { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type HealthKit.HKWorkoutConfiguration

public class HKWorkoutConfiguration : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public HKWorkoutConfiguration ();
	public HKWorkoutConfiguration (Foundation.NSCoder coder);
	protected HKWorkoutConfiguration (Foundation.NSObjectFlag t);
	protected HKWorkoutConfiguration (IntPtr handle);
	// properties
	public virtual HKWorkoutActivityType ActivityType { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual HKQuantity LapLength { get; set; }
	public virtual HKWorkoutSessionLocationType LocationType { get; set; }
	public virtual HKWorkoutSwimmingLocationType SwimmingLocationType { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type HealthKit.HKWorkoutSessionLocationType

[Serializable]
public enum HKWorkoutSessionLocationType {
	Indoor = 2,
	Outdoor = 3,
	Unknown = 1,
}

New Type HealthKit.HKWorkoutSwimmingLocationType

[Serializable]
public enum HKWorkoutSwimmingLocationType {
	OpenWater = 2,
	Pool = 1,
	Unknown = 0,
}

Namespace HealthKitUI

Type Changed: HealthKitUI.HKActivityRingView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	UIKit.IUIFocusItem

Namespace HomeKit

Type Changed: HomeKit.HMAccessory

Added property:

	public virtual HMCameraProfile[] CameraProfiles { get; }

Type Changed: HomeKit.HMAccessoryCategoryType

Obsoleted fields:

[Obsolete ("Use GarageDoorOpener instead")] DoorOpener = 6,

Added values:

	GarageDoorOpener = 6,
	IPCamera = 16,
	RangeExtender = 15,
	VideoDoorbell = 17,

Type Changed: HomeKit.HMActionSet

Added property:

	public virtual Foundation.NSDate LastExecutionDate { get; }

Type Changed: HomeKit.HMActionSetType

Added value:

	TriggerOwned = 5,

Type Changed: HomeKit.HMCharacteristicMetadata

Added property:

	public virtual Foundation.NSNumber[] ValidValues { get; }

Type Changed: HomeKit.HMCharacteristicMetadataUnits

Added values:

	MicrogramsPerCubicMeter = 8,
	PartsPerMillion = 7,

Type Changed: HomeKit.HMCharacteristicType

Added values:

	DigitalZoom = 82,
	ImageMirroring = 84,
	ImageRotation = 83,
	Mute = 79,
	NightVision = 80,
	OpticalZoom = 81,
	SelectedStreamConfiguration = 77,
	SetupStreamEndpoint = 73,
	StreamingStatus = 72,
	SupportedAudioStreamConfiguration = 75,
	SupportedRtpConfiguration = 76,
	SupportedVideoStreamConfiguration = 74,
	Volume = 78,

Type Changed: HomeKit.HMError

Added values:

	BridgedAccessoryNotReachable = 88,
	InvalidOrMissingAuthorizationData = 87,
	NotAuthorizedForMicrophoneAccess = 89,

Type Changed: HomeKit.HMHome

Added methods:

	public virtual void AddAndSetupAccessories (System.Action<Foundation.NSError> completion);
	public virtual System.Threading.Tasks.Task AddAndSetupAccessoriesAsync ();

Type Changed: HomeKit.HMService

Added properties:

	public virtual HMService[] LinkedServices { get; }
	public virtual bool PrimaryService { get; }

Type Changed: HomeKit.HMServiceType

Added values:

	CameraControl = 29,
	CameraRtpStreamManagement = 28,
	Doorbell = 32,
	Microphone = 30,
	Speaker = 31,

New Type HomeKit.HMAccessoryProfile

public class HMAccessoryProfile : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected HMAccessoryProfile (Foundation.NSObjectFlag t);
	protected HMAccessoryProfile (IntPtr handle);
	// properties
	public virtual HMAccessory Accessory { get; }
	public override IntPtr ClassHandle { get; }
	public virtual HMService[] Services { get; }
	public virtual Foundation.NSUuid UniqueIdentifier { get; }
	// methods
	protected override void Dispose (bool disposing);
}

New Type HomeKit.HMCameraAudioControl

public class HMCameraAudioControl : HomeKit.HMCameraControl, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected HMCameraAudioControl (Foundation.NSObjectFlag t);
	protected HMCameraAudioControl (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual HMCharacteristic Mute { get; }
	public virtual HMCharacteristic Volume { get; }
}

New Type HomeKit.HMCameraAudioStreamSetting

[Serializable]
public enum HMCameraAudioStreamSetting {
	BidirectionalAudioAllowed = 3,
	IncomingAudioAllowed = 2,
	Muted = 1,
}

New Type HomeKit.HMCameraControl

public class HMCameraControl : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public HMCameraControl ();
	protected HMCameraControl (Foundation.NSObjectFlag t);
	protected HMCameraControl (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
}

New Type HomeKit.HMCameraProfile

public class HMCameraProfile : HomeKit.HMAccessoryProfile, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected HMCameraProfile (Foundation.NSObjectFlag t);
	protected HMCameraProfile (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual HMCameraAudioControl MicrophoneControl { get; }
	public virtual HMCameraSettingsControl SettingsControl { get; }
	public virtual HMCameraSnapshotControl SnapshotControl { get; }
	public virtual HMCameraAudioControl SpeakerControl { get; }
	public virtual HMCameraStreamControl StreamControl { get; }
}

New Type HomeKit.HMCameraSettingsControl

public class HMCameraSettingsControl : HomeKit.HMCameraControl, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected HMCameraSettingsControl (Foundation.NSObjectFlag t);
	protected HMCameraSettingsControl (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual HMCharacteristic CurrentHorizontalTilt { get; }
	public virtual HMCharacteristic CurrentVerticalTilt { get; }
	public virtual HMCharacteristic DigitalZoom { get; }
	public virtual HMCharacteristic ImageMirroring { get; }
	public virtual HMCharacteristic ImageRotation { get; }
	public virtual HMCharacteristic NightVision { get; }
	public virtual HMCharacteristic OpticalZoom { get; }
	public virtual HMCharacteristic TargetHorizontalTilt { get; }
	public virtual HMCharacteristic TargetVerticalTilt { get; }
}

New Type HomeKit.HMCameraSnapshot

public class HMCameraSnapshot : HomeKit.HMCameraSource, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public HMCameraSnapshot ();
	protected HMCameraSnapshot (Foundation.NSObjectFlag t);
	protected HMCameraSnapshot (IntPtr handle);
	// properties
	public virtual Foundation.NSDate CaptureDate { get; }
	public override IntPtr ClassHandle { get; }
}

New Type HomeKit.HMCameraSnapshotControl

public class HMCameraSnapshotControl : HomeKit.HMCameraControl, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public HMCameraSnapshotControl ();
	protected HMCameraSnapshotControl (Foundation.NSObjectFlag t);
	protected HMCameraSnapshotControl (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual IHMCameraSnapshotControlDelegate Delegate { get; set; }
	public virtual HMCameraSnapshot MostRecentSnapshot { get; }
	// methods
	protected override void Dispose (bool disposing);
	public virtual void TakeSnapshot ();
}

New Type HomeKit.HMCameraSnapshotControlDelegate

public class HMCameraSnapshotControlDelegate : Foundation.NSObject, Foundation.INSObjectProtocol, IHMCameraSnapshotControlDelegate, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public HMCameraSnapshotControlDelegate ();
	protected HMCameraSnapshotControlDelegate (Foundation.NSObjectFlag t);
	protected HMCameraSnapshotControlDelegate (IntPtr handle);
	// methods
	public virtual void DidTakeSnapshot (HMCameraSnapshotControl cameraSnapshotControl, HMCameraSnapshot snapshot, Foundation.NSError error);
}

New Type HomeKit.HMCameraSnapshotControlDelegate_Extensions

public static class HMCameraSnapshotControlDelegate_Extensions {
	// methods
	public static void DidTakeSnapshot (IHMCameraSnapshotControlDelegate This, HMCameraSnapshotControl cameraSnapshotControl, HMCameraSnapshot snapshot, Foundation.NSError error);
}

New Type HomeKit.HMCameraSource

public abstract class HMCameraSource : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected HMCameraSource ();
	protected HMCameraSource (Foundation.NSObjectFlag t);
	protected HMCameraSource (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
}

New Type HomeKit.HMCameraStream

public class HMCameraStream : HomeKit.HMCameraSource, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public HMCameraStream ();
	protected HMCameraStream (Foundation.NSObjectFlag t);
	protected HMCameraStream (IntPtr handle);
	// properties
	public virtual HMCameraAudioStreamSetting AudioStreamSetting { get; }
	public override IntPtr ClassHandle { get; }
	// methods
	public virtual void UpdateAudioStreamSetting (HMCameraAudioStreamSetting audioStreamSetting, System.Action<Foundation.NSError> completion);
	public virtual System.Threading.Tasks.Task UpdateAudioStreamSettingAsync (HMCameraAudioStreamSetting audioStreamSetting);
}

New Type HomeKit.HMCameraStreamControl

public class HMCameraStreamControl : HomeKit.HMCameraControl, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public HMCameraStreamControl ();
	protected HMCameraStreamControl (Foundation.NSObjectFlag t);
	protected HMCameraStreamControl (IntPtr handle);
	// properties
	public virtual HMCameraStream CameraStream { get; }
	public override IntPtr ClassHandle { get; }
	public virtual IHMCameraStreamControlDelegate Delegate { get; set; }
	public virtual HMCameraStreamState StreamState { get; }
	// methods
	protected override void Dispose (bool disposing);
	public virtual void StartStream ();
	public virtual void StopStream ();
}

New Type HomeKit.HMCameraStreamControlDelegate

public class HMCameraStreamControlDelegate : Foundation.NSObject, Foundation.INSObjectProtocol, IHMCameraStreamControlDelegate, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public HMCameraStreamControlDelegate ();
	protected HMCameraStreamControlDelegate (Foundation.NSObjectFlag t);
	protected HMCameraStreamControlDelegate (IntPtr handle);
	// methods
	public virtual void DidStartStream (HMCameraStreamControl cameraStreamControl);
	public virtual void DidStopStream (HMCameraStreamControl cameraStreamControl, Foundation.NSError error);
}

New Type HomeKit.HMCameraStreamControlDelegate_Extensions

public static class HMCameraStreamControlDelegate_Extensions {
	// methods
	public static void DidStartStream (IHMCameraStreamControlDelegate This, HMCameraStreamControl cameraStreamControl);
	public static void DidStopStream (IHMCameraStreamControlDelegate This, HMCameraStreamControl cameraStreamControl, Foundation.NSError error);
}

New Type HomeKit.HMCameraStreamState

[Serializable]
public enum HMCameraStreamState {
	NotStreaming = 4,
	Starting = 1,
	Stopping = 3,
	Streaming = 2,
}

New Type HomeKit.HMCameraView

public class HMCameraView : UIKit.UIView, CoreAnimation.ICALayerDelegate, Foundation.INSCoding, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.Collections.IEnumerable, System.IDisposable, System.IEquatable<Foundation.NSObject>, UIKit.IUIAccessibilityIdentification, UIKit.IUIAppearance, UIKit.IUIAppearanceContainer, UIKit.IUICoordinateSpace, UIKit.IUIDynamicItem, UIKit.IUIFocusEnvironment, UIKit.IUIFocusItem, UIKit.IUITraitEnvironment {
	// constructors
	public HMCameraView ();
	public HMCameraView (CoreGraphics.CGRect frame);
	public HMCameraView (Foundation.NSCoder coder);
	protected HMCameraView (Foundation.NSObjectFlag t);
	protected HMCameraView (IntPtr handle);
	// properties
	public static HMCameraView.HMCameraViewAppearance Appearance { get; }
	public virtual HMCameraSource CameraSource { get; set; }
	public override IntPtr ClassHandle { get; }
	// methods
	public static HMCameraView.HMCameraViewAppearance AppearanceWhenContainedIn (System.Type[] containers);
	public static HMCameraView.HMCameraViewAppearance GetAppearance<T> ();
	public static HMCameraView.HMCameraViewAppearance GetAppearance<T> (UIKit.UITraitCollection traits);
	public static HMCameraView.HMCameraViewAppearance GetAppearance (UIKit.UITraitCollection traits);
	public static HMCameraView.HMCameraViewAppearance GetAppearance<T> (UIKit.UITraitCollection traits, System.Type[] containers);
	public static HMCameraView.HMCameraViewAppearance GetAppearance (UIKit.UITraitCollection traits, System.Type[] containers);

	// inner types
	public class HMCameraViewAppearance : UIKit.UIView+UIViewAppearance, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject>, UIKit.IUIAppearance {
		// constructors
		protected HMCameraView (IntPtr handle);
	}
}

New Type HomeKit.HMCharacteristicValueBatteryStatus

[Serializable]
public enum HMCharacteristicValueBatteryStatus {
	Low = 1,
	Normal = 0,
}

New Type HomeKit.HMCharacteristicValueCarbonDioxideDetectionStatus

[Serializable]
public enum HMCharacteristicValueCarbonDioxideDetectionStatus {
	Detected = 1,
	NotDetected = 0,
}

New Type HomeKit.HMCharacteristicValueCarbonMonoxideDetectionStatus

[Serializable]
public enum HMCharacteristicValueCarbonMonoxideDetectionStatus {
	Detected = 1,
	NotDetected = 0,
}

New Type HomeKit.HMCharacteristicValueChargingState

[Serializable]
public enum HMCharacteristicValueChargingState {
	InProgress = 1,
	None = 0,
}

New Type HomeKit.HMCharacteristicValueContactState

[Serializable]
public enum HMCharacteristicValueContactState {
	Detected = 1,
	None = 0,
}

New Type HomeKit.HMCharacteristicValueJammedStatus

[Serializable]
public enum HMCharacteristicValueJammedStatus {
	Jammed = 1,
	None = 0,
}

New Type HomeKit.HMCharacteristicValueLeakStatus

[Serializable]
public enum HMCharacteristicValueLeakStatus {
	Detected = 1,
	None = 0,
}

New Type HomeKit.HMCharacteristicValueOccupancyStatus

[Serializable]
public enum HMCharacteristicValueOccupancyStatus {
	NotOccupied = 0,
	Occupied = 1,
}

New Type HomeKit.HMCharacteristicValueSecuritySystemAlarmType

[Serializable]
public enum HMCharacteristicValueSecuritySystemAlarmType {
	NoAlarm = 0,
	Unknown = 1,
}

New Type HomeKit.HMCharacteristicValueSmokeDetectionStatus

[Serializable]
public enum HMCharacteristicValueSmokeDetectionStatus {
	Detected = 1,
	None = 0,
}

New Type HomeKit.HMCharacteristicValueStatusFault

[Serializable]
public enum HMCharacteristicValueStatusFault {
	GeneralFault = 1,
	NoFault = 0,
}

New Type HomeKit.HMCharacteristicValueTamperedStatus

[Serializable]
public enum HMCharacteristicValueTamperedStatus {
	None = 0,
	Tampered = 1,
}

New Type HomeKit.IHMCameraSnapshotControlDelegate

public interface IHMCameraSnapshotControlDelegate : ObjCRuntime.INativeObject, System.IDisposable {
}

New Type HomeKit.IHMCameraStreamControlDelegate

public interface IHMCameraStreamControlDelegate : ObjCRuntime.INativeObject, System.IDisposable {
}

Namespace ImageIO

Type Changed: ImageIO.CGImageDestinationOptions

Added property:

	public bool? OptimizeColorForSharing { get; set; }

Type Changed: ImageIO.CGImageDestinationOptionsKeys

Added property:

	public static Foundation.NSString OptimizeColorForSharing { get; }

Type Changed: ImageIO.CGImageProperties

Added properties:

	public static Foundation.NSString DNGAsShotNeutral { get; }
	public static Foundation.NSString DNGAsShotWhiteXY { get; }
	public static Foundation.NSString DNGBaselineExposure { get; }
	public static Foundation.NSString DNGBaselineNoise { get; }
	public static Foundation.NSString DNGBaselineSharpness { get; }
	public static Foundation.NSString DNGBlackLevel { get; }
	public static Foundation.NSString DNGCalibrationIlluminant1 { get; }
	public static Foundation.NSString DNGCalibrationIlluminant2 { get; }
	public static Foundation.NSString DNGCameraCalibration1 { get; }
	public static Foundation.NSString DNGCameraCalibration2 { get; }
	public static Foundation.NSString DNGCameraCalibrationSignature { get; }
	public static Foundation.NSString DNGColorMatrix1 { get; }
	public static Foundation.NSString DNGColorMatrix2 { get; }
	public static Foundation.NSString DNGFixVignetteRadial { get; }
	public static Foundation.NSString DNGNoiseProfile { get; }
	public static Foundation.NSString DNGPrivateData { get; }
	public static Foundation.NSString DNGProfileCalibrationSignature { get; }
	public static Foundation.NSString DNGWarpFisheye { get; }
	public static Foundation.NSString DNGWarpRectilinear { get; }
	public static Foundation.NSString DNGWhiteLevel { get; }

Namespace LocalAuthentication

Type Changed: LocalAuthentication.LAAccessControlOperation

Added values:

	UseKeyDecrypt = 4,
	UseKeyKeyExchange = 5,

Type Changed: LocalAuthentication.LAContext

Added property:

	public virtual string LocalizedCancelTitle { get; set; }

New Type LocalAuthentication.LAStatusExtensions

public static class LAStatusExtensions {
	// methods
	public static Foundation.NSString GetDomain (LAStatus self);
}

Namespace MapKit

Type Changed: MapKit.MKAnnotationView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	UIKit.IUIFocusItem

Type Changed: MapKit.MKCircleView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	UIKit.IUIFocusItem

Type Changed: MapKit.MKCoordinateRegion

Added method:

	public override string ToString ();

Type Changed: MapKit.MKCoordinateSpan

Added method:

	public override string ToString ();

Type Changed: MapKit.MKDirectionsMode

Added value:

	Default = 3,

Type Changed: MapKit.MKMapView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	UIKit.IUIFocusItem

Type Changed: MapKit.MKOverlayPathView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	UIKit.IUIFocusItem

Type Changed: MapKit.MKOverlayView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	UIKit.IUIFocusItem

Type Changed: MapKit.MKPinAnnotationView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	UIKit.IUIFocusItem

Type Changed: MapKit.MKPlacemark

Added constructors:

	public MKPlacemark (CoreLocation.CLLocationCoordinate2D coordinate);
	public MKPlacemark (CoreLocation.CLLocationCoordinate2D coordinate, Contacts.CNPostalAddress postalAddress);

Type Changed: MapKit.MKPolygonView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	UIKit.IUIFocusItem

Type Changed: MapKit.MKPolylineView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	UIKit.IUIFocusItem

New Type MapKit.NSUserActivity_MKMapItem

public static class NSUserActivity_MKMapItem {
	// methods
	public static MKMapItem GetMapItem (Foundation.NSUserActivity This);
	public static void SetMapItem (Foundation.NSUserActivity This, MKMapItem item);
}

Namespace MediaPlayer

Type Changed: MediaPlayer.MPChangeLanguageOptionCommandEvent

Added property:

	public virtual MPChangeLanguageOptionSetting Setting { get; }

Type Changed: MediaPlayer.MPContentItem

Added properties:

	public virtual bool ExplicitContent { get; set; }
	public virtual bool StreamingContent { get; set; }

Type Changed: MediaPlayer.MPMediaItem

Added properties:

	public Foundation.NSDate DateAdded { get; }
	public static Foundation.NSString DateAddedProperty { get; }
	public bool IsExplicitItem { get; }
	public static Foundation.NSString IsExplicitProperty { get; }

Type Changed: MediaPlayer.MPMediaItemArtwork

Added constructor:

	public MPMediaItemArtwork (CoreGraphics.CGSize boundsSize, System.Func<CoreGraphics.CGSize,UIKit.UIImage> requestHandler);

Type Changed: MediaPlayer.MPMoviePlayerController

Added property:

	public virtual bool AirPlayVideoActive { get; }

Type Changed: MediaPlayer.MPMusicPlayerController

Added property:

	public virtual uint IndexOfNowPlayingItem { get; }

Type Changed: MediaPlayer.MPNowPlayingInfo

Added properties:

	public MPNowPlayingInfoLanguageOptionGroup[] AvailableLanguageOptions { get; set; }
	public string CollectionIdentifier { get; set; }
	public MPNowPlayingInfoLanguageOption[] CurrentLanguageOptions { get; set; }
	public string ExternalContentIdentifier { get; set; }
	public string ExternalUserProfileIdentifier { get; set; }
	public bool? IsLiveStream { get; set; }
	public MPNowPlayingInfoMediaType? MediaType { get; set; }
	public float? PlaybackProgress { get; set; }

Type Changed: MediaPlayer.MPNowPlayingInfoCenter

Added properties:

	public static Foundation.NSString PropertyCollectionIdentifier { get; }
	public static Foundation.NSString PropertyExternalContentIdentifier { get; }
	public static Foundation.NSString PropertyExternalUserProfileIdentifier { get; }
	public static Foundation.NSString PropertyIsLiveStream { get; }
	public static Foundation.NSString PropertyMediaType { get; }
	public static Foundation.NSString PropertyPlaybackProgress { get; }

Type Changed: MediaPlayer.MPPlayableContentDataSource

Added methods:

	public virtual void GetContentItem (string identifier, System.Action<MPContentItem,Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task<MPContentItem> GetContentItemAsync (string identifier);

Type Changed: MediaPlayer.MPPlayableContentDataSource_Extensions

Added methods:

	public static void GetContentItem (IMPPlayableContentDataSource This, string identifier, System.Action<MPContentItem,Foundation.NSError> completionHandler);
	public static System.Threading.Tasks.Task<MPContentItem> GetContentItemAsync (IMPPlayableContentDataSource This, string identifier);

Type Changed: MediaPlayer.MPPlayableContentDelegate

Added method:

	public virtual void InitializePlaybackQueue (MPPlayableContentManager contentManager, MPContentItem[] contentItems, System.Action<Foundation.NSError> completionHandler);

Type Changed: MediaPlayer.MPPlayableContentDelegate_Extensions

Added method:

	public static void InitializePlaybackQueue (IMPPlayableContentDelegate This, MPPlayableContentManager contentManager, MPContentItem[] contentItems, System.Action<Foundation.NSError> completionHandler);

Type Changed: MediaPlayer.MPPlayableContentManager

Added property:

	public virtual string[] NowPlayingIdentifiers { get; set; }

Type Changed: MediaPlayer.MPRemoteCommandCenter

Obsoleted constructors:

[Obsolete ("Use MPRemoteCommandCenter.Shared")] public MPRemoteCommandCenter ();

Added properties:

	public virtual MPChangeRepeatModeCommand ChangeRepeatModeCommand { get; }
	public virtual MPChangeShuffleModeCommand ChangeShuffleModeCommand { get; }

Type Changed: MediaPlayer.MPVolumeView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	UIKit.IUIFocusItem

New Type MediaPlayer.MPChangeLanguageOptionSetting

[Serializable]
public enum MPChangeLanguageOptionSetting {
	None = 0,
	NowPlayingItemOnly = 1,
	Permanent = 2,
}

New Type MediaPlayer.MPChangeRepeatModeCommand

public class MPChangeRepeatModeCommand : MediaPlayer.MPRemoteCommand, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPChangeRepeatModeCommand (Foundation.NSObjectFlag t);
	protected MPChangeRepeatModeCommand (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual MPRepeatType CurrentRepeatType { get; set; }
}

New Type MediaPlayer.MPChangeRepeatModeCommandEvent

public class MPChangeRepeatModeCommandEvent : MediaPlayer.MPRemoteCommandEvent, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPChangeRepeatModeCommandEvent (Foundation.NSObjectFlag t);
	protected MPChangeRepeatModeCommandEvent (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual bool PreservesRepeatMode { get; }
	public virtual MPRepeatType RepeatType { get; }
}

New Type MediaPlayer.MPChangeShuffleModeCommand

public class MPChangeShuffleModeCommand : MediaPlayer.MPRemoteCommand, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPChangeShuffleModeCommand (Foundation.NSObjectFlag t);
	protected MPChangeShuffleModeCommand (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual MPShuffleType CurrentShuffleType { get; set; }
}

New Type MediaPlayer.MPChangeShuffleModeCommandEvent

public class MPChangeShuffleModeCommandEvent : MediaPlayer.MPRemoteCommandEvent, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPChangeShuffleModeCommandEvent (Foundation.NSObjectFlag t);
	protected MPChangeShuffleModeCommandEvent (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual bool PreservesShuffleMode { get; }
	public virtual MPShuffleType ShuffleType { get; }
}

New Type MediaPlayer.MPErrorCodeExtensions

public static class MPErrorCodeExtensions {
	// methods
	public static Foundation.NSString GetDomain (MPErrorCode self);
}

New Type MediaPlayer.MPNowPlayingInfoMediaType

[Serializable]
public enum MPNowPlayingInfoMediaType {
	Audio = 1,
	None = 0,
	Video = 2,
}

New Type MediaPlayer.MPRepeatType

[Serializable]
public enum MPRepeatType {
	All = 2,
	Off = 0,
	One = 1,
}

New Type MediaPlayer.MPShuffleType

[Serializable]
public enum MPShuffleType {
	Collections = 2,
	Items = 1,
	Off = 0,
}

Namespace MessageUI

Type Changed: MessageUI.MFMessageComposeViewController

Added property:

	public virtual Messages.MSMessage Message { get; set; }

Namespace Metal

Type Changed: Metal.MTLArgument

Added properties:

	public virtual uint ArrayLength { get; }
	public virtual bool IsDepthTexture { get; }

Type Changed: Metal.MTLBlitCommandEncoder_Extensions

Added methods:

	public static void Update (IMTLBlitCommandEncoder This, IMTLFence fence);
	public static void Wait (IMTLBlitCommandEncoder This, IMTLFence fence);

Type Changed: Metal.MTLCommandBufferError

Added value:

	Memoryless = 10,

Type Changed: Metal.MTLComputeCommandEncoder_Extensions

Added methods:

	public static void SetStage (IMTLComputeCommandEncoder This, MTLRegion region);
	public static void Update (IMTLComputeCommandEncoder This, IMTLFence fence);
	public static void Wait (IMTLComputeCommandEncoder This, IMTLFence fence);

Type Changed: Metal.MTLComputePipelineDescriptor

Added property:

	public virtual MTLStageInputOutputDescriptor StageInputDescriptor { get; set; }

Type Changed: Metal.MTLDevice_Extensions

Added methods:

	public static IMTLFence CreateFence (IMTLDevice This);
	public static IMTLHeap CreateHeap (IMTLDevice This, MTLHeapDescriptor descriptor);
	public static IMTLLibrary CreateLibrary (IMTLDevice This, Foundation.NSBundle bundle, out Foundation.NSError error);
	public static MTLSizeAndAlign GetHeapBufferSizeAndAlignWithLength (IMTLDevice This, uint length, MTLResourceOptions options);
	public static MTLSizeAndAlign GetHeapTextureSizeAndAlign (IMTLDevice This, MTLTextureDescriptor desc);

Type Changed: Metal.MTLFeatureSet

Added values:

	OSX_GPUFamily1_v2 = 10001,
	OSX_ReadWriteTextureTier2 = 10002,
	iOS_GPUFamily1_v3 = 5,
	iOS_GPUFamily2_v3 = 6,
	iOS_GPUFamily3_v2 = 7,
	tvOS_GPUFamily1_v2 = 30001,

Type Changed: Metal.MTLLanguageVersion

Added value:

	v1_2 = 65538,

Type Changed: Metal.MTLLibraryError

Added values:

	FileNotFound = 6,
	FunctionNotFound = 5,

Type Changed: Metal.MTLPixelFormat

Added value:

	X32_Stencil8 = 261,

Type Changed: Metal.MTLRenderCommandEncoder_Extensions

Added methods:

	public static void DrawIndexedPatches (IMTLRenderCommandEncoder This, uint numberOfPatchControlPoints, uint patchStart, uint patchCount, IMTLBuffer patchIndexBuffer, uint patchIndexBufferOffset, IMTLBuffer controlPointIndexBuffer, uint controlPointIndexBufferOffset, uint instanceCount, uint baseInstance);
	public static void DrawPatches (IMTLRenderCommandEncoder This, uint numberOfPatchControlPoints, uint patchStart, uint patchCount, IMTLBuffer patchIndexBuffer, uint patchIndexBufferOffset, uint instanceCount, uint baseInstance);
	public static void SetColorStoreAction (IMTLRenderCommandEncoder This, MTLStoreAction storeAction, uint colorAttachmentIndex);
	public static void SetDepthStoreAction (IMTLRenderCommandEncoder This, MTLStoreAction storeAction);
	public static void SetStencilStoreAction (IMTLRenderCommandEncoder This, MTLStoreAction storeAction);
	public static void SetTessellationFactorBuffer (IMTLRenderCommandEncoder This, IMTLBuffer buffer, uint offset, uint instanceStride);
	public static void SetTessellationFactorScale (IMTLRenderCommandEncoder This, float scale);
	public static void Update (IMTLRenderCommandEncoder This, IMTLFence fence, MTLRenderStages stages);
	public static void Wait (IMTLRenderCommandEncoder This, IMTLFence fence, MTLRenderStages stages);

Type Changed: Metal.MTLRenderPipelineDescriptor

Added properties:

	public virtual bool IsTessellationFactorScaleEnabled { get; set; }
	public virtual uint MaxTessellationFactor { get; set; }
	public virtual MTLTessellationControlPointIndexType TessellationControlPointIndexType { get; set; }
	public virtual MTLTessellationFactorFormat TessellationFactorFormat { get; set; }
	public virtual MTLTessellationFactorStepFunction TessellationFactorStepFunction { get; set; }
	public virtual MTLWinding TessellationOutputWindingOrder { get; set; }
	public virtual MTLTessellationPartitionMode TessellationPartitionMode { get; set; }

Type Changed: Metal.MTLResourceOptions

Added values:

	HazardTrackingModeUntracked = 256,
	StorageModeMemoryless = 48,

Type Changed: Metal.MTLResource_Extensions

Added methods:

	public static IMTLHeap GetHeap (IMTLResource This);
	public static bool GetIsAliasable (IMTLResource This);
	public static void MakeAliasable (IMTLResource This);

Type Changed: Metal.MTLSamplerAddressMode

Added value:

	ClampToBorderColor = 5,

Type Changed: Metal.MTLStorageMode

Added value:

	Memoryless = 3,

Type Changed: Metal.MTLStoreAction

Added values:

	StoreAndMultisampleResolve = 3,
	Unknown = 4,

Type Changed: Metal.MTLVertexAttribute

Added properties:

	public virtual bool PatchControlPointData { get; }
	public virtual bool PatchData { get; }

Type Changed: Metal.MTLVertexDescriptor

Added method:

	public static MTLVertexDescriptor FromModelIO (ModelIO.MDLVertexDescriptor descriptor, out Foundation.NSError error);

Type Changed: Metal.MTLVertexStepFunction

Added values:

	PerPatch = 3,
	PerPatchControlPoint = 4,

New Type Metal.IMTLFence

public interface IMTLFence : ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual IMTLDevice Device { get; }
	public virtual string Label { get; set; }
}

New Type Metal.IMTLHeap

public interface IMTLHeap : ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual MTLCpuCacheMode CpuCacheMode { get; }
	public virtual IMTLDevice Device { get; }
	public virtual string Label { get; set; }
	public virtual uint Size { get; }
	public virtual MTLStorageMode StorageMode { get; }
	public virtual uint UsedSize { get; }
	// methods
	public virtual IMTLBuffer CreateBuffer (uint length, MTLResourceOptions options);
	public virtual IMTLTexture CreateTexture (MTLTextureDescriptor desc);
	public virtual uint GetMaxAvailableSize (uint alignment);
	public virtual MTLPurgeableState SetPurgeableState (MTLPurgeableState state);
}

New Type Metal.MTLAttribute

public class MTLAttribute : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public MTLAttribute ();
	protected MTLAttribute (Foundation.NSObjectFlag t);
	protected MTLAttribute (IntPtr handle);
	// properties
	public virtual bool Active { get; }
	public virtual uint AttributeIndex { get; }
	public virtual MTLDataType AttributeType { get; }
	public override IntPtr ClassHandle { get; }
	public virtual bool IsPatchControlPointData { get; }
	public virtual bool IsPatchData { get; }
	public virtual string Name { get; }
}

New Type Metal.MTLAttributeDescriptor

public class MTLAttributeDescriptor : Foundation.NSObject, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public MTLAttributeDescriptor ();
	protected MTLAttributeDescriptor (Foundation.NSObjectFlag t);
	protected MTLAttributeDescriptor (IntPtr handle);
	// properties
	public virtual uint BufferIndex { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual MTLAttributeFormat Format { get; set; }
	public virtual uint Offset { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type Metal.MTLAttributeDescriptorArray

public class MTLAttributeDescriptorArray : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public MTLAttributeDescriptorArray ();
	protected MTLAttributeDescriptorArray (Foundation.NSObjectFlag t);
	protected MTLAttributeDescriptorArray (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public MTLAttributeDescriptor Item { get; set; }
}

New Type Metal.MTLAttributeFormat

[Serializable]
public enum MTLAttributeFormat {
	Char2 = 4,
	Char2Normalized = 10,
	Char3 = 5,
	Char3Normalized = 11,
	Char4 = 6,
	Char4Normalized = 12,
	Float = 28,
	Float2 = 29,
	Float3 = 30,
	Float4 = 31,
	Half2 = 25,
	Half3 = 26,
	Half4 = 27,
	Int = 32,
	Int1010102Normalized = 40,
	Int2 = 33,
	Int3 = 34,
	Int4 = 35,
	Invalid = 0,
	Short2 = 16,
	Short2Normalized = 22,
	Short3 = 17,
	Short3Normalized = 23,
	Short4 = 18,
	Short4Normalized = 24,
	UChar2 = 1,
	UChar2Normalized = 7,
	UChar3 = 2,
	UChar3Normalized = 8,
	UChar4 = 3,
	UChar4Normalized = 9,
	UInt = 36,
	UInt1010102Normalized = 41,
	UInt2 = 37,
	UInt3 = 38,
	UInt4 = 39,
	UShort2 = 13,
	UShort2Normalized = 19,
	UShort3 = 14,
	UShort3Normalized = 20,
	UShort4 = 15,
	UShort4Normalized = 21,
}

New Type Metal.MTLBufferLayoutDescriptor

public class MTLBufferLayoutDescriptor : Foundation.NSObject, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public MTLBufferLayoutDescriptor ();
	protected MTLBufferLayoutDescriptor (Foundation.NSObjectFlag t);
	protected MTLBufferLayoutDescriptor (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual MTLStepFunction StepFunction { get; set; }
	public virtual uint StepRate { get; set; }
	public virtual uint Stride { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type Metal.MTLBufferLayoutDescriptorArray

public class MTLBufferLayoutDescriptorArray : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public MTLBufferLayoutDescriptorArray ();
	protected MTLBufferLayoutDescriptorArray (Foundation.NSObjectFlag t);
	protected MTLBufferLayoutDescriptorArray (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public MTLBufferLayoutDescriptor Item { get; set; }
}

New Type Metal.MTLBuffer_Extensions

public static class MTLBuffer_Extensions {
	// methods
	public static void AddDebugMarker (IMTLBuffer This, string marker, Foundation.NSRange range);
	public static void RemoveAllDebugMarkers (IMTLBuffer This);
}

New Type Metal.MTLDrawPatchIndirectArguments

public struct MTLDrawPatchIndirectArguments {
	// constructors
	public MTLDrawPatchIndirectArguments (uint pathCount, uint instanceCount, uint patchStart, uint baseInstance);
	// fields
	public uint BaseInstance;
	public uint InstanceCount;
	public uint PatchCount;
	public uint PatchStart;
}

New Type Metal.MTLFunctionConstant

public class MTLFunctionConstant : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public MTLFunctionConstant ();
	protected MTLFunctionConstant (Foundation.NSObjectFlag t);
	protected MTLFunctionConstant (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual uint Index { get; }
	public virtual bool IsRequired { get; }
	public virtual string Name { get; }
	public virtual MTLDataType Type { get; }
}

New Type Metal.MTLFunctionConstantValues

public class MTLFunctionConstantValues : Foundation.NSObject, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MTLFunctionConstantValues (Foundation.NSObjectFlag t);
	protected MTLFunctionConstantValues (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void Reset ();
	public virtual void SetConstantValue (IntPtr value, MTLDataType type, string name);
	public virtual void SetConstantValue (IntPtr value, MTLDataType type, uint index);
	public virtual void SetConstantValues (IntPtr values, MTLDataType type, Foundation.NSRange range);
}

New Type Metal.MTLFunction_Extensions

public static class MTLFunction_Extensions {
	// methods
	public static Foundation.NSDictionary<Foundation.NSString,Metal.MTLFunctionConstant> GetFunctionConstants (IMTLFunction This);
	public static string GetLabel (IMTLFunction This);
	public static nint GetPatchControlPointCount (IMTLFunction This);
	public static MTLPatchType GetPatchType (IMTLFunction This);
	public static MTLAttribute[] GetStageInputAttributes (IMTLFunction This);
	public static void SetLabel (IMTLFunction This, string value);
}

New Type Metal.MTLHeapDescriptor

public class MTLHeapDescriptor : Foundation.NSObject, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public MTLHeapDescriptor ();
	protected MTLHeapDescriptor (Foundation.NSObjectFlag t);
	protected MTLHeapDescriptor (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual MTLCpuCacheMode CpuCacheMode { get; set; }
	public virtual uint Size { get; set; }
	public virtual MTLStorageMode StorageMode { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type Metal.MTLLibrary_Extensions

public static class MTLLibrary_Extensions {
	// methods
	public static void CreateFunction (IMTLLibrary This, string name, MTLFunctionConstantValues constantValues, System.Action<IMTLFunction,Foundation.NSError> completionHandler);
	public static IMTLFunction CreateFunction (IMTLLibrary This, string name, MTLFunctionConstantValues constantValues, out Foundation.NSError error);
}

New Type Metal.MTLParallelRenderCommandEncoder_Extensions

public static class MTLParallelRenderCommandEncoder_Extensions {
	// methods
	public static void SetColorStoreAction (IMTLParallelRenderCommandEncoder This, MTLStoreAction storeAction, uint colorAttachmentIndex);
	public static void SetDepthStoreAction (IMTLParallelRenderCommandEncoder This, MTLStoreAction storeAction);
	public static void SetStencilStoreAction (IMTLParallelRenderCommandEncoder This, MTLStoreAction storeAction);
}

New Type Metal.MTLPatchType

[Serializable]
public enum MTLPatchType {
	None = 0,
	Quad = 2,
	Triangle = 1,
}

New Type Metal.MTLQuadTessellationFactorsHalf

public struct MTLQuadTessellationFactorsHalf {
	// constructors
	public MTLQuadTessellationFactorsHalf (ushort[] edgeTessellationFactor, ushort[] insideTessellationFactor);
	// fields
	public ushort[] EdgeTessellationFactor;
	public ushort[] InsideTessellationFactor;
}

New Type Metal.MTLRenderStages

[Serializable]
public enum MTLRenderStages {
	Fragment = 2,
	Vertex = 1,
}

New Type Metal.MTLSamplerBorderColor

[Serializable]
public enum MTLSamplerBorderColor {
	OpaqueBlack = 1,
	OpaqueWhite = 2,
	TransparentBlack = 0,
}

New Type Metal.MTLSizeAndAlign

public struct MTLSizeAndAlign {
	// constructors
	public MTLSizeAndAlign (uint size, uint align);
	// fields
	public uint Align;
	public uint Size;
}

New Type Metal.MTLStageInputOutputDescriptor

public class MTLStageInputOutputDescriptor : Foundation.NSObject, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public MTLStageInputOutputDescriptor ();
	protected MTLStageInputOutputDescriptor (Foundation.NSObjectFlag t);
	protected MTLStageInputOutputDescriptor (IntPtr handle);
	// properties
	public virtual MTLAttributeDescriptorArray Attributes { get; }
	public override IntPtr ClassHandle { get; }
	public virtual uint IndexBufferIndex { get; set; }
	public virtual MTLIndexType IndexType { get; set; }
	public virtual MTLBufferLayoutDescriptorArray Layouts { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static MTLStageInputOutputDescriptor Create ();
	public virtual void Reset ();
}

New Type Metal.MTLStepFunction

[Serializable]
public enum MTLStepFunction {
	Constant = 0,
	PerInstance = 2,
	PerPatch = 3,
	PerPatchControlPoint = 4,
	PerVertex = 1,
	ThreadPositionInGridX = 5,
	ThreadPositionInGridXIndexed = 7,
	ThreadPositionInGridY = 6,
	ThreadPositionInGridYIndexed = 8,
}

New Type Metal.MTLTessellationControlPointIndexType

[Serializable]
public enum MTLTessellationControlPointIndexType {
	None = 0,
	UInt16 = 1,
	UInt32 = 2,
}

New Type Metal.MTLTessellationFactorFormat

[Serializable]
public enum MTLTessellationFactorFormat {
	Half = 0,
}

New Type Metal.MTLTessellationFactorStepFunction

[Serializable]
public enum MTLTessellationFactorStepFunction {
	Constant = 0,
	PerInstance = 2,
	PerPatch = 1,
	PerPatchAndPerInstance = 3,
}

New Type Metal.MTLTessellationPartitionMode

[Serializable]
public enum MTLTessellationPartitionMode {
	FractionalEven = 3,
	FractionalOdd = 2,
	Integer = 1,
	Pow2 = 0,
}

New Type Metal.MTLTriangleTessellationFactorsHalf

public struct MTLTriangleTessellationFactorsHalf {
	// constructors
	public MTLTriangleTessellationFactorsHalf (ushort[] edgeTessellationFactor, ushort insideTessellationFactor);
	// fields
	public ushort[] EdgeTessellationFactor;
	public ushort InsideTessellationFactor;
}

Namespace MetalKit

Type Changed: MetalKit.MTKMeshBuffer

Added interface:

	ModelIO.IMDLNamed

Added property:

	public virtual string Name { get; set; }

Type Changed: MetalKit.MTKTextureLoader

Added methods:

	public virtual void FromName (string name, nfloat scaleFactor, Foundation.NSBundle bundle, Foundation.NSDictionary options, MTKTextureLoaderCallback completionHandler);
	public virtual Metal.IMTLTexture FromName (string name, nfloat scaleFactor, Foundation.NSBundle bundle, Foundation.NSDictionary options, out Foundation.NSError error);
	public void FromName (string name, nfloat scaleFactor, Foundation.NSBundle bundle, MTKTextureLoaderOptions options, MTKTextureLoaderCallback completionHandler);
	public Metal.IMTLTexture FromName (string name, nfloat scaleFactor, Foundation.NSBundle bundle, MTKTextureLoaderOptions options, out Foundation.NSError error);
	public virtual void FromNames (string[] names, nfloat scaleFactor, Foundation.NSBundle bundle, Foundation.NSDictionary options, MTKTextureLoaderArrayCallback completionHandler);
	public void FromNames (string[] names, nfloat scaleFactor, Foundation.NSBundle bundle, MTKTextureLoaderOptions options, MTKTextureLoaderArrayCallback completionHandler);
	public virtual void FromTexture (ModelIO.MDLTexture texture, Foundation.NSDictionary options, MTKTextureLoaderCallback completionHandler);
	public virtual Metal.IMTLTexture FromTexture (ModelIO.MDLTexture texture, Foundation.NSDictionary options, out Foundation.NSError error);
	public void FromTexture (ModelIO.MDLTexture texture, MTKTextureLoaderOptions options, MTKTextureLoaderCallback completionHandler);
	public Metal.IMTLTexture FromTexture (ModelIO.MDLTexture texture, MTKTextureLoaderOptions options, out Foundation.NSError error);
	public virtual void FromUrls (Foundation.NSUrl[] urls, Foundation.NSDictionary options, MTKTextureLoaderArrayCallback completionHandler);
	public virtual Metal.IMTLTexture[] FromUrls (Foundation.NSUrl[] urls, Foundation.NSDictionary options, out Foundation.NSError error);
	public void FromUrls (Foundation.NSUrl[] urls, MTKTextureLoaderOptions options, MTKTextureLoaderArrayCallback completionHandler);
	public Metal.IMTLTexture[] FromUrls (Foundation.NSUrl[] urls, MTKTextureLoaderOptions options, out Foundation.NSError error);

Type Changed: MetalKit.MTKTextureLoaderOptions

Modified properties:

public bool? AllocateMipmaps { get; set; }
public bool? Srgb { get; set; }

Added properties:

	public MTKTextureLoaderCubeLayout? CubeLayout { get; set; }
	public bool? GenerateMipmaps { get; }
	public MTKTextureLoaderOrigin? Origin { get; set; }
	public Metal.MTLStorageMode? TextureStorageMode { get; set; }

Type Changed: MetalKit.MTKView

Added interfaces:

	CoreAnimation.ICALayerDelegate
	UIKit.IUIFocusItem

Added methods:

	public virtual Foundation.NSObject ActionForLayer (CoreAnimation.CALayer layer, string eventKey);
	public virtual void DisplayLayer (CoreAnimation.CALayer layer);
	public virtual void DrawLayer (CoreAnimation.CALayer layer, CoreGraphics.CGContext context);
	public virtual void LayoutSublayersOfLayer (CoreAnimation.CALayer layer);
	public virtual void WillDrawLayer (CoreAnimation.CALayer layer);

New Type MetalKit.MTKTextureLoaderArrayCallback

public sealed delegate MTKTextureLoaderArrayCallback : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public MTKTextureLoaderArrayCallback (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (Metal.IMTLTexture[] textures, Foundation.NSError error, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (Metal.IMTLTexture[] textures, Foundation.NSError error);
}

New Type MetalKit.MTKTextureLoaderCubeLayout

[Serializable]
public enum MTKTextureLoaderCubeLayout {
	Vertical = 0,
}

New Type MetalKit.MTKTextureLoaderCubeLayoutExtensions

public static class MTKTextureLoaderCubeLayoutExtensions {
	// methods
	public static Foundation.NSString GetConstant (MTKTextureLoaderCubeLayout self);
	public static MTKTextureLoaderCubeLayout GetValue (Foundation.NSString constant);
}

New Type MetalKit.MTKTextureLoaderOrigin

[Serializable]
public enum MTKTextureLoaderOrigin {
	BottomLeft = 1,
	FlippedVertically = 2,
	TopLeft = 0,
}

New Type MetalKit.MTKTextureLoaderOriginExtensions

public static class MTKTextureLoaderOriginExtensions {
	// methods
	public static Foundation.NSString GetConstant (MTKTextureLoaderOrigin self);
	public static MTKTextureLoaderOrigin GetValue (Foundation.NSString constant);
}

Namespace MetalPerformanceShaders

New Type MetalPerformanceShaders.MPSAlphaType

[Serializable]
public enum MPSAlphaType {
	AlphaIsOne = 1,
	NonPremultiplied = 0,
	Premultiplied = 2,
}

New Type MetalPerformanceShaders.MPSCnnConvolution

public class MPSCnnConvolution : MetalPerformanceShaders.MPSCnnKernel, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnConvolution (Foundation.NSObjectFlag t);
	protected MPSCnnConvolution (IntPtr handle);
	public MPSCnnConvolution (Metal.IMTLDevice device, MPSCnnConvolutionDescriptor convolutionDescriptor, float[] kernelWeights, float[] biasTerms, MPSCnnConvolutionFlags flags);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual uint Groups { get; }
	public virtual uint InputFeatureChannels { get; }
	public virtual uint KernelHeight { get; }
	public virtual uint KernelWidth { get; }
	public virtual MPSCnnNeuron Neuron { get; }
	public virtual uint OutputFeatureChannels { get; }
	public virtual uint StrideInPixelsX { get; }
	public virtual uint StrideInPixelsY { get; }
}

New Type MetalPerformanceShaders.MPSCnnConvolutionDescriptor

public class MPSCnnConvolutionDescriptor : Foundation.NSObject, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnConvolutionDescriptor (Foundation.NSObjectFlag t);
	protected MPSCnnConvolutionDescriptor (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual uint Groups { get; set; }
	public virtual uint InputFeatureChannels { get; set; }
	public virtual uint KernelHeight { get; set; }
	public virtual uint KernelWidth { get; set; }
	public virtual MPSCnnNeuron Neuron { get; set; }
	public virtual uint OutputFeatureChannels { get; set; }
	public virtual uint StrideInPixelsX { get; set; }
	public virtual uint StrideInPixelsY { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static MPSCnnConvolutionDescriptor GetConvolutionDescriptor (uint kernelWidth, uint kernelHeight, uint inputFeatureChannels, uint outputFeatureChannels, MPSCnnNeuron neuronFilter);
}

New Type MetalPerformanceShaders.MPSCnnConvolutionFlags

[Serializable]
[Flags]
public enum MPSCnnConvolutionFlags {
	None = 0,
}

New Type MetalPerformanceShaders.MPSCnnCrossChannelNormalization

public class MPSCnnCrossChannelNormalization : MetalPerformanceShaders.MPSCnnKernel, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnCrossChannelNormalization (Foundation.NSObjectFlag t);
	protected MPSCnnCrossChannelNormalization (IntPtr handle);
	public MPSCnnCrossChannelNormalization (Metal.IMTLDevice device, uint kernelSize);
	// properties
	public virtual float Alpha { get; set; }
	public virtual float Beta { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual float Delta { get; set; }
	public virtual uint KernelSize { get; }
}

New Type MetalPerformanceShaders.MPSCnnFullyConnected

public class MPSCnnFullyConnected : MetalPerformanceShaders.MPSCnnConvolution, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnFullyConnected (Foundation.NSObjectFlag t);
	protected MPSCnnFullyConnected (IntPtr handle);
	public MPSCnnFullyConnected (Metal.IMTLDevice device, MPSCnnConvolutionDescriptor convolutionDescriptor, float[] kernelWeights, float[] biasTerms, MPSCnnConvolutionFlags flags);
	// properties
	public override IntPtr ClassHandle { get; }
}

New Type MetalPerformanceShaders.MPSCnnKernel

public abstract class MPSCnnKernel : MetalPerformanceShaders.MPSKernel, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnKernel (Foundation.NSObjectFlag t);
	public MPSCnnKernel (Metal.IMTLDevice device);
	protected MPSCnnKernel (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Metal.MTLRegion ClipRect { get; set; }
	public virtual uint DestinationFeatureChannelOffset { get; set; }
	public virtual MPSImageEdgeMode EdgeMode { get; set; }
	public virtual MPSOffset Offset { get; set; }
	// methods
	public virtual void EncodeToCommandBuffer (Metal.IMTLCommandBuffer commandBuffer, MPSImage sourceImage, MPSImage destinationImage);
	public virtual MPSRegion GetSourceRegion (Metal.MTLSize destinationSize);
}

New Type MetalPerformanceShaders.MPSCnnLocalContrastNormalization

public class MPSCnnLocalContrastNormalization : MetalPerformanceShaders.MPSCnnKernel, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnLocalContrastNormalization (Foundation.NSObjectFlag t);
	protected MPSCnnLocalContrastNormalization (IntPtr handle);
	public MPSCnnLocalContrastNormalization (Metal.IMTLDevice device, uint kernelWidth, uint kernelHeight);
	// properties
	public virtual float Alpha { get; set; }
	public virtual float Beta { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual float Delta { get; set; }
	public virtual uint KernelHeight { get; }
	public virtual uint KernelWidth { get; }
	public virtual float P0 { get; set; }
	public virtual float Pm { get; set; }
	public virtual float Ps { get; set; }
}

New Type MetalPerformanceShaders.MPSCnnLogSoftMax

public class MPSCnnLogSoftMax : MetalPerformanceShaders.MPSCnnKernel, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnLogSoftMax (Foundation.NSObjectFlag t);
	public MPSCnnLogSoftMax (Metal.IMTLDevice device);
	protected MPSCnnLogSoftMax (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
}

New Type MetalPerformanceShaders.MPSCnnNeuron

public abstract class MPSCnnNeuron : MetalPerformanceShaders.MPSCnnKernel, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnNeuron (Foundation.NSObjectFlag t);
	public MPSCnnNeuron (Metal.IMTLDevice device);
	protected MPSCnnNeuron (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
}

New Type MetalPerformanceShaders.MPSCnnNeuronAbsolute

public class MPSCnnNeuronAbsolute : MetalPerformanceShaders.MPSCnnNeuron, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnNeuronAbsolute (Foundation.NSObjectFlag t);
	public MPSCnnNeuronAbsolute (Metal.IMTLDevice device);
	protected MPSCnnNeuronAbsolute (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
}

New Type MetalPerformanceShaders.MPSCnnNeuronLinear

public class MPSCnnNeuronLinear : MetalPerformanceShaders.MPSCnnNeuron, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnNeuronLinear (Foundation.NSObjectFlag t);
	protected MPSCnnNeuronLinear (IntPtr handle);
	public MPSCnnNeuronLinear (Metal.IMTLDevice device, float a, float b);
	// properties
	public virtual float A { get; }
	public virtual float B { get; }
	public override IntPtr ClassHandle { get; }
}

New Type MetalPerformanceShaders.MPSCnnNeuronReLU

public class MPSCnnNeuronReLU : MetalPerformanceShaders.MPSCnnNeuron, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnNeuronReLU (Foundation.NSObjectFlag t);
	protected MPSCnnNeuronReLU (IntPtr handle);
	public MPSCnnNeuronReLU (Metal.IMTLDevice device, float a);
	// properties
	public virtual float A { get; }
	public override IntPtr ClassHandle { get; }
}

New Type MetalPerformanceShaders.MPSCnnNeuronSigmoid

public class MPSCnnNeuronSigmoid : MetalPerformanceShaders.MPSCnnNeuron, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnNeuronSigmoid (Foundation.NSObjectFlag t);
	public MPSCnnNeuronSigmoid (Metal.IMTLDevice device);
	protected MPSCnnNeuronSigmoid (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
}

New Type MetalPerformanceShaders.MPSCnnNeuronTanH

public class MPSCnnNeuronTanH : MetalPerformanceShaders.MPSCnnNeuron, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnNeuronTanH (Foundation.NSObjectFlag t);
	protected MPSCnnNeuronTanH (IntPtr handle);
	public MPSCnnNeuronTanH (Metal.IMTLDevice device, float a, float b);
	// properties
	public virtual float A { get; }
	public virtual float B { get; }
	public override IntPtr ClassHandle { get; }
}

New Type MetalPerformanceShaders.MPSCnnPooling

public class MPSCnnPooling : MetalPerformanceShaders.MPSCnnKernel, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnPooling (Foundation.NSObjectFlag t);
	protected MPSCnnPooling (IntPtr handle);
	public MPSCnnPooling (Metal.IMTLDevice device, uint kernelWidth, uint kernelHeight);
	public MPSCnnPooling (Metal.IMTLDevice device, uint kernelWidth, uint kernelHeight, uint strideInPixelsX, uint strideInPixelsY);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual uint KernelHeight { get; }
	public virtual uint KernelWidth { get; }
	public virtual uint StrideInPixelsX { get; }
	public virtual uint StrideInPixelsY { get; }
}

New Type MetalPerformanceShaders.MPSCnnPoolingAverage

public class MPSCnnPoolingAverage : MetalPerformanceShaders.MPSCnnPooling, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnPoolingAverage (Foundation.NSObjectFlag t);
	protected MPSCnnPoolingAverage (IntPtr handle);
	public MPSCnnPoolingAverage (Metal.IMTLDevice device, uint kernelWidth, uint kernelHeight, uint strideInPixelsX, uint strideInPixelsY);
	// properties
	public override IntPtr ClassHandle { get; }
}

New Type MetalPerformanceShaders.MPSCnnPoolingMax

public class MPSCnnPoolingMax : MetalPerformanceShaders.MPSCnnPooling, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnPoolingMax (Foundation.NSObjectFlag t);
	protected MPSCnnPoolingMax (IntPtr handle);
	public MPSCnnPoolingMax (Metal.IMTLDevice device, uint kernelWidth, uint kernelHeight, uint strideInPixelsX, uint strideInPixelsY);
	// properties
	public override IntPtr ClassHandle { get; }
}

New Type MetalPerformanceShaders.MPSCnnSoftMax

public class MPSCnnSoftMax : MetalPerformanceShaders.MPSCnnKernel, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnSoftMax (Foundation.NSObjectFlag t);
	public MPSCnnSoftMax (Metal.IMTLDevice device);
	protected MPSCnnSoftMax (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
}

New Type MetalPerformanceShaders.MPSCnnSpatialNormalization

public class MPSCnnSpatialNormalization : MetalPerformanceShaders.MPSCnnKernel, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCnnSpatialNormalization (Foundation.NSObjectFlag t);
	protected MPSCnnSpatialNormalization (IntPtr handle);
	public MPSCnnSpatialNormalization (Metal.IMTLDevice device, uint kernelWidth, uint kernelHeight);
	// properties
	public virtual float Alpha { get; set; }
	public virtual float Beta { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual float Delta { get; set; }
	public virtual uint KernelHeight { get; }
	public virtual uint KernelWidth { get; }
}

New Type MetalPerformanceShaders.MPSDataType

[Serializable]
public enum MPSDataType {
	Float32 = 268435488,
	FloatBit = 268435456,
}

New Type MetalPerformanceShaders.MPSImage

public class MPSImage : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSImage (Foundation.NSObjectFlag t);
	protected MPSImage (IntPtr handle);
	public MPSImage (Metal.IMTLDevice device, MPSImageDescriptor imageDescriptor);
	public MPSImage (Metal.IMTLTexture texture, uint featureChannels);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Metal.IMTLDevice Device { get; }
	public virtual uint FeatureChannels { get; }
	public virtual uint Height { get; }
	public virtual string Label { get; set; }
	public virtual uint NumberOfImages { get; }
	public virtual Metal.MTLPixelFormat PixelFormat { get; }
	public virtual uint PixelSize { get; }
	public virtual uint Precision { get; }
	public virtual Metal.IMTLTexture Texture { get; }
	public virtual Metal.MTLTextureType TextureType { get; }
	public virtual Metal.MTLTextureUsage Usage { get; }
	public virtual uint Width { get; }
	// methods
	public virtual MPSPurgeableState SetPurgeableState (MPSPurgeableState state);
}

New Type MetalPerformanceShaders.MPSImageConversion

public class MPSImageConversion : MetalPerformanceShaders.MPSUnaryImageKernel, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSImageConversion (Foundation.NSObjectFlag t);
	protected MPSImageConversion (IntPtr handle);
	public MPSImageConversion (Metal.IMTLDevice device, MPSAlphaType srcAlpha, MPSAlphaType destAlpha, nfloat[] backgroundColor, CoreGraphics.CGColorConversionInfo conversionInfo);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual MPSAlphaType DestinationAlpha { get; }
	public virtual MPSAlphaType SourceAlpha { get; }
}

New Type MetalPerformanceShaders.MPSImageDescriptor

public class MPSImageDescriptor : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSImageDescriptor (Foundation.NSObjectFlag t);
	protected MPSImageDescriptor (IntPtr handle);
	// properties
	public virtual MPSImageFeatureChannelFormat ChannelFormat { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual Metal.MTLCpuCacheMode CpuCacheMode { get; set; }
	public virtual uint FeatureChannels { get; set; }
	public virtual uint Height { get; set; }
	public virtual uint NumberOfImages { get; set; }
	public virtual Metal.MTLPixelFormat PixelFormat { get; }
	public virtual Metal.MTLStorageMode StorageMode { get; set; }
	public virtual Metal.MTLTextureUsage Usage { get; set; }
	public virtual uint Width { get; set; }
	// methods
	public static MPSImageDescriptor GetImageDescriptor (MPSImageFeatureChannelFormat channelFormat, uint width, uint height, uint featureChannels);
	public static MPSImageDescriptor GetImageDescriptor (MPSImageFeatureChannelFormat channelFormat, uint width, uint height, uint featureChannels, uint numberOfImages, Metal.MTLTextureUsage usage);
}

New Type MetalPerformanceShaders.MPSImageFeatureChannelFormat

[Serializable]
public enum MPSImageFeatureChannelFormat {
	Float16 = 3,
	Float32 = 4,
	Invalid = 0,
	Unorm16 = 2,
	Unorm8 = 1,
}

New Type MetalPerformanceShaders.MPSImageGaussianPyramid

public class MPSImageGaussianPyramid : MetalPerformanceShaders.MPSImagePyramid, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSImageGaussianPyramid (Foundation.NSObjectFlag t);
	protected MPSImageGaussianPyramid (IntPtr handle);
	public MPSImageGaussianPyramid (Metal.IMTLDevice device, uint kernelWidth, uint kernelHeight, float[] kernelWeights);
	// properties
	public override IntPtr ClassHandle { get; }
}

New Type MetalPerformanceShaders.MPSImageLaplacian

public class MPSImageLaplacian : MetalPerformanceShaders.MPSUnaryImageKernel, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSImageLaplacian (Foundation.NSObjectFlag t);
	public MPSImageLaplacian (Metal.IMTLDevice device);
	protected MPSImageLaplacian (IntPtr handle);
	// properties
	public virtual float Bias { get; set; }
	public override IntPtr ClassHandle { get; }
}

New Type MetalPerformanceShaders.MPSImagePyramid

public class MPSImagePyramid : MetalPerformanceShaders.MPSUnaryImageKernel, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSImagePyramid (Foundation.NSObjectFlag t);
	public MPSImagePyramid (Metal.IMTLDevice device);
	protected MPSImagePyramid (IntPtr handle);
	public MPSImagePyramid (Metal.IMTLDevice device, float centerWeight);
	public MPSImagePyramid (Metal.IMTLDevice device, uint kernelWidth, uint kernelHeight, float[] kernelWeights);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual uint KernelHeight { get; }
	public virtual uint KernelWidth { get; }
}

New Type MetalPerformanceShaders.MPSMatrix

public class MPSMatrix : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSMatrix (Foundation.NSObjectFlag t);
	protected MPSMatrix (IntPtr handle);
	public MPSMatrix (Metal.IMTLBuffer buffer, MPSMatrixDescriptor descriptor);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual uint Columns { get; }
	public virtual Metal.IMTLBuffer Data { get; }
	public virtual MPSDataType DataType { get; }
	public virtual Metal.IMTLDevice Device { get; }
	public virtual uint RowBytes { get; }
	public virtual uint Rows { get; }
}

New Type MetalPerformanceShaders.MPSMatrixDescriptor

public class MPSMatrixDescriptor : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSMatrixDescriptor (Foundation.NSObjectFlag t);
	protected MPSMatrixDescriptor (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual uint Columns { get; set; }
	public virtual MPSDataType DataType { get; set; }
	public virtual uint RowBytes { get; set; }
	public virtual uint Rows { get; set; }
	// methods
	public static MPSMatrixDescriptor Create (uint rows, uint columns, uint rowBytes, MPSDataType dataType);
	public static uint GetRowBytes (uint columns, MPSDataType dataType);
}

New Type MetalPerformanceShaders.MPSMatrixMultiplication

public class MPSMatrixMultiplication : MetalPerformanceShaders.MPSKernel, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSMatrixMultiplication (Foundation.NSObjectFlag t);
	protected MPSMatrixMultiplication (IntPtr handle);
	public MPSMatrixMultiplication (Metal.IMTLDevice device, bool transposeLeft, bool transposeRight, uint resultRows, uint resultColumns, uint interiorColumns, double alpha, double beta);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Metal.MTLOrigin LeftMatrixOrigin { get; set; }
	public virtual Metal.MTLOrigin ResultMatrixOrigin { get; set; }
	public virtual Metal.MTLOrigin RightMatrixOrigin { get; set; }
	// methods
	public virtual void EncodeToCommandBuffer (Metal.IMTLCommandBuffer commandBuffer, MPSMatrix leftMatrix, MPSMatrix rightMatrix, MPSMatrix resultMatrix);
}

New Type MetalPerformanceShaders.MPSPurgeableState

[Serializable]
[Flags]
public enum MPSPurgeableState {
	AllocationDeferred = 0,
	Empty = 4,
	KeepCurrent = 1,
	NonVolatile = 2,
	Volatile = 3,
}

New Type MetalPerformanceShaders.MPSTemporaryImage

public class MPSTemporaryImage : MetalPerformanceShaders.MPSImage, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSTemporaryImage (Foundation.NSObjectFlag t);
	protected MPSTemporaryImage (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual uint ReadCount { get; set; }
	// methods
	public static MPSTemporaryImage GetTemporaryImage (Metal.IMTLCommandBuffer commandBuffer, Metal.MTLTextureDescriptor textureDescriptor);
	public static MPSTemporaryImage GetTemporaryImage (Metal.IMTLCommandBuffer commandBuffer, MPSImageDescriptor imageDescriptor);
	public static void PrefetchStorage (Metal.IMTLCommandBuffer commandBuffer, MPSImageDescriptor[] descriptorList);
}

Namespace MobileCoreServices

Type Changed: MobileCoreServices.UTType

Added property:

	public static Foundation.NSString UniversalSceneDescription { get; }

Namespace ModelIO

Type Changed: ModelIO.MDLAsset

Added constructor:

	public MDLAsset (IMDLMeshBufferAllocator bufferAllocator);

Added property:

	public virtual IMDLObjectContainerComponent Masters { get; set; }

Added methods:

	public static MDLAsset FromScene (SceneKit.SCNScene scene, IMDLMeshBufferAllocator bufferAllocator);
	public virtual MDLObject[] GetChildObjects (ObjCRuntime.Class objectClass);

Type Changed: ModelIO.MDLCamera

Added property:

	public virtual MDLCameraProjection Projection { get; set; }

Type Changed: ModelIO.MDLLight

Added property:

	public virtual Foundation.NSString ColorSpace { get; set; }

Type Changed: ModelIO.MDLMaterial

Added property:

	public virtual MDLMaterialFace MaterialFace { get; set; }

Type Changed: ModelIO.MDLMaterialProperty

Added interface:

	Foundation.INSCopying

Added property:

	public virtual float Luminance { get; set; }

Added method:

	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);

Type Changed: ModelIO.MDLMesh

Added constructor:

	public MDLMesh (IMDLMeshBufferAllocator bufferAllocator);

Modified properties:

public virtual Foundation.NSMutableArray<MDLSubmesh> Submeshes { get; set; }
public virtual uint VertexCount { get; set; }

Added property:

	public virtual IMDLMeshBufferAllocator Allocator { get; }

Added methods:

	public virtual void AddAttribute (string name, MDLVertexFormat format, string type, Foundation.NSData data, nint stride);
	public virtual void AddAttribute (string name, MDLVertexFormat format, string type, Foundation.NSData data, nint stride, double time);
	public virtual void AddUnwrappedTextureCoordinates (string textureCoordinateAttributeName);
	public static MDLMesh CreateCapsule (OpenTK.Vector3 dimensions, OpenTK.Vector2i segments, MDLGeometryType geometryType, bool inwardNormals, int hemisphereSegments, IMDLMeshBufferAllocator allocator);
	public static MDLMesh CreateCone (OpenTK.Vector3 dimensions, OpenTK.Vector2i segments, MDLGeometryType geometryType, bool inwardNormals, bool cap, IMDLMeshBufferAllocator allocator);
	public static MDLMesh CreateHemisphere (OpenTK.Vector3 dimensions, OpenTK.Vector2i segments, MDLGeometryType geometryType, bool inwardNormals, bool cap, IMDLMeshBufferAllocator allocator);
	public static MDLMesh CreateSphere (OpenTK.Vector3 dimensions, OpenTK.Vector2i segments, MDLGeometryType geometryType, bool inwardNormals, IMDLMeshBufferAllocator allocator);
	public static MDLMesh CreateSubdividedMesh (MDLMesh mesh, int submeshIndex, uint subdivisionLevels, IMDLMeshBufferAllocator allocator);
	public static MDLMesh FromGeometry (SceneKit.SCNGeometry geometry, IMDLMeshBufferAllocator bufferAllocator);
	public virtual MDLVertexAttributeData GetVertexAttributeData (string attributeName, MDLVertexFormat format);
	public virtual void RemoveAttribute (string name);
	public virtual void ReplaceAttribute (string name, MDLVertexAttributeData newData);
	public virtual void UpdateAttribute (string name, MDLVertexAttributeData newData);

Type Changed: ModelIO.MDLObject

Added properties:

	public virtual bool Hidden { get; set; }
	public virtual MDLObject Instance { get; set; }
	public virtual string Path { get; }

Added methods:

	public static MDLObject FromNode (SceneKit.SCNNode node, IMDLMeshBufferAllocator bufferAllocator);
	public virtual MDLObject GetObject (string path);

Type Changed: ModelIO.MDLSubmesh

Added methods:

	public static MDLSubmesh FromGeometryElement (SceneKit.SCNGeometryElement element, IMDLMeshBufferAllocator bufferAllocator);
	public virtual IMDLMeshBuffer GetIndexBuffer (MDLIndexBitDepth indexType);

Type Changed: ModelIO.MDLTexture

Added property:

	public virtual bool HasAlphaValues { get; set; }

Type Changed: ModelIO.MDLTransform

Added constructors:

	public MDLTransform (IMDLTransformComponent component, bool resetsTransform);
	public MDLTransform (OpenTK.Matrix4 matrix, bool resetsTransform);

Added interface:

	Foundation.INSCopying

Added properties:

	public virtual Foundation.NSNumber[] KeyTimes { get; }
	public virtual bool ResetsTransform { get; set; }

Added method:

	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);

Type Changed: ModelIO.MDLTransformComponent_Extensions

Added methods:

	public static Foundation.NSNumber[] GetKeyTimes (IMDLTransformComponent This);
	public static bool GetResetsTransform (IMDLTransformComponent This);
	public static void SetResetsTransform (IMDLTransformComponent This, bool value);

Type Changed: ModelIO.MDLVertexAttribute

Added property:

	public virtual double Time { get; set; }

Type Changed: ModelIO.MDLVertexBufferLayout

Added constructor:

	public MDLVertexBufferLayout (uint stride);

Type Changed: ModelIO.MDLVertexDescriptor

Added methods:

	public static MDLVertexDescriptor FromMetal (Metal.MTLVertexDescriptor descriptor, out Foundation.NSError error);
	public virtual void RemoveAttribute (string name);

Type Changed: ModelIO.MDLVoxelArray

Modified base type: Foundation.NSObject ModelIO.MDLObject

Added constructor:

	public MDLVoxelArray (MDLAsset asset, int divisions, float patchRadius);

Added interface:

	IMDLNamed

Added properties:

	public virtual bool IsValidSignedShellField { get; }
	public virtual float ShellFieldExteriorThickness { get; set; }
	public virtual float ShellFieldInteriorThickness { get; set; }

Added methods:

	public virtual void ConvertToSignedShellField ();
	public virtual MDLMesh GetCoarseMesh ();
	public virtual MDLMesh GetCoarseMeshUsingAllocator (IMDLMeshBufferAllocator allocator);
	public virtual void SetVoxels (MDLMesh mesh, int divisions, float patchRadius);

New Type ModelIO.IMDLLightProbeIrradianceDataSource

public interface IMDLLightProbeIrradianceDataSource : ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual MDLAxisAlignedBoundingBox BoundingBox { get; set; }
}

New Type ModelIO.MDLCameraProjection

[Serializable]
public enum MDLCameraProjection {
	Orthographic = 1,
	Perspective = 0,
}

New Type ModelIO.MDLLightProbeIrradianceDataSource

public abstract class MDLLightProbeIrradianceDataSource : Foundation.NSObject, Foundation.INSObjectProtocol, IMDLLightProbeIrradianceDataSource, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MDLLightProbeIrradianceDataSource ();
	protected MDLLightProbeIrradianceDataSource (Foundation.NSObjectFlag t);
	protected MDLLightProbeIrradianceDataSource (IntPtr handle);
	// properties
	public virtual MDLAxisAlignedBoundingBox BoundingBox { get; set; }
	public virtual uint SphericalHarmonicsLevel { get; set; }
	// methods
	public virtual Foundation.NSData GetSphericalHarmonicsCoefficients (OpenTK.Vector3 position);
}

New Type ModelIO.MDLLightProbeIrradianceDataSource_Extensions

public static class MDLLightProbeIrradianceDataSource_Extensions {
	// methods
	public static Foundation.NSData GetSphericalHarmonicsCoefficients (IMDLLightProbeIrradianceDataSource This, OpenTK.Vector3 position);
	public static uint GetSphericalHarmonicsLevel (IMDLLightProbeIrradianceDataSource This);
	public static void SetSphericalHarmonicsLevel (IMDLLightProbeIrradianceDataSource This, uint value);
}

New Type ModelIO.MDLMaterialFace

[Serializable]
public enum MDLMaterialFace {
	Back = 1,
	DoubleSided = 2,
	Front = 0,
}

New Type ModelIO.MDLMaterialPropertyConnection

public class MDLMaterialPropertyConnection : Foundation.NSObject, Foundation.INSObjectProtocol, IMDLNamed, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MDLMaterialPropertyConnection (Foundation.NSObjectFlag t);
	protected MDLMaterialPropertyConnection (IntPtr handle);
	public MDLMaterialPropertyConnection (MDLMaterialProperty output, MDLMaterialProperty input);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual MDLMaterialProperty Input { get; }
	public virtual string Name { get; set; }
	public virtual MDLMaterialProperty Output { get; }
	// methods
	protected override void Dispose (bool disposing);
}

New Type ModelIO.MDLMaterialPropertyGraph

public class MDLMaterialPropertyGraph : ModelIO.MDLMaterialPropertyNode, Foundation.INSObjectProtocol, IMDLNamed, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MDLMaterialPropertyGraph (Foundation.NSObjectFlag t);
	protected MDLMaterialPropertyGraph (IntPtr handle);
	public MDLMaterialPropertyGraph (MD