<?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>106874</bug_id>
          
          <creation_ts>2013-01-14 22:35:55 -0800</creation_ts>
          <short_desc>LongPress should start drag&amp;drop draggable elements in iframes</short_desc>
          <delta_ts>2013-01-20 21:14:10 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>UI Events</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="yongsheng">yongsheng.zhu</reporter>
          <assigned_to name="yongsheng">yongsheng.zhu</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>benjamin</cc>
    
    <cc>hausmann</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>varunjain</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>807003</commentid>
    <comment_count>0</comment_count>
    <who name="yongsheng">yongsheng.zhu</who>
    <bug_when>2013-01-14 22:35:55 -0800</bug_when>
    <thetext>When a draggable element is in a subframe, like an iframe, EventHandler should dispatch the event to the sub frame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807027</commentid>
    <comment_count>1</comment_count>
      <attachid>182707</attachid>
    <who name="yongsheng">yongsheng.zhu</who>
    <bug_when>2013-01-14 23:27:12 -0800</bug_when>
    <thetext>Created attachment 182707
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807037</commentid>
    <comment_count>2</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-01-15 00:01:51 -0800</bug_when>
    <thetext>That seems completely arbitrary. It should probably be abstracted by platform.

CC&apos;ing Simon. He probably has an opinion on what long press should do for Qt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807039</commentid>
    <comment_count>3</comment_count>
    <who name="yongsheng">yongsheng.zhu</who>
    <bug_when>2013-01-15 00:04:42 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; That seems completely arbitrary. It should probably be abstracted by platform.
&gt; 
&gt; CC&apos;ing Simon. He probably has an opinion on what long press should do for Qt.

thanks, you&apos;re right. If different platforms have different behaviors, i&apos;d like to define a function sth like PassLongPressEventToSubFrame, so that qt, chromium, gtk and others can have their own implementations. 
what do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807046</commentid>
    <comment_count>4</comment_count>
      <attachid>182707</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-01-15 00:21:57 -0800</bug_when>
    <thetext>Comment on attachment 182707
Patch

&gt; thanks, you&apos;re right. If different platforms have different behaviors, i&apos;d like to define a function sth like PassLongPressEventToSubFrame, so that qt, chromium, gtk and others can have their own implementations. 
&gt; what do you think?

It depends a bit if a behavior depends on the platform and/or the port.

For example if Linux/Windows have a particular behavior that should be true for all ports, a PlatformStragegy could be a better solution.

If the behavior is per port, simply using #ifdef is ok.

First, ask the other ports (possibly on webkit-dev). Once you know the kind of abstraction you need, you can make design decisions for EventHandler.

I r- this for now. Let&apos;s get some feedback first on what people want.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807050</commentid>
    <comment_count>5</comment_count>
    <who name="yongsheng">yongsheng.zhu</who>
    <bug_when>2013-01-15 00:27:41 -0800</bug_when>
    <thetext>
&gt; First, ask the other ports (possibly on webkit-dev). Once you know the kind of abstraction you need, you can make design decisions for EventHandler.
&gt; 
&gt; I r- this for now. Let&apos;s get some feedback first on what people want.
ok, I&apos;ll post this issue to mailing list firstly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807074</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2013-01-15 00:59:37 -0800</bug_when>
    <thetext>I agree, this seems arbitrary. I think Chromium is using the same code path.

My guts feeling is that for Qt it shouldn&apos;t start a drag, but it may depend on the platform.

The bug report is not really clear as to _why_ this behavior is wanted. Can you elaborate?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807083</commentid>
    <comment_count>7</comment_count>
    <who name="yongsheng">yongsheng.zhu</who>
    <bug_when>2013-01-15 01:07:55 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; I agree, this seems arbitrary. I think Chromium is using the same code path.
&gt; 
&gt; My guts feeling is that for Qt it shouldn&apos;t start a drag, but it may depend on the platform.
&gt; 
&gt; The bug report is not really clear as to _why_ this behavior is wanted. Can you elaborate?
Let&apos;s see the below example:
example.html:
&lt;html&gt;
&lt;body&gt;
&lt;iframe src=&apos;aframe.html&apos;&gt;&lt;/iframe&gt;
&lt;/body&gt;
&lt;/html&gt;

aframe.html:
&lt;html&gt;
&lt;head&gt;
&lt;script&gt;
function handleDragStart(event) {
 console.log(&quot;handleDragStart called&quot;);
}
&lt;/head&gt;
&lt;body&gt;
&lt;div id=&quot;div1&quot; draggable=&quot;true&quot; ondragstart=&quot;handleDragStart(event)&quot;&gt;&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;

When opening &apos;example.html&apos;, if a user want to drag the element &quot;div1&quot; on a touch-based device, the LongPress gesture won&apos;t be dispatched to &quot;div1&quot; because current implementation doesn&apos;t consider subframes. So the function &apos;handleDragStart&apos; never be called. I don&apos;t think it&apos;s an expected behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807103</commentid>
    <comment_count>8</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-01-15 01:28:10 -0800</bug_when>
    <thetext>Wow, I did not notice there was already a handleDrag there.

Google actually already forced that behavior based on Android: https://bugs.webkit.org/show_bug.cgi?id=101545
Forget my comments, I believed you were introducing that behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807105</commentid>
    <comment_count>9</comment_count>
      <attachid>182707</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-01-15 01:29:15 -0800</bug_when>
    <thetext>Comment on attachment 182707
Patch

Moving back to review. My concerns were incorrect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807109</commentid>
    <comment_count>10</comment_count>
    <who name="yongsheng">yongsheng.zhu</who>
    <bug_when>2013-01-15 01:34:08 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Wow, I did not notice there was already a handleDrag there.
&gt; 
&gt; Google actually already forced that behavior based on Android: https://bugs.webkit.org/show_bug.cgi?id=101545
&gt; Forget my comments, I believed you were introducing that behavior.
Yes, this patch is to fix a bug for #101545. The bug is that webkit can&apos;t handle draggable elements in subframes. So I fix it with a layout test case.
Note that it&apos;s only for touch-based drag&amp;drop. No problem for mouse-based drag&amp;drop.

