<?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>89603</bug_id>
          
          <creation_ts>2012-06-20 14:19:16 -0700</creation_ts>
          <short_desc>Move m_listsInvalidatedAtDocument from NodeListsNodeData to Document</short_desc>
          <delta_ts>2012-06-20 21:22:54 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>89036</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>adamk</cc>
    
    <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>653884</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-20 14:19:16 -0700</bug_when>
    <thetext>Move m_listsInvalidatedAtDocument from NodeListsNodeData to Document</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653888</commentid>
    <comment_count>1</comment_count>
      <attachid>148653</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-20 14:20:52 -0700</bug_when>
    <thetext>Created attachment 148653
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653890</commentid>
    <comment_count>2</comment_count>
      <attachid>148654</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-20 14:21:43 -0700</bug_when>
    <thetext>Created attachment 148654
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653913</commentid>
    <comment_count>3</comment_count>
      <attachid>148654</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-06-20 14:55:23 -0700</bug_when>
    <thetext>Comment on attachment 148654
Patch

r=moi!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653923</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-20 15:05:34 -0700</bug_when>
    <thetext>Committed r120868: &lt;http://trac.webkit.org/changeset/120868&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654218</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-20 21:22:54 -0700</bug_when>
    <thetext>Thanks for the review! Now https://bugs.webkit.org/show_bug.cgi?id=89036 has a patch that further reduces the size of NodeListsNodeData.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148653</attachid>
            <date>2012-06-20 14:20:52 -0700</date>
            <delta_ts>2012-06-20 14:21:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89603-20120620142449.patch</filename>
            <type>text/plain</type>
            <size>16228</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMDg2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA2LTIwICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIE1vdmUgbV9saXN0c0ludmFsaWRh
