<?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>72847</bug_id>
          
          <creation_ts>2011-11-20 20:18:59 -0800</creation_ts>
          <short_desc>Refactoring: SpellChecker::requestCheckingFor should take Range instead of Node.</short_desc>
          <delta_ts>2011-11-21 01:21:17 -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>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>71991</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>morrita</cc>
    
    <cc>shinyak</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>506669</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-11-20 20:18:59 -0800</bug_when>
    <thetext>Current SpellChecker::requestCheckingFor takes Node as an argument.
This may be too wide, so should be Range.
Also, this is required to implement asynchronous spellchecker.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506672</commentid>
    <comment_count>1</comment_count>
      <attachid>116023</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-11-20 20:36:34 -0800</bug_when>
    <thetext>Created attachment 116023
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506680</commentid>
    <comment_count>2</comment_count>
      <attachid>116023</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-11-20 20:54:10 -0800</bug_when>
    <thetext>Comment on attachment 116023
Patch

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

&gt; Source/WebCore/editing/Editor.cpp:415
&gt;      Node* nodeToCheck = m_frame-&gt;selection()-&gt;rootEditableElement();

We can create a Range from the selection, instead of using the root editable node. It would save the size of the checked text.
I don&apos;t think the change needs to be done in this patch. But registering a new bug is highly welcome ;-)

&gt; Source/WebCore/editing/Editor.cpp:416
&gt; +    RefPtr&lt;Range&gt; rangeToCheck = Range::create(m_frame-&gt;document(), firstPositionInNode(nodeToCheck), lastPositionInNode(nodeToCheck));

You can use PassRefPtr here.

&gt; Source/WebCore/editing/SpellChecker.cpp:-111
&gt; -void SpellChecker::requestCheckingFor(TextCheckingTypeMask mask, Node* node)

A pattern is to give a usual name to outer function and call internal one as XxInternal() or doXx()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506701</commentid>
    <comment_count>3</comment_count>
      <attachid>116028</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-11-20 22:00:26 -0800</bug_when>
    <thetext>Created attachment 116028
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506708</commentid>
    <comment_count>4</comment_count>
      <attachid>116028</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-11-20 22:07:48 -0800</bug_when>
    <thetext>Comment on attachment 116028
Patch

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506714</commentid>
    <comment_count>5</comment_count>
      <attachid>116028</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-20 22:28:21 -0800</bug_when>
    <thetext>Comment on attachment 116028
Patch

Attachment 116028 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10533167

New failing tests:
editing/pasteboard/paste-table-001.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506732</commentid>
    <comment_count>6</comment_count>
      <attachid>116034</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-11-20 23:30:00 -0800</bug_when>
    <thetext>Created attachment 116034
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506786</commentid>
    <comment_count>7</comment_count>
      <attachid>116034</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-21 01:21:12 -0800</bug_when>
    <thetext>Comment on attachment 116034
Patch

Clearing flags on attachment: 116034

Committed r100890: &lt;http://trac.webkit.org/changeset/100890&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506787</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-21 01:21:17 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116023</attachid>
            <date>2011-11-20 20:36:34 -0800</date>
            <delta_ts>2011-11-20 22:00:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72847-20111121133633.patch</filename>
            <type>text/plain</type>
            <size>8616</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwODczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QwODZiZWViZjg3YTBj
