<?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>56368</bug_id>
          
          <creation_ts>2011-03-15 02:22:41 -0700</creation_ts>
          <short_desc>Asynchronous text checking should check the grammar.</short_desc>
          <delta_ts>2011-12-13 01:34:21 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>56085</dependson>
    
    <dependson>73616</dependson>
          <blocked>71991</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Shinya Kawanaka">shinyak</assigned_to>
          <cc>rniwa</cc>
    
    <cc>shinyak</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>367580</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-03-15 02:22:41 -0700</bug_when>
    <thetext>Currently asynchronous text checking by EditorClient::requestCheckingOfString() does only spellchecking, but it should also do a grammar checking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519069</commentid>
    <comment_count>1</comment_count>
      <attachid>118750</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-12-12 01:35:08 -0800</bug_when>
    <thetext>Created attachment 118750
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519750</commentid>
    <comment_count>2</comment_count>
      <attachid>118750</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-12-12 18:16:38 -0800</bug_when>
    <thetext>Comment on attachment 118750
Patch

Please skip for Leopard. It doesn&apos;t implement requestCheckingOfString().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519751</commentid>
    <comment_count>3</comment_count>
      <attachid>118750</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-12-12 18:17:58 -0800</bug_when>
    <thetext>Comment on attachment 118750
Patch

Please skip for Leopard. it doesn&apos;t implement requestCheckingOfstring().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519812</commentid>
    <comment_count>4</comment_count>
      <attachid>118940</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-12-12 19:45:41 -0800</bug_when>
    <thetext>Created attachment 118940
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519813</commentid>
    <comment_count>5</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-12-12 19:46:01 -0800</bug_when>
    <thetext>Done. 

