<?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>60600</bug_id>
          
          <creation_ts>2011-05-10 18:12:41 -0700</creation_ts>
          <short_desc>click event shouldn&apos;t fire when the target is ever removed in mouseup</short_desc>
          <delta_ts>2011-05-14 01:38:59 -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>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>
          <dependson>60833</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>ap</cc>
    
    <cc>arv</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>glenn</cc>
    
    <cc>mjs</cc>
    
    <cc>ojan</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>401677</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-10 18:12:41 -0700</bug_when>
    <thetext>WebKit currently fires click event even on a node that was removed or once removed from its document during mouseup event.  However, both Firefox and Internet Explorer do NOT fire click event in such cases.  We should match WebKit&apos;s behavior to those two browsers to be consistent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401678</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-10 18:13:42 -0700</bug_when>
    <thetext>See discussions on http://lists.w3.org/Archives/Public/www-dom/2011AprJun/0058.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401716</commentid>
    <comment_count>2</comment_count>
      <attachid>93063</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-10 19:34:32 -0700</bug_when>
    <thetext>Created attachment 93063
fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401717</commentid>
    <comment_count>3</comment_count>
      <attachid>93063</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2011-05-10 19:46:24 -0700</bug_when>
    <thetext>Comment on attachment 93063
fixes the bug

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

&gt; Source/WebCore/page/EventHandler.cpp:263
&gt; +    if (nodeToBeRemoved-&gt;contains(m_clickNode.get()))

contains is O(depth). Will this cause all removeChild to have to walk up the dom tree?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401718</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-10 19:50:14 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 93063 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=93063&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/EventHandler.cpp:263
&gt; &gt; +    if (nodeToBeRemoved-&gt;contains(m_clickNode.get()))
&gt; 
&gt; contains is O(depth). Will this cause all removeChild to have to walk up the dom tree?

Yes but I don&apos;t think this is a big deal. There are many O(n) operations in call sites of this function already.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401723</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-10 19:58:09 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; contains is O(depth). Will this cause all removeChild to have to walk up the dom tree?
&gt; 
&gt; Yes but I don&apos;t think this is a big deal. There are many O(n) operations in call sites of this function already.

An alternative is to wait until the node is actually removed and check inDocument() but that&apos;s tricky to get right because there doesn&apos;t seem to be any precedents set by other classes and the node can be inserted back or moved to a different node during mutation events, etc...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401724</commentid>
    <comment_count>6</comment_count>
      <attachid>93064</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-10 19:59:40 -0700</bug_when>
    <thetext>Created attachment 93064
Added instructions for manual testing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401904</commentid>
    <comment_count>7</comment_count>
      <attachid>93104</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-11 04:42:47 -0700</bug_when>
    <thetext>Created attachment 93104
benchmark

I made a benchmark for this patch.  So there seems to be some performance impact in very specific case where selection isn&apos;t where m_clickNode is and m_clickNode is really deep. On my MacBookPro, WebKit ToT Mac port runs the benchmark in 2ms without the patch but takes 7ms with the patch.  However, when selection isn&apos;t moved manually by removeAllRanges(), the selection&apos;s nodeWillBeRemoved will dwarfs the effect of this patch making the benchmark to take ~170ms.  In practice, however, I don&apos;t think it&apos;s common for websites to have such a deep DOM structure, and put selection away from where user clicked and remove thousands of nodes between mousedown &amp; mouseup events.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403726</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-13 12:02:49 -0700</bug_when>
    <thetext>Can anyone review this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403810</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-13 13:39:13 -0700</bug_when>
    <thetext>Yay! Thanks for the review, Darin!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403865</commentid>
    <comment_count>10</comment_count>
      <attachid>93064</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-13 14:35:19 -0700</bug_when>
    <thetext>Comment on attachment 93064
Added instructions for manual testing

Clearing flags on attachment: 93064

Committed r86461: &lt;http://trac.webkit.org/changeset/86461&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403866</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-13 14:35:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403993</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-13 17:33:44 -0700</bug_when>
    <thetext>New behavior is spec&apos;ed in http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#events-mouseevent-event-order

See &quot;Example&quot; part at the end of the section.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93063</attachid>
            <date>2011-05-10 19:34:32 -0700</date>
            <delta_ts>2011-05-10 19:59:36 -0700</delta_ts>
            <desc>fixes the bug</desc>
            <filename>bug-60600-20110510193431.patch</filename>
            <type>text/plain</type>
            <size>11933</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODYyMDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyMDQ5NjY2Yjc5YTZmNTBmNjFmN2Y5