MTc1ZjQ0ODEyYjRmN2VjMmYxMWUwZGNkYS4uZjI2MTNlZmJlYmZkNjZmMjg1YWVjMjc3YWQzODQ5
MGZhZTlkZGFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDExLTExLTIwICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmVmYWN0b3Jpbmc6
IFNwZWxsQ2hlY2tlcjo6cmVxdWVzdENoZWNraW5nRm9yIHNob3VsZCB0YWtlIFJhbmdlIGluc3Rl
YWQgb2YgTm9kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTcyODQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0LgorCisgICAgICAgICogZWRpdGluZy9FZGl0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdt
ZW50KToKKyAgICAgICAgICBQYXNzZXMgUmFuZ2UgdG8gcmVxdWVzdENoZWNraW5nRm9yIGluc3Rl
YWQgb2YgTm9kZS4KKyAgICAgICAgKiBlZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHA6CisgICAgICAg
ICAgQ2hhbmdlZCBhcmd1bWVudCB0eXBlIGZyb20gTm9kZSB0byBSYW5nZS4KKyAgICAgICAgICBU
aGUgY29ycmVzcG9uZGluZyBjaGFuZ2VzIGFyZSBhbHNvIGRvbmUgaW4gZGVwZW5kZW50IG1ldGhv
ZHMuCisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmluaXRSZXF1ZXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6Y2xlYXJSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWxsQ2hlY2tlcjo6Y2FuQ2hlY2tBc3luY2hyb25vdXNseSk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVsbENoZWNrZXI6OmlzQnVzeSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNr
ZXI6OmlzVmFsaWQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjppc0NoZWNrYWJs
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ0Zvcik6
CisgICAgICAgICAgQ2hhbmdlZCBhcmd1bWVudCB0eXBlIGZyb20gTm9kZSB0byBSYW5nZS4KKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6dHJ5VG9SZXF1ZXN0Q2hlY2tpbmdGb3IpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjpkaWRDaGVjayk6CisgICAgICAgICogZWRp
dGluZy9TcGVsbENoZWNrZXIuaDoKKwogMjAxMS0xMS0xNyAgTWFyayBSb3dlICA8bXJvd2VAYXBw
bGUuY29tPgogCiAgICAgICAgIDxodHRwOi8vd2Via2l0Lm9yZy9iLzcyNjQ2PiBEaXNhYmxlIGRl
cHJlY2F0aW9uIHdhcm5pbmdzIGFyb3VuZCBjb2RlIHdoZXJlIHdlIGNhbm5vdCBlYXNpbHkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCAwMTFiYWZlMDc2Mjk5YWU1NjhjZGE4YjViZDVj
ZDEzZDA4YWY5ZTI1Li5mMWNmMWRlNGUwMGUwNDQ4OTY2NGZjYzg4YTRhMmQ0N2VmMTBkNTMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC00MTMsOCArNDEzLDggQEAgdm9pZCBFZGl0
b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdt
ZW50PiBmcmFnbWVudCwKICAgICByZXZlYWxTZWxlY3Rpb25BZnRlckVkaXRpbmdPcGVyYXRpb24o
KTsKIAogICAgIE5vZGUqIG5vZGVUb0NoZWNrID0gbV9mcmFtZS0+c2VsZWN0aW9uKCktPnJvb3RF
ZGl0YWJsZUVsZW1lbnQoKTsKLSAgICBpZiAobV9zcGVsbENoZWNrZXItPmNhbkNoZWNrQXN5bmNo
cm9ub3VzbHkobm9kZVRvQ2hlY2spKQotICAgICAgICBtX3NwZWxsQ2hlY2tlci0+cmVxdWVzdENo
ZWNraW5nRm9yKHJlc29sdmVUZXh0Q2hlY2tpbmdUeXBlTWFzayhUZXh0Q2hlY2tpbmdUeXBlU3Bl
bGxpbmcgfCBUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hciksIG5vZGVUb0NoZWNrKTsKKyAgICBSZWZQ
dHI8UmFuZ2U+IHJhbmdlVG9DaGVjayA9IFJhbmdlOjpjcmVhdGUobV9mcmFtZS0+ZG9jdW1lbnQo
KSwgZmlyc3RQb3NpdGlvbkluTm9kZShub2RlVG9DaGVjayksIGxhc3RQb3NpdGlvbkluTm9kZShu
b2RlVG9DaGVjaykpOworICAgIG1fc3BlbGxDaGVja2VyLT50cnlUb1JlcXVlc3RDaGVja2luZ0Zv
cihyZXNvbHZlVGV4dENoZWNraW5nVHlwZU1hc2soVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nIHwg
VGV4dENoZWNraW5nVHlwZUdyYW1tYXIpLCByYW5nZVRvQ2hlY2spOwogfQogCiB2b2lkIEVkaXRv
cjo6cmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxl
Y3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Nw
ZWxsQ2hlY2tlci5jcHAKaW5kZXggYzZjYTkyNjkwMzZkNTRjZDkyNTFiZWQ1NGQ3OWNmZDkwNzEw
ODYzMi4uYzE2MzcyMWYzMDg3NGM5ZDYzM2QwZmZmOWVhOWQ3OTFlNTI4NGY3NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1
ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVGV4
dENoZWNrZXJDbGllbnQuaCIKKyNpbmNsdWRlICJUZXh0Q2hlY2tpbmdIZWxwZXIuaCIKICNpbmNs
dWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCkBAIC02Miwx
NSArNjMsMTUgQEAgVGV4dENoZWNrZXJDbGllbnQqIFNwZWxsQ2hlY2tlcjo6Y2xpZW50KCkgY29u
c3QKICAgICByZXR1cm4gcGFnZS0+ZWRpdG9yQ2xpZW50KCktPnRleHRDaGVja2VyKCk7CiB9CiAK
LWJvb2wgU3BlbGxDaGVja2VyOjppbml0UmVxdWVzdChOb2RlKiBub2RlKQorYm9vbCBTcGVsbENo
ZWNrZXI6OmluaXRSZXF1ZXN0KFBhc3NSZWZQdHI8UmFuZ2U+IHJhbmdlKQogewotICAgIEFTU0VS
VChjYW5DaGVja0FzeW5jaHJvbm91c2x5KG5vZGUpKTsKKyAgICBBU1NFUlQoY2FuQ2hlY2tBc3lu
Y2hyb25vdXNseShyYW5nZS5nZXQoKSkpOwogCi0gICAgU3RyaW5nIHRleHQgPSBub2RlLT50ZXh0
Q29udGVudCgpOworICAgIFN0cmluZyB0ZXh0ID0gcmFuZ2UtPnRleHQoKTsKICAgICBpZiAoIXRl
eHQubGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIG1fcmVxdWVzdE5vZGUg
PSBub2RlOworICAgIG1fcmVxdWVzdFJhbmdlID0gcmFuZ2U7CiAgICAgbV9yZXF1ZXN0VGV4dCA9
IHRleHQ7CiAgICAgbV9yZXF1ZXN0U2VxdWVuY2UrKzsKIApAQCAtNzksNyArODAsNyBAQCBib29s
IFNwZWxsQ2hlY2tlcjo6aW5pdFJlcXVlc3QoTm9kZSogbm9kZSkKIAogdm9pZCBTcGVsbENoZWNr
ZXI6OmNsZWFyUmVxdWVzdCgpCiB7Ci0gICAgbV9yZXF1ZXN0Tm9kZS5jbGVhcigpOworICAgIG1f
cmVxdWVzdFJhbmdlLmNsZWFyKCk7CiAgICAgbV9yZXF1ZXN0VGV4dCA9IFN0cmluZygpOwogfQog
CkBAIC04OCwzNSArODksNDMgQEAgYm9vbCBTcGVsbENoZWNrZXI6OmlzQXN5bmNocm9ub3VzRW5h
YmxlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fZnJhbWUtPnNldHRpbmdzKCkgJiYgbV9mcmFtZS0+
c2V0dGluZ3MoKS0+YXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKTsKIH0KIAotYm9v
bCBTcGVsbENoZWNrZXI6OmNhbkNoZWNrQXN5bmNocm9ub3VzbHkoTm9kZSogbm9kZSkgY29uc3QK
K2Jvb2wgU3BlbGxDaGVja2VyOjpjYW5DaGVja0FzeW5jaHJvbm91c2x5KFJhbmdlKiByYW5nZSkg
Y29uc3QKIHsKLSAgICByZXR1cm4gY2xpZW50KCkgJiYgaXNDaGVja2FibGUobm9kZSkgJiYgaXNB
c3luY2hyb25vdXNFbmFibGVkKCkgJiYgIWlzQnVzeSgpOworICAgIHJldHVybiBjbGllbnQoKSAm
JiBpc0NoZWNrYWJsZShyYW5nZSkgJiYgaXNBc3luY2hyb25vdXNFbmFibGVkKCkgJiYgIWlzQnVz
eSgpOwogfQogCiBib29sIFNwZWxsQ2hlY2tlcjo6aXNCdXN5KCkgY29uc3QKIHsKLSAgICByZXR1
cm4gbV9yZXF1ZXN0Tm9kZS5nZXQoKTsKKyAgICByZXR1cm4gbV9yZXF1ZXN0UmFuZ2UuZ2V0KCk7
CiB9CiAKIGJvb2wgU3BlbGxDaGVja2VyOjppc1ZhbGlkKGludCBzZXF1ZW5jZSkgY29uc3QKIHsK
LSAgICByZXR1cm4gbV9yZXF1ZXN0Tm9kZS5nZXQoKSAmJiBtX3JlcXVlc3RUZXh0Lmxlbmd0aCgp
ICYmIG1fcmVxdWVzdFNlcXVlbmNlID09IHNlcXVlbmNlOworICAgIHJldHVybiBtX3JlcXVlc3RS
YW5nZS5nZXQoKSAmJiBtX3JlcXVlc3RUZXh0Lmxlbmd0aCgpICYmIG1fcmVxdWVzdFNlcXVlbmNl
ID09IHNlcXVlbmNlOwogfQogCi1ib29sIFNwZWxsQ2hlY2tlcjo6aXNDaGVja2FibGUoTm9kZSog
bm9kZSkgY29uc3QKK2Jvb2wgU3BlbGxDaGVja2VyOjppc0NoZWNrYWJsZShSYW5nZSogcmFuZ2Up
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIG5vZGUgJiYgbm9kZS0+cmVuZGVyZXIoKTsKKyAgICByZXR1
cm4gcmFuZ2UgJiYgcmFuZ2UtPmZpcnN0Tm9kZSgpICYmIHJhbmdlLT5maXJzdE5vZGUoKS0+cmVu
ZGVyZXIoKTsKIH0KIAotdm9pZCBTcGVsbENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ0ZvcihUZXh0
Q2hlY2tpbmdUeXBlTWFzayBtYXNrLCBOb2RlKiBub2RlKQordm9pZCBTcGVsbENoZWNrZXI6OnJl
cXVlc3RDaGVja2luZ0ZvcihUZXh0Q2hlY2tpbmdUeXBlTWFzayBtYXNrLCBQYXNzUmVmUHRyPFJh
bmdlPiByYW5nZSkKIHsKLSAgICBBU1NFUlQoY2FuQ2hlY2tBc3luY2hyb25vdXNseShub2RlKSk7
CisgICAgQVNTRVJUKGNhbkNoZWNrQXN5bmNocm9ub3VzbHkocmFuZ2UuZ2V0KCkpKTsKIAotICAg
IGlmICghaW5pdFJlcXVlc3Qobm9kZSkpCisgICAgaWYgKCFpbml0UmVxdWVzdChyYW5nZSkpCiAg
ICAgICAgIHJldHVybjsKICAgICBjbGllbnQoKS0+cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcodGhp
cywgbV9yZXF1ZXN0U2VxdWVuY2UsIG1hc2ssIG1fcmVxdWVzdFRleHQpOwogfQogCit2b2lkIFNw
ZWxsQ2hlY2tlcjo6dHJ5VG9SZXF1ZXN0Q2hlY2tpbmdGb3IoVGV4dENoZWNraW5nVHlwZU1hc2sg
bWFzaywgUGFzc1JlZlB0cjxSYW5nZT4gcmFuZ2UpCit7CisgICAgaWYgKCFjYW5DaGVja0FzeW5j
aHJvbm91c2x5KHJhbmdlLmdldCgpKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcmVxdWVzdENo
ZWNraW5nRm9yKG1hc2ssIHJhbmdlKTsKK30KKwogc3RhdGljIGJvb2wgZm9yd2FyZEl0ZXJhdG9y
KFBvc2l0aW9uSXRlcmF0b3ImIGl0ZXJhdG9yLCBpbnQgZGlzdGFuY2UpCiB7CiAgICAgaW50IHJl
bWFpbmluZyA9IGRpc3RhbmNlOwpAQCAtMTUzLDEzICsxNjIsMTMgQEAgdm9pZCBTcGVsbENoZWNr
ZXI6OmRpZENoZWNrKGludCBzZXF1ZW5jZSwgY29uc3QgVmVjdG9yPFRleHRDaGVja2luZ1Jlc3Vs
dD4mIHJlc3UKICAgICBpZiAoIWlzVmFsaWQoc2VxdWVuY2UpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBpZiAoIW1fcmVxdWVzdE5vZGUtPnJlbmRlcmVyKCkpIHsKKyAgICBpZiAoIWlzQ2hlY2th
YmxlKG1fcmVxdWVzdFJhbmdlLmdldCgpKSkgewogICAgICAgICBjbGVhclJlcXVlc3QoKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGludCBzdGFydE9mZnNldCA9IDA7Ci0gICAgUG9z
aXRpb25JdGVyYXRvciBzdGFydCA9IGZpcnN0UG9zaXRpb25Jbk9yQmVmb3JlTm9kZShtX3JlcXVl
c3ROb2RlLmdldCgpKTsKKyAgICBQb3NpdGlvbkl0ZXJhdG9yIHN0YXJ0ID0gbV9yZXF1ZXN0UmFu
Z2UtPnN0YXJ0UG9zaXRpb24oKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlc3VsdHMu
c2l6ZSgpOyArK2kpIHsKICAgICAgICAgaWYgKHJlc3VsdHNbaV0udHlwZSAhPSBUZXh0Q2hlY2tp
bmdUeXBlU3BlbGxpbmcgJiYgcmVzdWx0c1tpXS50eXBlICE9IFRleHRDaGVja2luZ1R5cGVHcmFt
bWFyKQogICAgICAgICAgICAgY29udGludWU7CkBAIC0xNzcsMTIgKzE4NiwxMiBAQCB2b2lkIFNw
ZWxsQ2hlY2tlcjo6ZGlkQ2hlY2soaW50IHNlcXVlbmNlLCBjb25zdCBWZWN0b3I8VGV4dENoZWNr
aW5nUmVzdWx0PiYgcmVzdQogICAgICAgICAvLyBzcGVsbGluZ3MgaW4gdGhlIGJhY2tncm91bmQu
IFRvIGF2b2lkIGFkZGluZyBtYXJrZXJzIHRvIHRoZSB3b3JkcyBtb2RpZmllZCBieSB1c2VycyBv
cgogICAgICAgICAvLyBKYXZhU2NyaXB0IGFwcGxpY2F0aW9ucywgcmV0cmlldmUgdGhlIHdvcmRz
IGluIHRoZSBzcGVjaWZpZWQgcmVnaW9uIGFuZCBjb21wYXJlIHRoZW0gd2l0aAogICAgICAgICAv
LyB0aGUgb3JpZ2luYWwgb25lcy4KLSAgICAgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IFJhbmdl
OjpjcmVhdGUobV9yZXF1ZXN0Tm9kZS0+ZG9jdW1lbnQoKSwgc3RhcnQsIGVuZCk7CisgICAgICAg
IFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKG1fcmVxdWVzdFJhbmdlLT5vd25l
ckRvY3VtZW50KCksIHN0YXJ0LCBlbmQpOwogICAgICAgICAvLyBGSVhNRTogVXNlIHRleHRDb250
ZW50KCkgY29tcGF0aWJsZSBzdHJpbmcgY29udmVyc2lvbi4KICAgICAgICAgU3RyaW5nIGRlc3Rp
bmF0aW9uID0gcmFuZ2UtPnRleHQoKTsKICAgICAgICAgU3RyaW5nIHNvdXJjZSA9IG1fcmVxdWVz
dFRleHQuc3Vic3RyaW5nKHJlc3VsdHNbaV0ubG9jYXRpb24sIHJlc3VsdHNbaV0ubGVuZ3RoKTsK
ICAgICAgICAgaWYgKGRlc3RpbmF0aW9uID09IHNvdXJjZSkKLSAgICAgICAgICAgIG1fcmVxdWVz
dE5vZGUtPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+YWRkTWFya2VyKHJhbmdlLmdldCgpLCB0b01h
cmtlclR5cGUocmVzdWx0c1tpXS50eXBlKSk7CisgICAgICAgICAgICBtX3JlcXVlc3RSYW5nZS0+
b3duZXJEb2N1bWVudCgpLT5tYXJrZXJzKCktPmFkZE1hcmtlcihyYW5nZS5nZXQoKSwgdG9NYXJr
ZXJUeXBlKHJlc3VsdHNbaV0udHlwZSkpOwogCiAgICAgICAgIHN0YXJ0T2Zmc2V0ID0gcmVzdWx0
c1tpXS5sb2NhdGlvbjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1NwZWxsQ2hlY2tlci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaApp
bmRleCA1YTIzY2U4ZjU2NzgxOTYxZTNiYjMyZWZmYWRmMDBkMjUxZmQxZDc5Li5hODczNGM0MzFi
MWRlNTBkMTU5NTc4YTdiZDgzODhkZTQ5MGNiODcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3Bl
bGxDaGVja2VyLmgKQEAgLTM4LDYgKzM4LDcgQEAgY2xhc3MgRnJhbWU7CiBjbGFzcyBOb2RlOwog
Y2xhc3MgVGV4dENoZWNrZXJDbGllbnQ7CiBzdHJ1Y3QgVGV4dENoZWNraW5nUmVzdWx0OworY2xh
c3MgUmFuZ2U7CiAKIGNsYXNzIFNwZWxsQ2hlY2tlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoU3BlbGxDaGVja2VyKTsKQEAgLTQ2LDIxICs0NywyMiBAQCBwdWJsaWM6CiAgICAgflNwZWxs
Q2hlY2tlcigpOwogCiAgICAgYm9vbCBpc0FzeW5jaHJvbm91c0VuYWJsZWQoKSBjb25zdDsKLSAg
ICBib29sIGNhbkNoZWNrQXN5bmNocm9ub3VzbHkoTm9kZSopIGNvbnN0OworICAgIGJvb2wgY2Fu
Q2hlY2tBc3luY2hyb25vdXNseShSYW5nZSopIGNvbnN0OwogICAgIGJvb2wgaXNCdXN5KCkgY29u
c3Q7CiAgICAgYm9vbCBpc1ZhbGlkKGludCBzZXF1ZW5jZSkgY29uc3Q7Ci0gICAgYm9vbCBpc0No
ZWNrYWJsZShOb2RlKikgY29uc3Q7Ci0gICAgdm9pZCByZXF1ZXN0Q2hlY2tpbmdGb3IoVGV4dENo
ZWNraW5nVHlwZU1hc2ssIE5vZGUqKTsKKyAgICBib29sIGlzQ2hlY2thYmxlKFJhbmdlKikgY29u
c3Q7CisgICAgdm9pZCByZXF1ZXN0Q2hlY2tpbmdGb3IoVGV4dENoZWNraW5nVHlwZU1hc2ssIFBh
c3NSZWZQdHI8UmFuZ2U+KTsKKyAgICB2b2lkIHRyeVRvUmVxdWVzdENoZWNraW5nRm9yKFRleHRD
aGVja2luZ1R5cGVNYXNrLCBQYXNzUmVmUHRyPFJhbmdlPik7CiAgICAgdm9pZCBkaWRDaGVjayhp
bnQgc2VxdWVuY2UsIGNvbnN0IFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+Jik7CiAKIHByaXZh
dGU6Ci0gICAgYm9vbCBpbml0UmVxdWVzdChOb2RlKik7CisgICAgYm9vbCBpbml0UmVxdWVzdChQ
YXNzUmVmUHRyPFJhbmdlPik7CiAgICAgdm9pZCBjbGVhclJlcXVlc3QoKTsKICAgICBUZXh0Q2hl
Y2tlckNsaWVudCogY2xpZW50KCkgY29uc3Q7CiAKICAgICBGcmFtZSogbV9mcmFtZTsKIAotICAg
IFJlZlB0cjxOb2RlPiBtX3JlcXVlc3ROb2RlOworICAgIFJlZlB0cjxSYW5nZT4gbV9yZXF1ZXN0
UmFuZ2U7CiAgICAgU3RyaW5nIG1fcmVxdWVzdFRleHQ7CiAgICAgaW50IG1fcmVxdWVzdFNlcXVl
bmNlOwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116028</attachid>
            <date>2011-11-20 22:00:26 -0800</date>
            <delta_ts>2011-11-20 23:29:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72847-20111121150024.patch</filename>
            <type>text/plain</type>
            <size>8460</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwODczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QwODZiZWViZjg3YTBj
