<?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>100542</bug_id>
          
          <creation_ts>2012-10-26 10:58:10 -0700</creation_ts>
          <short_desc>[chromium] Transform mouse/gesture event coordinates to account for pinch-zoom in compositor.</short_desc>
          <delta_ts>2012-10-30 14:38:24 -0700</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="W. James MacLean">wjmaclean</reporter>
          <assigned_to name="W. James MacLean">wjmaclean</assigned_to>
          <cc>abarth</cc>
    
    <cc>aelias</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>danakj</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>rjkroege</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>trchen</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>752191</commentid>
    <comment_count>0</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-10-26 10:58:10 -0700</bug_when>
    <thetext>[chromium] Transform mouse/gesture event coordinates to account for pinch-zoom in compositor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752194</commentid>
    <comment_count>1</comment_count>
      <attachid>170962</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-10-26 11:02:01 -0700</bug_when>
    <thetext>Created attachment 170962
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752200</commentid>
    <comment_count>2</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-10-26 11:08:53 -0700</bug_when>
    <thetext>Patch for discussion. (Does not compile without changes to CC to expose the implTransform.)

This patch addresses the coordinate transform issue for mouse and gesture events when a non-identity zoom transform is in effect. I&apos;d like some feedback on the approach please:

1) Would it be better to push the computation of the transformed point back into cc (LaterTreeHost)? Then the Web* interface doesn&apos;t need to know about the implTransform at all (it could be called something like &quot;adjustEventLocationForZoom&quot;).

2) I was surprised I couldn&apos;t just invert the implTransform without having to modify it first. Since the modification only applies to the (hidden) zoom translation, there wasn&apos;t any obvious way around it.

Tests to come.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752231</commentid>
    <comment_count>3</comment_count>
      <attachid>170962</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-10-26 11:46:12 -0700</bug_when>
    <thetext>Comment on attachment 170962
Patch

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

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:667
&gt; +    m.setM41(m.m41() / m.m11()); // Translation components seem to have had scale applied to them,

Does this mean the implTransform is being computed wrong?

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:670
&gt; +    return m.inverse().mapPoint(location);

You want projectPoint() when you&apos;re using the inverse transform instead of mapPoint()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752232</commentid>
    <comment_count>4</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-10-26 11:46:45 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Patch for discussion. (Does not compile without changes to CC to expose the implTransform.)
&gt; 
&gt; This patch addresses the coordinate transform issue for mouse and gesture events when a non-identity zoom transform is in effect. I&apos;d like some feedback on the approach please:
&gt; 
&gt; 1) Would it be better to push the computation of the transformed point back into cc (LaterTreeHost)? Then the Web* interface doesn&apos;t need to know about the implTransform at all (it could be called something like &quot;adjustEventLocationForZoom&quot;).

Personally, I&apos;d like this more as we have things like MathUtil there, which no longer exist on this side of the webkit boundary.

&gt; 2) I was surprised I couldn&apos;t just invert the implTransform without having to modify it first. Since the modification only applies to the (hidden) zoom translation, there wasn&apos;t any obvious way around it.
&gt; 
&gt; Tests to come.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752245</commentid>
    <comment_count>5</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-10-26 11:56:02 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 170962 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=170962&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/src/WebViewImpl.cpp:667
&gt; &gt; +    m.setM41(m.m41() / m.m11()); // Translation components seem to have had scale applied to them,
&gt; 
&gt; Does this mean the implTransform is being computed wrong?

Maybe, or it may mean I&apos;m missing something about what implTransform is supposed to do.

&gt; &gt; Source/WebKit/chromium/src/WebViewImpl.cpp:670
&gt; &gt; +    return m.inverse().mapPoint(location);
&gt; 
&gt; You want projectPoint() when you&apos;re using the inverse transform instead of mapPoint()

I&apos;ll try that and see if it fixes the problem above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752303</commentid>
    <comment_count>6</comment_count>
    <who name="Tien-Ren Chen">trchen</who>
    <bug_when>2012-10-26 12:58:14 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #2)
&gt; &gt; Patch for discussion. (Does not compile without changes to CC to expose the implTransform.)
&gt; &gt; 
&gt; &gt; This patch addresses the coordinate transform issue for mouse and gesture events when a non-identity zoom transform is in effect. I&apos;d like some feedback on the approach please:
&gt; &gt; 
&gt; &gt; 1) Would it be better to push the computation of the transformed point back into cc (LaterTreeHost)? Then the Web* interface doesn&apos;t need to know about the implTransform at all (it could be called something like &quot;adjustEventLocationForZoom&quot;).
&gt; 
&gt; Personally, I&apos;d like this more as we have things like MathUtil there, which no longer exist on this side of the webkit boundary.

I&apos;d vote for the LayerTreeHost approach. Ideally the WebKit/WebCore should know nothing about the page scale. It feels weird to me that the embedder (either the compositor or RenderViewImpl) applies the scale when rendering, while input events are inverted-scaled in WebViewImpl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752314</commentid>
    <comment_count>7</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-10-26 13:10:43 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; I&apos;d vote for the LayerTreeHost approach. Ideally the WebKit/WebCore should know nothing about the page scale. It feels weird to me that the embedder (either the compositor or RenderViewImpl) applies the scale when rendering, while input events are inverted-scaled in WebViewImpl.

+1 to this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752330</commentid>
    <comment_count>8</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-10-26 13:30:54 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #4)
&gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; Patch for discussion. (Does not compile without changes to CC to expose the implTransform.)
&gt; &gt; &gt; 
&gt; &gt; &gt; This patch addresses the coordinate transform issue for mouse and gesture events when a non-identity zoom transform is in effect. I&apos;d like some feedback on the approach please:
&gt; &gt; &gt; 
&gt; &gt; &gt; 1) Would it be better to push the computation of the transformed point back into cc (LaterTreeHost)? Then the Web* interface doesn&apos;t need to know about the implTransform at all (it could be called something like &quot;adjustEventLocationForZoom&quot;).
&gt; &gt; 
&gt; &gt; Personally, I&apos;d like this more as we have things like MathUtil there, which no longer exist on this side of the webkit boundary.
&gt; 
&gt; I&apos;d vote for the LayerTreeHost approach. Ideally the WebKit/WebCore should know nothing about the page scale. It feels weird to me that the embedder (either the compositor or RenderViewImpl) applies the scale when rendering, while input events are inverted-scaled in WebViewImpl.

Agreed!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753553</commentid>
    <comment_count>9</comment_count>
      <attachid>171272</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-10-29 10:03:49 -0700</bug_when>
    <thetext>Created attachment 171272
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753559</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-29 10:07:08 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753566</commentid>
    <comment_count>11</comment_count>
      <attachid>171272</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-10-29 10:14:50 -0700</bug_when>
    <thetext>Comment on attachment 171272
Patch

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

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2006
&gt; +        mouseEvent = *static_cast&lt;const WebMouseEvent*&gt;(&amp;inputEvent);

why all the * and &amp; back and forth?

Why not just:
WebInputEvent inputEventTransformed = inputEvent;
mouseEvent = static_cast&lt;WebMouseEvent&gt;(inputEvent);
etc?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753568</commentid>
    <comment_count>12</comment_count>
      <attachid>171272</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-10-29 10:17:07 -0700</bug_when>
    <thetext>Comment on attachment 171272
Patch

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

&gt; Source/Platform/chromium/public/WebLayerTreeView.h:36
&gt; +#include &quot;WebTransformationMatrix.h&quot;