dGVkQXREb2N1bWVudCBmcm9tIE5vZGVMaXN0c05vZGVEYXRhIHRvIERvY3VtZW50CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTYwMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVkIHRoZSB2YXJpYWJs
ZS4gbV9saXN0c0ludmFsaWRhdGVkQXREb2N1bWVudCBpcyBuZXZlciB1c2VkIGluIG5vbi1Eb2N1
bWVudCBub2RlcworICAgICAgICBzbyBpdCB3YXMganVzdCB3YXN0aW5nIG1lbW9yeSBzcGFjZS4K
KworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6cmVnaXN0ZXJEeW5hbWljU3VidHJlZU5vZGVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50Ojp1bnJlZ2lzdGVyRHluYW1pY1N1YnRyZWVOb2RlTGlzdCk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjbGVhck5vZGVMaXN0Q2FjaGVzKToK
KyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKERvY3VtZW50KToKKyAgICAgICAg
KiBkb20vRHluYW1pY05vZGVMaXN0Lmg6CisgICAgICAgIChEeW5hbWljU3VidHJlZU5vZGVMaXN0
KToKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjppbnZh
bGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckF0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6Tm9kZTo6aW52YWxpZGF0ZU5vZGVMaXN0c0NhY2hlQWZ0ZXJDaGlsZHJlbkNoYW5nZWQp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlTGlzdHNOb2RlRGF0
YTo6aW52YWxpZGF0ZUNhY2hlc1RoYXREZXBlbmRPbkF0dHJpYnV0ZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6Tm9kZUxpc3RzTm9kZURhdGE6OmlzRW1wdHkpOgorICAgICAgICAqIGRvbS9Ob2RlUmFy
ZURhdGEuaDoKKyAgICAgICAgKE5vZGVMaXN0c05vZGVEYXRhKToKKwogMjAxMi0wNi0yMCAgSnVs
aWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNT
SU9OKHIxMTM4ODUpOiBNYXJnaW4gbm90IHByb3Blcmx5IGFwcGxpZWQgdG8gZWxlbWVudHMgd2l0
aCBhbGlnbj1jZW50ZXIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDEyMDg0NykKKysrIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTc3
OSwxMiArMTc3OSwxMiBAQAogCQk2RTIxQzZDMDExMjYzMzg1MDBBN0JFMDIgLyogR3JhcGhpY3ND
b250ZXh0M0QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNkUyMUM2QkYxMTI2MzM4NTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNELmNwcCAqLzsg
fTsKIAkJNkUyMUM2QzIxMTI2MzM5OTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNEQ0cuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkUyMUM2QzEx
MTI2MzM5OTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNEQ0cuY3BwICovOyB9OwogCQk2RTNG
QUQzODE0NzMzRjQwMDBFNDIzMDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTNGQUQzNjE0
NzMzRjQwMDBFNDIzMDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAgKi87IH07
Ci0JCTZFM0ZBRDM5MTQ3MzNGNDAwMEU0MjMwNiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVT
M1RDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTNG
QUQzNzE0NzMzRjQwMDBFNDIzMDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5oICov
OyB9OwotCQk2RTNGQUU4RTE0NzMzRkRCMDBFNDIzMDYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVy
ZVMzVEMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NkUzRkFFOEMxNDczM0ZEQjAwRTQyMzA2IC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNw
cCAqLzsgfTsKLQkJNkUzRkFFOEYxNDczM0ZEQjAwRTQyMzA2IC8qIFdlYkdMQ29tcHJlc3NlZFRl
eHR1cmVTM1RDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2RTNGQUU4RDE0NzMzRkRCMDBFNDIzMDYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMu
aCAqLzsgfTsKIAkJNkUzRkFEMzgxNDczM0Y0MDAwRTQyMzA3IC8qIEpTV2ViR0xEZXB0aFRleHR1
cmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkUz
RkFEMzYxNDczM0Y0MDAwRTQyMzA3IC8qIEpTV2ViR0xEZXB0aFRleHR1cmUuY3BwICovOyB9Owor
CQk2RTNGQUQzOTE0NzMzRjQwMDBFNDIzMDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNU
Qy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkUzRkFE
MzcxNDczM0Y0MDAwRTQyMzA2IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaCAqLzsg
fTsKIAkJNkUzRkFEMzkxNDczM0Y0MDAwRTQyMzA3IC8qIEpTV2ViR0xEZXB0aFRleHR1cmUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFM0ZBRDM3MTQ3
MzNGNDAwMEU0MjMwNyAvKiBKU1dlYkdMRGVwdGhUZXh0dXJlLmggKi87IH07CisJCTZFM0ZBRThF
MTQ3MzNGREIwMEU0MjMwNiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTNGQUU4QzE0NzMzRkRC
MDBFNDIzMDYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwICovOyB9OwogCQk2RTNG
QUU4RTE0NzMzRkRCMDBFNDIzMDcgLyogV2ViR0xEZXB0aFRleHR1cmUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkUzRkFFOEMxNDczM0ZEQjAwRTQy
MzA3IC8qIFdlYkdMRGVwdGhUZXh0dXJlLmNwcCAqLzsgfTsKKwkJNkUzRkFFOEYxNDczM0ZEQjAw
RTQyMzA2IC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTNGQUU4RDE0NzMzRkRCMDBFNDIzMDYgLyog
V2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaCAqLzsgfTsKIAkJNkUzRkFFOEYxNDczM0ZEQjAw
RTQyMzA3IC8qIFdlYkdMRGVwdGhUZXh0dXJlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2RTNGQUU4RDE0NzMzRkRCMDBFNDIzMDcgLyogV2ViR0xEZXB0
aFRleHR1cmUuaCAqLzsgfTsKIAkJNkU0N0U2NjAxMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMR2V0
SW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
RTQ3RTY1RTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmNwcCAqLzsgfTsKIAkJNkU0
N0U2NjExMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMR2V0SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkU0N0U2NUYxMEI3OTQ0QjAwQjE4NkM4IC8q
IFdlYkdMR2V0SW5mby5oICovOyB9OwpAQCAtODg2NCwxNCArODg2NCwxNCBAQAogCQk2RTIxQzZC
RjExMjYzMzg1MDBBN0JFMDIgLyogR3JhcGhpY3NDb250ZXh0M0QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0M0QuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2RTIxQzZDMTExMjYzMzk5MDBBN0JFMDIgLyogR3JhcGhpY3ND
b250ZXh0M0RDRy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFw
aGljc0NvbnRleHQzRENHLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUzRkFE
MzYxNDczM0Y0MDAwRTQyMzA2IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTENvbXByZXNzZWRUZXh0
dXJlUzNUQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZFM0ZBRDM3MTQ3MzNG
NDAwMEU0MjMwNiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkUzRkFFOEMxNDczM0ZEQjAwRTQyMzA2IC8qIFdl
YkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcDsgcGF0aCA9IGNhbnZhcy9X
ZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTZFM0ZBRThEMTQ3MzNGREIwMEU0MjMwNiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNU
Qy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJHTENvbXByZXNzZWRUZXh0
dXJlUzNUQy5oOyBwYXRoID0gY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZFM0ZBRTkwMTQ3MzNGRUEwMEU0MjMwNiAvKiBX
ZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gV2Vi
R0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaWRsOyBwYXRoID0gY2FudmFzL1dlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVTM1RDLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUzRkFEMzYx
NDczM0Y0MDAwRTQyMzA3IC8qIEpTV2ViR0xEZXB0aFRleHR1cmUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTERlcHRoVGV4dHVyZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTZFM0ZBRDM3MTQ3MzNGNDAwMEU0MjMwNiAvKiBKU1dlYkdM
Q29tcHJlc3NlZFRleHR1cmVTM1RDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNkUzRkFEMzcxNDczM0Y0MDAwRTQyMzA3IC8qIEpTV2ViR0xEZXB0aFRleHR1cmUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHTERlcHRoVGV4dHVyZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2RTNGQUU4QzE0NzMzRkRCMDBFNDIzMDYgLyog
V2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwOyBwYXRoID0gY2FudmFz
L1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNkUzRkFFOEMxNDczM0ZEQjAwRTQyMzA3IC8qIFdlYkdMRGVwdGhUZXh0dXJlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkdMRGVwdGhUZXh0dXJlLmNw
cDsgcGF0aCA9IGNhbnZhcy9XZWJHTERlcHRoVGV4dHVyZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTZFM0ZBRThEMTQ3MzNGREIwMEU0MjMwNiAvKiBXZWJHTENvbXByZXNzZWRU
ZXh0dXJlUzNUQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJHTENvbXBy
ZXNzZWRUZXh0dXJlUzNUQy5oOyBwYXRoID0gY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVT
M1RDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFM0ZBRThEMTQ3MzNGREIwMEU0
MjMwNyAvKiBXZWJHTERlcHRoVGV4dHVyZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBXZWJHTERlcHRoVGV4dHVyZS5oOyBwYXRoID0gY2FudmFzL1dlYkdMRGVwdGhUZXh0dXJl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZFM0ZBRTkwMTQ3MzNGRUEwMEU0MjMw
NiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1l
ID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaWRsOyBwYXRoID0gY2FudmFzL1dlYkdMQ29t
cHJlc3NlZFRleHR1cmVTM1RDLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUz
RkFFOTAxNDczM0ZFQTAwRTQyMzA3IC8qIFdlYkdMRGVwdGhUZXh0dXJlLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IG5hbWUgPSBXZWJHTERlcHRoVGV4dHVyZS5pZGw7IHBhdGggPSBjYW52YXMvV2ViR0xE
ZXB0aFRleHR1cmUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTQ3RTY1RTEw
Qjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFdlYkdMR2V0SW5mby5jcHA7IHBhdGggPSBjYW52YXMvV2ViR0xHZXRJ
bmZvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkU0N0U2NUYxMEI3OTQ0QjAw
QjE4NkM4IC8qIFdlYkdMR2V0SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBXZWJHTEdldEluZm8uaDsgcGF0aCA9IGNhbnZhcy9XZWJHTEdldEluZm8uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExNDgzLDcgKzExNDgzLDcgQEAKIAkJQUFCNjA1NEExNTg3
NEM1ODAwN0I1MDMxIC8qIEluamVjdGVkU2NyaXB0QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZFNjcmlwdEJhc2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBQUI2MDU0QjE1ODc0QzU4MDA3QjUwMzEgLyogSW5qZWN0ZWRTY3Jp
cHRCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkU2NyaXB0
QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBQUI2MDU0QzE1ODc0QzU4MDA3
QjUwMzEgLyogSW5qZWN0ZWRTY3JpcHRNb2R1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRTY3JpcHRNb2R1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotIAkJQUFCNjA1NEQxNTg3NEM1ODAwN0I1MDMxIC8qIEluamVjdGVkU2NyaXB0
TW9kdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkU2NyaXB0
TW9kdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFBQjYwNTREMTU4NzRDNTgw
MDdCNTAzMSAvKiBJbmplY3RlZFNjcmlwdE1vZHVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJbmplY3RlZFNjcmlwdE1vZHVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBQUQ3NjZFODE1N0U1MDJGMDBFODU0MjMgLyogSW5zcGVjdG9yV2ViR0xBZ2VudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JXZWJHTEFn
ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUFENzY2RTkxNTdFNTAyRjAw
RTg1NDIzIC8qIEluc3BlY3RvcldlYkdMQWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSW5zcGVjdG9yV2ViR0xBZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBQUQ3NjZFQTE1N0U1MDJGMDBFODU0MjMgLyogSW5zcGVjdG9yV2ViR0xJbnN0cnVtZW50
YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yV2ViR0xJ
bnN0cnVtZW50YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NDIxLDcg
KzE0NDIxLDcgQEAKIAkJCQlGMzE2Mzk2OTEzMjk0ODFBMDBBNjQ5Q0IgLyogSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLmNwcCAqLywKIAkJCQlGMzE2Mzk2QTEzMjk0ODFBMDBBNjQ5Q0IgLyogSW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyLmggKi8sCiAJCQkJQUFCNjA1NEMxNTg3NEM1ODAwN0I1MDMxIC8qIElu
amVjdGVkU2NyaXB0TW9kdWxlLmNwcCAqLywKLSAJCQkJQUFCNjA1NEQxNTg3NEM1ODAwN0I1MDMx
IC8qIEluamVjdGVkU2NyaXB0TW9kdWxlLmggKi8sCisJCQkJQUFCNjA1NEQxNTg3NEM1ODAwN0I1
MDMxIC8qIEluamVjdGVkU2NyaXB0TW9kdWxlLmggKi8sCiAJCQkJN0E1NjNGOTUxMkRGNUM5MTAw
RjQ1MzZEIC8qIEluamVjdGVkU2NyaXB0U291cmNlLmpzICovLAogCQkJCUFBOTAzMEZFMTU3RTE2
QTAwMDI3NjI0NyAvKiBJbmplY3RlZFdlYkdMU2NyaXB0U291cmNlLmpzICovLAogCQkJCTFDNDM1
Q0Q0MTRFODU0NUIwMDRFMTBFQSAvKiBJbnNwZWN0b3ItMC4xLmpzb24gKi8sCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDEyMDg0NykKKysrIFNvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4NjQsMTQgKzM4NjQsMTkgQEAgdm9p
ZCBEb2N1bWVudDo6c2V0Q1NTVGFyZ2V0KEVsZW1lbnQqIG4pCiAKIHZvaWQgRG9jdW1lbnQ6OnJl
Z2lzdGVyRHluYW1pY1N1YnRyZWVOb2RlTGlzdChEeW5hbWljU3VidHJlZU5vZGVMaXN0KiBsaXN0
KQogewotICAgIGVuc3VyZVJhcmVEYXRhKCktPmVuc3VyZU5vZGVMaXN0cyh0aGlzKS0+bV9saXN0
c0ludmFsaWRhdGVkQXREb2N1bWVudC5hZGQobGlzdCk7CisgICAgbV9saXN0c0ludmFsaWRhdGVk
QXREb2N1bWVudC5hZGQobGlzdCk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OnVucmVnaXN0ZXJEeW5h
bWljU3VidHJlZU5vZGVMaXN0KER5bmFtaWNTdWJ0cmVlTm9kZUxpc3QqIGxpc3QpCiB7Ci0gICAg
QVNTRVJUKGhhc1JhcmVEYXRhKCkpOwotICAgIEFTU0VSVChyYXJlRGF0YSgpLT5ub2RlTGlzdHMo
KSk7Ci0gICAgcmFyZURhdGEoKS0+bm9kZUxpc3RzKCktPm1fbGlzdHNJbnZhbGlkYXRlZEF0RG9j
dW1lbnQucmVtb3ZlKGxpc3QpOworICAgIG1fbGlzdHNJbnZhbGlkYXRlZEF0RG9jdW1lbnQucmVt
b3ZlKGxpc3QpOworfQorCit2b2lkIERvY3VtZW50OjpjbGVhck5vZGVMaXN0Q2FjaGVzKCkKK3sK
KyAgICBIYXNoU2V0PER5bmFtaWNTdWJ0cmVlTm9kZUxpc3QqPjo6aXRlcmF0b3IgZW5kID0gbV9s
aXN0c0ludmFsaWRhdGVkQXREb2N1bWVudC5lbmQoKTsKKyAgICBmb3IgKEhhc2hTZXQ8RHluYW1p
Y1N1YnRyZWVOb2RlTGlzdCo+OjppdGVyYXRvciBpdCA9IG1fbGlzdHNJbnZhbGlkYXRlZEF0RG9j
dW1lbnQuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICAoKml0KS0+aW52YWxpZGF0
ZUNhY2hlKCk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OmF0dGFjaE5vZGVJdGVyYXRvcihOb2RlSXRl
cmF0b3IqIG5pKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHJldmlzaW9uIDEyMDg0NykKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC03MTQsNiAr
NzE0LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCByZWdpc3RlckR5bmFtaWNTdWJ0cmVlTm9kZUxp
c3QoRHluYW1pY1N1YnRyZWVOb2RlTGlzdCopOwogICAgIHZvaWQgdW5yZWdpc3RlckR5bmFtaWNT
dWJ0cmVlTm9kZUxpc3QoRHluYW1pY1N1YnRyZWVOb2RlTGlzdCopOworICAgIHZvaWQgY2xlYXJO
b2RlTGlzdENhY2hlcygpOwogCiAgICAgdm9pZCBhdHRhY2hOb2RlSXRlcmF0b3IoTm9kZUl0ZXJh
dG9yKik7CiAgICAgdm9pZCBkZXRhY2hOb2RlSXRlcmF0b3IoTm9kZUl0ZXJhdG9yKik7CkBAIC0x
MzkzLDYgKzEzOTQsNyBAQCBwcml2YXRlOgogICAgIAogICAgIE93blB0cjxIVE1MQ29sbGVjdGlv
bj4gbV9jb2xsZWN0aW9uc1tOdW1Vbm5hbWVkRG9jdW1lbnRDYWNoZWRUeXBlc107CiAgICAgT3du
UHRyPEhUTUxBbGxDb2xsZWN0aW9uPiBtX2FsbENvbGxlY3Rpb247CisgICAgSGFzaFNldDxEeW5h
bWljU3VidHJlZU5vZGVMaXN0Kj4gbV9saXN0c0ludmFsaWRhdGVkQXREb2N1bWVudDsKIAogICAg
IHR5cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgT3duUHRyPEhUTUxOYW1lQ29sbGVj
dGlvbj4gPiBOYW1lZENvbGxlY3Rpb25NYXA7CiAgICAgTmFtZWRDb2xsZWN0aW9uTWFwIG1fZG9j
dW1lbnROYW1lZEl0ZW1Db2xsZWN0aW9uczsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9EeW5h
bWljTm9kZUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05v
ZGVMaXN0LmgJKHJldmlzaW9uIDEyMDg0NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9EeW5hbWlj
Tm9kZUxpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTA0LDkgKzEwNCw2IEBAIHByb3RlY3RlZDoK
ICAgICBEeW5hbWljU3VidHJlZU5vZGVMaXN0KFBhc3NSZWZQdHI8Tm9kZT4sIFJvb3RUeXBlID0g
Um9vdGVkQXROb2RlKTsKIAogcHJpdmF0ZToKLSAgICB1c2luZyBEeW5hbWljTm9kZUxpc3Q6Omlu
dmFsaWRhdGVDYWNoZTsKLSAgICBmcmllbmQgc3RydWN0IE5vZGVMaXN0c05vZGVEYXRhOwotCiAg
ICAgTm9kZSogaXRlbUZvcndhcmRzRnJvbUN1cnJlbnQoTm9kZSogc3RhcnQsIHVuc2lnbmVkIG9m
ZnNldCwgaW50IHJlbWFpbmluZ09mZnNldCkgY29uc3Q7CiAgICAgTm9kZSogaXRlbUJhY2t3YXJk
c0Zyb21DdXJyZW50KE5vZGUqIHN0YXJ0LCB1bnNpZ25lZCBvZmZzZXQsIGludCByZW1haW5pbmdP
ZmZzZXQpIGNvbnN0OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJKHJldmlzaW9uIDEyMDg0NykK
KysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTY3LDEw
ICs5NjcsNyBAQCB2b2lkIE5vZGU6OmludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFmdGVyCiAgICAg
ICAgICYmIChhdHRyTmFtZSAhPSBpZEF0dHIgfHwgIWF0dHJpYnV0ZU93bmVyRWxlbWVudC0+aXNG
b3JtQ29udHJvbEVsZW1lbnQoKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChkb2N1bWVu
dCgpLT5oYXNSYXJlRGF0YSgpKSB7Ci0gICAgICAgIGlmIChOb2RlTGlzdHNOb2RlRGF0YSogbm9k
ZUxpc3RzID0gZG9jdW1lbnQoKS0+cmFyZURhdGEoKS0+bm9kZUxpc3RzKCkpCi0gICAgICAgICAg
ICBub2RlTGlzdHMtPmludmFsaWRhdGVDYWNoZXNGb3JEb2N1bWVudCgpOwotICAgIH0KKyAgICBk
b2N1bWVudCgpLT5jbGVhck5vZGVMaXN0Q2FjaGVzKCk7CiAKICAgICBpZiAoIXRyZWVTY29wZSgp
LT5oYXNOb2RlTGlzdENhY2hlcygpKQogICAgICAgICByZXR1cm47CkBAIC05OTIsMTMgKzk4OSwx
MSBAQCB2b2lkIE5vZGU6OmludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFmdGVyCiAgICAgaWYgKGhh
c1JhcmVEYXRhKCkpCiAgICAgICAgIHJhcmVEYXRhKCktPmNsZWFyQ2hpbGROb2RlTGlzdENhY2hl
KCk7CiAKLSAgICBpZiAoZG9jdW1lbnQoKS0+aGFzUmFyZURhdGEoKSkgewotICAgICAgICBpZiAo
Tm9kZUxpc3RzTm9kZURhdGEqIG5vZGVMaXN0cyA9IGRvY3VtZW50KCktPnJhcmVEYXRhKCktPm5v
ZGVMaXN0cygpKQotICAgICAgICAgICAgbm9kZUxpc3RzLT5pbnZhbGlkYXRlQ2FjaGVzRm9yRG9j
dW1lbnQoKTsKLSAgICB9CisgICAgZG9jdW1lbnQoKS0+Y2xlYXJOb2RlTGlzdENhY2hlcygpOwog
CiAgICAgaWYgKCF0cmVlU2NvcGUoKS0+aGFzTm9kZUxpc3RDYWNoZXMoKSkKICAgICAgICAgcmV0
dXJuOworCiAgICAgZm9yIChOb2RlKiBub2RlID0gdGhpczsgbm9kZTsgbm9kZSA9IG5vZGUtPnBh
cmVudE5vZGUoKSkgewogICAgICAgICBpZiAoIW5vZGUtPmhhc1JhcmVEYXRhKCkpCiAgICAgICAg
ICAgICBjb250aW51ZTsKQEAgLTIzMjUsMTMgKzIzMjAsNiBAQCB2b2lkIE5vZGVMaXN0c05vZGVE
YXRhOjppbnZhbGlkYXRlQ2FjaGVzCiAgICAgaW52YWxpZGF0ZUNhY2hlc1RoYXREZXBlbmRPbkF0
dHJpYnV0ZXMoKTsKIH0KIAotdm9pZCBOb2RlTGlzdHNOb2RlRGF0YTo6aW52YWxpZGF0ZUNhY2hl
c0ZvckRvY3VtZW50KCkKLXsKLSAgICBOb2RlTGlzdHNOb2RlRGF0YTo6Tm9kZUxpc3RTZXQ6Oml0
ZXJhdG9yIGVuZCA9IG1fbGlzdHNJbnZhbGlkYXRlZEF0RG9jdW1lbnQuZW5kKCk7Ci0gICAgZm9y
IChOb2RlTGlzdHNOb2RlRGF0YTo6Tm9kZUxpc3RTZXQ6Oml0ZXJhdG9yIGl0ID0gbV9saXN0c0lu
dmFsaWRhdGVkQXREb2N1bWVudC5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCi0gICAgICAgICgq
aXQpLT5pbnZhbGlkYXRlQ2FjaGUoKTsKLX0KLQogdm9pZCBOb2RlTGlzdHNOb2RlRGF0YTo6aW52
YWxpZGF0ZUNhY2hlc1RoYXREZXBlbmRPbkF0dHJpYnV0ZXMoKQogewogICAgIENsYXNzTm9kZUxp
c3RDYWNoZTo6aXRlcmF0b3IgY2xhc3NDYWNoZUVuZCA9IG1fY2xhc3NOb2RlTGlzdENhY2hlLmVu
ZCgpOwpAQCAtMjM0OSwxNyArMjMzNywxMCBAQCB2b2lkIE5vZGVMaXN0c05vZGVEYXRhOjppbnZh
bGlkYXRlQ2FjaGVzCiAgICAgZm9yIChNaWNyb0RhdGFJdGVtTGlzdENhY2hlOjppdGVyYXRvciBp
dCA9IG1fbWljcm9EYXRhSXRlbUxpc3RDYWNoZS5iZWdpbigpOyBpdCAhPSBpdGVtTGlzdENhY2hl
RW5kOyArK2l0KQogICAgICAgICBpdC0+c2Vjb25kLT5pbnZhbGlkYXRlQ2FjaGUoKTsKICNlbmRp
ZgotCi0gICAgUmFkaW9Ob2RlTGlzdENhY2hlOjppdGVyYXRvciByYWRpb05vZGVMaXN0Q2FjaGVF
bmQgPSBtX3JhZGlvTm9kZUxpc3RDYWNoZS5lbmQoKTsKLSAgICBmb3IgKFJhZGlvTm9kZUxpc3RD
YWNoZTo6aXRlcmF0b3IgaXQgPSBtX3JhZGlvTm9kZUxpc3RDYWNoZS5iZWdpbigpOyBpdCAhPSBy
YWRpb05vZGVMaXN0Q2FjaGVFbmQ7ICsraXQpCi0gICAgICAgIGl0LT5zZWNvbmQtPmludmFsaWRh
dGVDYWNoZSgpOwogfQogCiBib29sIE5vZGVMaXN0c05vZGVEYXRhOjppc0VtcHR5KCkgY29uc3QK
IHsKLSAgICBpZiAoIW1fbGlzdHNJbnZhbGlkYXRlZEF0RG9jdW1lbnQuaXNFbXB0eSgpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KICAgICBpZiAoIW1fdGFnTm9kZUxpc3RDYWNoZS5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIW1fdGFnTm9kZUxpc3RDYWNoZU5T
LmlzRW1wdHkoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgJKHJldmlzaW9uIDEy
MDg0NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaAkod29ya2luZyBjb3B5
KQpAQCAtNTEsOSArNTEsNiBAQCBjbGFzcyBUcmVlU2NvcGU7CiBzdHJ1Y3QgTm9kZUxpc3RzTm9k
ZURhdGEgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE5vZGVMaXN0c05vZGVEYXRhKTsgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgdHlwZWRlZiBIYXNoU2V0PER5bmFt
aWNTdWJ0cmVlTm9kZUxpc3QqPiBOb2RlTGlzdFNldDsKLSAgICBOb2RlTGlzdFNldCBtX2xpc3Rz
SW52YWxpZGF0ZWRBdERvY3VtZW50OwotCiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgQ2xh
c3NOb2RlTGlzdCo+IENsYXNzTm9kZUxpc3RDYWNoZTsKICAgICBDbGFzc05vZGVMaXN0Q2FjaGUg
bV9jbGFzc05vZGVMaXN0Q2FjaGU7CiAKQEAgLTgyLDcgKzc5LDYgQEAgcHVibGljOgogICAgIH0K
IAogICAgIHZvaWQgaW52YWxpZGF0ZUNhY2hlcygpOwotICAgIHZvaWQgaW52YWxpZGF0ZUNhY2hl
c0ZvckRvY3VtZW50KCk7CiAgICAgdm9pZCBpbnZhbGlkYXRlQ2FjaGVzVGhhdERlcGVuZE9uQXR0
cmlidXRlcygpOwogCiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148654</attachid>
            <date>2012-06-20 14:21:43 -0700</date>
            <delta_ts>2012-06-20 14:55:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89603-20120620142540.patch</filename>
            <type>text/plain</type>
            <size>7342</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMDg2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA2LTIwICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIE1vdmUgbV9saXN0c0ludmFsaWRh
