<?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>26229</bug_id>
          
          <creation_ts>2009-06-05 15:50:32 -0700</creation_ts>
          <short_desc>Can&apos;t click outside the slider thumb and start dragging</short_desc>
          <delta_ts>2009-07-09 14:24:14 -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>Mac</rep_platform>
          <op_sys>OS X 10.5</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="Pierre d&apos;Herbemont">pdherbemont</reporter>
          <assigned_to name="Pierre d&apos;Herbemont">pdherbemont</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>mitz</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>124584</commentid>
    <comment_count>0</comment_count>
    <who name="Pierre d&apos;Herbemont">pdherbemont</who>
    <bug_when>2009-06-05 15:50:32 -0700</bug_when>
    <thetext>STEPS:
1- Open LayoutTests/media/video-played.html
2- Wait for the page to be loaded
3- Click on the video slider where the slider thumb is not
4- attempt to slide it

OCCURS:
4- Doesn&apos;t move the slider thumb.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124586</commentid>
    <comment_count>1</comment_count>
      <attachid>31017</attachid>
    <who name="Pierre d&apos;Herbemont">pdherbemont</who>
    <bug_when>2009-06-05 16:10:41 -0700</bug_when>
    <thetext>Created attachment 31017
patch v1.

Patch attached.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124587</commentid>
    <comment_count>2</comment_count>
      <attachid>31018</attachid>
    <who name="Pierre d&apos;Herbemont">pdherbemont</who>
    <bug_when>2009-06-05 16:16:11 -0700</bug_when>
    <thetext>Created attachment 31018
patch v2.

This time with a changelog diff that will apply a bit better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124592</commentid>
    <comment_count>3</comment_count>
      <attachid>31018</attachid>
    <who name="Pierre d&apos;Herbemont">pdherbemont</who>
    <bug_when>2009-06-05 16:57:20 -0700</bug_when>
    <thetext>Comment on attachment 31018
patch v2.

In the case of the mouse click on the slider we shouldn&apos;t account the mouse position.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130587</commentid>
    <comment_count>4</comment_count>
      <attachid>32494</attachid>
    <who name="Pierre d&apos;Herbemont">pdherbemont</who>
    <bug_when>2009-07-08 18:02:03 -0700</bug_when>
    <thetext>Created attachment 32494
patch v3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130590</commentid>
    <comment_count>5</comment_count>
      <attachid>32494</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-07-08 18:15:53 -0700</bug_when>
    <thetext>Comment on attachment 32494
patch v3.

&gt; diff --git a/WebCore/rendering/RenderSlider.cpp b/WebCore/rendering/RenderSlider.cpp
&gt; index 610a060..9e00d68 100644
&gt; --- a/WebCore/rendering/RenderSlider.cpp
&gt; +++ b/WebCore/rendering/RenderSlider.cpp
&gt; @@ -127,41 +127,52 @@ private:
&gt;      virtual Node* shadowParentNode() { return m_shadowParent; }
&gt;  
&gt;      Node* m_shadowParent;
&gt; -    FloatPoint m_initialClickPoint;       // initial click point in RenderSlider-local coordinates
&gt; -    int m_initialPosition;
&gt;      bool m_inDragMode;
&gt; +    FloatPoint m_mouseDragVectorToThumb;

Please move this above the bool to optimize packing. I&apos;m not sure &apos;mouseDragVector&apos; is really tbe best way to describe this. Is it &quot;offsetFromThumb&quot;? Maybe it should be a FloatSize? 

&gt; +    , m_mouseDragVectorToThumb(0, 0)

No need to init a FloatPoint.