nit: unused header</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753571</commentid>
    <comment_count>13</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-10-29 10:18:26 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 171272 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=171272&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2006
&gt; &gt; +        mouseEvent = *static_cast&lt;const WebMouseEvent*&gt;(&amp;inputEvent);
&gt; 
&gt; why all the * and &amp; back and forth?
&gt; 
&gt; Why not just:
&gt; WebInputEvent inputEventTransformed = inputEvent;
&gt; mouseEvent = static_cast&lt;WebMouseEvent&gt;(inputEvent);
&gt; etc?

Won&apos;t this slice off the extra fields (x, y, globalX, etc.) in the derived classes WebMouseEvent, WebGestureEvent ?

Will remove the extra header (oops!).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753581</commentid>
    <comment_count>14</comment_count>
      <attachid>171272</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-10-29 10:23:15 -0700</bug_when>
    <thetext>Comment on attachment 171272
Patch

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

&gt;&gt;&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2006
&gt;&gt;&gt; +        mouseEvent = *static_cast&lt;const WebMouseEvent*&gt;(&amp;inputEvent);
&gt;&gt; 
&gt;&gt; why all the * and &amp; back and forth?
&gt;&gt; 
&gt;&gt; Why not just:
&gt;&gt; WebInputEvent inputEventTransformed = inputEvent;
&gt;&gt; mouseEvent = static_cast&lt;WebMouseEvent&gt;(inputEvent);
&gt;&gt; etc?
&gt; 
&gt; Won&apos;t this slice off the extra fields (x, y, globalX, etc.) in the derived classes WebMouseEvent, WebGestureEvent ?
&gt; 
&gt; Will remove the extra header (oops!).

Ah I see, okay! I guess this is just awkward since it&apos;s being given, and passing on, a reference instead of a pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753586</commentid>
    <comment_count>15</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-10-29 10:28:38 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 171272 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=171272&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2006
&gt; &gt;&gt;&gt; +        mouseEvent = *static_cast&lt;const WebMouseEvent*&gt;(&amp;inputEvent);
&gt; &gt;&gt; 
&gt; &gt;&gt; why all the * and &amp; back and forth?
&gt; &gt;&gt; 
&gt; &gt;&gt; Why not just:
&gt; &gt;&gt; WebInputEvent inputEventTransformed = inputEvent;
&gt; &gt;&gt; mouseEvent = static_cast&lt;WebMouseEvent&gt;(inputEvent);
&gt; &gt;&gt; etc?
&gt; &gt; 
&gt; &gt; Won&apos;t this slice off the extra fields (x, y, globalX, etc.) in the derived classes WebMouseEvent, WebGestureEvent ?
&gt; &gt; 
&gt; &gt; Will remove the extra header (oops!).
&gt; 
&gt; Ah I see, okay! I guess this is just awkward since it&apos;s being given, and passing on, a reference instead of a pointer.

Yeah, the const-references can be a bit hard if you actually need to transform a value ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753822</commentid>
    <comment_count>16</comment_count>
      <attachid>171329</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-10-29 15:54:36 -0700</bug_when>
    <thetext>Created attachment 171329
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753942</commentid>
    <comment_count>17</comment_count>
      <attachid>171329</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-29 19:36:04 -0700</bug_when>
    <thetext>Comment on attachment 171329
Patch

Attachment 171329 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14641301

New failing tests:
fast/frames/iframe-window-focus.html
fast/frames/frame-programmatic-noresize.html
fast/frames/frame-deep-nested-resize.html
fast/frames/frame-with-noresize-can-be-resized-after-setting-noResize-to-false.html
fast/frames/frame-set-rotation-hit.html
fast/frames/frame-dead-region.html
fast/frames/frame-inherit-noresize-from-frameset.html
fast/frames/hover-timer-crash.html
fast/frames/frame-with-noresize-can-be-resized-after-removal-of-noresize.html
fast/frames/frames-with-frameborder-zero-can-be-resized.html
fast/frames/frame-set-scaling-hit.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754321</commentid>
    <comment_count>18</comment_count>
      <attachid>171438</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-10-30 06:48:50 -0700</bug_when>
    <thetext>Created attachment 171438
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754322</commentid>
    <comment_count>19</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-10-30 06:50:32 -0700</bug_when>
    <thetext>This patch fixes null pointer dereference on m_layerTreeView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754645</commentid>
    <comment_count>20</comment_count>
      <attachid>171438</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-10-30 14:04:25 -0700</bug_when>
    <thetext>Comment on attachment 171438
Patch

R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754666</commentid>
    <comment_count>21</comment_count>
      <attachid>171438</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-30 14:38:19 -0700</bug_when>
    <thetext>Comment on attachment 171438
Patch

Clearing flags on attachment: 171438

Committed r132946: &lt;http://trac.webkit.org/changeset/132946&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754667</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-30 14:38:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170962</attachid>
            <date>2012-10-26 11:02:01 -0700</date>
            <delta_ts>2012-10-29 10:03:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100542-20121026140033.patch</filename>
            <type>text/plain</type>
            <size>5984</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBhMmRlNzQ3MTZlNWI4
