<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>77041</bug_id>
          
          <creation_ts>2012-01-25 13:13:45 -0800</creation_ts>
          <short_desc>Allow the registration of schemes which can receive CORS requests</short_desc>
          <delta_ts>2012-01-26 15:50:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Cris Neckar">cdn</reporter>
          <assigned_to name="Cris Neckar">cdn</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>bweinstein</cc>
    
    <cc>fishd</cc>
    
    <cc>japhet</cc>
    
    <cc>jberlin</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>542563</commentid>
    <comment_count>0</comment_count>
    <who name="Cris Neckar">cdn</who>
    <bug_when>2012-01-25 13:13:45 -0800</bug_when>
    <thetext>Currently there is a check in DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest() which prevents XHR to schemes which are not in in the HTTP family as defined by KURL or in Chromium&apos;s case KURLGoogle. 

After talking with ap@ about this his suggestion was to make the &quot;chrome-extension&quot; scheme part of the http family in this context. This change could be made in KURLGoogle.cpp and would only affect builds that use GOOGLEURL. After looking into this it scares me though. There are a lot of things that rely on protocolInHTTPFamily() and it is not entirely clear to me what all the affects of this change would be when dealing with chrome-extension: URIs. 

http://code.google.com/p/chromium/source/search?q=protocolInHTTPFamily

Doing this feels like a hack and I am worried that there will be unintended consequences. I suspect that the correct way to do this is to add a registry of schemas which can have simple XHR sent to them but I have no idea how to implement this. Assuming that we could do this we could simply add to the check in makeSimpleCrossOriginAccessRequest() something like 

if (!request.url().protocolInHTTPFamily() &amp;&amp; !urlHasXHRSafeScheme(request.url()))

Can either of you give me any insight as to where something like this would live and where it would be initialized?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542573</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-01-25 13:22:38 -0800</bug_when>
    <thetext>&gt; his suggestion was to make the &quot;chrome-extension&quot; scheme part of the http family in this context

s/suggestion/idea/ :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542583</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-25 13:36:20 -0800</bug_when>
    <thetext>I pointed Cris towards SchemeRegistry.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542654</commentid>
    <comment_count>3</comment_count>
      <attachid>124016</attachid>
    <who name="Cris Neckar">cdn</who>
    <bug_when>2012-01-25 14:48:24 -0800</bug_when>
    <thetext>Created attachment 124016
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542656</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-25 14:50:47 -0800</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542660</commentid>
    <comment_count>5</comment_count>
      <attachid>124016</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-25 14:56:58 -0800</bug_when>
    <thetext>Comment on attachment 124016
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=124016&amp;action=review

LGTM, but you&apos;ll need fishd to review.

&gt; Source/WebCore/platform/SchemeRegistry.cpp:158
&gt; +    DEFINE_STATIC_LOCAL(URLSchemesMap, CORSEnabledSchemes, ());
&gt; +    return CORSEnabledSchemes;

I would probably initialize this with http and https.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542672</commentid>
    <comment_count>6</comment_count>
      <attachid>124016</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-01-25 15:03:52 -0800</bug_when>
    <thetext>Comment on attachment 124016
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=124016&amp;action=review

I vaguely remember this being discussed multiple times in the past. There isn&apos;t already a solution that works for Safari extension, is there?