MTc1ZjQ0ODEyYjRmN2VjMmYxMWUwZGNkYS4uNTRkOTkyMjJjNDYzNzVlMDgyMjk1OTY1ZmZmZGE5
MGNkNDg3MTBhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDExLTExLTIwICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmVmYWN0b3Jpbmc6
IFNwZWxsQ2hlY2tlcjo6cmVxdWVzdENoZWNraW5nRm9yIHNob3VsZCB0YWtlIFJhbmdlIGluc3Rl
YWQgb2YgTm9kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTcyODQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0LgorCisgICAgICAgICogZWRpdGluZy9FZGl0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdt
ZW50KToKKyAgICAgICAgICBQYXNzZXMgUmFuZ2UgdG8gcmVxdWVzdENoZWNraW5nRm9yIGluc3Rl
YWQgb2YgTm9kZS4KKyAgICAgICAgKiBlZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHA6CisgICAgICAg
ICAgQ2hhbmdlZCBhcmd1bWVudCB0eXBlIGZyb20gTm9kZSB0byBSYW5nZS4KKyAgICAgICAgICBU
aGUgY29ycmVzcG9uZGluZyBjaGFuZ2VzIGFyZSBhbHNvIGRvbmUgaW4gZGVwZW5kZW50IG1ldGhv
ZHMuCisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmluaXRSZXF1ZXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6Y2xlYXJSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWxsQ2hlY2tlcjo6Y2FuQ2hlY2tBc3luY2hyb25vdXNseSk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVsbENoZWNrZXI6OmlzQnVzeSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNr
ZXI6OmlzVmFsaWQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjppc0NoZWNrYWJs
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ0Zvcik6
CisgICAgICAgICAgQ2hhbmdlZCBhcmd1bWVudCB0eXBlIGZyb20gTm9kZSB0byBSYW5nZS4KKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6ZG9SZXF1ZXN0Q2hlY2tpbmdGb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjpkaWRDaGVjayk6CisgICAgICAgICogZWRpdGlu
Zy9TcGVsbENoZWNrZXIuaDoKKwogMjAxMS0xMS0xNyAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUu
Y29tPgogCiAgICAgICAgIDxodHRwOi8vd2Via2l0Lm9yZy9iLzcyNjQ2PiBEaXNhYmxlIGRlcHJl
Y2F0aW9uIHdhcm5pbmdzIGFyb3VuZCBjb2RlIHdoZXJlIHdlIGNhbm5vdCBlYXNpbHkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCAwMTFiYWZlMDc2Mjk5YWU1NjhjZGE4YjViZDVjZDEz
ZDA4YWY5ZTI1Li4yYjc4NmQ4NDQyZjg3NmYzZTQ3ZTA4ZDQxZDE3NTk3ZTFkYzEwOWZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC00MTMsOCArNDEzLDkgQEAgdm9pZCBFZGl0b3I6
OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBmcmFnbWVudCwKICAgICByZXZlYWxTZWxlY3Rpb25BZnRlckVkaXRpbmdPcGVyYXRpb24oKTsK
IAogICAgIE5vZGUqIG5vZGVUb0NoZWNrID0gbV9mcmFtZS0+c2VsZWN0aW9uKCktPnJvb3RFZGl0
YWJsZUVsZW1lbnQoKTsKLSAgICBpZiAobV9zcGVsbENoZWNrZXItPmNhbkNoZWNrQXN5bmNocm9u
b3VzbHkobm9kZVRvQ2hlY2spKQotICAgICAgICBtX3NwZWxsQ2hlY2tlci0+cmVxdWVzdENoZWNr
aW5nRm9yKHJlc29sdmVUZXh0Q2hlY2tpbmdUeXBlTWFzayhUZXh0Q2hlY2tpbmdUeXBlU3BlbGxp
bmcgfCBUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hciksIG5vZGVUb0NoZWNrKTsKKworICAgIG1fc3Bl
bGxDaGVja2VyLT5yZXF1ZXN0Q2hlY2tpbmdGb3IocmVzb2x2ZVRleHRDaGVja2luZ1R5cGVNYXNr
KFRleHRDaGVja2luZ1R5cGVTcGVsbGluZyB8IFRleHRDaGVja2luZ1R5cGVHcmFtbWFyKSwKKyAg
ICAgICAgUmFuZ2U6OmNyZWF0ZShtX2ZyYW1lLT5kb2N1bWVudCgpLCBmaXJzdFBvc2l0aW9uSW5O
b2RlKG5vZGVUb0NoZWNrKSwgbGFzdFBvc2l0aW9uSW5Ob2RlKG5vZGVUb0NoZWNrKSkpOwogfQog
CiB2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KGNvbnN0IFN0cmluZyYgdGV4
dCwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKaW5kZXggYzZjYTkyNjkwMzZkNTRjZDkyNTFiZWQ1
NGQ3OWNmZDkwNzEwODYzMi4uMWJjOTc1YWYxNzE2NWNiYTE5NDIwZThjYTYxZjFkMGIyMDFkMTZh
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcApAQCAtMzksNiArMzks
NyBAQAogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAj
aW5jbHVkZSAiVGV4dENoZWNrZXJDbGllbnQuaCIKKyNpbmNsdWRlICJUZXh0Q2hlY2tpbmdIZWxw
ZXIuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5o
IgogCkBAIC02MiwxNSArNjMsMTUgQEAgVGV4dENoZWNrZXJDbGllbnQqIFNwZWxsQ2hlY2tlcjo6
Y2xpZW50KCkgY29uc3QKICAgICByZXR1cm4gcGFnZS0+ZWRpdG9yQ2xpZW50KCktPnRleHRDaGVj
a2VyKCk7CiB9CiAKLWJvb2wgU3BlbGxDaGVja2VyOjppbml0UmVxdWVzdChOb2RlKiBub2RlKQor
Ym9vbCBTcGVsbENoZWNrZXI6OmluaXRSZXF1ZXN0KFBhc3NSZWZQdHI8UmFuZ2U+IHJhbmdlKQog
ewotICAgIEFTU0VSVChjYW5DaGVja0FzeW5jaHJvbm91c2x5KG5vZGUpKTsKKyAgICBBU1NFUlQo
Y2FuQ2hlY2tBc3luY2hyb25vdXNseShyYW5nZS5nZXQoKSkpOwogCi0gICAgU3RyaW5nIHRleHQg
PSBub2RlLT50ZXh0Q29udGVudCgpOworICAgIFN0cmluZyB0ZXh0ID0gcmFuZ2UtPnRleHQoKTsK
ICAgICBpZiAoIXRleHQubGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIG1f
cmVxdWVzdE5vZGUgPSBub2RlOworICAgIG1fcmVxdWVzdFJhbmdlID0gcmFuZ2U7CiAgICAgbV9y
ZXF1ZXN0VGV4dCA9IHRleHQ7CiAgICAgbV9yZXF1ZXN0U2VxdWVuY2UrKzsKIApAQCAtNzksNyAr
ODAsNyBAQCBib29sIFNwZWxsQ2hlY2tlcjo6aW5pdFJlcXVlc3QoTm9kZSogbm9kZSkKIAogdm9p
ZCBTcGVsbENoZWNrZXI6OmNsZWFyUmVxdWVzdCgpCiB7Ci0gICAgbV9yZXF1ZXN0Tm9kZS5jbGVh
cigpOworICAgIG1fcmVxdWVzdFJhbmdlLmNsZWFyKCk7CiAgICAgbV9yZXF1ZXN0VGV4dCA9IFN0
cmluZygpOwogfQogCkBAIC04OCwzMSArODksMzkgQEAgYm9vbCBTcGVsbENoZWNrZXI6OmlzQXN5
bmNocm9ub3VzRW5hYmxlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fZnJhbWUtPnNldHRpbmdzKCkg
JiYgbV9mcmFtZS0+c2V0dGluZ3MoKS0+YXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQo
KTsKIH0KIAotYm9vbCBTcGVsbENoZWNrZXI6OmNhbkNoZWNrQXN5bmNocm9ub3VzbHkoTm9kZSog
bm9kZSkgY29uc3QKK2Jvb2wgU3BlbGxDaGVja2VyOjpjYW5DaGVja0FzeW5jaHJvbm91c2x5KFJh
bmdlKiByYW5nZSkgY29uc3QKIHsKLSAgICByZXR1cm4gY2xpZW50KCkgJiYgaXNDaGVja2FibGUo
bm9kZSkgJiYgaXNBc3luY2hyb25vdXNFbmFibGVkKCkgJiYgIWlzQnVzeSgpOworICAgIHJldHVy
biBjbGllbnQoKSAmJiBpc0NoZWNrYWJsZShyYW5nZSkgJiYgaXNBc3luY2hyb25vdXNFbmFibGVk
KCkgJiYgIWlzQnVzeSgpOwogfQogCiBib29sIFNwZWxsQ2hlY2tlcjo6aXNCdXN5KCkgY29uc3QK
IHsKLSAgICByZXR1cm4gbV9yZXF1ZXN0Tm9kZS5nZXQoKTsKKyAgICByZXR1cm4gbV9yZXF1ZXN0
UmFuZ2UuZ2V0KCk7CiB9CiAKIGJvb2wgU3BlbGxDaGVja2VyOjppc1ZhbGlkKGludCBzZXF1ZW5j
ZSkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9yZXF1ZXN0Tm9kZS5nZXQoKSAmJiBtX3JlcXVlc3RU
ZXh0Lmxlbmd0aCgpICYmIG1fcmVxdWVzdFNlcXVlbmNlID09IHNlcXVlbmNlOworICAgIHJldHVy
biBtX3JlcXVlc3RSYW5nZS5nZXQoKSAmJiBtX3JlcXVlc3RUZXh0Lmxlbmd0aCgpICYmIG1fcmVx
dWVzdFNlcXVlbmNlID09IHNlcXVlbmNlOwogfQogCi1ib29sIFNwZWxsQ2hlY2tlcjo6aXNDaGVj
a2FibGUoTm9kZSogbm9kZSkgY29uc3QKK2Jvb2wgU3BlbGxDaGVja2VyOjppc0NoZWNrYWJsZShS
YW5nZSogcmFuZ2UpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG5vZGUgJiYgbm9kZS0+cmVuZGVyZXIo
KTsKKyAgICByZXR1cm4gcmFuZ2UgJiYgcmFuZ2UtPmZpcnN0Tm9kZSgpICYmIHJhbmdlLT5maXJz
dE5vZGUoKS0+cmVuZGVyZXIoKTsKIH0KIAotdm9pZCBTcGVsbENoZWNrZXI6OnJlcXVlc3RDaGVj
a2luZ0ZvcihUZXh0Q2hlY2tpbmdUeXBlTWFzayBtYXNrLCBOb2RlKiBub2RlKQordm9pZCBTcGVs
bENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ0ZvcihUZXh0Q2hlY2tpbmdUeXBlTWFzayBtYXNrLCBQ
YXNzUmVmUHRyPFJhbmdlPiByYW5nZSkKIHsKLSAgICBBU1NFUlQoY2FuQ2hlY2tBc3luY2hyb25v
dXNseShub2RlKSk7CisgICAgaWYgKCFjYW5DaGVja0FzeW5jaHJvbm91c2x5KHJhbmdlLmdldCgp
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZG9SZXF1ZXN0Q2hlY2tpbmdGb3IobWFzaywgcmFu
Z2UpOworfQorCit2b2lkIFNwZWxsQ2hlY2tlcjo6ZG9SZXF1ZXN0Q2hlY2tpbmdGb3IoVGV4dENo
ZWNraW5nVHlwZU1hc2sgbWFzaywgUGFzc1JlZlB0cjxSYW5nZT4gcmFuZ2UpCit7CisgICAgQVNT
RVJUKGNhbkNoZWNrQXN5bmNocm9ub3VzbHkocmFuZ2UuZ2V0KCkpKTsKIAotICAgIGlmICghaW5p
dFJlcXVlc3Qobm9kZSkpCisgICAgaWYgKCFpbml0UmVxdWVzdChyYW5nZSkpCiAgICAgICAgIHJl
dHVybjsKICAgICBjbGllbnQoKS0+cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcodGhpcywgbV9yZXF1
ZXN0U2VxdWVuY2UsIG1hc2ssIG1fcmVxdWVzdFRleHQpOwogfQpAQCAtMTUzLDEzICsxNjIsMTMg
QEAgdm9pZCBTcGVsbENoZWNrZXI6OmRpZENoZWNrKGludCBzZXF1ZW5jZSwgY29uc3QgVmVjdG9y
PFRleHRDaGVja2luZ1Jlc3VsdD4mIHJlc3UKICAgICBpZiAoIWlzVmFsaWQoc2VxdWVuY2UpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIW1fcmVxdWVzdE5vZGUtPnJlbmRlcmVyKCkpIHsK
KyAgICBpZiAoIWlzQ2hlY2thYmxlKG1fcmVxdWVzdFJhbmdlLmdldCgpKSkgewogICAgICAgICBj
bGVhclJlcXVlc3QoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGludCBzdGFydE9m
ZnNldCA9IDA7Ci0gICAgUG9zaXRpb25JdGVyYXRvciBzdGFydCA9IGZpcnN0UG9zaXRpb25Jbk9y
QmVmb3JlTm9kZShtX3JlcXVlc3ROb2RlLmdldCgpKTsKKyAgICBQb3NpdGlvbkl0ZXJhdG9yIHN0
YXJ0ID0gbV9yZXF1ZXN0UmFuZ2UtPnN0YXJ0UG9zaXRpb24oKTsKICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHJlc3VsdHMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgaWYgKHJlc3VsdHNbaV0u
dHlwZSAhPSBUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgJiYgcmVzdWx0c1tpXS50eXBlICE9IFRl
eHRDaGVja2luZ1R5cGVHcmFtbWFyKQogICAgICAgICAgICAgY29udGludWU7CkBAIC0xNzcsMTIg
KzE4NiwxMiBAQCB2b2lkIFNwZWxsQ2hlY2tlcjo6ZGlkQ2hlY2soaW50IHNlcXVlbmNlLCBjb25z
dCBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiYgcmVzdQogICAgICAgICAvLyBzcGVsbGluZ3Mg
aW4gdGhlIGJhY2tncm91bmQuIFRvIGF2b2lkIGFkZGluZyBtYXJrZXJzIHRvIHRoZSB3b3JkcyBt
b2RpZmllZCBieSB1c2VycyBvcgogICAgICAgICAvLyBKYXZhU2NyaXB0IGFwcGxpY2F0aW9ucywg
cmV0cmlldmUgdGhlIHdvcmRzIGluIHRoZSBzcGVjaWZpZWQgcmVnaW9uIGFuZCBjb21wYXJlIHRo
ZW0gd2l0aAogICAgICAgICAvLyB0aGUgb3JpZ2luYWwgb25lcy4KLSAgICAgICAgUmVmUHRyPFJh
bmdlPiByYW5nZSA9IFJhbmdlOjpjcmVhdGUobV9yZXF1ZXN0Tm9kZS0+ZG9jdW1lbnQoKSwgc3Rh
cnQsIGVuZCk7CisgICAgICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKG1f
cmVxdWVzdFJhbmdlLT5vd25lckRvY3VtZW50KCksIHN0YXJ0LCBlbmQpOwogICAgICAgICAvLyBG
SVhNRTogVXNlIHRleHRDb250ZW50KCkgY29tcGF0aWJsZSBzdHJpbmcgY29udmVyc2lvbi4KICAg
ICAgICAgU3RyaW5nIGRlc3RpbmF0aW9uID0gcmFuZ2UtPnRleHQoKTsKICAgICAgICAgU3RyaW5n
IHNvdXJjZSA9IG1fcmVxdWVzdFRleHQuc3Vic3RyaW5nKHJlc3VsdHNbaV0ubG9jYXRpb24sIHJl
c3VsdHNbaV0ubGVuZ3RoKTsKICAgICAgICAgaWYgKGRlc3RpbmF0aW9uID09IHNvdXJjZSkKLSAg
ICAgICAgICAgIG1fcmVxdWVzdE5vZGUtPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+YWRkTWFya2Vy
KHJhbmdlLmdldCgpLCB0b01hcmtlclR5cGUocmVzdWx0c1tpXS50eXBlKSk7CisgICAgICAgICAg
ICBtX3JlcXVlc3RSYW5nZS0+b3duZXJEb2N1bWVudCgpLT5tYXJrZXJzKCktPmFkZE1hcmtlcihy
YW5nZS5nZXQoKSwgdG9NYXJrZXJUeXBlKHJlc3VsdHNbaV0udHlwZSkpOwogCiAgICAgICAgIHN0
YXJ0T2Zmc2V0ID0gcmVzdWx0c1tpXS5sb2NhdGlvbjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9TcGVsbENoZWNrZXIuaAppbmRleCA1YTIzY2U4ZjU2NzgxOTYxZTNiYjMyZWZmYWRmMDBkMjUx
ZmQxZDc5Li4zYTQxNDg5OTNhYTdhMzkwZDM0MzQyOTg3YzJhYjA4ODM4N2M4YTkxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmgKQEAgLTM4LDYgKzM4LDcgQEAgY2xhc3MgRnJh
bWU7CiBjbGFzcyBOb2RlOwogY2xhc3MgVGV4dENoZWNrZXJDbGllbnQ7CiBzdHJ1Y3QgVGV4dENo
ZWNraW5nUmVzdWx0OworY2xhc3MgUmFuZ2U7CiAKIGNsYXNzIFNwZWxsQ2hlY2tlciB7CiAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoU3BlbGxDaGVja2VyKTsKQEAgLTQ2LDIxICs0NywyMiBAQCBw
dWJsaWM6CiAgICAgflNwZWxsQ2hlY2tlcigpOwogCiAgICAgYm9vbCBpc0FzeW5jaHJvbm91c0Vu
YWJsZWQoKSBjb25zdDsKLSAgICBib29sIGNhbkNoZWNrQXN5bmNocm9ub3VzbHkoTm9kZSopIGNv
bnN0OworICAgIGJvb2wgY2FuQ2hlY2tBc3luY2hyb25vdXNseShSYW5nZSopIGNvbnN0OwogICAg
IGJvb2wgaXNCdXN5KCkgY29uc3Q7CiAgICAgYm9vbCBpc1ZhbGlkKGludCBzZXF1ZW5jZSkgY29u
c3Q7Ci0gICAgYm9vbCBpc0NoZWNrYWJsZShOb2RlKikgY29uc3Q7Ci0gICAgdm9pZCByZXF1ZXN0
Q2hlY2tpbmdGb3IoVGV4dENoZWNraW5nVHlwZU1hc2ssIE5vZGUqKTsKKyAgICBib29sIGlzQ2hl
Y2thYmxlKFJhbmdlKikgY29uc3Q7CisgICAgdm9pZCByZXF1ZXN0Q2hlY2tpbmdGb3IoVGV4dENo
ZWNraW5nVHlwZU1hc2ssIFBhc3NSZWZQdHI8UmFuZ2U+KTsKICAgICB2b2lkIGRpZENoZWNrKGlu
dCBzZXF1ZW5jZSwgY29uc3QgVmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4mKTsKIAogcHJpdmF0
ZToKLSAgICBib29sIGluaXRSZXF1ZXN0KE5vZGUqKTsKKyAgICBib29sIGluaXRSZXF1ZXN0KFBh
c3NSZWZQdHI8UmFuZ2U+KTsKICAgICB2b2lkIGNsZWFyUmVxdWVzdCgpOworICAgIHZvaWQgZG9S
ZXF1ZXN0Q2hlY2tpbmdGb3IoVGV4dENoZWNraW5nVHlwZU1hc2ssIFBhc3NSZWZQdHI8UmFuZ2U+
KTsKICAgICBUZXh0Q2hlY2tlckNsaWVudCogY2xpZW50KCkgY29uc3Q7CiAKICAgICBGcmFtZSog
bV9mcmFtZTsKIAotICAgIFJlZlB0cjxOb2RlPiBtX3JlcXVlc3ROb2RlOworICAgIFJlZlB0cjxS
YW5nZT4gbV9yZXF1ZXN0UmFuZ2U7CiAgICAgU3RyaW5nIG1fcmVxdWVzdFRleHQ7CiAgICAgaW50
IG1fcmVxdWVzdFNlcXVlbmNlOwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116034</attachid>
            <date>2011-11-20 23:30:00 -0800</date>
            <delta_ts>2011-11-21 01:21:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72847-20111121162958.patch</filename>
            <type>text/plain</type>
            <size>8498</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwODg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDU0YTE3YzQ4OTQ2M2Y2