MzIyYmZkODcxMWUwMzNmOGY4ZDFhZmMxYzdhLi4zZjkxYzYyODk3NmI1ZjExZGQ0NmM5NjEyMzU2
NWJmMjAxODFjODkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0xMC0yNiAg
Vy4gSmFtZXMgTWFjTGVhbiAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2No
cm9taXVtXSBUcmFuc2Zvcm0gbW91c2UvZ2VzdHVyZSBldmVudCBjb29yZGluYXRlcyB0byBhY2Nv
dW50IGZvciBwaW5jaC16b29tIGluIGNvbXBvc2l0b3IuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDA1NDIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQaW5jaC16b29tIGluIHRoZSBjb21wb3NpdG9yIGFw
cGxpZXMgYSB0cmFuc2Zvcm1hdGlvbiB0aGF0IFdlYkNvcmUgZG9lcyBub3Qga25vdyBhYm91dC4K
KyAgICAgICAgV2UgbmVlZCB0byBhZGp1c3QgbW91c2UgYW5kIGdlc3R1cmUgZXZlbnQgY29vcmRp
bmF0ZXMgdG8gYWNjb3VudCBmb3IgdGhpcyBpbiBvcmRlciB0aGF0CisgICAgICAgIGhpdCB0ZXN0
aW5nIHdvcmsgcHJvcGVybHkgZm9yIHRoZXNlIHR5cGVzIHdoaWxlIHpvb21lZC4KKworICAgICAg
ICAqIGNocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3Lmg6CisgICAgICAgIChXZWJMYXll
clRyZWVWaWV3KToKKwogMjAxMi0xMC0yNCAgSm9obiBTaGV1ICA8c2hldUBnb29nbGUuY29tPgog
CiAgICAgICAgIFtjaHJvbWl1bV0gQWRkIHRleHR1cmVXaWR0aCgpIGFuZCB0ZXh0dXJlSGVpZ2h0
KCkgdG8gV2ViVmlkZW9GcmFtZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA2ZDIwNTk4
ZGNkYWNiMDJkZWZiYjYwNWVlNjlmMmJmZmFjNGNmY2VlLi5jZWNkYzY1MjAyYjgwNTMxM2VjYzUz
M2RkMTRkMWU0YThlNDcwNmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIwIEBACisyMDEyLTEwLTI2ICBXLiBKYW1lcyBNYWNMZWFuICA8d2ptYWNsZWFuQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIFRyYW5zZm9ybSBtb3VzZS9nZXN0dXJlIGV2ZW50
IGNvb3JkaW5hdGVzIHRvIGFjY291bnQgZm9yIHBpbmNoLXpvb20gaW4gY29tcG9zaXRvci4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDU0MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBpbmNoLXpvb20g
aW4gdGhlIGNvbXBvc2l0b3IgYXBwbGllcyBhIHRyYW5zZm9ybWF0aW9uIHRoYXQgV2ViQ29yZSBk
b2VzIG5vdCBrbm93IGFib3V0LgorICAgICAgICBXZSBuZWVkIHRvIGFkanVzdCBtb3VzZSBhbmQg
Z2VzdHVyZSBldmVudCBjb29yZGluYXRlcyB0byBhY2NvdW50IGZvciB0aGlzIGluIG9yZGVyIHRo
YXQKKyAgICAgICAgaGl0IHRlc3Rpbmcgd29yayBwcm9wZXJseSBmb3IgdGhlc2UgdHlwZXMgd2hp
bGUgem9vbWVkLgorCisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnRyYW5zZm9ybUV2ZW50TG9jYXRpb24pOiBUcmFuc2Zvcm1zIGV2
ZW50IGNvb3JkaW5hdGVzIHRvIHJlbW92ZSB6b29tIHRyYW5zZm9ybS4KKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KTogQXBw
bHkgY29vcmRpbmF0ZSB0cmFuc2Zvcm0gdG8gbW91c2UvZ2VzdHVyZSBldmVudHMgYmVmb3JlIGhh
bmRsaW5nLgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorCiAyMDEyLTEwLTI1ICBEb21p
bmljIE1henpvbmkgIDxkbWF6em9uaUBnb29nbGUuY29tPgogCiAgICAgICAgIEFYOiBOb3RpZmlj
YXRpb24gc2hvdWxkIGJlIHNlbnQgd2hlbiBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkIGNoYW5nZXMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVl
Vmlldy5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3
LmgKaW5kZXggOWM5NWFkMmQzZTRkNDg4MGE3NzUyOWZhYzYxNjhiZjk1M2RhYzQ4Ny4uOTM2ZTkw
MTNlY2NmZGU3NmE1ZDVjZjc2NDVjODkxYmQ2YWU2YmFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1Bs
YXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3LmgKKysrIGIvU291cmNlL1Bs
YXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3LmgKQEAgLTMyLDYgKzMyLDcg
QEAKICNpbmNsdWRlICJXZWJOb25Db3B5YWJsZS5oIgogI2luY2x1ZGUgIldlYlByaXZhdGVPd25Q
dHIuaCIKICNpbmNsdWRlICJXZWJTaXplLmgiCisjaW5jbHVkZSAiV2ViVHJhbnNmb3JtYXRpb25N
YXRyaXguaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJHcmFwaGljc0NvbnRleHQz
RDsKQEAgLTk1LDYgKzk2LDggQEAgcHVibGljOgogICAgIC8vIG1vZGUpLgogICAgIHZpcnR1YWwg
V2ViU2l6ZSBkZXZpY2VWaWV3cG9ydFNpemUoKSBjb25zdCA9IDA7CiAKKyAgICB2aXJ0dWFsIFdl
YlRyYW5zZm9ybWF0aW9uTWF0cml4IGltcGxUcmFuc2Zvcm0oKSBjb25zdCA9IDA7CisKICAgICB2
aXJ0dWFsIHZvaWQgc2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQpID0gMDsKICAgICB2aXJ0dWFs
IGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggMTYyNThhZjM5M2UwMDEwM2MwZjE2YWQ3
MDc2MDVmZjY3MjA2NWVlOS4uNTYzYTViZTQyMjlhMjRlNGRmYjYzODgyZmYwNGFmYTY3YmI5YmM5
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtNjYw
LDYgKzY2MCwxNiBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzY3JvbGxCeShjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgZGVsdGEpCiAgICAgICAgIGhhbmRsZU1vdXNlV2hlZWwoKm1fcGFnZS0+bWFpbkZy
YW1lKCksIHN5bnRoZXRpY1doZWVsKTsKIH0KIAorV2ViQ29yZTo6SW50UG9pbnQgV2ViVmlld0lt
cGw6OnRyYW5zZm9ybUV2ZW50TG9jYXRpb24oY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGxvY2F0
aW9uKQoreworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG0gPSBtX2xheWVyVHJlZVZpZXctPmlt
cGxUcmFuc2Zvcm0oKS50b1dlYkNvcmVUcmFuc2Zvcm0oKTsKKyAgICBBU1NFUlQobS5tMTEoKSk7
CisgICAgbS5zZXRNNDEobS5tNDEoKSAvIG0ubTExKCkpOyAvLyBUcmFuc2xhdGlvbiBjb21wb25l
bnRzIHNlZW0gdG8gaGF2ZSBoYWQgc2NhbGUgYXBwbGllZCB0byB0aGVtLAorICAgIEFTU0VSVCht
Lm0yMigpKTsKKyAgICBtLnNldE00MihtLm00MigpIC8gbS5tMjIoKSk7IC8vIG5lZWQgdG8gdW5k
byBpdCBoZXJlLgorICAgIHJldHVybiBtLmludmVyc2UoKS5tYXBQb2ludChsb2NhdGlvbik7Cit9
CisKICNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCiBib29sIFdlYlZpZXdJbXBsOjpoYW5kbGVH
ZXN0dXJlRXZlbnQoY29uc3QgV2ViR2VzdHVyZUV2ZW50JiBldmVudCkKIHsKQEAgLTE5NzcsNyAr
MTk4NywyNiBAQCBib29sIFdlYlZpZXdJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYklu
cHV0RXZlbnQmIGlucHV0RXZlbnQpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAg
IGJvb2wgaGFuZGxlZCA9IFBhZ2VXaWRnZXREZWxlZ2F0ZTo6aGFuZGxlSW5wdXRFdmVudChtX3Bh
Z2UuZ2V0KCksICp0aGlzLCBpbnB1dEV2ZW50KTsKKyAgICBjb25zdCBXZWJJbnB1dEV2ZW50KiBp
bnB1dEV2ZW50VHJhbnNmb3JtZWQgPSAmaW5wdXRFdmVudDsKKyAgICBXZWJNb3VzZUV2ZW50IG1v
dXNlRXZlbnQ7CisgICAgV2ViR2VzdHVyZUV2ZW50IGdlc3R1cmVFdmVudDsKKyAgICBpZiAoV2Vi
SW5wdXRFdmVudDo6aXNNb3VzZUV2ZW50VHlwZShpbnB1dEV2ZW50LnR5cGUpKSB7CisgICAgICAg
IG1vdXNlRXZlbnQgPSAqc3RhdGljX2Nhc3Q8Y29uc3QgV2ViTW91c2VFdmVudCo+KCZpbnB1dEV2
ZW50KTsKKworICAgICAgICBJbnRQb2ludCB0cmFuc2Zvcm1lZExvY2F0aW9uID0gdHJhbnNmb3Jt
RXZlbnRMb2NhdGlvbihJbnRQb2ludChtb3VzZUV2ZW50LngsIG1vdXNlRXZlbnQueSkpOworICAg
ICAgICBtb3VzZUV2ZW50LnggPSB0cmFuc2Zvcm1lZExvY2F0aW9uLngoKTsKKyAgICAgICAgbW91
c2VFdmVudC55ID0gdHJhbnNmb3JtZWRMb2NhdGlvbi55KCk7CisgICAgICAgIGlucHV0RXZlbnRU
cmFuc2Zvcm1lZCA9IHN0YXRpY19jYXN0PGNvbnN0IFdlYklucHV0RXZlbnQqPigmbW91c2VFdmVu
dCk7CisgICAgfSBlbHNlIGlmIChXZWJJbnB1dEV2ZW50Ojppc0dlc3R1cmVFdmVudFR5cGUoaW5w
dXRFdmVudC50eXBlKSkgeworICAgICAgICBnZXN0dXJlRXZlbnQgPSAqc3RhdGljX2Nhc3Q8Y29u
c3QgV2ViR2VzdHVyZUV2ZW50Kj4oJmlucHV0RXZlbnQpOworCisgICAgICAgIEludFBvaW50IHRy
YW5zZm9ybWVkTG9jYXRpb24gPSB0cmFuc2Zvcm1FdmVudExvY2F0aW9uKEludFBvaW50KGdlc3R1
cmVFdmVudC54LCBnZXN0dXJlRXZlbnQueSkpOworICAgICAgICBnZXN0dXJlRXZlbnQueCA9IHRy
YW5zZm9ybWVkTG9jYXRpb24ueCgpOworICAgICAgICBnZXN0dXJlRXZlbnQueSA9IHRyYW5zZm9y
bWVkTG9jYXRpb24ueSgpOworICAgICAgICBpbnB1dEV2ZW50VHJhbnNmb3JtZWQgPSBzdGF0aWNf
Y2FzdDxjb25zdCBXZWJJbnB1dEV2ZW50Kj4oJmdlc3R1cmVFdmVudCk7CisgICAgfQorCisgICAg
Ym9vbCBoYW5kbGVkID0gUGFnZVdpZGdldERlbGVnYXRlOjpoYW5kbGVJbnB1dEV2ZW50KG1fcGFn
ZS5nZXQoKSwgKnRoaXMsICppbnB1dEV2ZW50VHJhbnNmb3JtZWQpOwogICAgIHJldHVybiBoYW5k
bGVkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRleCA0
MzllMGU2YjE3NzIzYzZkOTQ2NmUzMTk2YmQ2OTk5Y2ZiOWJmOTllLi40ZWQ3ZDE1NjU1YmM1NTlm
YjU4YTBkYzZkNjk3YWRjMzUzMjZhNjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmgKQEAgLTY2Niw2ICs2NjYsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcG9pbnRl
ckxvY2tNb3VzZUV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmKTsKICNlbmRpZgogCisgICAgV2Vi
Q29yZTo6SW50UG9pbnQgdHJhbnNmb3JtRXZlbnRMb2NhdGlvbihjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgbG9jYXRpb24pOworCiAgICAgLy8gUGFnZVdpZGdldEV2ZW50SGFuZGxlciBmdW5jdGlv
bnMKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlTW91c2VMZWF2ZShXZWJDb3JlOjpGcmFtZSYsIGNv
bnN0IFdlYk1vdXNlRXZlbnQmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlTW91
c2VEb3duKFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV2ViTW91c2VFdmVudCYpIE9WRVJSSURFOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171272</attachid>
            <date>2012-10-29 10:03:49 -0700</date>
            <delta_ts>2012-10-29 15:54:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100542-20121029130216.patch</filename>
            <type>text/plain</type>
            <size>4839</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyODA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAyMTJkZDY2ZjViNzdm
