<?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>69870</bug_id>
          
          <creation_ts>2011-10-11 14:42:30 -0700</creation_ts>
          <short_desc>[Chromium] Empty API for web intents</short_desc>
          <delta_ts>2011-12-22 14:09:54 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          <blocked>75123</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Greg Billock">gbillock</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>donggwan.kim</cc>
    
    <cc>fishd</cc>
    
    <cc>jhawkins</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>481923</commentid>
    <comment_count>0</comment_count>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2011-10-11 14:42:30 -0700</bug_when>
    <thetext>Empty API for web intents</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481924</commentid>
    <comment_count>1</comment_count>
      <attachid>110579</attachid>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2011-10-11 14:42:54 -0700</bug_when>
    <thetext>Created attachment 110579
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481935</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-11 14:48:56 -0700</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>482110</commentid>
    <comment_count>3</comment_count>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2011-10-11 18:05:50 -0700</bug_when>
    <thetext>To provide some context: this is a dummy WebKit/chromium API which would let me land some Chromium-side code implementing the return pathway of our prototype webintents work.

If the CC&apos;ed are interested in where we are with that work, let me know and I can provide more detail. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499431</commentid>
    <comment_count>4</comment_count>
      <attachid>114381</attachid>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2011-11-09 16:01:24 -0800</bug_when>
    <thetext>Created attachment 114381
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499480</commentid>
    <comment_count>5</comment_count>
      <attachid>114381</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-11-09 16:49:15 -0800</bug_when>
    <thetext>Comment on attachment 114381
Patch

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

&gt; Source/WebKit/chromium/public/WebIntentsController.h:42
&gt; +    WEBKIT_EXPORT void webIntentReply(ReplyType, const WebString&amp;, int);

this looks like it should just be a method on WebFrame.  it should probably have a name that mirrors startActivity, like didCompleteActivity.  For bonus points, the name should really say something about intents.