&gt; +                }
&gt; +                else {

Should be } else { on one line.

&gt; +                    // We are outside the thumb, move the thumb to the point were
&gt; +                    // we clicked. We&apos;ll be exactly at the center of the thumb.
&gt; +                    m_mouseDragVectorToThumb.setX(0);
&gt; +                    m_mouseDragVectorToThumb.setY(0);

Is it possible for the click to be off the end of the slider, so we&apos;d end up with a negative thumb position? i.e. does this code need to handle end conditions?

&gt; +FloatPoint RenderSlider::mouseEventVectorToThumb(MouseEvent* evt)
&gt; +{
&gt; +    ASSERT (m_thumb &amp;&amp; m_thumb-&gt;renderer());
&gt; +    FloatPoint localPoint = m_thumb-&gt;renderBox()-&gt;absoluteToLocal(evt-&gt;absoluteLocation(), false, true);
&gt; +    IntRect thumbBounds = m_thumb-&gt;renderBox()-&gt;borderBoxRect();
&gt; +    FloatPoint distance;
&gt; +    distance.setX(thumbBounds.x() + thumbBounds.height() / 2 - localPoint.x());
&gt; +    distance.setY(thumbBounds.y() + thumbBounds.width() / 2 - localPoint.y());

I think you have height and width switched.

&gt; +    return distance;

You call this distance, but the method says vector.

r- because I think this needs another revision, but it&apos;s certainly in the right direction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130606</commentid>
    <comment_count>6</comment_count>
    <who name="Pierre d&apos;Herbemont">pdherbemont</who>
    <bug_when>2009-07-08 20:55:41 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 32494 [details])
&gt; &gt; diff --git a/WebCore/rendering/RenderSlider.cpp b/WebCore/rendering/RenderSlider.cpp
&gt; &gt; index 610a060..9e00d68 100644
&gt; &gt; --- a/WebCore/rendering/RenderSlider.cpp
&gt; &gt; +++ b/WebCore/rendering/RenderSlider.cpp
&gt; &gt; @@ -127,41 +127,52 @@ private:
&gt; &gt;      virtual Node* shadowParentNode() { return m_shadowParent; }
&gt; &gt;  
&gt; &gt;      Node* m_shadowParent;
&gt; &gt; -    FloatPoint m_initialClickPoint;       // initial click point in RenderSlider-local coordinates
&gt; &gt; -    int m_initialPosition;
&gt; &gt;      bool m_inDragMode;
&gt; &gt; +    FloatPoint m_mouseDragVectorToThumb;
&gt; 
&gt; Please move this above the bool to optimize packing. I&apos;m not sure
&gt; &apos;mouseDragVector&apos; is really tbe best way to describe this. Is it
&gt; &quot;offsetFromThumb&quot;? Maybe it should be a FloatSize? 

As this is an offset/vector and can contain negative value a Size is not appropriate.

&gt; &gt; +                    // We are outside the thumb, move the thumb to the point were
&gt; &gt; +                    // we clicked. We&apos;ll be exactly at the center of the thumb.
&gt; &gt; +                    m_mouseDragVectorToThumb.setX(0);
&gt; &gt; +                    m_mouseDragVectorToThumb.setY(0);
&gt; 
&gt; Is it possible for the click to be off the end of the slider, so we&apos;d end up
&gt; with a negative thumb position? i.e. does this code need to handle end
&gt; conditions?

It&apos;s being handled properly already: We use the same code path than before, and we&apos;ll place the thumb in a constrained interval through RenderSlider::positionForOffset.

Rest should be addressed, thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130607</commentid>
    <comment_count>7</comment_count>
      <attachid>32500</attachid>
    <who name="Pierre d&apos;Herbemont">pdherbemont</who>
    <bug_when>2009-07-08 20:56:05 -0700</bug_when>
    <thetext>Created attachment 32500
patch v4.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130723</commentid>
    <comment_count>8</comment_count>
    <who name="Pierre d&apos;Herbemont">pdherbemont</who>
    <bug_when>2009-07-09 14:24:14 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/45658</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31017</attachid>
            <date>2009-06-05 16:10:41 -0700</date>
            <delta_ts>2009-06-05 16:16:29 -0700</delta_ts>
            <desc>patch v1.</desc>
            <filename>patch-v1.patch</filename>
            <type>text/plain</type>
            <size>5850</size>
            <attacher name="Pierre d&apos;Herbemont">pdherbemont</attacher>
            
              <data encoding="base64">Y29tbWl0IDZlN2Y3YmY5MDBkNDk5ODgwMWJkODk1YmIwOGFkZTEyOTdjOWZhOTMKQXV0aG9yOiBQ
aWVycmUgZCdIZXJiZW1vbnQgPHBkaGVyYmVtb250QGFwcGxlLmNvbT4KRGF0ZTogICBGcmkgSnVu
IDUgMTU6NTU6NDQgMjAwOSAtMDcwMAoKICAgIE1ha2Ugc3VyZSBzbGlkaW5nIGJlaGF2ZXMgY29y
cmVjdGx5IChpZS4gZm9sbG93IHRoZSBtb3VzZSBldmVuIGFmdGVyIGEgbW91c2UgY2xpY2spLgog
ICAgCiAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYyMjkKCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDMy
MjBhNGUuLjlmZGE1MTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMTkgQEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KIAorICAgICAgICBNYWtlIHN1cmUgc2xpZGluZyBiZWhhdmVzIGNvcnJlY3Rs
eSAoaWUuIGZvbGxvdyB0aGUgbW91c2UgZXZlbiBhZnRlciBhIG1vdXNlIGNsaWNrKS4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYyMjkKKworICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2xp
ZGVyVGh1bWJFbGVtZW50OjpTbGlkZXJUaHVtYkVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
U2xpZGVyVGh1bWJFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlNsaWRlclRodW1iRWxlbWVudDo6c2V0U2xpZGVyVmFsdWVGb3JNb3VzZURvd25Pck1vdmVF
dmVudCk6CisKKzIwMDktMDYtMDUgIFBpZXJyZSBkJ0hlcmJlbW9udCAgPHBkaGVyYmVtb250QGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwogICAgICAg
ICBNYWtlIHN1cmUgbm9uIHZpc2libGUgZWxlbWVudCBhcmUgbm90IGNsaWNrYWJsZS4KIAogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYyMjgKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAgYi9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTbGlkZXIuY3BwCmluZGV4IDYxMGEwNjAuLmNlY2VhNTYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU2xpZGVyLmNwcApAQCAtMTI2LDQyICsxMjYsMzkgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIGJvb2wgaXNTaGFkb3dOb2RlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZp
cnR1YWwgTm9kZSogc2hhZG93UGFyZW50Tm9kZSgpIHsgcmV0dXJuIG1fc2hhZG93UGFyZW50OyB9
CiAKKyAgICBib29sIHNldFNsaWRlclZhbHVlRm9yTW91c2VEb3duT3JNb3ZlRXZlbnQoTW91c2VF
dmVudCogbW91c2VFdmVudCk7CisKICAgICBOb2RlKiBtX3NoYWRvd1BhcmVudDsKLSAgICBGbG9h
dFBvaW50IG1faW5pdGlhbENsaWNrUG9pbnQ7ICAgICAgIC8vIGluaXRpYWwgY2xpY2sgcG9pbnQg
aW4gUmVuZGVyU2xpZGVyLWxvY2FsIGNvb3JkaW5hdGVzCi0gICAgaW50IG1faW5pdGlhbFBvc2l0
aW9uOwogICAgIGJvb2wgbV9pbkRyYWdNb2RlOwogfTsKIAogU2xpZGVyVGh1bWJFbGVtZW50OjpT
bGlkZXJUaHVtYkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBOb2RlKiBzaGFkb3dQYXJlbnQp
CiAgICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsIGRvY3VtZW50KQogICAgICwgbV9zaGFkb3dQ
YXJlbnQoc2hhZG93UGFyZW50KQotICAgICwgbV9pbml0aWFsUG9zaXRpb24oMCkKICAgICAsIG1f
aW5EcmFnTW9kZShmYWxzZSkKIHsKIH0KIAogdm9pZCBTbGlkZXJUaHVtYkVsZW1lbnQ6OmRlZmF1
bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogeworICAgIGlmICghZXZlbnQtPmlzTW91c2VF
dmVudCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBNb3VzZUV2ZW50KiBtb3VzZUV2ZW50ID0g
c3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KTsKKyAgICBib29sIGlzTGVmdEJ1dHRvbiA9
IG1vdXNlRXZlbnQtPmJ1dHRvbigpID09IExlZnRCdXR0b247CiAgICAgY29uc3QgQXRvbWljU3Ry
aW5nJiBldmVudFR5cGUgPSBldmVudC0+dHlwZSgpOwotICAgIGlmIChldmVudFR5cGUgPT0gZXZl
bnROYW1lcygpLm1vdXNlZG93bkV2ZW50ICYmIGV2ZW50LT5pc01vdXNlRXZlbnQoKSAmJiBzdGF0
aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpLT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7Ci0g
ICAgICAgIE1vdXNlRXZlbnQqIG1vdXNlRXZlbnQgPSBzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4o
ZXZlbnQpOwotICAgICAgICBSZW5kZXJTbGlkZXIqIHNsaWRlcjsKLSAgICAgICAgaWYgKGRvY3Vt
ZW50KCktPmZyYW1lKCkgJiYgcmVuZGVyZXIoKSAmJgotICAgICAgICAgICAgICAgIChzbGlkZXIg
PSBzdGF0aWNfY2FzdDxSZW5kZXJTbGlkZXIqPihyZW5kZXJlcigpLT5wYXJlbnQoKSkpICYmCi0g
ICAgICAgICAgICAgICAgc2xpZGVyLT5tb3VzZUV2ZW50SXNJblRodW1iKG1vdXNlRXZlbnQpKSB7
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIC8vIENhY2hlIHRoZSBpbml0aWFsIHBvaW50IHdo
ZXJlIHRoZSBtb3VzZSBkb3duIG9jY3VycmVkLCBpbiBzbGlkZXIgY29vcmRpbmF0ZXMKLSAgICAg
ICAgICAgIG1faW5pdGlhbENsaWNrUG9pbnQgPSBzbGlkZXItPmFic29sdXRlVG9Mb2NhbChtb3Vz
ZUV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCksIGZhbHNlLCB0cnVlKTsKLSAgICAgICAgICAgIC8v
IENhY2hlIHRoZSBpbml0aWFsIHBvc2l0aW9uIG9mIHRoZSB0aHVtYi4KLSAgICAgICAgICAgIG1f
aW5pdGlhbFBvc2l0aW9uID0gc2xpZGVyLT5jdXJyZW50UG9zaXRpb24oKTsKLSAgICAgICAgICAg
IG1faW5EcmFnTW9kZSA9IHRydWU7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGRvY3VtZW50
KCktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5zZXRDYXB0dXJpbmdNb3VzZUV2ZW50c05vZGUo
bV9zaGFkb3dQYXJlbnQpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBldmVudC0+c2V0RGVm
YXVsdEhhbmRsZWQoKTsKLSAgICAgICAgICAgIHJldHVybjsKKworICAgIGlmIChldmVudFR5cGUg
PT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50ICYmIGlzTGVmdEJ1dHRvbikgeworICAgICAg
ICBpZiAoZG9jdW1lbnQoKS0+ZnJhbWUoKSAmJiByZW5kZXJlcigpKSB7CisgICAgICAgICAgICBi
b29sIHN1Y2Nlc3MgPSBzZXRTbGlkZXJWYWx1ZUZvck1vdXNlRG93bk9yTW92ZUV2ZW50KG1vdXNl
RXZlbnQpOworICAgICAgICAgICAgaWYgKHN1Y2Nlc3MpIHsKKyAgICAgICAgICAgICAgICBtX2lu
RHJhZ01vZGUgPSB0cnVlOworICAgICAgICAgICAgICAgIGRvY3VtZW50KCktPmZyYW1lKCktPmV2
ZW50SGFuZGxlcigpLT5zZXRDYXB0dXJpbmdNb3VzZUV2ZW50c05vZGUobV9zaGFkb3dQYXJlbnQp
OworICAgICAgICAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgIH0gZWxzZSBpZiAo
ZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5tb3VzZXVwRXZlbnQgJiYgZXZlbnQtPmlzTW91c2VF
dmVudCgpICYmIHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCktPmJ1dHRvbigpID09IExl
ZnRCdXR0b24pIHsKKyAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkubW91
c2V1cEV2ZW50ICYmIGlzTGVmdEJ1dHRvbikgewogICAgICAgICBpZiAobV9pbkRyYWdNb2RlKSB7
CiAgICAgICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS0+ZnJhbWUoKSkKICAg
ICAgICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPnNldENhcHR1cmluZ01vdXNlRXZl
bnRzTm9kZSgwKTsgICAgICAKQEAgLTE2OSwxNiArMTY2LDkgQEAgdm9pZCBTbGlkZXJUaHVtYkVs
ZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogICAgICAgICAgICAgZXZl
bnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
LSAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkubW91c2Vtb3ZlRXZlbnQg
JiYgZXZlbnQtPmlzTW91c2VFdmVudCgpKSB7CisgICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT0g
ZXZlbnROYW1lcygpLm1vdXNlbW92ZUV2ZW50KSB7CiAgICAgICAgIGlmIChtX2luRHJhZ01vZGUg
JiYgcmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT5wYXJlbnQoKSkgewotICAgICAgICAgICAgLy8g
TW92ZSB0aGUgc2xpZGVyCi0gICAgICAgICAgICBNb3VzZUV2ZW50KiBtb3VzZUV2ZW50ID0gc3Rh
dGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KTsKLSAgICAgICAgICAgIFJlbmRlclNsaWRlciog
c2xpZGVyID0gc3RhdGljX2Nhc3Q8UmVuZGVyU2xpZGVyKj4ocmVuZGVyZXIoKS0+cGFyZW50KCkp
OwotCi0gICAgICAgICAgICBGbG9hdFBvaW50IGN1clBvaW50ID0gc2xpZGVyLT5hYnNvbHV0ZVRv
TG9jYWwobW91c2VFdmVudC0+YWJzb2x1dGVMb2NhdGlvbigpLCBmYWxzZSwgdHJ1ZSk7Ci0gICAg
ICAgICAgICBJbnRQb2ludCBldmVudE9mZnNldChtX2luaXRpYWxQb3NpdGlvbiArIGN1clBvaW50
LngoKSAtIG1faW5pdGlhbENsaWNrUG9pbnQueCgpICsgcmVuZGVyQm94KCktPndpZHRoKCkgLyAy
LCAKLSAgICAgICAgICAgICAgICBtX2luaXRpYWxQb3NpdGlvbiArIGN1clBvaW50LnkoKSAtIG1f
aW5pdGlhbENsaWNrUG9pbnQueSgpICsgcmVuZGVyQm94KCktPmhlaWdodCgpIC8gMik7Ci0gICAg
ICAgICAgICBzbGlkZXItPnNldFZhbHVlRm9yUG9zaXRpb24oc2xpZGVyLT5wb3NpdGlvbkZvck9m
ZnNldChldmVudE9mZnNldCkpOworICAgICAgICAgICAgc2V0U2xpZGVyVmFsdWVGb3JNb3VzZURv
d25Pck1vdmVFdmVudChtb3VzZUV2ZW50KTsKICAgICAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0
SGFuZGxlZCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xODcsNiArMTc3
LDE3IEBAIHZvaWQgU2xpZGVyVGh1bWJFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50
KiBldmVudCkKICAgICBIVE1MRGl2RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7
CiB9CiAKK2Jvb2wgU2xpZGVyVGh1bWJFbGVtZW50OjpzZXRTbGlkZXJWYWx1ZUZvck1vdXNlRG93
bk9yTW92ZUV2ZW50KE1vdXNlRXZlbnQqIG1vdXNlRXZlbnQpCit7CisgICAgUmVuZGVyU2xpZGVy
KiBzbGlkZXIgPSBzdGF0aWNfY2FzdDxSZW5kZXJTbGlkZXIqPihyZW5kZXJlcigpLT5wYXJlbnQo
KSk7CisgICAgaWYgKCFzbGlkZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBGbG9hdFBv
aW50IGN1clBvaW50ID0gc2xpZGVyLT5hYnNvbHV0ZVRvTG9jYWwobW91c2VFdmVudC0+YWJzb2x1
dGVMb2NhdGlvbigpLCBmYWxzZSwgdHJ1ZSk7CisgICAgSW50UG9pbnQgZXZlbnRPZmZzZXQoY3Vy
UG9pbnQueCgpIC0gcmVuZGVyQm94KCktPndpZHRoKCkgLyAyLCBjdXJQb2ludC55KCkgLSByZW5k
ZXJCb3goKS0+aGVpZ2h0KCkgLyAyKTsKKyAgICBzbGlkZXItPnNldFZhbHVlRm9yUG9zaXRpb24o
c2xpZGVyLT5wb3NpdGlvbkZvck9mZnNldChldmVudE9mZnNldCkpOworICAgIHJldHVybiB0cnVl
OworfQorCiBSZW5kZXJTbGlkZXI6OlJlbmRlclNsaWRlcihIVE1MSW5wdXRFbGVtZW50KiBlbGVt
ZW50KQogICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCkKIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>31018</attachid>
            <date>2009-06-05 16:16:11 -0700</date>
            <delta_ts>2009-06-05 16:57:32 -0700</delta_ts>
            <desc>patch v2.</desc>
            <filename>patch-v2.patch</filename>
            <type>text/plain</type>
            <size>5790</size>
            <attacher name="Pierre d&apos;Herbemont">pdherbemont</attacher>
            
              <data encoding="base64">Y29tbWl0IDhmNzA4NjFjYzBhOWFiNDBkY2RjNTBjZDc1MTQxYWFlNjhhZjUzMGQKQXV0aG9yOiBQ
aWVycmUgZCdIZXJiZW1vbnQgPHBkaGVyYmVtb250QGFwcGxlLmNvbT4KRGF0ZTogICBGcmkgSnVu
IDUgMTU6NTU6NDQgMjAwOSAtMDcwMAoKICAgIE1ha2Ugc3VyZSBzbGlkaW5nIGJlaGF2ZXMgY29y
cmVjdGx5IChpZS4gZm9sbG93IHRoZSBtb3VzZSBldmVuIGFmdGVyIGEgbW91c2UgY2xpY2spLgog
ICAgCiAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYyMjkKCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDMy
ZDg2ZWIuLmNjNGIyYmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMDYtMDUgIFBpZXJyZSBkJ0hlcmJl
bW9udCAgPHBkaGVyYmVtb250QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHN1cmUgc2xpZGluZyBiZWhhdmVzIGNvcnJlY3Rs
eSAoaWUuIGZvbGxvdyB0aGUgbW91c2UgZXZlbiBhZnRlciBhIG1vdXNlIGNsaWNrKS4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYyMjkKKworICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2xp
ZGVyVGh1bWJFbGVtZW50OjpTbGlkZXJUaHVtYkVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
U2xpZGVyVGh1bWJFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlNsaWRlclRodW1iRWxlbWVudDo6c2V0U2xpZGVyVmFsdWVGb3JNb3VzZURvd25Pck1vdmVF
dmVudCk6CisKIDIwMDktMDYtMDQgIFBpZXJyZSBkJ0hlcmJlbW9udCAgPHBkaGVyYmVtb250QGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAgYi9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJTbGlkZXIuY3BwCmluZGV4IDYxMGEwNjAuLmNlY2VhNTYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyU2xpZGVyLmNwcApAQCAtMTI2LDQyICsxMjYsMzkgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGJvb2wgaXNTaGFkb3dOb2RlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1
YWwgTm9kZSogc2hhZG93UGFyZW50Tm9kZSgpIHsgcmV0dXJuIG1fc2hhZG93UGFyZW50OyB9CiAK
KyAgICBib29sIHNldFNsaWRlclZhbHVlRm9yTW91c2VEb3duT3JNb3ZlRXZlbnQoTW91c2VFdmVu
dCogbW91c2VFdmVudCk7CisKICAgICBOb2RlKiBtX3NoYWRvd1BhcmVudDsKLSAgICBGbG9hdFBv
aW50IG1faW5pdGlhbENsaWNrUG9pbnQ7ICAgICAgIC8vIGluaXRpYWwgY2xpY2sgcG9pbnQgaW4g
UmVuZGVyU2xpZGVyLWxvY2FsIGNvb3JkaW5hdGVzCi0gICAgaW50IG1faW5pdGlhbFBvc2l0aW9u
OwogICAgIGJvb2wgbV9pbkRyYWdNb2RlOwogfTsKIAogU2xpZGVyVGh1bWJFbGVtZW50OjpTbGlk
ZXJUaHVtYkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBOb2RlKiBzaGFkb3dQYXJlbnQpCiAg
ICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsIGRvY3VtZW50KQogICAgICwgbV9zaGFkb3dQYXJl
bnQoc2hhZG93UGFyZW50KQotICAgICwgbV9pbml0aWFsUG9zaXRpb24oMCkKICAgICAsIG1faW5E
cmFnTW9kZShmYWxzZSkKIHsKIH0KIAogdm9pZCBTbGlkZXJUaHVtYkVsZW1lbnQ6OmRlZmF1bHRF
dmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogeworICAgIGlmICghZXZlbnQtPmlzTW91c2VFdmVu
dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBNb3VzZUV2ZW50KiBtb3VzZUV2ZW50ID0gc3Rh
dGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KTsKKyAgICBib29sIGlzTGVmdEJ1dHRvbiA9IG1v
dXNlRXZlbnQtPmJ1dHRvbigpID09IExlZnRCdXR0b247CiAgICAgY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUgPSBldmVudC0+dHlwZSgpOwotICAgIGlmIChldmVudFR5cGUgPT0gZXZlbnRO
YW1lcygpLm1vdXNlZG93bkV2ZW50ICYmIGV2ZW50LT5pc01vdXNlRXZlbnQoKSAmJiBzdGF0aWNf
Y2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpLT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7Ci0gICAg
ICAgIE1vdXNlRXZlbnQqIG1vdXNlRXZlbnQgPSBzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZl
bnQpOwotICAgICAgICBSZW5kZXJTbGlkZXIqIHNsaWRlcjsKLSAgICAgICAgaWYgKGRvY3VtZW50
KCktPmZyYW1lKCkgJiYgcmVuZGVyZXIoKSAmJgotICAgICAgICAgICAgICAgIChzbGlkZXIgPSBz
dGF0aWNfY2FzdDxSZW5kZXJTbGlkZXIqPihyZW5kZXJlcigpLT5wYXJlbnQoKSkpICYmCi0gICAg
ICAgICAgICAgICAgc2xpZGVyLT5tb3VzZUV2ZW50SXNJblRodW1iKG1vdXNlRXZlbnQpKSB7Ci0g
ICAgICAgICAgICAKLSAgICAgICAgICAgIC8vIENhY2hlIHRoZSBpbml0aWFsIHBvaW50IHdoZXJl
IHRoZSBtb3VzZSBkb3duIG9jY3VycmVkLCBpbiBzbGlkZXIgY29vcmRpbmF0ZXMKLSAgICAgICAg
ICAgIG1faW5pdGlhbENsaWNrUG9pbnQgPSBzbGlkZXItPmFic29sdXRlVG9Mb2NhbChtb3VzZUV2
ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCksIGZhbHNlLCB0cnVlKTsKLSAgICAgICAgICAgIC8vIENh
Y2hlIHRoZSBpbml0aWFsIHBvc2l0aW9uIG9mIHRoZSB0aHVtYi4KLSAgICAgICAgICAgIG1faW5p
dGlhbFBvc2l0aW9uID0gc2xpZGVyLT5jdXJyZW50UG9zaXRpb24oKTsKLSAgICAgICAgICAgIG1f
aW5EcmFnTW9kZSA9IHRydWU7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGRvY3VtZW50KCkt
PmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5zZXRDYXB0dXJpbmdNb3VzZUV2ZW50c05vZGUobV9z
aGFkb3dQYXJlbnQpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBldmVudC0+c2V0RGVmYXVs
dEhhbmRsZWQoKTsKLSAgICAgICAgICAgIHJldHVybjsKKworICAgIGlmIChldmVudFR5cGUgPT0g
ZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50ICYmIGlzTGVmdEJ1dHRvbikgeworICAgICAgICBp
ZiAoZG9jdW1lbnQoKS0+ZnJhbWUoKSAmJiByZW5kZXJlcigpKSB7CisgICAgICAgICAgICBib29s
IHN1Y2Nlc3MgPSBzZXRTbGlkZXJWYWx1ZUZvck1vdXNlRG93bk9yTW92ZUV2ZW50KG1vdXNlRXZl
bnQpOworICAgICAgICAgICAgaWYgKHN1Y2Nlc3MpIHsKKyAgICAgICAgICAgICAgICBtX2luRHJh
Z01vZGUgPSB0cnVlOworICAgICAgICAgICAgICAgIGRvY3VtZW50KCktPmZyYW1lKCktPmV2ZW50
SGFuZGxlcigpLT5zZXRDYXB0dXJpbmdNb3VzZUV2ZW50c05vZGUobV9zaGFkb3dQYXJlbnQpOwor
ICAgICAgICAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgIH0gZWxzZSBpZiAoZXZl
bnRUeXBlID09IGV2ZW50TmFtZXMoKS5tb3VzZXVwRXZlbnQgJiYgZXZlbnQtPmlzTW91c2VFdmVu
dCgpICYmIHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCktPmJ1dHRvbigpID09IExlZnRC
dXR0b24pIHsKKyAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkubW91c2V1
cEV2ZW50ICYmIGlzTGVmdEJ1dHRvbikgewogICAgICAgICBpZiAobV9pbkRyYWdNb2RlKSB7CiAg
ICAgICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS0+ZnJhbWUoKSkKICAgICAg
ICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPnNldENhcHR1cmluZ01vdXNlRXZlbnRz
Tm9kZSgwKTsgICAgICAKQEAgLTE2OSwxNiArMTY2LDkgQEAgdm9pZCBTbGlkZXJUaHVtYkVsZW1l
bnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogICAgICAgICAgICAgZXZlbnQt
PnNldERlZmF1bHRIYW5kbGVkKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAg
ICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkubW91c2Vtb3ZlRXZlbnQgJiYg
ZXZlbnQtPmlzTW91c2VFdmVudCgpKSB7CisgICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZl
bnROYW1lcygpLm1vdXNlbW92ZUV2ZW50KSB7CiAgICAgICAgIGlmIChtX2luRHJhZ01vZGUgJiYg
cmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT5wYXJlbnQoKSkgewotICAgICAgICAgICAgLy8gTW92
ZSB0aGUgc2xpZGVyCi0gICAgICAgICAgICBNb3VzZUV2ZW50KiBtb3VzZUV2ZW50ID0gc3RhdGlj
X2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KTsKLSAgICAgICAgICAgIFJlbmRlclNsaWRlciogc2xp
ZGVyID0gc3RhdGljX2Nhc3Q8UmVuZGVyU2xpZGVyKj4ocmVuZGVyZXIoKS0+cGFyZW50KCkpOwot
Ci0gICAgICAgICAgICBGbG9hdFBvaW50IGN1clBvaW50ID0gc2xpZGVyLT5hYnNvbHV0ZVRvTG9j
YWwobW91c2VFdmVudC0+YWJzb2x1dGVMb2NhdGlvbigpLCBmYWxzZSwgdHJ1ZSk7Ci0gICAgICAg
ICAgICBJbnRQb2ludCBldmVudE9mZnNldChtX2luaXRpYWxQb3NpdGlvbiArIGN1clBvaW50Lngo
KSAtIG1faW5pdGlhbENsaWNrUG9pbnQueCgpICsgcmVuZGVyQm94KCktPndpZHRoKCkgLyAyLCAK
LSAgICAgICAgICAgICAgICBtX2luaXRpYWxQb3NpdGlvbiArIGN1clBvaW50LnkoKSAtIG1faW5p
dGlhbENsaWNrUG9pbnQueSgpICsgcmVuZGVyQm94KCktPmhlaWdodCgpIC8gMik7Ci0gICAgICAg
ICAgICBzbGlkZXItPnNldFZhbHVlRm9yUG9zaXRpb24oc2xpZGVyLT5wb3NpdGlvbkZvck9mZnNl
dChldmVudE9mZnNldCkpOworICAgICAgICAgICAgc2V0U2xpZGVyVmFsdWVGb3JNb3VzZURvd25P
ck1vdmVFdmVudChtb3VzZUV2ZW50KTsKICAgICAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFu
ZGxlZCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xODcsNiArMTc3LDE3
IEBAIHZvaWQgU2xpZGVyVGh1bWJFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBl
dmVudCkKICAgICBIVE1MRGl2RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CiB9
CiAKK2Jvb2wgU2xpZGVyVGh1bWJFbGVtZW50OjpzZXRTbGlkZXJWYWx1ZUZvck1vdXNlRG93bk9y
TW92ZUV2ZW50KE1vdXNlRXZlbnQqIG1vdXNlRXZlbnQpCit7CisgICAgUmVuZGVyU2xpZGVyKiBz
bGlkZXIgPSBzdGF0aWNfY2FzdDxSZW5kZXJTbGlkZXIqPihyZW5kZXJlcigpLT5wYXJlbnQoKSk7
CisgICAgaWYgKCFzbGlkZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBGbG9hdFBvaW50
IGN1clBvaW50ID0gc2xpZGVyLT5hYnNvbHV0ZVRvTG9jYWwobW91c2VFdmVudC0+YWJzb2x1dGVM
b2NhdGlvbigpLCBmYWxzZSwgdHJ1ZSk7CisgICAgSW50UG9pbnQgZXZlbnRPZmZzZXQoY3VyUG9p
bnQueCgpIC0gcmVuZGVyQm94KCktPndpZHRoKCkgLyAyLCBjdXJQb2ludC55KCkgLSByZW5kZXJC
b3goKS0+aGVpZ2h0KCkgLyAyKTsKKyAgICBzbGlkZXItPnNldFZhbHVlRm9yUG9zaXRpb24oc2xp
ZGVyLT5wb3NpdGlvbkZvck9mZnNldChldmVudE9mZnNldCkpOworICAgIHJldHVybiB0cnVlOwor
fQorCiBSZW5kZXJTbGlkZXI6OlJlbmRlclNsaWRlcihIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50
KQogICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCkKIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32494</attachid>
            <date>2009-07-08 18:02:03 -0700</date>
            <delta_ts>2009-07-08 20:56:05 -0700</delta_ts>
            <desc>patch v3.</desc>
            <filename>patch-v1.diff</filename>
            <type>text/plain</type>
            <size>12571</size>
            <attacher name="Pierre d&apos;Herbemont">pdherbemont</attacher>
            
              <data encoding="base64">Y29tbWl0IGNhYmVmZWIxOGUyYjQ1MDk5YWU5NjJhMGU1ZjQ5OGExMWU0NzE2MTcKQXV0aG9yOiBQ
aWVycmUgZCdIZXJiZW1vbnQgPHBkaGVyYmVtb250QGFwcGxlLmNvbT4KRGF0ZTogICBXZWQgSnVs
IDggMTg6MDE6MjQgMjAwOSAtMDcwMAoKICAgIFdlYkNvcmU6CiAgICAKICAgIDIwMDktMDctMDgg
IFBpZXJyZSBkJ0hlcmJlbW9udCAgPHBkaGVyYmVtb250QGFwcGxlLmNvbT4KICAgIAogICAgICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KICAgIAogICAgICAgICAgICBNYWtlIHN1
cmUgd2UgY2FuIGNsaWNrIG91dHNpZGUgdGhlIHNsaWRlciB0aHVtYiBhbmQgc3RhcnQgZHJhZ2dp
bmcuCiAgICAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
NjIyOQogICAgCiAgICAgICAgICAgIFByZXZpb3VzbHkgd2Ugd2VyZSBhc3N1bWluZyB0aGF0IGlm
IHRoZSB0aHVtYiBoYXNuJ3QgYmVlbiBjbGlja2VkLCB3ZQogICAgICAgICAgICB3b3VsZG4ndCBp
c3N1ZSBhbnkgdmFsdWUgY2hhbmdlIHVwb24gZHJhZ2dpbmcuCiAgICAKICAgICAgICAgICAgV2Ug
bmVlZCB0byBoYW5kbGUgdGhlIHR3byBkaWZmZXJlbnQgY2FzZXM6CiAgICAgICAgICAgIC0gQ2xp
Y2tlZCBpbiB0aGUgdGh1bWIsIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSBjdXJzb3IgaXMgYWx3
YXlzIHBvaW50aW5nCiAgICAgICAgICAgIHRoZSBzYW1lIHNsaWRlciB0aHVtYiBwb2ludC4KICAg
ICAgICAgICAgLSBDbGlja2VkIG91dHNpZGUsIHRoZSBjdXJzb3Igc2hvdWxkIGFsd2F5cyBiZSBw
b2ludGluZyB0byB0aGUgY2VudGVyIG9mCiAgICAgICAgICAgIHRoZSB0aHVtYi4KICAgIAogICAg
ICAgICAgICBGb3Igc2ltcGxpY2l0eSwgd2UgZG9uJ3QgcmVtZW1iZXIgdGhlIG9yaWdpbmFsIHBv
aW50IG9mIHRoZSBtb3VzZSBkb3duLAogICAgICAgICAgICBidXQgYSB2ZWN0b3IgYmV0d2VlbiB0
aGF0IHBvaW50IGFuZCB0aGUgdGh1bWIuCiAgICAKICAgICAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyU2xpZGVyLmNwcDoKICAgICAgICAgICAgKFdlYkNvcmU6OlNsaWRlclRodW1iRWxlbWVudDo6
U2xpZGVyVGh1bWJFbGVtZW50KToKICAgICAgICAgICAgKFdlYkNvcmU6OlNsaWRlclRodW1iRWxl
bWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6CiAgICAgICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
bGlkZXI6Om1vdXNlRXZlbnRWZWN0b3JUb1RodW1iKTogVXRpbGl0eSBmdW5jdGlvbi4KICAgICAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmg6CiAgICAKICAgIExheW91dFRlc3RzOgog
ICAgCiAgICAyMDA5LTA3LTA4ICBQaWVycmUgZCdIZXJiZW1vbnQgIDxwZGhlcmJlbW9udEBhcHBs
ZS5jb20+CiAgICAKICAgICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAgICAK
ICAgICAgICAgICAgTWFrZSBzdXJlIHdlIGNhbiBjbGljayBvdXRzaWRlIHRoZSBzbGlkZXIgdGh1
bWIgYW5kIHN0YXJ0IGRyYWdnaW5nLgogICAgICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjYyMjkKICAgIAogICAgICAgICAgICBBbG9uZyB3aXRoIHRoZSBl
dmVudHMgY2hhaW4sIHRlc3QgdGhhdCB0aGUgc2xpZGVyIHZhbHVlIGFyZSBjb3JyZWN0LAogICAg
ICAgICAgICBhbmQgdGhhdCBjbGlja2luZyBvdXRzaWRlIHRoZSBzbGlkZXIgYW5kIGRyYWdnaW5n
IHdvcmtzIGFzIGV4cGVjdGVkLgogICAgCiAgICAgICAgICAgICogZmFzdC9mb3Jtcy9zbGlkZXIt
bW91c2UtZXZlbnRzLWV4cGVjdGVkLnR4dDoKICAgICAgICAgICAgKiBmYXN0L2Zvcm1zL3NsaWRl
ci1tb3VzZS1ldmVudHMuaHRtbDoKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggM2ZiY2YyYy4uNTU4M2E5NSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSw1ICsxLDE4IEBACiAyMDA5LTA3LTA4ICBQaWVycmUgZCdIZXJiZW1vbnQgIDxwZGhlcmJlbW9u
dEBhcHBsZS5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTWFrZSBzdXJlIHdlIGNhbiBjbGljayBvdXRzaWRlIHRoZSBzbGlkZXIgdGh1bWIgYW5k
IHN0YXJ0IGRyYWdnaW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjYyMjkKKworICAgICAgICBBbG9uZyB3aXRoIHRoZSBldmVudHMgY2hhaW4sIHRl
c3QgdGhhdCB0aGUgc2xpZGVyIHZhbHVlIGFyZSBjb3JyZWN0LAorICAgICAgICBhbmQgdGhhdCBj
bGlja2luZyBvdXRzaWRlIHRoZSBzbGlkZXIgYW5kIGRyYWdnaW5nIHdvcmtzIGFzIGV4cGVjdGVk
LgorCisgICAgICAgICogZmFzdC9mb3Jtcy9zbGlkZXItbW91c2UtZXZlbnRzLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3NsaWRlci1tb3VzZS1ldmVudHMuaHRtbDoKKworMjAw
OS0wNy0wOCAgUGllcnJlIGQnSGVyYmVtb250ICA8cGRoZXJiZW1vbnRAYXBwbGUuY29tPgorCiAg
ICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IFNpbW9uIEZyYXNlci4KIAogICAgICAgICBGaXggdGhl
IG1lZGlhL2NvbnRyb2xzLWFmdGVyLXJlbG9hZC5odG1sIGFuZCBtZWRpYS9jb250cm9scy1zdHls
aW5nLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2xpZGVyLW1vdXNl
LWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NsaWRlci1tb3Vz
ZS1ldmVudHMtZXhwZWN0ZWQudHh0CmluZGV4IGViMjA2MzAuLmQzMDgwODYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2xpZGVyLW1vdXNlLWV2ZW50cy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zbGlkZXItbW91c2UtZXZlbnRzLWV4cGVjdGVk
LnR4dApAQCAtMSw4ICsxLDE4IEBACi1UaGlzIHRlc3RzIHRoYXQgc2xpZGVyIGNvbnRyb2xzIGdl
dCBtb3VzZWRvd24sIG1vdXNlbW92ZSwgaW5wdXQsIGFuZCBtb3VzZXVwIGV2ZW50cy4KK1RoaXMg
dGVzdHMgdGhhdCBzbGlkZXIgY29udHJvbHMgZ2V0IG1vdXNlZG93biwgbW91c2Vtb3ZlLCBpbnB1
dCwgYW5kIG1vdXNldXAgZXZlbnRzIGFuZCBwcm9wZXJseSBzZXQgaXRzIHZhbHVlLgogCiBtb3Vz
ZW1vdmUKIG1vdXNlZG93bgorMAogbW91c2Vtb3ZlCiBpbnB1dAogbW91c2V1cAorMzgKK21vdXNl
bW92ZQorbW91c2Vkb3duCitpbnB1dAorMworbW91c2Vtb3ZlCitpbnB1dAorbW91c2V1cAorMjAK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zbGlkZXItbW91c2UtZXZlbnRz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NsaWRlci1tb3VzZS1ldmVudHMuaHRtbApp
bmRleCBhOTNlODYwLi5iZmZhZDcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3NsaWRlci1tb3VzZS1ldmVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Ns
aWRlci1tb3VzZS1ldmVudHMuaHRtbApAQCAtMTMsMTQgKzEzLDI0IEBACiAgICAgICAgICAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgICAgICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc2xpZGVyLm9mZnNldExlZnQgKyA3LCBzbGlk
ZXIub2Zmc2V0VG9wICsgNyk7CiAgICAgICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
RG93bigpOworICAgICAgICAgICAgICAgICAgICBsb2coc2xpZGVyLnZhbHVlKQogICAgICAgICAg
ICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzbGlkZXIub2Zmc2V0TGVmdCArIDUw
LCBzbGlkZXIub2Zmc2V0VG9wICsgNTApOwogICAgICAgICAgICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVVwKCk7CisgICAgICAgICAgICAgICAgICAgIGxvZyhzbGlkZXIudmFsdWUpCisKKyAg
ICAgICAgICAgICAgICAgICAgLy8gVHJ5IHRvIGNsaWNrIG91dHNpZGUgdGhlIHNsaWRlciB0aHVt
YiBhbmQgZHJhZy4KKyAgICAgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8o
c2xpZGVyLm9mZnNldExlZnQgKyAxMCwgc2xpZGVyLm9mZnNldFRvcCArIDEwKTsKKyAgICAgICAg
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgICAgICAgICAgICAg
IGxvZyhzbGlkZXIudmFsdWUpCisgICAgICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
TW92ZVRvKHNsaWRlci5vZmZzZXRMZWZ0ICsgMzAsIHNsaWRlci5vZmZzZXRUb3AgKyAzMCk7Cisg
ICAgICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICAgICAgICAgICAg
ICAgICAgbG9nKHNsaWRlci52YWx1ZSkKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9
CiAgICAgICAgIDwvc2NyaXB0PgogICAgIDwvaGVhZD4KICAgICA8Ym9keSBvbmxvYWQ9InRlc3Qo
KSI+Ci0gICAgICAgIFRoaXMgdGVzdHMgdGhhdCBzbGlkZXIgY29udHJvbHMgZ2V0IG1vdXNlZG93
biwgbW91c2Vtb3ZlLCBpbnB1dCwgYW5kIG1vdXNldXAgZXZlbnRzLjxicj4KKyAgICAgICAgVGhp
cyB0ZXN0cyB0aGF0IHNsaWRlciBjb250cm9scyBnZXQgbW91c2Vkb3duLCBtb3VzZW1vdmUsIGlu
cHV0LCBhbmQgbW91c2V1cCBldmVudHMgYW5kIHByb3Blcmx5IHNldCBpdHMgdmFsdWUuPGJyPgog
ICAgICAgICA8aW5wdXQgdHlwZT0icmFuZ2UiIGlkPSJzbGlkZXIiIG9ubW91c2Vkb3duPSJsb2co
J21vdXNlZG93bicpIiBvbm1vdXNldXA9ImxvZygnbW91c2V1cCcpIiBvbm1vdXNlbW92ZT0ibG9n
KCdtb3VzZW1vdmUnKSIgb25pbnB1dD0ibG9nKCdpbnB1dCcpIiB2YWx1ZT0wPgogICAgICAgICA8
ZGl2IGlkPSJyZXMiPjwvZGl2PgogICAgIDwvYm9keT4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDVlMTcwYi4uN2JmYjgzYyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTIsNiAr
MiwzMSBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgogCisgICAgICAg
IE1ha2Ugc3VyZSB3ZSBjYW4gY2xpY2sgb3V0c2lkZSB0aGUgc2xpZGVyIHRodW1iIGFuZCBzdGFy
dCBkcmFnZ2luZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI2MjI5CisKKyAgICAgICAgUHJldmlvdXNseSB3ZSB3ZXJlIGFzc3VtaW5nIHRoYXQgaWYg
dGhlIHRodW1iIGhhc24ndCBiZWVuIGNsaWNrZWQsIHdlCisgICAgICAgIHdvdWxkbid0IGlzc3Vl
IGFueSB2YWx1ZSBjaGFuZ2UgdXBvbiBkcmFnZ2luZy4KKworICAgICAgICBXZSBuZWVkIHRvIGhh
bmRsZSB0aGUgdHdvIGRpZmZlcmVudCBjYXNlczoKKyAgICAgICAgLSBDbGlja2VkIGluIHRoZSB0
aHVtYiwgd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhlIGN1cnNvciBpcyBhbHdheXMgcG9pbnRpbmcK
KyAgICAgICAgdGhlIHNhbWUgc2xpZGVyIHRodW1iIHBvaW50LgorICAgICAgICAtIENsaWNrZWQg
b3V0c2lkZSwgdGhlIGN1cnNvciBzaG91bGQgYWx3YXlzIGJlIHBvaW50aW5nIHRvIHRoZSBjZW50
ZXIgb2YKKyAgICAgICAgdGhlIHRodW1iLgorCisgICAgICAgIEZvciBzaW1wbGljaXR5LCB3ZSBk
b24ndCByZW1lbWJlciB0aGUgb3JpZ2luYWwgcG9pbnQgb2YgdGhlIG1vdXNlIGRvd24sCisgICAg
ICAgIGJ1dCBhIHZlY3RvciBiZXR3ZWVuIHRoYXQgcG9pbnQgYW5kIHRoZSB0aHVtYi4KKworICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2xp
ZGVyVGh1bWJFbGVtZW50OjpTbGlkZXJUaHVtYkVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
U2xpZGVyVGh1bWJFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclNsaWRlcjo6bW91c2VFdmVudFZlY3RvclRvVGh1bWIpOiBVdGlsaXR5IGZ1bmN0
aW9uLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbGlkZXIuaDoKKworMjAwOS0wNy0wOCAg
UGllcnJlIGQnSGVyYmVtb250ICA8cGRoZXJiZW1vbnRAYXBwbGUuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNzEwMAogICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA0MjYy
MT4KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcCBiL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKaW5kZXggNjEwYTA2MC4uOWUwMGQ2OCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAorKysgYi9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCkBAIC0xMjcsNDEgKzEyNyw1MiBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgTm9kZSogc2hhZG93UGFyZW50Tm9kZSgpIHsgcmV0dXJuIG1fc2hh
ZG93UGFyZW50OyB9CiAKICAgICBOb2RlKiBtX3NoYWRvd1BhcmVudDsKLSAgICBGbG9hdFBvaW50
IG1faW5pdGlhbENsaWNrUG9pbnQ7ICAgICAgIC8vIGluaXRpYWwgY2xpY2sgcG9pbnQgaW4gUmVu
ZGVyU2xpZGVyLWxvY2FsIGNvb3JkaW5hdGVzCi0gICAgaW50IG1faW5pdGlhbFBvc2l0aW9uOwog
ICAgIGJvb2wgbV9pbkRyYWdNb2RlOworICAgIEZsb2F0UG9pbnQgbV9tb3VzZURyYWdWZWN0b3JU
b1RodW1iOwogfTsKIAogU2xpZGVyVGh1bWJFbGVtZW50OjpTbGlkZXJUaHVtYkVsZW1lbnQoRG9j
dW1lbnQqIGRvY3VtZW50LCBOb2RlKiBzaGFkb3dQYXJlbnQpCiAgICAgOiBIVE1MRGl2RWxlbWVu
dChkaXZUYWcsIGRvY3VtZW50KQogICAgICwgbV9zaGFkb3dQYXJlbnQoc2hhZG93UGFyZW50KQot
ICAgICwgbV9pbml0aWFsUG9zaXRpb24oMCkKICAgICAsIG1faW5EcmFnTW9kZShmYWxzZSkKKyAg
ICAsIG1fbW91c2VEcmFnVmVjdG9yVG9UaHVtYigwLCAwKQogewogfQogCiB2b2lkIFNsaWRlclRo
dW1iRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiB7CisgICAgaWYg
KCFldmVudC0+aXNNb3VzZUV2ZW50KCkpIHsKKyAgICAgICAgSFRNTERpdkVsZW1lbnQ6OmRlZmF1
bHRFdmVudEhhbmRsZXIoZXZlbnQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgTW91
c2VFdmVudCogbW91c2VFdmVudCA9IHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCk7Cisg
ICAgYm9vbCBpc0xlZnRCdXR0b24gPSBtb3VzZUV2ZW50LT5idXR0b24oKSA9PSBMZWZ0QnV0dG9u
OwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlID0gZXZlbnQtPnR5cGUoKTsKLSAg
ICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCAmJiBldmVudC0+
aXNNb3VzZUV2ZW50KCkgJiYgc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KS0+YnV0dG9u
KCkgPT0gTGVmdEJ1dHRvbikgewotICAgICAgICBNb3VzZUV2ZW50KiBtb3VzZUV2ZW50ID0gc3Rh
dGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KTsKLSAgICAgICAgUmVuZGVyU2xpZGVyKiBzbGlk
ZXI7Ci0gICAgICAgIGlmIChkb2N1bWVudCgpLT5mcmFtZSgpICYmIHJlbmRlcmVyKCkgJiYKLSAg
ICAgICAgICAgICAgICAoc2xpZGVyID0gc3RhdGljX2Nhc3Q8UmVuZGVyU2xpZGVyKj4ocmVuZGVy
ZXIoKS0+cGFyZW50KCkpKSAmJgotICAgICAgICAgICAgICAgIHNsaWRlci0+bW91c2VFdmVudElz
SW5UaHVtYihtb3VzZUV2ZW50KSkgewotICAgICAgICAgICAgCi0gICAgICAgICAgICAvLyBDYWNo
ZSB0aGUgaW5pdGlhbCBwb2ludCB3aGVyZSB0aGUgbW91c2UgZG93biBvY2N1cnJlZCwgaW4gc2xp
ZGVyIGNvb3JkaW5hdGVzCi0gICAgICAgICAgICBtX2luaXRpYWxDbGlja1BvaW50ID0gc2xpZGVy
LT5hYnNvbHV0ZVRvTG9jYWwobW91c2VFdmVudC0+YWJzb2x1dGVMb2NhdGlvbigpLCBmYWxzZSwg
dHJ1ZSk7Ci0gICAgICAgICAgICAvLyBDYWNoZSB0aGUgaW5pdGlhbCBwb3NpdGlvbiBvZiB0aGUg
dGh1bWIuCi0gICAgICAgICAgICBtX2luaXRpYWxQb3NpdGlvbiA9IHNsaWRlci0+Y3VycmVudFBv
c2l0aW9uKCk7Ci0gICAgICAgICAgICBtX2luRHJhZ01vZGUgPSB0cnVlOwotICAgICAgICAgICAg
Ci0gICAgICAgICAgICBkb2N1bWVudCgpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+c2V0Q2Fw
dHVyaW5nTW91c2VFdmVudHNOb2RlKG1fc2hhZG93UGFyZW50KTsKLSAgICAgICAgICAgIAotICAg
ICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Ci0gICAgICAgICAgICByZXR1cm47
CisKKyAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCAmJiBp
c0xlZnRCdXR0b24pIHsKKyAgICAgICAgaWYgKGRvY3VtZW50KCktPmZyYW1lKCkgJiYgcmVuZGVy
ZXIoKSkgeworICAgICAgICAgICAgUmVuZGVyU2xpZGVyKiBzbGlkZXIgPSBzdGF0aWNfY2FzdDxS
ZW5kZXJTbGlkZXIqPihyZW5kZXJlcigpLT5wYXJlbnQoKSk7CisgICAgICAgICAgICBpZiAoc2xp
ZGVyKSB7CisgICAgICAgICAgICAgICAgaWYgKHNsaWRlci0+bW91c2VFdmVudElzSW5UaHVtYiht
b3VzZUV2ZW50KSkgeworICAgICAgICAgICAgICAgICAgICAvLyBXZSBzZWxlY3RlZCB0aGUgdGh1
bWIsIHdlIHdhbnQgdGhlIGN1cnNvciB0byBhbHdheXMgc3RheSBhdAorICAgICAgICAgICAgICAg
ICAgICAvLyB0aGUgc2FtZSBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgdGh1bWIuCisgICAgICAg
ICAgICAgICAgICAgIG1fbW91c2VEcmFnVmVjdG9yVG9UaHVtYiA9IHNsaWRlci0+bW91c2VFdmVu
dFZlY3RvclRvVGh1bWIobW91c2VFdmVudCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBXZSBhcmUgb3V0c2lkZSB0aGUg
dGh1bWIsIG1vdmUgdGhlIHRodW1iIHRvIHRoZSBwb2ludCB3ZXJlCisgICAgICAgICAgICAgICAg
ICAgIC8vIHdlIGNsaWNrZWQuIFdlJ2xsIGJlIGV4YWN0bHkgYXQgdGhlIGNlbnRlciBvZiB0aGUg
dGh1bWIuCisgICAgICAgICAgICAgICAgICAgIG1fbW91c2VEcmFnVmVjdG9yVG9UaHVtYi5zZXRY
KDApOworICAgICAgICAgICAgICAgICAgICBtX21vdXNlRHJhZ1ZlY3RvclRvVGh1bWIuc2V0WSgw
KTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBtX2luRHJhZ01vZGUgPSB0
cnVlOworICAgICAgICAgICAgICAgIGRvY3VtZW50KCktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigp
LT5zZXRDYXB0dXJpbmdNb3VzZUV2ZW50c05vZGUobV9zaGFkb3dQYXJlbnQpOworICAgICAgICAg
ICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09
IGV2ZW50TmFtZXMoKS5tb3VzZXVwRXZlbnQgJiYgZXZlbnQtPmlzTW91c2VFdmVudCgpICYmIHN0
YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCktPmJ1dHRvbigpID09IExlZnRCdXR0b24pIHsK
KyAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkubW91c2V1cEV2ZW50ICYm
IGlzTGVmdEJ1dHRvbikgewogICAgICAgICBpZiAobV9pbkRyYWdNb2RlKSB7CiAgICAgICAgICAg
ICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS0+ZnJhbWUoKSkKICAgICAgICAgICAgICAg
ICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPnNldENhcHR1cmluZ01vdXNlRXZlbnRzTm9kZSgwKTsg
ICAgICAKQEAgLTE2OSwxOCArMTgwLDE2IEBAIHZvaWQgU2xpZGVyVGh1bWJFbGVtZW50OjpkZWZh
dWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAgICAgICAgICAgIGV2ZW50LT5zZXREZWZh
dWx0SGFuZGxlZCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgfSBlbHNl
IGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLm1vdXNlbW92ZUV2ZW50ICYmIGV2ZW50LT5p
c01vdXNlRXZlbnQoKSkgeworICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMo
KS5tb3VzZW1vdmVFdmVudCkgewogICAgICAgICBpZiAobV9pbkRyYWdNb2RlICYmIHJlbmRlcmVy
KCkgJiYgcmVuZGVyZXIoKS0+cGFyZW50KCkpIHsKLSAgICAgICAgICAgIC8vIE1vdmUgdGhlIHNs
aWRlcgotICAgICAgICAgICAgTW91c2VFdmVudCogbW91c2VFdmVudCA9IHN0YXRpY19jYXN0PE1v
dXNlRXZlbnQqPihldmVudCk7CiAgICAgICAgICAgICBSZW5kZXJTbGlkZXIqIHNsaWRlciA9IHN0
YXRpY19jYXN0PFJlbmRlclNsaWRlcio+KHJlbmRlcmVyKCktPnBhcmVudCgpKTsKLQotICAgICAg
ICAgICAgRmxvYXRQb2ludCBjdXJQb2ludCA9IHNsaWRlci0+YWJzb2x1dGVUb0xvY2FsKG1vdXNl
RXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwgZmFsc2UsIHRydWUpOwotICAgICAgICAgICAgSW50
UG9pbnQgZXZlbnRPZmZzZXQobV9pbml0aWFsUG9zaXRpb24gKyBjdXJQb2ludC54KCkgLSBtX2lu
aXRpYWxDbGlja1BvaW50LngoKSArIHJlbmRlckJveCgpLT53aWR0aCgpIC8gMiwgCi0gICAgICAg
ICAgICAgICAgbV9pbml0aWFsUG9zaXRpb24gKyBjdXJQb2ludC55KCkgLSBtX2luaXRpYWxDbGlj
a1BvaW50LnkoKSArIHJlbmRlckJveCgpLT5oZWlnaHQoKSAvIDIpOwotICAgICAgICAgICAgc2xp
ZGVyLT5zZXRWYWx1ZUZvclBvc2l0aW9uKHNsaWRlci0+cG9zaXRpb25Gb3JPZmZzZXQoZXZlbnRP
ZmZzZXQpKTsKLSAgICAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwotICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgaWYgKHNsaWRlcikgeworICAgICAgICAgICAgICAg
IEZsb2F0UG9pbnQgY3VyUG9pbnQgPSBzbGlkZXItPmFic29sdXRlVG9Mb2NhbChtb3VzZUV2ZW50
LT5hYnNvbHV0ZUxvY2F0aW9uKCksIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBJbnRQ
b2ludCBldmVudE9mZnNldChjdXJQb2ludC54KCkgKyBtX21vdXNlRHJhZ1ZlY3RvclRvVGh1bWIu
eCgpLCBjdXJQb2ludC55KCkgKyBtX21vdXNlRHJhZ1ZlY3RvclRvVGh1bWIueSgpKTsKKyAgICAg
ICAgICAgICAgICBzbGlkZXItPnNldFZhbHVlRm9yUG9zaXRpb24oc2xpZGVyLT5wb3NpdGlvbkZv
ck9mZnNldChldmVudE9mZnNldCkpOworICAgICAgICAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0
SGFuZGxlZCgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgIH0KIApAQCAtMzg3LDYgKzM5NiwxNyBAQCBib29sIFJlbmRlclNsaWRlcjo6bW91
c2VFdmVudElzSW5UaHVtYihNb3VzZUV2ZW50KiBldnQpCiAgICAgcmV0dXJuIHRodW1iQm91bmRz
LmNvbnRhaW5zKHJvdW5kZWRJbnRQb2ludChsb2NhbFBvaW50KSk7CiB9CiAKK0Zsb2F0UG9pbnQg
UmVuZGVyU2xpZGVyOjptb3VzZUV2ZW50VmVjdG9yVG9UaHVtYihNb3VzZUV2ZW50KiBldnQpCit7
CisgICAgQVNTRVJUIChtX3RodW1iICYmIG1fdGh1bWItPnJlbmRlcmVyKCkpOworICAgIEZsb2F0
UG9pbnQgbG9jYWxQb2ludCA9IG1fdGh1bWItPnJlbmRlckJveCgpLT5hYnNvbHV0ZVRvTG9jYWwo
ZXZ0LT5hYnNvbHV0ZUxvY2F0aW9uKCksIGZhbHNlLCB0cnVlKTsKKyAgICBJbnRSZWN0IHRodW1i
Qm91bmRzID0gbV90aHVtYi0+cmVuZGVyQm94KCktPmJvcmRlckJveFJlY3QoKTsKKyAgICBGbG9h
dFBvaW50IGRpc3RhbmNlOworICAgIGRpc3RhbmNlLnNldFgodGh1bWJCb3VuZHMueCgpICsgdGh1
bWJCb3VuZHMuaGVpZ2h0KCkgLyAyIC0gbG9jYWxQb2ludC54KCkpOworICAgIGRpc3RhbmNlLnNl
dFkodGh1bWJCb3VuZHMueSgpICsgdGh1bWJCb3VuZHMud2lkdGgoKSAvIDIgLSBsb2NhbFBvaW50
LnkoKSk7CisgICAgcmV0dXJuIGRpc3RhbmNlOworfQorCiB2b2lkIFJlbmRlclNsaWRlcjo6c2V0
VmFsdWVGb3JQb3NpdGlvbihpbnQgcG9zaXRpb24pCiB7CiAgICAgaWYgKCFtX3RodW1iIHx8ICFt
X3RodW1iLT5yZW5kZXJlcigpKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U2xpZGVyLmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaAppbmRleCBiOGI1NDdj
Li44MjBiMjVmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaAor
KysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaApAQCAtNDcsNiArNDcsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVu
dCgpOwogCiAgICAgICAgIGJvb2wgbW91c2VFdmVudElzSW5UaHVtYihNb3VzZUV2ZW50Kik7Cisg
ICAgICAgIEZsb2F0UG9pbnQgbW91c2VFdmVudFZlY3RvclRvVGh1bWIoTW91c2VFdmVudCopOwog
CiAgICAgICAgIHZvaWQgc2V0VmFsdWVGb3JQb3NpdGlvbihpbnQgcG9zaXRpb24pOwogICAgICAg
ICB2b2lkIHNldFBvc2l0aW9uRnJvbVZhbHVlKCk7Cg==
</data>
<flag name="review"
          id="16920"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32500</attachid>
            <date>2009-07-08 20:56:05 -0700</date>
            <delta_ts>2009-07-08 21:06:05 -0700</delta_ts>
            <desc>patch v4.</desc>
            <filename>patch-v2.diff</filename>
            <type>text/plain</type>
            <size>12476</size>
            <attacher name="Pierre d&apos;Herbemont">pdherbemont</attacher>
            
              <data encoding="base64">Y29tbWl0IDM3YTAyMTE1OWJkYjU3ZjE3ZDg0NzBlNmNmZTVmMzQ2MzA1ZWE1NDUKQXV0aG9yOiBQ
aWVycmUgZCdIZXJiZW1vbnQgPHBkaGVyYmVtb250QGFwcGxlLmNvbT4KRGF0ZTogICBXZWQgSnVs
IDggMTg6MDE6MjQgMjAwOSAtMDcwMAoKICAgIFdlYkNvcmU6CiAgICAKICAgIDIwMDktMDctMDgg
IFBpZXJyZSBkJ0hlcmJlbW9udCAgPHBkaGVyYmVtb250QGFwcGxlLmNvbT4KICAgIAogICAgICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KICAgIAogICAgICAgICAgICBNYWtlIHN1
cmUgd2UgY2FuIGNsaWNrIG91dHNpZGUgdGhlIHNsaWRlciB0aHVtYiBhbmQgc3RhcnQgZHJhZ2dp
bmcuCiAgICAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
NjIyOQogICAgCiAgICAgICAgICAgIFByZXZpb3VzbHkgd2Ugd2VyZSBhc3N1bWluZyB0aGF0IGlm
IHRoZSB0aHVtYiBoYXNuJ3QgYmVlbiBjbGlja2VkLCB3ZQogICAgICAgICAgICB3b3VsZG4ndCBp
c3N1ZSBhbnkgdmFsdWUgY2hhbmdlIHVwb24gZHJhZ2dpbmcuCiAgICAKICAgICAgICAgICAgV2Ug
bmVlZCB0byBoYW5kbGUgdGhlIHR3byBkaWZmZXJlbnQgY2FzZXM6CiAgICAgICAgICAgIC0gQ2xp
Y2tlZCBpbiB0aGUgdGh1bWIsIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSBjdXJzb3IgaXMgYWx3
YXlzIHBvaW50aW5nCiAgICAgICAgICAgIHRoZSBzYW1lIHNsaWRlciB0aHVtYiBwb2ludC4KICAg
ICAgICAgICAgLSBDbGlja2VkIG91dHNpZGUsIHRoZSBjdXJzb3Igc2hvdWxkIGFsd2F5cyBiZSBw
b2ludGluZyB0byB0aGUgY2VudGVyIG9mCiAgICAgICAgICAgIHRoZSB0aHVtYi4KICAgIAogICAg
ICAgICAgICBGb3Igc2ltcGxpY2l0eSwgd2UgZG9uJ3QgcmVtZW1iZXIgdGhlIG9yaWdpbmFsIHBv
aW50IG9mIHRoZSBtb3VzZSBkb3duLAogICAgICAgICAgICBidXQgYW4gb2Zmc2V0IGJldHdlZW4g
dGhhdCBwb2ludCBhbmQgdGhlIHRodW1iLgogICAgCiAgICAgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclNsaWRlci5jcHA6CiAgICAgICAgICAgIChXZWJDb3JlOjpTbGlkZXJUaHVtYkVsZW1lbnQ6
OlNsaWRlclRodW1iRWxlbWVudCk6CiAgICAgICAgICAgIChXZWJDb3JlOjpTbGlkZXJUaHVtYkVs
ZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgogICAgICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U2xpZGVyOjptb3VzZUV2ZW50T2Zmc2V0VG9UaHVtYik6IFV0aWxpdHkgZnVuY3Rpb24uCiAgICAg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNsaWRlci5oOgogICAgCiAgICBMYXlvdXRUZXN0czoK
ICAgIAogICAgMjAwOS0wNy0wOCAgUGllcnJlIGQnSGVyYmVtb250ICA8cGRoZXJiZW1vbnRAYXBw
bGUuY29tPgogICAgCiAgICAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgogICAg
CiAgICAgICAgICAgIE1ha2Ugc3VyZSB3ZSBjYW4gY2xpY2sgb3V0c2lkZSB0aGUgc2xpZGVyIHRo
dW1iIGFuZCBzdGFydCBkcmFnZ2luZy4KICAgICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI2MjI5CiAgICAKICAgICAgICAgICAgQWxvbmcgd2l0aCB0aGUg
ZXZlbnRzIGNoYWluLCB0ZXN0IHRoYXQgdGhlIHNsaWRlciB2YWx1ZSBhcmUgY29ycmVjdCwKICAg
ICAgICAgICAgYW5kIHRoYXQgY2xpY2tpbmcgb3V0c2lkZSB0aGUgc2xpZGVyIGFuZCBkcmFnZ2lu
ZyB3b3JrcyBhcyBleHBlY3RlZC4KICAgIAogICAgICAgICAgICAqIGZhc3QvZm9ybXMvc2xpZGVy
LW1vdXNlLWV2ZW50cy1leHBlY3RlZC50eHQ6CiAgICAgICAgICAgICogZmFzdC9mb3Jtcy9zbGlk
ZXItbW91c2UtZXZlbnRzLmh0bWw6CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg4YzZjMzEuLjg3Nzk0ZGYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsNSArMSwxOCBAQAogMjAwOS0wNy0wOCAgUGllcnJlIGQnSGVyYmVtb250ICA8cGRoZXJiZW1v
bnRAYXBwbGUuY29tPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE1ha2Ugc3VyZSB3ZSBjYW4gY2xpY2sgb3V0c2lkZSB0aGUgc2xpZGVyIHRodW1iIGFu
ZCBzdGFydCBkcmFnZ2luZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI2MjI5CisKKyAgICAgICAgQWxvbmcgd2l0aCB0aGUgZXZlbnRzIGNoYWluLCB0
ZXN0IHRoYXQgdGhlIHNsaWRlciB2YWx1ZSBhcmUgY29ycmVjdCwKKyAgICAgICAgYW5kIHRoYXQg
Y2xpY2tpbmcgb3V0c2lkZSB0aGUgc2xpZGVyIGFuZCBkcmFnZ2luZyB3b3JrcyBhcyBleHBlY3Rl
ZC4KKworICAgICAgICAqIGZhc3QvZm9ybXMvc2xpZGVyLW1vdXNlLWV2ZW50cy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogZmFzdC9mb3Jtcy9zbGlkZXItbW91c2UtZXZlbnRzLmh0bWw6CisKKzIw
MDktMDctMDggIFBpZXJyZSBkJ0hlcmJlbW9udCAgPHBkaGVyYmVtb250QGFwcGxlLmNvbT4KKwog
ICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCiAKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3MTAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL3NsaWRlci1tb3VzZS1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9zbGlkZXItbW91c2UtZXZlbnRzLWV4cGVjdGVkLnR4dAppbmRleCBlYjIw
NjMwLi5kMzA4MDg2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NsaWRlci1t
b3VzZS1ldmVudHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2xp
ZGVyLW1vdXNlLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTEsOCArMSwxOCBAQAotVGhpcyB0ZXN0
cyB0aGF0IHNsaWRlciBjb250cm9scyBnZXQgbW91c2Vkb3duLCBtb3VzZW1vdmUsIGlucHV0LCBh
bmQgbW91c2V1cCBldmVudHMuCitUaGlzIHRlc3RzIHRoYXQgc2xpZGVyIGNvbnRyb2xzIGdldCBt
b3VzZWRvd24sIG1vdXNlbW92ZSwgaW5wdXQsIGFuZCBtb3VzZXVwIGV2ZW50cyBhbmQgcHJvcGVy
bHkgc2V0IGl0cyB2YWx1ZS4KIAogbW91c2Vtb3ZlCiBtb3VzZWRvd24KKzAKIG1vdXNlbW92ZQog
aW5wdXQKIG1vdXNldXAKKzM4Cittb3VzZW1vdmUKK21vdXNlZG93bgoraW5wdXQKKzMKK21vdXNl
bW92ZQoraW5wdXQKK21vdXNldXAKKzIwCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvc2xpZGVyLW1vdXNlLWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9z
bGlkZXItbW91c2UtZXZlbnRzLmh0bWwKaW5kZXggYTkzZTg2MC4uYmZmYWQ3MCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zbGlkZXItbW91c2UtZXZlbnRzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zbGlkZXItbW91c2UtZXZlbnRzLmh0bWwKQEAgLTEzLDE0
ICsxMywyNCBAQAogICAgICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CiAgICAgICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHNs
aWRlci5vZmZzZXRMZWZ0ICsgNywgc2xpZGVyLm9mZnNldFRvcCArIDcpOwogICAgICAgICAgICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgICAgICAgICAgICAgbG9n
KHNsaWRlci52YWx1ZSkKICAgICAgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3Zl
VG8oc2xpZGVyLm9mZnNldExlZnQgKyA1MCwgc2xpZGVyLm9mZnNldFRvcCArIDUwKTsKICAgICAg
ICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgICAgICAgICAgICAgICAg
ICBsb2coc2xpZGVyLnZhbHVlKQorCisgICAgICAgICAgICAgICAgICAgIC8vIFRyeSB0byBjbGlj
ayBvdXRzaWRlIHRoZSBzbGlkZXIgdGh1bWIgYW5kIGRyYWcuCisgICAgICAgICAgICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHNsaWRlci5vZmZzZXRMZWZ0ICsgMTAsIHNsaWRlci5v
ZmZzZXRUb3AgKyAxMCk7CisgICAgICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93
bigpOworICAgICAgICAgICAgICAgICAgICBsb2coc2xpZGVyLnZhbHVlKQorICAgICAgICAgICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzbGlkZXIub2Zmc2V0TGVmdCArIDMwLCBz
bGlkZXIub2Zmc2V0VG9wICsgMzApOworICAgICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5t
b3VzZVVwKCk7CisgICAgICAgICAgICAgICAgICAgIGxvZyhzbGlkZXIudmFsdWUpCiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICA8L3NjcmlwdD4KICAgICA8L2hlYWQ+
CiAgICAgPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgotICAgICAgICBUaGlzIHRlc3RzIHRoYXQgc2xp
ZGVyIGNvbnRyb2xzIGdldCBtb3VzZWRvd24sIG1vdXNlbW92ZSwgaW5wdXQsIGFuZCBtb3VzZXVw
IGV2ZW50cy48YnI+CisgICAgICAgIFRoaXMgdGVzdHMgdGhhdCBzbGlkZXIgY29udHJvbHMgZ2V0
IG1vdXNlZG93biwgbW91c2Vtb3ZlLCBpbnB1dCwgYW5kIG1vdXNldXAgZXZlbnRzIGFuZCBwcm9w
ZXJseSBzZXQgaXRzIHZhbHVlLjxicj4KICAgICAgICAgPGlucHV0IHR5cGU9InJhbmdlIiBpZD0i
c2xpZGVyIiBvbm1vdXNlZG93bj0ibG9nKCdtb3VzZWRvd24nKSIgb25tb3VzZXVwPSJsb2coJ21v
dXNldXAnKSIgb25tb3VzZW1vdmU9ImxvZygnbW91c2Vtb3ZlJykiIG9uaW5wdXQ9ImxvZygnaW5w
dXQnKSIgdmFsdWU9MD4KICAgICAgICAgPGRpdiBpZD0icmVzIj48L2Rpdj4KICAgICA8L2JvZHk+
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IGFjZTM4YTkuLmRkNzBmY2QgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMzEgQEAKIAogICAgICAgICBSZXZpZXdlZCBieSBT
aW1vbiBGcmFzZXIuCiAKKyAgICAgICAgTWFrZSBzdXJlIHdlIGNhbiBjbGljayBvdXRzaWRlIHRo
ZSBzbGlkZXIgdGh1bWIgYW5kIHN0YXJ0IGRyYWdnaW5nLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYyMjkKKworICAgICAgICBQcmV2aW91c2x5IHdl
IHdlcmUgYXNzdW1pbmcgdGhhdCBpZiB0aGUgdGh1bWIgaGFzbid0IGJlZW4gY2xpY2tlZCwgd2UK
KyAgICAgICAgd291bGRuJ3QgaXNzdWUgYW55IHZhbHVlIGNoYW5nZSB1cG9uIGRyYWdnaW5nLgor
CisgICAgICAgIFdlIG5lZWQgdG8gaGFuZGxlIHRoZSB0d28gZGlmZmVyZW50IGNhc2VzOgorICAg
ICAgICAtIENsaWNrZWQgaW4gdGhlIHRodW1iLCB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgY3Vy
c29yIGlzIGFsd2F5cyBwb2ludGluZworICAgICAgICB0aGUgc2FtZSBzbGlkZXIgdGh1bWIgcG9p
bnQuCisgICAgICAgIC0gQ2xpY2tlZCBvdXRzaWRlLCB0aGUgY3Vyc29yIHNob3VsZCBhbHdheXMg
YmUgcG9pbnRpbmcgdG8gdGhlIGNlbnRlciBvZgorICAgICAgICB0aGUgdGh1bWIuCisKKyAgICAg
ICAgRm9yIHNpbXBsaWNpdHksIHdlIGRvbid0IHJlbWVtYmVyIHRoZSBvcmlnaW5hbCBwb2ludCBv
ZiB0aGUgbW91c2UgZG93biwKKyAgICAgICAgYnV0IGEgdmVjdG9yIGJldHdlZW4gdGhhdCBwb2lu
dCBhbmQgdGhlIHRodW1iLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJUaHVtYkVsZW1lbnQ6OlNsaWRlclRodW1iRWxlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJUaHVtYkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhh
bmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2xpZGVyOjptb3VzZUV2ZW50VmVjdG9y
VG9UaHVtYik6IFV0aWxpdHkgZnVuY3Rpb24uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNs
aWRlci5oOgorCisyMDA5LTA3LTA4ICBQaWVycmUgZCdIZXJiZW1vbnQgIDxwZGhlcmJlbW9udEBh
cHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3MTAwCiAgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS83MDQyNjIxPgogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJTbGlkZXIuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcApp
bmRleCA2MTBhMDYwLi4yZTc2ZDJkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTbGlkZXIuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKQEAg
LTEyNiw0MiArMTI2LDUxIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzU2hhZG93Tm9k
ZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIE5vZGUqIHNoYWRvd1BhcmVu
dE5vZGUoKSB7IHJldHVybiBtX3NoYWRvd1BhcmVudDsgfQogCisgICAgRmxvYXRQb2ludCBtX29m
ZnNldFRvVGh1bWI7CiAgICAgTm9kZSogbV9zaGFkb3dQYXJlbnQ7Ci0gICAgRmxvYXRQb2ludCBt
X2luaXRpYWxDbGlja1BvaW50OyAgICAgICAvLyBpbml0aWFsIGNsaWNrIHBvaW50IGluIFJlbmRl
clNsaWRlci1sb2NhbCBjb29yZGluYXRlcwotICAgIGludCBtX2luaXRpYWxQb3NpdGlvbjsKICAg
ICBib29sIG1faW5EcmFnTW9kZTsKIH07CiAKIFNsaWRlclRodW1iRWxlbWVudDo6U2xpZGVyVGh1
bWJFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgTm9kZSogc2hhZG93UGFyZW50KQogICAgIDog
SFRNTERpdkVsZW1lbnQoZGl2VGFnLCBkb2N1bWVudCkKICAgICAsIG1fc2hhZG93UGFyZW50KHNo
YWRvd1BhcmVudCkKLSAgICAsIG1faW5pdGlhbFBvc2l0aW9uKDApCiAgICAgLCBtX2luRHJhZ01v
ZGUoZmFsc2UpCiB7CiB9CiAKIHZvaWQgU2xpZGVyVGh1bWJFbGVtZW50OjpkZWZhdWx0RXZlbnRI
YW5kbGVyKEV2ZW50KiBldmVudCkKIHsKKyAgICBpZiAoIWV2ZW50LT5pc01vdXNlRXZlbnQoKSkg
eworICAgICAgICBIVE1MRGl2RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBNb3VzZUV2ZW50KiBtb3VzZUV2ZW50ID0gc3Rh
dGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KTsKKyAgICBib29sIGlzTGVmdEJ1dHRvbiA9IG1v
dXNlRXZlbnQtPmJ1dHRvbigpID09IExlZnRCdXR0b247CiAgICAgY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUgPSBldmVudC0+dHlwZSgpOwotICAgIGlmIChldmVudFR5cGUgPT0gZXZlbnRO
YW1lcygpLm1vdXNlZG93bkV2ZW50ICYmIGV2ZW50LT5pc01vdXNlRXZlbnQoKSAmJiBzdGF0aWNf
Y2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpLT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7Ci0gICAg
ICAgIE1vdXNlRXZlbnQqIG1vdXNlRXZlbnQgPSBzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZl
bnQpOwotICAgICAgICBSZW5kZXJTbGlkZXIqIHNsaWRlcjsKLSAgICAgICAgaWYgKGRvY3VtZW50
KCktPmZyYW1lKCkgJiYgcmVuZGVyZXIoKSAmJgotICAgICAgICAgICAgICAgIChzbGlkZXIgPSBz
dGF0aWNfY2FzdDxSZW5kZXJTbGlkZXIqPihyZW5kZXJlcigpLT5wYXJlbnQoKSkpICYmCi0gICAg
ICAgICAgICAgICAgc2xpZGVyLT5tb3VzZUV2ZW50SXNJblRodW1iKG1vdXNlRXZlbnQpKSB7Ci0g
ICAgICAgICAgICAKLSAgICAgICAgICAgIC8vIENhY2hlIHRoZSBpbml0aWFsIHBvaW50IHdoZXJl
IHRoZSBtb3VzZSBkb3duIG9jY3VycmVkLCBpbiBzbGlkZXIgY29vcmRpbmF0ZXMKLSAgICAgICAg
ICAgIG1faW5pdGlhbENsaWNrUG9pbnQgPSBzbGlkZXItPmFic29sdXRlVG9Mb2NhbChtb3VzZUV2
ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCksIGZhbHNlLCB0cnVlKTsKLSAgICAgICAgICAgIC8vIENh
Y2hlIHRoZSBpbml0aWFsIHBvc2l0aW9uIG9mIHRoZSB0aHVtYi4KLSAgICAgICAgICAgIG1faW5p
dGlhbFBvc2l0aW9uID0gc2xpZGVyLT5jdXJyZW50UG9zaXRpb24oKTsKLSAgICAgICAgICAgIG1f
aW5EcmFnTW9kZSA9IHRydWU7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGRvY3VtZW50KCkt
PmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5zZXRDYXB0dXJpbmdNb3VzZUV2ZW50c05vZGUobV9z
aGFkb3dQYXJlbnQpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBldmVudC0+c2V0RGVmYXVs
dEhhbmRsZWQoKTsKLSAgICAgICAgICAgIHJldHVybjsKKworICAgIGlmIChldmVudFR5cGUgPT0g
ZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50ICYmIGlzTGVmdEJ1dHRvbikgeworICAgICAgICBp
ZiAoZG9jdW1lbnQoKS0+ZnJhbWUoKSAmJiByZW5kZXJlcigpKSB7CisgICAgICAgICAgICBSZW5k
ZXJTbGlkZXIqIHNsaWRlciA9IHN0YXRpY19jYXN0PFJlbmRlclNsaWRlcio+KHJlbmRlcmVyKCkt
PnBhcmVudCgpKTsKKyAgICAgICAgICAgIGlmIChzbGlkZXIpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoc2xpZGVyLT5tb3VzZUV2ZW50SXNJblRodW1iKG1vdXNlRXZlbnQpKSB7CisgICAgICAgICAg
ICAgICAgICAgIC8vIFdlIHNlbGVjdGVkIHRoZSB0aHVtYiwgd2Ugd2FudCB0aGUgY3Vyc29yIHRv
IGFsd2F5cyBzdGF5IGF0CisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBzYW1lIHBvc2l0aW9u
IHJlbGF0aXZlIHRvIHRoZSB0aHVtYi4KKyAgICAgICAgICAgICAgICAgICAgbV9vZmZzZXRUb1Ro
dW1iID0gc2xpZGVyLT5tb3VzZUV2ZW50T2Zmc2V0VG9UaHVtYihtb3VzZUV2ZW50KTsKKyAgICAg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBXZSBhcmUgb3V0c2lk
ZSB0aGUgdGh1bWIsIG1vdmUgdGhlIHRodW1iIHRvIHRoZSBwb2ludCB3ZXJlCisgICAgICAgICAg
ICAgICAgICAgIC8vIHdlIGNsaWNrZWQuIFdlJ2xsIGJlIGV4YWN0bHkgYXQgdGhlIGNlbnRlciBv
ZiB0aGUgdGh1bWIuCisgICAgICAgICAgICAgICAgICAgIG1fb2Zmc2V0VG9UaHVtYi5zZXRYKDAp
OworICAgICAgICAgICAgICAgICAgICBtX29mZnNldFRvVGh1bWIuc2V0WSgwKTsKKyAgICAgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBtX2luRHJhZ01vZGUgPSB0cnVlOworICAgICAg
ICAgICAgICAgIGRvY3VtZW50KCktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5zZXRDYXB0dXJp
bmdNb3VzZUV2ZW50c05vZGUobV9zaGFkb3dQYXJlbnQpOworICAgICAgICAgICAgICAgIGV2ZW50
LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIH0KICAgICAgICAgfQotICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMo
KS5tb3VzZXVwRXZlbnQgJiYgZXZlbnQtPmlzTW91c2VFdmVudCgpICYmIHN0YXRpY19jYXN0PE1v
dXNlRXZlbnQqPihldmVudCktPmJ1dHRvbigpID09IExlZnRCdXR0b24pIHsKKyAgICB9IGVsc2Ug
aWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkubW91c2V1cEV2ZW50ICYmIGlzTGVmdEJ1dHRv
bikgewogICAgICAgICBpZiAobV9pbkRyYWdNb2RlKSB7CiAgICAgICAgICAgICBpZiAoRnJhbWUq
IGZyYW1lID0gZG9jdW1lbnQoKS0+ZnJhbWUoKSkKICAgICAgICAgICAgICAgICBmcmFtZS0+ZXZl
bnRIYW5kbGVyKCktPnNldENhcHR1cmluZ01vdXNlRXZlbnRzTm9kZSgwKTsgICAgICAKQEAgLTE2
OSwxOCArMTc4LDE2IEBAIHZvaWQgU2xpZGVyVGh1bWJFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5k
bGVyKEV2ZW50KiBldmVudCkKICAgICAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChldmVudFR5
cGUgPT0gZXZlbnROYW1lcygpLm1vdXNlbW92ZUV2ZW50ICYmIGV2ZW50LT5pc01vdXNlRXZlbnQo
KSkgeworICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5tb3VzZW1vdmVF
dmVudCkgewogICAgICAgICBpZiAobV9pbkRyYWdNb2RlICYmIHJlbmRlcmVyKCkgJiYgcmVuZGVy
ZXIoKS0+cGFyZW50KCkpIHsKLSAgICAgICAgICAgIC8vIE1vdmUgdGhlIHNsaWRlcgotICAgICAg
ICAgICAgTW91c2VFdmVudCogbW91c2VFdmVudCA9IHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihl
dmVudCk7CiAgICAgICAgICAgICBSZW5kZXJTbGlkZXIqIHNsaWRlciA9IHN0YXRpY19jYXN0PFJl
bmRlclNsaWRlcio+KHJlbmRlcmVyKCktPnBhcmVudCgpKTsKLQotICAgICAgICAgICAgRmxvYXRQ
b2ludCBjdXJQb2ludCA9IHNsaWRlci0+YWJzb2x1dGVUb0xvY2FsKG1vdXNlRXZlbnQtPmFic29s
dXRlTG9jYXRpb24oKSwgZmFsc2UsIHRydWUpOwotICAgICAgICAgICAgSW50UG9pbnQgZXZlbnRP
ZmZzZXQobV9pbml0aWFsUG9zaXRpb24gKyBjdXJQb2ludC54KCkgLSBtX2luaXRpYWxDbGlja1Bv
aW50LngoKSArIHJlbmRlckJveCgpLT53aWR0aCgpIC8gMiwgCi0gICAgICAgICAgICAgICAgbV9p
bml0aWFsUG9zaXRpb24gKyBjdXJQb2ludC55KCkgLSBtX2luaXRpYWxDbGlja1BvaW50LnkoKSAr
IHJlbmRlckJveCgpLT5oZWlnaHQoKSAvIDIpOwotICAgICAgICAgICAgc2xpZGVyLT5zZXRWYWx1
ZUZvclBvc2l0aW9uKHNsaWRlci0+cG9zaXRpb25Gb3JPZmZzZXQoZXZlbnRPZmZzZXQpKTsKLSAg
ICAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwotICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgaWYgKHNsaWRlcikgeworICAgICAgICAgICAgICAgIEZsb2F0UG9pbnQg
Y3VyUG9pbnQgPSBzbGlkZXItPmFic29sdXRlVG9Mb2NhbChtb3VzZUV2ZW50LT5hYnNvbHV0ZUxv
Y2F0aW9uKCksIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBJbnRQb2ludCBldmVudE9m
ZnNldChjdXJQb2ludC54KCkgKyBtX29mZnNldFRvVGh1bWIueCgpLCBjdXJQb2ludC55KCkgKyBt
X29mZnNldFRvVGh1bWIueSgpKTsKKyAgICAgICAgICAgICAgICBzbGlkZXItPnNldFZhbHVlRm9y
UG9zaXRpb24oc2xpZGVyLT5wb3NpdGlvbkZvck9mZnNldChldmVudE9mZnNldCkpOworICAgICAg
ICAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIApAQCAtMzg3LDYgKzM5NCwx
NyBAQCBib29sIFJlbmRlclNsaWRlcjo6bW91c2VFdmVudElzSW5UaHVtYihNb3VzZUV2ZW50KiBl
dnQpCiAgICAgcmV0dXJuIHRodW1iQm91bmRzLmNvbnRhaW5zKHJvdW5kZWRJbnRQb2ludChsb2Nh
bFBvaW50KSk7CiB9CiAKK0Zsb2F0UG9pbnQgUmVuZGVyU2xpZGVyOjptb3VzZUV2ZW50T2Zmc2V0
VG9UaHVtYihNb3VzZUV2ZW50KiBldnQpCit7CisgICAgQVNTRVJUIChtX3RodW1iICYmIG1fdGh1
bWItPnJlbmRlcmVyKCkpOworICAgIEZsb2F0UG9pbnQgbG9jYWxQb2ludCA9IG1fdGh1bWItPnJl
bmRlckJveCgpLT5hYnNvbHV0ZVRvTG9jYWwoZXZ0LT5hYnNvbHV0ZUxvY2F0aW9uKCksIGZhbHNl
LCB0cnVlKTsKKyAgICBJbnRSZWN0IHRodW1iQm91bmRzID0gbV90aHVtYi0+cmVuZGVyQm94KCkt
PmJvcmRlckJveFJlY3QoKTsKKyAgICBGbG9hdFBvaW50IG9mZnNldDsKKyAgICBvZmZzZXQuc2V0
WCh0aHVtYkJvdW5kcy54KCkgKyB0aHVtYkJvdW5kcy53aWR0aCgpIC8gMiAtIGxvY2FsUG9pbnQu
eCgpKTsKKyAgICBvZmZzZXQuc2V0WSh0aHVtYkJvdW5kcy55KCkgKyB0aHVtYkJvdW5kcy5oZWln
aHQoKSAvIDIgLSBsb2NhbFBvaW50LnkoKSk7CisgICAgcmV0dXJuIG9mZnNldDsKK30KKwogdm9p
ZCBSZW5kZXJTbGlkZXI6OnNldFZhbHVlRm9yUG9zaXRpb24oaW50IHBvc2l0aW9uKQogewogICAg
IGlmICghbV90aHVtYiB8fCAhbV90aHVtYi0+cmVuZGVyZXIoKSkKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xp
ZGVyLmgKaW5kZXggYjhiNTQ3Yy4uNzc5ZDgyZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU2xpZGVyLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmgK
QEAgLTQ3LDYgKzQ3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsKIAogICAgICAgICBib29sIG1vdXNlRXZlbnRJc0luVGh1
bWIoTW91c2VFdmVudCopOworICAgICAgICBGbG9hdFBvaW50IG1vdXNlRXZlbnRPZmZzZXRUb1Ro
dW1iKE1vdXNlRXZlbnQqKTsKIAogICAgICAgICB2b2lkIHNldFZhbHVlRm9yUG9zaXRpb24oaW50
IHBvc2l0aW9uKTsKICAgICAgICAgdm9pZCBzZXRQb3NpdGlvbkZyb21WYWx1ZSgpOwo=
</data>
<flag name="review"
          id="16925"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>