ZmJjYzA5OTMwNjJjM2JkZmVmZjE3NTUyMWVjLi5hZDE1MWQxYmZlYWQxNmU3YTA4MWEyMTdkOTY2
OGYyZTdjYjAxZDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0xMC0yOSAg
Vy4gSmFtZXMgTWFjTGVhbiAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2No
cm9taXVtXSBUcmFuc2Zvcm0gbW91c2UvZ2VzdHVyZSBldmVudCBjb29yZGluYXRlcyB0byBhY2Nv
dW50IGZvciBwaW5jaC16b29tIGluIGNvbXBvc2l0b3IuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDA1NDIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQaW5jaC16b29tIGluIHRoZSBjb21wb3NpdG9yIGFw
cGxpZXMgYSB0cmFuc2Zvcm1hdGlvbiB0aGF0IFdlYkNvcmUgZG9lcyBub3Qga25vdyBhYm91dC4K
KyAgICAgICAgV2UgbmVlZCB0byBhZGp1c3QgbW91c2UgYW5kIGdlc3R1cmUgZXZlbnQgY29vcmRp
bmF0ZXMgdG8gYWNjb3VudCBmb3IgdGhpcyBpbiBvcmRlciB0aGF0CisgICAgICAgIGhpdCB0ZXN0
aW5nIHdvcmsgcHJvcGVybHkgZm9yIHRoZXNlIHR5cGVzIHdoaWxlIHpvb21lZC4KKworICAgICAg
ICAqIGNocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3Lmg6CisgICAgICAgIChXZWJMYXll
clRyZWVWaWV3KToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlldzo6YWRqdXN0UG9p
bnRGb3Jab29tKTogQWRqdXN0cyBwb2ludCBjb29yZGluYXRlZCB0byBhY2NvdW50IGZvciB6b29t
IGluIGNvbXBvc2l0b3IuCisKIDIwMTItMTAtMjYgIENocmlzdG9waGVyIENhbWVyb24gIDxjY2Ft
ZXJvbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBBZGQgYWRkaXRpb25hbCBt
ZW1vcnkgbWFuYWdlbWVudCBmaWVsZHMgdG8gV2ViR3JhcGhpY3NDb250ZXh0M0QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKaW5kZXggMjJkNDUxZGMwNTlhOGQyYjM0ZjRmMDU3N2U5Y2FhZTBjOWUz
MjgzYi4uOWFkODc2ZGJkMmQwYjBlNGUyZDI3ZjVmNmVlNWE2ZWQ2YjYxYjY5MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0xMC0yOSAgVy4gSmFtZXMg
TWFjTGVhbiAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBU
cmFuc2Zvcm0gbW91c2UvZ2VzdHVyZSBldmVudCBjb29yZGluYXRlcyB0byBhY2NvdW50IGZvciBw
aW5jaC16b29tIGluIGNvbXBvc2l0b3IuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDA1NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBQaW5jaC16b29tIGluIHRoZSBjb21wb3NpdG9yIGFwcGxpZXMgYSB0
cmFuc2Zvcm1hdGlvbiB0aGF0IFdlYkNvcmUgZG9lcyBub3Qga25vdyBhYm91dC4KKyAgICAgICAg
V2UgbmVlZCB0byBhZGp1c3QgbW91c2UgYW5kIGdlc3R1cmUgZXZlbnQgY29vcmRpbmF0ZXMgdG8g
YWNjb3VudCBmb3IgdGhpcyBpbiBvcmRlciB0aGF0CisgICAgICAgIGhpdCB0ZXN0aW5nIHdvcmsg
cHJvcGVybHkgZm9yIHRoZXNlIHR5cGVzIHdoaWxlIHpvb21lZC4KKworICAgICAgICAqIHNyYy9X
ZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpoYW5kbGVJbnB1
dEV2ZW50KTogTW9kaWZpZWQgdG8gYWRqb2ludCBldmVudCBjb29yZGluYXRlcyB0byBhY2NvdW50
IGZvciB6b29tLgorCiAyMDEyLTEwLTI5ICBFdWdlbmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYnVn
QGdtYWlsLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBUaW1lbGluZTogbWFrZSBjcHUt
bW9uaXRvcmluZyBmZWF0dXJlIGF2YWlsYWJsZSBvbmx5IG9uIGNhcGFibGUgYnJvd3NlcnMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmll
dy5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3LmgK
aW5kZXggMzdjYzg2ZWE2NmJjZDlmYjVjMDIxZTVmNTdhNGMwYmViZGNmYmJlYy4uMTM4NjVhZmQ4
NDZkMDk0YmZkMDMxMmVjZmJlMmFhYjYwZGY3OTMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3LmgKKysrIGIvU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3LmgKQEAgLTMwLDggKzMwLDEwIEBA
CiAjaW5jbHVkZSAiV2ViQ29sb3IuaCIKICNpbmNsdWRlICJXZWJDb21tb24uaCIKICNpbmNsdWRl
ICJXZWJOb25Db3B5YWJsZS5oIgorI2luY2x1ZGUgIldlYlBvaW50LmgiCiAjaW5jbHVkZSAiV2Vi
UHJpdmF0ZU93blB0ci5oIgogI2luY2x1ZGUgIldlYlNpemUuaCIKKyNpbmNsdWRlICJXZWJUcmFu
c2Zvcm1hdGlvbk1hdHJpeC5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYkdyYXBo
aWNzQ29udGV4dDNEOwpAQCAtOTUsNiArOTcsOSBAQCBwdWJsaWM6CiAgICAgLy8gbW9kZSkuCiAg
ICAgdmlydHVhbCBXZWJTaXplIGRldmljZVZpZXdwb3J0U2l6ZSgpIGNvbnN0ID0gMDsKIAorICAg
IC8vIEZJWE1FOiBPbmNlIGNjOjpMYXllclRyZWVIb3N0OjphZGp1c3RQb2ludEZvclpvb20gbGFu
ZHMsIG1ha2UgdGhpcyBwdXJlIHZpcnR1YWwuCisgICAgdmlydHVhbCBXZWJQb2ludCBhZGp1c3RQ
b2ludEZvclpvb20oY29uc3QgV2ViUG9pbnQmIHBvaW50KSBjb25zdCB7IHJldHVybiBwb2ludDsg
fQorCiAgICAgdmlydHVhbCB2b2lkIHNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0KSA9IDA7CiAg
ICAgdmlydHVhbCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0ID0gMDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IGQzNzc4NzFiYzcyNmJk
Nzk5Yjc1OTA4OGQ3MTBkMDU5MzJlODEyNWIuLjgyNGVjZDMzNGNmZWRlNGQzZGIzMTMxY2JkMjlm
NzQ0ODc0YjRhMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5j
cHAKQEAgLTE5OTksNyArMTk5OSwyNiBAQCBib29sIFdlYlZpZXdJbXBsOjpoYW5kbGVJbnB1dEV2
ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmIGlucHV0RXZlbnQpCiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KIAotICAgIGJvb2wgaGFuZGxlZCA9IFBhZ2VXaWRnZXREZWxlZ2F0ZTo6aGFuZGxl
SW5wdXRFdmVudChtX3BhZ2UuZ2V0KCksICp0aGlzLCBpbnB1dEV2ZW50KTsKKyAgICBjb25zdCBX
ZWJJbnB1dEV2ZW50KiBpbnB1dEV2ZW50VHJhbnNmb3JtZWQgPSAmaW5wdXRFdmVudDsKKyAgICBX
ZWJNb3VzZUV2ZW50IG1vdXNlRXZlbnQ7CisgICAgV2ViR2VzdHVyZUV2ZW50IGdlc3R1cmVFdmVu
dDsKKyAgICBpZiAoV2ViSW5wdXRFdmVudDo6aXNNb3VzZUV2ZW50VHlwZShpbnB1dEV2ZW50LnR5
cGUpKSB7CisgICAgICAgIG1vdXNlRXZlbnQgPSAqc3RhdGljX2Nhc3Q8Y29uc3QgV2ViTW91c2VF
dmVudCo+KCZpbnB1dEV2ZW50KTsKKworICAgICAgICBJbnRQb2ludCB0cmFuc2Zvcm1lZExvY2F0
aW9uID0gbV9sYXllclRyZWVWaWV3LT5hZGp1c3RQb2ludEZvclpvb20oV2ViUG9pbnQobW91c2VF
dmVudC54LCBtb3VzZUV2ZW50LnkpKTsKKyAgICAgICAgbW91c2VFdmVudC54ID0gdHJhbnNmb3Jt
ZWRMb2NhdGlvbi54KCk7CisgICAgICAgIG1vdXNlRXZlbnQueSA9IHRyYW5zZm9ybWVkTG9jYXRp
b24ueSgpOworICAgICAgICBpbnB1dEV2ZW50VHJhbnNmb3JtZWQgPSBzdGF0aWNfY2FzdDxjb25z
dCBXZWJJbnB1dEV2ZW50Kj4oJm1vdXNlRXZlbnQpOworICAgIH0gZWxzZSBpZiAoV2ViSW5wdXRF
dmVudDo6aXNHZXN0dXJlRXZlbnRUeXBlKGlucHV0RXZlbnQudHlwZSkpIHsKKyAgICAgICAgZ2Vz
dHVyZUV2ZW50ID0gKnN0YXRpY19jYXN0PGNvbnN0IFdlYkdlc3R1cmVFdmVudCo+KCZpbnB1dEV2
ZW50KTsKKworICAgICAgICBJbnRQb2ludCB0cmFuc2Zvcm1lZExvY2F0aW9uID0gbV9sYXllclRy
ZWVWaWV3LT5hZGp1c3RQb2ludEZvclpvb20oV2ViUG9pbnQoZ2VzdHVyZUV2ZW50LngsIGdlc3R1
cmVFdmVudC55KSk7CisgICAgICAgIGdlc3R1cmVFdmVudC54ID0gdHJhbnNmb3JtZWRMb2NhdGlv
bi54KCk7CisgICAgICAgIGdlc3R1cmVFdmVudC55ID0gdHJhbnNmb3JtZWRMb2NhdGlvbi55KCk7
CisgICAgICAgIGlucHV0RXZlbnRUcmFuc2Zvcm1lZCA9IHN0YXRpY19jYXN0PGNvbnN0IFdlYklu
cHV0RXZlbnQqPigmZ2VzdHVyZUV2ZW50KTsKKyAgICB9CisKKyAgICBib29sIGhhbmRsZWQgPSBQ
YWdlV2lkZ2V0RGVsZWdhdGU6OmhhbmRsZUlucHV0RXZlbnQobV9wYWdlLmdldCgpLCAqdGhpcywg
KmlucHV0RXZlbnRUcmFuc2Zvcm1lZCk7CiAgICAgcmV0dXJuIGhhbmRsZWQ7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171329</attachid>
            <date>2012-10-29 15:54:36 -0700</date>
            <delta_ts>2012-10-30 06:48:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100542-20121029185302.patch</filename>
            <type>text/plain</type>
            <size>4871</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyODA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAyMTJkZDY2ZjViNzdm