&gt; Source/WebKit/chromium/public/WebViewClient.h:323
&gt; +    virtual void registerIntentHandler(const WebString&amp; action,

it seems like the request to register an intent handler should be relative to the WebFrame so that the embedder can tell what origin is requesting the intent handler.

it would probably be good to bundle up these request parameters into a separate structure.

&gt; Source/WebKit/chromium/public/WebViewClient.h:330
&gt; +    virtual void startActivity(const WebString&amp; action,

it seems like activities are started by script in the context of a document.  therefore this should also be a WebFrame-relative method (i.e., it should be declared on WebFrameClient).  perhaps the parameters should be bottled up into a WebIntent structure (or some other structure)?

what is the intentId?  is that supposed to be passed back to WebKit as the third parameter to webIntentReply?  is there really any need for an intent identifier?  can there be multiple overlapping startActivity calls made by a single script context?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500062</commentid>
    <comment_count>6</comment_count>
      <attachid>114381</attachid>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2011-11-10 11:16:26 -0800</bug_when>
    <thetext>Comment on attachment 114381
Patch

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

&gt;&gt; Source/WebKit/chromium/public/WebIntentsController.h:42
&gt;&gt; +    WEBKIT_EXPORT void webIntentReply(ReplyType, const WebString&amp;, int);
&gt; 
&gt; this looks like it should just be a method on WebFrame.  it should probably have a name that mirrors startActivity, like didCompleteActivity.  For bonus points, the name should really say something about intents.

My goal was to put the dispatch code into the WebCore controller object. Do you think it is preferable to dispatch in the embedder code? I was copying at the way the other notifications processes work (i.e. geolocation notices), which are passed through to controller objects in WebCore.

&gt;&gt; Source/WebKit/chromium/public/WebViewClient.h:323
&gt;&gt; +    virtual void registerIntentHandler(const WebString&amp; action,
&gt; 
&gt; it seems like the request to register an intent handler should be relative to the WebFrame so that the embedder can tell what origin is requesting the intent handler.
&gt; 
&gt; it would probably be good to bundle up these request parameters into a separate structure.

That makes sense. Something to consider alongside this, though: the registerProtocolHandler call is on WebViewClient. Do you think that&apos;s misplaced? One comes from a tag and one from a navigator call. But startActivity is on the navigator object as well. I agree knowing the origin is important, but we could pass this along instead of using the FrameLoaderClient-&gt;WebFrameClient pathway. Do you think that&apos;s preferable? There are a few WebFrameClient-style &quot;method(WebFrame*, args) methods in WebViewClient, so this wouldn&apos;t be the first...

&gt;&gt; Source/WebKit/chromium/public/WebViewClient.h:330
&gt;&gt; +    virtual void startActivity(const WebString&amp; action,
&gt; 
&gt; it seems like activities are started by script in the context of a document.  therefore this should also be a WebFrame-relative method (i.e., it should be declared on WebFrameClient).  perhaps the parameters should be bottled up into a WebIntent structure (or some other structure)?
&gt; 
&gt; what is the intentId?  is that supposed to be passed back to WebKit as the third parameter to webIntentReply?  is there really any need for an intent identifier?  can there be multiple overlapping startActivity calls made by a single script context?

I currently have the intent ID as a way to make a positive connection between the invocation and the registered javascript callback. If the policy is that we&apos;ll only allow one intent in process, then there&apos;s no need for it; we&apos;ll just have one registered callback. I didn&apos;t want to hardcode that policy at this point, though.

If we have a structure for the intent data, it&apos;ll be moot, as the intent ID will ride along there. In my webkit implementation patch I do currently have a WebCore Intent object that would be natural wrapped analog for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503319</commentid>
    <comment_count>7</comment_count>
      <attachid>115257</attachid>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2011-11-15 15:01:21 -0800</bug_when>
    <thetext>Created attachment 115257
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503572</commentid>
    <comment_count>8</comment_count>
      <attachid>115257</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-11-15 21:14:58 -0800</bug_when>
    <thetext>Comment on attachment 115257
Patch

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

&gt; Source/WebKit/chromium/public/WebFrame.h:555
&gt; +    // for managing the return of the reply data to the correct (source)

I&apos;m confused by the last sentence.  Isn&apos;t the &quot;correct (source) WebFrame object&quot; the
WebFrame object on which you call this method?

What is the &apos;int&apos; parameter?  Please give it a name.

&gt; Source/WebKit/chromium/public/WebFrame.h:557
&gt; +    virtual void replyFromWebIntentActivity(WebIntentsReplyType, const WebString&amp;, int) = 0;

it occurred to me that you must also require a way to pass an Intent to the page for processing.
is that going to happen through a separate patch?

it&apos;d be nice to pick a name for this method here that somehow ties back to the method
on WebFrameClient used to dispatch the intent.

perhaps the reply parameters should also be bottled up into a class?  WebIntentResult?

&gt; Source/WebKit/chromium/public/WebFrameClient.h:389
&gt; +    virtual void didRegisterWebIntentHandler(WebFrame*, const WebIntentServiceData&amp;) { }

nit: since this is a request for the embedder to take an action, i&apos;d drop the &quot;did&quot; prefix.
the registration actually hasn&apos;t happened yet, right?  you rely on the embedder to actually
perform the registration.  also, we normally avoid the &quot;Web&quot; prefix in method names.

  registerIntentHandler(WebFrame*, const WebIntentHandlerInfo&amp;);

it seems like it might be nice to either use the term &quot;service&quot; or the term &quot;handler&quot;,
but using both terms for the same thing is confusing.  how about renaming WebIntentServiceData
to something like WebIntentHandler or WebIntentHandlerInfo?

&gt; Source/WebKit/chromium/public/WebFrameClient.h:392
&gt; +    virtual void startWebIntentActivity(WebFrame*, const WebIntentData&amp;, int) { }

I know the API is web API is called startActivity, and so it may make sense to reuse that term,
but again, it seems a bit like we are unnecessarily using multiple terms to refer to the same
thing.  we call it both an &quot;intent&quot; as well as an &quot;activity&quot;... naming this method something
like dispatchIntent seems like it might be better.  It makes it very clear that the purpose
of this method is to take the given intent and dispatch it.

nit: the &apos;int&apos; parameter should have a name.

&gt; Source/WebKit/chromium/public/WebIntentData.h:13
&gt; +class WebIntentData {

since this corresponds to a &quot;Javascript Intent object&quot;, why not just call this class &quot;WebIntent&quot;?

&gt; Source/WebKit/chromium/public/WebIntentServiceData.h:17
&gt; +    WEBKIT_EXPORT WebString serviceUrl() const;

nit: the type name says &quot;service&quot; in it, so probably don&apos;t need to say service here.  this
field can just be called &quot;url&quot; and it will be apparent that it is the &quot;url&quot; of the &quot;service&quot;
given the scoping of the method.

it seems like it would be helpful to add a comment to the top of this file that points to
the section in the spec where the service data is described.  that way it is possible to
learn what title, action, type and disposition fields are supposed to mean.  or, you could
document them here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504105</commentid>
    <comment_count>9</comment_count>
      <attachid>115418</attachid>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2011-11-16 11:46:43 -0800</bug_when>
    <thetext>Created attachment 115418
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504107</commentid>
    <comment_count>10</comment_count>
      <attachid>115257</attachid>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2011-11-16 11:47:18 -0800</bug_when>
    <thetext>Comment on attachment 115257
Patch

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

&gt;&gt; Source/WebKit/chromium/public/WebFrame.h:555
&gt;&gt; +    // for managing the return of the reply data to the correct (source)
&gt; 
&gt; I&apos;m confused by the last sentence.  Isn&apos;t the &quot;correct (source) WebFrame object&quot; the
&gt; WebFrame object on which you call this method?
&gt; 
&gt; What is the &apos;int&apos; parameter?  Please give it a name.

I wanted to document that this method is what you use to return a value to the WebFrame included in WebFrameClient::startWebIntentActivity. I moved the documentation there, though.

Added &quot;intentId&quot; name for the int parameter and documentation about where it comes from and what to do with it.

&gt;&gt; Source/WebKit/chromium/public/WebFrame.h:557
&gt;&gt; +    virtual void replyFromWebIntentActivity(WebIntentsReplyType, const WebString&amp;, int) = 0;
&gt; 
&gt; it occurred to me that you must also require a way to pass an Intent to the page for processing.
&gt; is that going to happen through a separate patch?
&gt; 
&gt; it&apos;d be nice to pick a name for this method here that somehow ties back to the method
&gt; on WebFrameClient used to dispatch the intent.
&gt; 
&gt; perhaps the reply parameters should also be bottled up into a class?  WebIntentResult?

Right now I&apos;m doing that through the NPAPI and putting it on window.intent. If we change that, it&apos;ll go in a future patch.

I tried to match up startWebIntentActivity with replyFromWebIntentActivity. Based on the rename to dispatchIntent below, I&apos;ve renamed to &quot;replyFromIntentService&quot;.

The reply type is just a serialized object. Do you think a class wrapper is a good idea there even so?

&gt;&gt; Source/WebKit/chromium/public/WebFrameClient.h:389
&gt;&gt; +    virtual void didRegisterWebIntentHandler(WebFrame*, const WebIntentServiceData&amp;) { }
&gt; 
&gt; nit: since this is a request for the embedder to take an action, i&apos;d drop the &quot;did&quot; prefix.
&gt; the registration actually hasn&apos;t happened yet, right?  you rely on the embedder to actually
&gt; perform the registration.  also, we normally avoid the &quot;Web&quot; prefix in method names.
&gt; 
&gt;   registerIntentHandler(WebFrame*, const WebIntentHandlerInfo&amp;);
&gt; 
&gt; it seems like it might be nice to either use the term &quot;service&quot; or the term &quot;handler&quot;,
&gt; but using both terms for the same thing is confusing.  how about renaming WebIntentServiceData
&gt; to something like WebIntentHandler or WebIntentHandlerInfo?

Good point. Renamed to registerIntentService. The name was chosen to parallel registerProtocolHandler, but registerIntentService is better.

&gt;&gt; Source/WebKit/chromium/public/WebFrameClient.h:392
&gt;&gt; +    virtual void startWebIntentActivity(WebFrame*, const WebIntentData&amp;, int) { }
&gt; 
&gt; I know the API is web API is called startActivity, and so it may make sense to reuse that term,
&gt; but again, it seems a bit like we are unnecessarily using multiple terms to refer to the same
&gt; thing.  we call it both an &quot;intent&quot; as well as an &quot;activity&quot;... naming this method something
&gt; like dispatchIntent seems like it might be better.  It makes it very clear that the purpose
&gt; of this method is to take the given intent and dispatch it.
&gt; 
&gt; nit: the &apos;int&apos; parameter should have a name.

The &quot;intent&quot; is the data payload passed to the activity. The API name (&quot;startActivity&quot;) comes from the parallel to Android. I think &quot;dispatchIntent&quot; sounds good. What should the reply method be then? I renamed to &quot;replyFromIntentService&quot;... WDYT?

&gt;&gt; Source/WebKit/chromium/public/WebIntentData.h:13
&gt;&gt; +class WebIntentData {
&gt; 
&gt; since this corresponds to a &quot;Javascript Intent object&quot;, why not just call this class &quot;WebIntent&quot;?

Done.

&gt;&gt; Source/WebKit/chromium/public/WebIntentServiceData.h:17
&gt;&gt; +    WEBKIT_EXPORT WebString serviceUrl() const;
&gt; 
&gt; nit: the type name says &quot;service&quot; in it, so probably don&apos;t need to say service here.  this
&gt; field can just be called &quot;url&quot; and it will be apparent that it is the &quot;url&quot; of the &quot;service&quot;
&gt; given the scoping of the method.
&gt; 
&gt; it seems like it would be helpful to add a comment to the top of this file that points to
&gt; the section in the spec where the service data is described.  that way it is possible to
&gt; learn what title, action, type and disposition fields are supposed to mean.  or, you could
&gt; document them here.

We don&apos;t have a stable URL for the spec yet. Shall I include one to our proposal? Added inline docs anyway, since they&apos;re helpful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505923</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-11-18 11:08:40 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 115257 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=115257&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/chromium/public/WebFrame.h:555
&gt; &gt;&gt; +    // for managing the return of the reply data to the correct (source)
&gt; &gt; 
&gt; &gt; I&apos;m confused by the last sentence.  Isn&apos;t the &quot;correct (source) WebFrame object&quot; the
&gt; &gt; WebFrame object on which you call this method?
&gt; &gt; 
&gt; &gt; What is the &apos;int&apos; parameter?  Please give it a name.
&gt; 
&gt; I wanted to document that this method is what you use to return a value to the WebFrame included in WebFrameClient::startWebIntentActivity. I moved the documentation there, though.
&gt; 
&gt; Added &quot;intentId&quot; name for the int parameter and documentation about where it comes from and what to do with it.

Perhaps the intentId could just be a property of WebIntent?  WebIntent could have an identifier member.
Since you are calling this parameter intentId, you are saying &quot;intent identifier&quot;, and that could just
be WebIntent::identifier, right?


&gt; &gt;&gt; Source/WebKit/chromium/public/WebFrame.h:557
&gt; &gt;&gt; +    virtual void replyFromWebIntentActivity(WebIntentsReplyType, const WebString&amp;, int) = 0;
&gt; &gt; 
&gt; &gt; it occurred to me that you must also require a way to pass an Intent to the page for processing.
&gt; &gt; is that going to happen through a separate patch?
&gt; &gt; 
&gt; &gt; it&apos;d be nice to pick a name for this method here that somehow ties back to the method
&gt; &gt; on WebFrameClient used to dispatch the intent.
&gt; &gt; 
&gt; &gt; perhaps the reply parameters should also be bottled up into a class?  WebIntentResult?
&gt; 
&gt; Right now I&apos;m doing that through the NPAPI and putting it on window.intent. If we change that, it&apos;ll go in a future patch.

We have to change that.  It won&apos;t be possible to test the WebKit bits using LayoutTests without that, right?


&gt; I tried to match up startWebIntentActivity with replyFromWebIntentActivity. Based on the rename to dispatchIntent below, I&apos;ve renamed to &quot;replyFromIntentService&quot;.

I think this might be better named &quot;handleIntent{Reply,Result}&quot;...

I&apos;m thinking of dispatchEvent and handleEvent.


&gt; 
&gt; The reply type is just a serialized object. Do you think a class wrapper is a good idea there even so?

Oh... a serialized object.  Should this be using WebSerializedScriptValue?  Should WebIntent::data be a WebSerializedScriptValue too?

I would probably go with WebIntent{Reply,Result} and give it a data member and an identifier member.


&gt; &gt;&gt; Source/WebKit/chromium/public/WebFrameClient.h:389
&gt; &gt;&gt; +    virtual void didRegisterWebIntentHandler(WebFrame*, const WebIntentServiceData&amp;) { }
&gt; &gt; 
&gt; &gt; nit: since this is a request for the embedder to take an action, i&apos;d drop the &quot;did&quot; prefix.
&gt; &gt; the registration actually hasn&apos;t happened yet, right?  you rely on the embedder to actually
&gt; &gt; perform the registration.  also, we normally avoid the &quot;Web&quot; prefix in method names.
&gt; &gt; 
&gt; &gt;   registerIntentHandler(WebFrame*, const WebIntentHandlerInfo&amp;);
&gt; &gt; 
&gt; &gt; it seems like it might be nice to either use the term &quot;service&quot; or the term &quot;handler&quot;,
&gt; &gt; but using both terms for the same thing is confusing.  how about renaming WebIntentServiceData
&gt; &gt; to something like WebIntentHandler or WebIntentHandlerInfo?
&gt; 
&gt; Good point. Renamed to registerIntentService. The name was chosen to parallel registerProtocolHandler, but registerIntentService is better.

OK


&gt; &gt;&gt; Source/WebKit/chromium/public/WebIntentServiceData.h:17
&gt; &gt;&gt; +    WEBKIT_EXPORT WebString serviceUrl() const;
&gt; &gt; 
&gt; &gt; nit: the type name says &quot;service&quot; in it, so probably don&apos;t need to say service here.  this
&gt; &gt; field can just be called &quot;url&quot; and it will be apparent that it is the &quot;url&quot; of the &quot;service&quot;
&gt; &gt; given the scoping of the method.
&gt; &gt; 
&gt; &gt; it seems like it would be helpful to add a comment to the top of this file that points to
&gt; &gt; the section in the spec where the service data is described.  that way it is possible to
&gt; &gt; learn what title, action, type and disposition fields are supposed to mean.  or, you could
&gt; &gt; document them here.
&gt; 
&gt; We don&apos;t have a stable URL for the spec yet. Shall I include one to our proposal? Added inline docs anyway, since they&apos;re helpful.

A reference to the proposed spec is helpful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505924</commentid>
    <comment_count>12</comment_count>
      <attachid>115418</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-11-18 11:08:53 -0800</bug_when>
    <thetext>Comment on attachment 115418
Patch

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

&gt; Source/WebKit/chromium/public/WebFrame.h:556
&gt; +    virtual void replyFromIntentService(WebIntentsReplyType, const WebString&amp;, int intentId) = 0;

How about calling this &quot;handleIntentResult&quot; or &quot;handleIntentReply&quot;?

&gt; Source/WebKit/chromium/public/WebIntentServiceData.h:48
&gt; +class WebIntentServiceData {

nit: &quot;Info&quot; might be a better suffix for this class.  See for example WebPopupMenuInfo.

&gt; Source/WebKit/chromium/public/WebIntentServiceData.h:53
&gt; +    WEBKIT_EXPORT void setUrl(const WebURL&amp;);

nit: setUrl should be setURL per the style guide</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506084</commentid>
    <comment_count>13</comment_count>
      <attachid>115877</attachid>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2011-11-18 14:57:14 -0800</bug_when>
    <thetext>Created attachment 115877
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506085</commentid>
    <comment_count>14</comment_count>
      <attachid>115418</attachid>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2011-11-18 14:57:33 -0800</bug_when>
    <thetext>Comment on attachment 115418
Patch

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

&gt;&gt; Source/WebKit/chromium/public/WebFrame.h:556
&gt;&gt; +    virtual void replyFromIntentService(WebIntentsReplyType, const WebString&amp;, int intentId) = 0;
&gt; 
&gt; How about calling this &quot;handleIntentResult&quot; or &quot;handleIntentReply&quot;?

As we discussed, changed to handleIntentResult and handleIntentFailure. The signatures can be evolved separately now if needed.

&gt;&gt; Source/WebKit/chromium/public/WebIntentServiceData.h:48
&gt;&gt; +class WebIntentServiceData {
&gt; 
&gt; nit: &quot;Info&quot; might be a better suffix for this class.  See for example WebPopupMenuInfo.

Done.

&gt;&gt; Source/WebKit/chromium/public/WebIntentServiceData.h:53
&gt;&gt; +    WEBKIT_EXPORT void setUrl(const WebURL&amp;);
&gt; 
&gt; nit: setUrl should be setURL per the style guide

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507147</commentid>
    <comment_count>15</comment_count>
      <attachid>115877</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-11-21 12:57:03 -0800</bug_when>
    <thetext>Comment on attachment 115877
Patch

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

&gt; Source/WebKit/chromium/public/WebFrame.h:554
&gt; +    virtual void handleIntentFailure(const WebString&amp;, int intentId) = 0;

nit: I think it would be better to list the intentIdentifier first since that
identifies the intent.  the WebString is just payload, so it seems secondary.

nit: spell out intentIdentifier since this corresponds to WebIntent::identifier().
(it helps to keep these as similar as possible to strengthen their relationship.)

&gt; Source/WebKit/chromium/public/WebFrameClient.h:392
&gt; +    // the WebFrame starting the activity. The |intentId| is an arbitrary

nit: fix this comment.  it refers to &quot;intentId&quot; which doesn&apos;t exist as a direct parameter to this method.

&gt; Source/WebKit/chromium/public/WebIntentServiceInfo.h:40
&gt; +// The |url| is the location of the handler page registered by the service.

nit: Move these comments to be above their respective method groups.  e.g.:

  // The location of the handler page registered by the service.
  WEBKIT_EXPORT WebURL url() const;
  WEBKIT_EXPORT void setURL(const WebURL&amp;);

^^^ This way you don&apos;t have to repeat the name of the property.

&gt; Source/WebKit/chromium/public/WebIntentServiceInfo.h:53
&gt; +    WEBKIT_EXPORT WebString url() const;

I think you meant url() to return WebURL?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507168</commentid>
    <comment_count>16</comment_count>
      <attachid>116124</attachid>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2011-11-21 13:16:01 -0800</bug_when>
    <thetext>Created attachment 116124
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507175</commentid>
    <comment_count>17</comment_count>
      <attachid>116124</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-21 13:31:22 -0800</bug_when>
    <thetext>Comment on attachment 116124
Patch

Attachment 116124 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10554003</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507213</commentid>
    <comment_count>18</comment_count>
      <attachid>115877</attachid>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2011-11-21 14:32:20 -0800</bug_when>
    <thetext>Comment on attachment 115877
Patch

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

&gt;&gt; Source/WebKit/chromium/public/WebFrame.h:554
&gt;&gt; +    virtual void handleIntentFailure(const WebString&amp;, int intentId) = 0;
&gt; 
&gt; nit: I think it would be better to list the intentIdentifier first since that
&gt; identifies the intent.  the WebString is just payload, so it seems secondary.
&gt; 
&gt; nit: spell out intentIdentifier since this corresponds to WebIntent::identifier().
&gt; (it helps to keep these as similar as possible to strengthen their relationship.)

Done.

&gt;&gt; Source/WebKit/chromium/public/WebFrameClient.h:392
&gt;&gt; +    // the WebFrame starting the activity. The |intentId| is an arbitrary
&gt; 
&gt; nit: fix this comment.  it refers to &quot;intentId&quot; which doesn&apos;t exist as a direct parameter to this method.

Done.

&gt;&gt; Source/WebKit/chromium/public/WebIntentServiceInfo.h:40
&gt;&gt; +// The |url| is the location of the handler page registered by the service.
&gt; 
&gt; nit: Move these comments to be above their respective method groups.  e.g.:
&gt; 
&gt;   // The location of the handler page registered by the service.
&gt;   WEBKIT_EXPORT WebURL url() const;
&gt;   WEBKIT_EXPORT void setURL(const WebURL&amp;);
&gt; 
&gt; ^^^ This way you don&apos;t have to repeat the name of the property.

Done.

&gt;&gt; Source/WebKit/chromium/public/WebIntentServiceInfo.h:53
&gt;&gt; +    WEBKIT_EXPORT WebString url() const;
&gt; 
&gt; I think you meant url() to return WebURL?

This is representing the &quot;href&quot; attribute of the intent tag. Will we get sufficient error handling by returning WebURL?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507220</commentid>
    <comment_count>19</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-11-21 14:35:20 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; &gt;&gt; Source/WebKit/chromium/public/WebIntentServiceInfo.h:53
&gt; &gt;&gt; +    WEBKIT_EXPORT WebString url() const;
&gt; &gt; 
&gt; &gt; I think you meant url() to return WebURL?
&gt; 
&gt; This is representing the &quot;href&quot; attribute of the intent tag. Will we get sufficient error handling by returning WebURL?

I don&apos;t think you should be calling registerIntentHandler with a bogus URL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507236</commentid>
    <comment_count>20</comment_count>
      <attachid>116141</attachid>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2011-11-21 14:52:05 -0800</bug_when>
    <thetext>Created attachment 116141
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507241</commentid>
    <comment_count>21</comment_count>
      <attachid>116141</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-11-21 14:53:31 -0800</bug_when>
    <thetext>Comment on attachment 116141
Patch

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

&gt; Source/WebKit/chromium/public/WebFrame.h:550
&gt; +    // appropriate registered Javascript callback. The |intentId| is the

nit: intentId -&gt; intentIdentifier

&gt; Source/WebKit/chromium/public/WebFrame.h:556
&gt; +    // Javascript callback. The |intentId| is the parameter received from

nit: intentId -&gt; intentIdentifier</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507261</commentid>
    <comment_count>22</comment_count>
      <attachid>116146</attachid>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2011-11-21 15:10:48 -0800</bug_when>
    <thetext>Created attachment 116146
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507262</commentid>
    <comment_count>23</comment_count>
      <attachid>116141</attachid>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2011-11-21 15:11:34 -0800</bug_when>
    <thetext>Comment on attachment 116141
Patch

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

&gt;&gt; Source/WebKit/chromium/public/WebFrame.h:550
&gt;&gt; +    // appropriate registered Javascript callback. The |intentId| is the
&gt; 
&gt; nit: intentId -&gt; intentIdentifier

Done.

&gt;&gt; Source/WebKit/chromium/public/WebFrame.h:556
&gt;&gt; +    // Javascript callback. The |intentId| is the parameter received from
&gt; 
&gt; nit: intentId -&gt; intentIdentifier

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507328</commentid>
    <comment_count>24</comment_count>
      <attachid>116146</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-21 17:26:24 -0800</bug_when>
    <thetext>Comment on attachment 116146
Patch

Rejecting attachment 116146 from commit-queue.

New failing tests:
fast/repaint/fixed-scale.html
fast/repaint/scroll-fixed-reflected-layer.html
fast/repaint/fixed-table-overflow-zindex.html
fast/repaint/fixed-tranformed.html
Full output: http://queues.webkit.org/results/10559029</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507727</commentid>
    <comment_count>25</comment_count>
      <attachid>116146</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-22 11:45:43 -0800</bug_when>
    <thetext>Comment on attachment 116146
Patch

Clearing flags on attachment: 116146

Committed r101021: &lt;http://trac.webkit.org/changeset/101021&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507729</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-22 11:45:52 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110579</attachid>
            <date>2011-10-11 14:42:54 -0700</date>
            <delta_ts>2011-11-09 16:01:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69870-20111011144253.patch</filename>
            <type>text/plain</type>
            <size>9299</size>
            <attacher name="Greg Billock">gbillock</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTcwNjAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
YTliNmE0MjM2NjczY2I3ODc1NTM5MmFkNWM2M2JhYTdjYjNmZjljMC4uNDFmYWVjNDhjOWU1NWRm
M2FmYWJkZjIzOWFkMDcwNWMzMDljNTY2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOSBAQAorMjAxMS0xMC0xMSAgR3JlZyBCaWxsb2NrICA8Z2JpbGxvY2tAZ29vZ2xl
LmNvbT4KKworICAgICAgICBFbXB0eSBBUEkgZm9yIHdlYiBpbnRlbnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTg3MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAg
KiBwdWJsaWMvV2ViSW50ZW50c0NsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
SW50ZW50c0NsaWVudDo6fldlYkludGVudHNDbGllbnQpOgorICAgICAgICAqIHB1YmxpYy9XZWJJ
bnRlbnRzQ29udHJvbGxlci5oOiBBZGRlZC4KKyAgICAgICAgKiBwdWJsaWMvV2ViVmlld0NsaWVu
dC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50Ojp3ZWJJbnRlbnRzQ2xpZW50KToK
KyAgICAgICAgKiBzcmMvV2ViSW50ZW50c0NvbnRyb2xsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViSW50ZW50c0NvbnRyb2xsZXI6OndlYkludGVudFJlcGx5KToKKwogMjAxMS0x
MC0xMCAgUGF2ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkLCBtYXJrIENDVGhyZWFkVGVzdC5zdGFydFBvc3RBbmRXYWl0T25Db25kaXRp
b24gYXMgZmxha3kgb24gd2luIGFuZCBtYWMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL1dlYktpdC5neXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5k
ZXggYjg1ZTY2MWQ5MGI3MWU0NGZiYzVjYzk5Y2M3NzcyMDA3YmM3ZTNmOS4uYjdhOGZhN2NmODRi
ODExMzg4M2QzMjRhNDNiNWIwMmJiMjY4ZjNmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5
cApAQCAtMjE2LDYgKzIxNiw4IEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJREJUcmFu
c2FjdGlvbkNhbGxiYWNrcy5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYklucHV0RWxl
bWVudC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYklucHV0RXZlbnQuaCcsCisgICAg
ICAgICAgICAgICAgJ3B1YmxpYy9XZWJJbnRlbnRzQ2xpZW50LmgnLAorICAgICAgICAgICAgICAg
ICdwdWJsaWMvV2ViSW50ZW50c0NvbnRyb2xsZXIuaCcsCiAgICAgICAgICAgICAgICAgJ3B1Ymxp
Yy9XZWJLaXQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJLaXRQbGF0Zm9ybVN1cHBv
cnQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJMYWJlbEVsZW1lbnQuaCcsCkBAIC01
NDEsNiArNTQzLDcgQEAKICAgICAgICAgICAgICAgICAnc3JjL1dlYklucHV0RXZlbnQuY3BwJywK
ICAgICAgICAgICAgICAgICAnc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcCcsCiAgICAg
ICAgICAgICAgICAgJ3NyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5oJywKKyAgICAgICAgICAg
ICAgICAnc3JjL1dlYkludGVudHNDb250cm9sbGVyLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3Ny
Yy9XZWJLaXQuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkxhYmVsRWxlbWVudC5jcHAn
LAogICAgICAgICAgICAgICAgICdzcmMvV2ViTGF5ZXIuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkludGVudHNDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYkludGVudHNDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjBiYzkx
YTFkOTQzZGNkNGFmZjIyNGFjNjZlZjVkNzkwMjgzM2RjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSW50ZW50c0NsaWVudC5oCkBAIC0wLDAgKzEs
NDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkludGVudHNDbGllbnRfaAorI2RlZmluZSBXZWJJbnRl
bnRzQ2xpZW50X2gKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkludGVudHNDb250
cm9sbGVyOworCitjbGFzcyBXZWJJbnRlbnRzQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFs
IH5XZWJJbnRlbnRzQ2xpZW50KCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udHJvbGxl
cihXZWJJbnRlbnRzQ29udHJvbGxlciopID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gV2ViSW50ZW50c0NsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJbnRlbnRzQ29udHJvbGxlci5oIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViSW50ZW50c0NvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NjIy
MWVjNTJjYmNiYTZmNDkyY2E5NzAzOGRkZGMxNzZhOGExZDA4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSW50ZW50c0NvbnRyb2xsZXIuaApAQCAt
MCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
KyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJJbnRlbnRzQ29udHJvbGxlcl9oCisjZGVm
aW5lIFdlYkludGVudHNDb250cm9sbGVyX2gKKworI2luY2x1ZGUgIldlYkNvbW1vbi5oIgorI2lu
Y2x1ZGUgIldlYk5vbkNvcHlhYmxlLmgiCisjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJJbnRlbnRzQ29udHJvbGxlciA6IHB1YmxpYyBXZWJO
b25Db3B5YWJsZSB7CitwdWJsaWM6CisgICAgZW51bSBSZXBseVR5cGUgeworICAgICAgICBSZXBs
eSwKKyAgICAgICAgRmFpbHVyZQorICAgIH07CisKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgd2Vi
SW50ZW50UmVwbHkoUmVwbHlUeXBlLCBjb25zdCBXZWJTdHJpbmcmLCBpbnQpOworCitwcml2YXRl
OgorICAgIC8vIE5vIGltcGxlbWVudGF0aW9uIGZvciB0aGUgZGVmYXVsdCBjb25zdHJ1Y3Rvci4g
RGVjbGFyZWQgcHJpdmF0ZSB0byBlbnN1cmUgdGhhdCBubyBpbnN0YW5jZXMKKyAgICAvLyBjYW4g
YmUgY3JlYXRlZCBieSB0aGUgY29uc3VtZXJzIG9mIENocm9taXVtIFdlYktpdC4KKyAgICBXZWJJ
bnRlbnRzQ29udHJvbGxlcigpOworCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIFdlYkludGVudHNDb250cm9sbGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlZpZXdDbGllbnQuaAppbmRleCA1MmJmYzIxNTVhNWZiNjdiODMyODQzMzkwMDNj
NDk1OThkMDdiNzliLi5mMTJkZWM1MzYyYjRkNjIxMGE1ODQyMzNkNDVhNWQ2ZjA1NDZmZjc4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCkBAIC01
OCw2ICs1OCw3IEBAIGNsYXNzIFdlYkdlb2xvY2F0aW9uU2VydmljZTsKIGNsYXNzIFdlYkljb25M
b2FkaW5nQ29tcGxldGlvbjsKIGNsYXNzIFdlYkltYWdlOwogY2xhc3MgV2ViSW5wdXRFbGVtZW50
OworY2xhc3MgV2ViSW50ZW50c0NsaWVudDsKIGNsYXNzIFdlYktleWJvYXJkRXZlbnQ7CiBjbGFz
cyBXZWJOb2RlOwogY2xhc3MgV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyOwpAQCAtMjg4LDYgKzI4
OSwxMCBAQCBwdWJsaWM6CiAgICAgLy8gQWNjZXNzIHRoZSBlbWJlZGRlciBBUEkgZm9yIChub24t
Y2xpZW50LWJhc2VkKSBnZW9sb2NhdGlvbiBzZXJ2aWNlcy4KICAgICB2aXJ0dWFsIFdlYkdlb2xv
Y2F0aW9uU2VydmljZSogZ2VvbG9jYXRpb25TZXJ2aWNlKCkgeyByZXR1cm4gMDsgfQogCisgICAg
Ly8gV2ViIEludGVudHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKKyAgICB2aXJ0dWFsIFdlYkludGVudHNDbGllbnQqIHdlYkludGVu
dHNDbGllbnQoKSB7IHJldHVybiAwOyB9CisKICAgICAvLyBTcGVlY2ggLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogICAgIC8v
IEFjY2VzcyB0aGUgZW1iZWRkZXIgQVBJIGZvciBzcGVlY2ggaW5wdXQgc2VydmljZXMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnRlbnRzQ29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnRlbnRzQ29udHJvbGxlci5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uN2ZkODhlMTMxZGQ1MmU3MjY4NDBhNjQ3ZjdlZDljNDJhYWVmOTNjYQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkludGVudHNDb250
cm9sbGVyLmNwcApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIldlYkludGVudHNDb250cm9sbGVyLmgiCisKKyNpbmNsdWRlIDxzdGRpby5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
dm9pZCBXZWJJbnRlbnRzQ29udHJvbGxlcjo6d2ViSW50ZW50UmVwbHkoUmVwbHlUeXBlIHR5cGUs
IGNvbnN0IFdlYlN0cmluZyYgZGF0YSwgaW50IGludGVudElkKQoreworICAgIGZwcmludGYoc3Rk
ZXJyLCAiRm9yd2FyZGluZyByZXBseSAlZFxuIiwgdHlwZSk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114381</attachid>
            <date>2011-11-09 16:01:24 -0800</date>
            <delta_ts>2011-11-15 15:01:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69870-20111109160123.patch</filename>
            <type>text/plain</type>
            <size>8152</size>
            <attacher name="Greg Billock">gbillock</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk2NzQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
NzFkZTQ1YWI3N2M5OTliYzQ1MDVmMWZkYmM3ZGFiMDY5NzU3NTY5Yy4uMzRjNDVhN2NlZmEzNmU1
Y2ViMmI4YTFhMTIxZTQwM2NkYTZmNWZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOSBAQAorMjAxMS0xMC0xMSAgR3JlZyBCaWxsb2NrICA8Z2JpbGxvY2tAZ29vZ2xl
LmNvbT4KKworICAgICAgICBFbXB0eSBBUEkgZm9yIHdlYiBpbnRlbnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTg3MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAg
KiBwdWJsaWMvV2ViSW50ZW50c0NsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
SW50ZW50c0NsaWVudDo6fldlYkludGVudHNDbGllbnQpOgorICAgICAgICAqIHB1YmxpYy9XZWJJ
bnRlbnRzQ29udHJvbGxlci5oOiBBZGRlZC4KKyAgICAgICAgKiBwdWJsaWMvV2ViVmlld0NsaWVu
dC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50Ojp3ZWJJbnRlbnRzQ2xpZW50KToK
KyAgICAgICAgKiBzcmMvV2ViSW50ZW50c0NvbnRyb2xsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViSW50ZW50c0NvbnRyb2xsZXI6OndlYkludGVudFJlcGx5KToKKwogMjAxMS0x
MS0wOCAgSmF5IENpdmVsbGkgIDxqY2l2ZWxsaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRml4
ZXMgYW5kIHJlZW5hYmxlcyB0aGUgV2ViUGFnZVNlcmlhbGl6ZXIgdGVzdHMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL1dlYktpdC5neXAKaW5kZXggNWQ4M2M4NGIwMmI2M2IyMTU0M2VkN2Y5MDUxMDJiNmJjYjg3
OTgyOC4uZTllYjU3ZjBjMTdmMDkzZDdiNDQyNGRmNTRmODIwOTZjZDk5OGYzNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtMjIyLDYgKzIyMiw3IEBACiAgICAgICAgICAgICAgICAg
J3B1YmxpYy9XZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oJywKICAgICAgICAgICAgICAgICAn
cHVibGljL1dlYklucHV0RWxlbWVudC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYklu
cHV0RXZlbnQuaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJbnRlbnRzQ29udHJvbGxl
ci5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYktpdC5oJywKICAgICAgICAgICAgICAg
ICAncHVibGljL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oJywKICAgICAgICAgICAgICAgICAncHVi
bGljL1dlYkxhYmVsRWxlbWVudC5oJywKQEAgLTU1MSw2ICs1NTIsNyBAQAogICAgICAgICAgICAg
ICAgICdzcmMvV2ViSW5wdXRFdmVudC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSW5w
dXRFdmVudENvbnZlcnNpb24uY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYklucHV0RXZl
bnRDb252ZXJzaW9uLmgnLAorICAgICAgICAgICAgICAgICdzcmMvV2ViSW50ZW50c0NvbnRyb2xs
ZXIuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYktpdC5jcHAnLAogICAgICAgICAgICAg
ICAgICdzcmMvV2ViTGFiZWxFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJM
YXllci5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
SW50ZW50c0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklu
dGVudHNDb250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjYyMjFlYzUyY2JjYmE2ZjQ5MmNhOTcwMzhk
ZGRjMTc2YThhMWQwOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYkludGVudHNDb250cm9sbGVyLmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgV2ViSW50ZW50c0NvbnRyb2xsZXJfaAorI2RlZmluZSBXZWJJbnRlbnRzQ29udHJvbGxl
cl9oCisKKyNpbmNsdWRlICJXZWJDb21tb24uaCIKKyNpbmNsdWRlICJXZWJOb25Db3B5YWJsZS5o
IgorI2luY2x1ZGUgIldlYlN0cmluZy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
V2ViSW50ZW50c0NvbnRyb2xsZXIgOiBwdWJsaWMgV2ViTm9uQ29weWFibGUgeworcHVibGljOgor
ICAgIGVudW0gUmVwbHlUeXBlIHsKKyAgICAgICAgUmVwbHksCisgICAgICAgIEZhaWx1cmUKKyAg
ICB9OworCisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHdlYkludGVudFJlcGx5KFJlcGx5VHlwZSwg
Y29uc3QgV2ViU3RyaW5nJiwgaW50KTsKKworcHJpdmF0ZToKKyAgICAvLyBObyBpbXBsZW1lbnRh
dGlvbiBmb3IgdGhlIGRlZmF1bHQgY29uc3RydWN0b3IuIERlY2xhcmVkIHByaXZhdGUgdG8gZW5z
dXJlIHRoYXQgbm8gaW5zdGFuY2VzCisgICAgLy8gY2FuIGJlIGNyZWF0ZWQgYnkgdGhlIGNvbnN1
bWVycyBvZiBDaHJvbWl1bSBXZWJLaXQuCisgICAgV2ViSW50ZW50c0NvbnRyb2xsZXIoKTsKKwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJJbnRlbnRzQ29udHJv
bGxlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgK
aW5kZXggNTJiZmMyMTU1YTVmYjY3YjgzMjg0MzM5MDAzYzQ5NTk4ZDA3Yjc5Yi4uMDEwNDAyYmZi
Y2NlNjg2N2U0MmE3NzJjMDcwMzg4MGExNGE5MGI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaApAQCAtNTgsNiArNTgsNyBAQCBjbGFzcyBXZWJH
ZW9sb2NhdGlvblNlcnZpY2U7CiBjbGFzcyBXZWJJY29uTG9hZGluZ0NvbXBsZXRpb247CiBjbGFz
cyBXZWJJbWFnZTsKIGNsYXNzIFdlYklucHV0RWxlbWVudDsKK2NsYXNzIFdlYkludGVudHNDb250
cm9sbGVyOwogY2xhc3MgV2ViS2V5Ym9hcmRFdmVudDsKIGNsYXNzIFdlYk5vZGU7CiBjbGFzcyBX
ZWJOb3RpZmljYXRpb25QcmVzZW50ZXI7CkBAIC0zMTYsNiArMzE3LDI4IEBAIHB1YmxpYzoKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViU3RyaW5nJiB1
cmwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlN0
cmluZyYgdGl0bGUpIHsgfQogCisgICAgLy8gV2ViIEludGVudHMgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gUmVnaXN0
ZXIgYW4gSW50ZW50IGhhbmRsZXIgZm9yIHRoZSBnaXZlbiBhY3Rpb24gYW5kIHR5cGUgZmlsdGVy
LgorICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckludGVudEhhbmRsZXIoY29uc3QgV2ViU3RyaW5n
JiBhY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBX
ZWJTdHJpbmcmIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBXZWJTdHJpbmcmIHVybCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IFdlYlN0cmluZyYgdGl0bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBXZWJTdHJpbmcmIGRpc3Bvc2l0aW9uKSB7IH0KKworICAgIC8vIFN0
YXJ0IGEgV2ViIEludGVudHMgYWN0aXZpdHkuCisgICAgdmlydHVhbCB2b2lkIHN0YXJ0QWN0aXZp
dHkoY29uc3QgV2ViU3RyaW5nJiBhY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgV2ViU3RyaW5nJiB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IFdlYlN0cmluZyYgZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQgaW50ZW50SWQpIHsgfQorCisgICAgLy8gU2V0cyB0aGUgY29udHJvbGxlciB0byB3aGljaCB3
ZWIgaW50ZW50cyByZXBsaWVzIG5lZWQgdG8gYmUgZm9yd2FyZGVkIHRvCisgICAgLy8gYmUgcmV0
dXJuZWQgdG8gdGhlIGFwcHJvcHJpYXRlIHJlZ2lzdGVyZWQgSmF2YXNjcmlwdCBjYWxsYmFjay4K
KyAgICB2aXJ0dWFsIHZvaWQgc2V0V2ViSW50ZW50c0NvbnRyb2xsZXIoV2ViSW50ZW50c0NvbnRy
b2xsZXIqKSB7IH0KKworICAgIC8vIEFjY2VzcyB0aGUgd2ViIGludGVudHMgcmVwbHkgY29udHJv
bGxlci4KKyAgICB2aXJ0dWFsIFdlYkludGVudHNDb250cm9sbGVyKiB3ZWJJbnRlbnRzQ29udHJv
bGxlcigpIHsgcmV0dXJuIDA7IH0KKwogICAgIC8vIFZpc2liaWxpdHkgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogICAgIC8vIFJl
dHVybnMgdGhlIGN1cnJlbnQgdmlzaWJpbGl0eSBvZiB0aGUgV2ViVmlldy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkludGVudHNDb250cm9sbGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkludGVudHNDb250cm9sbGVyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43ZmQ4OGUxMzFkZDUyZTcyNjg0MGE2NDdmN2VkOWM0MmFhZWY5M2NhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW50ZW50c0NvbnRyb2xsZXIu
Y3BwCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViSW50ZW50c0NvbnRyb2xsZXIuaCIKKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdl
YkludGVudHNDb250cm9sbGVyOjp3ZWJJbnRlbnRSZXBseShSZXBseVR5cGUgdHlwZSwgY29uc3Qg
V2ViU3RyaW5nJiBkYXRhLCBpbnQgaW50ZW50SWQpCit7CisgICAgZnByaW50ZihzdGRlcnIsICJG
b3J3YXJkaW5nIHJlcGx5ICVkXG4iLCB0eXBlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115257</attachid>
            <date>2011-11-15 15:01:21 -0800</date>
            <delta_ts>2011-11-18 14:57:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69870-20111115150120.patch</filename>
            <type>text/plain</type>
            <size>7462</size>
            <attacher name="Greg Billock">gbillock</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwMzI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDA4YTMwNDNlNzNlNDYzMmNiNDRiZTMxNjgzNTEzYTE1ZjU4NzZkMzcuLjhkOTQwMjRkMDIxNzRl
YTYzNmZmZjYxZmI0ZmE0NDlhNjJmZGMyMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTEtMTEtMTUgIEdyZWcgQmlsbG9jayAgPGdiaWxsb2NrQGdvb2ds
ZS5jb20+CisKKyAgICAgICAgRW1wdHkgQVBJIGZvciB3ZWIgaW50ZW50cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk4NzAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAg
ICogcHVibGljL1dlYkludGVudERhdGEuaDogQWRkZWQuCisgICAgICAgICogcHVibGljL1dlYklu
dGVudFNlcnZpY2VEYXRhLmg6IEFkZGVkLgorICAgICAgICAqIHB1YmxpYy9XZWJGcmFtZS5oOgor
ICAgICAgICAqIHB1YmxpYy9XZWJGcmFtZUNsaWVudC5oOgorCiAyMDExLTExLTE1ICBBbmRlcnMg
Q2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgSG9zdFdpbmRvdyBzY3Jl
ZW5Ub1dpbmRvdy93aW5kb3dUb1NjcmVlbiBzaG91bGQgYmUgc2NyZWVuVG9Sb290Vmlldy9yb290
Vmlld1RvU2NyZWVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5n
eXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggMzk5ZmI5ZmQ5ODEx
Y2FlOTg5ZjIxZmQ3YjMyOTFjMzIyM2IyNjFjZi4uODFjMzM5YWIyZGRmY2IzMTM3NTMyYzJhNWZl
NjM0YTlmMTUzNGNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQu
Z3lwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtMjI1LDYgKzIy
NSw4IEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNr
cy5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYklucHV0RWxlbWVudC5oJywKICAgICAg
ICAgICAgICAgICAncHVibGljL1dlYklucHV0RXZlbnQuaCcsCisgICAgICAgICAgICAgICAgJ3B1
YmxpYy9XZWJJbnRlbnREYXRhLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSW50ZW50
U2VydmljZURhdGEuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJLaXQuaCcsCiAgICAg
ICAgICAgICAgICAgJ3B1YmxpYy9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaCcsCiAgICAgICAgICAg
ICAgICAgJ3B1YmxpYy9XZWJMYWJlbEVsZW1lbnQuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViRnJhbWUuaAppbmRleCA3M2Q0NDIzYmI2MTg2MzRmNmI0Yzk1MjI5MDMyYTc0OTlj
MDczNTM2Li5mOThmOWU0YWMyMDFjYWQ1OWUzZjlhYTQ2Y2Y0NjdmOTI1MmJhOTA1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgKQEAgLTg3LDYgKzg3LDE0IEBAIHB1
YmxpYzoKICAgICB9OwogICAgIHR5cGVkZWYgdW5zaWduZWQgUmVuZGVyQXNUZXh0Q29udHJvbHM7
CiAKKyAgICAvLyBDb250cm9sIHdoZXRoZXIgdGhlIHJlcGx5IHRvIGEgV2ViIEludGVudHMgYWN0
aXZpdHkgaXMgYQorICAgIC8vIHN1Y2Nlc3NmdWwgcmVwbHkgb3IgYSBmYWlsdXJlIG5vdGlmaWNh
dGlvbi4KKyAgICBlbnVtIFdlYkludGVudHNSZXBseVR5cGUgeworICAgICAgICBXZWJJbnRlbnRz
UmVwbHksCisgICAgICAgIFdlYkludGVudHNGYWlsdXJlCisgICAgfTsKKworCiAgICAgLy8gUmV0
dXJucyB0aGUgbnVtYmVyIG9mIGxpdmUgV2ViRnJhbWUgb2JqZWN0cywgdXNlZCBmb3IgbGVhayBj
aGVja2luZy4KICAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBpbnQgaW5zdGFuY2VDb3VudCgpOwog
CkBAIC01NDAsNiArNTQ4LDE1IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVzZXRNYXRj
aENvdW50KCkgPSAwOwogCiAKKyAgICAvLyBXZWIgSW50ZW50cyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIEZvcndhcmRz
IGEgd2ViIGludGVudHMgcmVwbHkgZnJvbSB0aGUgaW52b2tlZCBhY3Rpdml0eSBiYWNrIHRvIHRo
ZQorICAgIC8vIGFwcHJvcHJpYXRlIHJlZ2lzdGVyZWQgSmF2YXNjcmlwdCBjYWxsYmFjay4gVGhl
IGNsaWVudCBpcyByZXNwb25zaWJsZQorICAgIC8vIGZvciBtYW5hZ2luZyB0aGUgcmV0dXJuIG9m
IHRoZSByZXBseSBkYXRhIHRvIHRoZSBjb3JyZWN0IChzb3VyY2UpCisgICAgLy8gV2ViRnJhbWUg
b2JqZWN0LgorICAgIHZpcnR1YWwgdm9pZCByZXBseUZyb21XZWJJbnRlbnRBY3Rpdml0eShXZWJJ
bnRlbnRzUmVwbHlUeXBlLCBjb25zdCBXZWJTdHJpbmcmLCBpbnQpID0gMDsKKworCiAgICAgLy8g
VXRpbGl0eSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCiAKICAgICAvLyBSZXR1cm5zIHRoZSBjb250ZW50cyBvZiB0aGlzIGZyYW1l
IGFzIGEgc3RyaW5nLiAgSWYgdGhlIHRleHQgaXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYkZyYW1lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJGcmFtZUNsaWVudC5oCmluZGV4IGUyZGMzYjE0YmEzNDNiMDVkMzVjMTkzYzAy
OWFlZjUzOTRmZjY3MDQuLmY3MmUxMGNmODVmYWM0YmUxMmRhOTg3YzljZDNkYzQ3NDM0ZjhjZDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWVDbGllbnQuaApA
QCAtNTIsNiArNTIsOCBAQCBjbGFzcyBXZWJDb29raWVKYXI7CiBjbGFzcyBXZWJEYXRhU291cmNl
OwogY2xhc3MgV2ViRm9ybUVsZW1lbnQ7CiBjbGFzcyBXZWJGcmFtZTsKK2NsYXNzIFdlYkludGVu
dFNlcnZpY2VEYXRhOworY2xhc3MgV2ViSW50ZW50RGF0YTsKIGNsYXNzIFdlYk1lZGlhUGxheWVy
OwogY2xhc3MgV2ViTWVkaWFQbGF5ZXJDbGllbnQ7CiBjbGFzcyBXZWJOb2RlOwpAQCAtMzgxLDYg
KzM4MywxNCBAQCBwdWJsaWM6CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBuZXdRdW90YUlu
Qnl0ZXMsCiAgICAgICAgIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrcyopIHsgfQogCisgICAgLy8g
V2ViIEludGVudHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisKKyAgICAvLyBSZWdpc3RlciBhbiBJbnRlbnQgaGFuZGxlciBmb3IgdGhlIGdpdmVu
IGFjdGlvbiBhbmQgdHlwZSBmaWx0ZXIuCisgICAgdmlydHVhbCB2b2lkIGRpZFJlZ2lzdGVyV2Vi
SW50ZW50SGFuZGxlcihXZWJGcmFtZSosIGNvbnN0IFdlYkludGVudFNlcnZpY2VEYXRhJikgeyB9
CisKKyAgICAvLyBTdGFydCBhIFdlYiBJbnRlbnRzIGFjdGl2aXR5LgorICAgIHZpcnR1YWwgdm9p
ZCBzdGFydFdlYkludGVudEFjdGl2aXR5KFdlYkZyYW1lKiwgY29uc3QgV2ViSW50ZW50RGF0YSYs
IGludCkgeyB9CisKIHByb3RlY3RlZDoKICAgICB+V2ViRnJhbWVDbGllbnQoKSB7IH0KIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJbnRlbnREYXRhLmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJbnRlbnREYXRhLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDE3NWVlMDY1OWU3YzdkMzk1YTYwZWFkMDIwMDA4OTZjYjU5ZjIyNgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkludGVudERhdGEuaApAQCAt
MCwwICsxLDI5IEBACisvLyBDb3B5cmlnaHQgMjAxMSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgorLy8gQXV0aG9yOiBnYmlsbG9ja0Bnb29nbGUuY29tIChHcmVnIEJpbGxvY2spCisK
KyNpZm5kZWYgV2ViSW50ZW50RGF0YV9oCisjZGVmaW5lIFdlYkludGVudERhdGFfaAorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViU3RyaW5nOworCisvLyBIb2xkcyBkYXRhIHBhc3Nl
ZCB0aHJvdWdoIGEgV2ViIEludGVudHMgaW52b2NhdGlvbiBjYWxsIGZyb20gdGhlIEphdmFzY3Jp
cHQKKy8vIEludGVudCBvYmplY3QuCitjbGFzcyBXZWJJbnRlbnREYXRhIHsKK3B1YmxpYzoKKyAg
ICB+V2ViSW50ZW50RGF0YSgpIHsgfQorCisgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgYWN0
aW9uKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldEFjdGlvbihjb25zdCBXZWJT
dHJpbmcmKTsKKworICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIHR5cGUoKSBjb25zdDsKKyAg
ICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0VHlwZShjb25zdCBXZWJTdHJpbmcmKTsKKworICAgIFdF
QktJVF9FWFBPUlQgV2ViU3RyaW5nIGRhdGEoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZv
aWQgc2V0RGF0YShjb25zdCBXZWJTdHJpbmcmKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gV2ViSW50ZW50RGF0YV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJJbnRlbnRTZXJ2aWNlRGF0YS5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViSW50ZW50U2VydmljZURhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NDhlNTJh
ZWVjMjdmZTM2YThjMTE1NzIyNWZhMWZmOTQ0NzNmNzM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSW50ZW50U2VydmljZURhdGEuaApAQCAtMCww
ICsxLDM2IEBACisvLyBDb3B5cmlnaHQgMjAxMSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorLy8gQXV0aG9yOiBnYmlsbG9ja0Bnb29nbGUuY29tIChHcmVnIEJpbGxvY2spCisKKyNp
Zm5kZWYgV2ViSW50ZW50U2VydmljZURhdGFfaAorI2RlZmluZSBXZWJJbnRlbnRTZXJ2aWNlRGF0
YV9oCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJTdHJpbmc7CitjbGFzcyBXZWJV
Ukw7CisKKy8vIEhvbGRzIGRhdGEgdXNlZCB0byBpbml0aWFsaXplIGEgV2ViIEludGVudHMgc2Vy
dmljZSAoaGFuZGxlcikuCitjbGFzcyBXZWJJbnRlbnRTZXJ2aWNlRGF0YSB7CitwdWJsaWM6Cisg
ICAgfldlYkludGVudFNlcnZpY2VEYXRhKCkgeyB9CisKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0
cmluZyBzZXJ2aWNlVXJsKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldFNlcnZp
Y2VVcmwoY29uc3QgV2ViVVJMJik7CisKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyB0aXRs
ZSgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRUaXRsZShjb25zdCBXZWJTdHJp
bmcmKTsKKworICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIGFjdGlvbigpIGNvbnN0OworICAg
IFdFQktJVF9FWFBPUlQgdm9pZCBzZXRBY3Rpb24oY29uc3QgV2ViU3RyaW5nJik7CisKKyAgICBX
RUJLSVRfRVhQT1JUIFdlYlN0cmluZyB0eXBlKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2
b2lkIHNldFR5cGUoY29uc3QgV2ViU3RyaW5nJik7CisKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0
cmluZyBkaXNwb3NpdGlvbigpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXREaXNw
b3NpdGlvbihjb25zdCBXZWJTdHJpbmcmKTsKKworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBXZWJJbnRlbnRTZXJ2aWNlRGF0YV9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAppbmRleCA2MjdiM2YzYzE3ZTViZTJlNzE5YWU1Njk4
MzgwMTJkOTc5MDM3YTNhLi42ZjhhYWQ0YzI2YmRlNDk2ODEwNGZlNWJhYzA0NjlhMmVlOWJjOWMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKQEAgLTE4
MjAsNiArMTgyMCwxMSBAQCB2b2lkIFdlYkZyYW1lSW1wbDo6cmVzZXRNYXRjaENvdW50KCkKICAg
ICBtX2ZyYW1lc1Njb3BpbmdDb3VudCA9IDA7CiB9CiAKK3ZvaWQgV2ViRnJhbWVJbXBsOjpyZXBs
eUZyb21XZWJJbnRlbnRBY3Rpdml0eShXZWJJbnRlbnRzUmVwbHlUeXBlIHJlcGx5VHlwZSwgY29u
c3QgV2ViU3RyaW5nJiByZXBseSwgaW50IGludGVudElkKQoreworfQorCisKIFdlYlN0cmluZyBX
ZWJGcmFtZUltcGw6OmNvbnRlbnRBc1RleHQoc2l6ZV90IG1heENoYXJzKSBjb25zdAogewogICAg
IGlmICghbV9mcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkZyYW1lSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgK
aW5kZXggMTkxN2E0YThlM2MyMDdhZGRkODZlOGIzNWY4ZWFjM2JjZDA3MWE2MC4uNjM3ZjI3NjRi
YmZjYTQ2NWI3ZjliMGEwNGZhNGY2NTE1ODVmNGFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViRnJhbWVJbXBsLmgKQEAgLTE5MSw2ICsxOTEsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGluY3JlYXNlTWF0Y2hDb3VudChpbnQgY291bnQsIGludCBpZGVudGlmaWVyKTsK
ICAgICB2aXJ0dWFsIHZvaWQgcmVzZXRNYXRjaENvdW50KCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQg
cmVwbHlGcm9tV2ViSW50ZW50QWN0aXZpdHkoV2ViSW50ZW50c1JlcGx5VHlwZSwgY29uc3QgV2Vi
U3RyaW5nJiwgaW50KTsKKwogICAgIHZpcnR1YWwgV2ViU3RyaW5nIGNvbnRlbnRBc1RleHQoc2l6
ZV90IG1heENoYXJzKSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYlN0cmluZyBjb250ZW50QXNNYXJr
dXAoKSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYlN0cmluZyByZW5kZXJUcmVlQXNUZXh0KFJlbmRl
ckFzVGV4dENvbnRyb2xzIHRvU2hvdyA9IFJlbmRlckFzVGV4dE5vcm1hbCkgY29uc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115418</attachid>
            <date>2011-11-16 11:46:43 -0800</date>
            <delta_ts>2011-11-21 13:15:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69870-20111116114642.patch</filename>
            <type>text/plain</type>
            <size>11015</size>
            <attacher name="Greg Billock">gbillock</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwMzI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDA4YTMwNDNlNzNlNDYzMmNiNDRiZTMxNjgzNTEzYTE1ZjU4NzZkMzcuLjhkOTQwMjRkMDIxNzRl
YTYzNmZmZjYxZmI0ZmE0NDlhNjJmZGMyMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTEtMTEtMTUgIEdyZWcgQmlsbG9jayAgPGdiaWxsb2NrQGdvb2ds
ZS5jb20+CisKKyAgICAgICAgRW1wdHkgQVBJIGZvciB3ZWIgaW50ZW50cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk4NzAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAg
ICogcHVibGljL1dlYkludGVudERhdGEuaDogQWRkZWQuCisgICAgICAgICogcHVibGljL1dlYklu
dGVudFNlcnZpY2VEYXRhLmg6IEFkZGVkLgorICAgICAgICAqIHB1YmxpYy9XZWJGcmFtZS5oOgor
ICAgICAgICAqIHB1YmxpYy9XZWJGcmFtZUNsaWVudC5oOgorCiAyMDExLTExLTE1ICBBbmRlcnMg
Q2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgSG9zdFdpbmRvdyBzY3Jl
ZW5Ub1dpbmRvdy93aW5kb3dUb1NjcmVlbiBzaG91bGQgYmUgc2NyZWVuVG9Sb290Vmlldy9yb290
Vmlld1RvU2NyZWVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5n
eXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggMzk5ZmI5ZmQ5ODEx
Y2FlOTg5ZjIxZmQ3YjMyOTFjMzIyM2IyNjFjZi4uODVkN2VkMzg2YjU5Y2M4NzM2ZjQ4YjY4OGM0
MDBmMmJkMDJjZGFhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQu
Z3lwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtMjI1LDYgKzIy
NSw4IEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNr
cy5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYklucHV0RWxlbWVudC5oJywKICAgICAg
ICAgICAgICAgICAncHVibGljL1dlYklucHV0RXZlbnQuaCcsCisgICAgICAgICAgICAgICAgJ3B1
YmxpYy9XZWJJbnRlbnQuaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJbnRlbnRTZXJ2
aWNlRGF0YS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYktpdC5oJywKICAgICAgICAg
ICAgICAgICAncHVibGljL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oJywKICAgICAgICAgICAgICAg
ICAncHVibGljL1dlYkxhYmVsRWxlbWVudC5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJGcmFtZS5oCmluZGV4IDczZDQ0MjNiYjYxODYzNGY2YjRjOTUyMjkwMzJhNzQ5OWMwNzM1
MzYuLjBlZTBmNDM5MzY1NzI0YzFjNTQwOTc2OTg2N2I2YWM3NGRhMGUwZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaApAQCAtODcsNiArODcsMTQgQEAgcHVibGlj
OgogICAgIH07CiAgICAgdHlwZWRlZiB1bnNpZ25lZCBSZW5kZXJBc1RleHRDb250cm9sczsKIAor
ICAgIC8vIENvbnRyb2wgd2hldGhlciB0aGUgcmVwbHkgdG8gYSBXZWIgSW50ZW50cyBhY3Rpdml0
eSBpcyBhCisgICAgLy8gc3VjY2Vzc2Z1bCByZXBseSBvciBhIGZhaWx1cmUgbm90aWZpY2F0aW9u
LgorICAgIGVudW0gV2ViSW50ZW50c1JlcGx5VHlwZSB7CisgICAgICAgIFdlYkludGVudHNSZXBs
eSwKKyAgICAgICAgV2ViSW50ZW50c0ZhaWx1cmUKKyAgICB9OworCisKICAgICAvLyBSZXR1cm5z
IHRoZSBudW1iZXIgb2YgbGl2ZSBXZWJGcmFtZSBvYmplY3RzLCB1c2VkIGZvciBsZWFrIGNoZWNr
aW5nLgogICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIGludCBpbnN0YW5jZUNvdW50KCk7CiAKQEAg
LTU0MCw2ICs1NDgsMTQgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZXNldE1hdGNoQ291
bnQoKSA9IDA7CiAKIAorICAgIC8vIFdlYiBJbnRlbnRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gRm9yd2FyZHMgYSB3
ZWIgaW50ZW50cyByZXBseSBmcm9tIHRoZSBpbnZva2VkIGFjdGl2aXR5IGJhY2sgdG8gdGhlCisg
ICAgLy8gYXBwcm9wcmlhdGUgcmVnaXN0ZXJlZCBKYXZhc2NyaXB0IGNhbGxiYWNrLiBUaGUgfGlu
dGVudElkfCBpcyB0aGUKKyAgICAvLyBwYXJhbWV0ZXIgcmVjZWl2ZWQgZnJvbSB0aGUgZGlzcGF0
Y2hJbnRlbnQgbWV0aG9kLgorICAgIHZpcnR1YWwgdm9pZCByZXBseUZyb21JbnRlbnRTZXJ2aWNl
KFdlYkludGVudHNSZXBseVR5cGUsIGNvbnN0IFdlYlN0cmluZyYsIGludCBpbnRlbnRJZCkgPSAw
OworCisKICAgICAvLyBVdGlsaXR5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogICAgIC8vIFJldHVybnMgdGhlIGNvbnRlbnRz
IG9mIHRoaXMgZnJhbWUgYXMgYSBzdHJpbmcuICBJZiB0aGUgdGV4dCBpcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWVDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lQ2xpZW50LmgKaW5kZXggZTJkYzNiMTRiYTM0
M2IwNWQzNWMxOTNjMDI5YWVmNTM5NGZmNjcwNC4uODkzM2JjZTcwNGE2ODNjODFhY2QyMGNmYjli
MTI1NTI5ZDI1ZjBhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViRnJhbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJG
cmFtZUNsaWVudC5oCkBAIC01Miw2ICs1Miw4IEBAIGNsYXNzIFdlYkNvb2tpZUphcjsKIGNsYXNz
IFdlYkRhdGFTb3VyY2U7CiBjbGFzcyBXZWJGb3JtRWxlbWVudDsKIGNsYXNzIFdlYkZyYW1lOwor
Y2xhc3MgV2ViSW50ZW50U2VydmljZURhdGE7CitjbGFzcyBXZWJJbnRlbnQ7CiBjbGFzcyBXZWJN
ZWRpYVBsYXllcjsKIGNsYXNzIFdlYk1lZGlhUGxheWVyQ2xpZW50OwogY2xhc3MgV2ViTm9kZTsK
QEAgLTM4MSw2ICszODMsMTcgQEAgcHVibGljOgogICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcg
bmV3UXVvdGFJbkJ5dGVzLAogICAgICAgICBXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3MqKSB7IH0K
IAorICAgIC8vIFdlYiBJbnRlbnRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gUmVnaXN0ZXIgYSBzZXJ2aWNlIHRvIGhhbmRsZSBX
ZWIgSW50ZW50cy4KKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlKFdlYkZy
YW1lKiwgY29uc3QgV2ViSW50ZW50U2VydmljZURhdGEmKSB7IH0KKworICAgIC8vIFN0YXJ0IGEg
V2ViIEludGVudHMgYWN0aXZpdHkuIFJlcGxpZXMgdG8gdGhpcyByZXF1ZXN0IHNob3VsZCBiZSBz
ZW50IHRvCisgICAgLy8gdGhlIFdlYkZyYW1lIHN0YXJ0aW5nIHRoZSBhY3Rpdml0eS4gVGhlIHxp
bnRlbnRJZHwgaXMgYW4gYXJiaXRyYXJ5CisgICAgLy8gcGFyYW1ldGVyIGNyZWF0ZWQgYnkgdGhl
IGRpc3BhdGNoaW5nIGNvbnRyb2xsZXIgdG8gdHJhY2sgYSBwYXJ0aWN1bGFyCisgICAgLy8gaW50
ZW50LgorICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEludGVudChXZWJGcmFtZSosIGNvbnN0IFdl
YkludGVudCYsIGludCBpbnRlbnRJZCkgeyB9CisKIHByb3RlY3RlZDoKICAgICB+V2ViRnJhbWVD
bGllbnQoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJJbnRlbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkludGVudC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjgyMjA1YTBjMjM2OTM1MjU5NzRiYzI3MGQwOTE2YzY4NTE5OTExMjEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJbnRlbnQu
aApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJJbnRlbnRfaAorI2RlZmluZSBXZWJJbnRlbnRf
aAorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViU3RyaW5nOworCisvLyBIb2xkcyBk
YXRhIHBhc3NlZCB0aHJvdWdoIGEgV2ViIEludGVudHMgaW52b2NhdGlvbiBjYWxsIGZyb20gdGhl
IEphdmFzY3JpcHQKKy8vIEludGVudCBvYmplY3QuCitjbGFzcyBXZWJJbnRlbnQgeworcHVibGlj
OgorICAgIH5XZWJJbnRlbnQoKSB7IH0KKworICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIGFj
dGlvbigpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRBY3Rpb24oY29uc3QgV2Vi
U3RyaW5nJik7CisKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyB0eXBlKCkgY29uc3Q7Cisg
ICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldFR5cGUoY29uc3QgV2ViU3RyaW5nJik7CisKKyAgICBX
RUJLSVRfRVhQT1JUIFdlYlN0cmluZyBkYXRhKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2
b2lkIHNldERhdGEoY29uc3QgV2ViU3RyaW5nJik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIFdlYkludGVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJJbnRlbnRTZXJ2aWNlRGF0YS5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViSW50ZW50U2VydmljZURhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMTAzMjEwOGVl
NzgzYTk5NDFjMDkxZTVjOWFhNzI5NTllMmU1YjFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSW50ZW50U2VydmljZURhdGEuaApAQCAtMCwwICsx
LDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBXZWJJbnRlbnRTZXJ2aWNlRGF0YV9oCisjZGVmaW5lIFdlYkludGVudFNl
cnZpY2VEYXRhX2gKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlN0cmluZzsKK2Ns
YXNzIFdlYlVSTDsKKworLy8gSG9sZHMgZGF0YSB1c2VkIHRvIGluaXRpYWxpemUgYSBXZWIgSW50
ZW50cyBzZXJ2aWNlIChoYW5kbGVyKS4KKy8vIFRoZSB8dXJsfCBpcyB0aGUgbG9jYXRpb24gb2Yg
dGhlIGhhbmRsZXIgcGFnZSByZWdpc3RlcmVkIGJ5IHRoZSBzZXJ2aWNlLgorLy8gVGhlIHx0aXRs
ZXwgaXMgdGhlIHNob3J0IG5hbWUgdGhlIHNlcnZpY2Ugd2lsbCBiZSBrbm93biBieSB3aGVuIHRo
ZSB1c2VyCisvLyBpbml0aWF0ZXMgYW4gaW50ZW50LgorLy8gVGhlIHxhY3Rpb258IGFuZCB8dHlw
ZXwgY2hhcmFjdGVyaXplIHRoZSBraW5kIG9mIGludGVudCBhbmQgdGhlIHR5cGUgb2YgdGhlCisv
LyBwYXlsb2FkIGRhdGEgd2hpY2ggdGhlIHNlcnZpY2Ugd2lsbCBoYW5kbGUuCisvLyBUaGUgfGRp
c3Bvc2l0aW9ufCBpcyBhIGhpbnQgdG8gdGhlIGNsaWVudCBhYm91dCB3aGV0aGVyIHRoZSBzZXJ2
aWNlIGNhbiBiZQorLy8gcnVuIHdpdGhpbiBhbiAiaW5saW5lIiBjb250ZXh0IHdpdGhpbiB0aGUg
Y2FsbGluZyBwYWdlLCBvciBpbiBhIG5ldyB0YWIKKy8vIGNvbnRleHQgKHRoZSBkZWZhdWx0KS4K
K2NsYXNzIFdlYkludGVudFNlcnZpY2VEYXRhIHsKK3B1YmxpYzoKKyAgICB+V2ViSW50ZW50U2Vy
dmljZURhdGEoKSB7IH0KKworICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIHVybCgpIGNvbnN0
OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRVcmwoY29uc3QgV2ViVVJMJik7CisKKyAgICBX
RUJLSVRfRVhQT1JUIFdlYlN0cmluZyB0aXRsZSgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQg
dm9pZCBzZXRUaXRsZShjb25zdCBXZWJTdHJpbmcmKTsKKworICAgIFdFQktJVF9FWFBPUlQgV2Vi
U3RyaW5nIGFjdGlvbigpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRBY3Rpb24o
Y29uc3QgV2ViU3RyaW5nJik7CisKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyB0eXBlKCkg
Y29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldFR5cGUoY29uc3QgV2ViU3RyaW5nJik7
CisKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyBkaXNwb3NpdGlvbigpIGNvbnN0OworICAg
IFdFQktJVF9FWFBPUlQgdm9pZCBzZXREaXNwb3NpdGlvbihjb25zdCBXZWJTdHJpbmcmKTsKKwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJJbnRlbnRTZXJ2aWNl
RGF0YV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUlt
cGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAppbmRl
eCA2MjdiM2YzYzE3ZTViZTJlNzE5YWU1Njk4MzgwMTJkOTc5MDM3YTNhLi41YzY0OTRmNzkxOWEy
MGEzMTI5ODc3M2VmMmI5ZTc2Y2Q1MDUwZWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkZyYW1lSW1wbC5jcHAKQEAgLTE4MjAsNiArMTgyMCwxMSBAQCB2b2lkIFdlYkZyYW1l
SW1wbDo6cmVzZXRNYXRjaENvdW50KCkKICAgICBtX2ZyYW1lc1Njb3BpbmdDb3VudCA9IDA7CiB9
CiAKK3ZvaWQgV2ViRnJhbWVJbXBsOjpyZXBseUZyb21JbnRlbnRTZXJ2aWNlKFdlYkludGVudHNS
ZXBseVR5cGUgcmVwbHlUeXBlLCBjb25zdCBXZWJTdHJpbmcmIHJlcGx5LCBpbnQgaW50ZW50SWQp
Cit7Cit9CisKKwogV2ViU3RyaW5nIFdlYkZyYW1lSW1wbDo6Y29udGVudEFzVGV4dChzaXplX3Qg
bWF4Q2hhcnMpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJGcmFtZUltcGwuaAppbmRleCAxOTE3YTRhOGUzYzIwN2FkZGQ4NmU4YjM1Zjhl
YWMzYmNkMDcxYTYwLi42MTgzMjUyZGZiZjI4OWM4OTNiMGE5NDJhZmI5ZDYzYjBlZmU3ODdjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaApAQCAtMTkxLDYgKzE5
MSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgaW5jcmVhc2VNYXRjaENvdW50KGludCBj
b3VudCwgaW50IGlkZW50aWZpZXIpOwogICAgIHZpcnR1YWwgdm9pZCByZXNldE1hdGNoQ291bnQo
KTsKIAorICAgIHZpcnR1YWwgdm9pZCByZXBseUZyb21JbnRlbnRTZXJ2aWNlKFdlYkludGVudHNS
ZXBseVR5cGUsIGNvbnN0IFdlYlN0cmluZyYsIGludCk7CisKICAgICB2aXJ0dWFsIFdlYlN0cmlu
ZyBjb250ZW50QXNUZXh0KHNpemVfdCBtYXhDaGFycykgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJT
dHJpbmcgY29udGVudEFzTWFya3VwKCkgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJTdHJpbmcgcmVu
ZGVyVHJlZUFzVGV4dChSZW5kZXJBc1RleHRDb250cm9scyB0b1Nob3cgPSBSZW5kZXJBc1RleHRO
b3JtYWwpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115877</attachid>
            <date>2011-11-18 14:57:14 -0800</date>
            <delta_ts>2011-11-21 14:51:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69870-20111118145712.patch</filename>
            <type>text/plain</type>
            <size>11170</size>
            <attacher name="Greg Billock">gbillock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMWMyZWNhZTNhM2Y2N2I2MTVkYjllMjk4Yjcy
Mjc2YzY0M2JkNjdhOS4uNzU2MzZlYTlkMDZiM2FmYWY5NjU5NjM3MTBhMzAzMDNmNGQzYWQwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0xMS0xNSAg
R3JlZyBCaWxsb2NrICA8Z2JpbGxvY2tAZ29vZ2xlLmNvbT4KKworICAgICAgICBFbXB0eSBBUEkg
Zm9yIHdlYiBpbnRlbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02OTg3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMvV2ViSW50ZW50Lmg6IEFkZGVk
LgorICAgICAgICAqIHB1YmxpYy9XZWJJbnRlbnRTZXJ2aWNlSW5mby5oOiBBZGRlZC4KKyAgICAg
ICAgKiBwdWJsaWMvV2ViRnJhbWUuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViRnJhbWVDbGllbnQu
aDoKKwogMjAxMS0xMS0xNiAgQWxleGFuZHJlIEVsaWFzICA8YWVsaWFzQGdvb2dsZS5jb20+CiAK
ICAgICAgICAgW2Nocm9taXVtXSBJbXByb3ZlbWVudHMgZm9yIHBhZ2Ugc2NhbGUgZGVsdGEgZHVy
aW5nIGNvbW1pdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IGJhODU0ZWFiY2Q2YWY4
NzQ1YjcxYWFiOWMxNzY1MjNjMTBlOTkyNDkuLjVjNWQ0MTU5NzQ2NjY0NWVkNThiMmYyMDg2OTMy
NDk3YTNjZWUyYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTIyNSw2ICsyMjUs
OCBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3Mu
aCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJbnB1dEVsZW1lbnQuaCcsCiAgICAgICAg
ICAgICAgICAgJ3B1YmxpYy9XZWJJbnB1dEV2ZW50LmgnLAorICAgICAgICAgICAgICAgICdwdWJs
aWMvV2ViSW50ZW50LmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSW50ZW50U2Vydmlj
ZUluZm8uaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJLaXQuaCcsCiAgICAgICAgICAg
ICAgICAgJ3B1YmxpYy9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaCcsCiAgICAgICAgICAgICAgICAg
J3B1YmxpYy9XZWJMYWJlbEVsZW1lbnQuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViRnJhbWUuaAppbmRleCA3M2Q0NDIzYmI2MTg2MzRmNmI0Yzk1MjI5MDMyYTc0OTljMDczNTM2
Li4yZDdlY2NjODQyNjYwMjUzOWY5ZTk0MjFkNTU0ODc5YTQ4MGM3MmYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgKQEAgLTU0MCw2ICs1NDAsMjAgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCByZXNldE1hdGNoQ291bnQoKSA9IDA7CiAKIAorICAgIC8vIFdl
YiBJbnRlbnRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorCisgICAgLy8gRm9yd2FyZHMgYSB3ZWIgaW50ZW50cyByZXBseSBmcm9tIHRo
ZSBpbnZva2VkIGFjdGl2aXR5IGJhY2sgdG8gdGhlCisgICAgLy8gYXBwcm9wcmlhdGUgcmVnaXN0
ZXJlZCBKYXZhc2NyaXB0IGNhbGxiYWNrLiBUaGUgfGludGVudElkfCBpcyB0aGUKKyAgICAvLyBw
YXJhbWV0ZXIgcmVjZWl2ZWQgZnJvbSB0aGUgZGlzcGF0Y2hJbnRlbnQgbWV0aG9kLgorICAgIHZp
cnR1YWwgdm9pZCBoYW5kbGVJbnRlbnRSZXN1bHQoY29uc3QgV2ViU3RyaW5nJiwgaW50IGludGVu
dElkKSA9IDA7CisKKyAgICAvLyBGb3J3YXJkcyBhIHdlYiBpbnRlbnRzIGZhaWx1cmUgbm90aWZp
Y2F0aW9uIGZyb20gdGhlIGludm9rZWQgYWN0aXZpdHkKKyAgICAvLyBvciBpbnRlcnZlbmluZyBi
cm93c2VyIGxvZ2ljIGJhY2sgdG8gdGhlIGFwcHJvcHJpYXRlIHJlZ2lzdGVyZWQKKyAgICAvLyBK
YXZhc2NyaXB0IGNhbGxiYWNrLiBUaGUgfGludGVudElkfCBpcyB0aGUgcGFyYW1ldGVyIHJlY2Vp
dmVkIGZyb20KKyAgICAvLyB0aGUgZGlzcGF0Y2hJbnRlbnQgbWV0aG9kLgorICAgIHZpcnR1YWwg
dm9pZCBoYW5kbGVJbnRlbnRGYWlsdXJlKGNvbnN0IFdlYlN0cmluZyYsIGludCBpbnRlbnRJZCkg
PSAwOworCisKICAgICAvLyBVdGlsaXR5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogICAgIC8vIFJldHVybnMgdGhlIGNvbnRl
bnRzIG9mIHRoaXMgZnJhbWUgYXMgYSBzdHJpbmcuICBJZiB0aGUgdGV4dCBpcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWVDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lQ2xpZW50LmgKaW5kZXggZTJkYzNiMTRi
YTM0M2IwNWQzNWMxOTNjMDI5YWVmNTM5NGZmNjcwNC4uNTgzNzBmODljYmZjYzliZGY3ODhmODJj
NGNhNmFmZTA1MmI5MTEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViRnJhbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJGcmFtZUNsaWVudC5oCkBAIC01Miw2ICs1Miw4IEBAIGNsYXNzIFdlYkNvb2tpZUphcjsKIGNs
YXNzIFdlYkRhdGFTb3VyY2U7CiBjbGFzcyBXZWJGb3JtRWxlbWVudDsKIGNsYXNzIFdlYkZyYW1l
OworY2xhc3MgV2ViSW50ZW50U2VydmljZUluZm87CitjbGFzcyBXZWJJbnRlbnQ7CiBjbGFzcyBX
ZWJNZWRpYVBsYXllcjsKIGNsYXNzIFdlYk1lZGlhUGxheWVyQ2xpZW50OwogY2xhc3MgV2ViTm9k
ZTsKQEAgLTM4MSw2ICszODMsMTcgQEAgcHVibGljOgogICAgICAgICB1bnNpZ25lZCBsb25nIGxv
bmcgbmV3UXVvdGFJbkJ5dGVzLAogICAgICAgICBXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3MqKSB7
IH0KIAorICAgIC8vIFdlYiBJbnRlbnRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gUmVnaXN0ZXIgYSBzZXJ2aWNlIHRvIGhhbmRs
ZSBXZWIgSW50ZW50cy4KKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlKFdl
YkZyYW1lKiwgY29uc3QgV2ViSW50ZW50U2VydmljZUluZm8mKSB7IH0KKworICAgIC8vIFN0YXJ0
IGEgV2ViIEludGVudHMgYWN0aXZpdHkuIFJlcGxpZXMgdG8gdGhpcyByZXF1ZXN0IHNob3VsZCBi
ZSBzZW50IHRvCisgICAgLy8gdGhlIFdlYkZyYW1lIHN0YXJ0aW5nIHRoZSBhY3Rpdml0eS4gVGhl
IHxpbnRlbnRJZHwgaXMgYW4gYXJiaXRyYXJ5CisgICAgLy8gcGFyYW1ldGVyIGNyZWF0ZWQgYnkg
dGhlIGRpc3BhdGNoaW5nIGNvbnRyb2xsZXIgdG8gdHJhY2sgYSBwYXJ0aWN1bGFyCisgICAgLy8g
aW50ZW50LgorICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEludGVudChXZWJGcmFtZSosIGNvbnN0
IFdlYkludGVudCYpIHsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgfldlYkZyYW1lQ2xpZW50KCkgeyB9
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSW50ZW50
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJbnRlbnQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mMGVjYWMyM2JkM2IwYjUzZWEzNDJjOWM5MmM5YmE1MWE5ODI4NTJiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSW50ZW50LmgKQEAgLTAsMCAr
MSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgV2ViSW50ZW50X2gKKyNkZWZpbmUgV2ViSW50ZW50X2gKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlN0cmluZzsKKworLy8gSG9sZHMgZGF0YSBwYXNzZWQg
dGhyb3VnaCBhIFdlYiBJbnRlbnRzIGludm9jYXRpb24gY2FsbCBmcm9tIHRoZSBKYXZhc2NyaXB0
CisvLyBJbnRlbnQgb2JqZWN0LgorLy8gU2VlIHNwZWMgYXQgaHR0cDovL3d3dy5jaHJvbWl1bS5v
cmcvZGV2ZWxvcGVycy9kZXNpZ24tZG9jdW1lbnRzL3dlYmludGVudHNhcGkKK2NsYXNzIFdlYklu
dGVudCB7CitwdWJsaWM6CisgICAgfldlYkludGVudCgpIHsgfQorCisgICAgV0VCS0lUX0VYUE9S
VCBXZWJTdHJpbmcgYWN0aW9uKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldEFj
dGlvbihjb25zdCBXZWJTdHJpbmcmKTsKKworICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIHR5
cGUoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0VHlwZShjb25zdCBXZWJTdHJp
bmcmKTsKKworICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIGRhdGEoKSBjb25zdDsKKyAgICBX
RUJLSVRfRVhQT1JUIHZvaWQgc2V0RGF0YShjb25zdCBXZWJTdHJpbmcmKTsKKworICAgIFdFQktJ
VF9FWFBPUlQgaW50IGlkZW50aWZpZXIoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQg
c2V0SWRlbnRpZmllcihpbnQpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBXZWJJbnRlbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViSW50ZW50U2VydmljZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYkludGVudFNlcnZpY2VJbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzkyY2NkNTU4ZDkyYmMzM2ZlNWVi
NzkwOWQ4MzQ3MTMxYmY0Mzk5YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYkludGVudFNlcnZpY2VJbmZvLmgKQEAgLTAsMCArMSw3MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgV2ViSW50ZW50U2VydmljZUluZm9faAorI2RlZmluZSBXZWJJbnRlbnRTZXJ2aWNlSW5mb19o
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJTdHJpbmc7CitjbGFzcyBXZWJVUkw7
CisKKy8vIEhvbGRzIGRhdGEgdXNlZCB0byBpbml0aWFsaXplIGEgV2ViIEludGVudHMgc2Vydmlj
ZSAoaGFuZGxlcikuCisvLyBUaGUgfHVybHwgaXMgdGhlIGxvY2F0aW9uIG9mIHRoZSBoYW5kbGVy
IHBhZ2UgcmVnaXN0ZXJlZCBieSB0aGUgc2VydmljZS4KKy8vIFRoZSB8dGl0bGV8IGlzIHRoZSBz
aG9ydCBuYW1lIHRoZSBzZXJ2aWNlIHdpbGwgYmUga25vd24gYnkgd2hlbiB0aGUgdXNlcgorLy8g
aW5pdGlhdGVzIGFuIGludGVudC4KKy8vIFRoZSB8YWN0aW9ufCBhbmQgfHR5cGV8IGNoYXJhY3Rl
cml6ZSB0aGUga2luZCBvZiBpbnRlbnQgYW5kIHRoZSB0eXBlIG9mIHRoZQorLy8gcGF5bG9hZCBk
YXRhIHdoaWNoIHRoZSBzZXJ2aWNlIHdpbGwgaGFuZGxlLgorLy8gVGhlIHxkaXNwb3NpdGlvbnwg
aXMgYSBoaW50IHRvIHRoZSBjbGllbnQgYWJvdXQgd2hldGhlciB0aGUgc2VydmljZSBjYW4gYmUK
Ky8vIHJ1biB3aXRoaW4gYW4gImlubGluZSIgY29udGV4dCB3aXRoaW4gdGhlIGNhbGxpbmcgcGFn
ZSwgb3IgaW4gYSBuZXcgdGFiCisvLyBjb250ZXh0ICh0aGUgZGVmYXVsdCkuCisvLyBTZWUgc3Bl
YyBhdCBodHRwOi8vd3d3LmNocm9taXVtLm9yZy9kZXZlbG9wZXJzL2Rlc2lnbi1kb2N1bWVudHMv
d2ViaW50ZW50c2FwaQorY2xhc3MgV2ViSW50ZW50U2VydmljZUluZm8geworcHVibGljOgorICAg
IH5XZWJJbnRlbnRTZXJ2aWNlSW5mbygpIHsgfQorCisgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJp
bmcgdXJsKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldFVSTChjb25zdCBXZWJV
UkwmKTsKKworICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIHRpdGxlKCkgY29uc3Q7CisgICAg
V0VCS0lUX0VYUE9SVCB2b2lkIHNldFRpdGxlKGNvbnN0IFdlYlN0cmluZyYpOworCisgICAgV0VC
S0lUX0VYUE9SVCBXZWJTdHJpbmcgYWN0aW9uKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2
b2lkIHNldEFjdGlvbihjb25zdCBXZWJTdHJpbmcmKTsKKworICAgIFdFQktJVF9FWFBPUlQgV2Vi
U3RyaW5nIHR5cGUoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0VHlwZShjb25z
dCBXZWJTdHJpbmcmKTsKKworICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIGRpc3Bvc2l0aW9u
KCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldERpc3Bvc2l0aW9uKGNvbnN0IFdl
YlN0cmluZyYpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJJ
bnRlbnRTZXJ2aWNlSW5mb19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJGcmFtZUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJ
bXBsLmNwcAppbmRleCA2MjdiM2YzYzE3ZTViZTJlNzE5YWU1Njk4MzgwMTJkOTc5MDM3YTNhLi44
ZmY5NTBhNmM4YjliZWY4ZjlkMmFiNzc0MjE5ZDdhODI5NDAwYjYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKQEAgLTE4MjAsNiArMTgyMCwxNCBAQCB2
b2lkIFdlYkZyYW1lSW1wbDo6cmVzZXRNYXRjaENvdW50KCkKICAgICBtX2ZyYW1lc1Njb3BpbmdD
b3VudCA9IDA7CiB9CiAKK3ZvaWQgV2ViRnJhbWVJbXBsOjpoYW5kbGVJbnRlbnRSZXN1bHQoY29u
c3QgV2ViU3RyaW5nJiByZXBseSwgaW50IGludGVudElkKQoreworfQorCit2b2lkIFdlYkZyYW1l
SW1wbDo6aGFuZGxlSW50ZW50RmFpbHVyZShjb25zdCBXZWJTdHJpbmcmIHJlcGx5LCBpbnQgaW50
ZW50SWQpCit7Cit9CisKIFdlYlN0cmluZyBXZWJGcmFtZUltcGw6OmNvbnRlbnRBc1RleHQoc2l6
ZV90IG1heENoYXJzKSBjb25zdAogewogICAgIGlmICghbV9mcmFtZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKaW5kZXggMTkxN2E0YThlM2MyMDdhZGRkODZlOGIz
NWY4ZWFjM2JjZDA3MWE2MC4uNTQzOTY0NTcwODE1MGYwZWY4YjMzMjJhZGMwNTU2YjY4ODViOTA4
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKQEAgLTE5MSw2
ICsxOTEsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGluY3JlYXNlTWF0Y2hDb3VudChp
bnQgY291bnQsIGludCBpZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzZXRNYXRjaENv
dW50KCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlSW50ZW50UmVzdWx0KGNvbnN0IFdlYlN0
cmluZyYsIGludCk7CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUludGVudEZhaWx1cmUoY29uc3Qg
V2ViU3RyaW5nJiwgaW50KTsKKwogICAgIHZpcnR1YWwgV2ViU3RyaW5nIGNvbnRlbnRBc1RleHQo
c2l6ZV90IG1heENoYXJzKSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYlN0cmluZyBjb250ZW50QXNN
YXJrdXAoKSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYlN0cmluZyByZW5kZXJUcmVlQXNUZXh0KFJl
bmRlckFzVGV4dENvbnRyb2xzIHRvU2hvdyA9IFJlbmRlckFzVGV4dE5vcm1hbCkgY29uc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116124</attachid>
            <date>2011-11-21 13:16:01 -0800</date>
            <delta_ts>2011-11-21 14:51:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69870-20111121131600.patch</filename>
            <type>text/plain</type>
            <size>11019</size>
            <attacher name="Greg Billock">gbillock</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwOTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDU4NjFiNGQ2OTEwNWZhZTk4MzJiNmI1NTg0NTUzNGJmNDBlNDAyNGEuLjg3YzI2MDNmOGM1MDI5
MjNkZTRhOWNjZDljMjE1YWY1N2VkMmQxNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTEtMTEtMTUgIEdyZWcgQmlsbG9jayAgPGdiaWxsb2NrQGdvb2ds
ZS5jb20+CisKKyAgICAgICAgRW1wdHkgQVBJIGZvciB3ZWIgaW50ZW50cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk4NzAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAg
ICogcHVibGljL1dlYkludGVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBwdWJsaWMvV2ViSW50ZW50
U2VydmljZUluZm8uaDogQWRkZWQuCisgICAgICAgICogcHVibGljL1dlYkZyYW1lLmg6CisgICAg
ICAgICogcHVibGljL1dlYkZyYW1lQ2xpZW50Lmg6CisKIDIwMTEtMTEtMjEgIEpvY2hlbiBFaXNp
bmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW1wbGVtZW50IE1ldGEgcmVm
ZXJyZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCAxMjEwODk0NjZmNTY5ODRkNWQ0
N2Q5ZmMxNjc5YzE3MDYzMzM2NTI2Li5hYzNlMmNmMGQ1MzAxNjRhMmJmOGVjNDYwMGY3OGVjOTM4
ZGIzYzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0yMjYsNiArMjI2LDggQEAK
ICAgICAgICAgICAgICAgICAncHVibGljL1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmgnLAog
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSW5wdXRFbGVtZW50LmgnLAogICAgICAgICAgICAg
ICAgICdwdWJsaWMvV2ViSW5wdXRFdmVudC5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL1dl
YkludGVudC5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL1dlYkludGVudFNlcnZpY2VJbmZv
LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViS2l0LmgnLAogICAgICAgICAgICAgICAg
ICdwdWJsaWMvV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgnLAogICAgICAgICAgICAgICAgICdwdWJs
aWMvV2ViTGFiZWxFbGVtZW50LmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViRnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZy
YW1lLmgKaW5kZXggNzliNzQ2NzlmMTg0YjMyMzJmNjFkNzFiY2IyOWMxYmIyNGM5ZDMxYS4uOTAy
NjNlMzZlOGFjNDI0MDYxY2NmZTk0NmRlNmFhYWRiYWNmNGMwMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCkBAIC01NDQsNiArNTQ0LDIwIEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgcmVzZXRNYXRjaENvdW50KCkgPSAwOwogCiAKKyAgICAvLyBXZWIgSW50
ZW50cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKworICAgIC8vIEZvcndhcmRzIGEgd2ViIGludGVudHMgcmVwbHkgZnJvbSB0aGUgaW52
b2tlZCBhY3Rpdml0eSBiYWNrIHRvIHRoZQorICAgIC8vIGFwcHJvcHJpYXRlIHJlZ2lzdGVyZWQg
SmF2YXNjcmlwdCBjYWxsYmFjay4gVGhlIHxpbnRlbnRJZHwgaXMgdGhlCisgICAgLy8gcGFyYW1l
dGVyIHJlY2VpdmVkIGZyb20gdGhlIGRpc3BhdGNoSW50ZW50IG1ldGhvZC4KKyAgICB2aXJ0dWFs
IHZvaWQgaGFuZGxlSW50ZW50UmVzdWx0KGludCBpbnRlbnRJZGVudGlmaWVyLCBjb25zdCBXZWJT
dHJpbmcmKSA9IDA7CisKKyAgICAvLyBGb3J3YXJkcyBhIHdlYiBpbnRlbnRzIGZhaWx1cmUgbm90
aWZpY2F0aW9uIGZyb20gdGhlIGludm9rZWQgYWN0aXZpdHkKKyAgICAvLyBvciBpbnRlcnZlbmlu
ZyBicm93c2VyIGxvZ2ljIGJhY2sgdG8gdGhlIGFwcHJvcHJpYXRlIHJlZ2lzdGVyZWQKKyAgICAv
LyBKYXZhc2NyaXB0IGNhbGxiYWNrLiBUaGUgfGludGVudElkfCBpcyB0aGUgcGFyYW1ldGVyIHJl
Y2VpdmVkIGZyb20KKyAgICAvLyB0aGUgZGlzcGF0Y2hJbnRlbnQgbWV0aG9kLgorICAgIHZpcnR1
YWwgdm9pZCBoYW5kbGVJbnRlbnRGYWlsdXJlKGludCBpbnRlbnRJZGVudGlmaWVyLCBjb25zdCBX
ZWJTdHJpbmcmKSA9IDA7CisKKwogICAgIC8vIFV0aWxpdHkgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAgICAgLy8gUmV0dXJu
cyB0aGUgY29udGVudHMgb2YgdGhpcyBmcmFtZSBhcyBhIHN0cmluZy4gIElmIHRoZSB0ZXh0IGlz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZUNsaWVu
dC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWVDbGllbnQuaAppbmRl
eCBlMmRjM2IxNGJhMzQzYjA1ZDM1YzE5M2MwMjlhZWY1Mzk0ZmY2NzA0Li40MDZiYjYxZDBlNGU2
ZGJhZmYxODhjMTFhYWQxOTkwY2E1MmRjMWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJGcmFtZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYkZyYW1lQ2xpZW50LmgKQEAgLTUyLDYgKzUyLDggQEAgY2xhc3MgV2ViQ29v
a2llSmFyOwogY2xhc3MgV2ViRGF0YVNvdXJjZTsKIGNsYXNzIFdlYkZvcm1FbGVtZW50OwogY2xh
c3MgV2ViRnJhbWU7CitjbGFzcyBXZWJJbnRlbnRTZXJ2aWNlSW5mbzsKK2NsYXNzIFdlYkludGVu
dDsKIGNsYXNzIFdlYk1lZGlhUGxheWVyOwogY2xhc3MgV2ViTWVkaWFQbGF5ZXJDbGllbnQ7CiBj
bGFzcyBXZWJOb2RlOwpAQCAtMzgxLDYgKzM4MywxNSBAQCBwdWJsaWM6CiAgICAgICAgIHVuc2ln
bmVkIGxvbmcgbG9uZyBuZXdRdW90YUluQnl0ZXMsCiAgICAgICAgIFdlYlN0b3JhZ2VRdW90YUNh
bGxiYWNrcyopIHsgfQogCisgICAgLy8gV2ViIEludGVudHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvLyBSZWdpc3RlciBhIHNlcnZp
Y2UgdG8gaGFuZGxlIFdlYiBJbnRlbnRzLgorICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckludGVu
dFNlcnZpY2UoV2ViRnJhbWUqLCBjb25zdCBXZWJJbnRlbnRTZXJ2aWNlSW5mbyYpIHsgfQorCisg
ICAgLy8gU3RhcnQgYSBXZWIgSW50ZW50cyBhY3Rpdml0eS4gUmVwbGllcyB0byB0aGlzIHJlcXVl
c3Qgc2hvdWxkIGJlIHNlbnQgdG8KKyAgICAvLyB0aGUgV2ViRnJhbWUgc3RhcnRpbmcgdGhlIGFj
dGl2aXR5LgorICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEludGVudChXZWJGcmFtZSosIGNvbnN0
IFdlYkludGVudCYpIHsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgfldlYkZyYW1lQ2xpZW50KCkgeyB9
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSW50ZW50
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJbnRlbnQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mMGVjYWMyM2JkM2IwYjUzZWEzNDJjOWM5MmM5YmE1MWE5ODI4NTJiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSW50ZW50LmgKQEAgLTAsMCAr
MSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgV2ViSW50ZW50X2gKKyNkZWZpbmUgV2ViSW50ZW50X2gKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlN0cmluZzsKKworLy8gSG9sZHMgZGF0YSBwYXNzZWQg
dGhyb3VnaCBhIFdlYiBJbnRlbnRzIGludm9jYXRpb24gY2FsbCBmcm9tIHRoZSBKYXZhc2NyaXB0
CisvLyBJbnRlbnQgb2JqZWN0LgorLy8gU2VlIHNwZWMgYXQgaHR0cDovL3d3dy5jaHJvbWl1bS5v
cmcvZGV2ZWxvcGVycy9kZXNpZ24tZG9jdW1lbnRzL3dlYmludGVudHNhcGkKK2NsYXNzIFdlYklu
dGVudCB7CitwdWJsaWM6CisgICAgfldlYkludGVudCgpIHsgfQorCisgICAgV0VCS0lUX0VYUE9S
VCBXZWJTdHJpbmcgYWN0aW9uKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldEFj
dGlvbihjb25zdCBXZWJTdHJpbmcmKTsKKworICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIHR5
cGUoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0VHlwZShjb25zdCBXZWJTdHJp
bmcmKTsKKworICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIGRhdGEoKSBjb25zdDsKKyAgICBX
RUJLSVRfRVhQT1JUIHZvaWQgc2V0RGF0YShjb25zdCBXZWJTdHJpbmcmKTsKKworICAgIFdFQktJ
VF9FWFBPUlQgaW50IGlkZW50aWZpZXIoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQg
c2V0SWRlbnRpZmllcihpbnQpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBXZWJJbnRlbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViSW50ZW50U2VydmljZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYkludGVudFNlcnZpY2VJbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTE3OTkyODc1Zjk5YThhZDQ4NDkz
NTliZjU0NTYwYzgyNzFhNzllOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYkludGVudFNlcnZpY2VJbmZvLmgKQEAgLTAsMCArMSw3MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgV2ViSW50ZW50U2VydmljZUluZm9faAorI2RlZmluZSBXZWJJbnRlbnRTZXJ2aWNlSW5mb19o
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJTdHJpbmc7CitjbGFzcyBXZWJVUkw7
CisKKy8vIEhvbGRzIGRhdGEgdXNlZCB0byBpbml0aWFsaXplIGEgV2ViIEludGVudHMgc2Vydmlj
ZSAoaGFuZGxlcikuCisvLyBTZWUgc3BlYyBhdCBodHRwOi8vd3d3LmNocm9taXVtLm9yZy9kZXZl
bG9wZXJzL2Rlc2lnbi1kb2N1bWVudHMvd2ViaW50ZW50c2FwaQorY2xhc3MgV2ViSW50ZW50U2Vy
dmljZUluZm8geworcHVibGljOgorICAgIH5XZWJJbnRlbnRTZXJ2aWNlSW5mbygpIHsgfQorCisg
ICAgLy8gVGhlIGxvY2F0aW9uIG9mIHRoZSBoYW5kbGVyIHBhZ2UgcmVnaXN0ZXJlZCBieSB0aGUg
c2VydmljZS4KKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyB1cmwoKSBjb25zdDsKKyAgICBX
RUJLSVRfRVhQT1JUIHZvaWQgc2V0VVJMKGNvbnN0IFdlYlVSTCYpOworCisgICAgLy8gVGhlIHNo
b3J0IG5hbWUgdGhlIHNlcnZpY2Ugd2lsbCBiZSBrbm93biBieSB3aGVuIHRoZSB1c2VyCisgICAg
Ly8gaW5pdGlhdGVzIGFuIGludGVudC4KKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyB0aXRs
ZSgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRUaXRsZShjb25zdCBXZWJTdHJp
bmcmKTsKKworICAgIC8vIFRoZSBraW5kIG9mIGludGVudCB0aGUgc2VydmljZSB3aWxsIGhhbmRs
ZS4KKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyBhY3Rpb24oKSBjb25zdDsKKyAgICBXRUJL
SVRfRVhQT1JUIHZvaWQgc2V0QWN0aW9uKGNvbnN0IFdlYlN0cmluZyYpOworCisgICAgLy8gVGhl
IHR5cGUgb2YgcGF5bG9hZCBkYXRhIHdoaWNoIHRoZSBzZXJ2aWNlIHdpbGwgaGFuZGxlLgorICAg
IFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIHR5cGUoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JU
IHZvaWQgc2V0VHlwZShjb25zdCBXZWJTdHJpbmcmKTsKKworICAgIC8vIEEgaGludCB0byB0aGUg
Y2xpZW50IGFib3V0IHdoZXRoZXIgdGhlIHNlcnZpY2UgY2FuIGJlIHJ1biB3aXRoaW4KKyAgICAv
LyBhbiAiaW5saW5lIiBjb250ZXh0IHdpdGhpbiB0aGUgY2FsbGluZyBwYWdlLCBvciBpbiBhIG5l
dyB0YWIKKyAgICAvLyBjb250ZXh0ICh0aGUgZGVmYXVsdCkuCisgICAgV0VCS0lUX0VYUE9SVCBX
ZWJTdHJpbmcgZGlzcG9zaXRpb24oKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0
RGlzcG9zaXRpb24oY29uc3QgV2ViU3RyaW5nJik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIFdlYkludGVudFNlcnZpY2VJbmZvX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCmluZGV4IDQ5OTM0MmU1YTdkZmI5OTIxMTUwMDI4
MmZhZmI5NTQwMmI3NDQ3MTcuLjU4NmQyNDNlOWJjNTk5OWJjMWZkZDdkZTRjZmU2NmZjNTg4ZjQ2
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcApAQCAt
MTgyNiw2ICsxODI2LDE0IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpyZXNldE1hdGNoQ291bnQoKQog
ICAgIG1fZnJhbWVzU2NvcGluZ0NvdW50ID0gMDsKIH0KIAordm9pZCBXZWJGcmFtZUltcGw6Omhh
bmRsZUludGVudFJlc3VsdChjb25zdCBXZWJTdHJpbmcmIHJlcGx5LCBpbnQgaW50ZW50SWQpCit7
Cit9CisKK3ZvaWQgV2ViRnJhbWVJbXBsOjpoYW5kbGVJbnRlbnRGYWlsdXJlKGNvbnN0IFdlYlN0
cmluZyYgcmVwbHksIGludCBpbnRlbnRJZCkKK3sKK30KKwogV2ViU3RyaW5nIFdlYkZyYW1lSW1w
bDo6Y29udGVudEFzVGV4dChzaXplX3QgbWF4Q2hhcnMpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2Zy
YW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBs
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaAppbmRleCAzN2Vk
ZjQ5ZTc5MGNhNzAzMjY5YWE2ZmJkZGEzZTBhMjFhYzhlMTc2Li4zMWIxNmY1NDdkMGFlMTJhMmYw
ODlkZTkzZDRmMTliOWFiMGY4YjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJGcmFtZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJG
cmFtZUltcGwuaApAQCAtMTkyLDYgKzE5Miw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
aW5jcmVhc2VNYXRjaENvdW50KGludCBjb3VudCwgaW50IGlkZW50aWZpZXIpOwogICAgIHZpcnR1
YWwgdm9pZCByZXNldE1hdGNoQ291bnQoKTsKIAorICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVJbnRl
bnRSZXN1bHQoY29uc3QgV2ViU3RyaW5nJiwgaW50KTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxl
SW50ZW50RmFpbHVyZShjb25zdCBXZWJTdHJpbmcmLCBpbnQpOworCiAgICAgdmlydHVhbCBXZWJT
dHJpbmcgY29udGVudEFzVGV4dChzaXplX3QgbWF4Q2hhcnMpIGNvbnN0OwogICAgIHZpcnR1YWwg
V2ViU3RyaW5nIGNvbnRlbnRBc01hcmt1cCgpIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViU3RyaW5n
IHJlbmRlclRyZWVBc1RleHQoUmVuZGVyQXNUZXh0Q29udHJvbHMgdG9TaG93ID0gUmVuZGVyQXNU
ZXh0Tm9ybWFsKSBjb25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116141</attachid>
            <date>2011-11-21 14:52:05 -0800</date>
            <delta_ts>2011-11-21 15:11:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69870-20111121145204.patch</filename>
            <type>text/plain</type>
            <size>11032</size>
            <attacher name="Greg Billock">gbillock</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwOTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDU4NjFiNGQ2OTEwNWZhZTk4MzJiNmI1NTg0NTUzNGJmNDBlNDAyNGEuLjg3YzI2MDNmOGM1MDI5
MjNkZTRhOWNjZDljMjE1YWY1N2VkMmQxNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTEtMTEtMTUgIEdyZWcgQmlsbG9jayAgPGdiaWxsb2NrQGdvb2ds
ZS5jb20+CisKKyAgICAgICAgRW1wdHkgQVBJIGZvciB3ZWIgaW50ZW50cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk4NzAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAg
ICogcHVibGljL1dlYkludGVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBwdWJsaWMvV2ViSW50ZW50
U2VydmljZUluZm8uaDogQWRkZWQuCisgICAgICAgICogcHVibGljL1dlYkZyYW1lLmg6CisgICAg
ICAgICogcHVibGljL1dlYkZyYW1lQ2xpZW50Lmg6CisKIDIwMTEtMTEtMjEgIEpvY2hlbiBFaXNp
bmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW1wbGVtZW50IE1ldGEgcmVm
ZXJyZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCAxMjEwODk0NjZmNTY5ODRkNWQ0
N2Q5ZmMxNjc5YzE3MDYzMzM2NTI2Li5hYzNlMmNmMGQ1MzAxNjRhMmJmOGVjNDYwMGY3OGVjOTM4
ZGIzYzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0yMjYsNiArMjI2LDggQEAK
ICAgICAgICAgICAgICAgICAncHVibGljL1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmgnLAog
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSW5wdXRFbGVtZW50LmgnLAogICAgICAgICAgICAg
ICAgICdwdWJsaWMvV2ViSW5wdXRFdmVudC5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL1dl
YkludGVudC5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL1dlYkludGVudFNlcnZpY2VJbmZv
LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViS2l0LmgnLAogICAgICAgICAgICAgICAg
ICdwdWJsaWMvV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgnLAogICAgICAgICAgICAgICAgICdwdWJs
aWMvV2ViTGFiZWxFbGVtZW50LmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViRnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZy
YW1lLmgKaW5kZXggNzliNzQ2NzlmMTg0YjMyMzJmNjFkNzFiY2IyOWMxYmIyNGM5ZDMxYS4uOTAy
NjNlMzZlOGFjNDI0MDYxY2NmZTk0NmRlNmFhYWRiYWNmNGMwMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCkBAIC01NDQsNiArNTQ0LDIwIEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgcmVzZXRNYXRjaENvdW50KCkgPSAwOwogCiAKKyAgICAvLyBXZWIgSW50
ZW50cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKworICAgIC8vIEZvcndhcmRzIGEgd2ViIGludGVudHMgcmVwbHkgZnJvbSB0aGUgaW52
b2tlZCBhY3Rpdml0eSBiYWNrIHRvIHRoZQorICAgIC8vIGFwcHJvcHJpYXRlIHJlZ2lzdGVyZWQg
SmF2YXNjcmlwdCBjYWxsYmFjay4gVGhlIHxpbnRlbnRJZHwgaXMgdGhlCisgICAgLy8gcGFyYW1l
dGVyIHJlY2VpdmVkIGZyb20gdGhlIGRpc3BhdGNoSW50ZW50IG1ldGhvZC4KKyAgICB2aXJ0dWFs
IHZvaWQgaGFuZGxlSW50ZW50UmVzdWx0KGludCBpbnRlbnRJZGVudGlmaWVyLCBjb25zdCBXZWJT
dHJpbmcmKSA9IDA7CisKKyAgICAvLyBGb3J3YXJkcyBhIHdlYiBpbnRlbnRzIGZhaWx1cmUgbm90
aWZpY2F0aW9uIGZyb20gdGhlIGludm9rZWQgYWN0aXZpdHkKKyAgICAvLyBvciBpbnRlcnZlbmlu
ZyBicm93c2VyIGxvZ2ljIGJhY2sgdG8gdGhlIGFwcHJvcHJpYXRlIHJlZ2lzdGVyZWQKKyAgICAv
LyBKYXZhc2NyaXB0IGNhbGxiYWNrLiBUaGUgfGludGVudElkfCBpcyB0aGUgcGFyYW1ldGVyIHJl
Y2VpdmVkIGZyb20KKyAgICAvLyB0aGUgZGlzcGF0Y2hJbnRlbnQgbWV0aG9kLgorICAgIHZpcnR1
YWwgdm9pZCBoYW5kbGVJbnRlbnRGYWlsdXJlKGludCBpbnRlbnRJZGVudGlmaWVyLCBjb25zdCBX
ZWJTdHJpbmcmKSA9IDA7CisKKwogICAgIC8vIFV0aWxpdHkgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAgICAgLy8gUmV0dXJu
cyB0aGUgY29udGVudHMgb2YgdGhpcyBmcmFtZSBhcyBhIHN0cmluZy4gIElmIHRoZSB0ZXh0IGlz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZUNsaWVu
dC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWVDbGllbnQuaAppbmRl
eCBlMmRjM2IxNGJhMzQzYjA1ZDM1YzE5M2MwMjlhZWY1Mzk0ZmY2NzA0Li40MDZiYjYxZDBlNGU2
ZGJhZmYxODhjMTFhYWQxOTkwY2E1MmRjMWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJGcmFtZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYkZyYW1lQ2xpZW50LmgKQEAgLTUyLDYgKzUyLDggQEAgY2xhc3MgV2ViQ29v
a2llSmFyOwogY2xhc3MgV2ViRGF0YVNvdXJjZTsKIGNsYXNzIFdlYkZvcm1FbGVtZW50OwogY2xh
c3MgV2ViRnJhbWU7CitjbGFzcyBXZWJJbnRlbnRTZXJ2aWNlSW5mbzsKK2NsYXNzIFdlYkludGVu
dDsKIGNsYXNzIFdlYk1lZGlhUGxheWVyOwogY2xhc3MgV2ViTWVkaWFQbGF5ZXJDbGllbnQ7CiBj
bGFzcyBXZWJOb2RlOwpAQCAtMzgxLDYgKzM4MywxNSBAQCBwdWJsaWM6CiAgICAgICAgIHVuc2ln
bmVkIGxvbmcgbG9uZyBuZXdRdW90YUluQnl0ZXMsCiAgICAgICAgIFdlYlN0b3JhZ2VRdW90YUNh
bGxiYWNrcyopIHsgfQogCisgICAgLy8gV2ViIEludGVudHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvLyBSZWdpc3RlciBhIHNlcnZp
Y2UgdG8gaGFuZGxlIFdlYiBJbnRlbnRzLgorICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckludGVu
dFNlcnZpY2UoV2ViRnJhbWUqLCBjb25zdCBXZWJJbnRlbnRTZXJ2aWNlSW5mbyYpIHsgfQorCisg
ICAgLy8gU3RhcnQgYSBXZWIgSW50ZW50cyBhY3Rpdml0eS4gUmVwbGllcyB0byB0aGlzIHJlcXVl
c3Qgc2hvdWxkIGJlIHNlbnQgdG8KKyAgICAvLyB0aGUgV2ViRnJhbWUgc3RhcnRpbmcgdGhlIGFj
dGl2aXR5LgorICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEludGVudChXZWJGcmFtZSosIGNvbnN0
IFdlYkludGVudCYpIHsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgfldlYkZyYW1lQ2xpZW50KCkgeyB9
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSW50ZW50
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJbnRlbnQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mMGVjYWMyM2JkM2IwYjUzZWEzNDJjOWM5MmM5YmE1MWE5ODI4NTJiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSW50ZW50LmgKQEAgLTAsMCAr
MSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgV2ViSW50ZW50X2gKKyNkZWZpbmUgV2ViSW50ZW50X2gKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlN0cmluZzsKKworLy8gSG9sZHMgZGF0YSBwYXNzZWQg
dGhyb3VnaCBhIFdlYiBJbnRlbnRzIGludm9jYXRpb24gY2FsbCBmcm9tIHRoZSBKYXZhc2NyaXB0
CisvLyBJbnRlbnQgb2JqZWN0LgorLy8gU2VlIHNwZWMgYXQgaHR0cDovL3d3dy5jaHJvbWl1bS5v
cmcvZGV2ZWxvcGVycy9kZXNpZ24tZG9jdW1lbnRzL3dlYmludGVudHNhcGkKK2NsYXNzIFdlYklu
dGVudCB7CitwdWJsaWM6CisgICAgfldlYkludGVudCgpIHsgfQorCisgICAgV0VCS0lUX0VYUE9S
VCBXZWJTdHJpbmcgYWN0aW9uKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldEFj
dGlvbihjb25zdCBXZWJTdHJpbmcmKTsKKworICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIHR5
cGUoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0VHlwZShjb25zdCBXZWJTdHJp
bmcmKTsKKworICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIGRhdGEoKSBjb25zdDsKKyAgICBX
RUJLSVRfRVhQT1JUIHZvaWQgc2V0RGF0YShjb25zdCBXZWJTdHJpbmcmKTsKKworICAgIFdFQktJ
VF9FWFBPUlQgaW50IGlkZW50aWZpZXIoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQg
c2V0SWRlbnRpZmllcihpbnQpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBXZWJJbnRlbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViSW50ZW50U2VydmljZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYkludGVudFNlcnZpY2VJbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzhjMTk2OWI4MTdmMDJkYTFkZjRk
MjU0M2E3NDliMGQyNDQxMzE0OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYkludGVudFNlcnZpY2VJbmZvLmgKQEAgLTAsMCArMSw3MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgV2ViSW50ZW50U2VydmljZUluZm9faAorI2RlZmluZSBXZWJJbnRlbnRTZXJ2aWNlSW5mb19o
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJTdHJpbmc7CitjbGFzcyBXZWJVUkw7
CisKKy8vIEhvbGRzIGRhdGEgdXNlZCB0byBpbml0aWFsaXplIGEgV2ViIEludGVudHMgc2Vydmlj
ZSAoaGFuZGxlcikuCisvLyBTZWUgc3BlYyBhdCBodHRwOi8vd3d3LmNocm9taXVtLm9yZy9kZXZl
bG9wZXJzL2Rlc2lnbi1kb2N1bWVudHMvd2ViaW50ZW50c2FwaQorY2xhc3MgV2ViSW50ZW50U2Vy
dmljZUluZm8geworcHVibGljOgorICAgIH5XZWJJbnRlbnRTZXJ2aWNlSW5mbygpIHsgfQorCisg
ICAgLy8gVGhlIGxvY2F0aW9uIG9mIHRoZSBoYW5kbGVyIHBhZ2UgcmVnaXN0ZXJlZCBieSB0aGUg
c2VydmljZS4KKyAgICBXRUJLSVRfRVhQT1JUIFdlYlVSTCB1cmwoKSBjb25zdDsKKyAgICBXRUJL
SVRfRVhQT1JUIHZvaWQgc2V0VVJMKGNvbnN0IFdlYlVSTCYpOworCisgICAgLy8gVGhlIHNob3J0
IG5hbWUgdGhlIHNlcnZpY2Ugd2lsbCBiZSBrbm93biBieSB3aGVuIHRoZSB1c2VyCisgICAgLy8g
aW5pdGlhdGVzIGFuIGludGVudC4KKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyB0aXRsZSgp
IGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRUaXRsZShjb25zdCBXZWJTdHJpbmcm
KTsKKworICAgIC8vIFRoZSBraW5kIG9mIGludGVudCB0aGUgc2VydmljZSB3aWxsIGhhbmRsZS4K
KyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyBhY3Rpb24oKSBjb25zdDsKKyAgICBXRUJLSVRf
RVhQT1JUIHZvaWQgc2V0QWN0aW9uKGNvbnN0IFdlYlN0cmluZyYpOworCisgICAgLy8gVGhlIHR5
cGUgb2YgcGF5bG9hZCBkYXRhIHdoaWNoIHRoZSBzZXJ2aWNlIHdpbGwgaGFuZGxlLgorICAgIFdF
QktJVF9FWFBPUlQgV2ViU3RyaW5nIHR5cGUoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZv
aWQgc2V0VHlwZShjb25zdCBXZWJTdHJpbmcmKTsKKworICAgIC8vIEEgaGludCB0byB0aGUgY2xp
ZW50IGFib3V0IHdoZXRoZXIgdGhlIHNlcnZpY2UgY2FuIGJlIHJ1biB3aXRoaW4KKyAgICAvLyBh
biAiaW5saW5lIiBjb250ZXh0IHdpdGhpbiB0aGUgY2FsbGluZyBwYWdlLCBvciBpbiBhIG5ldyB0
YWIKKyAgICAvLyBjb250ZXh0ICh0aGUgZGVmYXVsdCkuCisgICAgV0VCS0lUX0VYUE9SVCBXZWJT
dHJpbmcgZGlzcG9zaXRpb24oKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0RGlz
cG9zaXRpb24oY29uc3QgV2ViU3RyaW5nJik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIFdlYkludGVudFNlcnZpY2VJbmZvX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCmluZGV4IDQ5OTM0MmU1YTdkZmI5OTIxMTUwMDI4MmZh
ZmI5NTQwMmI3NDQ3MTcuLjc1MWQyY2I2MjQ1MzdhZmJiMWRkNWI3NzQ3YTUwOTI5ZDgxNjQzOWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcApAQCAtMTgy
Niw2ICsxODI2LDE0IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpyZXNldE1hdGNoQ291bnQoKQogICAg
IG1fZnJhbWVzU2NvcGluZ0NvdW50ID0gMDsKIH0KIAordm9pZCBXZWJGcmFtZUltcGw6OmhhbmRs
ZUludGVudFJlc3VsdChpbnQgaW50ZW50SWRlbnRpZmllciwgY29uc3QgV2ViU3RyaW5nJiByZXBs
eSkKK3sKK30KKwordm9pZCBXZWJGcmFtZUltcGw6OmhhbmRsZUludGVudEZhaWx1cmUoaW50IGlu
dGVudElkZW50aWZpZXIsIGNvbnN0IFdlYlN0cmluZyYgcmVwbHkpCit7Cit9CisKIFdlYlN0cmlu
ZyBXZWJGcmFtZUltcGw6OmNvbnRlbnRBc1RleHQoc2l6ZV90IG1heENoYXJzKSBjb25zdAogewog
ICAgIGlmICghbV9mcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkZyYW1lSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBs
LmgKaW5kZXggMzdlZGY0OWU3OTBjYTcwMzI2OWFhNmZiZGRhM2UwYTIxYWM4ZTE3Ni4uOWU3Yjk0
NzkwZDIxNzM5MWIxMTM1NTY2OWU3M2IzYTIyN2M3N2YxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKQEAgLTE5Miw2ICsxOTIsOSBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGluY3JlYXNlTWF0Y2hDb3VudChpbnQgY291bnQsIGludCBpZGVudGlmaWVy
KTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzZXRNYXRjaENvdW50KCk7CiAKKyAgICB2aXJ0dWFsIHZv
aWQgaGFuZGxlSW50ZW50UmVzdWx0KGludCwgY29uc3QgV2ViU3RyaW5nJik7CisgICAgdmlydHVh
bCB2b2lkIGhhbmRsZUludGVudEZhaWx1cmUoaW50LCBjb25zdCBXZWJTdHJpbmcmKTsKKwogICAg
IHZpcnR1YWwgV2ViU3RyaW5nIGNvbnRlbnRBc1RleHQoc2l6ZV90IG1heENoYXJzKSBjb25zdDsK
ICAgICB2aXJ0dWFsIFdlYlN0cmluZyBjb250ZW50QXNNYXJrdXAoKSBjb25zdDsKICAgICB2aXJ0
dWFsIFdlYlN0cmluZyByZW5kZXJUcmVlQXNUZXh0KFJlbmRlckFzVGV4dENvbnRyb2xzIHRvU2hv
dyA9IFJlbmRlckFzVGV4dE5vcm1hbCkgY29uc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116146</attachid>
            <date>2011-11-21 15:10:48 -0800</date>
            <delta_ts>2011-11-22 11:45:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69870-20111121151047.patch</filename>
            <type>text/plain</type>
            <size>11068</size>
            <attacher name="Greg Billock">gbillock</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwOTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDU4NjFiNGQ2OTEwNWZhZTk4MzJiNmI1NTg0NTUzNGJmNDBlNDAyNGEuLjg3YzI2MDNmOGM1MDI5
MjNkZTRhOWNjZDljMjE1YWY1N2VkMmQxNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTEtMTEtMTUgIEdyZWcgQmlsbG9jayAgPGdiaWxsb2NrQGdvb2ds
ZS5jb20+CisKKyAgICAgICAgRW1wdHkgQVBJIGZvciB3ZWIgaW50ZW50cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk4NzAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAg
ICogcHVibGljL1dlYkludGVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBwdWJsaWMvV2ViSW50ZW50
U2VydmljZUluZm8uaDogQWRkZWQuCisgICAgICAgICogcHVibGljL1dlYkZyYW1lLmg6CisgICAg
ICAgICogcHVibGljL1dlYkZyYW1lQ2xpZW50Lmg6CisKIDIwMTEtMTEtMjEgIEpvY2hlbiBFaXNp
bmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW1wbGVtZW50IE1ldGEgcmVm
ZXJyZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCAxMjEwODk0NjZmNTY5ODRkNWQ0
N2Q5ZmMxNjc5YzE3MDYzMzM2NTI2Li5hYzNlMmNmMGQ1MzAxNjRhMmJmOGVjNDYwMGY3OGVjOTM4
ZGIzYzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0yMjYsNiArMjI2LDggQEAK
ICAgICAgICAgICAgICAgICAncHVibGljL1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmgnLAog
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSW5wdXRFbGVtZW50LmgnLAogICAgICAgICAgICAg
ICAgICdwdWJsaWMvV2ViSW5wdXRFdmVudC5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL1dl
YkludGVudC5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL1dlYkludGVudFNlcnZpY2VJbmZv
LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViS2l0LmgnLAogICAgICAgICAgICAgICAg
ICdwdWJsaWMvV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgnLAogICAgICAgICAgICAgICAgICdwdWJs
aWMvV2ViTGFiZWxFbGVtZW50LmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViRnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZy
YW1lLmgKaW5kZXggNzliNzQ2NzlmMTg0YjMyMzJmNjFkNzFiY2IyOWMxYmIyNGM5ZDMxYS4uMGY3
ZDQ2N2NkNjdiZmI0ZmJhOTEyZThlNmU3N2MwNDFiOGI5YTMxZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCkBAIC01NDQsNiArNTQ0LDIwIEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgcmVzZXRNYXRjaENvdW50KCkgPSAwOwogCiAKKyAgICAvLyBXZWIgSW50
ZW50cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKworICAgIC8vIEZvcndhcmRzIGEgd2ViIGludGVudHMgcmVwbHkgZnJvbSB0aGUgaW52
b2tlZCBhY3Rpdml0eSBiYWNrIHRvIHRoZQorICAgIC8vIGFwcHJvcHJpYXRlIHJlZ2lzdGVyZWQg
SmF2YXNjcmlwdCBjYWxsYmFjay4gVGhlIHxpbnRlbnRJZGVudGlmaWVyfCBpcworICAgIC8vIHRo
ZSBXZWJJbnRlbnQgcGFyYW1ldGVyIHJlY2VpdmVkIGZyb20gdGhlIGRpc3BhdGNoSW50ZW50IG1l
dGhvZC4KKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlSW50ZW50UmVzdWx0KGludCBpbnRlbnRJZGVu
dGlmaWVyLCBjb25zdCBXZWJTdHJpbmcmKSA9IDA7CisKKyAgICAvLyBGb3J3YXJkcyBhIHdlYiBp
bnRlbnRzIGZhaWx1cmUgbm90aWZpY2F0aW9uIGZyb20gdGhlIGludm9rZWQgYWN0aXZpdHkKKyAg
ICAvLyBvciBpbnRlcnZlbmluZyBicm93c2VyIGxvZ2ljIGJhY2sgdG8gdGhlIGFwcHJvcHJpYXRl
IHJlZ2lzdGVyZWQKKyAgICAvLyBKYXZhc2NyaXB0IGNhbGxiYWNrLiBUaGUgfGludGVudElkZW50
aWZpZXJ8IGlzIHRoZSBXZWJJbnRlbnQgcGFyYW1ldGVyCisgICAgLy8gcmVjZWl2ZWQgZnJvbSB0
aGUgZGlzcGF0Y2hJbnRlbnQgbWV0aG9kLgorICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVJbnRlbnRG
YWlsdXJlKGludCBpbnRlbnRJZGVudGlmaWVyLCBjb25zdCBXZWJTdHJpbmcmKSA9IDA7CisKKwog
ICAgIC8vIFV0aWxpdHkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogCiAgICAgLy8gUmV0dXJucyB0aGUgY29udGVudHMgb2YgdGhp
cyBmcmFtZSBhcyBhIHN0cmluZy4gIElmIHRoZSB0ZXh0IGlzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViRnJhbWVDbGllbnQuaAppbmRleCBlMmRjM2IxNGJhMzQzYjA1ZDM1
YzE5M2MwMjlhZWY1Mzk0ZmY2NzA0Li40MDZiYjYxZDBlNGU2ZGJhZmYxODhjMTFhYWQxOTkwY2E1
MmRjMWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFt
ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lQ2xp
ZW50LmgKQEAgLTUyLDYgKzUyLDggQEAgY2xhc3MgV2ViQ29va2llSmFyOwogY2xhc3MgV2ViRGF0
YVNvdXJjZTsKIGNsYXNzIFdlYkZvcm1FbGVtZW50OwogY2xhc3MgV2ViRnJhbWU7CitjbGFzcyBX
ZWJJbnRlbnRTZXJ2aWNlSW5mbzsKK2NsYXNzIFdlYkludGVudDsKIGNsYXNzIFdlYk1lZGlhUGxh
eWVyOwogY2xhc3MgV2ViTWVkaWFQbGF5ZXJDbGllbnQ7CiBjbGFzcyBXZWJOb2RlOwpAQCAtMzgx
LDYgKzM4MywxNSBAQCBwdWJsaWM6CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBuZXdRdW90
YUluQnl0ZXMsCiAgICAgICAgIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrcyopIHsgfQogCisgICAg
Ly8gV2ViIEludGVudHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisKKyAgICAvLyBSZWdpc3RlciBhIHNlcnZpY2UgdG8gaGFuZGxlIFdlYiBJbnRl
bnRzLgorICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckludGVudFNlcnZpY2UoV2ViRnJhbWUqLCBj
b25zdCBXZWJJbnRlbnRTZXJ2aWNlSW5mbyYpIHsgfQorCisgICAgLy8gU3RhcnQgYSBXZWIgSW50
ZW50cyBhY3Rpdml0eS4gUmVwbGllcyB0byB0aGlzIHJlcXVlc3Qgc2hvdWxkIGJlIHNlbnQgdG8K
KyAgICAvLyB0aGUgV2ViRnJhbWUgc3RhcnRpbmcgdGhlIGFjdGl2aXR5LgorICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaEludGVudChXZWJGcmFtZSosIGNvbnN0IFdlYkludGVudCYpIHsgfQorCiBw
cm90ZWN0ZWQ6CiAgICAgfldlYkZyYW1lQ2xpZW50KCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSW50ZW50LmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJJbnRlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMGVjYWMyM2JkM2IwYjUzZWEz
NDJjOWM5MmM5YmE1MWE5ODI4NTJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViSW50ZW50LmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRp
b24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisg
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViSW50
ZW50X2gKKyNkZWZpbmUgV2ViSW50ZW50X2gKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFdlYlN0cmluZzsKKworLy8gSG9sZHMgZGF0YSBwYXNzZWQgdGhyb3VnaCBhIFdlYiBJbnRlbnRz
IGludm9jYXRpb24gY2FsbCBmcm9tIHRoZSBKYXZhc2NyaXB0CisvLyBJbnRlbnQgb2JqZWN0Lgor
Ly8gU2VlIHNwZWMgYXQgaHR0cDovL3d3dy5jaHJvbWl1bS5vcmcvZGV2ZWxvcGVycy9kZXNpZ24t
ZG9jdW1lbnRzL3dlYmludGVudHNhcGkKK2NsYXNzIFdlYkludGVudCB7CitwdWJsaWM6CisgICAg
fldlYkludGVudCgpIHsgfQorCisgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgYWN0aW9uKCkg
Y29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldEFjdGlvbihjb25zdCBXZWJTdHJpbmcm
KTsKKworICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIHR5cGUoKSBjb25zdDsKKyAgICBXRUJL
SVRfRVhQT1JUIHZvaWQgc2V0VHlwZShjb25zdCBXZWJTdHJpbmcmKTsKKworICAgIFdFQktJVF9F
WFBPUlQgV2ViU3RyaW5nIGRhdGEoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0
RGF0YShjb25zdCBXZWJTdHJpbmcmKTsKKworICAgIFdFQktJVF9FWFBPUlQgaW50IGlkZW50aWZp
ZXIoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0SWRlbnRpZmllcihpbnQpOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJJbnRlbnRfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSW50ZW50U2VydmljZUlu
Zm8uaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkludGVudFNlcnZpY2VJbmZv
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzhjMTk2OWI4MTdmMDJkYTFkZjRkMjU0M2E3NDliMGQyNDQxMzE0OQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkludGVu
dFNlcnZpY2VJbmZvLmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViSW50ZW50U2VydmljZUlu
Zm9faAorI2RlZmluZSBXZWJJbnRlbnRTZXJ2aWNlSW5mb19oCisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitjbGFzcyBXZWJTdHJpbmc7CitjbGFzcyBXZWJVUkw7CisKKy8vIEhvbGRzIGRhdGEgdXNl
ZCB0byBpbml0aWFsaXplIGEgV2ViIEludGVudHMgc2VydmljZSAoaGFuZGxlcikuCisvLyBTZWUg
c3BlYyBhdCBodHRwOi8vd3d3LmNocm9taXVtLm9yZy9kZXZlbG9wZXJzL2Rlc2lnbi1kb2N1bWVu
dHMvd2ViaW50ZW50c2FwaQorY2xhc3MgV2ViSW50ZW50U2VydmljZUluZm8geworcHVibGljOgor
ICAgIH5XZWJJbnRlbnRTZXJ2aWNlSW5mbygpIHsgfQorCisgICAgLy8gVGhlIGxvY2F0aW9uIG9m
IHRoZSBoYW5kbGVyIHBhZ2UgcmVnaXN0ZXJlZCBieSB0aGUgc2VydmljZS4KKyAgICBXRUJLSVRf
RVhQT1JUIFdlYlVSTCB1cmwoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0VVJM
KGNvbnN0IFdlYlVSTCYpOworCisgICAgLy8gVGhlIHNob3J0IG5hbWUgdGhlIHNlcnZpY2Ugd2ls
bCBiZSBrbm93biBieSB3aGVuIHRoZSB1c2VyCisgICAgLy8gaW5pdGlhdGVzIGFuIGludGVudC4K
KyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyB0aXRsZSgpIGNvbnN0OworICAgIFdFQktJVF9F
WFBPUlQgdm9pZCBzZXRUaXRsZShjb25zdCBXZWJTdHJpbmcmKTsKKworICAgIC8vIFRoZSBraW5k
IG9mIGludGVudCB0aGUgc2VydmljZSB3aWxsIGhhbmRsZS4KKyAgICBXRUJLSVRfRVhQT1JUIFdl
YlN0cmluZyBhY3Rpb24oKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0QWN0aW9u
KGNvbnN0IFdlYlN0cmluZyYpOworCisgICAgLy8gVGhlIHR5cGUgb2YgcGF5bG9hZCBkYXRhIHdo
aWNoIHRoZSBzZXJ2aWNlIHdpbGwgaGFuZGxlLgorICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5n
IHR5cGUoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0VHlwZShjb25zdCBXZWJT
dHJpbmcmKTsKKworICAgIC8vIEEgaGludCB0byB0aGUgY2xpZW50IGFib3V0IHdoZXRoZXIgdGhl
IHNlcnZpY2UgY2FuIGJlIHJ1biB3aXRoaW4KKyAgICAvLyBhbiAiaW5saW5lIiBjb250ZXh0IHdp
dGhpbiB0aGUgY2FsbGluZyBwYWdlLCBvciBpbiBhIG5ldyB0YWIKKyAgICAvLyBjb250ZXh0ICh0
aGUgZGVmYXVsdCkuCisgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgZGlzcG9zaXRpb24oKSBj
b25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0RGlzcG9zaXRpb24oY29uc3QgV2ViU3Ry
aW5nJik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYkludGVu
dFNlcnZpY2VJbmZvX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkZyYW1lSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwu
Y3BwCmluZGV4IDQ5OTM0MmU1YTdkZmI5OTIxMTUwMDI4MmZhZmI5NTQwMmI3NDQ3MTcuLjc1MWQy
Y2I2MjQ1MzdhZmJiMWRkNWI3NzQ3YTUwOTI5ZDgxNjQzOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcApAQCAtMTgyNiw2ICsxODI2LDE0IEBAIHZvaWQg
V2ViRnJhbWVJbXBsOjpyZXNldE1hdGNoQ291bnQoKQogICAgIG1fZnJhbWVzU2NvcGluZ0NvdW50
ID0gMDsKIH0KIAordm9pZCBXZWJGcmFtZUltcGw6OmhhbmRsZUludGVudFJlc3VsdChpbnQgaW50
ZW50SWRlbnRpZmllciwgY29uc3QgV2ViU3RyaW5nJiByZXBseSkKK3sKK30KKwordm9pZCBXZWJG
cmFtZUltcGw6OmhhbmRsZUludGVudEZhaWx1cmUoaW50IGludGVudElkZW50aWZpZXIsIGNvbnN0
IFdlYlN0cmluZyYgcmVwbHkpCit7Cit9CisKIFdlYlN0cmluZyBXZWJGcmFtZUltcGw6OmNvbnRl
bnRBc1RleHQoc2l6ZV90IG1heENoYXJzKSBjb25zdAogewogICAgIGlmICghbV9mcmFtZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKaW5kZXggMzdlZGY0OWU3OTBj
YTcwMzI2OWFhNmZiZGRhM2UwYTIxYWM4ZTE3Ni4uOWU3Yjk0NzkwZDIxNzM5MWIxMTM1NTY2OWU3
M2IzYTIyN2M3N2YxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
RnJhbWVJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBs
LmgKQEAgLTE5Miw2ICsxOTIsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGluY3JlYXNl
TWF0Y2hDb3VudChpbnQgY291bnQsIGludCBpZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIHZvaWQg
cmVzZXRNYXRjaENvdW50KCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlSW50ZW50UmVzdWx0
KGludCwgY29uc3QgV2ViU3RyaW5nJik7CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUludGVudEZh
aWx1cmUoaW50LCBjb25zdCBXZWJTdHJpbmcmKTsKKwogICAgIHZpcnR1YWwgV2ViU3RyaW5nIGNv
bnRlbnRBc1RleHQoc2l6ZV90IG1heENoYXJzKSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYlN0cmlu
ZyBjb250ZW50QXNNYXJrdXAoKSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYlN0cmluZyByZW5kZXJU
cmVlQXNUZXh0KFJlbmRlckFzVGV4dENvbnRyb2xzIHRvU2hvdyA9IFJlbmRlckFzVGV4dE5vcm1h
bCkgY29uc3Q7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>