(In reply to comment #3)
&gt; (From update of attachment 118750 [details])
&gt; Please skip for Leopard. it doesn&apos;t implement requestCheckingOfstring().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519955</commentid>
    <comment_count>6</comment_count>
      <attachid>118940</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-13 01:34:14 -0800</bug_when>
    <thetext>Comment on attachment 118940
Patch

Clearing flags on attachment: 118940

Committed r102662: &lt;http://trac.webkit.org/changeset/102662&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519956</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-13 01:34:21 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118750</attachid>
            <date>2011-12-12 01:35:08 -0800</date>
            <delta_ts>2011-12-12 19:45:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56368-20111212183507.patch</filename>
            <type>text/plain</type>
            <size>9167</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyNTU3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWJjNzFiNjFhZDU2MzMyNmJmYWU4
ZGNkM2FiZDEwNGU1MzZiZDc4Yy4uZDAzMTQwYTU2NzYwNWNiOWQzNjljNzc0NzgwYjU2YjlhYmI2
ZDE5NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDExLTEyLTEyICBTaGlueWEgS2F3YW5ha2Eg
IDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgQXN5bmNocm9ub3VzIHRleHQgY2hlY2tp
bmcgc2hvdWxkIGNoZWNrIHRoZSBncmFtbWFyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYzNjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBGcm9tIHIxMDI1NTMsIHdlIGhhZCBjYXBhYmlsaXR5IG9mIGdy
YW1tYXIgY2hlY2tpbmcgZm9yIGFzeW5jaHJvbm91cyB0ZXh0IGNoZWNraW5nLgorICAgICAgICBU
aGlzIHBhdGNoIGFkZHMgYSB0ZXN0IGZvciBpdC4KKworICAgICAgICAqIGVkaXRpbmcvc3BlbGxp
bmcvZ3JhbW1hci1wYXN0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcv
c3BlbGxpbmcvZ3JhbW1hci1wYXN0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Nr
aXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKwogMjAxMS0xMi0xMSAgQW5k
cmVhcyBLbGluZyAgPGtsaW5nQHdlYmtpdC5vcmc+CiAKICAgICAgICAgV0syL05ldHNjYXBlUGx1
Z2luOiBJbmNvcnJlY3QgbW91c2UgZXZlbnQgY29vcmRpbmF0ZXMgd2hlbiBmcmFtZVNjYWxlRmFj
dG9yICE9IDEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL2dyYW1t
YXItcGFzdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9ncmFt
bWFyLXBhc3RlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hODg0NTg1ZmJjMjBjNmI4ODZmNGY1
MzBlOGIyNDA3MzlkODY2YzgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zcGVsbGluZy9ncmFtbWFyLXBhc3RlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitH
cmFtbWFyIGNoZWNraW5nIGZvciBwYXN0ZWQgdGV4dC4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorUEFTUyBESVYgaGFzIGEgbWFya2VyIG9uICdZb3UgaGFzIHRoZSByaWdodC4nCitQQVNTIERJ
ViBoYXMgYSBtYXJrZXIgb24gJ0kgaGF2ZSBhPGI+biBraTwvYj53aS4gSSBoYXZlIG5vIGlkZWEu
JworUEFTUyBESVYgaGFzIGEgbWFya2VyIG9uICdJIGhhdmUgYW4gZ3JhcGUuIEkgaGF2ZSBhbiBt
dXNjYXQuIEkgZG9uJ3Qga25vdy4nCitQQVNTIElOUFVUIGhhcyBhIG1hcmtlciBvbiAnWW91IGhh
cyB0aGUgcmlnaHQuJworUEFTUyBJTlBVVCBoYXMgYSBtYXJrZXIgb24gJ0kgaGF2ZSBhPGI+biBr
aTwvYj53aS4gSSBoYXZlIG5vIGlkZWEuJworUEFTUyBJTlBVVCBoYXMgYSBtYXJrZXIgb24gJ0kg
aGF2ZSBhbiBncmFwZS4gSSBoYXZlIGFuIG11c2NhdC4gSSBkb24ndCBrbm93LicKK1BBU1MgVEVY
VEFSRUEgaGFzIGEgbWFya2VyIG9uICdZb3UgaGFzIHRoZSByaWdodC4nCitQQVNTIFRFWFRBUkVB
IGhhcyBhIG1hcmtlciBvbiAnSSBoYXZlIGE8Yj5uIGtpPC9iPndpLiBJIGhhdmUgbm8gaWRlYS4n
CitQQVNTIFRFWFRBUkVBIGhhcyBhIG1hcmtlciBvbiAnSSBoYXZlIGFuIGdyYXBlLiBJIGhhdmUg
YW4gbXVzY2F0LiBJIGRvbid0IGtub3cuJworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NwZWxsaW5nL2dyYW1tYXItcGFzdGUuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3Bl
bGxpbmcvZ3JhbW1hci1wYXN0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2YjVkNWU5MjAxN2FiNTAxNDFj
MjNkNzQ0OTY5NTE1YzBjYTEzNzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NwZWxsaW5nL2dyYW1tYXItcGFzdGUuaHRtbApAQCAtMCwwICsxLDE2MSBAQAorPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3Qtc2VsZWN0aW9uLXNoYXJlZC5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ0dyYW1tYXIg
Y2hlY2tpbmcgZm9yIHBhc3RlZCB0ZXh0LicpOworCitsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CisKK3ZhciB0ZXN0Um9vdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRp
diIpOworZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUodGVzdFJvb3QsIGRvY3VtZW50LmJvZHku
Zmlyc3RDaGlsZCk7CisKK3ZhciB0ZXN0VGV4dEFyZWEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJ0ZXh0YXJlYSIpOwordGVzdFJvb3QuYXBwZW5kQ2hpbGQodGVzdFRleHRBcmVhKTsKKwordmFy
IHRlc3RJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Cit0ZXN0SW5wdXQu
c2V0QXR0cmlidXRlKCJ0eXBlIiwgInRleHQiKTsKK3Rlc3RSb290LmFwcGVuZENoaWxkKHRlc3RJ
bnB1dCk7CisKK3ZhciB0ZXN0RWRpdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKK3Rlc3RFZGl0YWJsZS5zZXRBdHRyaWJ1dGUoImNvbnRlbnRFZGl0YWJsZSIsICJ0cnVlIik7
Cit0ZXN0Um9vdC5hcHBlbmRDaGlsZCh0ZXN0RWRpdGFibGUpOworCit2YXIgdGVzdFNvdXJjZVBs
YWluID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cit0ZXN0U291cmNlUGxhaW4uaW5u
ZXJIVE1MID0gIllvdSBoYXMgdGhlIHJpZ2h0LiI7Cit0ZXN0Um9vdC5hcHBlbmRDaGlsZCh0ZXN0
U291cmNlUGxhaW4pOworCit2YXIgdGVzdFNvdXJjZURlY29yYXRlZCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOwordGVzdFNvdXJjZURlY29yYXRlZC5pbm5lckhUTUwgPSAiSSBoYXZl
IGE8Yj5uIGtpPC9iPndpLiBJIGhhdmUgbm8gaWRlYS4iOwordGVzdFJvb3QuYXBwZW5kQ2hpbGQo
dGVzdFNvdXJjZURlY29yYXRlZCk7CisKK3ZhciB0ZXN0U291cmNlTXVsdGkgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKTsKK3Rlc3RTb3VyY2VNdWx0aS5pbm5lckhUTUwgPSAiSSBoYXZl
IGFuIGdyYXBlLiBJIGhhdmUgYW4gbXVzY2F0LiBJIGRvbid0IGtub3cuIjsKK3Rlc3RSb290LmFw
cGVuZENoaWxkKHRlc3RTb3VyY2VNdWx0aSk7CisKK3ZhciBzZWwgPSB3aW5kb3cuZ2V0U2VsZWN0
aW9uKCk7CisKK3ZhciB0ZXN0cyA9IFtdOworCitmdW5jdGlvbiBkb25lKCkKK3sKKyAgICB2YXIg
bmV4dCA9IHRlc3RzLnNoaWZ0KCk7CisgICAgaWYgKG5leHQpCisgICAgICAgIHJldHVybiB3aW5k
b3cuc2V0VGltZW91dChuZXh0LCAwKTsKKyAgICB0ZXN0Um9vdC5zdHlsZS5kaXNwbGF5ID0gIm5v
bmUiOworCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVj
a2luZ0VuYWJsZWQoZmFsc2UpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKK30KKworZnVuY3Rpb24gZmluZEZpcnN0VGV4dE5vZGUobm9kZSkKK3sKKyAgICBmdW5jdGlv
biBpdGVyVG9GaW5kRmlyc3RUZXh0Tm9kZShub2RlKQorICAgIHsKKyAgICAgICAgaWYgKG5vZGUg
aW5zdGFuY2VvZiBUZXh0KQorICAgICAgICAgICAgcmV0dXJuIG5vZGU7CisKKyAgICAgICAgdmFy
IGNoaWxkTm9kZXMgPSBub2RlLmNoaWxkTm9kZXM7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgY2hpbGROb2Rlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdmFyIG4gPSBpdGVyVG9G
aW5kRmlyc3RUZXh0Tm9kZShjaGlsZE5vZGVzW2ldKTsKKyAgICAgICAgICAgIGlmIChuKQorICAg
ICAgICAgICAgICAgIHJldHVybiBuOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG51bGw7
CisgICAgfQorCisKKyAgICBpZiAobm9kZSBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgfHwg
bm9kZSBpbnN0YW5jZW9mIEhUTUxUZXh0QXJlYUVsZW1lbnQpCisgICAgICAgIHJldHVybiBpdGVy
VG9GaW5kRmlyc3RUZXh0Tm9kZShpbnRlcm5hbHMuc2hhZG93Um9vdChub2RlKSk7CisgICAgZWxz
ZQorICAgICAgICByZXR1cm4gaXRlclRvRmluZEZpcnN0VGV4dE5vZGUobm9kZSk7Cit9CisKK2Z1
bmN0aW9uIHZlcmlmeU1hcmtlcihub2RlLCBleHBlY3RlZE1hcmtlZCwgbmVlZHNGb2N1cykKK3sK
KyAgICBpZiAodHJ1ZSkgeworICAgICAgICBpZiAobm9kZSBpbnN0YW5jZW9mIEhUTUxJbnB1dEVs
ZW1lbnQgfHwgbm9kZSBpbnN0YW5jZW9mIEhUTUxUZXh0QXJlYUVsZW1lbnQpIHsKKyAgICAgICAg
ICAgIG5vZGUuZm9jdXMoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHNlbC5zZWxl
Y3RBbGxDaGlsZHJlbihub2RlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZhciB0ZXh0Tm9k
ZSA9IGZpbmRGaXJzdFRleHROb2RlKG5vZGUpOworICAgIHZhciBudW0gPSBpbnRlcm5hbHMubWFy
a2VyQ291bnRGb3JOb2RlKHRleHROb2RlLCAiZ3JhbW1hciIpOworICAgIGlmIChudW0gIT0gZXhw
ZWN0ZWRNYXJrZWQubGVuZ3RoKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBudW07ICsraSkgeworICAgICAgICB2YXIgcmFuZ2UgPSBpbnRlcm5hbHMubWFy
a2VyUmFuZ2VGb3JOb2RlKHRleHROb2RlLCAiZ3JhbW1hciIsIGkpOworICAgICAgICBpZiAocmFu
Z2UudG9TdHJpbmcoKSAhPSBleHBlY3RlZE1hcmtlZFtpXSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworZnVuY3Rpb24gcGFzdGVBbmRW
ZXJpZnkoc291cmNlLCBkZXN0LCBleHBlY3RlZE1hcmtlZCkKK3sKKyAgICBzZWwuc2VsZWN0QWxs
Q2hpbGRyZW4oc291cmNlKTsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiQ29weSIpOworICAg
IGlmIChkZXN0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCB8fCBkZXN0IGluc3RhbmNlb2Yg
SFRNTFRleHRBcmVhRWxlbWVudCkgeworICAgICAgICBkZXN0LnZhbHVlID0gIiI7CisgICAgICAg
IGRlc3QuZm9jdXMoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBkZXN0LmlubmVySFRNTCA9ICIi
OworICAgICAgICBzZWwuc2VsZWN0QWxsQ2hpbGRyZW4oZGVzdCk7CisgICAgfQorICAgIGRvY3Vt
ZW50LmV4ZWNDb21tYW5kKCJQYXN0ZSIpOworCisgICAgdmFyIG5yZXRyeSA9IDEwOworICAgIHZh
ciBuc2xlZXAgPSA0OworICAgIGZ1bmN0aW9uIHRyaWFsKCkgeyAKKyAgICAgICAgdmFyIHZlcmlm
aWVkID0gdmVyaWZ5TWFya2VyKGRlc3QsIGV4cGVjdGVkTWFya2VkKTsKKyAgICAgICAgaWYgKHZl
cmlmaWVkKSB7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKGRlc3QudGFnTmFtZSArICIgaGFzIGEg
bWFya2VyIG9uICciICsgc291cmNlLmlubmVySFRNTCArICInIik7CisgICAgICAgICAgICBkb25l
KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBucmV0cnktLTsK
KyAgICAgICAgaWYgKDAgPT0gbnJldHJ5KSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKGRlc3Qu
dGFnTmFtZSArICIgc2hvdWxkIGhhdmUgYSBtYXJrZXIgb24gZm9yICciICsgc291cmNlLmlubmVy
SFRNTCArICInIik7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG5zbGVlcCAqPSAyOworICAgICAgICB3aW5kb3cu
c2V0VGltZW91dCh0cmlhbCwgbnNsZWVwKTsKKyAgICB9OworICAgIHRyaWFsKCk7Cit9OworCitp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQodHJ1ZSk7Cit9CisKK3Rlc3Rz
LnB1c2goZnVuY3Rpb24oKSB7IHBhc3RlQW5kVmVyaWZ5KHRlc3RTb3VyY2VQbGFpbiwgdGVzdEVk
aXRhYmxlLCBbImhhcyJdKTsgfSk7Cit0ZXN0cy5wdXNoKGZ1bmN0aW9uKCkgeyBwYXN0ZUFuZFZl
cmlmeSh0ZXN0U291cmNlRGVjb3JhdGVkLCB0ZXN0RWRpdGFibGUsIFsiYSJdKTsgfSk7IC8vIENo
ZWNrcyBvbmx5ICdhJy4KK3Rlc3RzLnB1c2goZnVuY3Rpb24oKSB7IHBhc3RlQW5kVmVyaWZ5KHRl
c3RTb3VyY2VNdWx0aSwgdGVzdEVkaXRhYmxlLCBbImFuIiwgImFuIl0pOyB9KTsKKwordGVzdHMu
cHVzaChmdW5jdGlvbigpIHsgcGFzdGVBbmRWZXJpZnkodGVzdFNvdXJjZVBsYWluLCB0ZXN0SW5w
dXQsIFsiaGFzIl0pOyB9KTsKK3Rlc3RzLnB1c2goZnVuY3Rpb24oKSB7IHBhc3RlQW5kVmVyaWZ5
KHRlc3RTb3VyY2VEZWNvcmF0ZWQsIHRlc3RJbnB1dCwgWyJhbiJdKTsgfSk7Cit0ZXN0cy5wdXNo
KGZ1bmN0aW9uKCkgeyBwYXN0ZUFuZFZlcmlmeSh0ZXN0U291cmNlTXVsdGksIHRlc3RJbnB1dCwg
WyJhbiIsICJhbiJdKTsgfSk7CisKK3Rlc3RzLnB1c2goZnVuY3Rpb24oKSB7IHBhc3RlQW5kVmVy
aWZ5KHRlc3RTb3VyY2VQbGFpbiwgdGVzdFRleHRBcmVhLCBbImhhcyJdKTsgfSk7Cit0ZXN0cy5w
dXNoKGZ1bmN0aW9uKCkgeyBwYXN0ZUFuZFZlcmlmeSh0ZXN0U291cmNlRGVjb3JhdGVkLCB0ZXN0
VGV4dEFyZWEsIFsiYW4iXSk7IH0pOwordGVzdHMucHVzaChmdW5jdGlvbigpIHsgcGFzdGVBbmRW
ZXJpZnkodGVzdFNvdXJjZU11bHRpLCB0ZXN0VGV4dEFyZWEsIFsiYW4iLCAiYW4iXSk7IH0pOwor
Citkb25lKCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCBlYjgxYzAxY2RhNmRjOGY4ZjQ1MmQ2
MDRmNmE4NzkzMGY5YmNjNTA2Li5lYWZlN2QzZWFjZDlhNDdhZGM3ZTU5YWFjNGNkOWNlNGIxNTJl
ZWNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVj
dGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBl
Y3RhdGlvbnMudHh0CkBAIC02NjgsNiArNjY4LDggQEAgQlVHV0s1NTU2MCA6IGVkaXRpbmcvaW5w
dXQvc2V0dGluZy1pbnB1dC12YWx1ZS1jYW5jZWwtaW1lLWNvbXBvc2l0aW9uLmh0bWwgPSBURVgK
IAogLy8gTmV3IHRlc3QgYWRkZWQgaW4gcjgyMTU5CiBCVUdDUjc3NzA2IDogZWRpdGluZy9zcGVs
bGluZy9ncmFtbWFyLmh0bWwgPSBGQUlMCisvLyBDaHJvbWl1bSBkb2VzIG5vdCBoYXZlIGEgZ3Jh
bW1hciBjaGVja2VyLgorQlVHV0s1NjM2OCA6IGVkaXRpbmcvc3BlbGxpbmcvZ3JhbW1hci1wYXN0
ZS5odG1sID0gRkFJTAogCiAvLyBOZWVkcyBncmFtbWFyIGNoZWNraW5nLgogQlVHV0s3MTc5MiA6
IGVkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy5odG1sID0gRkFJTCBNSVNTSU5HCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9Ta2lwcGVkCmluZGV4IGNlZmFkYzczOGYwY2I3Y2I0OTY3OTdlZTczZjE3MTVhNzg5NDkz
YjEuLmQzYTdmMGQ4OTIwNTljMjA3Njk5YmIzNzc3ODk4MjcwYTgwN2RjYWMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9Ta2lwcGVkCkBAIC0xMjgxLDYgKzEyODEsNyBAQCBodHRwL3Rlc3RzL2luc3BlY3Rv
ci9uZXR3b3JrL25ldHdvcmstZGlzYWJsZS1jYWNoZS14aHJzLmh0bWwKIAogIyB0ZXh0SW5wdXRD
b250cm9sbGVyLmhhc0dyYW1tYXJNYXJrZXIoKSBpcyBub3QgaW1wbGVtZW50ZWQuCiBlZGl0aW5n
L3NwZWxsaW5nL2dyYW1tYXIuaHRtbAorZWRpdGluZy9zcGVsbGluZy9ncmFtbWFyLXBhc3RlLmh0
bWwKIAogIyBsYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0VGV4dERpcmVjdGlvbigpIGlzIG5vdCBp
bXBsZW1lbnRlZC4KIGZhc3QvaHRtbC9zZXQtdGV4dC1kaXJlY3Rpb24uaHRtbApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0L1NraXBwZWQKaW5kZXggYzM0ZGFiMWU1NjY2ZmViZTI0YzY4ODVkZGUxM2Q5Y2U2MjM1Yjcw
MS4uZWNmYTE5MGE4ZDRkYTdhNDhmMDM1YzNkYTE0ZjlmODQ0NDNjNzljNyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC9Ta2lwcGVkCkBAIC05OTcsNiArOTk3LDcgQEAgZWRpdGluZy9zcGVsbGluZy9zcGVsbGlu
Zy1oYXNzcGVsbGluZ21hcmtlci5odG1sCiAKICMgdGV4dElucHV0Q29udHJvbGxlci5oYXNHcmFt
bWFyTWFya2VycygpIGlzIG5vdCBpbXBsZW1lbnRlZC4KIGVkaXRpbmcvc3BlbGxpbmcvZ3JhbW1h
ci5odG1sCitlZGl0aW5nL3NwZWxsaW5nL2dyYW1tYXItcGFzdGUuaHRtbAogCiAjIE5lZWRzIGdy
YW1tYXIgY2hlY2tpbmcuCiBlZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118940</attachid>
            <date>2011-12-12 19:45:41 -0800</date>
            <delta_ts>2011-12-13 01:34:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56368-20111213124540.patch</filename>
            <type>text/plain</type>
            <size>9712</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyNjUxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTgyYTdhYWQ0OGM1MTc2NzgxZTdj
N2E4MDg2NWU0NDlmOGFiNmYwNy4uNzQ0ZjgxZGNmMDM3MzlmZTY3YmQ1NDM5MzdjY2YwYjY2ZTFl
YjQwOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDExLTEyLTEyICBTaGlueWEgS2F3YW5ha2Eg
IDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgQXN5bmNocm9ub3VzIHRleHQgY2hlY2tp
bmcgc2hvdWxkIGNoZWNrIHRoZSBncmFtbWFyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYzNjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBGcm9tIHIxMDI1NTMsIHdlIGhhZCBjYXBhYmlsaXR5IG9mIGdy
YW1tYXIgY2hlY2tpbmcgZm9yIGFzeW5jaHJvbm91cyB0ZXh0IGNoZWNraW5nLgorICAgICAgICBU
aGlzIHBhdGNoIGFkZHMgYSB0ZXN0IGZvciBpdC4KKworICAgICAgICAqIGVkaXRpbmcvc3BlbGxp
bmcvZ3JhbW1hci1wYXN0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcv
c3BlbGxpbmcvZ3JhbW1hci1wYXN0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Nr
aXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOgorCiAyMDExLTEyLTEyICBBZHJpZW5uZSBXYWxrZXIgIDxl
bm5lQGdvb2dsZS5jb20+CiAKICAgICAgICAgaWZyYW1lIGZhaWxzIHRvIHNjcm9sbCBpbiBjb21w
b3NpdGVkIHBhZ2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvZ3Jh
bW1hci1wYXN0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL2dy
YW1tYXItcGFzdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE4ODQ1ODVmYmMyMGM2Yjg4NmY0
ZjUzMGU4YjI0MDczOWQ4NjZjODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NwZWxsaW5nL2dyYW1tYXItcGFzdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAK
K0dyYW1tYXIgY2hlY2tpbmcgZm9yIHBhc3RlZCB0ZXh0LgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCitQQVNTIERJViBoYXMgYSBtYXJrZXIgb24gJ1lvdSBoYXMgdGhlIHJpZ2h0LicKK1BBU1Mg
RElWIGhhcyBhIG1hcmtlciBvbiAnSSBoYXZlIGE8Yj5uIGtpPC9iPndpLiBJIGhhdmUgbm8gaWRl
YS4nCitQQVNTIERJViBoYXMgYSBtYXJrZXIgb24gJ0kgaGF2ZSBhbiBncmFwZS4gSSBoYXZlIGFu
IG11c2NhdC4gSSBkb24ndCBrbm93LicKK1BBU1MgSU5QVVQgaGFzIGEgbWFya2VyIG9uICdZb3Ug
aGFzIHRoZSByaWdodC4nCitQQVNTIElOUFVUIGhhcyBhIG1hcmtlciBvbiAnSSBoYXZlIGE8Yj5u
IGtpPC9iPndpLiBJIGhhdmUgbm8gaWRlYS4nCitQQVNTIElOUFVUIGhhcyBhIG1hcmtlciBvbiAn
SSBoYXZlIGFuIGdyYXBlLiBJIGhhdmUgYW4gbXVzY2F0LiBJIGRvbid0IGtub3cuJworUEFTUyBU
RVhUQVJFQSBoYXMgYSBtYXJrZXIgb24gJ1lvdSBoYXMgdGhlIHJpZ2h0LicKK1BBU1MgVEVYVEFS
RUEgaGFzIGEgbWFya2VyIG9uICdJIGhhdmUgYTxiPm4ga2k8L2I+d2kuIEkgaGF2ZSBubyBpZGVh
LicKK1BBU1MgVEVYVEFSRUEgaGFzIGEgbWFya2VyIG9uICdJIGhhdmUgYW4gZ3JhcGUuIEkgaGF2
ZSBhbiBtdXNjYXQuIEkgZG9uJ3Qga25vdy4nCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Vk
aXRpbmcvc3BlbGxpbmcvZ3JhbW1hci1wYXN0ZS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9z
cGVsbGluZy9ncmFtbWFyLXBhc3RlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTZiNWQ1ZTkyMDE3YWI1MDE0
MWMyM2Q3NDQ5Njk1MTVjMGNhMTM3MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvc3BlbGxpbmcvZ3JhbW1hci1wYXN0ZS5odG1sCkBAIC0wLDAgKzEsMTYxIEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1zZWxlY3Rpb24tc2hhcmVk
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignR3JhbW1h
ciBjaGVja2luZyBmb3IgcGFzdGVkIHRleHQuJyk7CisKK2xheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKKwordmFyIHRlc3RSb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7Citkb2N1bWVudC5ib2R5Lmluc2VydEJlZm9yZSh0ZXN0Um9vdCwgZG9jdW1lbnQuYm9k
eS5maXJzdENoaWxkKTsKKwordmFyIHRlc3RUZXh0QXJlYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoInRleHRhcmVhIik7Cit0ZXN0Um9vdC5hcHBlbmRDaGlsZCh0ZXN0VGV4dEFyZWEpOworCit2
YXIgdGVzdElucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKK3Rlc3RJbnB1
dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAidGV4dCIpOwordGVzdFJvb3QuYXBwZW5kQ2hpbGQodGVz
dElucHV0KTsKKwordmFyIHRlc3RFZGl0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRp
diIpOwordGVzdEVkaXRhYmxlLnNldEF0dHJpYnV0ZSgiY29udGVudEVkaXRhYmxlIiwgInRydWUi
KTsKK3Rlc3RSb290LmFwcGVuZENoaWxkKHRlc3RFZGl0YWJsZSk7CisKK3ZhciB0ZXN0U291cmNl
UGxhaW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK3Rlc3RTb3VyY2VQbGFpbi5p
bm5lckhUTUwgPSAiWW91IGhhcyB0aGUgcmlnaHQuIjsKK3Rlc3RSb290LmFwcGVuZENoaWxkKHRl
c3RTb3VyY2VQbGFpbik7CisKK3ZhciB0ZXN0U291cmNlRGVjb3JhdGVkID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiZGl2Iik7Cit0ZXN0U291cmNlRGVjb3JhdGVkLmlubmVySFRNTCA9ICJJIGhh
dmUgYTxiPm4ga2k8L2I+d2kuIEkgaGF2ZSBubyBpZGVhLiI7Cit0ZXN0Um9vdC5hcHBlbmRDaGls
ZCh0ZXN0U291cmNlRGVjb3JhdGVkKTsKKwordmFyIHRlc3RTb3VyY2VNdWx0aSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwordGVzdFNvdXJjZU11bHRpLmlubmVySFRNTCA9ICJJIGhh
dmUgYW4gZ3JhcGUuIEkgaGF2ZSBhbiBtdXNjYXQuIEkgZG9uJ3Qga25vdy4iOwordGVzdFJvb3Qu
YXBwZW5kQ2hpbGQodGVzdFNvdXJjZU11bHRpKTsKKwordmFyIHNlbCA9IHdpbmRvdy5nZXRTZWxl
Y3Rpb24oKTsKKwordmFyIHRlc3RzID0gW107CisKK2Z1bmN0aW9uIGRvbmUoKQoreworICAgIHZh
ciBuZXh0ID0gdGVzdHMuc2hpZnQoKTsKKyAgICBpZiAobmV4dCkKKyAgICAgICAgcmV0dXJuIHdp
bmRvdy5zZXRUaW1lb3V0KG5leHQsIDApOworICAgIHRlc3RSb290LnN0eWxlLmRpc3BsYXkgPSAi
bm9uZSI7CisKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRBc3luY2hyb25vdXNTcGVsbENo
ZWNraW5nRW5hYmxlZChmYWxzZSk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9u
ZSgpOworfQorCitmdW5jdGlvbiBmaW5kRmlyc3RUZXh0Tm9kZShub2RlKQoreworICAgIGZ1bmN0
aW9uIGl0ZXJUb0ZpbmRGaXJzdFRleHROb2RlKG5vZGUpCisgICAgeworICAgICAgICBpZiAobm9k
ZSBpbnN0YW5jZW9mIFRleHQpCisgICAgICAgICAgICByZXR1cm4gbm9kZTsKKworICAgICAgICB2
YXIgY2hpbGROb2RlcyA9IG5vZGUuY2hpbGROb2RlczsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBjaGlsZE5vZGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgbiA9IGl0ZXJU
b0ZpbmRGaXJzdFRleHROb2RlKGNoaWxkTm9kZXNbaV0pOworICAgICAgICAgICAgaWYgKG4pCisg
ICAgICAgICAgICAgICAgcmV0dXJuIG47CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbnVs
bDsKKyAgICB9CisKKworICAgIGlmIChub2RlIGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCB8
fCBub2RlIGluc3RhbmNlb2YgSFRNTFRleHRBcmVhRWxlbWVudCkKKyAgICAgICAgcmV0dXJuIGl0
ZXJUb0ZpbmRGaXJzdFRleHROb2RlKGludGVybmFscy5zaGFkb3dSb290KG5vZGUpKTsKKyAgICBl
bHNlCisgICAgICAgIHJldHVybiBpdGVyVG9GaW5kRmlyc3RUZXh0Tm9kZShub2RlKTsKK30KKwor
ZnVuY3Rpb24gdmVyaWZ5TWFya2VyKG5vZGUsIGV4cGVjdGVkTWFya2VkLCBuZWVkc0ZvY3VzKQor
eworICAgIGlmICh0cnVlKSB7CisgICAgICAgIGlmIChub2RlIGluc3RhbmNlb2YgSFRNTElucHV0
RWxlbWVudCB8fCBub2RlIGluc3RhbmNlb2YgSFRNTFRleHRBcmVhRWxlbWVudCkgeworICAgICAg
ICAgICAgbm9kZS5mb2N1cygpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc2VsLnNl
bGVjdEFsbENoaWxkcmVuKG5vZGUpOworICAgICAgICB9CisgICAgfQorCisgICAgdmFyIHRleHRO
b2RlID0gZmluZEZpcnN0VGV4dE5vZGUobm9kZSk7CisgICAgdmFyIG51bSA9IGludGVybmFscy5t
YXJrZXJDb3VudEZvck5vZGUodGV4dE5vZGUsICJncmFtbWFyIik7CisgICAgaWYgKG51bSAhPSBl
eHBlY3RlZE1hcmtlZC5sZW5ndGgpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IG51bTsgKytpKSB7CisgICAgICAgIHZhciByYW5nZSA9IGludGVybmFscy5t
YXJrZXJSYW5nZUZvck5vZGUodGV4dE5vZGUsICJncmFtbWFyIiwgaSk7CisgICAgICAgIGlmIChy
YW5nZS50b1N0cmluZygpICE9IGV4cGVjdGVkTWFya2VkW2ldKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitmdW5jdGlvbiBwYXN0ZUFu
ZFZlcmlmeShzb3VyY2UsIGRlc3QsIGV4cGVjdGVkTWFya2VkKQoreworICAgIHNlbC5zZWxlY3RB
bGxDaGlsZHJlbihzb3VyY2UpOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJDb3B5Iik7Cisg
ICAgaWYgKGRlc3QgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50IHx8IGRlc3QgaW5zdGFuY2Vv
ZiBIVE1MVGV4dEFyZWFFbGVtZW50KSB7CisgICAgICAgIGRlc3QudmFsdWUgPSAiIjsKKyAgICAg
ICAgZGVzdC5mb2N1cygpOworICAgIH0gZWxzZSB7CisgICAgICAgIGRlc3QuaW5uZXJIVE1MID0g
IiI7CisgICAgICAgIHNlbC5zZWxlY3RBbGxDaGlsZHJlbihkZXN0KTsKKyAgICB9CisgICAgZG9j
dW1lbnQuZXhlY0NvbW1hbmQoIlBhc3RlIik7CisKKyAgICB2YXIgbnJldHJ5ID0gMTA7CisgICAg
dmFyIG5zbGVlcCA9IDQ7CisgICAgZnVuY3Rpb24gdHJpYWwoKSB7IAorICAgICAgICB2YXIgdmVy
aWZpZWQgPSB2ZXJpZnlNYXJrZXIoZGVzdCwgZXhwZWN0ZWRNYXJrZWQpOworICAgICAgICBpZiAo
dmVyaWZpZWQpIHsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoZGVzdC50YWdOYW1lICsgIiBoYXMg
YSBtYXJrZXIgb24gJyIgKyBzb3VyY2UuaW5uZXJIVE1MICsgIiciKTsKKyAgICAgICAgICAgIGRv
bmUoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIG5yZXRyeS0t
OworICAgICAgICBpZiAoMCA9PSBucmV0cnkpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoZGVz
dC50YWdOYW1lICsgIiBzaG91bGQgaGF2ZSBhIG1hcmtlciBvbiBmb3IgJyIgKyBzb3VyY2UuaW5u
ZXJIVE1MICsgIiciKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbnNsZWVwICo9IDI7CisgICAgICAgIHdpbmRv
dy5zZXRUaW1lb3V0KHRyaWFsLCBuc2xlZXApOworICAgIH07CisgICAgdHJpYWwoKTsKK307CisK
K2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5zZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCh0cnVlKTsKK30KKwordGVz
dHMucHVzaChmdW5jdGlvbigpIHsgcGFzdGVBbmRWZXJpZnkodGVzdFNvdXJjZVBsYWluLCB0ZXN0
RWRpdGFibGUsIFsiaGFzIl0pOyB9KTsKK3Rlc3RzLnB1c2goZnVuY3Rpb24oKSB7IHBhc3RlQW5k
VmVyaWZ5KHRlc3RTb3VyY2VEZWNvcmF0ZWQsIHRlc3RFZGl0YWJsZSwgWyJhIl0pOyB9KTsgLy8g
Q2hlY2tzIG9ubHkgJ2EnLgordGVzdHMucHVzaChmdW5jdGlvbigpIHsgcGFzdGVBbmRWZXJpZnko
dGVzdFNvdXJjZU11bHRpLCB0ZXN0RWRpdGFibGUsIFsiYW4iLCAiYW4iXSk7IH0pOworCit0ZXN0
cy5wdXNoKGZ1bmN0aW9uKCkgeyBwYXN0ZUFuZFZlcmlmeSh0ZXN0U291cmNlUGxhaW4sIHRlc3RJ
bnB1dCwgWyJoYXMiXSk7IH0pOwordGVzdHMucHVzaChmdW5jdGlvbigpIHsgcGFzdGVBbmRWZXJp
ZnkodGVzdFNvdXJjZURlY29yYXRlZCwgdGVzdElucHV0LCBbImFuIl0pOyB9KTsKK3Rlc3RzLnB1
c2goZnVuY3Rpb24oKSB7IHBhc3RlQW5kVmVyaWZ5KHRlc3RTb3VyY2VNdWx0aSwgdGVzdElucHV0
LCBbImFuIiwgImFuIl0pOyB9KTsKKwordGVzdHMucHVzaChmdW5jdGlvbigpIHsgcGFzdGVBbmRW
ZXJpZnkodGVzdFNvdXJjZVBsYWluLCB0ZXN0VGV4dEFyZWEsIFsiaGFzIl0pOyB9KTsKK3Rlc3Rz
LnB1c2goZnVuY3Rpb24oKSB7IHBhc3RlQW5kVmVyaWZ5KHRlc3RTb3VyY2VEZWNvcmF0ZWQsIHRl
c3RUZXh0QXJlYSwgWyJhbiJdKTsgfSk7Cit0ZXN0cy5wdXNoKGZ1bmN0aW9uKCkgeyBwYXN0ZUFu
ZFZlcmlmeSh0ZXN0U291cmNlTXVsdGksIHRlc3RUZXh0QXJlYSwgWyJhbiIsICJhbiJdKTsgfSk7
CisKK2RvbmUoKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IDNjOTQxYThkNDAxYzE5MjE4N2Iz
OWM5YWFmNzQ0MzFkYmRlOTk0MDIuLjdlZTExMzNmNjUzYTY5YTBlZjJlMTFhNjc4MzU2NWVkN2Qy
M2E3NjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhw
ZWN0YXRpb25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4
cGVjdGF0aW9ucy50eHQKQEAgLTY2OCw2ICs2NjgsOCBAQCBCVUdXSzU1NTYwIDogZWRpdGluZy9p
bnB1dC9zZXR0aW5nLWlucHV0LXZhbHVlLWNhbmNlbC1pbWUtY29tcG9zaXRpb24uaHRtbCA9IFRF
WAogCiAvLyBOZXcgdGVzdCBhZGRlZCBpbiByODIxNTkKIEJVR0NSNzc3MDYgOiBlZGl0aW5nL3Nw
ZWxsaW5nL2dyYW1tYXIuaHRtbCA9IEZBSUwKKy8vIENocm9taXVtIGRvZXMgbm90IGhhdmUgYSBn
cmFtbWFyIGNoZWNrZXIuCitCVUdXSzU2MzY4IDogZWRpdGluZy9zcGVsbGluZy9ncmFtbWFyLXBh
c3RlLmh0bWwgPSBGQUlMCiAKIC8vIE5lZWRzIGdyYW1tYXIgY2hlY2tpbmcuCiBCVUdXSzcxNzky
IDogZWRpdGluZy9zcGVsbGluZy9tYXJrZXJzLmh0bWwgPSBGQUlMIE1JU1NJTkcKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1NraXBwZWQKaW5kZXggMmY3ZjRlNjFmZTQyMTRhMGU1MzQ4YmYyM2YwMGJiOTgwNzJm
NjhkNC4uMWRjNTcxYWFhOWJjZDdkNzRiYTg1ZmU3ZTM3OTM2NWEwZWYzZDEwYSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1NraXBwZWQKQEAgLTEyODEsNiArMTI4MSw3IEBAIGh0dHAvdGVzdHMvaW5zcGVj
dG9yL25ldHdvcmsvbmV0d29yay1kaXNhYmxlLWNhY2hlLXhocnMuaHRtbAogCiAjIHRleHRJbnB1
dENvbnRyb2xsZXIuaGFzR3JhbW1hck1hcmtlcigpIGlzIG5vdCBpbXBsZW1lbnRlZC4KIGVkaXRp
bmcvc3BlbGxpbmcvZ3JhbW1hci5odG1sCitlZGl0aW5nL3NwZWxsaW5nL2dyYW1tYXItcGFzdGUu
aHRtbAogCiAjIGxheW91dFRlc3RDb250cm9sbGVyOjpzZXRUZXh0RGlyZWN0aW9uKCkgaXMgbm90
IGltcGxlbWVudGVkLgogZmFzdC9odG1sL3NldC10ZXh0LWRpcmVjdGlvbi5odG1sCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVkIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZAppbmRleCBlYjdhODc0ZDJlMjczNTc5OTY0
OWVlZjdiNTNlMGI2NjU3YjQ3YjI1Li5kYzI5Y2NlYzZlOTU4MWQ4ODlkNDU5YTk5MmE5OWVhYmRm
YjBiMWI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lw
cGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL1NraXBwZWQKQEAgLTk2
LDYgKzk2LDcgQEAgaHR0cC90ZXN0cy9tZWRpYS92aWRlby1zZWVrYWJsZS1zdGFsbC5odG1sCiAK
ICMgQXZhaWxhYmxlIDEwLjYgb3IgbGF0ZXIKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1w
YXN0ZS5odG1sCitlZGl0aW5nL3NwZWxsaW5nL2dyYW1tYXItcGFzdGUuaHRtbAogZmFzdC9odG1s
L3NldC10ZXh0LWRpcmVjdGlvbi5odG1sCiAKICMgRGlzYWJsZSB0ZXN0cyB3aGljaCBzdGFydGVk
IGZhaWxpbmcgYWZ0ZXIgcjY2OTYxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAppbmRleCBjMWY5ODEz
ODQ1MTllMWE1YjZmZTUzZGUzMDc4NzliYWU4OGRjOGU1Li4wY2I1M2NlZmYxNjI5YjgwZmExZjk2
Y2JkMDRiMzQzYWQ2YWNiNGJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9T
a2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTk5NCw2ICs5
OTQsNyBAQCBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWhhc3NwZWxsaW5nbWFya2VyLmh0bWwK
IAogIyB0ZXh0SW5wdXRDb250cm9sbGVyLmhhc0dyYW1tYXJNYXJrZXJzKCkgaXMgbm90IGltcGxl
bWVudGVkLgogZWRpdGluZy9zcGVsbGluZy9ncmFtbWFyLmh0bWwKK2VkaXRpbmcvc3BlbGxpbmcv
Z3JhbW1hci1wYXN0ZS5odG1sCiAKICMgTmVlZHMgZ3JhbW1hciBjaGVja2luZy4KIGVkaXRpbmcv
c3BlbGxpbmcvbWFya2Vycy5odG1sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>