OGRiMGYwOThkOTM5MWUwNDYwLi5kMWY1MTUwNzQ0ZGRjNTYzN2VhN2Y5ODZlMDgyMTY4NTI1MjE3
YTJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDUtMTAgIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgY2xpY2sgZXZlbnQgc2hvdWxkbid0IGZpcmUgd2hlbiB0aGUgdGFyZ2V0IGlzIGV2
ZXIgcmVtb3ZlZCBpbiBtb3VzZXVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02MDYwMAorCisgICAgICAgIEFkZGVkIHRlc3RzIHRvIGVuc3VyZSBXZWJL
aXQgZG9lcyBub3QgZmlyZSBjbGljayBldmVudCB3aGVuIHRoZSB0YXJnZXQgbm9kZQorICAgICAg
ICBpcyByZW1vdmVkIGluIG1vdXNldXAgZXZlbnQuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9y
ZW1vdmUtdGFyZ2V0LWluLW1vdXNldXAtZGVlcC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZXZlbnRzL3JlbW92ZS10YXJnZXQtaW4tbW91c2V1cC1kZWVwLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZXZlbnRzL3JlbW92ZS10YXJnZXQtaW4tbW91c2V1cC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3JlbW92ZS10YXJnZXQtaW4tbW91
c2V1cC1pbnNlcnRiYWNrLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVu
dHMvcmVtb3ZlLXRhcmdldC1pbi1tb3VzZXVwLWluc2VydGJhY2suaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9ldmVudHMvcmVtb3ZlLXRhcmdldC1pbi1tb3VzZXVwLXR3aWNlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvcmVtb3ZlLXRhcmdldC1pbi1tb3Vz
ZXVwLXR3aWNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3JlbW92ZS10YXJn
ZXQtaW4tbW91c2V1cC5odG1sOiBBZGRlZC4KKwogMjAxMS0wNS0xMCAgQWRhbSBLbGVpbiAgPGFk
YW1rQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbW92ZS10YXJnZXQtaW4tbW91c2V1
cC1kZWVwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbW92ZS10YXJn
ZXQtaW4tbW91c2V1cC1kZWVwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZDdiODgwMGNiNDY1
NjU3ZTU2M2M1YzI3OWM5ZGE1OWRmYjU2ZGE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvcmVtb3ZlLXRhcmdldC1pbi1tb3VzZXVwLWRlZXAtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgV2ViS2l0IGRvZXMgbm90IGZpcmUg
Y2xpY2sgZXZlbnQgb24gYSBub2RlIHRoYXQgaGFzIGJlZW4gcmVtb3ZlZCBpbiBtb3VzZXVwIGV2
ZW50LgorCitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZW1vdmUt
dGFyZ2V0LWluLW1vdXNldXAtZGVlcC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVt
b3ZlLXRhcmdldC1pbi1tb3VzZXVwLWRlZXAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOGNmNzhkZmZlY2U4
MWI4ZWY2Y2VkY2NmMDEwMGFmNmIzMmRkNzc5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvcmVtb3ZlLXRhcmdldC1pbi1tb3VzZXVwLWRlZXAuaHRtbApAQCAtMCww
ICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8cD5UaGlzIHRlc3Qg
ZW5zdXJlcyBXZWJLaXQgZG9lcyBub3QgZmlyZSBjbGljayBldmVudCBvbiBhIG5vZGUgdGhhdCBo
YXMgYmVlbiByZW1vdmVkIGluIG1vdXNldXAgZXZlbnQuPC9wPgorPGRpdiBpZD0idGVzdCI+PGIg
aWQ9InRhcmdldCI+PGVtPjxzcGFuIG9ubW91c2V1cD0ibW91c2V1cCgpIiBvbmNsaWNrPSJ0ZXN0
LmlubmVySFRNTCA9ICdGQUlMJzsiPnRleHQ8L3NwYW4+PC9lbT48L2I+PC9kaXY+Cis8c2NyaXB0
PgorCit2YXIgdGVzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7Cit2YXIgdGFy
Z2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworCitmdW5jdGlvbiBtb3Vz
ZXVwKCkgeworICAgIHRlc3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ1BB
U1MnKSk7CisgICAgdGVzdC5yZW1vdmVDaGlsZCh0YXJnZXQpOworICAgIHRlc3QuYXBwZW5kQ2hp
bGQodGFyZ2V0KTsKKyAgICB0ZXN0LnJlbW92ZUNoaWxkKHRhcmdldCk7Cit9CisKK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgIHRlc3QuaW5u
ZXJIVE1MID0gJ0ZBSUwgLSB0aGlzIHRlc3QgcmVxdWlyZXMgZXZlbnRTZW5kZXInOworICAgIGVs
c2UgeworICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh0YXJnZXQub2Zmc2V0TGVmdCAr
IHRhcmdldC5vZmZzZXRXaWR0aCAvIDIsIHRhcmdldC5vZmZzZXRUb3AgKyB0YXJnZXQub2Zmc2V0
SGVpZ2h0IC8gMik7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICBl
dmVudFNlbmRlci5sZWFwRm9yd2FyZCgyMDApOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVVw
KCk7CisgICAgfQorfQorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbW92ZS10YXJnZXQtaW4tbW91c2V1cC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZW1vdmUtdGFyZ2V0LWluLW1vdXNldXAt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkN2I4ODAwY2I0NjU2NTdlNTYzYzVjMjc5YzlkYTU5
ZGZiNTZkYTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZW1v
dmUtdGFyZ2V0LWluLW1vdXNldXAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorVGhpcyB0
ZXN0IGVuc3VyZXMgV2ViS2l0IGRvZXMgbm90IGZpcmUgY2xpY2sgZXZlbnQgb24gYSBub2RlIHRo
YXQgaGFzIGJlZW4gcmVtb3ZlZCBpbiBtb3VzZXVwIGV2ZW50LgorCitQQVNTCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZW1vdmUtdGFyZ2V0LWluLW1vdXNldXAtaW5zZXJ0
YmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZW1vdmUtdGFyZ2V0
LWluLW1vdXNldXAtaW5zZXJ0YmFjay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGQ1MDA2ZjQ2
ZjUzYjM3MDBhMjBlOGNiMmNhM2Y5YjQ1YTU2MjJhYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbW92ZS10YXJnZXQtaW4tbW91c2V1cC1pbnNlcnRiYWNrLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIFdlYktpdCBkb2Vz
IG5vdCBmaXJlIGNsaWNrIGV2ZW50IG9uIGEgbm9kZSB0aGF0IGhhcyBiZWVuIHJlbW92ZWQgYW5k
IGluc2VydGVkIGJhY2sgaW4gbW91c2V1cCBldmVudC4KKworUEFTUwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVtb3ZlLXRhcmdldC1pbi1tb3VzZXVwLWluc2VydGJhY2su
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbW92ZS10YXJnZXQtaW4tbW91c2V1cC1p
bnNlcnRiYWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmRlZDQ4Zjg4NzZkOTE1NzI1MTc3MDg0MTU5NGM2
ZGNhM2VkZDcxYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jl
bW92ZS10YXJnZXQtaW4tbW91c2V1cC1pbnNlcnRiYWNrLmh0bWwKQEAgLTAsMCArMSwzMiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGVuc3VyZXMgV2Vi
S2l0IGRvZXMgbm90IGZpcmUgY2xpY2sgZXZlbnQgb24gYSBub2RlIHRoYXQgaGFzIGJlZW4gcmVt
b3ZlZCBhbmQgaW5zZXJ0ZWQgYmFjayBpbiBtb3VzZXVwIGV2ZW50LjwvcD4KKzxkaXYgaWQ9InRl
c3QiPjxzcGFuIGlkPSJ0YXJnZXQiIG9ubW91c2V1cD0ibW91c2V1cCgpIiBvbmNsaWNrPSJ0ZXN0
LmlubmVySFRNTCA9ICdGQUlMJzsiPnRleHQ8L3NwYW4+PC9kaXY+Cis8c2NyaXB0PgorCit2YXIg
dGVzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7Cit2YXIgdGFyZ2V0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworCitmdW5jdGlvbiBtb3VzZXVwKCkgewor
ICAgIHRlc3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ1BBU1MnKSk7Cisg
ICAgdGVzdC5yZW1vdmVDaGlsZCh0YXJnZXQpOworICAgIHRlc3QuYXBwZW5kQ2hpbGQodGFyZ2V0
KTsKK30KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikK
KyAgICAgICAgdGVzdC5pbm5lckhUTUwgPSAnRkFJTCAtIHRoaXMgdGVzdCByZXF1aXJlcyBldmVu
dFNlbmRlcic7CisgICAgZWxzZSB7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHRh
cmdldC5vZmZzZXRMZWZ0ICsgdGFyZ2V0Lm9mZnNldFdpZHRoIC8gMiwgdGFyZ2V0Lm9mZnNldFRv
cCArIHRhcmdldC5vZmZzZXRIZWlnaHQgLyAyKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VE
b3duKCk7CisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7CisgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICAgICAgdGVzdC5yZW1vdmVDaGlsZCh0YXJnZXQpOwor
ICAgIH0KK30KKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9yZW1vdmUtdGFyZ2V0LWluLW1vdXNldXAtdHdpY2UtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVtb3ZlLXRhcmdldC1pbi1tb3VzZXVw
LXR3aWNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTI5YzAxN2FkOWY1NDcwMmEwYjEyNzJk
ODVjNDU3MzA1ZTE4ZTU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvcmVtb3ZlLXRhcmdldC1pbi1tb3VzZXVwLXR3aWNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIFdlYktpdCBkb2VzIG5vdCBmaXJlIGNsaWNrIGV2ZW50
IG9uIGEgbm9kZSB0aGF0IGhhcyBiZWVuIHJlbW92ZWQgdHdpY2UgaW4gbW91c2V1cCBldmVudC4K
KworUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVtb3ZlLXRhcmdl
dC1pbi1tb3VzZXVwLXR3aWNlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZW1vdmUt
dGFyZ2V0LWluLW1vdXNldXAtdHdpY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYmFhOTM3YjhiZjY2ZTlj
MDVjYzdhMGQzNzM0MTFiYWUwNTk0YTFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvcmVtb3ZlLXRhcmdldC1pbi1tb3VzZXVwLXR3aWNlLmh0bWwKQEAgLTAsMCAr
MSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGVu
c3VyZXMgV2ViS2l0IGRvZXMgbm90IGZpcmUgY2xpY2sgZXZlbnQgb24gYSBub2RlIHRoYXQgaGFz
IGJlZW4gcmVtb3ZlZCB0d2ljZSBpbiBtb3VzZXVwIGV2ZW50LjwvcD4KKzxkaXYgaWQ9InRlc3Qi
PjxzcGFuIGlkPSJ0YXJnZXQiIG9ubW91c2V1cD0ibW91c2V1cCgpIiBvbmNsaWNrPSJ0ZXN0Lmlu
bmVySFRNTCA9ICdGQUlMJzsiPnRleHQ8L3NwYW4+PC9kaXY+Cis8c2NyaXB0PgorCit2YXIgdGVz
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7Cit2YXIgdGFyZ2V0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworCitmdW5jdGlvbiBtb3VzZXVwKCkgeworICAg
IHRlc3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ1BBU1MnKSk7CisgICAg
dGVzdC5yZW1vdmVDaGlsZCh0YXJnZXQpOworICAgIHRlc3QuYXBwZW5kQ2hpbGQodGFyZ2V0KTsK
KyAgICB0ZXN0LnJlbW92ZUNoaWxkKHRhcmdldCk7Cit9CisKK2lmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cisg
ICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgIHRlc3QuaW5uZXJIVE1MID0gJ0ZB
SUwgLSB0aGlzIHRlc3QgcmVxdWlyZXMgZXZlbnRTZW5kZXInOworICAgIGVsc2UgeworICAgICAg
ICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh0YXJnZXQub2Zmc2V0TGVmdCArIHRhcmdldC5vZmZz
ZXRXaWR0aCAvIDIsIHRhcmdldC5vZmZzZXRUb3AgKyB0YXJnZXQub2Zmc2V0SGVpZ2h0IC8gMik7
CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICBldmVudFNlbmRlci5s
ZWFwRm9yd2FyZCgyMDApOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgfQor
fQorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3JlbW92ZS10YXJnZXQtaW4tbW91c2V1cC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvcmVtb3ZlLXRhcmdldC1pbi1tb3VzZXVwLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGY3
ZjFiOGY5NDY2Nzk1ZTc1YTJiMTllMTFlZmNjNDg3ZjY3YmVlYgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbW92ZS10YXJnZXQtaW4tbW91c2V1cC5odG1sCkBA
IC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxwPlRoaXMg
dGVzdCBlbnN1cmVzIFdlYktpdCBkb2VzIG5vdCBmaXJlIGNsaWNrIGV2ZW50IG9uIGEgbm9kZSB0
aGF0IGhhcyBiZWVuIHJlbW92ZWQgaW4gbW91c2V1cCBldmVudC48L3A+Cis8ZGl2IGlkPSJ0ZXN0
Ij48aW1nIHNyYz0iIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgaWQ9InRhcmdldCIgb25tb3Vz
ZXVwPSJtb3VzZXVwKCkiIG9uY2xpY2s9InRlc3QuaW5uZXJIVE1MID0gJ0ZBSUwnOyI+PC9kaXY+
Cis8c2NyaXB0PgorCit2YXIgdGVzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7
Cit2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworCitmdW5j
dGlvbiBtb3VzZXVwKCkgeworICAgIHRlc3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoJ1BBU1MnKSk7CisgICAgdGFyZ2V0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGFyZ2V0
KTsKK30KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikK
KyAgICAgICAgdGVzdC5pbm5lckhUTUwgPSAnRkFJTCAtIHRoaXMgdGVzdCByZXF1aXJlcyBldmVu
dFNlbmRlcic7CisgICAgZWxzZSB7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHRh
cmdldC5vZmZzZXRMZWZ0ICsgdGFyZ2V0Lm9mZnNldFdpZHRoIC8gMiwgdGFyZ2V0Lm9mZnNldFRv
cCArIHRhcmdldC5vZmZzZXRIZWlnaHQgLyAyKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VE
b3duKCk7CisgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7CisgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICB9Cit9CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGNlOWMyZjIzMTJjYWNlMzViZWU1YmU0ODcwYmU5MjZhNTNlMTBl
M2UuLmI5YWViMDYyNDJmY2I0NzA5NzY0MThhMTc4YWZmY2E1N2QzY2JhMDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNiBAQAorMjAxMS0wNS0xMCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBj
bGljayBldmVudCBzaG91bGRuJ3QgZmlyZSB3aGVuIHRoZSB0YXJnZXQgaXMgZXZlciByZW1vdmVk
IGluIG1vdXNldXAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYwNjAwCisKKyAgICAgICAgRml4ZWQgdGhlIGJ1ZyBieSBpbnZhbGlkYXRpbmcgbV9jbGlj
a05vZGUgd2hlbiBpdCBvciBvbmUgb2YgaXRzIGFuY2VzdG9ycyBoYXMgYmVlbiByZW1vdmVkCisg
ICAgICAgIGZyb20gdGhlIGRvY3VtZW50LiBOZXcgYmVoYXZpb3IgbWF0Y2hlcyBJbnRlcm5ldCBF
eHBsb3JlciBhbmQgRmlyZWZveC4KKworICAgICAgICBUZXN0czogZmFzdC9ldmVudHMvcmVtb3Zl
LXRhcmdldC1pbi1tb3VzZXVwLWRlZXAuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMv
cmVtb3ZlLXRhcmdldC1pbi1tb3VzZXVwLWluc2VydGJhY2suaHRtbAorICAgICAgICAgICAgICAg
ZmFzdC9ldmVudHMvcmVtb3ZlLXRhcmdldC1pbi1tb3VzZXVwLXR3aWNlLmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3QvZXZlbnRzL3JlbW92ZS10YXJnZXQtaW4tbW91c2V1cC5odG1sCisKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om5vZGVD
aGlsZHJlbldpbGxCZVJlbW92ZWQpOiBDYWxscyBFdmVudEhhbmRsZXI6Om5vZGVXaWxsQmVSZW1v
dmVkLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om5vZGVXaWxsQmVSZW1vdmVkKTogQ2Fs
bHMgRXZlbnRIYW5kbGVyOjpub2RlV2lsbEJlUmVtb3ZlZC4KKyAgICAgICAgKiBwYWdlL0V2ZW50
SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6Om5vZGVXaWxsQmVS
ZW1vdmVkKTogQWRkZWQ7IGludmFsaWRhdGVzIG1fY2xpY2tOb2RlIHdoZW4gbV9jbGlja05vZGUK
KyAgICAgICAgb3Igb25lIG9mIGl0cyBhbmNlc3RvciBpcyByZW1vdmVkIGZyb20gdGhlIGRvY3Vt
ZW50LgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisKIDIwMTEtMDUtMTAgIFByYXRp
ayBTb2xhbmtpICA8cHNvbGFua2lAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFs
ZXhleSBQcm9za3VyeWFrb3YuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAyZGFkYTY2NzIz
YTM5MzZmY2M3MDg0ZTE3MmY1MzhhMjcwOTkyZmQ1Li4xMWRjNjIzN2QzYjJjNjJlOGM0OWQ3NmJj
YTkzYWJkZTc5NWNhODllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTMzOTksNiArMzM5
OSw3IEBAIHZvaWQgRG9jdW1lbnQ6Om5vZGVDaGlsZHJlbldpbGxCZVJlbW92ZWQoQ29udGFpbmVy
Tm9kZSogY29udGFpbmVyKQogCiAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHRoaXMtPmZyYW1lKCkp
IHsKICAgICAgICAgZm9yIChOb2RlKiBuID0gY29udGFpbmVyLT5maXJzdENoaWxkKCk7IG47IG4g
PSBuLT5uZXh0U2libGluZygpKSB7CisgICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkt
Pm5vZGVXaWxsQmVSZW1vdmVkKG4pOwogICAgICAgICAgICAgZnJhbWUtPnNlbGVjdGlvbigpLT5u
b2RlV2lsbEJlUmVtb3ZlZChuKTsKICAgICAgICAgICAgIGZyYW1lLT5wYWdlKCktPmRyYWdDYXJl
dENvbnRyb2xsZXIoKS0+bm9kZVdpbGxCZVJlbW92ZWQobik7CiAgICAgICAgIH0KQEAgLTM0MTgs
NiArMzQxOSw3IEBAIHZvaWQgRG9jdW1lbnQ6Om5vZGVXaWxsQmVSZW1vdmVkKE5vZGUqIG4pCiAg
ICAgfQogCiAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHRoaXMtPmZyYW1lKCkpIHsKKyAgICAgICAg
ZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5ub2RlV2lsbEJlUmVtb3ZlZChuKTsKICAgICAgICAgZnJh
bWUtPnNlbGVjdGlvbigpLT5ub2RlV2lsbEJlUmVtb3ZlZChuKTsKICAgICAgICAgZnJhbWUtPnBh
Z2UoKS0+ZHJhZ0NhcmV0Q29udHJvbGxlcigpLT5ub2RlV2lsbEJlUmVtb3ZlZChuKTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggZDIxNTk1YWJjNWE1YjEyMDU1
ZDE5MmIyMzdjMmViNDJjMGNhZTUyMy4uY2JmMWUxYzVhYTg3YmI2NjdlNDE5ODQyYzZmNGU3NjU0
NWEyMmEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMjU4LDYgKzI1
OCwxMiBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6Y2xlYXIoKQogI2VuZGlmCiB9CiAKK3ZvaWQgRXZl
bnRIYW5kbGVyOjpub2RlV2lsbEJlUmVtb3ZlZChOb2RlKiBub2RlVG9CZVJlbW92ZWQpCit7Cisg
ICAgaWYgKG5vZGVUb0JlUmVtb3ZlZC0+Y29udGFpbnMobV9jbGlja05vZGUuZ2V0KCkpKQorICAg
ICAgICBtX2NsaWNrTm9kZSA9IDA7Cit9CisKIHN0YXRpYyB2b2lkIHNldFNlbGVjdGlvbklmTmVl
ZGVkKEZyYW1lU2VsZWN0aW9uKiBzZWxlY3Rpb24sIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5l
d1NlbGVjdGlvbikKIHsKICAgICBBU1NFUlQoc2VsZWN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5oCmluZGV4IGFhNDQ0YjM0NjYzYjU5YzM3OGE0MTdjNzJlZGRlYzljZWFiZDkyYTEu
LjUzNjk0MzhiZDQ3MDEzOTBlNzE0ODFiOTk0OWRhMmY3YzMwNzk0NDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuaApAQCAtOTgsNiArOTgsNyBAQCBwdWJsaWM6CiAgICAgfkV2ZW50SGFu
ZGxlcigpOwogCiAgICAgdm9pZCBjbGVhcigpOworICAgIHZvaWQgbm9kZVdpbGxCZVJlbW92ZWQo
Tm9kZSopOwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICB2b2lkIHVwZGF0ZVNlbGVj
dGlvbkZvck1vdXNlRHJhZygpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93064</attachid>
            <date>2011-05-10 19:59:40 -0700</date>
            <delta_ts>2011-05-13 14:35:19 -0700</delta_ts>
            <desc>Added instructions for manual testing</desc>
            <filename>bug-60600-20110510195939.patch</filename>
            <type>text/plain</type>
            <size>12037</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODYyMDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyMDQ5NjY2Yjc5YTZmNTBmNjFmN2Y5