dGVkQXREb2N1bWVudCBmcm9tIE5vZGVMaXN0c05vZGVEYXRhIHRvIERvY3VtZW50CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTYwMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVkIHRoZSB2YXJpYWJs
ZS4gbV9saXN0c0ludmFsaWRhdGVkQXREb2N1bWVudCBpcyBuZXZlciB1c2VkIGluIG5vbi1Eb2N1
bWVudCBub2RlcworICAgICAgICBzbyBpdCB3YXMganVzdCB3YXN0aW5nIG1lbW9yeSBzcGFjZS4K
KworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6cmVnaXN0ZXJEeW5hbWljU3VidHJlZU5vZGVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50Ojp1bnJlZ2lzdGVyRHluYW1pY1N1YnRyZWVOb2RlTGlzdCk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjbGVhck5vZGVMaXN0Q2FjaGVzKToK
KyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKERvY3VtZW50KToKKyAgICAgICAg
KiBkb20vRHluYW1pY05vZGVMaXN0Lmg6CisgICAgICAgIChEeW5hbWljU3VidHJlZU5vZGVMaXN0
KToKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjppbnZh
bGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckF0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6Tm9kZTo6aW52YWxpZGF0ZU5vZGVMaXN0c0NhY2hlQWZ0ZXJDaGlsZHJlbkNoYW5nZWQp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlTGlzdHNOb2RlRGF0
YTo6aW52YWxpZGF0ZUNhY2hlc1RoYXREZXBlbmRPbkF0dHJpYnV0ZXMpOiBSYWRpb05vZGVMaXN0
CisgICAgICAgIGlzIGludmFsaWRhdGVkIGF0IGRvY3VtZW50IGxldmVsLiBObyBuZWVkIHRvIGlu
dmFsaWRhdGUgaXQgYWdhaW4gaGVyZS4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVMaXN0c05vZGVE
YXRhOjppc0VtcHR5KToKKyAgICAgICAgKiBkb20vTm9kZVJhcmVEYXRhLmg6CisgICAgICAgIChO
b2RlTGlzdHNOb2RlRGF0YSk6CisKIDIwMTItMDYtMjAgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hh
ZmZyYWl4QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTEzODg1KTogTWFyZ2lu
IG5vdCBwcm9wZXJseSBhcHBsaWVkIHRvIGVsZW1lbnRzIHdpdGggYWxpZ249Y2VudGVyCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDEyMDg0NykKKysrIFNvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4NjQsMTQgKzM4NjQsMTkg
QEAgdm9pZCBEb2N1bWVudDo6c2V0Q1NTVGFyZ2V0KEVsZW1lbnQqIG4pCiAKIHZvaWQgRG9jdW1l
bnQ6OnJlZ2lzdGVyRHluYW1pY1N1YnRyZWVOb2RlTGlzdChEeW5hbWljU3VidHJlZU5vZGVMaXN0
KiBsaXN0KQogewotICAgIGVuc3VyZVJhcmVEYXRhKCktPmVuc3VyZU5vZGVMaXN0cyh0aGlzKS0+
bV9saXN0c0ludmFsaWRhdGVkQXREb2N1bWVudC5hZGQobGlzdCk7CisgICAgbV9saXN0c0ludmFs
aWRhdGVkQXREb2N1bWVudC5hZGQobGlzdCk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OnVucmVnaXN0
ZXJEeW5hbWljU3VidHJlZU5vZGVMaXN0KER5bmFtaWNTdWJ0cmVlTm9kZUxpc3QqIGxpc3QpCiB7
Ci0gICAgQVNTRVJUKGhhc1JhcmVEYXRhKCkpOwotICAgIEFTU0VSVChyYXJlRGF0YSgpLT5ub2Rl
TGlzdHMoKSk7Ci0gICAgcmFyZURhdGEoKS0+bm9kZUxpc3RzKCktPm1fbGlzdHNJbnZhbGlkYXRl
ZEF0RG9jdW1lbnQucmVtb3ZlKGxpc3QpOworICAgIG1fbGlzdHNJbnZhbGlkYXRlZEF0RG9jdW1l
bnQucmVtb3ZlKGxpc3QpOworfQorCit2b2lkIERvY3VtZW50OjpjbGVhck5vZGVMaXN0Q2FjaGVz
KCkKK3sKKyAgICBIYXNoU2V0PER5bmFtaWNTdWJ0cmVlTm9kZUxpc3QqPjo6aXRlcmF0b3IgZW5k
ID0gbV9saXN0c0ludmFsaWRhdGVkQXREb2N1bWVudC5lbmQoKTsKKyAgICBmb3IgKEhhc2hTZXQ8
RHluYW1pY1N1YnRyZWVOb2RlTGlzdCo+OjppdGVyYXRvciBpdCA9IG1fbGlzdHNJbnZhbGlkYXRl
ZEF0RG9jdW1lbnQuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICAoKml0KS0+aW52
YWxpZGF0ZUNhY2hlKCk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OmF0dGFjaE5vZGVJdGVyYXRvcihO
b2RlSXRlcmF0b3IqIG5pKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHJldmlzaW9uIDEyMDg0
NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC03
MTQsNiArNzE0LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCByZWdpc3RlckR5bmFtaWNTdWJ0cmVl
Tm9kZUxpc3QoRHluYW1pY1N1YnRyZWVOb2RlTGlzdCopOwogICAgIHZvaWQgdW5yZWdpc3RlckR5
bmFtaWNTdWJ0cmVlTm9kZUxpc3QoRHluYW1pY1N1YnRyZWVOb2RlTGlzdCopOworICAgIHZvaWQg
Y2xlYXJOb2RlTGlzdENhY2hlcygpOwogCiAgICAgdm9pZCBhdHRhY2hOb2RlSXRlcmF0b3IoTm9k
ZUl0ZXJhdG9yKik7CiAgICAgdm9pZCBkZXRhY2hOb2RlSXRlcmF0b3IoTm9kZUl0ZXJhdG9yKik7
CkBAIC0xMzkzLDYgKzEzOTQsNyBAQCBwcml2YXRlOgogICAgIAogICAgIE93blB0cjxIVE1MQ29s
bGVjdGlvbj4gbV9jb2xsZWN0aW9uc1tOdW1Vbm5hbWVkRG9jdW1lbnRDYWNoZWRUeXBlc107CiAg
ICAgT3duUHRyPEhUTUxBbGxDb2xsZWN0aW9uPiBtX2FsbENvbGxlY3Rpb247CisgICAgSGFzaFNl
dDxEeW5hbWljU3VidHJlZU5vZGVMaXN0Kj4gbV9saXN0c0ludmFsaWRhdGVkQXREb2N1bWVudDsK
IAogICAgIHR5cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgT3duUHRyPEhUTUxOYW1l
Q29sbGVjdGlvbj4gPiBOYW1lZENvbGxlY3Rpb25NYXA7CiAgICAgTmFtZWRDb2xsZWN0aW9uTWFw
IG1fZG9jdW1lbnROYW1lZEl0ZW1Db2xsZWN0aW9uczsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Rv
bS9EeW5hbWljTm9kZUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRHlu
YW1pY05vZGVMaXN0LmgJKHJldmlzaW9uIDEyMDg0NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9E
eW5hbWljTm9kZUxpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTA0LDkgKzEwNCw2IEBAIHByb3Rl
Y3RlZDoKICAgICBEeW5hbWljU3VidHJlZU5vZGVMaXN0KFBhc3NSZWZQdHI8Tm9kZT4sIFJvb3RU
eXBlID0gUm9vdGVkQXROb2RlKTsKIAogcHJpdmF0ZToKLSAgICB1c2luZyBEeW5hbWljTm9kZUxp
c3Q6OmludmFsaWRhdGVDYWNoZTsKLSAgICBmcmllbmQgc3RydWN0IE5vZGVMaXN0c05vZGVEYXRh
OwotCiAgICAgTm9kZSogaXRlbUZvcndhcmRzRnJvbUN1cnJlbnQoTm9kZSogc3RhcnQsIHVuc2ln
bmVkIG9mZnNldCwgaW50IHJlbWFpbmluZ09mZnNldCkgY29uc3Q7CiAgICAgTm9kZSogaXRlbUJh
Y2t3YXJkc0Zyb21DdXJyZW50KE5vZGUqIHN0YXJ0LCB1bnNpZ25lZCBvZmZzZXQsIGludCByZW1h
aW5pbmdPZmZzZXQpIGNvbnN0OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJKHJldmlzaW9uIDEy
MDg0NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
OTY3LDEwICs5NjcsNyBAQCB2b2lkIE5vZGU6OmludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFmdGVy
CiAgICAgICAgICYmIChhdHRyTmFtZSAhPSBpZEF0dHIgfHwgIWF0dHJpYnV0ZU93bmVyRWxlbWVu
dC0+aXNGb3JtQ29udHJvbEVsZW1lbnQoKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChk
b2N1bWVudCgpLT5oYXNSYXJlRGF0YSgpKSB7Ci0gICAgICAgIGlmIChOb2RlTGlzdHNOb2RlRGF0
YSogbm9kZUxpc3RzID0gZG9jdW1lbnQoKS0+cmFyZURhdGEoKS0+bm9kZUxpc3RzKCkpCi0gICAg
ICAgICAgICBub2RlTGlzdHMtPmludmFsaWRhdGVDYWNoZXNGb3JEb2N1bWVudCgpOwotICAgIH0K
KyAgICBkb2N1bWVudCgpLT5jbGVhck5vZGVMaXN0Q2FjaGVzKCk7CiAKICAgICBpZiAoIXRyZWVT
Y29wZSgpLT5oYXNOb2RlTGlzdENhY2hlcygpKQogICAgICAgICByZXR1cm47CkBAIC05OTIsMTMg
Kzk4OSwxMSBAQCB2b2lkIE5vZGU6OmludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFmdGVyCiAgICAg
aWYgKGhhc1JhcmVEYXRhKCkpCiAgICAgICAgIHJhcmVEYXRhKCktPmNsZWFyQ2hpbGROb2RlTGlz
dENhY2hlKCk7CiAKLSAgICBpZiAoZG9jdW1lbnQoKS0+aGFzUmFyZURhdGEoKSkgewotICAgICAg
ICBpZiAoTm9kZUxpc3RzTm9kZURhdGEqIG5vZGVMaXN0cyA9IGRvY3VtZW50KCktPnJhcmVEYXRh
KCktPm5vZGVMaXN0cygpKQotICAgICAgICAgICAgbm9kZUxpc3RzLT5pbnZhbGlkYXRlQ2FjaGVz
Rm9yRG9jdW1lbnQoKTsKLSAgICB9CisgICAgZG9jdW1lbnQoKS0+Y2xlYXJOb2RlTGlzdENhY2hl
cygpOwogCiAgICAgaWYgKCF0cmVlU2NvcGUoKS0+aGFzTm9kZUxpc3RDYWNoZXMoKSkKICAgICAg
ICAgcmV0dXJuOworCiAgICAgZm9yIChOb2RlKiBub2RlID0gdGhpczsgbm9kZTsgbm9kZSA9IG5v
ZGUtPnBhcmVudE5vZGUoKSkgewogICAgICAgICBpZiAoIW5vZGUtPmhhc1JhcmVEYXRhKCkpCiAg
ICAgICAgICAgICBjb250aW51ZTsKQEAgLTIzMjUsMTMgKzIzMjAsNiBAQCB2b2lkIE5vZGVMaXN0
c05vZGVEYXRhOjppbnZhbGlkYXRlQ2FjaGVzCiAgICAgaW52YWxpZGF0ZUNhY2hlc1RoYXREZXBl
bmRPbkF0dHJpYnV0ZXMoKTsKIH0KIAotdm9pZCBOb2RlTGlzdHNOb2RlRGF0YTo6aW52YWxpZGF0
ZUNhY2hlc0ZvckRvY3VtZW50KCkKLXsKLSAgICBOb2RlTGlzdHNOb2RlRGF0YTo6Tm9kZUxpc3RT
ZXQ6Oml0ZXJhdG9yIGVuZCA9IG1fbGlzdHNJbnZhbGlkYXRlZEF0RG9jdW1lbnQuZW5kKCk7Ci0g
ICAgZm9yIChOb2RlTGlzdHNOb2RlRGF0YTo6Tm9kZUxpc3RTZXQ6Oml0ZXJhdG9yIGl0ID0gbV9s
aXN0c0ludmFsaWRhdGVkQXREb2N1bWVudC5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCi0gICAg
ICAgICgqaXQpLT5pbnZhbGlkYXRlQ2FjaGUoKTsKLX0KLQogdm9pZCBOb2RlTGlzdHNOb2RlRGF0
YTo6aW52YWxpZGF0ZUNhY2hlc1RoYXREZXBlbmRPbkF0dHJpYnV0ZXMoKQogewogICAgIENsYXNz
Tm9kZUxpc3RDYWNoZTo6aXRlcmF0b3IgY2xhc3NDYWNoZUVuZCA9IG1fY2xhc3NOb2RlTGlzdENh
Y2hlLmVuZCgpOwpAQCAtMjM0OSwxNyArMjMzNywxMCBAQCB2b2lkIE5vZGVMaXN0c05vZGVEYXRh
OjppbnZhbGlkYXRlQ2FjaGVzCiAgICAgZm9yIChNaWNyb0RhdGFJdGVtTGlzdENhY2hlOjppdGVy
YXRvciBpdCA9IG1fbWljcm9EYXRhSXRlbUxpc3RDYWNoZS5iZWdpbigpOyBpdCAhPSBpdGVtTGlz
dENhY2hlRW5kOyArK2l0KQogICAgICAgICBpdC0+c2Vjb25kLT5pbnZhbGlkYXRlQ2FjaGUoKTsK
ICNlbmRpZgotCi0gICAgUmFkaW9Ob2RlTGlzdENhY2hlOjppdGVyYXRvciByYWRpb05vZGVMaXN0
Q2FjaGVFbmQgPSBtX3JhZGlvTm9kZUxpc3RDYWNoZS5lbmQoKTsKLSAgICBmb3IgKFJhZGlvTm9k
ZUxpc3RDYWNoZTo6aXRlcmF0b3IgaXQgPSBtX3JhZGlvTm9kZUxpc3RDYWNoZS5iZWdpbigpOyBp
dCAhPSByYWRpb05vZGVMaXN0Q2FjaGVFbmQ7ICsraXQpCi0gICAgICAgIGl0LT5zZWNvbmQtPmlu
dmFsaWRhdGVDYWNoZSgpOwogfQogCiBib29sIE5vZGVMaXN0c05vZGVEYXRhOjppc0VtcHR5KCkg
Y29uc3QKIHsKLSAgICBpZiAoIW1fbGlzdHNJbnZhbGlkYXRlZEF0RG9jdW1lbnQuaXNFbXB0eSgp
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KICAgICBpZiAoIW1fdGFnTm9kZUxpc3RDYWNoZS5p
c0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIW1fdGFnTm9kZUxpc3RD
YWNoZU5TLmlzRW1wdHkoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgJKHJldmlz
aW9uIDEyMDg0NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTEsOSArNTEsNiBAQCBjbGFzcyBUcmVlU2NvcGU7CiBzdHJ1Y3QgTm9kZUxp
c3RzTm9kZURhdGEgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE5vZGVMaXN0c05vZGVEYXRh
KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgdHlwZWRlZiBIYXNoU2V0
PER5bmFtaWNTdWJ0cmVlTm9kZUxpc3QqPiBOb2RlTGlzdFNldDsKLSAgICBOb2RlTGlzdFNldCBt
X2xpc3RzSW52YWxpZGF0ZWRBdERvY3VtZW50OwotCiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmlu
ZywgQ2xhc3NOb2RlTGlzdCo+IENsYXNzTm9kZUxpc3RDYWNoZTsKICAgICBDbGFzc05vZGVMaXN0
Q2FjaGUgbV9jbGFzc05vZGVMaXN0Q2FjaGU7CiAKQEAgLTgyLDcgKzc5LDYgQEAgcHVibGljOgog
ICAgIH0KIAogICAgIHZvaWQgaW52YWxpZGF0ZUNhY2hlcygpOwotICAgIHZvaWQgaW52YWxpZGF0
ZUNhY2hlc0ZvckRvY3VtZW50KCk7CiAgICAgdm9pZCBpbnZhbGlkYXRlQ2FjaGVzVGhhdERlcGVu
ZE9uQXR0cmlidXRlcygpOwogCiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3Q7Cg==
</data>
<flag name="review"
          id="156459"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>