ZjVjMmQxODIwYWE1Njg3NmEwMDdkOWVhOS4uMWJmNGNhNjA2OTI2NmQyMDJiYmJhYmM0NWZmYzM0
MDZkMzA3ODkwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDExLTExLTIwICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmVmYWN0b3Jpbmc6
IFNwZWxsQ2hlY2tlcjo6cmVxdWVzdENoZWNraW5nRm9yIHNob3VsZCB0YWtlIFJhbmdlIGluc3Rl
YWQgb2YgTm9kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTcyODQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0LgorCisgICAgICAgICogZWRpdGluZy9FZGl0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdt
ZW50KToKKyAgICAgICAgICBQYXNzZXMgUmFuZ2UgdG8gcmVxdWVzdENoZWNraW5nRm9yIGluc3Rl
YWQgb2YgTm9kZS4KKyAgICAgICAgKiBlZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHA6CisgICAgICAg
ICAgQ2hhbmdlZCBhcmd1bWVudCB0eXBlIGZyb20gTm9kZSB0byBSYW5nZS4KKyAgICAgICAgICBU
aGUgY29ycmVzcG9uZGluZyBjaGFuZ2VzIGFyZSBhbHNvIGRvbmUgaW4gZGVwZW5kZW50IG1ldGhv
ZHMuCisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmluaXRSZXF1ZXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6Y2xlYXJSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWxsQ2hlY2tlcjo6Y2FuQ2hlY2tBc3luY2hyb25vdXNseSk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVsbENoZWNrZXI6OmlzQnVzeSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNr
ZXI6OmlzVmFsaWQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjppc0NoZWNrYWJs
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ0Zvcik6
CisgICAgICAgICAgQ2hhbmdlZCBhcmd1bWVudCB0eXBlIGZyb20gTm9kZSB0byBSYW5nZS4KKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6ZG9SZXF1ZXN0Q2hlY2tpbmdGb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjpkaWRDaGVjayk6CisgICAgICAgICogZWRpdGlu
Zy9TcGVsbENoZWNrZXIuaDoKKwogMjAxMS0xMS0yMCAgS2VuaWNoaSBJc2hpYmFzaGkgIDxiYXNo
aUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBSZW1vdmUgb2xkIGdldEZvbnRG
YW1pbHlGb3JDaGFyYWN0ZXJzKCkgYW5kIGZhbWlseUZvckNoYXJzKCkgQVBJcy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcAppbmRleCAwNWJkMGQ3ZjdkZGYzZjU3NmQyNTgyNGNhZDA4MmIyN2Yw
NTkyOGE4Li5kMDI1MzhkMjk2NWU2NWZkY2I4Y2Y0OTY4NjEyY2NjYWRlZjZlNzQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC00MTMsOCArNDEzLDExIEBAIHZvaWQgRWRpdG9yOjpy
ZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4g
ZnJhZ21lbnQsCiAgICAgcmV2ZWFsU2VsZWN0aW9uQWZ0ZXJFZGl0aW5nT3BlcmF0aW9uKCk7CiAK
ICAgICBOb2RlKiBub2RlVG9DaGVjayA9IG1fZnJhbWUtPnNlbGVjdGlvbigpLT5yb290RWRpdGFi
bGVFbGVtZW50KCk7Ci0gICAgaWYgKG1fc3BlbGxDaGVja2VyLT5jYW5DaGVja0FzeW5jaHJvbm91
c2x5KG5vZGVUb0NoZWNrKSkKLSAgICAgICAgbV9zcGVsbENoZWNrZXItPnJlcXVlc3RDaGVja2lu
Z0ZvcihyZXNvbHZlVGV4dENoZWNraW5nVHlwZU1hc2soVGV4dENoZWNraW5nVHlwZVNwZWxsaW5n
IHwgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIpLCBub2RlVG9DaGVjayk7CisgICAgaWYgKCFub2Rl
VG9DaGVjaykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9zcGVsbENoZWNrZXItPnJlcXVlc3RD
aGVja2luZ0ZvcihyZXNvbHZlVGV4dENoZWNraW5nVHlwZU1hc2soVGV4dENoZWNraW5nVHlwZVNw
ZWxsaW5nIHwgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIpLAorICAgICAgICBSYW5nZTo6Y3JlYXRl
KG1fZnJhbWUtPmRvY3VtZW50KCksIGZpcnN0UG9zaXRpb25Jbk5vZGUobm9kZVRvQ2hlY2spLCBs
YXN0UG9zaXRpb25Jbk5vZGUobm9kZVRvQ2hlY2spKSk7CiB9CiAKIHZvaWQgRWRpdG9yOjpyZXBs
YWNlU2VsZWN0aW9uV2l0aFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdFJlcGxh
Y2VtZW50LCBib29sIHNtYXJ0UmVwbGFjZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvU3BlbGxDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVj
a2VyLmNwcAppbmRleCBjNmNhOTI2OTAzNmQ1NGNkOTI1MWJlZDU0ZDc5Y2ZkOTA3MTA4NjMyLi4x
YmM5NzVhZjE3MTY1Y2JhMTk0MjBlOGNhNjFmMWQwYjIwMWQxNmE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiUmVu
ZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tl
ckNsaWVudC5oIgorI2luY2x1ZGUgIlRleHRDaGVja2luZ0hlbHBlci5oIgogI2luY2x1ZGUgIlRl
eHRJdGVyYXRvci5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKQEAgLTYyLDE1ICs2Mywx
NSBAQCBUZXh0Q2hlY2tlckNsaWVudCogU3BlbGxDaGVja2VyOjpjbGllbnQoKSBjb25zdAogICAg
IHJldHVybiBwYWdlLT5lZGl0b3JDbGllbnQoKS0+dGV4dENoZWNrZXIoKTsKIH0KIAotYm9vbCBT
cGVsbENoZWNrZXI6OmluaXRSZXF1ZXN0KE5vZGUqIG5vZGUpCitib29sIFNwZWxsQ2hlY2tlcjo6
aW5pdFJlcXVlc3QoUGFzc1JlZlB0cjxSYW5nZT4gcmFuZ2UpCiB7Ci0gICAgQVNTRVJUKGNhbkNo
ZWNrQXN5bmNocm9ub3VzbHkobm9kZSkpOworICAgIEFTU0VSVChjYW5DaGVja0FzeW5jaHJvbm91
c2x5KHJhbmdlLmdldCgpKSk7CiAKLSAgICBTdHJpbmcgdGV4dCA9IG5vZGUtPnRleHRDb250ZW50
KCk7CisgICAgU3RyaW5nIHRleHQgPSByYW5nZS0+dGV4dCgpOwogICAgIGlmICghdGV4dC5sZW5n
dGgoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgbV9yZXF1ZXN0Tm9kZSA9IG5vZGU7
CisgICAgbV9yZXF1ZXN0UmFuZ2UgPSByYW5nZTsKICAgICBtX3JlcXVlc3RUZXh0ID0gdGV4dDsK
ICAgICBtX3JlcXVlc3RTZXF1ZW5jZSsrOwogCkBAIC03OSw3ICs4MCw3IEBAIGJvb2wgU3BlbGxD
aGVja2VyOjppbml0UmVxdWVzdChOb2RlKiBub2RlKQogCiB2b2lkIFNwZWxsQ2hlY2tlcjo6Y2xl
YXJSZXF1ZXN0KCkKIHsKLSAgICBtX3JlcXVlc3ROb2RlLmNsZWFyKCk7CisgICAgbV9yZXF1ZXN0
UmFuZ2UuY2xlYXIoKTsKICAgICBtX3JlcXVlc3RUZXh0ID0gU3RyaW5nKCk7CiB9CiAKQEAgLTg4
LDMxICs4OSwzOSBAQCBib29sIFNwZWxsQ2hlY2tlcjo6aXNBc3luY2hyb25vdXNFbmFibGVkKCkg
Y29uc3QKICAgICByZXR1cm4gbV9mcmFtZS0+c2V0dGluZ3MoKSAmJiBtX2ZyYW1lLT5zZXR0aW5n
cygpLT5hc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpOwogfQogCi1ib29sIFNwZWxs
Q2hlY2tlcjo6Y2FuQ2hlY2tBc3luY2hyb25vdXNseShOb2RlKiBub2RlKSBjb25zdAorYm9vbCBT
cGVsbENoZWNrZXI6OmNhbkNoZWNrQXN5bmNocm9ub3VzbHkoUmFuZ2UqIHJhbmdlKSBjb25zdAog
ewotICAgIHJldHVybiBjbGllbnQoKSAmJiBpc0NoZWNrYWJsZShub2RlKSAmJiBpc0FzeW5jaHJv
bm91c0VuYWJsZWQoKSAmJiAhaXNCdXN5KCk7CisgICAgcmV0dXJuIGNsaWVudCgpICYmIGlzQ2hl
Y2thYmxlKHJhbmdlKSAmJiBpc0FzeW5jaHJvbm91c0VuYWJsZWQoKSAmJiAhaXNCdXN5KCk7CiB9
CiAKIGJvb2wgU3BlbGxDaGVja2VyOjppc0J1c3koKSBjb25zdAogewotICAgIHJldHVybiBtX3Jl
cXVlc3ROb2RlLmdldCgpOworICAgIHJldHVybiBtX3JlcXVlc3RSYW5nZS5nZXQoKTsKIH0KIAog
Ym9vbCBTcGVsbENoZWNrZXI6OmlzVmFsaWQoaW50IHNlcXVlbmNlKSBjb25zdAogewotICAgIHJl
dHVybiBtX3JlcXVlc3ROb2RlLmdldCgpICYmIG1fcmVxdWVzdFRleHQubGVuZ3RoKCkgJiYgbV9y
ZXF1ZXN0U2VxdWVuY2UgPT0gc2VxdWVuY2U7CisgICAgcmV0dXJuIG1fcmVxdWVzdFJhbmdlLmdl
dCgpICYmIG1fcmVxdWVzdFRleHQubGVuZ3RoKCkgJiYgbV9yZXF1ZXN0U2VxdWVuY2UgPT0gc2Vx
dWVuY2U7CiB9CiAKLWJvb2wgU3BlbGxDaGVja2VyOjppc0NoZWNrYWJsZShOb2RlKiBub2RlKSBj
b25zdAorYm9vbCBTcGVsbENoZWNrZXI6OmlzQ2hlY2thYmxlKFJhbmdlKiByYW5nZSkgY29uc3QK
IHsKLSAgICByZXR1cm4gbm9kZSAmJiBub2RlLT5yZW5kZXJlcigpOworICAgIHJldHVybiByYW5n
ZSAmJiByYW5nZS0+Zmlyc3ROb2RlKCkgJiYgcmFuZ2UtPmZpcnN0Tm9kZSgpLT5yZW5kZXJlcigp
OwogfQogCi12b2lkIFNwZWxsQ2hlY2tlcjo6cmVxdWVzdENoZWNraW5nRm9yKFRleHRDaGVja2lu
Z1R5cGVNYXNrIG1hc2ssIE5vZGUqIG5vZGUpCit2b2lkIFNwZWxsQ2hlY2tlcjo6cmVxdWVzdENo
ZWNraW5nRm9yKFRleHRDaGVja2luZ1R5cGVNYXNrIG1hc2ssIFBhc3NSZWZQdHI8UmFuZ2U+IHJh
bmdlKQogewotICAgIEFTU0VSVChjYW5DaGVja0FzeW5jaHJvbm91c2x5KG5vZGUpKTsKKyAgICBp
ZiAoIWNhbkNoZWNrQXN5bmNocm9ub3VzbHkocmFuZ2UuZ2V0KCkpKQorICAgICAgICByZXR1cm47
CisKKyAgICBkb1JlcXVlc3RDaGVja2luZ0ZvcihtYXNrLCByYW5nZSk7Cit9CisKK3ZvaWQgU3Bl
bGxDaGVja2VyOjpkb1JlcXVlc3RDaGVja2luZ0ZvcihUZXh0Q2hlY2tpbmdUeXBlTWFzayBtYXNr
LCBQYXNzUmVmUHRyPFJhbmdlPiByYW5nZSkKK3sKKyAgICBBU1NFUlQoY2FuQ2hlY2tBc3luY2hy
b25vdXNseShyYW5nZS5nZXQoKSkpOwogCi0gICAgaWYgKCFpbml0UmVxdWVzdChub2RlKSkKKyAg
ICBpZiAoIWluaXRSZXF1ZXN0KHJhbmdlKSkKICAgICAgICAgcmV0dXJuOwogICAgIGNsaWVudCgp
LT5yZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyh0aGlzLCBtX3JlcXVlc3RTZXF1ZW5jZSwgbWFzaywg
bV9yZXF1ZXN0VGV4dCk7CiB9CkBAIC0xNTMsMTMgKzE2MiwxMyBAQCB2b2lkIFNwZWxsQ2hlY2tl
cjo6ZGlkQ2hlY2soaW50IHNlcXVlbmNlLCBjb25zdCBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0
PiYgcmVzdQogICAgIGlmICghaXNWYWxpZChzZXF1ZW5jZSkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGlmICghbV9yZXF1ZXN0Tm9kZS0+cmVuZGVyZXIoKSkgeworICAgIGlmICghaXNDaGVja2Fi
bGUobV9yZXF1ZXN0UmFuZ2UuZ2V0KCkpKSB7CiAgICAgICAgIGNsZWFyUmVxdWVzdCgpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaW50IHN0YXJ0T2Zmc2V0ID0gMDsKLSAgICBQb3Np
dGlvbkl0ZXJhdG9yIHN0YXJ0ID0gZmlyc3RQb3NpdGlvbkluT3JCZWZvcmVOb2RlKG1fcmVxdWVz
dE5vZGUuZ2V0KCkpOworICAgIFBvc2l0aW9uSXRlcmF0b3Igc3RhcnQgPSBtX3JlcXVlc3RSYW5n
ZS0+c3RhcnRQb3NpdGlvbigpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVzdWx0cy5z
aXplKCk7ICsraSkgewogICAgICAgICBpZiAocmVzdWx0c1tpXS50eXBlICE9IFRleHRDaGVja2lu
Z1R5cGVTcGVsbGluZyAmJiByZXN1bHRzW2ldLnR5cGUgIT0gVGV4dENoZWNraW5nVHlwZUdyYW1t
YXIpCiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTE3NywxMiArMTg2LDEyIEBAIHZvaWQgU3Bl
bGxDaGVja2VyOjpkaWRDaGVjayhpbnQgc2VxdWVuY2UsIGNvbnN0IFZlY3RvcjxUZXh0Q2hlY2tp
bmdSZXN1bHQ+JiByZXN1CiAgICAgICAgIC8vIHNwZWxsaW5ncyBpbiB0aGUgYmFja2dyb3VuZC4g
VG8gYXZvaWQgYWRkaW5nIG1hcmtlcnMgdG8gdGhlIHdvcmRzIG1vZGlmaWVkIGJ5IHVzZXJzIG9y
CiAgICAgICAgIC8vIEphdmFTY3JpcHQgYXBwbGljYXRpb25zLCByZXRyaWV2ZSB0aGUgd29yZHMg
aW4gdGhlIHNwZWNpZmllZCByZWdpb24gYW5kIGNvbXBhcmUgdGhlbSB3aXRoCiAgICAgICAgIC8v
IHRoZSBvcmlnaW5hbCBvbmVzLgotICAgICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gUmFuZ2U6
OmNyZWF0ZShtX3JlcXVlc3ROb2RlLT5kb2N1bWVudCgpLCBzdGFydCwgZW5kKTsKKyAgICAgICAg
UmVmUHRyPFJhbmdlPiByYW5nZSA9IFJhbmdlOjpjcmVhdGUobV9yZXF1ZXN0UmFuZ2UtPm93bmVy
RG9jdW1lbnQoKSwgc3RhcnQsIGVuZCk7CiAgICAgICAgIC8vIEZJWE1FOiBVc2UgdGV4dENvbnRl
bnQoKSBjb21wYXRpYmxlIHN0cmluZyBjb252ZXJzaW9uLgogICAgICAgICBTdHJpbmcgZGVzdGlu
YXRpb24gPSByYW5nZS0+dGV4dCgpOwogICAgICAgICBTdHJpbmcgc291cmNlID0gbV9yZXF1ZXN0
VGV4dC5zdWJzdHJpbmcocmVzdWx0c1tpXS5sb2NhdGlvbiwgcmVzdWx0c1tpXS5sZW5ndGgpOwog
ICAgICAgICBpZiAoZGVzdGluYXRpb24gPT0gc291cmNlKQotICAgICAgICAgICAgbV9yZXF1ZXN0
Tm9kZS0+ZG9jdW1lbnQoKS0+bWFya2VycygpLT5hZGRNYXJrZXIocmFuZ2UuZ2V0KCksIHRvTWFy
a2VyVHlwZShyZXN1bHRzW2ldLnR5cGUpKTsKKyAgICAgICAgICAgIG1fcmVxdWVzdFJhbmdlLT5v
d25lckRvY3VtZW50KCktPm1hcmtlcnMoKS0+YWRkTWFya2VyKHJhbmdlLmdldCgpLCB0b01hcmtl
clR5cGUocmVzdWx0c1tpXS50eXBlKSk7CiAKICAgICAgICAgc3RhcnRPZmZzZXQgPSByZXN1bHRz
W2ldLmxvY2F0aW9uOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
U3BlbGxDaGVja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oCmlu
ZGV4IDVhMjNjZThmNTY3ODE5NjFlM2JiMzJlZmZhZGYwMGQyNTFmZDFkNzkuLjNhNDE0ODk5M2Fh
N2EzOTBkMzQzNDI5ODdjMmFiMDg4Mzg3YzhhOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvU3BlbGxDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVs
bENoZWNrZXIuaApAQCAtMzgsNiArMzgsNyBAQCBjbGFzcyBGcmFtZTsKIGNsYXNzIE5vZGU7CiBj
bGFzcyBUZXh0Q2hlY2tlckNsaWVudDsKIHN0cnVjdCBUZXh0Q2hlY2tpbmdSZXN1bHQ7CitjbGFz
cyBSYW5nZTsKIAogY2xhc3MgU3BlbGxDaGVja2VyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShTcGVsbENoZWNrZXIpOwpAQCAtNDYsMjEgKzQ3LDIyIEBAIHB1YmxpYzoKICAgICB+U3BlbGxD
aGVja2VyKCk7CiAKICAgICBib29sIGlzQXN5bmNocm9ub3VzRW5hYmxlZCgpIGNvbnN0OwotICAg
IGJvb2wgY2FuQ2hlY2tBc3luY2hyb25vdXNseShOb2RlKikgY29uc3Q7CisgICAgYm9vbCBjYW5D
aGVja0FzeW5jaHJvbm91c2x5KFJhbmdlKikgY29uc3Q7CiAgICAgYm9vbCBpc0J1c3koKSBjb25z
dDsKICAgICBib29sIGlzVmFsaWQoaW50IHNlcXVlbmNlKSBjb25zdDsKLSAgICBib29sIGlzQ2hl
Y2thYmxlKE5vZGUqKSBjb25zdDsKLSAgICB2b2lkIHJlcXVlc3RDaGVja2luZ0ZvcihUZXh0Q2hl
Y2tpbmdUeXBlTWFzaywgTm9kZSopOworICAgIGJvb2wgaXNDaGVja2FibGUoUmFuZ2UqKSBjb25z
dDsKKyAgICB2b2lkIHJlcXVlc3RDaGVja2luZ0ZvcihUZXh0Q2hlY2tpbmdUeXBlTWFzaywgUGFz
c1JlZlB0cjxSYW5nZT4pOwogICAgIHZvaWQgZGlkQ2hlY2soaW50IHNlcXVlbmNlLCBjb25zdCBW
ZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiYpOwogCiBwcml2YXRlOgotICAgIGJvb2wgaW5pdFJl
cXVlc3QoTm9kZSopOworICAgIGJvb2wgaW5pdFJlcXVlc3QoUGFzc1JlZlB0cjxSYW5nZT4pOwog
ICAgIHZvaWQgY2xlYXJSZXF1ZXN0KCk7CisgICAgdm9pZCBkb1JlcXVlc3RDaGVja2luZ0ZvcihU
ZXh0Q2hlY2tpbmdUeXBlTWFzaywgUGFzc1JlZlB0cjxSYW5nZT4pOwogICAgIFRleHRDaGVja2Vy
Q2xpZW50KiBjbGllbnQoKSBjb25zdDsKIAogICAgIEZyYW1lKiBtX2ZyYW1lOwogCi0gICAgUmVm
UHRyPE5vZGU+IG1fcmVxdWVzdE5vZGU7CisgICAgUmVmUHRyPFJhbmdlPiBtX3JlcXVlc3RSYW5n
ZTsKICAgICBTdHJpbmcgbV9yZXF1ZXN0VGV4dDsKICAgICBpbnQgbV9yZXF1ZXN0U2VxdWVuY2U7
CiB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>