OGRiMGYwOThkOTM5MWUwNDYwLi5kMWY1MTUwNzQ0ZGRjNTYzN2VhN2Y5ODZlMDgyMTY4NTI1MjE3
YTJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDUtMTAgIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgY2xpY2sgZXZlbnQgc2hvdWxkbid0IGZpcmUgd2hlbiB0aGUgdGFyZ2V0IGlzIGV2
ZXIgcmVtb3ZlZCBpbiBtb3VzZXVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02MDYwMAorCisgICAgICAgIEFkZGVkIHRlc3RzIHRvIGVuc3VyZSBXZWJL
aXQgZG9lcyBub3QgZmlyZSBjbGljayBldmVudCB3aGVuIHRoZSB0YXJnZXQgbm9kZQorICAgICAg
ICBpcyByZW1vdmVkIGluIG1vdXNldXAgZXZlbnQuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9y
ZW1vdmUtdGFyZ2V0LWluLW1vdXNldXAtZGVlcC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZXZlbnRzL3JlbW92ZS10YXJnZXQtaW4tbW91c2V1cC1kZWVwLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZXZlbnRzL3JlbW92ZS10YXJnZXQtaW4tbW91c2V1cC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3JlbW92ZS10YXJnZXQtaW4tbW91
c2V1cC1pbnNlcnRiYWNrLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVu
dHMvcmVtb3ZlLXRhcmdldC1pbi1tb3VzZXVwLWluc2VydGJhY2suaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9ldmVudHMvcmVtb3ZlLXRhcmdldC1pbi1tb3VzZXVwLXR3aWNlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvcmVtb3ZlLXRhcmdldC1pbi1tb3Vz
ZXVwLXR3aWNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3JlbW92ZS10YXJn
ZXQtaW4tbW91c2V1cC5odG1sOiBBZGRlZC4KKwogMjAxMS0wNS0xMCAgQWRhbSBLbGVpbiAgPGFk
YW1rQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbW92ZS10YXJnZXQtaW4tbW91c2V1
cC1kZWVwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbW92ZS10YXJn
ZXQtaW4tbW91c2V1cC1kZWVwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZDdiODgwMGNiNDY1
NjU3ZTU2M2M1YzI3OWM5ZGE1OWRmYjU2ZGE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvcmVtb3ZlLXRhcmdldC1pbi1tb3VzZXVwLWRlZXAtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgV2ViS2l0IGRvZXMgbm90IGZpcmUg
Y2xpY2sgZXZlbnQgb24gYSBub2RlIHRoYXQgaGFzIGJlZW4gcmVtb3ZlZCBpbiBtb3VzZXVwIGV2
ZW50LgorCitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZW1vdmUt
dGFyZ2V0LWluLW1vdXNldXAtZGVlcC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVt
b3ZlLXRhcmdldC1pbi1tb3VzZXVwLWRlZXAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MThhYjA2YzY4NjI3
YjhiMjE1MmRkMmQ5ZDExOGFhOWU0MWJmMTk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvcmVtb3ZlLXRhcmdldC1pbi1tb3VzZXVwLWRlZXAuaHRtbApAQCAtMCww
ICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8cD5UaGlzIHRlc3Qg
ZW5zdXJlcyBXZWJLaXQgZG9lcyBub3QgZmlyZSBjbGljayBldmVudCBvbiBhIG5vZGUgdGhhdCBo
YXMgYmVlbiByZW1vdmVkIGluIG1vdXNldXAgZXZlbnQuPC9wPgorPGRpdiBpZD0idGVzdCI+PGIg
aWQ9InRhcmdldCI+PGVtPjxzcGFuIG9ubW91c2V1cD0ibW91c2V1cCgpIiBvbmNsaWNrPSJ0ZXN0
LmlubmVySFRNTCA9ICdGQUlMJzsiPmNsaWNrIGhlcmU8L3NwYW4+PC9lbT48L2I+PC9kaXY+Cis8
c2NyaXB0PgorCit2YXIgdGVzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7Cit2
YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworCitmdW5jdGlv
biBtb3VzZXVwKCkgeworICAgIHRlc3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoJ1BBU1MnKSk7CisgICAgdGVzdC5yZW1vdmVDaGlsZCh0YXJnZXQpOworICAgIHRlc3QuYXBw
ZW5kQ2hpbGQodGFyZ2V0KTsKKyAgICB0ZXN0LnJlbW92ZUNoaWxkKHRhcmdldCk7Cit9CisKK2lm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgIHRl
c3QuaW5uZXJIVE1MID0gJ0ZBSUwgLSB0aGlzIHRlc3QgcmVxdWlyZXMgZXZlbnRTZW5kZXInOwor
ICAgIGVsc2UgeworICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh0YXJnZXQub2Zmc2V0
TGVmdCArIHRhcmdldC5vZmZzZXRXaWR0aCAvIDIsIHRhcmdldC5vZmZzZXRUb3AgKyB0YXJnZXQu
b2Zmc2V0SGVpZ2h0IC8gMik7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAg
ICAgICBldmVudFNlbmRlci5sZWFwRm9yd2FyZCgyMDApOworICAgICAgICBldmVudFNlbmRlci5t
b3VzZVVwKCk7CisgICAgfQorfQorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbW92ZS10YXJnZXQtaW4tbW91c2V1cC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZW1vdmUtdGFyZ2V0LWluLW1v
dXNldXAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmMjgwNWM4MWMzZjBiYTk2MDc2ZDgyNTFh
YmQwNmNkMmY3ODU2YWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9yZW1vdmUtdGFyZ2V0LWluLW1vdXNldXAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAor
VGhpcyB0ZXN0IGVuc3VyZXMgV2ViS2l0IGRvZXMgbm90IGZpcmUgY2xpY2sgZXZlbnQgb24gYSBu
b2RlIHRoYXQgaGFzIGJlZW4gcmVtb3ZlZCBpbiBtb3VzZXVwIGV2ZW50LiBUbyBtYW51YWxseSB0
ZXN0LCBjbGljayBhIGJveCBiZWxvdy4KKworUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvcmVtb3ZlLXRhcmdldC1pbi1tb3VzZXVwLWluc2VydGJhY2stZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVtb3ZlLXRhcmdldC1pbi1tb3VzZXVwLWlu
c2VydGJhY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkNTAwNmY0NmY1M2IzNzAwYTIwZThj
YjJjYTNmOWI0NWE1NjIyYWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9yZW1vdmUtdGFyZ2V0LWluLW1vdXNldXAtaW5zZXJ0YmFjay1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzIEBACitUaGlzIHRlc3QgZW5zdXJlcyBXZWJLaXQgZG9lcyBub3QgZmlyZSBjbGlj
ayBldmVudCBvbiBhIG5vZGUgdGhhdCBoYXMgYmVlbiByZW1vdmVkIGFuZCBpbnNlcnRlZCBiYWNr
IGluIG1vdXNldXAgZXZlbnQuCisKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3JlbW92ZS10YXJnZXQtaW4tbW91c2V1cC1pbnNlcnRiYWNrLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9yZW1vdmUtdGFyZ2V0LWluLW1vdXNldXAtaW5zZXJ0YmFjay5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjNmMjU0MGVlOGZlNjU2ODBhYjhjYTBjMGQyODlhNDgwY2JmMGI2NTcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZW1vdmUtdGFyZ2V0LWlu
LW1vdXNldXAtaW5zZXJ0YmFjay5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1cmVzIFdlYktpdCBkb2VzIG5vdCBm
aXJlIGNsaWNrIGV2ZW50IG9uIGEgbm9kZSB0aGF0IGhhcyBiZWVuIHJlbW92ZWQgYW5kIGluc2Vy
dGVkIGJhY2sgaW4gbW91c2V1cCBldmVudC48L3A+Cis8ZGl2IGlkPSJ0ZXN0Ij48c3BhbiBpZD0i
dGFyZ2V0IiBvbm1vdXNldXA9Im1vdXNldXAoKSIgb25jbGljaz0idGVzdC5pbm5lckhUTUwgPSAn
RkFJTCc7Ij5jbGljayBoZXJlPC9zcGFuPjwvZGl2PgorPHNjcmlwdD4KKwordmFyIHRlc3QgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpOwordmFyIHRhcmdldCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKworZnVuY3Rpb24gbW91c2V1cCgpIHsKKyAgICB0ZXN0
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdQQVNTJykpOworICAgIHRlc3Qu
cmVtb3ZlQ2hpbGQodGFyZ2V0KTsKKyAgICB0ZXN0LmFwcGVuZENoaWxkKHRhcmdldCk7Cit9CisK
K2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAg
IHRlc3QuaW5uZXJIVE1MID0gJ0ZBSUwgLSB0aGlzIHRlc3QgcmVxdWlyZXMgZXZlbnRTZW5kZXIn
OworICAgIGVsc2UgeworICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh0YXJnZXQub2Zm
c2V0TGVmdCArIHRhcmdldC5vZmZzZXRXaWR0aCAvIDIsIHRhcmdldC5vZmZzZXRUb3AgKyB0YXJn
ZXQub2Zmc2V0SGVpZ2h0IC8gMik7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwor
ICAgICAgICBldmVudFNlbmRlci5sZWFwRm9yd2FyZCgyMDApOworICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVVwKCk7CisgICAgICAgIHRlc3QucmVtb3ZlQ2hpbGQodGFyZ2V0KTsKKyAgICB9Cit9
CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvcmVtb3ZlLXRhcmdldC1pbi1tb3VzZXVwLXR3aWNlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbW92ZS10YXJnZXQtaW4tbW91c2V1cC10d2ljZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTUyOWMwMTdhZDlmNTQ3MDJhMGIxMjcyZDg1YzQ1NzMw
NWUxOGU1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbW92
ZS10YXJnZXQtaW4tbW91c2V1cC10d2ljZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitU
aGlzIHRlc3QgZW5zdXJlcyBXZWJLaXQgZG9lcyBub3QgZmlyZSBjbGljayBldmVudCBvbiBhIG5v
ZGUgdGhhdCBoYXMgYmVlbiByZW1vdmVkIHR3aWNlIGluIG1vdXNldXAgZXZlbnQuCisKK1BBU1MK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3JlbW92ZS10YXJnZXQtaW4tbW91
c2V1cC10d2ljZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVtb3ZlLXRhcmdldC1p
bi1tb3VzZXVwLXR3aWNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGIyODJiNDgwNjllMWU3YjAzZmY2Mjkz
NGYxYjM0ZDIwNDY5NGUxYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3JlbW92ZS10YXJnZXQtaW4tbW91c2V1cC10d2ljZS5odG1sCkBAIC0wLDAgKzEsMzIgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1cmVzIFdl
YktpdCBkb2VzIG5vdCBmaXJlIGNsaWNrIGV2ZW50IG9uIGEgbm9kZSB0aGF0IGhhcyBiZWVuIHJl
bW92ZWQgdHdpY2UgaW4gbW91c2V1cCBldmVudC48L3A+Cis8ZGl2IGlkPSJ0ZXN0Ij48c3BhbiBp
ZD0idGFyZ2V0IiBvbm1vdXNldXA9Im1vdXNldXAoKSIgb25jbGljaz0idGVzdC5pbm5lckhUTUwg
PSAnRkFJTCc7Ij5jbGljayBoZXJlPC9zcGFuPjwvZGl2PgorPHNjcmlwdD4KKwordmFyIHRlc3Qg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpOwordmFyIHRhcmdldCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKworZnVuY3Rpb24gbW91c2V1cCgpIHsKKyAgICB0
ZXN0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdQQVNTJykpOworICAgIHRl
c3QucmVtb3ZlQ2hpbGQodGFyZ2V0KTsKKyAgICB0ZXN0LmFwcGVuZENoaWxkKHRhcmdldCk7Cisg
ICAgdGVzdC5yZW1vdmVDaGlsZCh0YXJnZXQpOworfQorCitpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAg
IGlmICghd2luZG93LmV2ZW50U2VuZGVyKQorICAgICAgICB0ZXN0LmlubmVySFRNTCA9ICdGQUlM
IC0gdGhpcyB0ZXN0IHJlcXVpcmVzIGV2ZW50U2VuZGVyJzsKKyAgICBlbHNlIHsKKyAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8odGFyZ2V0Lm9mZnNldExlZnQgKyB0YXJnZXQub2Zmc2V0
V2lkdGggLyAyLCB0YXJnZXQub2Zmc2V0VG9wICsgdGFyZ2V0Lm9mZnNldEhlaWdodCAvIDIpOwor
ICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubGVh
cEZvcndhcmQoMjAwKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIH0KK30K
KworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9yZW1vdmUtdGFyZ2V0LWluLW1vdXNldXAuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3JlbW92ZS10YXJnZXQtaW4tbW91c2V1cC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3ZmU1
YjY3Njk5NGZjMDU4ZDFlMTFiYzYxY2QzZjI5NTA5OTE5N2MKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZW1vdmUtdGFyZ2V0LWluLW1vdXNldXAuaHRtbApAQCAt
MCwwICsxLDMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8cD5UaGlzIHRl
c3QgZW5zdXJlcyBXZWJLaXQgZG9lcyBub3QgZmlyZSBjbGljayBldmVudCBvbiBhIG5vZGUgdGhh
dCBoYXMgYmVlbiByZW1vdmVkIGluIG1vdXNldXAgZXZlbnQuCitUbyBtYW51YWxseSB0ZXN0LCBj
bGljayBhIGJveCBiZWxvdy48L3A+Cis8ZGl2IGlkPSJ0ZXN0Ij48aW1nIHNyYz0iIiB3aWR0aD0i
MTAwIiBoZWlnaHQ9IjEwMCIgYm9yZGVyPSIxIiBpZD0idGFyZ2V0IiBvbm1vdXNldXA9Im1vdXNl
dXAoKSIgb25jbGljaz0idGVzdC5pbm5lckhUTUwgPSAnRkFJTCc7Ij48L2Rpdj4KKzxzY3JpcHQ+
CisKK3ZhciB0ZXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKK3ZhciB0YXJn
ZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisKK2Z1bmN0aW9uIG1vdXNl
dXAoKSB7CisgICAgdGVzdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnUEFT
UycpKTsKKyAgICB0YXJnZXQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0YXJnZXQpOworfQorCitp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKQorICAgICAgICB0
ZXN0LmlubmVySFRNTCA9ICdGQUlMIC0gdGhpcyB0ZXN0IHJlcXVpcmVzIGV2ZW50U2VuZGVyJzsK
KyAgICBlbHNlIHsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8odGFyZ2V0Lm9mZnNl
dExlZnQgKyB0YXJnZXQub2Zmc2V0V2lkdGggLyAyLCB0YXJnZXQub2Zmc2V0VG9wICsgdGFyZ2V0
Lm9mZnNldEhlaWdodCAvIDIpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAg
ICAgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMjAwKTsKKyAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VVcCgpOworICAgIH0KK30KKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggY2U5YzJmMjMxMmNhY2UzNWJlZTViZTQ4NzBiZTkyNmE1M2UxMGUzZS4uYjlhZWIw
NjI0MmZjYjQ3MDk3NjQxOGExNzhhZmZjYTU3ZDNjYmEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI2IEBACisyMDExLTA1LTEwICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGNsaWNrIGV2ZW50
IHNob3VsZG4ndCBmaXJlIHdoZW4gdGhlIHRhcmdldCBpcyBldmVyIHJlbW92ZWQgaW4gbW91c2V1
cAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA2MDAK
KworICAgICAgICBGaXhlZCB0aGUgYnVnIGJ5IGludmFsaWRhdGluZyBtX2NsaWNrTm9kZSB3aGVu
IGl0IG9yIG9uZSBvZiBpdHMgYW5jZXN0b3JzIGhhcyBiZWVuIHJlbW92ZWQKKyAgICAgICAgZnJv
bSB0aGUgZG9jdW1lbnQuIE5ldyBiZWhhdmlvciBtYXRjaGVzIEludGVybmV0IEV4cGxvcmVyIGFu
ZCBGaXJlZm94LgorCisgICAgICAgIFRlc3RzOiBmYXN0L2V2ZW50cy9yZW1vdmUtdGFyZ2V0LWlu
LW1vdXNldXAtZGVlcC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy9yZW1vdmUtdGFy
Z2V0LWluLW1vdXNldXAtaW5zZXJ0YmFjay5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50
cy9yZW1vdmUtdGFyZ2V0LWluLW1vdXNldXAtdHdpY2UuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9ldmVudHMvcmVtb3ZlLXRhcmdldC1pbi1tb3VzZXVwLmh0bWwKKworICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6bm9kZUNoaWxkcmVuV2ls
bEJlUmVtb3ZlZCk6IENhbGxzIEV2ZW50SGFuZGxlcjo6bm9kZVdpbGxCZVJlbW92ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6bm9kZVdpbGxCZVJlbW92ZWQpOiBDYWxscyBFdmVudEhh
bmRsZXI6Om5vZGVXaWxsQmVSZW1vdmVkLgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6bm9kZVdpbGxCZVJlbW92ZWQpOiBB
ZGRlZDsgaW52YWxpZGF0ZXMgbV9jbGlja05vZGUgd2hlbiBtX2NsaWNrTm9kZQorICAgICAgICBv
ciBvbmUgb2YgaXRzIGFuY2VzdG9yIGlzIHJlbW92ZWQgZnJvbSB0aGUgZG9jdW1lbnQuCisgICAg
ICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKwogMjAxMS0wNS0xMCAgUHJhdGlrIFNvbGFua2kg
IDxwc29sYW5raUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3Nr
dXJ5YWtvdi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDJkYWRhNjY3MjNhMzkzNmZjYzcw
ODRlMTcyZjUzOGEyNzA5OTJmZDUuLjExZGM2MjM3ZDNiMmM2MmU4YzQ5ZDc2YmNhOTNhYmRlNzk1
Y2E4OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMzM5OSw2ICszMzk5LDcgQEAgdm9p
ZCBEb2N1bWVudDo6bm9kZUNoaWxkcmVuV2lsbEJlUmVtb3ZlZChDb250YWluZXJOb2RlKiBjb250
YWluZXIpCiAKICAgICBpZiAoRnJhbWUqIGZyYW1lID0gdGhpcy0+ZnJhbWUoKSkgewogICAgICAg
ICBmb3IgKE5vZGUqIG4gPSBjb250YWluZXItPmZpcnN0Q2hpbGQoKTsgbjsgbiA9IG4tPm5leHRT
aWJsaW5nKCkpIHsKKyAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+bm9kZVdpbGxC
ZVJlbW92ZWQobik7CiAgICAgICAgICAgICBmcmFtZS0+c2VsZWN0aW9uKCktPm5vZGVXaWxsQmVS
ZW1vdmVkKG4pOwogICAgICAgICAgICAgZnJhbWUtPnBhZ2UoKS0+ZHJhZ0NhcmV0Q29udHJvbGxl
cigpLT5ub2RlV2lsbEJlUmVtb3ZlZChuKTsKICAgICAgICAgfQpAQCAtMzQxOCw2ICszNDE5LDcg
QEAgdm9pZCBEb2N1bWVudDo6bm9kZVdpbGxCZVJlbW92ZWQoTm9kZSogbikKICAgICB9CiAKICAg
ICBpZiAoRnJhbWUqIGZyYW1lID0gdGhpcy0+ZnJhbWUoKSkgeworICAgICAgICBmcmFtZS0+ZXZl
bnRIYW5kbGVyKCktPm5vZGVXaWxsQmVSZW1vdmVkKG4pOwogICAgICAgICBmcmFtZS0+c2VsZWN0
aW9uKCktPm5vZGVXaWxsQmVSZW1vdmVkKG4pOwogICAgICAgICBmcmFtZS0+cGFnZSgpLT5kcmFn
Q2FyZXRDb250cm9sbGVyKCktPm5vZGVXaWxsQmVSZW1vdmVkKG4pOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCBkMjE1OTVhYmM1YTViMTIwNTVkMTkyYjIzN2My
ZWI0MmMwY2FlNTIzLi5jYmYxZTFjNWFhODdiYjY2N2U0MTk4NDJjNmY0ZTc2NTQ1YTIyYTA3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0yNTgsNiArMjU4LDEyIEBAIHZv
aWQgRXZlbnRIYW5kbGVyOjpjbGVhcigpCiAjZW5kaWYKIH0KIAordm9pZCBFdmVudEhhbmRsZXI6
Om5vZGVXaWxsQmVSZW1vdmVkKE5vZGUqIG5vZGVUb0JlUmVtb3ZlZCkKK3sKKyAgICBpZiAobm9k
ZVRvQmVSZW1vdmVkLT5jb250YWlucyhtX2NsaWNrTm9kZS5nZXQoKSkpCisgICAgICAgIG1fY2xp
Y2tOb2RlID0gMDsKK30KKwogc3RhdGljIHZvaWQgc2V0U2VsZWN0aW9uSWZOZWVkZWQoRnJhbWVT
ZWxlY3Rpb24qIHNlbGVjdGlvbiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9u
KQogewogICAgIEFTU0VSVChzZWxlY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgK
aW5kZXggYWE0NDRiMzQ2NjNiNTljMzc4YTQxN2M3MmVkZGVjOWNlYWJkOTJhMS4uNTM2OTQzOGJk
NDcwMTM5MGU3MTQ4MWI5OTQ5ZGEyZjdjMzA3OTQ0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5oCkBAIC05OCw2ICs5OCw3IEBAIHB1YmxpYzoKICAgICB+RXZlbnRIYW5kbGVyKCk7CiAK
ICAgICB2b2lkIGNsZWFyKCk7CisgICAgdm9pZCBub2RlV2lsbEJlUmVtb3ZlZChOb2RlKik7CiAK
ICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uRm9yTW91
c2VEcmFnKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>93104</attachid>
            <date>2011-05-11 04:42:47 -0700</date>
            <delta_ts>2011-05-11 04:42:47 -0700</delta_ts>
            <desc>benchmark</desc>
            <filename>click-node-bench.html</filename>
            <type>text/html</type>
            <size>1191</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">PCFET0NUWVBFPgo8aHRtbD4KPGJvZHkgb25iZWZvcmV1bmxvYWQ9ImxvZygnbG9hZGluZy4uLicp