&gt; Source/WebCore/platform/SchemeRegistry.cpp:156
&gt; +static URLSchemesMap&amp; CORSEnabledSchemes()
&gt; +{

Please add ASSERT(isMainThread()) here, as this function and its callers are not thread safe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542688</commentid>
    <comment_count>7</comment_count>
      <attachid>124022</attachid>
    <who name="Cris Neckar">cdn</who>
    <bug_when>2012-01-25 15:18:05 -0800</bug_when>
    <thetext>Created attachment 124022
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542706</commentid>
    <comment_count>8</comment_count>
      <attachid>124024</attachid>
    <who name="Cris Neckar">cdn</who>
    <bug_when>2012-01-25 15:40:50 -0800</bug_when>
    <thetext>Created attachment 124024
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542712</commentid>
    <comment_count>9</comment_count>
    <who name="Cris Neckar">cdn</who>
    <bug_when>2012-01-25 15:43:10 -0800</bug_when>
    <thetext>&gt; I vaguely remember this being discussed multiple times in the past. There isn&apos;t already a solution that works for Safari extension, is there?

Yeah I went looking for this. The check is very straightforward in KURL (only http and https).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542814</commentid>
    <comment_count>10</comment_count>
      <attachid>124024</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-01-25 17:38:45 -0800</bug_when>
    <thetext>Comment on attachment 124024
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=124024&amp;action=review

&gt; Source/WebKit/chromium/public/WebSecurityPolicy.h:65
&gt; +    WEBKIT_EXPORT static void registerCORSEnabledScheme(const WebString&amp;);

registerURLSchemeAsCORSEnabled for consistent naming?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542817</commentid>
    <comment_count>11</comment_count>
      <attachid>124047</attachid>
    <who name="Cris Neckar">cdn</who>
    <bug_when>2012-01-25 17:46:46 -0800</bug_when>
    <thetext>Created attachment 124047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542852</commentid>
    <comment_count>12</comment_count>
      <attachid>124047</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-01-25 19:52:50 -0800</bug_when>
    <thetext>Comment on attachment 124047
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=124047&amp;action=review

&gt; Source/WebCore/platform/SchemeRegistry.cpp:290
&gt; +void SchemeRegistry::registerCORSEnabledScheme(const String&amp; scheme)

registerURLSchemeAs{Foo} to follow the conventions here too, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543167</commentid>
    <comment_count>13</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2012-01-26 08:35:54 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; Currently there is a check in DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest() which prevents XHR to schemes which are not in in the HTTP family as defined by KURL or in Chromium&apos;s case KURLGoogle. 
&gt; 
&gt; After talking with ap@ about this his suggestion was to make the &quot;chrome-extension&quot; scheme part of the http family in this context. This change could be made in KURLGoogle.cpp and would only affect builds that use GOOGLEURL. After looking into this it scares me though. There are a lot of things that rely on protocolInHTTPFamily() and it is not entirely clear to me what all the affects of this change would be when dealing with chrome-extension: URIs. 
&gt; 
&gt; http://code.google.com/p/chromium/source/search?q=protocolInHTTPFamily
&gt; 
&gt; Doing this feels like a hack and I am worried that there will be unintended consequences. I suspect that the correct way to do this is to add a registry of schemas which can have simple XHR sent to them but I have no idea how to implement this. Assuming that we could do this we could simply add to the check in makeSimpleCrossOriginAccessRequest() something like 
&gt; 
&gt; if (!request.url().protocolInHTTPFamily() &amp;&amp; !urlHasXHRSafeScheme(request.url()))
&gt; 
&gt; Can either of you give me any insight as to where something like this would live and where it would be initialized?

I am a bit unclear how this is different than https://bugs.webkit.org/show_bug.cgi?id=59843. Is the fix for that no longer working?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543266</commentid>
    <comment_count>14</comment_count>
    <who name="Cris Neckar">cdn</who>
    <bug_when>2012-01-26 10:46:38 -0800</bug_when>
    <thetext>My understanding of that is that it allows scripts in the extension context to XHR. Perhaps I am missing something?

This change would allow XHR into the extension context (or any other registered scheme) which as far as I can tell is not currently possible. This would of course also fail later if the request is from the web and the requested resource is in an extension (origins do not match) unless CORS headers are set.

Is there a way to do this that I am not seeing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543285</commentid>
    <comment_count>15</comment_count>
      <attachid>124147</attachid>
    <who name="Cris Neckar">cdn</who>
    <bug_when>2012-01-26 11:00:36 -0800</bug_when>
    <thetext>Created attachment 124147
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543323</commentid>
    <comment_count>16</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2012-01-26 11:25:34 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; My understanding of that is that it allows scripts in the extension context to XHR. Perhaps I am missing something?
&gt; 
&gt; This change would allow XHR into the extension context (or any other registered scheme) which as far as I can tell is not currently possible. This would of course also fail later if the request is from the web and the requested resource is in an extension (origins do not match) unless CORS headers are set.
&gt; 
&gt; Is there a way to do this that I am not seeing?

I am still not entirely sure I understand what you are trying to do, but I thought that WebView&apos;s

_addOriginAccessWhitelistEntryWithSourceOrigin

was supposed to allow access, including XHRs, from the specified source origins to any destination that with the specified protocol.

If that is not working, we should probably fix that instead of adding something new to SchemeRegistry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543329</commentid>
    <comment_count>17</comment_count>
    <who name="Cris Neckar">cdn</who>
    <bug_when>2012-01-26 11:34:06 -0800</bug_when>
    <thetext>To clarify, the use case I am addressing is this.

A user has an extension installed which contains a static resource. This resource is accessible through the URI chrome-extension://blah/resource.xml

We would like for a site (http://a.com) to be able to request resource.xml via XHR. As far as I can tell this will always fail because of the check in  makeSimpleCrossOriginAccessRequest() which limits these requests to HTTP schemes. 

I&apos;ll take a look at what you mentioned and see if it addresses this use case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543362</commentid>
    <comment_count>18</comment_count>
    <who name="Cris Neckar">cdn</who>
    <bug_when>2012-01-26 12:10:49 -0800</bug_when>
    <thetext>Ok took a look at addOriginAccessWhitelistEntryWithSourceOrigin.. This only allows you to register specifically whitelisted cross origin paths (ie. you must know both source and destination origin).

The presence of a crossOriginRequestPolicy equal to UseAccessControl means that even when no whitelist entry exists this should be decided by CORS headers. In the case of HTTP/HTTPS this works correctly however in cases where the destination is not in the http family this does not work. 

There is no way to simply add these to the whitelist as 

1. They will be blocked by the check I mention in comment 1 as they are not in the HTTP family
2. We would like all origins to be able to request these resources, whether or not the request succeeds is decided by whether CORS headers are supplied in the response.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543397</commentid>
    <comment_count>19</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2012-01-26 12:44:25 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; Ok took a look at addOriginAccessWhitelistEntryWithSourceOrigin.. This only allows you to register specifically whitelisted cross origin paths (ie. you must know both source and destination origin).

You don&apos;t actually need to know the full destination origin. If you pass in just the desired scheme and a empty string for the destination host, it will consider that as access to all hosts with that scheme.

&gt; 
&gt; The presence of a crossOriginRequestPolicy equal to UseAccessControl means that even when no whitelist entry exists this should be decided by CORS headers. In the case of HTTP/HTTPS this works correctly however in cases where the destination is not in the http family this does not work. 
&gt; 
&gt; There is no way to simply add these to the whitelist as 
&gt; 
&gt; 1. They will be blocked by the check I mention in comment 1 as they are not in the HTTP family

Then maybe we should modify that check to respect SecurityPolicy::isAccessWhiteListed.

&gt; 2. We would like all origins to be able to request these resources, whether or not the request succeeds is decided by whether CORS headers are supplied in the response.

You want all origins to be able to request these resources, or just chrome-extension origins? Isn&apos;t the list of chrome-extension origins a finite one you know when you install the extensions? Couldn&apos;t you just add them then?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543407</commentid>
    <comment_count>20</comment_count>
    <who name="Cris Neckar">cdn</who>
    <bug_when>2012-01-26 12:55:37 -0800</bug_when>
    <thetext>&gt; You want all origins to be able to request these resources, or just chrome-extension origins? Isn&apos;t the list of chrome-extension origins a finite one you know when you install the extensions? Couldn&apos;t you just add them then?

We want all origins to be able to request them (whether it is allowed or not is decided by CORS headers). The only thing that isAccessWhiteListed() decides in the case of XHR is whether it is treated as a same origin request. It is perfectly valid for example for http://a.com to send and XHR request to http://b.com (although if b.com does not specifically set a CORS header to allow such requests it will fail).

The most telling example would be the case of a extension which injects a content script into all origins. This script would run in the context of every site and would therefore currently have no way of XHRing resources from the extension that it is part of.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543410</commentid>
    <comment_count>21</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2012-01-26 13:01:08 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; &gt; You want all origins to be able to request these resources, or just chrome-extension origins? Isn&apos;t the list of chrome-extension origins a finite one you know when you install the extensions? Couldn&apos;t you just add them then?
&gt; 
&gt; We want all origins to be able to request them (whether it is allowed or not is decided by CORS headers). The only thing that isAccessWhiteListed() decides in the case of XHR is whether it is treated as a same origin request. It is perfectly valid for example for http://a.com to send and XHR request to http://b.com (although if b.com does not specifically set a CORS header to allow such requests it will fail).
&gt; 
&gt; The most telling example would be the case of a extension which injects a content script into all origins. This script would run in the context of every site and would therefore currently have no way of XHRing resources from the extension that it is part of.

That case should definitely be covered by the fix for https://bugs.webkit.org/show_bug.cgi?id=59843.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543413</commentid>
    <comment_count>22</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-26 13:03:40 -0800</bug_when>
    <thetext>Jessie, this mechanism you&apos;re referring to are for granting certain origins more privileges than they had before.  That&apos;s not really related to this patch.

Currently only requests for HTTP and HTTPS can use CORS.  This patch lets other schemes respond with CORS headers (e.g., Access-Control-Allow-Origin).  For example, a Chrome Extension might want to allow web origins to access some of its resources (e.g., images).  With this patch, it can do that by sending an appropriate Access-Control-Allow-Origin header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543415</commentid>
    <comment_count>23</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-26 13:04:06 -0800</bug_when>
    <thetext>(Feel free to ping me on IRC if that doesn&apos;t make sense to you.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543433</commentid>
    <comment_count>24</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-01-26 13:31:03 -0800</bug_when>
    <thetext>&gt; We would like for a site (http://a.com) to be able to request resource.xml via XHR.

From later comments, it appears that it&apos;s not &quot;a site&quot;, but any site. Is my understanding correct?

If pages in the Open Web start using chrome-extension URLs, wouldn&apos;t that be similar in spirit to features like &lt;http://msdn.microsoft.com/en-us/library/ie/ms533086(v=vs.85).aspx&gt;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543450</commentid>
    <comment_count>25</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-01-26 13:53:14 -0800</bug_when>
    <thetext>&gt; 1. They will be blocked by the check I mention in comment 1 as they are not in the HTTP family

I think that requests allowed by addOriginAccessWhitelistEntryWithSourceOrigin are not subject to this check. They are handled as same origin requests (it would not make much sense to send a true CORS request from a safari-extension origin to a Web site).

It seems that it should be possible to use addOriginAccessWhitelistEntryWithSourceOrigin for what you want by abusing the mechanism. For each loaded page, you&apos;d allow its origin access chrome-extension. That would be inefficient, and would result in abandoned memory, but it should try to have clarity on what the proposed API allows in addition to what we already have to avoid future confusion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543462</commentid>
    <comment_count>26</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-26 14:09:15 -0800</bug_when>
    <thetext>&gt; From later comments, it appears that it&apos;s not &quot;a site&quot;, but any site. Is my understanding correct?
&gt; 
&gt; If pages in the Open Web start using chrome-extension URLs, wouldn&apos;t that be similar in spirit to features like &lt;http://msdn.microsoft.com/en-us/library/ie/ms533086(v=vs.85).aspx&gt;?

Not really.  The main use case here is an extension&apos;s content script that wants to use textures stored in the extension package in WebGL.  Because WebGL requires the loaded images to use CORS, the extension needs to be able to set CORS headers.

&gt; I think that requests allowed by addOriginAccessWhitelistEntryWithSourceOrigin are not subject to this check. They are handled as same origin requests

Correct.

&gt; It seems that it should be possible to use addOriginAccessWhitelistEntryWithSourceOrigin for what you want by abusing the mechanism. For each loaded page, you&apos;d allow its origin access chrome-extension. That would be inefficient, and would result in abandoned memory, but it should try to have clarity on what the proposed API allows in addition to what we already have to avoid future confusion.

Unfortunately, that&apos;s not the case.  We don&apos;t want to grant access to the whole origin, we just want the extension to be able to use CORS to control access to its resources, just like a web site can use CORS to control access to its resources.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543465</commentid>
    <comment_count>27</comment_count>
      <attachid>124147</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-26 14:11:15 -0800</bug_when>
    <thetext>Comment on attachment 124147
Patch

This patch looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543476</commentid>
    <comment_count>28</comment_count>
      <attachid>124147</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-01-26 14:18:46 -0800</bug_when>
    <thetext>Comment on attachment 124147
Patch

We haven&apos;t finished the discussion. That should have been obvious.

So, the use case is actually much more limited. There should be a way to limit the change in a way without exposing the evil to the Open Web.

Also, if the issue here is not with getting the data (which is already possible from content scripts), but with fooling WebGL into accepting it, shouldn&apos;t you look into that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543502</commentid>
    <comment_count>29</comment_count>
    <who name="Cris Neckar">cdn</who>
    <bug_when>2012-01-26 14:42:34 -0800</bug_when>
    <thetext>Posting abarth&apos;s explanation from #webkit of the reasoning behind this patch 


Currently, the default is that web pages can include whatever resources (e.g., images) from chrome-extensions. this was a mistake in the original design of the chrome extension system which we are now correcting as part of our &quot;manifest_version 2&quot; project. unfortunately, there are a handful of extensions that use this facility for purposes that seem fine so we want to continue to allow them to do that.

therefore, we&apos;re letting extensions control access to their resources using CORS
which will let them scope access in a more fine-grained manner leading to less use of the chrome-extension URI scheme outside of extensions but these are all internal chrome-internal matters.

The relevant part for WebKit is that we want to be able to use CORS with some non-HTTP/HTTPS schemes how we choose to use that functionality in Chrome is up to the Chromium project</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543561</commentid>
    <comment_count>30</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-01-26 15:27:31 -0800</bug_when>
    <thetext>We had much more discussion on IRC. I think that this change is not so great, as it adds a too big handle to SecurityOrigin, that&apos;s too easy to abuse.

Also, we have way too many bells and whistles on SecurityOrigin already, to the point that we needed a long discussion here about how existing ones related to this one. That&apos;s terrible.

I&apos;m fine with getting this patch landed in current form if it&apos;s really important.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543572</commentid>
    <comment_count>31</comment_count>
      <attachid>124147</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-01-26 15:31:36 -0800</bug_when>
    <thetext>Comment on attachment 124147
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=124147&amp;action=review

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests. (OOPS!)

Without this, of course.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543579</commentid>
    <comment_count>32</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-26 15:36:20 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        No new tests. (OOPS!)
&gt; 
&gt; Without this, of course.

The change is hard to test in run-webkit-tests because it only uses HTTPFamily URLs.  Cris is adding a test downstream along with the code that calls this API: http://codereview.chromium.org/9152022/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543599</commentid>
    <comment_count>33</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-01-26 15:50:19 -0800</bug_when>
    <thetext>Understood. What I&apos;m saying is that it won&apos;t land with an OOPS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543600</commentid>
    <comment_count>34</comment_count>
    <who name="Cris Neckar">cdn</who>
    <bug_when>2012-01-26 15:50:51 -0800</bug_when>
    <thetext>Committed r106057: &lt;http://trac.webkit.org/changeset/106057&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124016</attachid>
            <date>2012-01-25 14:48:24 -0800</date>
            <delta_ts>2012-01-25 15:18:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77041-20120125144823.patch</filename>
            <type>text/plain</type>
            <size>6704</size>
            <attacher name="Cris Neckar">cdn</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNTkyOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAxLTI1ICBDcmlzIE5l
Y2thciAgPGNkbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGEgc2NoZW1lIHJlZ2lzdHJ5
IGZvciBDT1JTIHJlcXVlc3RzLiBBbGxvdyBzaW1wbGUgQ09SUyByZXF1ZXN0cyB0byBiZSBtYWRl
IHRvIHJlZ2lzdGVyZWQgc2NoZW1lcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTc3MDQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBsb2FkZXIv
RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
VGhyZWFkYWJsZUxvYWRlcjo6bWFrZVNpbXBsZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdCk6Cisg
ICAgICAgICogcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q09SU0VuYWJsZWRTY2hlbWVzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyQ09SU0VuYWJsZWRTY2hlbWUpOgorICAgICAgICAo
V2ViQ29yZTo6U2NoZW1lUmVnaXN0cnk6OmlzQ09SU0VuYWJsZWRTY2hlbWUpOgorICAgICAgICAq
IHBsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5Lmg6CisgICAgICAgIChTY2hlbWVSZWdpc3RyeSk6CisK
IDIwMTItMDEtMjUgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW2Nocm9taXVtXSBSZWZhY3RvciBDbGlwYm9hcmQgaW52YWxpZGF0ZSBmb3IgRGF0YVRyYW5z
ZmVySXRlbS9EYXRhVHJhbnNmZXJJdGVtTGlzdCBpbnRvIGEgd3JhcHBlcgpJbmRleDogU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAJKHJl
dmlzaW9uIDEwNTkwMikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFi
bGVMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVz
b3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiU2NoZW1lUmVnaXN0cnkuaCIKICNpbmNsdWRlICJT
ZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXJDbGllbnQuaCIKICNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgpAQCAtMTE1LDkgKzExNiw4IEBAIHZvaWQgRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyOjptYWtlU2ltcGwKICAgICBBU1NFUlQobV9vcHRpb25zLnByZWZs
aWdodFBvbGljeSAhPSBGb3JjZVByZWZsaWdodCk7CiAgICAgQVNTRVJUKG1fb3B0aW9ucy5wcmVm
bGlnaHRQb2xpY3kgPT0gUHJldmVudFByZWZsaWdodCB8fCBpc1NpbXBsZUNyb3NzT3JpZ2luQWNj
ZXNzUmVxdWVzdChyZXF1ZXN0Lmh0dHBNZXRob2QoKSwgcmVxdWVzdC5odHRwSGVhZGVyRmllbGRz
KCkpKTsKIAotICAgIC8vIENyb3NzLW9yaWdpbiByZXF1ZXN0cyBhcmUgb25seSBkZWZpbmVkIGZv
ciBIVFRQLiBXZSB3b3VsZCBjYXRjaCB0aGlzIHdoZW4gY2hlY2tpbmcgcmVzcG9uc2UgaGVhZGVy
cyBsYXRlciwgYnV0IHRoZXJlIGlzIG5vIHJlYXNvbiB0byBzZW5kIGEgcmVxdWVzdCB0aGF0J3Mg
Z3VhcmFudGVlZCB0byBiZSBkZW5pZWQuCi0gICAgLy8gRklYTUU6IENvbnNpZGVyIGFsbG93aW5n
IHNpbXBsZSBDT1JTIHJlcXVlc3RzIHRvIG5vbi1IVFRQIFVSTHMuCi0gICAgaWYgKCFyZXF1ZXN0
LnVybCgpLnByb3RvY29sSW5IVFRQRmFtaWx5KCkpIHsKKyAgICAvLyBDcm9zcy1vcmlnaW4gcmVx
dWVzdHMgYXJlIG9ubHkgYWxsb3dlZCBmb3IgSFRUUCBhbmQgcmVnaXN0ZXJlZCBzY2hlbWVzLiBX
ZSB3b3VsZCBjYXRjaCB0aGlzIHdoZW4gY2hlY2tpbmcgcmVzcG9uc2UgaGVhZGVycyBsYXRlciwg
YnV0IHRoZXJlIGlzIG5vIHJlYXNvbiB0byBzZW5kIGEgcmVxdWVzdCB0aGF0J3MgZ3VhcmFudGVl
ZCB0byBiZSBkZW5pZWQuCisgICAgaWYgKCFyZXF1ZXN0LnVybCgpLnByb3RvY29sSW5IVFRQRmFt
aWx5KCkgJiYgIVNjaGVtZVJlZ2lzdHJ5Ojppc0NPUlNFbmFibGVkU2NoZW1lKHJlcXVlc3QudXJs
KCkucHJvdG9jb2woKSkpIHsKICAgICAgICAgbV9jbGllbnQtPmRpZEZhaWwoUmVzb3VyY2VFcnJv
cihlcnJvckRvbWFpbldlYktpdEludGVybmFsLCAwLCByZXF1ZXN0LnVybCgpLnN0cmluZygpLCAi
Q3Jvc3Mgb3JpZ2luIHJlcXVlc3RzIGFyZSBvbmx5IHN1cHBvcnRlZCBmb3IgSFRUUC4iKSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hl
bWVSZWdpc3RyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2No
ZW1lUmVnaXN0cnkuY3BwCShyZXZpc2lvbiAxMDU5MDIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1Miw2ICsxNTIsMTIg
QEAgc3RhdGljIFVSTFNjaGVtZXNNYXAmIHNjaGVtZXNBbGxvd2luZ0RhdAogICAgIHJldHVybiBz
Y2hlbWVzQWxsb3dpbmdEYXRhYmFzZUFjY2Vzc0luUHJpdmF0ZUJyb3dzaW5nOwogfQogCitzdGF0
aWMgVVJMU2NoZW1lc01hcCYgQ09SU0VuYWJsZWRTY2hlbWVzKCkKK3sKKyAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKFVSTFNjaGVtZXNNYXAsIENPUlNFbmFibGVkU2NoZW1lcywgKCkpOworICAgIHJl
dHVybiBDT1JTRW5hYmxlZFNjaGVtZXM7Cit9CisKIGJvb2wgU2NoZW1lUmVnaXN0cnk6OnNob3Vs
ZFRyZWF0VVJMU2NoZW1lQXNMb2NhbChjb25zdCBTdHJpbmcmIHNjaGVtZSkKIHsKICAgICBpZiAo
c2NoZW1lLmlzRW1wdHkoKSkKQEAgLTI3Myw0ICsyNzksMTYgQEAgYm9vbCBTY2hlbWVSZWdpc3Ry
eTo6YWxsb3dzRGF0YWJhc2VBY2NlcwogICAgIHJldHVybiBzY2hlbWVzQWxsb3dpbmdEYXRhYmFz
ZUFjY2Vzc0luUHJpdmF0ZUJyb3dzaW5nKCkuY29udGFpbnMoc2NoZW1lKTsKIH0KIAordm9pZCBT
Y2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJDT1JTRW5hYmxlZFNjaGVtZShjb25zdCBTdHJpbmcmIHNj
aGVtZSkKK3sKKyAgICBDT1JTRW5hYmxlZFNjaGVtZXMoKS5hZGQoc2NoZW1lKTsKK30KKworYm9v
bCBTY2hlbWVSZWdpc3RyeTo6aXNDT1JTRW5hYmxlZFNjaGVtZShjb25zdCBTdHJpbmcmIHNjaGVt
ZSkKK3sKKyAgICBpZiAoc2NoZW1lLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIHJldHVybiBDT1JTRW5hYmxlZFNjaGVtZXMoKS5jb250YWlucyhzY2hlbWUpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hl
bWVSZWdpc3RyeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVt
ZVJlZ2lzdHJ5LmgJKHJldmlzaW9uIDEwNTkwMikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1NjaGVtZVJlZ2lzdHJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTc4LDYgKzc4LDEwIEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgYm9vbCBhbGxvd3NMb2NhbFN0b3JhZ2VBY2Nlc3NJblByaXZhdGVCcm93
c2luZyhjb25zdCBTdHJpbmcmIHNjaGVtZSk7CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJVUkxT
Y2hlbWVBc0FsbG93aW5nRGF0YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93c2luZyhjb25zdCBTdHJp
bmcmIHNjaGVtZSk7CiAgICAgc3RhdGljIGJvb2wgYWxsb3dzRGF0YWJhc2VBY2Nlc3NJblByaXZh
dGVCcm93c2luZyhjb25zdCBTdHJpbmcmIHNjaGVtZSk7CisKKyAgICAvLyBBbGxvdyBub24tSFRU
UCBzY2hlbWVzIHRvIGJlIHJlZ2lzdGVyZWQgdG8gYWxsb3cgQ09SUyByZXF1ZXN0cy4KKyAgICBz
dGF0aWMgdm9pZCByZWdpc3RlckNPUlNFbmFibGVkU2NoZW1lKGNvbnN0IFN0cmluZyYgc2NoZW1l
KTsKKyAgICBzdGF0aWMgYm9vbCBpc0NPUlNFbmFibGVkU2NoZW1lKGNvbnN0IFN0cmluZyYgc2No
ZW1lKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCShyZXZpc2lvbiAxMDU5MjkpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAxLTI1ICBDcmlz
IE5lY2thciAgPGNkbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIEFQSSB0byByZWdpc3Rl
ciBzY2hlbWVzIHdoaWNoIGNhbiBiZSBzZW50IHNpbXBsZSBDT1JTIHJlcXVlc3RzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcwNDEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJTZWN1
cml0eVBvbGljeS5oOgorICAgICAgICAoV2ViU2VjdXJpdHlQb2xpY3kpOgorICAgICAgICAqIHNy
Yy9XZWJTZWN1cml0eVBvbGljeS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNlY3VyaXR5UG9s
aWN5OjpyZWdpc3RlckNPUlNFbmFibGVkU2NoZW1lKToKKyAgICAgICAgKFdlYktpdCk6CisKIDIw
MTItMDEtMjUgIEpvc2h1YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJ
bmRleGVkREI6IE5lZWQgdG8gZGlzdGluZ3Vpc2gga2V5IHBhdGhzIHRoYXQgZG9uJ3QgeWllbGQg
dmFsdWUgdnMuIHlpZWxkIGludmFsaWQga2V5CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJTZWN1cml0eVBvbGljeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlNlY3VyaXR5UG9saWN5LmgJKHJldmlzaW9uIDEwNTkwMikKKysr
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNlY3VyaXR5UG9saWN5LmgJKHdvcmtp
bmcgY29weSkKQEAgLTYxLDYgKzYxLDkgQEAgcHVibGljOgogICAgIC8vIGluY2x1ZGVkIGJ5IGFu
IEhUVFBTIHBhZ2UuCiAgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9pZCByZWdpc3RlclVSTFNj
aGVtZUFzU2VjdXJlKGNvbnN0IFdlYlN0cmluZyYpOwogCisgICAgLy8gUmVnaXN0ZXJzIGEgbm9u
LUhUVFAgVVJMIHNjaGVtZSB3aGljaCBjYW4gYmUgc2VudCBDT1JTIHJlcXVlc3RzLiAKKyAgICBX
RUJLSVRfRVhQT1JUIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQ09SU0VuYWJsZWRTY2hlbWUoY29uc3Qg
V2ViU3RyaW5nJik7CisKICAgICAvLyBTdXBwb3J0IGZvciB3aGl0ZWxpc3RpbmcgYWNjZXNzIHRv
IG9yaWdpbnMgYmV5b25kIHRoZSBzYW1lLW9yaWdpbiBwb2xpY3kuCiAgICAgV0VCS0lUX0VYUE9S
VCBzdGF0aWMgdm9pZCBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgKICAgICAgICAgY29u
c3QgV2ViVVJMJiBzb3VyY2VPcmlnaW4sIGNvbnN0IFdlYlN0cmluZyYgZGVzdGluYXRpb25Qcm90
b2NvbCwKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNlY3VyaXR5UG9saWN5
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZWN1cml0
eVBvbGljeS5jcHAJKHJldmlzaW9uIDEwNTkwMikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlNlY3VyaXR5UG9saWN5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjMsNiArNjMsMTEg
QEAgdm9pZCBXZWJTZWN1cml0eVBvbGljeTo6cmVnaXN0ZXJVUkxTY2hlbQogICAgIFNjaGVtZVJl
Z2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlKHNjaGVtZSk7CiB9CiAKK3ZvaWQgV2Vi
U2VjdXJpdHlQb2xpY3k6OnJlZ2lzdGVyQ09SU0VuYWJsZWRTY2hlbWUoY29uc3QgV2ViU3RyaW5n
JiBzY2hlbWUpCit7CisgICAgU2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyQ09SU0VuYWJsZWRTY2hl
bWUoc2NoZW1lKTsKK30KKwogdm9pZCBXZWJTZWN1cml0eVBvbGljeTo6YWRkT3JpZ2luQWNjZXNz
V2hpdGVsaXN0RW50cnkoCiAgICAgY29uc3QgV2ViVVJMJiBzb3VyY2VPcmlnaW4sCiAgICAgY29u
c3QgV2ViU3RyaW5nJiBkZXN0aW5hdGlvblByb3RvY29sLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124022</attachid>
            <date>2012-01-25 15:18:05 -0800</date>
            <delta_ts>2012-01-25 15:40:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77041-20120125151803.patch</filename>
            <type>text/plain</type>
            <size>6798</size>
            <attacher name="Cris Neckar">cdn</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNTkyOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAxLTI1ICBDcmlzIE5l
Y2thciAgPGNkbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGEgc2NoZW1lIHJlZ2lzdHJ5
IGZvciBDT1JTIHJlcXVlc3RzLiBBbGxvdyBzaW1wbGUgQ09SUyByZXF1ZXN0cyB0byBiZSBtYWRl
IHRvIHJlZ2lzdGVyZWQgc2NoZW1lcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTc3MDQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBsb2FkZXIv
RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
VGhyZWFkYWJsZUxvYWRlcjo6bWFrZVNpbXBsZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdCk6Cisg
ICAgICAgICogcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q09SU0VuYWJsZWRTY2hlbWVzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyQ09SU0VuYWJsZWRTY2hlbWUpOgorICAgICAgICAo
V2ViQ29yZTo6U2NoZW1lUmVnaXN0cnk6OmlzQ09SU0VuYWJsZWRTY2hlbWUpOgorICAgICAgICAq
IHBsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5Lmg6CisgICAgICAgIChTY2hlbWVSZWdpc3RyeSk6CisK
IDIwMTItMDEtMjUgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW2Nocm9taXVtXSBSZWZhY3RvciBDbGlwYm9hcmQgaW52YWxpZGF0ZSBmb3IgRGF0YVRyYW5z
ZmVySXRlbS9EYXRhVHJhbnNmZXJJdGVtTGlzdCBpbnRvIGEgd3JhcHBlcgpJbmRleDogU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAJKHJl
dmlzaW9uIDEwNTkwMikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFi
bGVMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVz
b3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiU2NoZW1lUmVnaXN0cnkuaCIKICNpbmNsdWRlICJT
ZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXJDbGllbnQuaCIKICNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgpAQCAtMTE1LDkgKzExNiw4IEBAIHZvaWQgRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyOjptYWtlU2ltcGwKICAgICBBU1NFUlQobV9vcHRpb25zLnByZWZs
aWdodFBvbGljeSAhPSBGb3JjZVByZWZsaWdodCk7CiAgICAgQVNTRVJUKG1fb3B0aW9ucy5wcmVm
bGlnaHRQb2xpY3kgPT0gUHJldmVudFByZWZsaWdodCB8fCBpc1NpbXBsZUNyb3NzT3JpZ2luQWNj
ZXNzUmVxdWVzdChyZXF1ZXN0Lmh0dHBNZXRob2QoKSwgcmVxdWVzdC5odHRwSGVhZGVyRmllbGRz
KCkpKTsKIAotICAgIC8vIENyb3NzLW9yaWdpbiByZXF1ZXN0cyBhcmUgb25seSBkZWZpbmVkIGZv
ciBIVFRQLiBXZSB3b3VsZCBjYXRjaCB0aGlzIHdoZW4gY2hlY2tpbmcgcmVzcG9uc2UgaGVhZGVy
cyBsYXRlciwgYnV0IHRoZXJlIGlzIG5vIHJlYXNvbiB0byBzZW5kIGEgcmVxdWVzdCB0aGF0J3Mg
Z3VhcmFudGVlZCB0byBiZSBkZW5pZWQuCi0gICAgLy8gRklYTUU6IENvbnNpZGVyIGFsbG93aW5n
IHNpbXBsZSBDT1JTIHJlcXVlc3RzIHRvIG5vbi1IVFRQIFVSTHMuCi0gICAgaWYgKCFyZXF1ZXN0
LnVybCgpLnByb3RvY29sSW5IVFRQRmFtaWx5KCkpIHsKKyAgICAvLyBDcm9zcy1vcmlnaW4gcmVx
dWVzdHMgYXJlIG9ubHkgYWxsb3dlZCBmb3IgSFRUUCBhbmQgcmVnaXN0ZXJlZCBzY2hlbWVzLiBX
ZSB3b3VsZCBjYXRjaCB0aGlzIHdoZW4gY2hlY2tpbmcgcmVzcG9uc2UgaGVhZGVycyBsYXRlciwg
YnV0IHRoZXJlIGlzIG5vIHJlYXNvbiB0byBzZW5kIGEgcmVxdWVzdCB0aGF0J3MgZ3VhcmFudGVl
ZCB0byBiZSBkZW5pZWQuCisgICAgaWYgKCFTY2hlbWVSZWdpc3RyeTo6aXNDT1JTRW5hYmxlZFNj
aGVtZShyZXF1ZXN0LnVybCgpLnByb3RvY29sKCkpKSB7CiAgICAgICAgIG1fY2xpZW50LT5kaWRG
YWlsKFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgcmVxdWVzdC51
cmwoKS5zdHJpbmcoKSwgIkNyb3NzIG9yaWdpbiByZXF1ZXN0cyBhcmUgb25seSBzdXBwb3J0ZWQg
Zm9yIEhUVFAuIikpOwogICAgICAgICByZXR1cm47CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcAkocmV2aXNpb24gMTA1OTAyKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNTIsNiArMTUyLDE4IEBAIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBzY2hlbWVzQWxsb3dpbmdE
YXQKICAgICByZXR1cm4gc2NoZW1lc0FsbG93aW5nRGF0YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93
c2luZzsKIH0KIAorc3RhdGljIFVSTFNjaGVtZXNNYXAmIENPUlNFbmFibGVkU2NoZW1lcygpCit7
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChVUkxTY2hlbWVzTWFwLCBDT1JTRW5hYmxlZFNjaGVt
ZXMsICgpKTsKKworICAgIGlmIChDT1JTRW5hYmxlZFNjaGVtZXMuaXNFbXB0eSgpKSB7CisgICAg
ICAgIENPUlNFbmFibGVkU2NoZW1lcy5hZGQoImh0dHAiKTsKKyAgICAgICAgQ09SU0VuYWJsZWRT
Y2hlbWVzLmFkZCgiaHR0cHMiKTsKKyAgICB9CisKKyAgICByZXR1cm4gQ09SU0VuYWJsZWRTY2hl
bWVzOworfQorCiBib29sIFNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzTG9j
YWwoY29uc3QgU3RyaW5nJiBzY2hlbWUpCiB7CiAgICAgaWYgKHNjaGVtZS5pc0VtcHR5KCkpCkBA
IC0yNzMsNCArMjg1LDE2IEBAIGJvb2wgU2NoZW1lUmVnaXN0cnk6OmFsbG93c0RhdGFiYXNlQWNj
ZXMKICAgICByZXR1cm4gc2NoZW1lc0FsbG93aW5nRGF0YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93
c2luZygpLmNvbnRhaW5zKHNjaGVtZSk7CiB9CiAKK3ZvaWQgU2NoZW1lUmVnaXN0cnk6OnJlZ2lz
dGVyQ09SU0VuYWJsZWRTY2hlbWUoY29uc3QgU3RyaW5nJiBzY2hlbWUpCit7CisgICAgQ09SU0Vu
YWJsZWRTY2hlbWVzKCkuYWRkKHNjaGVtZSk7Cit9CisKK2Jvb2wgU2NoZW1lUmVnaXN0cnk6Omlz
Q09SU0VuYWJsZWRTY2hlbWUoY29uc3QgU3RyaW5nJiBzY2hlbWUpCit7CisgICAgaWYgKHNjaGVt
ZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gQ09SU0VuYWJs
ZWRTY2hlbWVzKCkuY29udGFpbnMoc2NoZW1lKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5oCShyZXZpc2lv
biAxMDU5MDIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5oCSh3
b3JraW5nIGNvcHkpCkBAIC03OCw2ICs3OCwxMCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wg
YWxsb3dzTG9jYWxTdG9yYWdlQWNjZXNzSW5Qcml2YXRlQnJvd3NpbmcoY29uc3QgU3RyaW5nJiBz
Y2hlbWUpOwogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNBbGxvd2luZ0RhdGFi
YXNlQWNjZXNzSW5Qcml2YXRlQnJvd3NpbmcoY29uc3QgU3RyaW5nJiBzY2hlbWUpOwogICAgIHN0
YXRpYyBib29sIGFsbG93c0RhdGFiYXNlQWNjZXNzSW5Qcml2YXRlQnJvd3NpbmcoY29uc3QgU3Ry
aW5nJiBzY2hlbWUpOworCisgICAgLy8gQWxsb3cgbm9uLUhUVFAgc2NoZW1lcyB0byBiZSByZWdp
c3RlcmVkIHRvIGFsbG93IENPUlMgcmVxdWVzdHMuCisgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJD
T1JTRW5hYmxlZFNjaGVtZShjb25zdCBTdHJpbmcmIHNjaGVtZSk7CisgICAgc3RhdGljIGJvb2wg
aXNDT1JTRW5hYmxlZFNjaGVtZShjb25zdCBTdHJpbmcmIHNjaGVtZSk7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24g
MTA1OTI5KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wMS0yNSAgQ3JpcyBOZWNrYXIgIDxjZG5AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIEFkZCBBUEkgdG8gcmVnaXN0ZXIgc2NoZW1lcyB3aGljaCBjYW4g
YmUgc2VudCBzaW1wbGUgQ09SUyByZXF1ZXN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViU2VjdXJpdHlQb2xpY3kuaDoKKyAgICAg
ICAgKFdlYlNlY3VyaXR5UG9saWN5KToKKyAgICAgICAgKiBzcmMvV2ViU2VjdXJpdHlQb2xpY3ku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTZWN1cml0eVBvbGljeTo6cmVnaXN0ZXJDT1JTRW5h
YmxlZFNjaGVtZSk6CisgICAgICAgIChXZWJLaXQpOgorCiAyMDEyLTAxLTI1ICBKb3NodWEgQmVs
bCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW5kZXhlZERCOiBOZWVkIHRvIGRp
c3Rpbmd1aXNoIGtleSBwYXRocyB0aGF0IGRvbid0IHlpZWxkIHZhbHVlIHZzLiB5aWVsZCBpbnZh
bGlkIGtleQpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2VjdXJpdHlQ
b2xpY3kuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJT
ZWN1cml0eVBvbGljeS5oCShyZXZpc2lvbiAxMDU5MDIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJTZWN1cml0eVBvbGljeS5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw2ICs2
MSw5IEBAIHB1YmxpYzoKICAgICAvLyBpbmNsdWRlZCBieSBhbiBIVFRQUyBwYWdlLgogICAgIFdF
QktJVF9FWFBPUlQgc3RhdGljIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc1NlY3VyZShjb25zdCBX
ZWJTdHJpbmcmKTsKIAorICAgIC8vIFJlZ2lzdGVycyBhIG5vbi1IVFRQIFVSTCBzY2hlbWUgd2hp
Y2ggY2FuIGJlIHNlbnQgQ09SUyByZXF1ZXN0cy4gCisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMg
dm9pZCByZWdpc3RlckNPUlNFbmFibGVkU2NoZW1lKGNvbnN0IFdlYlN0cmluZyYpOworCiAgICAg
Ly8gU3VwcG9ydCBmb3Igd2hpdGVsaXN0aW5nIGFjY2VzcyB0byBvcmlnaW5zIGJleW9uZCB0aGUg
c2FtZS1vcmlnaW4gcG9saWN5LgogICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgYWRkT3Jp
Z2luQWNjZXNzV2hpdGVsaXN0RW50cnkoCiAgICAgICAgIGNvbnN0IFdlYlVSTCYgc291cmNlT3Jp
Z2luLCBjb25zdCBXZWJTdHJpbmcmIGRlc3RpbmF0aW9uUHJvdG9jb2wsCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZWN1cml0eVBvbGljeS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2VjdXJpdHlQb2xpY3kuY3BwCShyZXZpc2lv
biAxMDU5MDIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZWN1cml0eVBvbGlj
eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYzLDYgKzYzLDExIEBAIHZvaWQgV2ViU2VjdXJpdHlQ
b2xpY3k6OnJlZ2lzdGVyVVJMU2NoZW0KICAgICBTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxT
Y2hlbWVBc1NlY3VyZShzY2hlbWUpOwogfQogCit2b2lkIFdlYlNlY3VyaXR5UG9saWN5OjpyZWdp
c3RlckNPUlNFbmFibGVkU2NoZW1lKGNvbnN0IFdlYlN0cmluZyYgc2NoZW1lKQoreworICAgIFNj
aGVtZVJlZ2lzdHJ5OjpyZWdpc3RlckNPUlNFbmFibGVkU2NoZW1lKHNjaGVtZSk7Cit9CisKIHZv
aWQgV2ViU2VjdXJpdHlQb2xpY3k6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KAogICAg
IGNvbnN0IFdlYlVSTCYgc291cmNlT3JpZ2luLAogICAgIGNvbnN0IFdlYlN0cmluZyYgZGVzdGlu
YXRpb25Qcm90b2NvbCwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124024</attachid>
            <date>2012-01-25 15:40:50 -0800</date>
            <delta_ts>2012-01-25 17:46:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77041-20120125154048.patch</filename>
            <type>text/plain</type>
            <size>6954</size>
            <attacher name="Cris Neckar">cdn</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNTkyOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAxLTI1ICBDcmlzIE5l
Y2thciAgPGNkbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGEgc2NoZW1lIHJlZ2lzdHJ5
IGZvciBDT1JTIHJlcXVlc3RzLiBBbGxvdyBzaW1wbGUgQ09SUyByZXF1ZXN0cyB0byBiZSBtYWRl
IHRvIHJlZ2lzdGVyZWQgc2NoZW1lcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTc3MDQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBsb2FkZXIv
RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
VGhyZWFkYWJsZUxvYWRlcjo6bWFrZVNpbXBsZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdCk6Cisg
ICAgICAgICogcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q09SU0VuYWJsZWRTY2hlbWVzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyQ09SU0VuYWJsZWRTY2hlbWUpOgorICAgICAgICAo
V2ViQ29yZTo6U2NoZW1lUmVnaXN0cnk6OmlzQ09SU0VuYWJsZWRTY2hlbWUpOgorICAgICAgICAq
IHBsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5Lmg6CisgICAgICAgIChTY2hlbWVSZWdpc3RyeSk6CisK
IDIwMTItMDEtMjUgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW2Nocm9taXVtXSBSZWZhY3RvciBDbGlwYm9hcmQgaW52YWxpZGF0ZSBmb3IgRGF0YVRyYW5z
ZmVySXRlbS9EYXRhVHJhbnNmZXJJdGVtTGlzdCBpbnRvIGEgd3JhcHBlcgpJbmRleDogU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAJKHJl
dmlzaW9uIDEwNTkwMikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFi
bGVMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVz
b3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiU2NoZW1lUmVnaXN0cnkuaCIKICNpbmNsdWRlICJT
ZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXJDbGllbnQuaCIKICNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgpAQCAtMTE1LDkgKzExNiw4IEBAIHZvaWQgRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyOjptYWtlU2ltcGwKICAgICBBU1NFUlQobV9vcHRpb25zLnByZWZs
aWdodFBvbGljeSAhPSBGb3JjZVByZWZsaWdodCk7CiAgICAgQVNTRVJUKG1fb3B0aW9ucy5wcmVm
bGlnaHRQb2xpY3kgPT0gUHJldmVudFByZWZsaWdodCB8fCBpc1NpbXBsZUNyb3NzT3JpZ2luQWNj
ZXNzUmVxdWVzdChyZXF1ZXN0Lmh0dHBNZXRob2QoKSwgcmVxdWVzdC5odHRwSGVhZGVyRmllbGRz
KCkpKTsKIAotICAgIC8vIENyb3NzLW9yaWdpbiByZXF1ZXN0cyBhcmUgb25seSBkZWZpbmVkIGZv
ciBIVFRQLiBXZSB3b3VsZCBjYXRjaCB0aGlzIHdoZW4gY2hlY2tpbmcgcmVzcG9uc2UgaGVhZGVy
cyBsYXRlciwgYnV0IHRoZXJlIGlzIG5vIHJlYXNvbiB0byBzZW5kIGEgcmVxdWVzdCB0aGF0J3Mg
Z3VhcmFudGVlZCB0byBiZSBkZW5pZWQuCi0gICAgLy8gRklYTUU6IENvbnNpZGVyIGFsbG93aW5n
IHNpbXBsZSBDT1JTIHJlcXVlc3RzIHRvIG5vbi1IVFRQIFVSTHMuCi0gICAgaWYgKCFyZXF1ZXN0
LnVybCgpLnByb3RvY29sSW5IVFRQRmFtaWx5KCkpIHsKKyAgICAvLyBDcm9zcy1vcmlnaW4gcmVx
dWVzdHMgYXJlIG9ubHkgYWxsb3dlZCBmb3IgSFRUUCBhbmQgcmVnaXN0ZXJlZCBzY2hlbWVzLiBX
ZSB3b3VsZCBjYXRjaCB0aGlzIHdoZW4gY2hlY2tpbmcgcmVzcG9uc2UgaGVhZGVycyBsYXRlciwg
YnV0IHRoZXJlIGlzIG5vIHJlYXNvbiB0byBzZW5kIGEgcmVxdWVzdCB0aGF0J3MgZ3VhcmFudGVl
ZCB0byBiZSBkZW5pZWQuCisgICAgaWYgKCFTY2hlbWVSZWdpc3RyeTo6aXNDT1JTRW5hYmxlZFNj
aGVtZShyZXF1ZXN0LnVybCgpLnByb3RvY29sKCkpKSB7CiAgICAgICAgIG1fY2xpZW50LT5kaWRG
YWlsKFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgcmVxdWVzdC51
cmwoKS5zdHJpbmcoKSwgIkNyb3NzIG9yaWdpbiByZXF1ZXN0cyBhcmUgb25seSBzdXBwb3J0ZWQg
Zm9yIEhUVFAuIikpOwogICAgICAgICByZXR1cm47CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcAkocmV2aXNpb24gMTA1OTAyKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNSw2ICsyNSw3IEBACiAgKi8KICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTY2hl
bWVSZWdpc3RyeS5oIgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtMTUyLDYgKzE1MywxOSBAQCBzdGF0aWMgVVJMU2NoZW1lc01hcCYgc2No
ZW1lc0FsbG93aW5nRGF0CiAgICAgcmV0dXJuIHNjaGVtZXNBbGxvd2luZ0RhdGFiYXNlQWNjZXNz
SW5Qcml2YXRlQnJvd3Npbmc7CiB9CiAKK3N0YXRpYyBVUkxTY2hlbWVzTWFwJiBDT1JTRW5hYmxl
ZFNjaGVtZXMoKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChVUkxTY2hlbWVzTWFwLCBDT1JTRW5hYmxlZFNjaGVtZXMsICgpKTsKKworICAg
IGlmIChDT1JTRW5hYmxlZFNjaGVtZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIENPUlNFbmFibGVk
U2NoZW1lcy5hZGQoImh0dHAiKTsKKyAgICAgICAgQ09SU0VuYWJsZWRTY2hlbWVzLmFkZCgiaHR0
cHMiKTsKKyAgICB9CisKKyAgICByZXR1cm4gQ09SU0VuYWJsZWRTY2hlbWVzOworfQorCiBib29s
IFNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzTG9jYWwoY29uc3QgU3RyaW5n
JiBzY2hlbWUpCiB7CiAgICAgaWYgKHNjaGVtZS5pc0VtcHR5KCkpCkBAIC0yNzMsNCArMjg3LDE2
IEBAIGJvb2wgU2NoZW1lUmVnaXN0cnk6OmFsbG93c0RhdGFiYXNlQWNjZXMKICAgICByZXR1cm4g
c2NoZW1lc0FsbG93aW5nRGF0YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93c2luZygpLmNvbnRhaW5z
KHNjaGVtZSk7CiB9CiAKK3ZvaWQgU2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyQ09SU0VuYWJsZWRT
Y2hlbWUoY29uc3QgU3RyaW5nJiBzY2hlbWUpCit7CisgICAgQ09SU0VuYWJsZWRTY2hlbWVzKCku
YWRkKHNjaGVtZSk7Cit9CisKK2Jvb2wgU2NoZW1lUmVnaXN0cnk6OmlzQ09SU0VuYWJsZWRTY2hl
bWUoY29uc3QgU3RyaW5nJiBzY2hlbWUpCit7CisgICAgaWYgKHNjaGVtZS5pc0VtcHR5KCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gQ09SU0VuYWJsZWRTY2hlbWVzKCkuY29u
dGFpbnMoc2NoZW1lKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5oCShyZXZpc2lvbiAxMDU5MDIpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5oCSh3b3JraW5nIGNvcHkpCkBA
IC03OCw2ICs3OCwxMCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgYWxsb3dzTG9jYWxTdG9y
YWdlQWNjZXNzSW5Qcml2YXRlQnJvd3NpbmcoY29uc3QgU3RyaW5nJiBzY2hlbWUpOwogICAgIHN0
YXRpYyB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNBbGxvd2luZ0RhdGFiYXNlQWNjZXNzSW5Qcml2
YXRlQnJvd3NpbmcoY29uc3QgU3RyaW5nJiBzY2hlbWUpOwogICAgIHN0YXRpYyBib29sIGFsbG93
c0RhdGFiYXNlQWNjZXNzSW5Qcml2YXRlQnJvd3NpbmcoY29uc3QgU3RyaW5nJiBzY2hlbWUpOwor
CisgICAgLy8gQWxsb3cgbm9uLUhUVFAgc2NoZW1lcyB0byBiZSByZWdpc3RlcmVkIHRvIGFsbG93
IENPUlMgcmVxdWVzdHMuCisgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJDT1JTRW5hYmxlZFNjaGVt
ZShjb25zdCBTdHJpbmcmIHNjaGVtZSk7CisgICAgc3RhdGljIGJvb2wgaXNDT1JTRW5hYmxlZFNj
aGVtZShjb25zdCBTdHJpbmcmIHNjaGVtZSk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gMTA1OTI5KQorKysgU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NiBAQAorMjAxMi0wMS0yNSAgQ3JpcyBOZWNrYXIgIDxjZG5AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIEFkZCBBUEkgdG8gcmVnaXN0ZXIgc2NoZW1lcyB3aGljaCBjYW4gYmUgc2VudCBzaW1wbGUg
Q09SUyByZXF1ZXN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc3MDQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBwdWJsaWMvV2ViU2VjdXJpdHlQb2xpY3kuaDoKKyAgICAgICAgKFdlYlNlY3VyaXR5
UG9saWN5KToKKyAgICAgICAgKiBzcmMvV2ViU2VjdXJpdHlQb2xpY3kuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJTZWN1cml0eVBvbGljeTo6cmVnaXN0ZXJDT1JTRW5hYmxlZFNjaGVtZSk6Cisg
ICAgICAgIChXZWJLaXQpOgorCiAyMDEyLTAxLTI1ICBKb3NodWEgQmVsbCAgPGpzYmVsbEBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgSW5kZXhlZERCOiBOZWVkIHRvIGRpc3Rpbmd1aXNoIGtleSBw
YXRocyB0aGF0IGRvbid0IHlpZWxkIHZhbHVlIHZzLiB5aWVsZCBpbnZhbGlkIGtleQpJbmRleDog
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2VjdXJpdHlQb2xpY3kuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZWN1cml0eVBvbGljeS5o
CShyZXZpc2lvbiAxMDU5MDIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJT
ZWN1cml0eVBvbGljeS5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw2ICs2MSw5IEBAIHB1YmxpYzoK
ICAgICAvLyBpbmNsdWRlZCBieSBhbiBIVFRQUyBwYWdlLgogICAgIFdFQktJVF9FWFBPUlQgc3Rh
dGljIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc1NlY3VyZShjb25zdCBXZWJTdHJpbmcmKTsKIAor
ICAgIC8vIFJlZ2lzdGVycyBhIG5vbi1IVFRQIFVSTCBzY2hlbWUgd2hpY2ggY2FuIGJlIHNlbnQg
Q09SUyByZXF1ZXN0cy4gCisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9pZCByZWdpc3RlckNP
UlNFbmFibGVkU2NoZW1lKGNvbnN0IFdlYlN0cmluZyYpOworCiAgICAgLy8gU3VwcG9ydCBmb3Ig
d2hpdGVsaXN0aW5nIGFjY2VzcyB0byBvcmlnaW5zIGJleW9uZCB0aGUgc2FtZS1vcmlnaW4gcG9s
aWN5LgogICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgYWRkT3JpZ2luQWNjZXNzV2hpdGVs
aXN0RW50cnkoCiAgICAgICAgIGNvbnN0IFdlYlVSTCYgc291cmNlT3JpZ2luLCBjb25zdCBXZWJT
dHJpbmcmIGRlc3RpbmF0aW9uUHJvdG9jb2wsCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJTZWN1cml0eVBvbGljeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViU2VjdXJpdHlQb2xpY3kuY3BwCShyZXZpc2lvbiAxMDU5MDIpCisrKyBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZWN1cml0eVBvbGljeS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTYzLDYgKzYzLDExIEBAIHZvaWQgV2ViU2VjdXJpdHlQb2xpY3k6OnJlZ2lzdGVy
VVJMU2NoZW0KICAgICBTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc1NlY3VyZShz
Y2hlbWUpOwogfQogCit2b2lkIFdlYlNlY3VyaXR5UG9saWN5OjpyZWdpc3RlckNPUlNFbmFibGVk
U2NoZW1lKGNvbnN0IFdlYlN0cmluZyYgc2NoZW1lKQoreworICAgIFNjaGVtZVJlZ2lzdHJ5Ojpy
ZWdpc3RlckNPUlNFbmFibGVkU2NoZW1lKHNjaGVtZSk7Cit9CisKIHZvaWQgV2ViU2VjdXJpdHlQ
b2xpY3k6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KAogICAgIGNvbnN0IFdlYlVSTCYg
c291cmNlT3JpZ2luLAogICAgIGNvbnN0IFdlYlN0cmluZyYgZGVzdGluYXRpb25Qcm90b2NvbCwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124047</attachid>
            <date>2012-01-25 17:46:46 -0800</date>
            <delta_ts>2012-01-26 11:00:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77041-20120125174645.patch</filename>
            <type>text/plain</type>
            <size>6964</size>
            <attacher name="Cris Neckar">cdn</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNTkyOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAxLTI1ICBDcmlzIE5l
Y2thciAgPGNkbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGEgc2NoZW1lIHJlZ2lzdHJ5
IGZvciBDT1JTIHJlcXVlc3RzLiBBbGxvdyBzaW1wbGUgQ09SUyByZXF1ZXN0cyB0byBiZSBtYWRl
IHRvIHJlZ2lzdGVyZWQgc2NoZW1lcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTc3MDQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBsb2FkZXIv
RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
VGhyZWFkYWJsZUxvYWRlcjo6bWFrZVNpbXBsZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdCk6Cisg
ICAgICAgICogcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q09SU0VuYWJsZWRTY2hlbWVzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyQ09SU0VuYWJsZWRTY2hlbWUpOgorICAgICAgICAo
V2ViQ29yZTo6U2NoZW1lUmVnaXN0cnk6OmlzQ09SU0VuYWJsZWRTY2hlbWUpOgorICAgICAgICAq
IHBsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5Lmg6CisgICAgICAgIChTY2hlbWVSZWdpc3RyeSk6CisK
IDIwMTItMDEtMjUgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW2Nocm9taXVtXSBSZWZhY3RvciBDbGlwYm9hcmQgaW52YWxpZGF0ZSBmb3IgRGF0YVRyYW5z
ZmVySXRlbS9EYXRhVHJhbnNmZXJJdGVtTGlzdCBpbnRvIGEgd3JhcHBlcgpJbmRleDogU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAJKHJl
dmlzaW9uIDEwNTkwMikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFi
bGVMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVz
b3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiU2NoZW1lUmVnaXN0cnkuaCIKICNpbmNsdWRlICJT
ZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXJDbGllbnQuaCIKICNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgpAQCAtMTE1LDkgKzExNiw4IEBAIHZvaWQgRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyOjptYWtlU2ltcGwKICAgICBBU1NFUlQobV9vcHRpb25zLnByZWZs
aWdodFBvbGljeSAhPSBGb3JjZVByZWZsaWdodCk7CiAgICAgQVNTRVJUKG1fb3B0aW9ucy5wcmVm
bGlnaHRQb2xpY3kgPT0gUHJldmVudFByZWZsaWdodCB8fCBpc1NpbXBsZUNyb3NzT3JpZ2luQWNj
ZXNzUmVxdWVzdChyZXF1ZXN0Lmh0dHBNZXRob2QoKSwgcmVxdWVzdC5odHRwSGVhZGVyRmllbGRz
KCkpKTsKIAotICAgIC8vIENyb3NzLW9yaWdpbiByZXF1ZXN0cyBhcmUgb25seSBkZWZpbmVkIGZv
ciBIVFRQLiBXZSB3b3VsZCBjYXRjaCB0aGlzIHdoZW4gY2hlY2tpbmcgcmVzcG9uc2UgaGVhZGVy
cyBsYXRlciwgYnV0IHRoZXJlIGlzIG5vIHJlYXNvbiB0byBzZW5kIGEgcmVxdWVzdCB0aGF0J3Mg
Z3VhcmFudGVlZCB0byBiZSBkZW5pZWQuCi0gICAgLy8gRklYTUU6IENvbnNpZGVyIGFsbG93aW5n
IHNpbXBsZSBDT1JTIHJlcXVlc3RzIHRvIG5vbi1IVFRQIFVSTHMuCi0gICAgaWYgKCFyZXF1ZXN0
LnVybCgpLnByb3RvY29sSW5IVFRQRmFtaWx5KCkpIHsKKyAgICAvLyBDcm9zcy1vcmlnaW4gcmVx
dWVzdHMgYXJlIG9ubHkgYWxsb3dlZCBmb3IgSFRUUCBhbmQgcmVnaXN0ZXJlZCBzY2hlbWVzLiBX
ZSB3b3VsZCBjYXRjaCB0aGlzIHdoZW4gY2hlY2tpbmcgcmVzcG9uc2UgaGVhZGVycyBsYXRlciwg
YnV0IHRoZXJlIGlzIG5vIHJlYXNvbiB0byBzZW5kIGEgcmVxdWVzdCB0aGF0J3MgZ3VhcmFudGVl
ZCB0byBiZSBkZW5pZWQuCisgICAgaWYgKCFTY2hlbWVSZWdpc3RyeTo6aXNDT1JTRW5hYmxlZFNj
aGVtZShyZXF1ZXN0LnVybCgpLnByb3RvY29sKCkpKSB7CiAgICAgICAgIG1fY2xpZW50LT5kaWRG
YWlsKFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgcmVxdWVzdC51
cmwoKS5zdHJpbmcoKSwgIkNyb3NzIG9yaWdpbiByZXF1ZXN0cyBhcmUgb25seSBzdXBwb3J0ZWQg
Zm9yIEhUVFAuIikpOwogICAgICAgICByZXR1cm47CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcAkocmV2aXNpb24gMTA1OTAyKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNSw2ICsyNSw3IEBACiAgKi8KICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTY2hl
bWVSZWdpc3RyeS5oIgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtMTUyLDYgKzE1MywxOSBAQCBzdGF0aWMgVVJMU2NoZW1lc01hcCYgc2No
ZW1lc0FsbG93aW5nRGF0CiAgICAgcmV0dXJuIHNjaGVtZXNBbGxvd2luZ0RhdGFiYXNlQWNjZXNz
SW5Qcml2YXRlQnJvd3Npbmc7CiB9CiAKK3N0YXRpYyBVUkxTY2hlbWVzTWFwJiBDT1JTRW5hYmxl
ZFNjaGVtZXMoKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChVUkxTY2hlbWVzTWFwLCBDT1JTRW5hYmxlZFNjaGVtZXMsICgpKTsKKworICAg
IGlmIChDT1JTRW5hYmxlZFNjaGVtZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIENPUlNFbmFibGVk
U2NoZW1lcy5hZGQoImh0dHAiKTsKKyAgICAgICAgQ09SU0VuYWJsZWRTY2hlbWVzLmFkZCgiaHR0
cHMiKTsKKyAgICB9CisKKyAgICByZXR1cm4gQ09SU0VuYWJsZWRTY2hlbWVzOworfQorCiBib29s
IFNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzTG9jYWwoY29uc3QgU3RyaW5n
JiBzY2hlbWUpCiB7CiAgICAgaWYgKHNjaGVtZS5pc0VtcHR5KCkpCkBAIC0yNzMsNCArMjg3LDE2
IEBAIGJvb2wgU2NoZW1lUmVnaXN0cnk6OmFsbG93c0RhdGFiYXNlQWNjZXMKICAgICByZXR1cm4g
c2NoZW1lc0FsbG93aW5nRGF0YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93c2luZygpLmNvbnRhaW5z
KHNjaGVtZSk7CiB9CiAKK3ZvaWQgU2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyQ09SU0VuYWJsZWRT
Y2hlbWUoY29uc3QgU3RyaW5nJiBzY2hlbWUpCit7CisgICAgQ09SU0VuYWJsZWRTY2hlbWVzKCku
YWRkKHNjaGVtZSk7Cit9CisKK2Jvb2wgU2NoZW1lUmVnaXN0cnk6OmlzQ09SU0VuYWJsZWRTY2hl
bWUoY29uc3QgU3RyaW5nJiBzY2hlbWUpCit7CisgICAgaWYgKHNjaGVtZS5pc0VtcHR5KCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gQ09SU0VuYWJsZWRTY2hlbWVzKCkuY29u
dGFpbnMoc2NoZW1lKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5oCShyZXZpc2lvbiAxMDU5MDIpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5oCSh3b3JraW5nIGNvcHkpCkBA
IC03OCw2ICs3OCwxMCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgYWxsb3dzTG9jYWxTdG9y
YWdlQWNjZXNzSW5Qcml2YXRlQnJvd3NpbmcoY29uc3QgU3RyaW5nJiBzY2hlbWUpOwogICAgIHN0
YXRpYyB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNBbGxvd2luZ0RhdGFiYXNlQWNjZXNzSW5Qcml2
YXRlQnJvd3NpbmcoY29uc3QgU3RyaW5nJiBzY2hlbWUpOwogICAgIHN0YXRpYyBib29sIGFsbG93
c0RhdGFiYXNlQWNjZXNzSW5Qcml2YXRlQnJvd3NpbmcoY29uc3QgU3RyaW5nJiBzY2hlbWUpOwor
CisgICAgLy8gQWxsb3cgbm9uLUhUVFAgc2NoZW1lcyB0byBiZSByZWdpc3RlcmVkIHRvIGFsbG93
IENPUlMgcmVxdWVzdHMuCisgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJDT1JTRW5hYmxlZFNjaGVt
ZShjb25zdCBTdHJpbmcmIHNjaGVtZSk7CisgICAgc3RhdGljIGJvb2wgaXNDT1JTRW5hYmxlZFNj
aGVtZShjb25zdCBTdHJpbmcmIHNjaGVtZSk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gMTA1OTI5KQorKysgU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NiBAQAorMjAxMi0wMS0yNSAgQ3JpcyBOZWNrYXIgIDxjZG5AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIEFkZCBBUEkgdG8gcmVnaXN0ZXIgc2NoZW1lcyB3aGljaCBjYW4gYmUgc2VudCBzaW1wbGUg
Q09SUyByZXF1ZXN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc3MDQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBwdWJsaWMvV2ViU2VjdXJpdHlQb2xpY3kuaDoKKyAgICAgICAgKFdlYlNlY3VyaXR5
UG9saWN5KToKKyAgICAgICAgKiBzcmMvV2ViU2VjdXJpdHlQb2xpY3kuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJTZWN1cml0eVBvbGljeTo6cmVnaXN0ZXJDT1JTRW5hYmxlZFNjaGVtZSk6Cisg
ICAgICAgIChXZWJLaXQpOgorCiAyMDEyLTAxLTI1ICBKb3NodWEgQmVsbCAgPGpzYmVsbEBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgSW5kZXhlZERCOiBOZWVkIHRvIGRpc3Rpbmd1aXNoIGtleSBw
YXRocyB0aGF0IGRvbid0IHlpZWxkIHZhbHVlIHZzLiB5aWVsZCBpbnZhbGlkIGtleQpJbmRleDog
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2VjdXJpdHlQb2xpY3kuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZWN1cml0eVBvbGljeS5o
CShyZXZpc2lvbiAxMDU5MDIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJT
ZWN1cml0eVBvbGljeS5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw2ICs2MSw5IEBAIHB1YmxpYzoK
ICAgICAvLyBpbmNsdWRlZCBieSBhbiBIVFRQUyBwYWdlLgogICAgIFdFQktJVF9FWFBPUlQgc3Rh
dGljIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc1NlY3VyZShjb25zdCBXZWJTdHJpbmcmKTsKIAor
ICAgIC8vIFJlZ2lzdGVycyBhIG5vbi1IVFRQIFVSTCBzY2hlbWUgd2hpY2ggY2FuIGJlIHNlbnQg
Q09SUyByZXF1ZXN0cy4gCisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9pZCByZWdpc3RlclVS
TFNjaGVtZUFzQ09SU0VuYWJsZWQoY29uc3QgV2ViU3RyaW5nJik7CisKICAgICAvLyBTdXBwb3J0
IGZvciB3aGl0ZWxpc3RpbmcgYWNjZXNzIHRvIG9yaWdpbnMgYmV5b25kIHRoZSBzYW1lLW9yaWdp
biBwb2xpY3kuCiAgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9pZCBhZGRPcmlnaW5BY2Nlc3NX
aGl0ZWxpc3RFbnRyeSgKICAgICAgICAgY29uc3QgV2ViVVJMJiBzb3VyY2VPcmlnaW4sIGNvbnN0
IFdlYlN0cmluZyYgZGVzdGluYXRpb25Qcm90b2NvbCwKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlNlY3VyaXR5UG9saWN5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJTZWN1cml0eVBvbGljeS5jcHAJKHJldmlzaW9uIDEwNTkwMikK
KysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNlY3VyaXR5UG9saWN5LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNjMsNiArNjMsMTEgQEAgdm9pZCBXZWJTZWN1cml0eVBvbGljeTo6cmVn
aXN0ZXJVUkxTY2hlbQogICAgIFNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFzU2Vj
dXJlKHNjaGVtZSk7CiB9CiAKK3ZvaWQgV2ViU2VjdXJpdHlQb2xpY3k6OnJlZ2lzdGVyVVJMU2No
ZW1lQXNDT1JTRW5hYmxlZChjb25zdCBXZWJTdHJpbmcmIHNjaGVtZSkKK3sKKyAgICBTY2hlbWVS
ZWdpc3RyeTo6cmVnaXN0ZXJDT1JTRW5hYmxlZFNjaGVtZShzY2hlbWUpOworfQorCiB2b2lkIFdl
YlNlY3VyaXR5UG9saWN5OjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgKICAgICBjb25z
dCBXZWJVUkwmIHNvdXJjZU9yaWdpbiwKICAgICBjb25zdCBXZWJTdHJpbmcmIGRlc3RpbmF0aW9u
UHJvdG9jb2wsCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124147</attachid>
            <date>2012-01-26 11:00:36 -0800</date>
            <delta_ts>2012-01-26 15:31:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77041-20120126110035.patch</filename>
            <type>text/plain</type>
            <size>7021</size>
            <attacher name="Cris Neckar">cdn</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNTkyOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAxLTI1ICBDcmlzIE5l
Y2thciAgPGNkbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGEgc2NoZW1lIHJlZ2lzdHJ5
IGZvciBDT1JTIHJlcXVlc3RzLiBBbGxvdyBzaW1wbGUgQ09SUyByZXF1ZXN0cyB0byBiZSBtYWRl
IHRvIHJlZ2lzdGVyZWQgc2NoZW1lcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTc3MDQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBsb2FkZXIv
RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
VGhyZWFkYWJsZUxvYWRlcjo6bWFrZVNpbXBsZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdCk6Cisg
ICAgICAgICogcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q09SU0VuYWJsZWRTY2hlbWVzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyQ09SU0VuYWJsZWRTY2hlbWUpOgorICAgICAgICAo
V2ViQ29yZTo6U2NoZW1lUmVnaXN0cnk6OmlzQ09SU0VuYWJsZWRTY2hlbWUpOgorICAgICAgICAq
IHBsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5Lmg6CisgICAgICAgIChTY2hlbWVSZWdpc3RyeSk6CisK
IDIwMTItMDEtMjUgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW2Nocm9taXVtXSBSZWZhY3RvciBDbGlwYm9hcmQgaW52YWxpZGF0ZSBmb3IgRGF0YVRyYW5z
ZmVySXRlbS9EYXRhVHJhbnNmZXJJdGVtTGlzdCBpbnRvIGEgd3JhcHBlcgpJbmRleDogU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAJKHJl
dmlzaW9uIDEwNTkwMikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFi
bGVMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVz
b3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiU2NoZW1lUmVnaXN0cnkuaCIKICNpbmNsdWRlICJT
ZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXJDbGllbnQuaCIKICNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgpAQCAtMTE1LDkgKzExNiw4IEBAIHZvaWQgRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyOjptYWtlU2ltcGwKICAgICBBU1NFUlQobV9vcHRpb25zLnByZWZs
aWdodFBvbGljeSAhPSBGb3JjZVByZWZsaWdodCk7CiAgICAgQVNTRVJUKG1fb3B0aW9ucy5wcmVm
bGlnaHRQb2xpY3kgPT0gUHJldmVudFByZWZsaWdodCB8fCBpc1NpbXBsZUNyb3NzT3JpZ2luQWNj
ZXNzUmVxdWVzdChyZXF1ZXN0Lmh0dHBNZXRob2QoKSwgcmVxdWVzdC5odHRwSGVhZGVyRmllbGRz
KCkpKTsKIAotICAgIC8vIENyb3NzLW9yaWdpbiByZXF1ZXN0cyBhcmUgb25seSBkZWZpbmVkIGZv
ciBIVFRQLiBXZSB3b3VsZCBjYXRjaCB0aGlzIHdoZW4gY2hlY2tpbmcgcmVzcG9uc2UgaGVhZGVy
cyBsYXRlciwgYnV0IHRoZXJlIGlzIG5vIHJlYXNvbiB0byBzZW5kIGEgcmVxdWVzdCB0aGF0J3Mg
Z3VhcmFudGVlZCB0byBiZSBkZW5pZWQuCi0gICAgLy8gRklYTUU6IENvbnNpZGVyIGFsbG93aW5n
IHNpbXBsZSBDT1JTIHJlcXVlc3RzIHRvIG5vbi1IVFRQIFVSTHMuCi0gICAgaWYgKCFyZXF1ZXN0
LnVybCgpLnByb3RvY29sSW5IVFRQRmFtaWx5KCkpIHsKKyAgICAvLyBDcm9zcy1vcmlnaW4gcmVx
dWVzdHMgYXJlIG9ubHkgYWxsb3dlZCBmb3IgSFRUUCBhbmQgcmVnaXN0ZXJlZCBzY2hlbWVzLiBX
ZSB3b3VsZCBjYXRjaCB0aGlzIHdoZW4gY2hlY2tpbmcgcmVzcG9uc2UgaGVhZGVycyBsYXRlciwg
YnV0IHRoZXJlIGlzIG5vIHJlYXNvbiB0byBzZW5kIGEgcmVxdWVzdCB0aGF0J3MgZ3VhcmFudGVl
ZCB0byBiZSBkZW5pZWQuCisgICAgaWYgKCFTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxT
Y2hlbWVBc0NPUlNFbmFibGVkKHJlcXVlc3QudXJsKCkucHJvdG9jb2woKSkpIHsKICAgICAgICAg
bV9jbGllbnQtPmRpZEZhaWwoUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbldlYktpdEludGVybmFs
LCAwLCByZXF1ZXN0LnVybCgpLnN0cmluZygpLCAiQ3Jvc3Mgb3JpZ2luIHJlcXVlc3RzIGFyZSBv
bmx5IHN1cHBvcnRlZCBmb3IgSFRUUC4iKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwCShyZXZpc2lvbiAx
MDU5MDIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAKICAqLwogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIlNjaGVtZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xNTIsNiArMTUzLDE5IEBAIHN0YXRpYyBVUkxT
Y2hlbWVzTWFwJiBzY2hlbWVzQWxsb3dpbmdEYXQKICAgICByZXR1cm4gc2NoZW1lc0FsbG93aW5n
RGF0YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93c2luZzsKIH0KIAorc3RhdGljIFVSTFNjaGVtZXNN
YXAmIENPUlNFbmFibGVkU2NoZW1lcygpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVtZXNNYXAsIENPUlNFbmFibGVkU2NoZW1l
cywgKCkpOworCisgICAgaWYgKENPUlNFbmFibGVkU2NoZW1lcy5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgQ09SU0VuYWJsZWRTY2hlbWVzLmFkZCgiaHR0cCIpOworICAgICAgICBDT1JTRW5hYmxlZFNj
aGVtZXMuYWRkKCJodHRwcyIpOworICAgIH0KKworICAgIHJldHVybiBDT1JTRW5hYmxlZFNjaGVt
ZXM7Cit9CisKIGJvb2wgU2NoZW1lUmVnaXN0cnk6OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNMb2Nh
bChjb25zdCBTdHJpbmcmIHNjaGVtZSkKIHsKICAgICBpZiAoc2NoZW1lLmlzRW1wdHkoKSkKQEAg
LTI3Myw0ICsyODcsMTYgQEAgYm9vbCBTY2hlbWVSZWdpc3RyeTo6YWxsb3dzRGF0YWJhc2VBY2Nl
cwogICAgIHJldHVybiBzY2hlbWVzQWxsb3dpbmdEYXRhYmFzZUFjY2Vzc0luUHJpdmF0ZUJyb3dz
aW5nKCkuY29udGFpbnMoc2NoZW1lKTsKIH0KIAordm9pZCBTY2hlbWVSZWdpc3RyeTo6cmVnaXN0
ZXJVUkxTY2hlbWVBc0NPUlNFbmFibGVkKGNvbnN0IFN0cmluZyYgc2NoZW1lKQoreworICAgIENP
UlNFbmFibGVkU2NoZW1lcygpLmFkZChzY2hlbWUpOworfQorCitib29sIFNjaGVtZVJlZ2lzdHJ5
OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzQ09SU0VuYWJsZWQoY29uc3QgU3RyaW5nJiBzY2hlbWUp
Cit7CisgICAgaWYgKHNjaGVtZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICByZXR1cm4gQ09SU0VuYWJsZWRTY2hlbWVzKCkuY29udGFpbnMoc2NoZW1lKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1l
UmVnaXN0cnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVS
ZWdpc3RyeS5oCShyZXZpc2lvbiAxMDU5MDIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y2hlbWVSZWdpc3RyeS5oCSh3b3JraW5nIGNvcHkpCkBAIC03OCw2ICs3OCwxMCBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIGJvb2wgYWxsb3dzTG9jYWxTdG9yYWdlQWNjZXNzSW5Qcml2YXRlQnJvd3Np
bmcoY29uc3QgU3RyaW5nJiBzY2hlbWUpOwogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyVVJMU2No
ZW1lQXNBbGxvd2luZ0RhdGFiYXNlQWNjZXNzSW5Qcml2YXRlQnJvd3NpbmcoY29uc3QgU3RyaW5n
JiBzY2hlbWUpOwogICAgIHN0YXRpYyBib29sIGFsbG93c0RhdGFiYXNlQWNjZXNzSW5Qcml2YXRl
QnJvd3NpbmcoY29uc3QgU3RyaW5nJiBzY2hlbWUpOworCisgICAgLy8gQWxsb3cgbm9uLUhUVFAg
c2NoZW1lcyB0byBiZSByZWdpc3RlcmVkIHRvIGFsbG93IENPUlMgcmVxdWVzdHMuCisgICAgc3Rh
dGljIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0NPUlNFbmFibGVkKGNvbnN0IFN0cmluZyYgc2No
ZW1lKTsKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRUcmVhdFVSTFNjaGVtZUFzQ09SU0VuYWJsZWQo
Y29uc3QgU3RyaW5nJiBzY2hlbWUpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRl
eDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNTkyOSkKKysrIFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTItMDEtMjUgIENyaXMgTmVja2FyICA8Y2RuQGNocm9taXVtLm9yZz4KKworICAgICAgICBB
ZGQgQVBJIHRvIHJlZ2lzdGVyIHNjaGVtZXMgd2hpY2ggY2FuIGJlIHNlbnQgc2ltcGxlIENPUlMg
cmVxdWVzdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03NzA0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogcHVibGljL1dlYlNlY3VyaXR5UG9saWN5Lmg6CisgICAgICAgIChXZWJTZWN1cml0eVBvbGlj
eSk6CisgICAgICAgICogc3JjL1dlYlNlY3VyaXR5UG9saWN5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViU2VjdXJpdHlQb2xpY3k6OnJlZ2lzdGVyQ09SU0VuYWJsZWRTY2hlbWUpOgorICAgICAg
ICAoV2ViS2l0KToKKwogMjAxMi0wMS0yNSAgSm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIEluZGV4ZWREQjogTmVlZCB0byBkaXN0aW5ndWlzaCBrZXkgcGF0aHMg
dGhhdCBkb24ndCB5aWVsZCB2YWx1ZSB2cy4geWllbGQgaW52YWxpZCBrZXkKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNlY3VyaXR5UG9saWN5LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2VjdXJpdHlQb2xpY3kuaAkocmV2
aXNpb24gMTA1OTAyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2VjdXJp
dHlQb2xpY3kuaAkod29ya2luZyBjb3B5KQpAQCAtNjEsNiArNjEsOSBAQCBwdWJsaWM6CiAgICAg
Ly8gaW5jbHVkZWQgYnkgYW4gSFRUUFMgcGFnZS4KICAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyB2
b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNTZWN1cmUoY29uc3QgV2ViU3RyaW5nJik7CiAKKyAgICAv
LyBSZWdpc3RlcnMgYSBub24tSFRUUCBVUkwgc2NoZW1lIHdoaWNoIGNhbiBiZSBzZW50IENPUlMg
cmVxdWVzdHMuIAorICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgcmVnaXN0ZXJVUkxTY2hl
bWVBc0NPUlNFbmFibGVkKGNvbnN0IFdlYlN0cmluZyYpOworCiAgICAgLy8gU3VwcG9ydCBmb3Ig
d2hpdGVsaXN0aW5nIGFjY2VzcyB0byBvcmlnaW5zIGJleW9uZCB0aGUgc2FtZS1vcmlnaW4gcG9s
aWN5LgogICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgYWRkT3JpZ2luQWNjZXNzV2hpdGVs
aXN0RW50cnkoCiAgICAgICAgIGNvbnN0IFdlYlVSTCYgc291cmNlT3JpZ2luLCBjb25zdCBXZWJT
dHJpbmcmIGRlc3RpbmF0aW9uUHJvdG9jb2wsCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJTZWN1cml0eVBvbGljeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViU2VjdXJpdHlQb2xpY3kuY3BwCShyZXZpc2lvbiAxMDU5MDIpCisrKyBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZWN1cml0eVBvbGljeS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTYzLDYgKzYzLDExIEBAIHZvaWQgV2ViU2VjdXJpdHlQb2xpY3k6OnJlZ2lzdGVy
VVJMU2NoZW0KICAgICBTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc1NlY3VyZShz
Y2hlbWUpOwogfQogCit2b2lkIFdlYlNlY3VyaXR5UG9saWN5OjpyZWdpc3RlclVSTFNjaGVtZUFz
Q09SU0VuYWJsZWQoY29uc3QgV2ViU3RyaW5nJiBzY2hlbWUpCit7CisgICAgU2NoZW1lUmVnaXN0
cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNDT1JTRW5hYmxlZChzY2hlbWUpOworfQorCiB2b2lkIFdl
YlNlY3VyaXR5UG9saWN5OjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgKICAgICBjb25z
dCBXZWJVUkwmIHNvdXJjZU9yaWdpbiwKICAgICBjb25zdCBXZWJTdHJpbmcmIGRlc3RpbmF0aW9u
UHJvdG9jb2wsCg==
</data>
<flag name="review"
          id="125338"
          type_id="1"
          status="+"
          setter="ap"
    />
    <flag name="commit-queue"
          id="125376"
          type_id="3"
          status="-"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>