ZmJjYzA5OTMwNjJjM2JkZmVmZjE3NTUyMWVjLi5hZDE1MWQxYmZlYWQxNmU3YTA4MWEyMTdkOTY2
OGYyZTdjYjAxZDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0xMC0yOSAg
Vy4gSmFtZXMgTWFjTGVhbiAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2No
cm9taXVtXSBUcmFuc2Zvcm0gbW91c2UvZ2VzdHVyZSBldmVudCBjb29yZGluYXRlcyB0byBhY2Nv
dW50IGZvciBwaW5jaC16b29tIGluIGNvbXBvc2l0b3IuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDA1NDIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQaW5jaC16b29tIGluIHRoZSBjb21wb3NpdG9yIGFw
cGxpZXMgYSB0cmFuc2Zvcm1hdGlvbiB0aGF0IFdlYkNvcmUgZG9lcyBub3Qga25vdyBhYm91dC4K
KyAgICAgICAgV2UgbmVlZCB0byBhZGp1c3QgbW91c2UgYW5kIGdlc3R1cmUgZXZlbnQgY29vcmRp
bmF0ZXMgdG8gYWNjb3VudCBmb3IgdGhpcyBpbiBvcmRlciB0aGF0CisgICAgICAgIGhpdCB0ZXN0
aW5nIHdvcmsgcHJvcGVybHkgZm9yIHRoZXNlIHR5cGVzIHdoaWxlIHpvb21lZC4KKworICAgICAg
ICAqIGNocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3Lmg6CisgICAgICAgIChXZWJMYXll
clRyZWVWaWV3KToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlldzo6YWRqdXN0UG9p
bnRGb3Jab29tKTogQWRqdXN0cyBwb2ludCBjb29yZGluYXRlZCB0byBhY2NvdW50IGZvciB6b29t
IGluIGNvbXBvc2l0b3IuCisKIDIwMTItMTAtMjYgIENocmlzdG9waGVyIENhbWVyb24gIDxjY2Ft
ZXJvbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBBZGQgYWRkaXRpb25hbCBt
ZW1vcnkgbWFuYWdlbWVudCBmaWVsZHMgdG8gV2ViR3JhcGhpY3NDb250ZXh0M0QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKaW5kZXggMjJkNDUxZGMwNTlhOGQyYjM0ZjRmMDU3N2U5Y2FhZTBjOWUz
MjgzYi4uOWFkODc2ZGJkMmQwYjBlNGUyZDI3ZjVmNmVlNWE2ZWQ2YjYxYjY5MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0xMC0yOSAgVy4gSmFtZXMg
TWFjTGVhbiAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBU
cmFuc2Zvcm0gbW91c2UvZ2VzdHVyZSBldmVudCBjb29yZGluYXRlcyB0byBhY2NvdW50IGZvciBw
aW5jaC16b29tIGluIGNvbXBvc2l0b3IuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDA1NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBQaW5jaC16b29tIGluIHRoZSBjb21wb3NpdG9yIGFwcGxpZXMgYSB0
cmFuc2Zvcm1hdGlvbiB0aGF0IFdlYkNvcmUgZG9lcyBub3Qga25vdyBhYm91dC4KKyAgICAgICAg
V2UgbmVlZCB0byBhZGp1c3QgbW91c2UgYW5kIGdlc3R1cmUgZXZlbnQgY29vcmRpbmF0ZXMgdG8g
YWNjb3VudCBmb3IgdGhpcyBpbiBvcmRlciB0aGF0CisgICAgICAgIGhpdCB0ZXN0aW5nIHdvcmsg
cHJvcGVybHkgZm9yIHRoZXNlIHR5cGVzIHdoaWxlIHpvb21lZC4KKworICAgICAgICAqIHNyYy9X
ZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpoYW5kbGVJbnB1
dEV2ZW50KTogTW9kaWZpZWQgdG8gYWRqb2ludCBldmVudCBjb29yZGluYXRlcyB0byBhY2NvdW50
IGZvciB6b29tLgorCiAyMDEyLTEwLTI5ICBFdWdlbmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYnVn
QGdtYWlsLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBUaW1lbGluZTogbWFrZSBjcHUt
bW9uaXRvcmluZyBmZWF0dXJlIGF2YWlsYWJsZSBvbmx5IG9uIGNhcGFibGUgYnJvd3NlcnMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmll
dy5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3LmgK
aW5kZXggMzdjYzg2ZWE2NmJjZDlmYjVjMDIxZTVmNTdhNGMwYmViZGNmYmJlYy4uYzI5OTBmYTNj
NzIyNzM1MDUyNmZkZGVmODg3YzIxNDQwZTJjMGJkNiAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3LmgKKysrIGIvU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3LmgKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpbmNsdWRlICJTa0JpdG1hcC5oIgogI2luY2x1ZGUgIldlYkNvbG9yLmgiCiAjaW5jbHVkZSAi
V2ViQ29tbW9uLmgiCisjaW5jbHVkZSAiV2ViRmxvYXRQb2ludC5oIgogI2luY2x1ZGUgIldlYk5v
bkNvcHlhYmxlLmgiCiAjaW5jbHVkZSAiV2ViUHJpdmF0ZU93blB0ci5oIgogI2luY2x1ZGUgIldl
YlNpemUuaCIKQEAgLTk1LDYgKzk2LDkgQEAgcHVibGljOgogICAgIC8vIG1vZGUpLgogICAgIHZp
cnR1YWwgV2ViU2l6ZSBkZXZpY2VWaWV3cG9ydFNpemUoKSBjb25zdCA9IDA7CiAKKyAgICAvLyBG
SVhNRTogT25jZSBjYzo6TGF5ZXJUcmVlSG9zdDo6YWRqdXN0RXZlbnRQb2ludEZvclBpbmNoWm9v
bSBsYW5kcywgbWFrZSB0aGlzIHB1cmUgdmlydHVhbC4KKyAgICB2aXJ0dWFsIFdlYkZsb2F0UG9p
bnQgYWRqdXN0RXZlbnRQb2ludEZvclBpbmNoWm9vbShjb25zdCBXZWJGbG9hdFBvaW50JiBwb2lu
dCkgY29uc3QgeyByZXR1cm4gcG9pbnQ7IH0KKwogICAgIHZpcnR1YWwgdm9pZCBzZXREZXZpY2VT
Y2FsZUZhY3RvcihmbG9hdCkgPSAwOwogICAgIHZpcnR1YWwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0
b3IoKSBjb25zdCA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmNwcAppbmRleCBkMzc3ODcxYmM3MjZiZDc5OWI3NTkwODhkNzEwZDA1OTMyZTgxMjViLi5iZTBl
Yzc1ODI1M2U4YzM1ZDQyN2YxZWUwYjU5MWZhNDFlNDk0ZDE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0xOTk5LDcgKzE5OTksMjYgQEAgYm9vbCBX
ZWJWaWV3SW1wbDo6aGFuZGxlSW5wdXRFdmVudChjb25zdCBXZWJJbnB1dEV2ZW50JiBpbnB1dEV2
ZW50KQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBib29sIGhhbmRsZWQgPSBQ
YWdlV2lkZ2V0RGVsZWdhdGU6OmhhbmRsZUlucHV0RXZlbnQobV9wYWdlLmdldCgpLCAqdGhpcywg
aW5wdXRFdmVudCk7CisgICAgY29uc3QgV2ViSW5wdXRFdmVudCogaW5wdXRFdmVudFRyYW5zZm9y
bWVkID0gJmlucHV0RXZlbnQ7CisgICAgV2ViTW91c2VFdmVudCBtb3VzZUV2ZW50OworICAgIFdl
Ykdlc3R1cmVFdmVudCBnZXN0dXJlRXZlbnQ7CisgICAgaWYgKFdlYklucHV0RXZlbnQ6OmlzTW91
c2VFdmVudFR5cGUoaW5wdXRFdmVudC50eXBlKSkgeworICAgICAgICBtb3VzZUV2ZW50ID0gKnN0
YXRpY19jYXN0PGNvbnN0IFdlYk1vdXNlRXZlbnQqPigmaW5wdXRFdmVudCk7CisKKyAgICAgICAg
SW50UG9pbnQgdHJhbnNmb3JtZWRMb2NhdGlvbiA9IHJvdW5kZWRJbnRQb2ludChtX2xheWVyVHJl
ZVZpZXctPmFkanVzdEV2ZW50UG9pbnRGb3JQaW5jaFpvb20oV2ViRmxvYXRQb2ludChtb3VzZUV2
ZW50LngsIG1vdXNlRXZlbnQueSkpKTsKKyAgICAgICAgbW91c2VFdmVudC54ID0gdHJhbnNmb3Jt
ZWRMb2NhdGlvbi54KCk7CisgICAgICAgIG1vdXNlRXZlbnQueSA9IHRyYW5zZm9ybWVkTG9jYXRp
b24ueSgpOworICAgICAgICBpbnB1dEV2ZW50VHJhbnNmb3JtZWQgPSBzdGF0aWNfY2FzdDxjb25z
dCBXZWJJbnB1dEV2ZW50Kj4oJm1vdXNlRXZlbnQpOworICAgIH0gZWxzZSBpZiAoV2ViSW5wdXRF
dmVudDo6aXNHZXN0dXJlRXZlbnRUeXBlKGlucHV0RXZlbnQudHlwZSkpIHsKKyAgICAgICAgZ2Vz
dHVyZUV2ZW50ID0gKnN0YXRpY19jYXN0PGNvbnN0IFdlYkdlc3R1cmVFdmVudCo+KCZpbnB1dEV2
ZW50KTsKKworICAgICAgICBJbnRQb2ludCB0cmFuc2Zvcm1lZExvY2F0aW9uID0gcm91bmRlZElu
dFBvaW50KG1fbGF5ZXJUcmVlVmlldy0+YWRqdXN0RXZlbnRQb2ludEZvclBpbmNoWm9vbShXZWJG
bG9hdFBvaW50KGdlc3R1cmVFdmVudC54LCBnZXN0dXJlRXZlbnQueSkpKTsKKyAgICAgICAgZ2Vz
dHVyZUV2ZW50LnggPSB0cmFuc2Zvcm1lZExvY2F0aW9uLngoKTsKKyAgICAgICAgZ2VzdHVyZUV2
ZW50LnkgPSB0cmFuc2Zvcm1lZExvY2F0aW9uLnkoKTsKKyAgICAgICAgaW5wdXRFdmVudFRyYW5z
Zm9ybWVkID0gc3RhdGljX2Nhc3Q8Y29uc3QgV2ViSW5wdXRFdmVudCo+KCZnZXN0dXJlRXZlbnQp
OworICAgIH0KKworICAgIGJvb2wgaGFuZGxlZCA9IFBhZ2VXaWRnZXREZWxlZ2F0ZTo6aGFuZGxl
SW5wdXRFdmVudChtX3BhZ2UuZ2V0KCksICp0aGlzLCAqaW5wdXRFdmVudFRyYW5zZm9ybWVkKTsK
ICAgICByZXR1cm4gaGFuZGxlZDsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171438</attachid>
            <date>2012-10-30 06:48:50 -0700</date>
            <delta_ts>2012-10-30 14:38:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100542-20121030094715.patch</filename>
            <type>text/plain</type>
            <size>4987</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyODA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAyMTJkZDY2ZjViNzdm