Ij4KPGRpdiBpZD0iZGVlcC1jbGljay1ub2RlLXdyYXBwZXIiPjwvZGl2Pgo8ZGl2IGlkPSJub2Rl
cy10by1yZW1vdmUiPjwvZGl2Pgo8ZGl2IGlkPSJsb2ciIHN0eWxlPSJib3JkZXI6IHNvbGlkIDFw
eDsgd2lkdGg6IDMwZXg7Ij5sb2FkaW5nLi4uPC9kaXY+CjxzY3JpcHQ+CgpmdW5jdGlvbiBsb2co
bXNnKSB7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nJykuaW5uZXJIVE1MID0gbXNn
Owp9Cgpmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7IGkrKykKICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdub2Rlcy10by1yZW1vdmUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdzcGFuJykpOwoKdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVl
cC1jbGljay1ub2RlLXdyYXBwZXInKTsKdmFyIHBhcmVudCA9IHdyYXBwZXI7CmZvciAodmFyIGkg
PSAwOyBpIDwgMTAwMDsgaSsrKSB7CiAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2JykpOwogICAgcGFyZW50ID0gcGFyZW50LmZpcnN0Q2hpbGQ7Cn0KCnBh
cmVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnY2xpY2sgaGVyZScpKTsK
CmxvZygncmVhZHknKTsKCnBhcmVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgZnVuY3Rp
b24gKGV2ZW50KSB7CiAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCk7
CgogICAgdmFyIHN0YXJ0ID0gKG5ldyBEYXRlKS5nZXRUaW1lKCk7CgogICAgdmFyIG5vZGVzVG9S
ZW1vdmUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm9kZXMtdG8tcmVtb3ZlJyk7CiAgICB3
aGlsZSAobm9kZXNUb1JlbW92ZS5maXJzdENoaWxkKQogICAgICAgIG5vZGVzVG9SZW1vdmUucmVt
b3ZlQ2hpbGQobm9kZXNUb1JlbW92ZS5maXJzdENoaWxkKTsKCiAgICB2YXIgZW5kID0gKG5ldyBE
YXRlKS5nZXRUaW1lKCk7CiAgICBsb2coJ2RvbmUgLSAnICsgKGVuZCAtIHN0YXJ0KSArICdtcycp
OwoKICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24o
KTsKICAgIHJldHVybiBmYWxzZTsKfSk7Cgo8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+
</data>

          </attachment>
      

    </bug>

</bugzilla>