When detecting drive type it is possible that a path might be mounted more than once and later mounts may have a known type.
This will allow the check to keep looking in case it can a known type.
This happens with a default redhat system which uses lvm and the first entry for the main drive is unknown even though a later entry is a known type.
Fix some sign extension issues in the 2 dimensional array access implementation on 64 bit platforms. Fixes #7438.
Extract the array store code to separare function.
Implement Array.UnsafeLoad and Array.UnsafeStore. Both functions ignores bounds check when possible.

	* Array.cs: Add UnsafeLoad and UnsafeStore functions that don't perform bounds check.
	The JIT will generate, when possible, direct a load/store. Right now the only case we can't
	handle are stores to reference arrays.

	Reference arrays are covariant on their element type which means that we must perform a runtime
	type check on stores to preserve type safety. Since the type check is usually must more expensive
	than the bounds check we simply ignore this for now.

	The reasoning behind this decision was that given our initial target are corlib's collections and
	they are too covariant to their element types they do need too a runtime type check on stores to ensure
	correctness.
List<T> accessors now use Array.Unsafe(Load|Store).
Disable the type check on reference type array stores.

	* method-to-ir.c (emit_array_store): We can avoid the type check
	on stores to reference arrays as it turns out List<T> is not
	covariant to its element type as I previously thought so.
Make sure that the unsafe array store intrinsics emit a write barrier.

	* method-to-ir.c: Array.UnsafeStore and Array.SetGenericValueImpl must
	emit a write barrier for reference types.
Provide a non-null X509Chain in the callback for MonoTouch (useful for custom validations) but we are not fully building it (since we do not use the output) and this can be done if customization is required
[OSX][iOS] Ensure 'sectrust' is released even if we deny the request
[WCF]: Fix WSDL import of methods with complex return types.

There is no bug report, the problem has been reported here:
http://stackoverflow.com/questions/12551090/monotouch-wcf-service-reference-cs-errors/12669880

DataContractSerializerMessageContractImporter.IsOperationImported()
did not check the method's return value, so it failed to recognize
methods such as

	[OperationContract]
	DateTime GetDate ();

as already being imported.  This caused the method to be imported with
both the DataContractMessageContractImporterInternal and the
XmlSerializerMessageContractImporterInternal, but the latter does not
resolve type references, see the FIXME in that class.

I also added a new test case for this.
[WCF,Serialization] Improve and fully implement support for collection types.

* System.Runtime.Serialization/XsdDataContractImporter:
      Check ImportOptions.ReferencedCollectionTypes to determine the proxy type.

* System.ServiceModel.Description/MetadataImporter.cs:
      Very simply implementation of the 'State' property.

* System.ServiceModel.Description/DataContractSerializerMessageContractImporter.cs:
      Use it here.

* Test/Resources/WSDL: Added some sample .wsdl files for the new tests; adding
      these as resources to the test dll.

* Test/System.Runtime.Serialization: Added WsdlHelper.cs,
      XsdDataContractImporterTest2.cs and XsdDataContractExportTest2.cs
mono_lookup_pinvoke_call: Correctly handle full path names.

* Fix the prefix matching code: if the dllmap path is "/path/foo",
  we want to look for "/path/libfoo", not "lib/path/foo".

* Check for @executable_path, @loader_path and @rpath on OS X.
  (see http://stackoverflow.com/questions/12834141/setting-path-of-the-native-library-for-dllimport-on-mono-for-mac/).
Add support for 'server_name' extension in the TLS client hello message. Fix for #7664
Revert "Bug 2663: Regular Expression Bug Fixes"

This reverts commit dc6efdab2984d22b3f3d4c26f9674f8d70a94132. This
patch completely regressed performance for regexes in the same class
as the regexes it fixed. Xamarin bug #6198 details the regressions,
and I've confirmed that reverting this commit fixes the 2 order of
magnitude performance drop (with the patch, the test takes almost 7
seconds, without it, it takes .07 seconds). The bug still needs to be
fixed, but this is not the right fix.
[#7258][Web]: Fix proxy authentication for secure connections.

In WebConnection.CreateTunnel():

* Support multi "Proxy-Authentication" headers from the server.

* Pass a fake HttpWebRequest with method "CONNECT" to
  AuthenticationManager.Authenticate(); the HTTP method is part
  of the digest response.

* Add "Proxy-Connection: Keep-Alive".
[#7258][Web]: Implement NTLM proxy authentication.

This is mostly Christian Gan's patch for the bug report, I only
did a few minor tweaks to it.  Thanks a lot for helping me out
with this.  Martin.
[#7258][Web]: Support multiple proxy auth methods.

* AuthenticationManager.EnsureModules(): Swap the order of the
  modules, putting the strongest ones first.

* WebConnection.CreateTunnel(): Pass the proxy's address to
  AuthenticationManager to support CredentialsCache.  Only attempt
  one single authentication method.

I've done some extensive testing with different squid configurations
(digest only, ntlm only, digest and ntlm, ntlm and digest) and the
.NET runtime only attempts one single authentication method.

If you provide credentials like this:

	var proxy = new WebProxy (proxyUrl, false);
	proxy.Credentials = new NetworkCredential ("user", "pass", "domain");

then these must match the server's first authentication method.

You can also use a CredentialsCache like this:

	var ntlm_cred = new NetworkCredential ("u1", "p1", "d1");
	var digest_cred = new NetworkCredential ("u2", "u3", "d2");

	var cc = new CredentialCache ();
	cc.Add (proxy_uri, "NTLM", ntlm_cred);
	cc.Add (proxy_uri, "Digest", digest_cred);

	var proxy = new WebProxy (proxy_uri, false);
	proxy.Credentials = cc;
Make comparison of array types in mono_metadata_class_equal () go through do_mono_metadata_type_equal (), so arrays of generic parameters are handled correctly. Fixes #7848.
[#7599][Web]: Use original uri to compute service point hash.

Use the original request Uri, not the proxy address, to compute
the service point hash.
[#7258][Web]: Check 'Connection: close' header.

When receiving a 407 in CreateTunnel(), check whether the server
asks to close the connection.

Thanks again to Christian Gan for this patch.