(In reply to comment #9)
&gt; (From update of attachment 182707 [details])
&gt; Moving back to review. My concerns were incorrect.
thanks a lot. sorry for my inaccurate description.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807474</commentid>
    <comment_count>11</comment_count>
      <attachid>182707</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2013-01-15 11:06:39 -0800</bug_when>
    <thetext>Comment on attachment 182707
Patch

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

It looks good. Question: does the test pass on Firefox?

&gt; Source/WebCore/page/EventHandler.h:146
&gt; +    bool didStartDrag() { return m_didStartDrag; }

const</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807900</commentid>
    <comment_count>12</comment_count>
    <who name="yongsheng">yongsheng.zhu</who>
    <bug_when>2013-01-15 18:28:08 -0800</bug_when>
    <thetext>thanks for your review.
(In reply to comment #11)
&gt; (From update of attachment 182707 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=182707&amp;action=review
&gt; 
&gt; It looks good. Question: does the test pass on Firefox?
You mean touch-based firefox version? I tried Firefox for Android and it doesn&apos;t support touch-based drag&amp;drop.
&gt; 
&gt; &gt; Source/WebCore/page/EventHandler.h:146
&gt; &gt; +    bool didStartDrag() { return m_didStartDrag; }
&gt; 
&gt; const

ok, I&apos;ll add it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807910</commentid>
    <comment_count>13</comment_count>
      <attachid>182898</attachid>
    <who name="yongsheng">yongsheng.zhu</who>
    <bug_when>2013-01-15 18:37:53 -0800</bug_when>
    <thetext>Created attachment 182898
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808271</commentid>
    <comment_count>14</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2013-01-16 04:29:54 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; thanks for your review.
&gt; (In reply to comment #11)
&gt; &gt; (From update of attachment 182707 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=182707&amp;action=review
&gt; &gt; 
&gt; &gt; It looks good. Question: does the test pass on Firefox?
&gt; You mean touch-based firefox version? I tried Firefox for Android and it doesn&apos;t support touch-based drag&amp;drop.

So you are basically bringing the touch-based behavior in pair with mouse-based behavior?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808845</commentid>
    <comment_count>15</comment_count>
    <who name="yongsheng">yongsheng.zhu</who>
    <bug_when>2013-01-16 16:48:59 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #12)
&gt; &gt; thanks for your review.
&gt; &gt; (In reply to comment #11)
&gt; &gt; &gt; (From update of attachment 182707 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=182707&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; It looks good. Question: does the test pass on Firefox?
&gt; &gt; You mean touch-based firefox version? I tried Firefox for Android and it doesn&apos;t support touch-based drag&amp;drop.
&gt; 
&gt; So you are basically bringing the touch-based behavior in pair with mouse-based behavior?
I believe the code in webkit already brings it similar to mouse-based behavior.
This patch is just to let the gestures pass into sub frame thus elements in sub frame can trigger a drag/drop operation. If elements are in main frame(no subframes), they work well in current webkit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809330</commentid>
    <comment_count>16</comment_count>
      <attachid>182898</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2013-01-17 07:48:19 -0800</bug_when>
    <thetext>Comment on attachment 182898
Patch

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

r- to get one further test running.

&gt; Source/WebCore/page/EventHandler.cpp:2552
&gt; +        RefPtr&lt;Frame&gt; subframe = subframeForHitTestResult(mev);
&gt; +        if (subframe &amp;&amp; !m_mouseDownMayStartDrag) {
&gt; +            subframe-&gt;eventHandler()-&gt;handleDrag(mev, DontCheckDragHysteresis);
&gt; +            if (subframe-&gt;eventHandler()-&gt;didStartDrag())
&gt; +                return true;
&gt; +        }

can I assume that it works for nested inner frames?

if we have 3 levels (mainframe, middle frame and inner frame), and the deeper one handles Drag. Does it work? If so, please add a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810265</commentid>
    <comment_count>17</comment_count>
      <attachid>183381</attachid>
    <who name="yongsheng">yongsheng.zhu</who>
    <bug_when>2013-01-17 22:45:21 -0800</bug_when>
    <thetext>Created attachment 183381
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810267</commentid>
    <comment_count>18</comment_count>
    <who name="yongsheng">yongsheng.zhu</who>
    <bug_when>2013-01-17 22:47:39 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 182898 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=182898&amp;action=review
&gt; 
&gt; r- to get one further test running.
&gt; 
&gt; &gt; Source/WebCore/page/EventHandler.cpp:2552
&gt; &gt; +        RefPtr&lt;Frame&gt; subframe = subframeForHitTestResult(mev);
&gt; &gt; +        if (subframe &amp;&amp; !m_mouseDownMayStartDrag) {
&gt; &gt; +            subframe-&gt;eventHandler()-&gt;handleDrag(mev, DontCheckDragHysteresis);
&gt; &gt; +            if (subframe-&gt;eventHandler()-&gt;didStartDrag())
&gt; &gt; +                return true;
&gt; &gt; +        }
&gt; 
&gt; can I assume that it works for nested inner frames?
&gt; 
&gt; if we have 3 levels (mainframe, middle frame and inner frame), and the deeper one handles Drag. Does it work? If so, please add a test.
you&apos;re right. Previous impl doesn&apos;t work for 3 and more levels. Re-change the patch and add two cases to test 2 and 3 levels. Thanks a lot!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>811706</commentid>
    <comment_count>19</comment_count>
    <who name="yongsheng">yongsheng.zhu</who>
    <bug_when>2013-01-20 17:20:22 -0800</bug_when>
    <thetext>Antonio, thanks a lot for reviewing it. Could you please help upload it or change it as &quot;commit-queue:+&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>811767</commentid>
    <comment_count>20</comment_count>
      <attachid>183381</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-20 21:14:05 -0800</bug_when>
    <thetext>Comment on attachment 183381
Patch

Clearing flags on attachment: 183381

Committed r140292: &lt;http://trac.webkit.org/changeset/140292&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>811768</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-20 21:14:10 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182707</attachid>
            <date>2013-01-14 23:27:12 -0800</date>
            <delta_ts>2013-01-15 18:37:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106874-20130115152423.patch</filename>
            <type>text/plain</type>
            <size>6290</size>
            <attacher name="yongsheng">yongsheng.zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4OTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjExNTM3MDVhOGE4ZTM0
YTAwNDY5YjI1MDc4YWQzZWYwOGE0MzAxNS4uMjIzMjY1MDEyMGRiMjc4ZDlkODZjMmUyNTM3OThl
YjlmYjVkMTMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEzLTAxLTE0ICBZb25n
c2hlbmcgWmh1ICA8eW9uZ3NoZW5nLnpodUBpbnRlbC5jb20+CisKKyAgICAgICAgRGlzcGF0Y2gg
TG9uZ1ByZXNzIGV2ZW50IHRvIHN1YiBmcmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjg3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIERvIGNoZWNrIHdoZXRoZXIgYSBMb25nUHJlc3MgZ2VzdHVy
ZSBldmVudCBzaG91bGQgYmUgcGFzc2VkCisgICAgICAgIHRvIHN1YiBmcmFtZXMuIElmIG5lZWRl
ZCwgZGlzcGF0Y2ggaXQuCisKKyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVy
ZS9sb25nLXByZXNzLW9uLWRyYWdnYWJsZS1lbGVtZW50LWluLWlmcmFtZS10cmlnZ2Vycy1kcmFn
Lmh0bWwKKworICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZUxvbmdQcmVzcyk6CisgICAgICAgICogcGFn
ZS9FdmVudEhhbmRsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZGlkU3Rh
cnREcmFnKToKKyAgICAgICAgKEV2ZW50SGFuZGxlcik6CisKIDIwMTMtMDEtMDUgIE1pY2hhZWwg
UHJ1ZXR0ICA8bWljaGFlbEA2OGsub3JnPgogCiAgICAgICAgIEluZGV4ZWREQjogUmVwbGFjZSBp
bnQ2NCB3aXRoIGludDY0X3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCBi
MmMwN2JjMDAzNzQ3ODA3YzJjNzZlMjk1NmFjOTE3NGY2NWY3YTY0Li5hYTkxZGE4NjU3Mjk4MzBj
MDIyOTQ4ZDAxNmJlZjkyYzk1MDE4NDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwCkBAIC0yNTQ0LDYgKzI1NDQsMTIgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1
cmVMb25nUHJlc3MoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmUKICAgICAg
ICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkpOwogICAg
ICAgICBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzIG1ldiA9IHByZXBhcmVNb3VzZUV2ZW50
KHJlcXVlc3QsIG1vdXNlRHJhZ0V2ZW50KTsKICAgICAgICAgbV9kaWRTdGFydERyYWcgPSBmYWxz
ZTsKKyAgICAgICAgUmVmUHRyPEZyYW1lPiBzdWJmcmFtZSA9IHN1YmZyYW1lRm9ySGl0VGVzdFJl
c3VsdChtZXYpOworICAgICAgICBpZiAoc3ViZnJhbWUgJiYgIW1fbW91c2VEb3duTWF5U3RhcnRE
cmFnKSB7CisgICAgICAgICAgICBzdWJmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZURyYWco
bWV2LCBEb250Q2hlY2tEcmFnSHlzdGVyZXNpcyk7CisgICAgICAgICAgICBpZiAoc3ViZnJhbWUt
PmV2ZW50SGFuZGxlcigpLT5kaWRTdGFydERyYWcoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgfQogICAgICAgICBoYW5kbGVEcmFnKG1ldiwgRG9udENoZWNrRHJhZ0h5
c3RlcmVzaXMpOwogICAgICAgICBpZiAobV9kaWRTdGFydERyYWcpCiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IDE2N2QxZGYyNjczM2Yy
ZDQ3MTQxMmY3YjZlYmRhNjFkZjBjZjZkYjQuLmEwMDZlYmQyNGNjMTBkYjlhZTNjNjYyYTg2ZjUx
MDY2ZGUwMTQzNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtMTQzLDYgKzE0
Myw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZURyYWdTdGF0ZUFmdGVyRWRpdERyYWdJZk5l
ZWRlZChFbGVtZW50KiByb290RWRpdGFibGVFbGVtZW50KTsKICNlbmRpZgogCisgICAgYm9vbCBk
aWRTdGFydERyYWcoKSB7IHJldHVybiBtX2RpZFN0YXJ0RHJhZzsgfQorCiAgICAgdm9pZCBzY2hl
ZHVsZUhvdmVyU3RhdGVVcGRhdGUoKTsKIAogICAgIHZvaWQgc2V0UmVzaXppbmdGcmFtZVNldChI
VE1MRnJhbWVTZXRFbGVtZW50Kik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODhmYmE4YzhmMWE4MGZmZWQyMjU1ODgwYThl
YmYyOWQxMWRiOTRlNy4uMmU4OWU1YTBiYmQ2MjJmMDRkMWNmN2RkMzgwMzA2MzIxMzdkZjA5OSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEzLTAxLTE0ICBZb25nc2hlbmcgWmh1ICA8eW9uZ3No
ZW5nLnpodUBpbnRlbC5jb20+CisKKyAgICAgICAgRGlzcGF0Y2ggTG9uZ1ByZXNzIGV2ZW50IHRv
IHN1YiBmcmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwNjg3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9sb25nLXByZXNzLW9uLWRyYWdnYWJsZS1l
bGVtZW50LWluLWlmcmFtZS10cmlnZ2Vycy1kcmFnLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvcmVzb3VyY2VzL2RyYWctaW5zaWRlLWlmcmFtZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy90b3VjaC9n
ZXN0dXJlL2xvbmctcHJlc3Mtb24tZHJhZ2dhYmxlLWVsZW1lbnQtaW4taWZyYW1lLXRyaWdnZXJz
LWRyYWctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMy0wMS0wNSAgUnlvc3VrZSBOaXdhICA8
cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgZmFpbGluZyB0ZXN0IGV4cGVjdGF0aW9u
cyB0byBzb21lIHRpbGUgZHJhd2luZyB0ZXN0cyBvbiBNYWMgV2ViS2l0Mi4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvbG9uZy1wcmVzcy1vbi1kcmFn
Z2FibGUtZWxlbWVudC1pbi1pZnJhbWUtdHJpZ2dlcnMtZHJhZy5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9sb25nLXByZXNzLW9uLWRyYWdnYWJsZS1lbGVtZW50
LWluLWlmcmFtZS10cmlnZ2Vycy1kcmFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDk0NGU1OTg5MTE5NDM5
MzBjY2U4MmRmZmFmMjgwZjZlN2UzNDBlZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvbG9uZy1wcmVzcy1vbi1kcmFnZ2FibGUtZWxlbWVu
dC1pbi1pZnJhbWUtdHJpZ2dlcnMtZHJhZy5odG1sCkBAIC0wLDAgKzEsNDEgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Ii4vcmVzb3VyY2VzL2RyYWctaW5zaWRl
LWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKzxwPlRoaXMgdGVzdCBjaGVja3MgdGhhdCBhIGxvbmcg
cHJlc3MgZ2VzdHVyZSBvbiBhIGRyYWdnYWJsZSBlbGVtZW50IGluIGFuIGlmcmFtZSBzdGFydHMg
YSBkcmFnL2Ryb3Agc2Vzc2lvbi48L3A+Cis8ZGl2IGlkPSJ0ZXh0Ij5UZXN0aW5nPC9kaXY+Cis8
ZGl2IGlkPSJyZXN1bHQiPkZBSUw8L2Rpdj4KKzxzY3JpcHQ+CitmdW5jdGlvbiBvbkRyYWdTdGFy
dCgpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MID0g
IlBBU1MiOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKKyAgICB9Cit9CitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisg
ICAgaWYgKHRlc3RSdW5uZXIuc2V0VG91Y2hEcmFnRHJvcEVuYWJsZWQpCisgICAgICAgIHRlc3RS
dW5uZXIuc2V0VG91Y2hEcmFnRHJvcEVuYWJsZWQodHJ1ZSk7CisKKyAgICBpZiAoIXdpbmRvdy5l
dmVudFNlbmRlcikKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChldmVudFNlbmRlci5nZXN0dXJl
TG9uZ1ByZXNzKSB7CisgICAgICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVMb25nUHJlc3MoMjAsIDIw
KTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIH0gZWxzZSB7CisgICAgICAg
IGRlYnVnKCJnZXN0dXJlTG9uZ1ByZXNzIG5vdCBpbXBsZW1lbnRlZCBieSB0aGlzIHBsYXRmb3Jt
Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVy
ZS9yZXNvdXJjZXMvZHJhZy1pbnNpZGUtaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC9nZXN0dXJlL3Jlc291cmNlcy9kcmFnLWluc2lkZS1pZnJhbWUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hNDE5ZmU4NWE4Njk5ZGYxMzYwMDExNmZkMTMxYTEyYzI4NTZiNWE1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9yZXNvdXJj
ZXMvZHJhZy1pbnNpZGUtaWZyYW1lLmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPGh0bWw+Cis8Ym9k
eSBvbmxvYWQ9InBhcmVudC5ydW5UZXN0KCkiPgorPGRpdiBpZD0nbXlkaXYnIGRyYWdnYWJsZT0n
dHJ1ZScgb25kcmFnc3RhcnQ9J2RyYWcoZXZlbnQpJyBzdHlsZT0nd2lkdGg6MTAwcHg7aGVpZ2h0
OjEwMHB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDowcHg7IGxlZnQ6MHB4OyBiYWNrZ3JvdW5kLWNv
bG9yOmJsdWU7Jz4KK0RyYWcgbWU8L2Rpdj4KKzxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0
Jz4KKyAgICBmdW5jdGlvbiBkcmFnKGV2ZW50KSB7CisgICAgICAgIHBhcmVudC5vbkRyYWdTdGFy
dCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9sb25n
LXByZXNzLW9uLWRyYWdnYWJsZS1lbGVtZW50LWluLWlmcmFtZS10cmlnZ2Vycy1kcmFnLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3RvdWNo
L2dlc3R1cmUvbG9uZy1wcmVzcy1vbi1kcmFnZ2FibGUtZWxlbWVudC1pbi1pZnJhbWUtdHJpZ2dl
cnMtZHJhZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzVjMmZmODQ1ZTRiODdmZmRkMjQ1OTg4
MTMzYzhkNDgxMjMzODZlYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvbG9uZy1wcmVzcy1vbi1kcmFnZ2Fi
bGUtZWxlbWVudC1pbi1pZnJhbWUtdHJpZ2dlcnMtZHJhZy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw1IEBACisKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCBhIGxvbmcgcHJlc3MgZ2VzdHVyZSBvbiBh
IGRyYWdnYWJsZSBlbGVtZW50IGluIGFuIGlmcmFtZSBzdGFydHMgYSBkcmFnL2Ryb3Agc2Vzc2lv
bi4KKworVGVzdGluZworUEFTUwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182898</attachid>
            <date>2013-01-15 18:37:53 -0800</date>
            <delta_ts>2013-01-17 22:45:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106874-20130116103507.patch</filename>
            <type>text/plain</type>
            <size>6296</size>
            <attacher name="yongsheng">yongsheng.zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4OTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjExNTM3MDVhOGE4ZTM0
YTAwNDY5YjI1MDc4YWQzZWYwOGE0MzAxNS4uMjIzMjY1MDEyMGRiMjc4ZDlkODZjMmUyNTM3OThl
YjlmYjVkMTMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEzLTAxLTE0ICBZb25n
c2hlbmcgWmh1ICA8eW9uZ3NoZW5nLnpodUBpbnRlbC5jb20+CisKKyAgICAgICAgRGlzcGF0Y2gg
TG9uZ1ByZXNzIGV2ZW50IHRvIHN1YiBmcmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjg3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIERvIGNoZWNrIHdoZXRoZXIgYSBMb25nUHJlc3MgZ2VzdHVy
ZSBldmVudCBzaG91bGQgYmUgcGFzc2VkCisgICAgICAgIHRvIHN1YiBmcmFtZXMuIElmIG5lZWRl
ZCwgZGlzcGF0Y2ggaXQuCisKKyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVy
ZS9sb25nLXByZXNzLW9uLWRyYWdnYWJsZS1lbGVtZW50LWluLWlmcmFtZS10cmlnZ2Vycy1kcmFn
Lmh0bWwKKworICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZUxvbmdQcmVzcyk6CisgICAgICAgICogcGFn
ZS9FdmVudEhhbmRsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZGlkU3Rh
cnREcmFnKToKKyAgICAgICAgKEV2ZW50SGFuZGxlcik6CisKIDIwMTMtMDEtMDUgIE1pY2hhZWwg
UHJ1ZXR0ICA8bWljaGFlbEA2OGsub3JnPgogCiAgICAgICAgIEluZGV4ZWREQjogUmVwbGFjZSBp
bnQ2NCB3aXRoIGludDY0X3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCBi
MmMwN2JjMDAzNzQ3ODA3YzJjNzZlMjk1NmFjOTE3NGY2NWY3YTY0Li5hYTkxZGE4NjU3Mjk4MzBj
MDIyOTQ4ZDAxNmJlZjkyYzk1MDE4NDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwCkBAIC0yNTQ0LDYgKzI1NDQsMTIgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1
cmVMb25nUHJlc3MoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmUKICAgICAg
ICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkpOwogICAg
ICAgICBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzIG1ldiA9IHByZXBhcmVNb3VzZUV2ZW50
KHJlcXVlc3QsIG1vdXNlRHJhZ0V2ZW50KTsKICAgICAgICAgbV9kaWRTdGFydERyYWcgPSBmYWxz
ZTsKKyAgICAgICAgUmVmUHRyPEZyYW1lPiBzdWJmcmFtZSA9IHN1YmZyYW1lRm9ySGl0VGVzdFJl
c3VsdChtZXYpOworICAgICAgICBpZiAoc3ViZnJhbWUgJiYgIW1fbW91c2VEb3duTWF5U3RhcnRE
cmFnKSB7CisgICAgICAgICAgICBzdWJmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZURyYWco
bWV2LCBEb250Q2hlY2tEcmFnSHlzdGVyZXNpcyk7CisgICAgICAgICAgICBpZiAoc3ViZnJhbWUt
PmV2ZW50SGFuZGxlcigpLT5kaWRTdGFydERyYWcoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgfQogICAgICAgICBoYW5kbGVEcmFnKG1ldiwgRG9udENoZWNrRHJhZ0h5
c3RlcmVzaXMpOwogICAgICAgICBpZiAobV9kaWRTdGFydERyYWcpCiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IDE2N2QxZGYyNjczM2Yy
ZDQ3MTQxMmY3YjZlYmRhNjFkZjBjZjZkYjQuLjkyMTUzN2FhZDY3ODY3Yjk4YTVkZDM0MWJkNTVk
ODIxNzQzMjlhMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtMTQzLDYgKzE0
Myw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZURyYWdTdGF0ZUFmdGVyRWRpdERyYWdJZk5l
ZWRlZChFbGVtZW50KiByb290RWRpdGFibGVFbGVtZW50KTsKICNlbmRpZgogCisgICAgYm9vbCBk
aWRTdGFydERyYWcoKSBjb25zdCB7IHJldHVybiBtX2RpZFN0YXJ0RHJhZzsgfQorCiAgICAgdm9p
ZCBzY2hlZHVsZUhvdmVyU3RhdGVVcGRhdGUoKTsKIAogICAgIHZvaWQgc2V0UmVzaXppbmdGcmFt
ZVNldChIVE1MRnJhbWVTZXRFbGVtZW50Kik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODhmYmE4YzhmMWE4MGZmZWQyMjU1
ODgwYThlYmYyOWQxMWRiOTRlNy4uMmU4OWU1YTBiYmQ2MjJmMDRkMWNmN2RkMzgwMzA2MzIxMzdk
ZjA5OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEzLTAxLTE0ICBZb25nc2hlbmcgWmh1ICA8
eW9uZ3NoZW5nLnpodUBpbnRlbC5jb20+CisKKyAgICAgICAgRGlzcGF0Y2ggTG9uZ1ByZXNzIGV2
ZW50IHRvIHN1YiBmcmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwNjg3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9sb25nLXByZXNzLW9uLWRyYWdn
YWJsZS1lbGVtZW50LWluLWlmcmFtZS10cmlnZ2Vycy1kcmFnLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvcmVzb3VyY2VzL2RyYWctaW5zaWRlLWlmcmFt
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy90
b3VjaC9nZXN0dXJlL2xvbmctcHJlc3Mtb24tZHJhZ2dhYmxlLWVsZW1lbnQtaW4taWZyYW1lLXRy
aWdnZXJzLWRyYWctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMy0wMS0wNSAgUnlvc3VrZSBO
aXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgZmFpbGluZyB0ZXN0IGV4cGVj
dGF0aW9ucyB0byBzb21lIHRpbGUgZHJhd2luZyB0ZXN0cyBvbiBNYWMgV2ViS2l0Mi4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvbG9uZy1wcmVzcy1v
bi1kcmFnZ2FibGUtZWxlbWVudC1pbi1pZnJhbWUtdHJpZ2dlcnMtZHJhZy5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9sb25nLXByZXNzLW9uLWRyYWdnYWJsZS1l
bGVtZW50LWluLWlmcmFtZS10cmlnZ2Vycy1kcmFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDk0NGU1OTg5
MTE5NDM5MzBjY2U4MmRmZmFmMjgwZjZlN2UzNDBlZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvbG9uZy1wcmVzcy1vbi1kcmFnZ2FibGUt
ZWxlbWVudC1pbi1pZnJhbWUtdHJpZ2dlcnMtZHJhZy5odG1sCkBAIC0wLDAgKzEsNDEgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Ii4vcmVzb3VyY2VzL2RyYWct
aW5zaWRlLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKzxwPlRoaXMgdGVzdCBjaGVja3MgdGhhdCBh
IGxvbmcgcHJlc3MgZ2VzdHVyZSBvbiBhIGRyYWdnYWJsZSBlbGVtZW50IGluIGFuIGlmcmFtZSBz
dGFydHMgYSBkcmFnL2Ryb3Agc2Vzc2lvbi48L3A+Cis8ZGl2IGlkPSJ0ZXh0Ij5UZXN0aW5nPC9k
aXY+Cis8ZGl2IGlkPSJyZXN1bHQiPkZBSUw8L2Rpdj4KKzxzY3JpcHQ+CitmdW5jdGlvbiBvbkRy
YWdTdGFydCgpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJI
VE1MID0gIlBBU1MiOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9Cit9CitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OworCisgICAgaWYgKHRlc3RSdW5uZXIuc2V0VG91Y2hEcmFnRHJvcEVuYWJsZWQpCisgICAgICAg
IHRlc3RSdW5uZXIuc2V0VG91Y2hEcmFnRHJvcEVuYWJsZWQodHJ1ZSk7CisKKyAgICBpZiAoIXdp
bmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChldmVudFNlbmRlci5n
ZXN0dXJlTG9uZ1ByZXNzKSB7CisgICAgICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVMb25nUHJlc3Mo
MjAsIDIwKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIGRlYnVnKCJnZXN0dXJlTG9uZ1ByZXNzIG5vdCBpbXBsZW1lbnRlZCBieSB0aGlzIHBs
YXRmb3JtIik7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CitpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
Z2VzdHVyZS9yZXNvdXJjZXMvZHJhZy1pbnNpZGUtaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3Jlc291cmNlcy9kcmFnLWluc2lkZS1pZnJhbWUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hNDE5ZmU4NWE4Njk5ZGYxMzYwMDExNmZkMTMxYTEyYzI4NTZiNWE1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9y
ZXNvdXJjZXMvZHJhZy1pbnNpZGUtaWZyYW1lLmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPGh0bWw+
Cis8Ym9keSBvbmxvYWQ9InBhcmVudC5ydW5UZXN0KCkiPgorPGRpdiBpZD0nbXlkaXYnIGRyYWdn
YWJsZT0ndHJ1ZScgb25kcmFnc3RhcnQ9J2RyYWcoZXZlbnQpJyBzdHlsZT0nd2lkdGg6MTAwcHg7
aGVpZ2h0OjEwMHB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDowcHg7IGxlZnQ6MHB4OyBiYWNrZ3Jv
dW5kLWNvbG9yOmJsdWU7Jz4KK0RyYWcgbWU8L2Rpdj4KKzxzY3JpcHQgdHlwZT0ndGV4dC9qYXZh
c2NyaXB0Jz4KKyAgICBmdW5jdGlvbiBkcmFnKGV2ZW50KSB7CisgICAgICAgIHBhcmVudC5vbkRy
YWdTdGFydCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVy
ZS9sb25nLXByZXNzLW9uLWRyYWdnYWJsZS1lbGVtZW50LWluLWlmcmFtZS10cmlnZ2Vycy1kcmFn
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRz
L3RvdWNoL2dlc3R1cmUvbG9uZy1wcmVzcy1vbi1kcmFnZ2FibGUtZWxlbWVudC1pbi1pZnJhbWUt
dHJpZ2dlcnMtZHJhZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzVjMmZmODQ1ZTRiODdmZmRk
MjQ1OTg4MTMzYzhkNDgxMjMzODZlYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvbG9uZy1wcmVzcy1vbi1k
cmFnZ2FibGUtZWxlbWVudC1pbi1pZnJhbWUtdHJpZ2dlcnMtZHJhZy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw1IEBACisKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCBhIGxvbmcgcHJlc3MgZ2VzdHVy
ZSBvbiBhIGRyYWdnYWJsZSBlbGVtZW50IGluIGFuIGlmcmFtZSBzdGFydHMgYSBkcmFnL2Ryb3Ag
c2Vzc2lvbi4KKworVGVzdGluZworUEFTUwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183381</attachid>
            <date>2013-01-17 22:45:21 -0800</date>
            <delta_ts>2013-01-20 21:14:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106874-20130118144236.patch</filename>
            <type>text/plain</type>
            <size>9644</size>
            <attacher name="yongsheng">yongsheng.zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4OTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjExNTM3MDVhOGE4ZTM0
YTAwNDY5YjI1MDc4YWQzZWYwOGE0MzAxNS4uZDczNDFiMmFjYzk1ZjA4ZTNjMzMyZWMyZjBhNmM2
NTYzMTcxNDdiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTAxLTE3ICBZb25n
c2hlbmcgWmh1ICA8eW9uZ3NoZW5nLnpodUBpbnRlbC5jb20+CisKKyAgICAgICAgRGlzcGF0Y2gg
TG9uZ1ByZXNzIHRvIGlubmVyIGZyYW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTA2ODc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRG8gY2hlY2sgd2hldGhlciBhIExvbmdQcmVzcyBnZXN0dXJlIGV2
ZW50IHNob3VsZCBiZSBwYXNzZWQKKyAgICAgICAgdG8gaW5uZXIgZnJhbWVzLiBJZiBuZWVkZWQs
IGRpc3BhdGNoIGl0LgorCisgICAgICAgIFRlc3RzOiBmYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJl
L2xvbmctcHJlc3Mtb24tZHJhZ2dhYmxlLWVsZW1lbnQtaW4taWZyYW1lLXRyaWdnZXJzLWRyYWcu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9sb25nLXByZXNz
LW9uLWRyYWdnYWJsZS1lbGVtZW50LWluLW5lc3RlZC1pZnJhbWVzLXRyaWdnZXJzLWRyYWcuaHRt
bAorCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJlTG9uZ1ByZXNzKToKKwogMjAxMy0wMS0wNSAgTWlj
aGFlbCBQcnVldHQgIDxtaWNoYWVsQDY4ay5vcmc+CiAKICAgICAgICAgSW5kZXhlZERCOiBSZXBs
YWNlIGludDY0IHdpdGggaW50NjRfdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmlu
ZGV4IGIyYzA3YmMwMDM3NDc4MDdjMmM3NmUyOTU2YWM5MTc0ZjY1ZjdhNjQuLmVlYTlkNTE4MDdh
MmVjNTBkNzQyZDRmNGNmNGM2YzM3NzZhOWE3NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKQEAgLTI1NDQsNiArMjU0NCwxMSBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxl
R2VzdHVyZUxvbmdQcmVzcyhjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZQog
ICAgICAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSk7
CiAgICAgICAgIE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMgbWV2ID0gcHJlcGFyZU1vdXNl
RXZlbnQocmVxdWVzdCwgbW91c2VEcmFnRXZlbnQpOwogICAgICAgICBtX2RpZFN0YXJ0RHJhZyA9
IGZhbHNlOworICAgICAgICBSZWZQdHI8RnJhbWU+IHN1YmZyYW1lID0gc3ViZnJhbWVGb3JIaXRU
ZXN0UmVzdWx0KG1ldik7CisgICAgICAgIGlmIChzdWJmcmFtZSAmJiAhbV9tb3VzZURvd25NYXlT
dGFydERyYWcpIHsKKyAgICAgICAgICAgIGlmIChzdWJmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmhh
bmRsZUdlc3R1cmVMb25nUHJlc3MoZ2VzdHVyZUV2ZW50KSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgfQogICAgICAgICBoYW5kbGVEcmFnKG1ldiwgRG9udENoZWNrRHJh
Z0h5c3RlcmVzaXMpOwogICAgICAgICBpZiAobV9kaWRTdGFydERyYWcpCiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA4OGZiYThjOGYxYTgwZmZlZDIyNTU4ODBhOGViZjI5ZDExZGI5
NGU3Li4zZGY0NDE0ZGVhMGMwODQ2NGZjYTUyNzM3M2EwNWMxZDRjMzA3OTFiIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTggQEAKKzIwMTMtMDEtMTcgIFlvbmdzaGVuZyBaaHUgIDx5b25nc2hlbmcuemh1QGlu
dGVsLmNvbT4KKworICAgICAgICBEaXNwYXRjaCBMb25nUHJlc3MgdG8gaW5uZXIgZnJhbWVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY4NzQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZXZl
bnRzL3RvdWNoL2dlc3R1cmUvbG9uZy1wcmVzcy1vbi1kcmFnZ2FibGUtZWxlbWVudC1pbi1pZnJh
bWUtdHJpZ2dlcnMtZHJhZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3Vj
aC9nZXN0dXJlL2xvbmctcHJlc3Mtb24tZHJhZ2dhYmxlLWVsZW1lbnQtaW4tbmVzdGVkLWlmcmFt
ZXMtdHJpZ2dlcnMtZHJhZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3Vj
aC9nZXN0dXJlL3Jlc291cmNlcy9kcmFnLWluc2lkZS1pZnJhbWUyLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvcmVzb3VyY2VzL2RyYWctaW5zaWRlLW5l
c3RlZC1pZnJhbWVzMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9n
ZXN0dXJlL3Jlc291cmNlcy9kcmFnLWluc2lkZS1uZXN0ZWQtaWZyYW1lczMuaHRtbDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9s
b25nLXByZXNzLW9uLWRyYWdnYWJsZS1lbGVtZW50LWluLWlmcmFtZS10cmlnZ2Vycy1kcmFnLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVu
dHMvdG91Y2gvZ2VzdHVyZS9sb25nLXByZXNzLW9uLWRyYWdnYWJsZS1lbGVtZW50LWluLW5lc3Rl
ZC1pZnJhbWVzLXRyaWdnZXJzLWRyYWctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMy0wMS0w
NSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgZmFpbGlu
ZyB0ZXN0IGV4cGVjdGF0aW9ucyB0byBzb21lIHRpbGUgZHJhd2luZyB0ZXN0cyBvbiBNYWMgV2Vi
S2l0Mi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUv
bG9uZy1wcmVzcy1vbi1kcmFnZ2FibGUtZWxlbWVudC1pbi1pZnJhbWUtdHJpZ2dlcnMtZHJhZy5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9sb25nLXByZXNzLW9u
LWRyYWdnYWJsZS1lbGVtZW50LWluLWlmcmFtZS10cmlnZ2Vycy1kcmFnLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTVhMjQ2MTFlMTlkMWRiZWEzMDRmNGU5YmY4OWFhZGYwODNlYjg1MAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvbG9uZy1wcmVzcy1v
bi1kcmFnZ2FibGUtZWxlbWVudC1pbi1pZnJhbWUtdHJpZ2dlcnMtZHJhZy5odG1sCkBAIC0wLDAg
KzEsNDEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9InJlc291
cmNlcy9kcmFnLWluc2lkZS1pZnJhbWUyLmh0bWwiPjwvaWZyYW1lPgorPHA+VGhpcyB0ZXN0IGNo
ZWNrcyB0aGF0IGEgbG9uZyBwcmVzcyBnZXN0dXJlIG9uIGEgZHJhZ2dhYmxlIGVsZW1lbnQgaW4g
YW4gaWZyYW1lIHN0YXJ0cyBhIGRyYWcvZHJvcCBzZXNzaW9uLjwvcD4KKzxkaXYgaWQ9InRleHQi
PlRlc3Rpbmc8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+RkFJTDwvZGl2PgorPHNjcmlwdD4KK2Z1
bmN0aW9uIG9uRHJhZ1N0YXJ0KCkgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1
bHQiKS5pbm5lckhUTUwgPSAiUEFTUyI7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0KK30KK2Z1bmN0aW9uIHJ1blRl
c3QoKQoreworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CisKKyAgICBpZiAodGVzdFJ1bm5lci5zZXRUb3VjaERyYWdEcm9wRW5hYmxl
ZCkKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRUb3VjaERyYWdEcm9wRW5hYmxlZCh0cnVlKTsKKwor
ICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGV2
ZW50U2VuZGVyLmdlc3R1cmVMb25nUHJlc3MpIHsKKyAgICAgICAgZXZlbnRTZW5kZXIuZ2VzdHVy
ZUxvbmdQcmVzcyg1MCwgNTApOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgZGVidWcoImdlc3R1cmVMb25nUHJlc3Mgbm90IGltcGxlbWVudGVk
IGJ5IHRoaXMgcGxhdGZvcm0iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KK2lmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC9nZXN0dXJlL2xvbmctcHJlc3Mtb24tZHJhZ2dhYmxlLWVsZW1lbnQtaW4tbmVz
dGVkLWlmcmFtZXMtdHJpZ2dlcnMtZHJhZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
dG91Y2gvZ2VzdHVyZS9sb25nLXByZXNzLW9uLWRyYWdnYWJsZS1lbGVtZW50LWluLW5lc3RlZC1p
ZnJhbWVzLXRyaWdnZXJzLWRyYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjczYTA2NzYxYzZjNWZlNThl
Y2YyN2U4NTgwYTllNDc5NGRmNzVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9sb25nLXByZXNzLW9uLWRyYWdnYWJsZS1lbGVtZW50LWlu
LW5lc3RlZC1pZnJhbWVzLXRyaWdnZXJzLWRyYWcuaHRtbApAQCAtMCwwICsxLDQxIEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvZHJhZy1pbnNp
ZGUtbmVzdGVkLWlmcmFtZXMyLmh0bWwiPjwvaWZyYW1lPgorPHA+VGhpcyB0ZXN0IGNoZWNrcyB0
aGF0IGEgbG9uZyBwcmVzcyBnZXN0dXJlIG9uIGEgZHJhZ2dhYmxlIGVsZW1lbnQgaW4gYW4gaWZy
YW1lIHN0YXJ0cyBhIGRyYWcvZHJvcCBzZXNzaW9uLjwvcD4KKzxkaXYgaWQ9InRleHQiPlRlc3Rp
bmc8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+RkFJTDwvZGl2PgorPHNjcmlwdD4KK2Z1bmN0aW9u
IG9uRHJhZ1N0YXJ0KCkgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5p
bm5lckhUTUwgPSAiUEFTUyI7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0KK30KK2Z1bmN0aW9uIHJ1blRlc3QoKQor
eworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CisKKyAgICBpZiAodGVzdFJ1bm5lci5zZXRUb3VjaERyYWdEcm9wRW5hYmxlZCkKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRUb3VjaERyYWdEcm9wRW5hYmxlZCh0cnVlKTsKKworICAgIGlm
ICghd2luZG93LmV2ZW50U2VuZGVyKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGV2ZW50U2Vu
ZGVyLmdlc3R1cmVMb25nUHJlc3MpIHsKKyAgICAgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZUxvbmdQ
cmVzcygyMCwgMjApOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgZGVidWcoImdlc3R1cmVMb25nUHJlc3Mgbm90IGltcGxlbWVudGVkIGJ5IHRo
aXMgcGxhdGZvcm0iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KK2lmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90
b3VjaC9nZXN0dXJlL3Jlc291cmNlcy9kcmFnLWluc2lkZS1pZnJhbWUyLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3Jlc291cmNlcy9kcmFnLWluc2lkZS1pZnJh
bWUyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMDFiZjY0NTgxNTkzYTU2MzE1MzZlNWUwMzViM2U2NmU1NDg2
YzMzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dl
c3R1cmUvcmVzb3VyY2VzL2RyYWctaW5zaWRlLWlmcmFtZTIuaHRtbApAQCAtMCwwICsxLDExIEBA
Cis8aHRtbD4KKzxib2R5IG9ubG9hZD0idG9wLnJ1blRlc3QoKSI+Cis8ZGl2IGlkPSdteWRpdicg
ZHJhZ2dhYmxlPSd0cnVlJyBvbmRyYWdzdGFydD0nZHJhZyhldmVudCknIHN0eWxlPSd3aWR0aDox
MDBweDtoZWlnaHQ6MTAwcHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjBweDsgbGVmdDowcHg7IGJh
Y2tncm91bmQtY29sb3I6Ymx1ZTsnPgorRHJhZyBtZTwvZGl2PgorPHNjcmlwdCB0eXBlPSd0ZXh0
L2phdmFzY3JpcHQnPgorICAgIGZ1bmN0aW9uIGRyYWcoZXZlbnQpIHsKKyAgICAgICAgdG9wLm9u
RHJhZ1N0YXJ0KCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3Jlc291cmNlcy9kcmFn
LWluc2lkZS1uZXN0ZWQtaWZyYW1lczIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Rv
dWNoL2dlc3R1cmUvcmVzb3VyY2VzL2RyYWctaW5zaWRlLW5lc3RlZC1pZnJhbWVzMi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjNjNjUyYTRhODQwNWM3MDE1ZWVjZDZlYTI2MzI2NTk2YWRhYWQ0NWMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3Jlc291
cmNlcy9kcmFnLWluc2lkZS1uZXN0ZWQtaWZyYW1lczIuaHRtbApAQCAtMCwwICsxLDUgQEAKKzxo
dG1sPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0iZHJhZy1pbnNpZGUtbmVzdGVkLWlmcmFtZXMzLmh0
bWwiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9yZXNvdXJjZXMvZHJhZy1pbnNpZGUtbmVzdGVkLWlm
cmFtZXMzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3Jlc291
cmNlcy9kcmFnLWluc2lkZS1uZXN0ZWQtaWZyYW1lczMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMWJmNjQ1
ODE1OTNhNTYzMTUzNmU1ZTAzNWIzZTY2ZTU0ODZjMzM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9yZXNvdXJjZXMvZHJhZy1pbnNpZGUt
bmVzdGVkLWlmcmFtZXMzLmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPGh0bWw+Cis8Ym9keSBvbmxv
YWQ9InRvcC5ydW5UZXN0KCkiPgorPGRpdiBpZD0nbXlkaXYnIGRyYWdnYWJsZT0ndHJ1ZScgb25k
cmFnc3RhcnQ9J2RyYWcoZXZlbnQpJyBzdHlsZT0nd2lkdGg6MTAwcHg7aGVpZ2h0OjEwMHB4O3Bv
c2l0aW9uOmFic29sdXRlO3RvcDowcHg7IGxlZnQ6MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOmJsdWU7
Jz4KK0RyYWcgbWU8L2Rpdj4KKzxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4KKyAgICBm
dW5jdGlvbiBkcmFnKGV2ZW50KSB7CisgICAgICAgIHRvcC5vbkRyYWdTdGFydCgpOworICAgIH0K
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9sb25nLXByZXNzLW9uLWRy
YWdnYWJsZS1lbGVtZW50LWluLWlmcmFtZS10cmlnZ2Vycy1kcmFnLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvbG9u
Zy1wcmVzcy1vbi1kcmFnZ2FibGUtZWxlbWVudC1pbi1pZnJhbWUtdHJpZ2dlcnMtZHJhZy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYzVjMmZmODQ1ZTRiODdmZmRkMjQ1OTg4MTMzYzhkNDgxMjMz
ODZlYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zh
c3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvbG9uZy1wcmVzcy1vbi1kcmFnZ2FibGUtZWxlbWVudC1p
bi1pZnJhbWUtdHJpZ2dlcnMtZHJhZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKK1Ro
aXMgdGVzdCBjaGVja3MgdGhhdCBhIGxvbmcgcHJlc3MgZ2VzdHVyZSBvbiBhIGRyYWdnYWJsZSBl
bGVtZW50IGluIGFuIGlmcmFtZSBzdGFydHMgYSBkcmFnL2Ryb3Agc2Vzc2lvbi4KKworVGVzdGlu
ZworUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9l
dmVudHMvdG91Y2gvZ2VzdHVyZS9sb25nLXByZXNzLW9uLWRyYWdnYWJsZS1lbGVtZW50LWluLW5l
c3RlZC1pZnJhbWVzLXRyaWdnZXJzLWRyYWctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9sb25nLXByZXNzLW9uLWRy
YWdnYWJsZS1lbGVtZW50LWluLW5lc3RlZC1pZnJhbWVzLXRyaWdnZXJzLWRyYWctZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmM1YzJmZjg0NWU0Yjg3ZmZkZDI0NTk4ODEzM2M4ZDQ4MTIzMzg2ZWIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2
ZW50cy90b3VjaC9nZXN0dXJlL2xvbmctcHJlc3Mtb24tZHJhZ2dhYmxlLWVsZW1lbnQtaW4tbmVz
dGVkLWlmcmFtZXMtdHJpZ2dlcnMtZHJhZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisK
K1RoaXMgdGVzdCBjaGVja3MgdGhhdCBhIGxvbmcgcHJlc3MgZ2VzdHVyZSBvbiBhIGRyYWdnYWJs
ZSBlbGVtZW50IGluIGFuIGlmcmFtZSBzdGFydHMgYSBkcmFnL2Ryb3Agc2Vzc2lvbi4KKworVGVz
dGluZworUEFTUwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>