ZmJjYzA5OTMwNjJjM2JkZmVmZjE3NTUyMWVjLi5hY2FiZmE5MDJjNjQ1N2NmMmUwMjM2MDcwZDQx
MWVkNTliMzk2YzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0xMC0zMCAg
Vy4gSmFtZXMgTWFjTGVhbiAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2No
cm9taXVtXSBUcmFuc2Zvcm0gbW91c2UvZ2VzdHVyZSBldmVudCBjb29yZGluYXRlcyB0byBhY2Nv
dW50IGZvciBwaW5jaC16b29tIGluIGNvbXBvc2l0b3IuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDA1NDIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQaW5jaC16b29tIGluIHRoZSBjb21wb3NpdG9yIGFw
cGxpZXMgYSB0cmFuc2Zvcm1hdGlvbiB0aGF0IFdlYkNvcmUgZG9lcyBub3Qga25vdyBhYm91dC4K
KyAgICAgICAgV2UgbmVlZCB0byBhZGp1c3QgbW91c2UgYW5kIGdlc3R1cmUgZXZlbnQgY29vcmRp
bmF0ZXMgdG8gYWNjb3VudCBmb3IgdGhpcyBpbiBvcmRlciB0aGF0CisgICAgICAgIGhpdCB0ZXN0
aW5nIHdvcmsgcHJvcGVybHkgZm9yIHRoZXNlIHR5cGVzIHdoaWxlIHpvb21lZC4KKworICAgICAg
ICAqIGNocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3Lmg6CisgICAgICAgIChXZWJMYXll
clRyZWVWaWV3KToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlldzo6YWRqdXN0UG9p
bnRGb3Jab29tKTogQWRqdXN0cyBwb2ludCBjb29yZGluYXRlZCB0byBhY2NvdW50IGZvciB6b29t
IGluIGNvbXBvc2l0b3IuCisKIDIwMTItMTAtMjYgIENocmlzdG9waGVyIENhbWVyb24gIDxjY2Ft
ZXJvbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBBZGQgYWRkaXRpb25hbCBt
ZW1vcnkgbWFuYWdlbWVudCBmaWVsZHMgdG8gV2ViR3JhcGhpY3NDb250ZXh0M0QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKaW5kZXggMjJkNDUxZGMwNTlhOGQyYjM0ZjRmMDU3N2U5Y2FhZTBjOWUz
MjgzYi4uMmU0YjhkOGJmMTljYWVkNWNmYjAxYTdkZDFmNWQ0YzU4MzcxYTljOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0xMC0zMCAgVy4gSmFtZXMg
TWFjTGVhbiAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBU
cmFuc2Zvcm0gbW91c2UvZ2VzdHVyZSBldmVudCBjb29yZGluYXRlcyB0byBhY2NvdW50IGZvciBw
aW5jaC16b29tIGluIGNvbXBvc2l0b3IuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDA1NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBQaW5jaC16b29tIGluIHRoZSBjb21wb3NpdG9yIGFwcGxpZXMgYSB0
cmFuc2Zvcm1hdGlvbiB0aGF0IFdlYkNvcmUgZG9lcyBub3Qga25vdyBhYm91dC4KKyAgICAgICAg
V2UgbmVlZCB0byBhZGp1c3QgbW91c2UgYW5kIGdlc3R1cmUgZXZlbnQgY29vcmRpbmF0ZXMgdG8g
YWNjb3VudCBmb3IgdGhpcyBpbiBvcmRlciB0aGF0CisgICAgICAgIGhpdCB0ZXN0aW5nIHdvcmsg
cHJvcGVybHkgZm9yIHRoZXNlIHR5cGVzIHdoaWxlIHpvb21lZC4KKworICAgICAgICAqIHNyYy9X
ZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpoYW5kbGVJbnB1
dEV2ZW50KTogTW9kaWZpZWQgdG8gYWRqb2ludCBldmVudCBjb29yZGluYXRlcyB0byBhY2NvdW50
IGZvciB6b29tLgorCiAyMDEyLTEwLTI5ICBFdWdlbmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYnVn
QGdtYWlsLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBUaW1lbGluZTogbWFrZSBjcHUt
bW9uaXRvcmluZyBmZWF0dXJlIGF2YWlsYWJsZSBvbmx5IG9uIGNhcGFibGUgYnJvd3NlcnMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmll
dy5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3LmgK
aW5kZXggMzdjYzg2ZWE2NmJjZDlmYjVjMDIxZTVmNTdhNGMwYmViZGNmYmJlYy4uYzI5OTBmYTNj
NzIyNzM1MDUyNmZkZGVmODg3YzIxNDQwZTJjMGJkNiAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3LmgKKysrIGIvU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3LmgKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpbmNsdWRlICJTa0JpdG1hcC5oIgogI2luY2x1ZGUgIldlYkNvbG9yLmgiCiAjaW5jbHVkZSAi
V2ViQ29tbW9uLmgiCisjaW5jbHVkZSAiV2ViRmxvYXRQb2ludC5oIgogI2luY2x1ZGUgIldlYk5v
bkNvcHlhYmxlLmgiCiAjaW5jbHVkZSAiV2ViUHJpdmF0ZU93blB0ci5oIgogI2luY2x1ZGUgIldl
YlNpemUuaCIKQEAgLTk1LDYgKzk2LDkgQEAgcHVibGljOgogICAgIC8vIG1vZGUpLgogICAgIHZp
cnR1YWwgV2ViU2l6ZSBkZXZpY2VWaWV3cG9ydFNpemUoKSBjb25zdCA9IDA7CiAKKyAgICAvLyBG
SVhNRTogT25jZSBjYzo6TGF5ZXJUcmVlSG9zdDo6YWRqdXN0RXZlbnRQb2ludEZvclBpbmNoWm9v
bSBsYW5kcywgbWFrZSB0aGlzIHB1cmUgdmlydHVhbC4KKyAgICB2aXJ0dWFsIFdlYkZsb2F0UG9p
bnQgYWRqdXN0RXZlbnRQb2ludEZvclBpbmNoWm9vbShjb25zdCBXZWJGbG9hdFBvaW50JiBwb2lu
dCkgY29uc3QgeyByZXR1cm4gcG9pbnQ7IH0KKwogICAgIHZpcnR1YWwgdm9pZCBzZXREZXZpY2VT
Y2FsZUZhY3RvcihmbG9hdCkgPSAwOwogICAgIHZpcnR1YWwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0
b3IoKSBjb25zdCA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmNwcAppbmRleCBkMzc3ODcxYmM3MjZiZDc5OWI3NTkwODhkNzEwZDA1OTMyZTgxMjViLi5lZDE1
ZGRlYzVhY2Q1MWUzZjc2OTYxYmI3ZjA2MTkxMTMyZmI2NGYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0xOTk5LDcgKzE5OTksMjkgQEAgYm9vbCBX
ZWJWaWV3SW1wbDo6aGFuZGxlSW5wdXRFdmVudChjb25zdCBXZWJJbnB1dEV2ZW50JiBpbnB1dEV2
ZW50KQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBib29sIGhhbmRsZWQgPSBQ
YWdlV2lkZ2V0RGVsZWdhdGU6OmhhbmRsZUlucHV0RXZlbnQobV9wYWdlLmdldCgpLCAqdGhpcywg
aW5wdXRFdmVudCk7CisgICAgaWYgKCFtX2xheWVyVHJlZVZpZXcpCisgICAgICAgIHJldHVybiBQ
YWdlV2lkZ2V0RGVsZWdhdGU6OmhhbmRsZUlucHV0RXZlbnQobV9wYWdlLmdldCgpLCAqdGhpcywg
aW5wdXRFdmVudCk7CisKKyAgICBjb25zdCBXZWJJbnB1dEV2ZW50KiBpbnB1dEV2ZW50VHJhbnNm
b3JtZWQgPSAmaW5wdXRFdmVudDsKKyAgICBXZWJNb3VzZUV2ZW50IG1vdXNlRXZlbnQ7CisgICAg
V2ViR2VzdHVyZUV2ZW50IGdlc3R1cmVFdmVudDsKKyAgICBpZiAoV2ViSW5wdXRFdmVudDo6aXNN
b3VzZUV2ZW50VHlwZShpbnB1dEV2ZW50LnR5cGUpKSB7CisgICAgICAgIG1vdXNlRXZlbnQgPSAq
c3RhdGljX2Nhc3Q8Y29uc3QgV2ViTW91c2VFdmVudCo+KCZpbnB1dEV2ZW50KTsKKworICAgICAg
ICBJbnRQb2ludCB0cmFuc2Zvcm1lZExvY2F0aW9uID0gcm91bmRlZEludFBvaW50KG1fbGF5ZXJU
cmVlVmlldy0+YWRqdXN0RXZlbnRQb2ludEZvclBpbmNoWm9vbShXZWJGbG9hdFBvaW50KG1vdXNl
RXZlbnQueCwgbW91c2VFdmVudC55KSkpOworICAgICAgICBtb3VzZUV2ZW50LnggPSB0cmFuc2Zv
cm1lZExvY2F0aW9uLngoKTsKKyAgICAgICAgbW91c2VFdmVudC55ID0gdHJhbnNmb3JtZWRMb2Nh
dGlvbi55KCk7CisgICAgICAgIGlucHV0RXZlbnRUcmFuc2Zvcm1lZCA9IHN0YXRpY19jYXN0PGNv
bnN0IFdlYklucHV0RXZlbnQqPigmbW91c2VFdmVudCk7CisgICAgfSBlbHNlIGlmIChXZWJJbnB1
dEV2ZW50Ojppc0dlc3R1cmVFdmVudFR5cGUoaW5wdXRFdmVudC50eXBlKSkgeworICAgICAgICBn
ZXN0dXJlRXZlbnQgPSAqc3RhdGljX2Nhc3Q8Y29uc3QgV2ViR2VzdHVyZUV2ZW50Kj4oJmlucHV0
RXZlbnQpOworCisgICAgICAgIEludFBvaW50IHRyYW5zZm9ybWVkTG9jYXRpb24gPSByb3VuZGVk
SW50UG9pbnQobV9sYXllclRyZWVWaWV3LT5hZGp1c3RFdmVudFBvaW50Rm9yUGluY2hab29tKFdl
YkZsb2F0UG9pbnQoZ2VzdHVyZUV2ZW50LngsIGdlc3R1cmVFdmVudC55KSkpOworICAgICAgICBn
ZXN0dXJlRXZlbnQueCA9IHRyYW5zZm9ybWVkTG9jYXRpb24ueCgpOworICAgICAgICBnZXN0dXJl
RXZlbnQueSA9IHRyYW5zZm9ybWVkTG9jYXRpb24ueSgpOworICAgICAgICBpbnB1dEV2ZW50VHJh
bnNmb3JtZWQgPSBzdGF0aWNfY2FzdDxjb25zdCBXZWJJbnB1dEV2ZW50Kj4oJmdlc3R1cmVFdmVu
dCk7CisgICAgfQorCisgICAgYm9vbCBoYW5kbGVkID0gUGFnZVdpZGdldERlbGVnYXRlOjpoYW5k
bGVJbnB1dEV2ZW50KG1fcGFnZS5nZXQoKSwgKnRoaXMsICppbnB1dEV2ZW50VHJhbnNmb3JtZWQp
OwogICAgIHJldHVybiBoYW5kbGVkOwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>