Update our MIME type map.

Bug: https://code.google.com/p/android/issues/detail?id=61996
Change-Id: I55efc9d38c87d89bb20073e4632ab1e06c77be09
Fix MimeUtils to treat ".flac" as "audio/flac".

(cherry-pick of 77926e913a14b9541df38b6175f795f2ca6c5266.)

Bug: 15715370
Change-Id: I2d99f070c3debea01621a172d8189951a56736b5
Switch Random to use AtomicLong

This removes the synchronization from next() and replaces the seed with
an AtomicLong.

Change-Id: I4ed94e0290dad83ed7570a8e7fd906e025df4636
Improve URI.equals performance.

The main improvement is that we're vastly reducing
the amount of garbage this method creates.

Also, get rid of some incorrect checks and add a new
benchmark test case.

Before vs. After:

URI                            Equals     1540.1 =
URI EqualsWithHeavilyEscapedComponent 11921397.1 ==============================

URI                            Equals     1337.2 =
URI EqualsWithHeavilyEscapedComponent   588934.3 ==============================

Change-Id: I9ddb87b8267f0ac6a3ac85c2989cc0dd305ef6a1
Allow multiple gzip members in gzip streams.

We look for the gzip magic bytes at the end of every
member and try to decompress the remainder of the
stream if we find it.

Note that this changes the behaviour of this class wrt.
the underlying stream: It is no longer self limiting. It
will attempt to read past the gzip trailer to look for
more data to decompress. Before this change, it would've
been possible to (hackily) consume the rest of the compressed
stream directly by inspecting the value of
InflaterInputStream.inf.getRemainingBytes(). It's no longer
possible to sensibly support that.

bug: https://code.google.com/p/android/issues/detail?id=63873

Change-Id: I818f77c052a811ed98b76243f2ad8a1a4d236d70
GZIPInputStream: avoid leaks in init.

If we throw inside the ctor, it is impossible for clients
to pass the CloseGuard test for the associated Inflater.

Change-Id: I6c4e66a98742fbd15bcdd03aa03e2fa7e33e110b