<?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>72940</bug_id>
          
          <creation_ts>2011-11-22 04:49:40 -0800</creation_ts>
          <short_desc>A test that mutation happens when asynchronous spell checking is in process.</short_desc>
          <delta_ts>2011-12-18 23:00:15 -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>
          
          <blocked>74479</blocked>
    
    <blocked>71991</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>morrita</cc>
    
    <cc>shinyak</cc>
    
    <cc>shinyak</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>507523</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-11-22 04:49:40 -0800</bug_when>
    <thetext>A test that mutation happens in asynchronous spellchecking lacks.
This is required.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521646</commentid>
    <comment_count>1</comment_count>
      <attachid>119373</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-12-14 21:54:51 -0800</bug_when>
    <thetext>Created attachment 119373
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521771</commentid>
    <comment_count>2</comment_count>
      <attachid>119373</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-12-15 02:37:05 -0800</bug_when>
    <thetext>Comment on attachment 119373
Patch

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

Could you check actual marker existence?

&gt; LayoutTests/editing/spelling/spellcheck-async-mutation.html:125
&gt; +    function selectAll(elem) {

It doesn&apos;t look to select all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522454</commentid>
    <comment_count>3</comment_count>
      <attachid>119544</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-12-15 19:39:25 -0800</bug_when>
    <thetext>Created attachment 119544
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522457</commentid>
    <comment_count>4</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-12-15 19:42:32 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 119373 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=119373&amp;action=review
&gt; 
&gt; Could you check actual marker existence?

Done.
In &apos;move&apos;, markers are there on the original (moved) element
In &apos;mutate&apos;, marker disappears as expected.

In &apos;mutate&apos;, I&apos;ve changed &quot;zz, zz, zz&quot; to &quot;zzz&quot;. So the first &quot;zz&quot; are the same, we afraid that &quot;zz&quot; might be marked. But that case didn&apos;t happen.

&gt; 
&gt; &gt; LayoutTests/editing/spelling/spellcheck-async-mutation.html:125
&gt; &gt; +    function selectAll(elem) {
&gt; 
&gt; It doesn&apos;t look to select all.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522618</commentid>
    <comment_count>5</comment_count>
      <attachid>119544</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-16 01:05:06 -0800</bug_when>
    <thetext>Comment on attachment 119544
Patch

Clearing flags on attachment: 119544

Committed r103044: &lt;http://trac.webkit.org/changeset/103044&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522619</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-16 01:05:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522658</commentid>
    <comment_count>7</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-12-16 03:10:46 -0800</bug_when>
    <thetext>Reverted r103044 for reason:

Added test doesn&apos;t pass on Mac SL and Mac Chromium

Committed r103053: &lt;http://trac.webkit.org/changeset/103053&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522660</commentid>
    <comment_count>8</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-12-16 03:13:32 -0800</bug_when>
    <thetext>This isn&apos;t  real failure but 
the timing when &quot;TEST COMPLETE&quot; is printed was different between Mac, Chromium/Mac and others.
We need to find the way to stabilize it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523707</commentid>
    <comment_count>9</comment_count>
      <attachid>119812</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-12-18 21:42:35 -0800</bug_when>
    <thetext>Created attachment 119812
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523709</commentid>
    <comment_count>10</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-12-18 21:43:02 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; Created an attachment (id=119812) [details]
&gt; Patch

This is a try to stabilize the test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523747</commentid>
    <comment_count>11</comment_count>
      <attachid>119812</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-18 23:00:10 -0800</bug_when>
    <thetext>Comment on attachment 119812
Patch

Clearing flags on attachment: 119812

Committed r103220: &lt;http://trac.webkit.org/changeset/103220&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523748</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-18 23:00:15 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119373</attachid>
            <date>2011-12-14 21:54:51 -0800</date>
            <delta_ts>2011-12-15 19:39:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72940-20111215145449.patch</filename>
            <type>text/plain</type>
            <size>9781</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyODQ2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODNhY2MxZDM5YzYyMjU0Y2JlZWQw
MjYzMzM4N2NhY2VlNWY4YWE1My4uZjc4MTFlMDNjNDViYmJlOTJhNjVmMTIyNGQxYzBiNmViYWVh
MTQ2ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDExLTEyLTE0ICBTaGlueWEgS2F3YW5ha2Eg
IDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgQSB0ZXN0IHRoYXQgbXV0YXRpb24gaGFw
cGVucyB3aGVuIGFzeW5jaHJvbm91cyBzcGVsbCBjaGVja2luZyBpcyBpbiBwcm9jZXNzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI5NDAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIHRlc3Qg
dGhhdCBtdXRhdGlvbiBoYXBwZW5zIHdoZW4gc3BlbGxjaGVja2luZy4KKyAgICAgICAgVGhpcyB0
ZXN0IGNvbmZpcm1zIGNyYXNoIHdvbid0IGhhcHBlbi4KKworICAgICAgICAqIGVkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxjaGVjay1hc3luYy1tdXRhdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1hc3luYy1tdXRhdGlvbi5odG1sOgor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy1s
ZW9wYXJkL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKwogMjAxMS0x
Mi0xNCAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIE5lZWQg
YSB3YXkgdG8gcHJvZHVjZSBsZWFuZXIgbWFya3VwIHdoZW4gcGFzdGluZyBhIGZyYWdtZW50IGNv
bnRhaW5pbmcgdmVyYm9zZSBtYXJrdXAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcv
c3BlbGxpbmcvc3BlbGxjaGVjay1hc3luYy1tdXRhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXN5bmMtbXV0YXRpb24tZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJkNTQ4ZDg3N2UxNGIxOTY5NmM0Y2ExMjNlZjY1ODUyNDBhMGZjNjAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hl
Y2stYXN5bmMtbXV0YXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDUgQEAKK1Rlc3QgZm9y
IGFzeW5jaHJvbm91cyBzcGVsbGNoZWNraW5nIGluIGNhc2UgRE9NIG11dGF0aW9uIGhhcHBlbnMu
IFRoaXMgdGVzdCBjaGVja3MgY3Jhc2ggd29uJ3QgaGFwcGVuIGlmIERPTSBtdXRhdGlvbnMgaGFw
cGVuZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKK1Rlc3QgU3RhcnQ6IDEKK1BBU1MgcmVx
dWVzdElkIGlzID49IGxhc3RSZXF1ZXN0SWQgKyAxCitQQVNTIFJlcXVlc3QgaGFzIGJlZW4gcHJv
Y2Vzc2VkLgorCitUZXN0IFN0YXJ0OiAyCitQQVNTIHJlcXVlc3RJZCBpcyA+PSBsYXN0UmVxdWVz
dElkICsgMQorUEFTUyBSZXF1ZXN0IGhhcyBiZWVuIHByb2Nlc3NlZC4KKworVGVzdCBTdGFydDog
MworUEFTUyByZXF1ZXN0SWQgaXMgPj0gbGFzdFJlcXVlc3RJZCArIDEKK1BBU1MgUmVxdWVzdCBo
YXMgYmVlbiBwcm9jZXNzZWQuCisKK1Rlc3QgU3RhcnQ6IDQKK1BBU1MgcmVxdWVzdElkIGlzID49
IGxhc3RSZXF1ZXN0SWQgKyAxCitQQVNTIFJlcXVlc3QgaGFzIGJlZW4gcHJvY2Vzc2VkLgorCitU
ZXN0IFN0YXJ0OiA1CitQQVNTIHJlcXVlc3RJZCBpcyA+PSBsYXN0UmVxdWVzdElkICsgMQorUEFT
UyBSZXF1ZXN0IGhhcyBiZWVuIHByb2Nlc3NlZC4KKworVGVzdCBTdGFydDogNgorUEFTUyByZXF1
ZXN0SWQgaXMgPj0gbGFzdFJlcXVlc3RJZCArIDEKK1BBU1MgUmVxdWVzdCBoYXMgYmVlbiBwcm9j
ZXNzZWQuCisKK1Rlc3QgU3RhcnQ6IDcKK1BBU1MgcmVxdWVzdElkIGlzID49IGxhc3RSZXF1ZXN0
SWQgKyAxCitQQVNTIFJlcXVlc3QgaGFzIGJlZW4gcHJvY2Vzc2VkLgorCitUZXN0IFN0YXJ0OiA4
CitQQVNTIHJlcXVlc3RJZCBpcyA+PSBsYXN0UmVxdWVzdElkICsgMQorUEFTUyBSZXF1ZXN0IGhh
cyBiZWVuIHByb2Nlc3NlZC4KKworVGVzdCBTdGFydDogOQorUEFTUyByZXF1ZXN0SWQgaXMgPj0g
bGFzdFJlcXVlc3RJZCArIDEKK1BBU1MgUmVxdWVzdCBoYXMgYmVlbiBwcm9jZXNzZWQuCit6eiB6
eiB6egorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hl
Y2stYXN5bmMtbXV0YXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3Bl
bGxjaGVjay1hc3luYy1tdXRhdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2OWZhYzExZDkxY2JhNWY4
ODFjOTFkYTc0YWYyNjk5Y2Q3YWM2NmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXN5bmMtbXV0YXRpb24uaHRtbApAQCAtMCwwICsx
LDE4OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2VkaXRpbmcuanMiPjwvc2NyaXB0PgorPHN0eWxlPgor
LmVkaXRpbmcgeworICAgIGJvcmRlcjogMnB4IHNvbGlkIHJlZDsKKyAgICBwYWRkaW5nOiA2cHg7
CisgICAgZm9udC1zaXplOiAxOHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPHBy
ZSBpZD0iZGVzY3JpcHRpb24iPjwvcHJlPgorPHByZSBpZD0iY29uc29sZSI+PC9wcmU+CisKKzxk
aXYgaWQ9InNvdXJjZSI+enogenogeno8L3RleHRhcmVhPgorCis8ZGl2IGlkPSJjb250YWluZXIi
PjwvZGl2PgorCis8ZGl2IGlkPSJtb3ZlLXRhcmdldCI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbigKKyAgICAiVGVzdCBmb3IgYXN5bmNocm9ub3VzIHNwZWxsY2hlY2tpbmcgaW4gY2Fz
ZSBET00gbXV0YXRpb24gaGFwcGVucy4gIiArCisgICAgIlRoaXMgdGVzdCBjaGVja3MgY3Jhc2gg
d29uJ3QgaGFwcGVuIGlmIERPTSBtdXRhdGlvbnMgaGFwcGVuZWQuIgorKTsKKworaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRBc3luY2hyb25vdXNTcGVsbENo
ZWNraW5nRW5hYmxlZCh0cnVlKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7Cit9CisKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXRVbmlm
aWVkVGV4dENoZWNraW5nRW5hYmxlZChkb2N1bWVudCwgdHJ1ZSk7CisKK3ZhciBzb3VyY2VJZHMg
PSBbJ3NvdXJjZSddOwordmFyIGRlc3RFbGVtcyA9IFsndGV4dGFyZWEnLCAnaW5wdXQnLCAnY29u
dGVudGVkaXRhYmxlJ107Cit2YXIgdHdlYWtzID0gWydkZWxldGUnLCAnbW92ZScsICdtdXRhdGUn
XTsKKwordmFyIHRlc3REYXRhID0gW107Citmb3IgKHZhciBpID0gMDsgaSA8IHNvdXJjZUlkcy5s
ZW5ndGg7ICsraSkgeworICAgIGZvciAodmFyIGogPSAwOyBqIDwgZGVzdEVsZW1zLmxlbmd0aDsg
KytqKSB7CisgICAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgdHdlYWtzLmxlbmd0aDsgKytrKSB7
CisgICAgICAgICAgICB0ZXN0RGF0YS5wdXNoKHsKKyAgICAgICAgICAgICAgICBzb3VyY2VJZDog
c291cmNlSWRzW2ldLAorICAgICAgICAgICAgICAgIGRlc3RFbGVtOiBkZXN0RWxlbXNbal0sCisg
ICAgICAgICAgICAgICAgdHdlYWs6IHR3ZWFrc1trXQorICAgICAgICAgICAgfSk7CisgICAgICAg
IH0KKyAgICB9Cit9CisKK3ZhciBzZWwgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisKK2Z1bmN0
aW9uIHJlbW92ZUFsbENoaWxkcmVuKGVsZW0pIHsKKyAgICB3aGlsZSAoZWxlbS5maXJzdENoaWxk
KQorICAgICAgICBlbGVtLnJlbW92ZUNoaWxkKGVsZW0uZmlyc3RDaGlsZCk7Cit9CisKK3ZhciB0
ZXN0Tm8gPSAwOworZnVuY3Rpb24gZG9UZXN0SWZBbnkoKSB7CisgICAgLy8gQ2xlYW4gdXAgZmly
c3QuCisgICAgcmVtb3ZlQWxsQ2hpbGRyZW4oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRh
aW5lcicpKTsKKyAgICByZW1vdmVBbGxDaGlsZHJlbihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
bW92ZS10YXJnZXQnKSk7CisKKyAgICB2YXIgbmV4dCA9IHRlc3REYXRhLnNoaWZ0KCk7CisgICAg
aWYgKG5leHQpCisgICAgICAgIHJldHVybiB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpeyBk
b1Rlc3QoKyt0ZXN0Tm8sIG5leHQpOyB9LCAwKTsKKworICAgIC8vIE5vIG1vcmUgdGVzdHMuIFRl
YXIgZG93bi4KKyAgICByZW1vdmVBbGxDaGlsZHJlbihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
Y29udGFpbmVyJykpOworICAgIHJlbW92ZUFsbENoaWxkcmVuKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdtb3ZlLXRhcmdldCcpKTsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAg
ICBpbnRlcm5hbHMuc2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoZG9jdW1lbnQsIGZhbHNl
KTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoZmFs
c2UpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQor
fQorCit2YXIgcmVxdWVzdElkOwordmFyIGxhc3RSZXF1ZXN0SWQ7CitmdW5jdGlvbiBkb1Rlc3Qo
dGVzdE5vLCB0ZXN0RGF0YSkgeworICAgIGZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnQoa2luZCkgewor
ICAgICAgICBpZiAoa2luZCA9PSAndGV4dGFyZWEnIHx8IGtpbmQgPT0gJ2lucHV0JykKKyAgICAg
ICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGtpbmQpOworCisgICAgICAgIHZh
ciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgZGl2LnNldEF0
dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgdHJ1ZSk7CisgICAgICAgIHJldHVybiBkaXY7Cisg
ICAgfQorCisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJUZXN0IFN0YXJ0OiAiICsgdGVzdE5v
KTsKKworICAgIHZhciBzb3VyY2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0ZXN0RGF0YS5z
b3VyY2VJZCk7CisgICAgdmFyIGRlc3RpbmF0aW9uID0gY3JlYXRlRWxlbWVudCh0ZXN0RGF0YS5k
ZXN0RWxlbSk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpLmFwcGVu
ZENoaWxkKGRlc3RpbmF0aW9uKTsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAg
ICBsYXN0UmVxdWVzdElkID0gaW50ZXJuYWxzLmxhc3RTcGVsbENoZWNrUmVxdWVzdFNlcXVlbmNl
KGRvY3VtZW50KTsKKworICAgIC8vIEEgc3BlbGxjaGVjayByZXF1ZXN0IHdpbGwgYmUgaW52b2tl
ZC4KKyAgICBkb0NvcHlBbmRQYXN0ZShzb3VyY2UsIGRlc3RpbmF0aW9uKTsKKworICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAg
ICAgICAgcmVxdWVzdElkID0gaW50ZXJuYWxzLmxhc3RTcGVsbENoZWNrUmVxdWVzdFNlcXVlbmNl
KGRvY3VtZW50KTsKKyAgICAgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoJ3JlcXVlc3RJ
ZCcsICdsYXN0UmVxdWVzdElkICsgMScpOworCisgICAgICAgIC8vIFRoZW4sIHR3ZWFrCisgICAg
ICAgIHR3ZWFrKGRlc3RpbmF0aW9uLCB0ZXN0RGF0YS50d2Vhayk7CisKKyAgICAgICAgd2FpdEZv
clNwZWxsQ2hlY2tSZXF1ZXN0RG9uZShyZXF1ZXN0SWQsIDEwLCAxKTsKKyAgICB9LCAwKTsKK30K
KworZnVuY3Rpb24gZG9Db3B5QW5kUGFzdGUoc291cmNlLCBkZXN0KSB7CisgICAgZnVuY3Rpb24g
c2VsZWN0QWxsKGVsZW0pIHsKKyAgICAgICAgaWYgKGVsZW0gaW5zdGFuY2VvZiBIVE1MSW5wdXRF
bGVtZW50IHx8IGVsZW0gaW5zdGFuY2VvZiBIVE1MVGV4dEFyZWFFbGVtZW50KQorICAgICAgICAg
ICAgZWxlbS5mb2N1cygpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBzZWwuc2VsZWN0QWxs
Q2hpbGRyZW4oZWxlbSk7CisgICAgfQorCisgICAgc2VsLnNlbGVjdEFsbENoaWxkcmVuKHNvdXJj
ZSk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkNvcHkiKTsKKworICAgIHNlbGVjdEFsbChk
ZXN0KTsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiUGFzdGUiKTsKK30KKworZnVuY3Rpb24g
dHdlYWsoZWxlbSwga2luZCkgeworICAgIGlmIChraW5kID09ICdkZWxldGUnKSB7CisgICAgICAg
IGVsZW0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlbGVtKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGlmIChraW5kID09ICdtb3ZlJykgeworICAgICAgICB2YXIgdGFyZ2V0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vdmUtdGFyZ2V0Jyk7CisgICAgICAgIHRhcmdldC5hcHBl
bmRDaGlsZChlbGVtKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChraW5kID09
ICdtdXRhdGUnKSB7CisgICAgICAgIGlmIChlbGVtIGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVu
dCB8fCBlbGVtIGluc3RhbmNlb2YgSFRNTFRleHRBcmVhRWxlbWVudCkKKyAgICAgICAgICAgIGVs
ZW0udmFsdWUgPSAnYXBwbGUsIG9yYW5nZSc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVs
ZW0uaW5uZXJIVE1MID0gJ2FwcGxlLCBvcmFuZ2UnOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgdGVzdEZhaWxlZCgnVW5rbm93biBraW5kIG9mIHR3ZWFrJyk7Cit9CisKK2Z1bmN0aW9u
IHdhaXRGb3JTcGVsbENoZWNrUmVxdWVzdERvbmUocmVxdWVzdElkLCByZXN0VHJ5LCBuc2xlZXAp
IHsKKyAgICAvLyBObyBtb3JlIHRyeS4KKyAgICBpZiAocmVzdFRyeSA8PSAwKSB7CisgICAgICAg
IHRlc3RGYWlsZWQoJ0ZhaWxlZCB2ZXJpZmljYXRpb24nKTsKKyAgICAgICAgc2V0VGltZW91dChk
b1Rlc3RJZkFueSwgMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAod2luZG93
LmludGVybmFscykKKyAgICAgICAgdmFyIGxhc3RQcm9jZXNzZWRJZCA9IGludGVybmFscy5sYXN0
U3BlbGxDaGVja1Byb2Nlc3NlZFNlcXVlbmNlKGRvY3VtZW50KTsKKyAgICBpZiAocmVxdWVzdElk
ID09IGxhc3RQcm9jZXNzZWRJZCkgeworICAgICAgICB0ZXN0UGFzc2VkKCdSZXF1ZXN0IGhhcyBi
ZWVuIHByb2Nlc3NlZC4nKTsKKyAgICAgICAgc2V0VGltZW91dChkb1Rlc3RJZkFueSwgMCk7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IHdhaXRGb3JTcGVsbENoZWNrUmVxdWVzdERvbmUocmVxdWVzdElkLCByZXN0VHJ5IC0gMSwgbnNs
ZWVwICogMik7CisgICAgICAgIH0sIG5zbGVlcCk7CisgICAgfQorfQorCisKK2RvVGVzdElmQW55
KCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9T
a2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggZmNkNjhkZDhh
NDhkODk5ZWIyNDc4Y2E5YzQxNjhkZGYwNzdhMzE1My4uNzFkNWVjZDEwZjdkNWI2MzU3ZDQ0Y2I4
NjAwZDljNDI2NDE1NTQ2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Nr
aXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTEyMTksNiAr
MTIxOSw3IEBAIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctYmFja3NwYWNlLWJldHdlZW4tbGlu
ZXMuaHRtbAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlLmh0bWwKIGVkaXRpbmcv
c3BlbGxpbmcvc3BlbGxjaGVjay1xdWV1ZS5odG1sCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hl
Y2stc2VxdWVuY2VudW0uaHRtbAorZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWFzeW5jLW11
dGF0aW9uLmh0bWwKIAogIyBGb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTUwNzU4CiAjIFRoZXNlIHJlcXVpcmUgRFJUIHNldFNlcmlhbGl6ZUhUVFBMb2FkcyBpbXBs
ZW1lbnRhdGlvbiB0byBiZSByZWxpYWJsZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy1sZW9wYXJkL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFy
ZC9Ta2lwcGVkCmluZGV4IGRjMjljY2VjNmU5NTgxZDg4OWQ0NTlhOTkyYTk5ZWFiZGZiMGIxYjYu
LjYyOWIzZGNlNjQyODllMzU5MzUxMWMyYmM2NjVlZjQ5ZTU0ZDkwMmUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZApAQCAtOTYsNiArOTYsNyBAQCBodHRwL3Rlc3Rz
L21lZGlhL3ZpZGVvLXNlZWthYmxlLXN0YWxsLmh0bWwKIAogIyBBdmFpbGFibGUgMTAuNiBvciBs
YXRlcgogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlLmh0bWwKK2VkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxjaGVjay1hc3luYy1tdXRhdGlvbi5odG1sCiBlZGl0aW5nL3NwZWxsaW5nL2dy
YW1tYXItcGFzdGUuaHRtbAogZmFzdC9odG1sL3NldC10ZXh0LWRpcmVjdGlvbi5odG1sCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IGNiNDM3YTI3N2NmZWM1NTJhNTkyYWMwYTgzM2ZlZTQ4
NDkwZGUxN2EuLmRlNWM0MzM5ODk5NTk3N2I4NmFkOWRiMzFlZDk0ZDRiZDYwYjAxYzQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvU2tpcHBlZApAQCAtMTAwOSw2ICsxMDA5LDcgQEAgZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGluZy1hdHRyaWJ1dGUtYXQtY2hpbGQuaHRtbAogZWRpdGluZy9zcGVsbGluZy9zcGVs
bGNoZWNrLXBhc3RlLmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1xdWV1ZS5odG1s
CiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stc2VxdWVuY2VudW0uaHRtbAorZWRpdGluZy9z
cGVsbGluZy9zcGVsbGNoZWNrLWFzeW5jLW11dGF0aW9uLmh0bWwKIAogIyBbUXRdW0dUS10gZWRp
dGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWFzeW5jLmh0bWwgZmFpbHMKICMgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMDAzCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119544</attachid>
            <date>2011-12-15 19:39:25 -0800</date>
            <delta_ts>2011-12-18 21:42:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72940-20111216123924.patch</filename>
            <type>text/plain</type>
            <size>11545</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyODQ2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODNhY2MxZDM5YzYyMjU0Y2JlZWQw
MjYzMzM4N2NhY2VlNWY4YWE1My4uYTI2ZDllYzgxZjQ0MWM3Yzc4ODJiN2UwNDEzYTFhZGVjOWIz
MzU3YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDExLTEyLTE1ICBTaGlueWEgS2F3YW5ha2Eg
IDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgQSB0ZXN0IHRoYXQgbXV0YXRpb24gaGFw
cGVucyB3aGVuIGFzeW5jaHJvbm91cyBzcGVsbCBjaGVja2luZyBpcyBpbiBwcm9jZXNzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI5NDAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIHRlc3Qg
dGhhdCBtdXRhdGlvbiBoYXBwZW5zIHdoZW4gc3BlbGxjaGVja2luZy4KKyAgICAgICAgVGhpcyB0
ZXN0IGNvbmZpcm1zIGNyYXNoIHdvbid0IGhhcHBlbiwgYW5kIGhvdyBtYXJrZXJzIGFyZSB1c2Vk
LgorCisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWFzeW5jLW11dGF0aW9u
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNo
ZWNrLWFzeW5jLW11dGF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9T
a2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy1sZW9wYXJkL1NraXBwZWQ6CisgICAgICAg
ICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKwogMjAxMS0xMi0xNCAgRW5yaWNhIENhc3VjY2kgIDxl
bnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIE5lZWQgYSB3YXkgdG8gcHJvZHVjZSBsZWFuZXIg
bWFya3VwIHdoZW4gcGFzdGluZyBhIGZyYWdtZW50IGNvbnRhaW5pbmcgdmVyYm9zZSBtYXJrdXAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1hc3lu
Yy1tdXRhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3Nw
ZWxsY2hlY2stYXN5bmMtbXV0YXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkNTQ4ZDg3
N2UxNGIxOTY5NmM0Y2ExMjNlZjY1ODUyNDBhMGZjNjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXN5bmMtbXV0YXRpb24tZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNDUgQEAKK1Rlc3QgZm9yIGFzeW5jaHJvbm91cyBzcGVsbGNoZWNr
aW5nIGluIGNhc2UgRE9NIG11dGF0aW9uIGhhcHBlbnMuIFRoaXMgdGVzdCBjaGVja3MgY3Jhc2gg
d29uJ3QgaGFwcGVuIGlmIERPTSBtdXRhdGlvbnMgaGFwcGVuZWQuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKK1Rlc3QgU3RhcnQ6IDEKK1BBU1MgcmVxdWVzdElkIGlzID49IGxhc3RSZXF1ZXN0
SWQgKyAxCitQQVNTIFJlcXVlc3QgaGFzIGJlZW4gcHJvY2Vzc2VkLgorCitUZXN0IFN0YXJ0OiAy
CitQQVNTIHJlcXVlc3RJZCBpcyA+PSBsYXN0UmVxdWVzdElkICsgMQorUEFTUyBSZXF1ZXN0IGhh
cyBiZWVuIHByb2Nlc3NlZC4KKworVGVzdCBTdGFydDogMworUEFTUyByZXF1ZXN0SWQgaXMgPj0g
bGFzdFJlcXVlc3RJZCArIDEKK1BBU1MgUmVxdWVzdCBoYXMgYmVlbiBwcm9jZXNzZWQuCisKK1Rl
c3QgU3RhcnQ6IDQKK1BBU1MgcmVxdWVzdElkIGlzID49IGxhc3RSZXF1ZXN0SWQgKyAxCitQQVNT
IFJlcXVlc3QgaGFzIGJlZW4gcHJvY2Vzc2VkLgorCitUZXN0IFN0YXJ0OiA1CitQQVNTIHJlcXVl
c3RJZCBpcyA+PSBsYXN0UmVxdWVzdElkICsgMQorUEFTUyBSZXF1ZXN0IGhhcyBiZWVuIHByb2Nl
c3NlZC4KKworVGVzdCBTdGFydDogNgorUEFTUyByZXF1ZXN0SWQgaXMgPj0gbGFzdFJlcXVlc3RJ
ZCArIDEKK1BBU1MgUmVxdWVzdCBoYXMgYmVlbiBwcm9jZXNzZWQuCisKK1Rlc3QgU3RhcnQ6IDcK
K1BBU1MgcmVxdWVzdElkIGlzID49IGxhc3RSZXF1ZXN0SWQgKyAxCitQQVNTIFJlcXVlc3QgaGFz
IGJlZW4gcHJvY2Vzc2VkLgorCitUZXN0IFN0YXJ0OiA4CitQQVNTIHJlcXVlc3RJZCBpcyA+PSBs
YXN0UmVxdWVzdElkICsgMQorUEFTUyBSZXF1ZXN0IGhhcyBiZWVuIHByb2Nlc3NlZC4KKworVGVz
dCBTdGFydDogOQorUEFTUyByZXF1ZXN0SWQgaXMgPj0gbGFzdFJlcXVlc3RJZCArIDEKK1BBU1Mg
UmVxdWVzdCBoYXMgYmVlbiBwcm9jZXNzZWQuCit6eiB6eiB6egorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXN5bmMtbXV0YXRpb24uaHRtbCBi
L0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1hc3luYy1tdXRhdGlvbi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmYwMDZlMzlkNTk4MzU2OTg3ODdmOTllNTAxMTdkYmEyYjVlNDUxNmEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hl
Y2stYXN5bmMtbXV0YXRpb24uaHRtbApAQCAtMCwwICsxLDI0MyBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L2VkaXRpbmcuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorLmVkaXRpbmcgeworICAgIGJvcmRlcjog
MnB4IHNvbGlkIHJlZDsKKyAgICBwYWRkaW5nOiA2cHg7CisgICAgZm9udC1zaXplOiAxOHB4Owor
fQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPHByZSBpZD0iZGVzY3JpcHRpb24iPjwvcHJl
PgorPHByZSBpZD0iY29uc29sZSI+PC9wcmU+CisKKzxkaXYgaWQ9InNvdXJjZSI+enogenogeno8
L3RleHRhcmVhPgorCis8ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgorCis8ZGl2IGlkPSJtb3Zl
LXRhcmdldCI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigKKyAgICAiVGVzdCBmb3Ig
YXN5bmNocm9ub3VzIHNwZWxsY2hlY2tpbmcgaW4gY2FzZSBET00gbXV0YXRpb24gaGFwcGVucy4g
IiArCisgICAgIlRoaXMgdGVzdCBjaGVja3MgY3Jhc2ggd29uJ3QgaGFwcGVuIGlmIERPTSBtdXRh
dGlvbnMgaGFwcGVuZWQuIgorKTsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5zZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCh0cnVlKTsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2lmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChk
b2N1bWVudCwgdHJ1ZSk7CisKK3ZhciBzb3VyY2VJZHMgPSBbJ3NvdXJjZSddOwordmFyIGRlc3RF
bGVtcyA9IFsndGV4dGFyZWEnLCAnaW5wdXQnLCAnY29udGVudGVkaXRhYmxlJ107Cit2YXIgdHdl
YWtzID0gWydkZWxldGUnLCAnbW92ZScsICdtdXRhdGUnXTsKKwordmFyIHRlc3REYXRhID0gW107
Citmb3IgKHZhciBpID0gMDsgaSA8IHNvdXJjZUlkcy5sZW5ndGg7ICsraSkgeworICAgIGZvciAo
dmFyIGogPSAwOyBqIDwgZGVzdEVsZW1zLmxlbmd0aDsgKytqKSB7CisgICAgICAgIGZvciAodmFy
IGsgPSAwOyBrIDwgdHdlYWtzLmxlbmd0aDsgKytrKSB7CisgICAgICAgICAgICB0ZXN0RGF0YS5w
dXNoKHsKKyAgICAgICAgICAgICAgICBzb3VyY2VJZDogc291cmNlSWRzW2ldLAorICAgICAgICAg
ICAgICAgIGRlc3RFbGVtOiBkZXN0RWxlbXNbal0sCisgICAgICAgICAgICAgICAgdHdlYWs6IHR3
ZWFrc1trXQorICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZhciBzZWwg
PSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisKK2Z1bmN0aW9uIHJlbW92ZUFsbENoaWxkcmVuKGVs
ZW0pIHsKKyAgICB3aGlsZSAoZWxlbS5maXJzdENoaWxkKQorICAgICAgICBlbGVtLnJlbW92ZUNo
aWxkKGVsZW0uZmlyc3RDaGlsZCk7Cit9CisKK3ZhciB0ZXN0Tm8gPSAwOworZnVuY3Rpb24gZG9U
ZXN0SWZBbnkoKSB7CisgICAgLy8gQ2xlYW4gdXAgZmlyc3QuCisgICAgcmVtb3ZlQWxsQ2hpbGRy
ZW4oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpKTsKKyAgICByZW1vdmVBbGxD
aGlsZHJlbihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW92ZS10YXJnZXQnKSk7CisKKyAgICB2
YXIgbmV4dCA9IHRlc3REYXRhLnNoaWZ0KCk7CisgICAgaWYgKG5leHQpCisgICAgICAgIHJldHVy
biB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpeyBkb1Rlc3QoKyt0ZXN0Tm8sIG5leHQpOyB9
LCAwKTsKKworICAgIC8vIE5vIG1vcmUgdGVzdHMuIFRlYXIgZG93bi4KKyAgICByZW1vdmVBbGxD
aGlsZHJlbihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJykpOworICAgIHJlbW92
ZUFsbENoaWxkcmVuKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb3ZlLXRhcmdldCcpKTsKKwor
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0VW5pZmllZFRl
eHRDaGVja2luZ0VuYWJsZWQoZG9jdW1lbnQsIGZhbHNlKTsKKworICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QXN5
bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoZmFsc2UpOworICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorfQorCit2YXIgcmVxdWVzdElkOwordmFy
IGxhc3RSZXF1ZXN0SWQ7CitmdW5jdGlvbiBkb1Rlc3QodGVzdE5vLCB0ZXN0RGF0YSkgeworICAg
IGZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnQoa2luZCkgeworICAgICAgICBpZiAoa2luZCA9PSAndGV4
dGFyZWEnIHx8IGtpbmQgPT0gJ2lucHV0JykKKyAgICAgICAgICAgIHJldHVybiBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KGtpbmQpOworCisgICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKTsKKyAgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxl
JywgdHJ1ZSk7CisgICAgICAgIHJldHVybiBkaXY7CisgICAgfQorCisgICAgZGVidWcoIiIpOwor
ICAgIGRlYnVnKCJUZXN0IFN0YXJ0OiAiICsgdGVzdE5vKTsKKworICAgIHZhciBzb3VyY2UgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCh0ZXN0RGF0YS5zb3VyY2VJZCk7CisgICAgdmFyIGRlc3Rp
bmF0aW9uID0gY3JlYXRlRWxlbWVudCh0ZXN0RGF0YS5kZXN0RWxlbSk7CisgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpLmFwcGVuZENoaWxkKGRlc3RpbmF0aW9uKTsKKwor
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBsYXN0UmVxdWVzdElkID0gaW50ZXJu
YWxzLmxhc3RTcGVsbENoZWNrUmVxdWVzdFNlcXVlbmNlKGRvY3VtZW50KTsKKworICAgIC8vIEEg
c3BlbGxjaGVjayByZXF1ZXN0IHdpbGwgYmUgaW52b2tlZC4KKyAgICBkb0NvcHlBbmRQYXN0ZShz
b3VyY2UsIGRlc3RpbmF0aW9uKTsKKworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAg
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgcmVxdWVzdElkID0gaW50ZXJu
YWxzLmxhc3RTcGVsbENoZWNrUmVxdWVzdFNlcXVlbmNlKGRvY3VtZW50KTsKKyAgICAgICAgc2hv
dWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoJ3JlcXVlc3RJZCcsICdsYXN0UmVxdWVzdElkICsgMScp
OworCisgICAgICAgIC8vIFRoZW4sIHR3ZWFrCisgICAgICAgIHR3ZWFrKGRlc3RpbmF0aW9uLCB0
ZXN0RGF0YS50d2Vhayk7CisKKyAgICAgICAgd2FpdEZvclNwZWxsQ2hlY2tSZXF1ZXN0RG9uZShy
ZXF1ZXN0SWQsIGRlc3RpbmF0aW9uLCB0ZXN0RGF0YS50d2VhaywgMTAsIDEpOworICAgIH0sIDAp
OworfQorCitmdW5jdGlvbiBkb0NvcHlBbmRQYXN0ZShzb3VyY2UsIGRlc3QpIHsKKyAgICBmdW5j
dGlvbiBmb2N1c09uKGVsZW0pIHsKKyAgICAgICAgaWYgKGVsZW0gaW5zdGFuY2VvZiBIVE1MSW5w
dXRFbGVtZW50IHx8IGVsZW0gaW5zdGFuY2VvZiBIVE1MVGV4dEFyZWFFbGVtZW50KQorICAgICAg
ICAgICAgZWxlbS5mb2N1cygpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBzZWwuc2VsZWN0
QWxsQ2hpbGRyZW4oZWxlbSk7CisgICAgfQorCisgICAgc2VsLnNlbGVjdEFsbENoaWxkcmVuKHNv
dXJjZSk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkNvcHkiKTsKKworICAgIGZvY3VzT24o
ZGVzdCk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlBhc3RlIik7Cit9CisKK2Z1bmN0aW9u
IHR3ZWFrKGVsZW0sIGtpbmQpIHsKKyAgICBzd2l0Y2ggKGtpbmQpIHsKKyAgICBjYXNlICdkZWxl
dGUnOgorICAgICAgICBlbGVtLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZWxlbSk7CisgICAgICAg
IHJldHVybjsKKyAgICBjYXNlICdtb3ZlJzoKKyAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdtb3ZlLXRhcmdldCcpOworICAgICAgICB0YXJnZXQuYXBwZW5kQ2hp
bGQoZWxlbSk7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlICdtdXRhdGUnOgorICAgICAgICBp
ZiAoZWxlbSBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgfHwgZWxlbSBpbnN0YW5jZW9mIEhU
TUxUZXh0QXJlYUVsZW1lbnQpCisgICAgICAgICAgICBlbGVtLnZhbHVlID0gJ3p6eic7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIGVsZW0uaW5uZXJIVE1MID0gJ3p6eic7CisgICAgICAgIHJl
dHVybjsKKyAgICBkZWZhdWx0OgorICAgICAgICB0ZXN0RmFpbGVkKCdVbmtub3duIGtpbmQgb2Yg
dHdlYWsnKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKworZnVuY3Rpb24gd2FpdEZvclNw
ZWxsQ2hlY2tSZXF1ZXN0RG9uZShyZXF1ZXN0SWQsIGRlc3RpbmF0aW9uLCB0d2Vha0tpbmQsIHJl
c3RUcnksIG5zbGVlcCkgeworICAgIC8vIE5vIG1vcmUgdHJ5LgorICAgIGlmIChyZXN0VHJ5IDw9
IDApIHsKKyAgICAgICAgdGVzdEZhaWxlZCgnRmFpbGVkIHZlcmlmaWNhdGlvbicpOworICAgICAg
ICBzZXRUaW1lb3V0KGRvVGVzdElmQW55LCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICB2YXIgbGFzdFByb2Nlc3NlZElkID0g
aW50ZXJuYWxzLmxhc3RTcGVsbENoZWNrUHJvY2Vzc2VkU2VxdWVuY2UoZG9jdW1lbnQpOworCisg
ICAgaWYgKHJlcXVlc3RJZCAhPSBsYXN0UHJvY2Vzc2VkSWQpIHsKKyAgICAgICAgc2V0VGltZW91
dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHdhaXRGb3JTcGVsbENoZWNrUmVxdWVzdERvbmUo
cmVxdWVzdElkLCBkZXN0aW5hdGlvbiwgdHdlYWtLaW5kLCByZXN0VHJ5IC0gMSwgbnNsZWVwICog
Mik7CisgICAgICAgIH0sIG5zbGVlcCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBp
ZiAodmVyaWZ5RXhpc3RlbmNlT2ZNYXJrZXJzKGRlc3RpbmF0aW9uLCB0d2Vha0tpbmQpKSB7Cisg
ICAgICAgIHRlc3RQYXNzZWQoJ1JlcXVlc3QgaGFzIGJlZW4gcHJvY2Vzc2VkLicpOworICAgIH0g
ZWxzZSB7CisgICAgICAgIHRlc3RGYWlsZWQoJ1JlcXVlc3QgaGFzIGJlZW4gcHJvY2Vzc2VkIGJ1
dCB3ZSBkZXRlY3RlZCB1bmV4cGVjdGVkIG1hcmtlciBsb2NhdGlvbi4nKTsKKyAgICB9CisKKyAg
ICBzZXRUaW1lb3V0KGRvVGVzdElmQW55LCAwKTsKK30KKworZnVuY3Rpb24gZmluZEZpcnN0VGV4
dE5vZGUobm9kZSkKK3sKKyAgICBmdW5jdGlvbiBpdGVyVG9GaW5kRmlyc3RUZXh0Tm9kZShub2Rl
KQorICAgIHsKKyAgICAgICAgaWYgKG5vZGUgaW5zdGFuY2VvZiBUZXh0KQorICAgICAgICAgICAg
cmV0dXJuIG5vZGU7CisKKyAgICAgICAgdmFyIGNoaWxkTm9kZXMgPSBub2RlLmNoaWxkTm9kZXM7
CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGROb2Rlcy5sZW5ndGg7ICsraSkgewor
ICAgICAgICAgICAgdmFyIG4gPSBpdGVyVG9GaW5kRmlyc3RUZXh0Tm9kZShjaGlsZE5vZGVzW2ld
KTsKKyAgICAgICAgICAgIGlmIChuKQorICAgICAgICAgICAgICAgIHJldHVybiBuOworICAgICAg
ICB9CisKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgaWYgKG5vZGUgaW5zdGFu
Y2VvZiBIVE1MSW5wdXRFbGVtZW50IHx8IG5vZGUgaW5zdGFuY2VvZiBIVE1MVGV4dEFyZWFFbGVt
ZW50KQorICAgICAgICByZXR1cm4gaXRlclRvRmluZEZpcnN0VGV4dE5vZGUoaW50ZXJuYWxzLnNo
YWRvd1Jvb3Qobm9kZSkpOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuIGl0ZXJUb0ZpbmRGaXJz
dFRleHROb2RlKG5vZGUpOworfQorCitmdW5jdGlvbiB2ZXJpZnlFeGlzdGVuY2VPZk1hcmtlcnMo
ZWxlbSwgdHdlYWtLaW5kKSB7CisgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKworICAgIHN3aXRjaCAodHdlYWtLaW5kKSB7CisgICAgY2FzZSAnZGVsZXRl
JzoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSAnbW92ZSc6CisgICAgICAgIC8vIElu
IG1vdmUsIG1hcmtlciBzaG91bGQgYmUgdGhlcmUuCisgICAgICAgIHZhciBtYXJrZXJOdW0gPSBp
bnRlcm5hbHMubWFya2VyQ291bnRGb3JOb2RlKGZpbmRGaXJzdFRleHROb2RlKGVsZW0pLCAic3Bl
bGxpbmciKTsKKyAgICAgICAgaWYgKG1hcmtlck51bSAhPSAzKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDM7ICsraSkgeworICAgICAgICAg
ICAgdmFyIHJhbmdlID0gaW50ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9kZShmaW5kRmlyc3RUZXh0
Tm9kZShlbGVtKSwgInNwZWxsaW5nIiwgaSk7CisgICAgICAgICAgICBpZiAocmFuZ2UudG9TdHJp
bmcoKSAhPSAienoiKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlICdtdXRhdGUnOgorICAgICAgICAvLyBJbiBt
dXRhdGlvbiwgdGhlcmUgYXJlbid0IG1hcmtlcnMuCisgICAgICAgIHJldHVybiBpbnRlcm5hbHMu
bWFya2VyQ291bnRGb3JOb2RlKGZpbmRGaXJzdFRleHROb2RlKGVsZW0pLCAic3BlbGxpbmciKSA9
PSAwOworICAgIGRlZmF1bHQ6CisgICAgICAgIHRlc3RGYWlsZWQoJ1Vua25vd24ga2luZCBvZiB0
d2VhaycpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9CisKK2RvVGVzdElmQW55KCk7
CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lw
cGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggZmNkNjhkZDhhNDhk
ODk5ZWIyNDc4Y2E5YzQxNjhkZGYwNzdhMzE1My4uNzFkNWVjZDEwZjdkNWI2MzU3ZDQ0Y2I4NjAw
ZDljNDI2NDE1NTQ2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBw
ZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTEyMTksNiArMTIx
OSw3IEBAIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctYmFja3NwYWNlLWJldHdlZW4tbGluZXMu
aHRtbAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlLmh0bWwKIGVkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxjaGVjay1xdWV1ZS5odG1sCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2st
c2VxdWVuY2VudW0uaHRtbAorZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWFzeW5jLW11dGF0
aW9uLmh0bWwKIAogIyBGb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTUwNzU4CiAjIFRoZXNlIHJlcXVpcmUgRFJUIHNldFNlcmlhbGl6ZUhUVFBMb2FkcyBpbXBsZW1l
bnRhdGlvbiB0byBiZSByZWxpYWJsZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy1sZW9wYXJkL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9T
a2lwcGVkCmluZGV4IGRjMjljY2VjNmU5NTgxZDg4OWQ0NTlhOTkyYTk5ZWFiZGZiMGIxYjYuLjYy
OWIzZGNlNjQyODllMzU5MzUxMWMyYmM2NjVlZjQ5ZTU0ZDkwMmUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZApAQCAtOTYsNiArOTYsNyBAQCBodHRwL3Rlc3RzL21l
ZGlhL3ZpZGVvLXNlZWthYmxlLXN0YWxsLmh0bWwKIAogIyBBdmFpbGFibGUgMTAuNiBvciBsYXRl
cgogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlLmh0bWwKK2VkaXRpbmcvc3BlbGxp
bmcvc3BlbGxjaGVjay1hc3luYy1tdXRhdGlvbi5odG1sCiBlZGl0aW5nL3NwZWxsaW5nL2dyYW1t
YXItcGFzdGUuaHRtbAogZmFzdC9odG1sL3NldC10ZXh0LWRpcmVjdGlvbi5odG1sCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IGNiNDM3YTI3N2NmZWM1NTJhNTkyYWMwYTgzM2ZlZTQ4NDkw
ZGUxN2EuLmRlNWM0MzM5ODk5NTk3N2I4NmFkOWRiMzFlZDk0ZDRiZDYwYjAxYzQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvU2tpcHBlZApAQCAtMTAwOSw2ICsxMDA5LDcgQEAgZWRpdGluZy9zcGVsbGluZy9z
cGVsbGluZy1hdHRyaWJ1dGUtYXQtY2hpbGQuaHRtbAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNo
ZWNrLXBhc3RlLmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1xdWV1ZS5odG1sCiBl
ZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stc2VxdWVuY2VudW0uaHRtbAorZWRpdGluZy9zcGVs
bGluZy9zcGVsbGNoZWNrLWFzeW5jLW11dGF0aW9uLmh0bWwKIAogIyBbUXRdW0dUS10gZWRpdGlu
Zy9zcGVsbGluZy9zcGVsbGNoZWNrLWFzeW5jLmh0bWwgZmFpbHMKICMgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMDAzCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119812</attachid>
            <date>2011-12-18 21:42:35 -0800</date>
            <delta_ts>2011-12-18 23:00:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72940-20111219144233.patch</filename>
            <type>text/plain</type>
            <size>11559</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzMTk3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjVkOWM3YmEzZjZiMjZhNjhlMzMw
NDBmYjhlZmMyZDQzMzUwMmE4NS4uNWM3YWI0NDJmYzliODFhYzc1N2M3NjI1ZGVhNGY1ZmNlZmI1
MGEyNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDExLTEyLTE1ICBTaGlueWEgS2F3YW5ha2Eg
IDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgQSB0ZXN0IHRoYXQgbXV0YXRpb24gaGFw
cGVucyB3aGVuIGFzeW5jaHJvbm91cyBzcGVsbCBjaGVja2luZyBpcyBpbiBwcm9jZXNzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI5NDAKKworICAg
ICAgICBSZXZpZXdlZCBieSBIYWppbWUgTW9yaXRhLgorCisgICAgICAgIEFkZGVkIGEgdGVzdCB0
aGF0IG11dGF0aW9uIGhhcHBlbnMgd2hlbiBzcGVsbGNoZWNraW5nLgorICAgICAgICBUaGlzIHRl
c3QgY29uZmlybXMgY3Jhc2ggd29uJ3QgaGFwcGVuLCBhbmQgaG93IG1hcmtlcnMgYXJlIHVzZWQu
CisKKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXN5bmMtbXV0YXRpb24t
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hl
Y2stYXN5bmMtbXV0YXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Nr
aXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOgorCiAyMDExLTEyLTE4ICBBbGljZSBCb3hoYWxsICA8YWJv
eGhhbGxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE1ha2UgQWNjZXNzaWJpbGl0eU9iamVjdDo6
bGluZUZvclBvc2l0aW9uIHJldHVybiB0aGUgY29ycmVjdCB2YWx1ZSBmb3IgY2FzZXMgd2hlcmUg
dGhlIHBvc2l0aW9uIGlzIG5vdCB3aXRoaW4gdGhlIGN1cnJlbnQgb2JqZWN0LgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWFzeW5jLW11dGF0aW9u
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1h
c3luYy1tdXRhdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWIzY2Y2OThiZTU4N2M3ZjJl
OTY2YmY4ZjQ2NjI4ZDYxYjU2ZDBmMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1hc3luYy1tdXRhdGlvbi1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw0NSBAQAorVGVzdCBmb3IgYXN5bmNocm9ub3VzIHNwZWxsY2hlY2tpbmcgaW4gY2Fz
ZSBET00gbXV0YXRpb24gaGFwcGVucy4gVGhpcyB0ZXN0IGNoZWNrcyBjcmFzaCB3b24ndCBoYXBw
ZW4gaWYgRE9NIG11dGF0aW9ucyBoYXBwZW5lZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1Rlc3QgU3RhcnQ6IDEKK1BBU1MgcmVxdWVzdElkIGlzID49IGxhc3RSZXF1ZXN0SWQg
KyAxCitQQVNTIFJlcXVlc3QgaGFzIGJlZW4gcHJvY2Vzc2VkLgorCitUZXN0IFN0YXJ0OiAyCitQ
QVNTIHJlcXVlc3RJZCBpcyA+PSBsYXN0UmVxdWVzdElkICsgMQorUEFTUyBSZXF1ZXN0IGhhcyBi
ZWVuIHByb2Nlc3NlZC4KKworVGVzdCBTdGFydDogMworUEFTUyByZXF1ZXN0SWQgaXMgPj0gbGFz
dFJlcXVlc3RJZCArIDEKK1BBU1MgUmVxdWVzdCBoYXMgYmVlbiBwcm9jZXNzZWQuCisKK1Rlc3Qg
U3RhcnQ6IDQKK1BBU1MgcmVxdWVzdElkIGlzID49IGxhc3RSZXF1ZXN0SWQgKyAxCitQQVNTIFJl
cXVlc3QgaGFzIGJlZW4gcHJvY2Vzc2VkLgorCitUZXN0IFN0YXJ0OiA1CitQQVNTIHJlcXVlc3RJ
ZCBpcyA+PSBsYXN0UmVxdWVzdElkICsgMQorUEFTUyBSZXF1ZXN0IGhhcyBiZWVuIHByb2Nlc3Nl
ZC4KKworVGVzdCBTdGFydDogNgorUEFTUyByZXF1ZXN0SWQgaXMgPj0gbGFzdFJlcXVlc3RJZCAr
IDEKK1BBU1MgUmVxdWVzdCBoYXMgYmVlbiBwcm9jZXNzZWQuCisKK1Rlc3QgU3RhcnQ6IDcKK1BB
U1MgcmVxdWVzdElkIGlzID49IGxhc3RSZXF1ZXN0SWQgKyAxCitQQVNTIFJlcXVlc3QgaGFzIGJl
ZW4gcHJvY2Vzc2VkLgorCitUZXN0IFN0YXJ0OiA4CitQQVNTIHJlcXVlc3RJZCBpcyA+PSBsYXN0
UmVxdWVzdElkICsgMQorUEFTUyBSZXF1ZXN0IGhhcyBiZWVuIHByb2Nlc3NlZC4KKworVGVzdCBT
dGFydDogOQorUEFTUyByZXF1ZXN0SWQgaXMgPj0gbGFzdFJlcXVlc3RJZCArIDEKK1BBU1MgUmVx
dWVzdCBoYXMgYmVlbiBwcm9jZXNzZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKK3p6IHp6IHp6CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Vk
aXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1hc3luYy1tdXRhdGlvbi5odG1sIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWFzeW5jLW11dGF0aW9uLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTY3MTQwMmVhNjVmYTI2OGVlY2Q2MTk3ZGVhZTRhNWExYzMxNzEwOQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1hc3luYy1t
dXRhdGlvbi5odG1sCkBAIC0wLDAgKzEsMjQ0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZWRpdGluZy5q
cyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisuZWRpdGluZyB7CisgICAgYm9yZGVyOiAycHggc29saWQg
cmVkOworICAgIHBhZGRpbmc6IDZweDsKKyAgICBmb250LXNpemU6IDE4cHg7Cit9Cis8L3N0eWxl
PgorPC9oZWFkPgorPGJvZHk+Cis8cHJlIGlkPSJkZXNjcmlwdGlvbiI+PC9wcmU+Cis8cHJlIGlk
PSJjb25zb2xlIj48L3ByZT4KKworPGRpdiBpZD0ic291cmNlIj56eiB6eiB6ejwvdGV4dGFyZWE+
CisKKzxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+CisKKzxkaXYgaWQ9Im1vdmUtdGFyZ2V0Ij48
L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKAorICAgICJUZXN0IGZvciBhc3luY2hyb25v
dXMgc3BlbGxjaGVja2luZyBpbiBjYXNlIERPTSBtdXRhdGlvbiBoYXBwZW5zLiAiICsKKyAgICAi
VGhpcyB0ZXN0IGNoZWNrcyBjcmFzaCB3b24ndCBoYXBwZW4gaWYgRE9NIG11dGF0aW9ucyBoYXBw
ZW5lZC4iCispOworCit2YXIganNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2lu
Z0VuYWJsZWQodHJ1ZSk7Cit9CisKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFs
cy5zZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChkb2N1bWVudCwgdHJ1ZSk7CisKK3ZhciBz
b3VyY2VJZHMgPSBbJ3NvdXJjZSddOwordmFyIGRlc3RFbGVtcyA9IFsndGV4dGFyZWEnLCAnaW5w
dXQnLCAnY29udGVudGVkaXRhYmxlJ107Cit2YXIgdHdlYWtzID0gWydkZWxldGUnLCAnbW92ZScs
ICdtdXRhdGUnXTsKKwordmFyIHRlc3REYXRhID0gW107Citmb3IgKHZhciBpID0gMDsgaSA8IHNv
dXJjZUlkcy5sZW5ndGg7ICsraSkgeworICAgIGZvciAodmFyIGogPSAwOyBqIDwgZGVzdEVsZW1z
Lmxlbmd0aDsgKytqKSB7CisgICAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgdHdlYWtzLmxlbmd0
aDsgKytrKSB7CisgICAgICAgICAgICB0ZXN0RGF0YS5wdXNoKHsKKyAgICAgICAgICAgICAgICBz
b3VyY2VJZDogc291cmNlSWRzW2ldLAorICAgICAgICAgICAgICAgIGRlc3RFbGVtOiBkZXN0RWxl
bXNbal0sCisgICAgICAgICAgICAgICAgdHdlYWs6IHR3ZWFrc1trXQorICAgICAgICAgICAgfSk7
CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZhciBzZWwgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7
CisKK2Z1bmN0aW9uIHJlbW92ZUFsbENoaWxkcmVuKGVsZW0pIHsKKyAgICB3aGlsZSAoZWxlbS5m
aXJzdENoaWxkKQorICAgICAgICBlbGVtLnJlbW92ZUNoaWxkKGVsZW0uZmlyc3RDaGlsZCk7Cit9
CisKK3ZhciB0ZXN0Tm8gPSAwOworZnVuY3Rpb24gZG9UZXN0SWZBbnkoKSB7CisgICAgLy8gQ2xl
YW4gdXAgZmlyc3QuCisgICAgcmVtb3ZlQWxsQ2hpbGRyZW4oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2NvbnRhaW5lcicpKTsKKyAgICByZW1vdmVBbGxDaGlsZHJlbihkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnbW92ZS10YXJnZXQnKSk7CisKKyAgICB2YXIgbmV4dCA9IHRlc3REYXRhLnNoaWZ0
KCk7CisgICAgaWYgKG5leHQpCisgICAgICAgIHJldHVybiB3aW5kb3cuc2V0VGltZW91dChmdW5j
dGlvbigpeyBkb1Rlc3QoKyt0ZXN0Tm8sIG5leHQpOyB9LCAwKTsKKworICAgIC8vIE5vIG1vcmUg
dGVzdHMuIFRlYXIgZG93bi4KKyAgICByZW1vdmVBbGxDaGlsZHJlbihkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnY29udGFpbmVyJykpOworICAgIHJlbW92ZUFsbENoaWxkcmVuKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdtb3ZlLXRhcmdldCcpKTsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KQorICAgICAgICBpbnRlcm5hbHMuc2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoZG9jdW1l
bnQsIGZhbHNlKTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQoZmFsc2UpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9Cit9CisKK3ZhciBy
ZXF1ZXN0SWQ7Cit2YXIgbGFzdFJlcXVlc3RJZDsKK2Z1bmN0aW9uIGRvVGVzdCh0ZXN0Tm8sIHRl
c3REYXRhKSB7CisgICAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudChraW5kKSB7CisgICAgICAgIGlm
IChraW5kID09ICd0ZXh0YXJlYScgfHwga2luZCA9PSAnaW5wdXQnKQorICAgICAgICAgICAgcmV0
dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoa2luZCk7CisKKyAgICAgICAgdmFyIGRpdiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCdj
b250ZW50ZWRpdGFibGUnLCB0cnVlKTsKKyAgICAgICAgcmV0dXJuIGRpdjsKKyAgICB9CisKKyAg
ICBkZWJ1ZygiIik7CisgICAgZGVidWcoIlRlc3QgU3RhcnQ6ICIgKyB0ZXN0Tm8pOworCisgICAg
dmFyIHNvdXJjZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRlc3REYXRhLnNvdXJjZUlkKTsK
KyAgICB2YXIgZGVzdGluYXRpb24gPSBjcmVhdGVFbGVtZW50KHRlc3REYXRhLmRlc3RFbGVtKTsK
KyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJykuYXBwZW5kQ2hpbGQoZGVz
dGluYXRpb24pOworCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGxhc3RSZXF1
ZXN0SWQgPSBpbnRlcm5hbHMubGFzdFNwZWxsQ2hlY2tSZXF1ZXN0U2VxdWVuY2UoZG9jdW1lbnQp
OworCisgICAgLy8gQSBzcGVsbGNoZWNrIHJlcXVlc3Qgd2lsbCBiZSBpbnZva2VkLgorICAgIGRv
Q29weUFuZFBhc3RlKHNvdXJjZSwgZGVzdGluYXRpb24pOworCisgICAgc2V0VGltZW91dChmdW5j
dGlvbigpIHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICByZXF1
ZXN0SWQgPSBpbnRlcm5hbHMubGFzdFNwZWxsQ2hlY2tSZXF1ZXN0U2VxdWVuY2UoZG9jdW1lbnQp
OworICAgICAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgncmVxdWVzdElkJywgJ2xhc3RS
ZXF1ZXN0SWQgKyAxJyk7CisKKyAgICAgICAgLy8gVGhlbiwgdHdlYWsKKyAgICAgICAgdHdlYWso
ZGVzdGluYXRpb24sIHRlc3REYXRhLnR3ZWFrKTsKKworICAgICAgICB3YWl0Rm9yU3BlbGxDaGVj
a1JlcXVlc3REb25lKHJlcXVlc3RJZCwgZGVzdGluYXRpb24sIHRlc3REYXRhLnR3ZWFrLCAxMCwg
MSk7CisgICAgfSwgMCk7Cit9CisKK2Z1bmN0aW9uIGRvQ29weUFuZFBhc3RlKHNvdXJjZSwgZGVz
dCkgeworICAgIGZ1bmN0aW9uIGZvY3VzT24oZWxlbSkgeworICAgICAgICBpZiAoZWxlbSBpbnN0
YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgfHwgZWxlbSBpbnN0YW5jZW9mIEhUTUxUZXh0QXJlYUVs
ZW1lbnQpCisgICAgICAgICAgICBlbGVtLmZvY3VzKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHNlbC5zZWxlY3RBbGxDaGlsZHJlbihlbGVtKTsKKyAgICB9CisKKyAgICBzZWwuc2VsZWN0
QWxsQ2hpbGRyZW4oc291cmNlKTsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiQ29weSIpOwor
CisgICAgZm9jdXNPbihkZXN0KTsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiUGFzdGUiKTsK
K30KKworZnVuY3Rpb24gdHdlYWsoZWxlbSwga2luZCkgeworICAgIHN3aXRjaCAoa2luZCkgewor
ICAgIGNhc2UgJ2RlbGV0ZSc6CisgICAgICAgIGVsZW0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChl
bGVtKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgJ21vdmUnOgorICAgICAgICB2YXIgdGFy
Z2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vdmUtdGFyZ2V0Jyk7CisgICAgICAgIHRh
cmdldC5hcHBlbmRDaGlsZChlbGVtKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgJ211dGF0
ZSc6CisgICAgICAgIGlmIChlbGVtIGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCB8fCBlbGVt
IGluc3RhbmNlb2YgSFRNTFRleHRBcmVhRWxlbWVudCkKKyAgICAgICAgICAgIGVsZW0udmFsdWUg
PSAnenp6JzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZWxlbS5pbm5lckhUTUwgPSAnenp6
JzsKKyAgICAgICAgcmV0dXJuOworICAgIGRlZmF1bHQ6CisgICAgICAgIHRlc3RGYWlsZWQoJ1Vu
a25vd24ga2luZCBvZiB0d2VhaycpOworICAgICAgICByZXR1cm47CisgICAgfQorfQorCitmdW5j
dGlvbiB3YWl0Rm9yU3BlbGxDaGVja1JlcXVlc3REb25lKHJlcXVlc3RJZCwgZGVzdGluYXRpb24s
IHR3ZWFrS2luZCwgcmVzdFRyeSwgbnNsZWVwKSB7CisgICAgLy8gTm8gbW9yZSB0cnkuCisgICAg
aWYgKHJlc3RUcnkgPD0gMCkgeworICAgICAgICB0ZXN0RmFpbGVkKCdGYWlsZWQgdmVyaWZpY2F0
aW9uJyk7CisgICAgICAgIHNldFRpbWVvdXQoZG9UZXN0SWZBbnksIDApOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHZhciBsYXN0
UHJvY2Vzc2VkSWQgPSBpbnRlcm5hbHMubGFzdFNwZWxsQ2hlY2tQcm9jZXNzZWRTZXF1ZW5jZShk
b2N1bWVudCk7CisKKyAgICBpZiAocmVxdWVzdElkICE9IGxhc3RQcm9jZXNzZWRJZCkgeworICAg
ICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgd2FpdEZvclNwZWxsQ2hl
Y2tSZXF1ZXN0RG9uZShyZXF1ZXN0SWQsIGRlc3RpbmF0aW9uLCB0d2Vha0tpbmQsIHJlc3RUcnkg
LSAxLCBuc2xlZXAgKiAyKTsKKyAgICAgICAgfSwgbnNsZWVwKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGlmICh2ZXJpZnlFeGlzdGVuY2VPZk1hcmtlcnMoZGVzdGluYXRpb24sIHR3
ZWFrS2luZCkpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgnUmVxdWVzdCBoYXMgYmVlbiBwcm9jZXNz
ZWQuJyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdEZhaWxlZCgnUmVxdWVzdCBoYXMgYmVl
biBwcm9jZXNzZWQgYnV0IHdlIGRldGVjdGVkIHVuZXhwZWN0ZWQgbWFya2VyIGxvY2F0aW9uLicp
OworICAgIH0KKworICAgIHNldFRpbWVvdXQoZG9UZXN0SWZBbnksIDApOworfQorCitmdW5jdGlv
biBmaW5kRmlyc3RUZXh0Tm9kZShub2RlKQoreworICAgIGZ1bmN0aW9uIGl0ZXJUb0ZpbmRGaXJz
dFRleHROb2RlKG5vZGUpCisgICAgeworICAgICAgICBpZiAobm9kZSBpbnN0YW5jZW9mIFRleHQp
CisgICAgICAgICAgICByZXR1cm4gbm9kZTsKKworICAgICAgICB2YXIgY2hpbGROb2RlcyA9IG5v
ZGUuY2hpbGROb2RlczsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZE5vZGVzLmxl
bmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgbiA9IGl0ZXJUb0ZpbmRGaXJzdFRleHROb2Rl
KGNoaWxkTm9kZXNbaV0pOworICAgICAgICAgICAgaWYgKG4pCisgICAgICAgICAgICAgICAgcmV0
dXJuIG47CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBp
ZiAobm9kZSBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgfHwgbm9kZSBpbnN0YW5jZW9mIEhU
TUxUZXh0QXJlYUVsZW1lbnQpCisgICAgICAgIHJldHVybiBpdGVyVG9GaW5kRmlyc3RUZXh0Tm9k
ZShpbnRlcm5hbHMuc2hhZG93Um9vdChub2RlKSk7CisgICAgZWxzZQorICAgICAgICByZXR1cm4g
aXRlclRvRmluZEZpcnN0VGV4dE5vZGUobm9kZSk7Cit9CisKK2Z1bmN0aW9uIHZlcmlmeUV4aXN0
ZW5jZU9mTWFya2VycyhlbGVtLCB0d2Vha0tpbmQpIHsKKyAgICBpZiAoIXdpbmRvdy5pbnRlcm5h
bHMpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgc3dpdGNoICh0d2Vha0tpbmQpIHsKKyAg
ICBjYXNlICdkZWxldGUnOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlICdtb3ZlJzoK
KyAgICAgICAgLy8gSW4gbW92ZSwgbWFya2VyIHNob3VsZCBiZSB0aGVyZS4KKyAgICAgICAgdmFy
IG1hcmtlck51bSA9IGludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUoZmluZEZpcnN0VGV4dE5v
ZGUoZWxlbSksICJzcGVsbGluZyIpOworICAgICAgICBpZiAobWFya2VyTnVtICE9IDMpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMzsgKytp
KSB7CisgICAgICAgICAgICB2YXIgcmFuZ2UgPSBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2Rl
KGZpbmRGaXJzdFRleHROb2RlKGVsZW0pLCAic3BlbGxpbmciLCBpKTsKKyAgICAgICAgICAgIGlm
IChyYW5nZS50b1N0cmluZygpICE9ICJ6eiIpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgJ211dGF0ZSc6Cisg
ICAgICAgIC8vIEluIG11dGF0aW9uLCB0aGVyZSBhcmVuJ3QgbWFya2Vycy4KKyAgICAgICAgcmV0
dXJuIGludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUoZmluZEZpcnN0VGV4dE5vZGUoZWxlbSks
ICJzcGVsbGluZyIpID09IDA7CisgICAgZGVmYXVsdDoKKyAgICAgICAgdGVzdEZhaWxlZCgnVW5r
bm93biBraW5kIG9mIHR3ZWFrJyk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KK30KKwor
ZG9UZXN0SWZBbnkoKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRl
eCA5NjA4ODA4OTY1NDJiMDhlMTg4YmZkMzRjMDU0NGQyNThkYzczMGZiLi45YTk2ZGMyYTk3MzA5
YWFmZDRkMDk5NThmNDJkYTU1MjdlMzlmMjBiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApA
QCAtMTE5NSw2ICsxMTk1LDcgQEAgZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1iYWNrc3BhY2Ut
YmV0d2Vlbi1saW5lcy5odG1sCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUuaHRt
bAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXF1ZXVlLmh0bWwKIGVkaXRpbmcvc3BlbGxp
bmcvc3BlbGxjaGVjay1zZXF1ZW5jZW51bS5odG1sCitlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hl
Y2stYXN5bmMtbXV0YXRpb24uaHRtbAogCiAjIEZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTA3NTgKICMgVGhlc2UgcmVxdWlyZSBEUlQgc2V0U2VyaWFsaXplSFRU
UExvYWRzIGltcGxlbWVudGF0aW9uIHRvIGJlIHJlbGlhYmxlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy1sZW9wYXJkL1NraXBwZWQKaW5kZXggZGMyOWNjZWM2ZTk1ODFkODg5ZDQ1OWE5OTJhOTll
YWJkZmIwYjFiNi4uNjI5YjNkY2U2NDI4OWUzNTkzNTExYzJiYzY2NWVmNDllNTRkOTAyZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVkCkBAIC05Niw2ICs5Niw3IEBA
IGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tc2Vla2FibGUtc3RhbGwuaHRtbAogCiAjIEF2YWlsYWJs
ZSAxMC42IG9yIGxhdGVyCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUuaHRtbAor
ZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWFzeW5jLW11dGF0aW9uLmh0bWwKIGVkaXRpbmcv
c3BlbGxpbmcvZ3JhbW1hci1wYXN0ZS5odG1sCiBmYXN0L2h0bWwvc2V0LXRleHQtZGlyZWN0aW9u
Lmh0bWwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKaW5kZXggNzQ4NGFhZjc5ZmY2MGRlZDViZGM1
NjkwMzE1ZDIwN2E0NDY4MmIzMS4uNWY3OWE3NDY1OGU2ZThiYzk0NTZjMzgxN2QxNmM0Y2VhYTk1
NTA2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC0xMDA3LDYgKzEwMDcsNyBAQCBlZGl0
aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWF0dHJpYnV0ZS1hdC1jaGlsZC5odG1sCiBlZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUuaHRtbAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNr
LXF1ZXVlLmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1zZXF1ZW5jZW51bS5odG1s
CitlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXN5bmMtbXV0YXRpb24uaHRtbAogCiAjIFtR
dF1bR1RLXSBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXN5bmMuaHRtbCBmYWlscwogIyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwMDMK
</data>

          </attachment>
      

    </bug>

</bugzilla>