<?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>122533</bug_id>
          
          <creation_ts>2013-10-08 16:47:56 -0700</creation_ts>
          <short_desc>Turn EventPath into a real class</short_desc>
          <delta_ts>2013-10-08 17:40:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>UI Events</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>937751</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-08 16:47:56 -0700</bug_when>
    <thetext>Turn EventPath into a real class</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937754</commentid>
    <comment_count>1</comment_count>
      <attachid>213734</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-08 16:50:09 -0700</bug_when>
    <thetext>Created attachment 213734
Cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937760</commentid>
    <comment_count>2</comment_count>
      <attachid>213734</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-10-08 17:04:25 -0700</bug_when>
    <thetext>Comment on attachment 213734
Cleanup

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Since we can&apos;t forward-declare typedef, turning EventPath into a real class helps our defactoring.

The comment about forward-declaring typedef is not necessary. Refactoring strategies not chosen are not that interesting.

&gt; Source/WebCore/dom/EventDispatcher.h:62
&gt; +    const EventContext&amp; item(size_t i) const { return *m_path[i]; }
&gt; +    EventContext&amp; item(size_t i) { return *m_path[i]; }

The interface is not great. item() is vague and and it is not clear which way the path goes. But I suppose you plan to improve this later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937762</commentid>
    <comment_count>3</comment_count>
      <attachid>213734</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-10-08 17:06:02 -0700</bug_when>
    <thetext>Comment on attachment 213734
Cleanup

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

&gt; Source/WebCore/dom/EventDispatcher.h:68
&gt; +    void shrink(size_t newSize) { m_path.shrink(newSize); }

Can&apos;t you just get rid of this?

&gt; Source/WebCore/dom/EventDispatcher.h:73
&gt; +    Vector&lt;OwnPtr&lt;EventContext&gt;, 32&gt; m_path;

This should be std::unique_ptr.

&gt; Source/WebCore/dom/EventRetargeter.cpp:94
&gt; +                m_path.append(adoptPtr(new MouseOrFocusEventContext(node, &amp;currentTarget, target)));

Instead of using adoptPtr(new Foo(, you should use std::make_unique&lt;Foo&gt;(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937768</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-08 17:40:34 -0700</bug_when>
    <thetext>Committed r157152: &lt;http://trac.webkit.org/changeset/157152&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213734</attachid>
            <date>2013-10-08 16:50:09 -0700</date>
            <delta_ts>2013-10-08 17:06:02 -0700</delta_ts>
            <desc>Cleanup</desc>
            <filename>bug-122533-20131008165008.patch</filename>
            <type>text/plain</type>
            <size>15521</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NzE0NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDEzLTEwLTA4ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFR1cm4gRXZlbnRQYXRoIGludG8g
YSByZWFsIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjI1MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTaW5jZSB3ZSBjYW4ndCBmb3J3YXJkLWRlY2xhcmUgdHlwZWRlZiwgdHVybmluZyBFdmVu
dFBhdGggaW50byBhIHJlYWwgY2xhc3MgaGVscHMgb3VyIGRlZmFjdG9yaW5nLgorICAgICAgICBB
bHNvLCBhIGxvdCBvZiBmdW5jdGlvbnMgaW4gRXZlbnRSZXRhcmdldGVyLmNwcCBhcmUgbW9yZSBu
YXR1cmFsbHkgZGVmaW5lZCBhcyBtZW1iZXIgZnVuY3Rpb25zIG9mCisgICAgICAgIEV2ZW50UGF0
aCBzaW5jZSB0aGV5IGFsbCBtYW5pcHVsYXRlIEV2ZW50UGF0aCBpbiBvbmUgd2F5IG9yIGFub3Ro
ZXIuCisKKyAgICAgICAgKiBkb20vRXZlbnRDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjp0
b01vdXNlT3JGb2N1c0V2ZW50Q29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp0b1RvdWNoRXZl
bnRDb250ZXh0KToKKyAgICAgICAgKiBkb20vRXZlbnREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50RGlzcGF0Y2hlcjo6RXZlbnREaXNwYXRjaGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hFdmVudEF0Q2FwdHVyaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hFdmVudEF0VGFyZ2V0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hFdmVudEF0QnViYmxpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6RXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaEV2ZW50UG9zdFBy
b2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnREaXNwYXRjaGVyOjp0b3BFdmVudENvbnRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRQYXRoOjpoYXNFdmVudExpc3RlbmVycyk6Cisg
ICAgICAgICogZG9tL0V2ZW50RGlzcGF0Y2hlci5oOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRQ
YXRoOjppc0VtcHR5KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UGF0aDo6c2l6ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudFBhdGg6Oml0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRQ
YXRoOjp0YXJnZXRSZXNwZWN0aW5nVGFyZ2V0UnVsZXMpOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRQYXRoOjpzaHJpbmspOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRQYXRoOjpsYXN0Q29udGV4
dElmRXhpc3RzKToKKyAgICAgICAgKiBkb20vRXZlbnRSZXRhcmdldGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50UGF0aDo6RXZlbnRQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
UmV0YXJnZXRlcjo6YWRqdXN0Rm9yVG91Y2hFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dFJldGFyZ2V0ZXI6OmFkanVzdEZvclJlbGF0ZWRUYXJnZXQpOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRSZXRhcmdldGVyOjpjYWxjdWxhdGVBZGp1c3RlZE5vZGVzKToKKyAgICAgICAgKiBkb20v
RXZlbnRSZXRhcmdldGVyLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpldmVudEhhc0xpc3RlbmVycyk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorCiAyMDEzLTEwLTA3
ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ29uc29saWRhdGUgZmlu
ZFN0cmluZyBmdW5jdGlvbnMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudENvbnRleHQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRDb250ZXh0LmgJKHJldmlz
aW9uIDE1NzE0MSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudENvbnRleHQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNjIsOCArNjIsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVmUHRyPEV2ZW50VGFy
Z2V0PiBtX3RhcmdldDsKIH07CiAKLXR5cGVkZWYgVmVjdG9yPE93blB0cjxFdmVudENvbnRleHQ+
LCAzMj4gRXZlbnRQYXRoOwotCiBjbGFzcyBNb3VzZU9yRm9jdXNFdmVudENvbnRleHQgOiBwdWJs
aWMgRXZlbnRDb250ZXh0IHsKIHB1YmxpYzoKICAgICBNb3VzZU9yRm9jdXNFdmVudENvbnRleHQo
UGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gY3VycmVudFRhcmdldCwg
UGFzc1JlZlB0cjxFdmVudFRhcmdldD4gdGFyZ2V0KTsKQEAgLTc3LDYgKzc1LDEyIEBAIHByaXZh
dGU6CiAgICAgUmVmUHRyPEV2ZW50VGFyZ2V0PiBtX3JlbGF0ZWRUYXJnZXQ7CiB9OwogCitpbmxp
bmUgTW91c2VPckZvY3VzRXZlbnRDb250ZXh0JiB0b01vdXNlT3JGb2N1c0V2ZW50Q29udGV4dChF
dmVudENvbnRleHQmIGV2ZW50Q29udGV4dCkKK3sKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9J
TVBMSUNBVElPTihldmVudENvbnRleHQuaXNNb3VzZU9yRm9jdXNFdmVudENvbnRleHQoKSk7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PE1vdXNlT3JGb2N1c0V2ZW50Q29udGV4dCY+KGV2ZW50Q29u
dGV4dCk7Cit9CisKIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiBjbGFzcyBUb3VjaEV2ZW50
Q29udGV4dCA6IHB1YmxpYyBFdmVudENvbnRleHQgewpAQCAtMTAwLDYgKzEwNCwxMiBAQCBwcml2
YXRlOgogI2VuZGlmCiB9OwogCitpbmxpbmUgVG91Y2hFdmVudENvbnRleHQmIHRvVG91Y2hFdmVu
dENvbnRleHQoRXZlbnRDb250ZXh0JiBldmVudENvbnRleHQpCit7CisgICAgQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04oZXZlbnRDb250ZXh0LmlzVG91Y2hFdmVudENvbnRleHQoKSk7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRvdWNoRXZlbnRDb250ZXh0Jj4oZXZlbnRDb250ZXh0
KTsKK30KKwogaW5saW5lIFRvdWNoRXZlbnRDb250ZXh0KiB0b1RvdWNoRXZlbnRDb250ZXh0KEV2
ZW50Q29udGV4dCogZXZlbnRDb250ZXh0KQogewogICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKCFldmVudENvbnRleHQgfHwgZXZlbnRDb250ZXh0LT5pc1RvdWNoRXZlbnRDb250
ZXh0KCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAJKHJldmlz
aW9uIDE1NzE0MSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1Myw4IEBAIGJvb2wgRXZlbnREaXNwYXRjaGVyOjpkaXNw
YXRjaEV2ZW50KE5vZGUKIH0KIAogRXZlbnREaXNwYXRjaGVyOjpFdmVudERpc3BhdGNoZXIoTm9k
ZSogbm9kZSwgUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCi0gICAgOiBtX25vZGUobm9kZSkKKyAg
ICA6IG1fZXZlbnRQYXRoKCpub2RlLCAqZXZlbnQpCisgICAgLCBtX25vZGUobm9kZSkKICAgICAs
IG1fZXZlbnQoZXZlbnQpCiAjaWZuZGVmIE5ERUJVRwogICAgICwgbV9ldmVudERpc3BhdGNoZWQo
ZmFsc2UpCkBAIC02Myw3ICs2NCw2IEBAIEV2ZW50RGlzcGF0Y2hlcjo6RXZlbnREaXNwYXRjaGVy
KE5vZGUqIG4KICAgICBBU1NFUlQobV9ldmVudCk7CiAgICAgQVNTRVJUKCFtX2V2ZW50LT50eXBl
KCkuaXNOdWxsKCkpOyAvLyBKYXZhU2NyaXB0IGNvZGUgY2FuIGNyZWF0ZSBhbiBldmVudCB3aXRo
IGFuIGVtcHR5IG5hbWUsIGJ1dCBub3QgbnVsbC4KICAgICBtX3ZpZXcgPSBub2RlLT5kb2N1bWVu
dCgpLnZpZXcoKTsKLSAgICBFdmVudFJldGFyZ2V0ZXI6OmNhbGN1bGF0ZUV2ZW50UGF0aCgqbV9u
b2RlLCAqbV9ldmVudCwgbV9ldmVudFBhdGgpOwogfQogCiB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6
ZGlzcGF0Y2hTY29wZWRFdmVudChOb2RlJiBub2RlLCBQYXNzUmVmUHRyPEV2ZW50RGlzcGF0Y2hN
ZWRpYXRvcj4gbWVkaWF0b3IpCkBAIC0xNDQsNyArMTQ0LDcgQEAgaW5saW5lIEV2ZW50RGlzcGF0
Y2hDb250aW51YXRpb24gRXZlbnREaQogICAgICAgICByZXR1cm4gRG9uZURpc3BhdGNoaW5nOwog
CiAgICAgZm9yIChzaXplX3QgaSA9IG1fZXZlbnRQYXRoLnNpemUoKSAtIDE7IGkgPiAwOyAtLWkp
IHsKLSAgICAgICAgY29uc3QgRXZlbnRDb250ZXh0JiBldmVudENvbnRleHQgPSAqbV9ldmVudFBh
dGhbaV07CisgICAgICAgIGNvbnN0IEV2ZW50Q29udGV4dCYgZXZlbnRDb250ZXh0ID0gbV9ldmVu
dFBhdGguaXRlbShpKTsKICAgICAgICAgaWYgKGV2ZW50Q29udGV4dC5jdXJyZW50VGFyZ2V0U2Ft
ZUFzVGFyZ2V0KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgZXZlbnRDb250ZXh0
LmhhbmRsZUxvY2FsRXZlbnRzKG1fZXZlbnQuZ2V0KCkpOwpAQCAtMTU4LDcgKzE1OCw3IEBAIGlu
bGluZSBFdmVudERpc3BhdGNoQ29udGludWF0aW9uIEV2ZW50RGkKIGlubGluZSBFdmVudERpc3Bh
dGNoQ29udGludWF0aW9uIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hFdmVudEF0VGFyZ2V0KCkK
IHsKICAgICBtX2V2ZW50LT5zZXRFdmVudFBoYXNlKEV2ZW50OjpBVF9UQVJHRVQpOwotICAgIG1f
ZXZlbnRQYXRoWzBdLT5oYW5kbGVMb2NhbEV2ZW50cyhtX2V2ZW50LmdldCgpKTsKKyAgICBtX2V2
ZW50UGF0aC5pdGVtKDApLmhhbmRsZUxvY2FsRXZlbnRzKG1fZXZlbnQuZ2V0KCkpOwogICAgIHJl
dHVybiBtX2V2ZW50LT5wcm9wYWdhdGlvblN0b3BwZWQoKSA/IERvbmVEaXNwYXRjaGluZyA6IENv
bnRpbnVlRGlzcGF0Y2hpbmc7CiB9CiAKQEAgLTE2Nyw3ICsxNjcsNyBAQCBpbmxpbmUgdm9pZCBF
dmVudERpc3BhdGNoZXI6OmRpc3BhdGNoRXZlCiAgICAgLy8gVHJpZ2dlciBidWJibGluZyBldmVu
dCBoYW5kbGVycywgc3RhcnRpbmcgYXQgdGhlIGJvdHRvbSBhbmQgd29ya2luZyBvdXIgd2F5IHVw
LgogICAgIHNpemVfdCBzaXplID0gbV9ldmVudFBhdGguc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90
IGkgPSAxOyBpIDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgIGNvbnN0IEV2ZW50Q29udGV4dCYgZXZl
bnRDb250ZXh0ID0gKm1fZXZlbnRQYXRoW2ldOworICAgICAgICBjb25zdCBFdmVudENvbnRleHQm
IGV2ZW50Q29udGV4dCA9IG1fZXZlbnRQYXRoLml0ZW0oaSk7CiAgICAgICAgIGlmIChldmVudENv
bnRleHQuY3VycmVudFRhcmdldFNhbWVBc1RhcmdldCgpKQogICAgICAgICAgICAgbV9ldmVudC0+
c2V0RXZlbnRQaGFzZShFdmVudDo6QVRfVEFSR0VUKTsKICAgICAgICAgZWxzZSBpZiAobV9ldmVu
dC0+YnViYmxlcygpICYmICFtX2V2ZW50LT5jYW5jZWxCdWJibGUoKSkKQEAgLTIwOCw3ICsyMDgs
NyBAQCBpbmxpbmUgdm9pZCBFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoRXZlCiAgICAgICAgIGlm
IChtX2V2ZW50LT5idWJibGVzKCkpIHsKICAgICAgICAgICAgIHNpemVfdCBzaXplID0gbV9ldmVu
dFBhdGguc2l6ZSgpOwogICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDE7IGkgPCBzaXplOyAr
K2kpIHsKLSAgICAgICAgICAgICAgICBtX2V2ZW50UGF0aFtpXS0+bm9kZSgpLT5kZWZhdWx0RXZl
bnRIYW5kbGVyKG1fZXZlbnQuZ2V0KCkpOworICAgICAgICAgICAgICAgIG1fZXZlbnRQYXRoLml0
ZW0oaSkubm9kZSgpLT5kZWZhdWx0RXZlbnRIYW5kbGVyKG1fZXZlbnQuZ2V0KCkpOwogICAgICAg
ICAgICAgICAgIEFTU0VSVCghbV9ldmVudC0+ZGVmYXVsdFByZXZlbnRlZCgpKTsKICAgICAgICAg
ICAgICAgICBpZiAobV9ldmVudC0+ZGVmYXVsdEhhbmRsZWQoKSkKICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuOwpAQCAtMjE5LDcgKzIxOSwxNyBAQCBpbmxpbmUgdm9pZCBFdmVudERpc3BhdGNo
ZXI6OmRpc3BhdGNoRXZlCiAKIGNvbnN0IEV2ZW50Q29udGV4dCogRXZlbnREaXNwYXRjaGVyOjp0
b3BFdmVudENvbnRleHQoKQogewotICAgIHJldHVybiBtX2V2ZW50UGF0aC5pc0VtcHR5KCkgPyAw
IDogbV9ldmVudFBhdGgubGFzdCgpLmdldCgpOworICAgIHJldHVybiBtX2V2ZW50UGF0aC5sYXN0
Q29udGV4dElmRXhpc3RzKCk7Cit9CisKK2Jvb2wgRXZlbnRQYXRoOjpoYXNFdmVudExpc3RlbmVy
cyhjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSkgY29uc3QKK3sKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IG1fcGF0aC5zaXplKCk7IGkrKykgeworICAgICAgICBpZiAobV9wYXRoW2ld
LT5ub2RlKCktPmhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50VHlwZSkpCisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmgJKHJldmlzaW9uIDE1NzE0MSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTIsNiArNTIs
MjggQEAgZW51bSBFdmVudERpc3BhdGNoQ29udGludWF0aW9uIHsKICAgICBEb25lRGlzcGF0Y2hp
bmcKIH07CiAKK2NsYXNzIEV2ZW50UGF0aCB7CitwdWJsaWM6CisgICAgRXZlbnRQYXRoKE5vZGUm
LCBFdmVudCYpOworCisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9wYXRoLmlz
RW1wdHkoKTsgfQorICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9wYXRoLnNpemUo
KTsgfQorICAgIGNvbnN0IEV2ZW50Q29udGV4dCYgaXRlbShzaXplX3QgaSkgY29uc3QgeyByZXR1
cm4gKm1fcGF0aFtpXTsgfQorICAgIEV2ZW50Q29udGV4dCYgaXRlbShzaXplX3QgaSkgeyByZXR1
cm4gKm1fcGF0aFtpXTsgfQorICAgIEV2ZW50VGFyZ2V0KiB0YXJnZXRSZXNwZWN0aW5nVGFyZ2V0
UnVsZXMoKSB7IHJldHVybiBtX3RhcmdldFJlc3BlY3RpbmdUYXJnZXRSdWxlcy5nZXQoKTsgfQor
CisgICAgYm9vbCBoYXNFdmVudExpc3RlbmVycyhjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlw
ZSkgY29uc3Q7CisKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkbid0IGV4cG9zZSB0aGlzIGZ1bmN0
aW9uLgorICAgIHZvaWQgc2hyaW5rKHNpemVfdCBuZXdTaXplKSB7IG1fcGF0aC5zaHJpbmsobmV3
U2l6ZSk7IH0KKworICAgIEV2ZW50Q29udGV4dCogbGFzdENvbnRleHRJZkV4aXN0cygpIHsgcmV0
dXJuIG1fcGF0aC5pc0VtcHR5KCkgPyAwIDogbV9wYXRoLmxhc3QoKS5nZXQoKTsgfQorCitwcml2
YXRlOgorICAgIFZlY3RvcjxPd25QdHI8RXZlbnRDb250ZXh0PiwgMzI+IG1fcGF0aDsKKyAgICBS
ZWZQdHI8RXZlbnRUYXJnZXQ+IG1fdGFyZ2V0UmVzcGVjdGluZ1RhcmdldFJ1bGVzOworfTsKKwog
Y2xhc3MgRXZlbnREaXNwYXRjaGVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBkaXNwYXRj
aEV2ZW50KE5vZGUqLCBQYXNzUmVmUHRyPEV2ZW50RGlzcGF0Y2hNZWRpYXRvcj4pOwpJbmRleDog
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50UmV0YXJnZXRlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50UmV0YXJnZXRlci5jcHAJKHJldmlzaW9uIDE1NzE0MSkKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFJldGFyZ2V0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMiw2ICsyMiw3IEBACiAKICNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCiAjaW5jbHVkZSAi
RXZlbnRDb250ZXh0LmgiCisjaW5jbHVkZSAiRXZlbnREaXNwYXRjaGVyLmgiCiAjaW5jbHVkZSAi
Rm9jdXNFdmVudC5oIgogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJTaGFkb3dS
b290LmgiCkBAIC03Myw3ICs3NCw3IEBAIHN0YXRpYyBOb2RlKiBub2RlT3JIb3N0SWZQc2V1ZG9F
bGVtZW50KE4KICAgICByZXR1cm4gbm9kZS0+aXNQc2V1ZG9FbGVtZW50KCkgPyB0b1BzZXVkb0Vs
ZW1lbnQobm9kZSktPmhvc3RFbGVtZW50KCkgOiBub2RlOwogfQogCi12b2lkIEV2ZW50UmV0YXJn
ZXRlcjo6Y2FsY3VsYXRlRXZlbnRQYXRoKE5vZGUmIHRhcmdldE5vZGUsIEV2ZW50JiBldmVudCwg
RXZlbnRQYXRoJiBldmVudFBhdGgpCitFdmVudFBhdGg6OkV2ZW50UGF0aChOb2RlJiB0YXJnZXRO
b2RlLCBFdmVudCYgZXZlbnQpCiB7CiAgICAgYm9vbCBpbkRvY3VtZW50ID0gdGFyZ2V0Tm9kZS5p
bkRvY3VtZW50KCk7CiAgICAgYm9vbCBpc1NWR0VsZW1lbnQgPSB0YXJnZXROb2RlLmlzU1ZHRWxl
bWVudCgpOwpAQCAtODYsMTcgKzg3LDE3IEBAIHZvaWQgRXZlbnRSZXRhcmdldGVyOjpjYWxjdWxh
dGVFdmVudFBhdGgKICAgICBOb2RlKiBub2RlID0gbm9kZU9ySG9zdElmUHNldWRvRWxlbWVudCgm
dGFyZ2V0Tm9kZSk7CiAgICAgd2hpbGUgKG5vZGUpIHsKICAgICAgICAgaWYgKCF0YXJnZXQgfHwg
IWlzU1ZHRWxlbWVudCkgLy8gRklYTUU6IFRoaXMgY29kZSBkb2Vzbid0IG1ha2Ugc2Vuc2Ugb25j
ZSB3ZSd2ZSBjbGltYmVkIG91dCBvZiB0aGUgU1ZHIHN1YnRyZWUgaW4gYSBIVE1MIGRvY3VtZW50
LgotICAgICAgICAgICAgdGFyZ2V0ID0gJmV2ZW50VGFyZ2V0UmVzcGVjdGluZ1RhcmdldFJ1bGVz
KCpub2RlKTsKKyAgICAgICAgICAgIHRhcmdldCA9ICZFdmVudFJldGFyZ2V0ZXI6OmV2ZW50VGFy
Z2V0UmVzcGVjdGluZ1RhcmdldFJ1bGVzKCpub2RlKTsKICAgICAgICAgZm9yICg7IG5vZGU7IG5v
ZGUgPSBub2RlLT5wYXJlbnROb2RlKCkpIHsKLSAgICAgICAgICAgIEV2ZW50VGFyZ2V0JiBjdXJy
ZW50VGFyZ2V0ID0gZXZlbnRUYXJnZXRSZXNwZWN0aW5nVGFyZ2V0UnVsZXMoKm5vZGUpOworICAg
ICAgICAgICAgRXZlbnRUYXJnZXQmIGN1cnJlbnRUYXJnZXQgPSBFdmVudFJldGFyZ2V0ZXI6OmV2
ZW50VGFyZ2V0UmVzcGVjdGluZ1RhcmdldFJ1bGVzKCpub2RlKTsKICAgICAgICAgICAgIGlmIChp
c01vdXNlT3JGb2N1c0V2ZW50KQotICAgICAgICAgICAgICAgIGV2ZW50UGF0aC5hcHBlbmQoYWRv
cHRQdHIobmV3IE1vdXNlT3JGb2N1c0V2ZW50Q29udGV4dChub2RlLCAmY3VycmVudFRhcmdldCwg
dGFyZ2V0KSkpOworICAgICAgICAgICAgICAgIG1fcGF0aC5hcHBlbmQoYWRvcHRQdHIobmV3IE1v
dXNlT3JGb2N1c0V2ZW50Q29udGV4dChub2RlLCAmY3VycmVudFRhcmdldCwgdGFyZ2V0KSkpOwog
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgICAgICAgICBlbHNlIGlmIChpc1RvdWNoRXZl
bnQpCi0gICAgICAgICAgICAgICAgZXZlbnRQYXRoLmFwcGVuZChhZG9wdFB0cihuZXcgVG91Y2hF
dmVudENvbnRleHQobm9kZSwgJmN1cnJlbnRUYXJnZXQsIHRhcmdldCkpKTsKKyAgICAgICAgICAg
ICAgICBtX3BhdGguYXBwZW5kKGFkb3B0UHRyKG5ldyBUb3VjaEV2ZW50Q29udGV4dChub2RlLCAm
Y3VycmVudFRhcmdldCwgdGFyZ2V0KSkpOwogI2VuZGlmCiAgICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgZXZlbnRQYXRoLmFwcGVuZChhZG9wdFB0cihuZXcgRXZlbnRDb250ZXh0KG5v
ZGUsICZjdXJyZW50VGFyZ2V0LCB0YXJnZXQpKSk7CisgICAgICAgICAgICAgICAgbV9wYXRoLmFw
cGVuZChhZG9wdFB0cihuZXcgRXZlbnRDb250ZXh0KG5vZGUsICZjdXJyZW50VGFyZ2V0LCB0YXJn
ZXQpKSk7CiAgICAgICAgICAgICBpZiAoIWluRG9jdW1lbnQpCiAgICAgICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAgICAgaWYgKG5vZGUtPmlzU2hhZG93Um9vdCgpKQpAQCAtMTI4LDExICsx
MjksMTAgQEAgdm9pZCBFdmVudFJldGFyZ2V0ZXI6OmFkanVzdEZvclRvdWNoRXZlbgogICAgIEV2
ZW50UGF0aFRvdWNoTGlzdHMgZXZlbnRQYXRoQ2hhbmdlZFRvdWNoZXMoZXZlbnRQYXRoU2l6ZSk7
CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGV2ZW50UGF0aFNpemU7ICsraSkgewotICAg
ICAgICBBU1NFUlQoZXZlbnRQYXRoW2ldLT5pc1RvdWNoRXZlbnRDb250ZXh0KCkpOwotICAgICAg
ICBUb3VjaEV2ZW50Q29udGV4dCogdG91Y2hFdmVudENvbnRleHQgPSB0b1RvdWNoRXZlbnRDb250
ZXh0KGV2ZW50UGF0aFtpXS5nZXQoKSk7Ci0gICAgICAgIGV2ZW50UGF0aFRvdWNoZXNbaV0gPSB0
b3VjaEV2ZW50Q29udGV4dC0+dG91Y2hlcygpOwotICAgICAgICBldmVudFBhdGhUYXJnZXRUb3Vj
aGVzW2ldID0gdG91Y2hFdmVudENvbnRleHQtPnRhcmdldFRvdWNoZXMoKTsKLSAgICAgICAgZXZl
bnRQYXRoQ2hhbmdlZFRvdWNoZXNbaV0gPSB0b3VjaEV2ZW50Q29udGV4dC0+Y2hhbmdlZFRvdWNo
ZXMoKTsKKyAgICAgICAgVG91Y2hFdmVudENvbnRleHQmIGNvbnRleHQgPSB0b1RvdWNoRXZlbnRD
b250ZXh0KGV2ZW50UGF0aC5pdGVtKGkpKTsKKyAgICAgICAgZXZlbnRQYXRoVG91Y2hlc1tpXSA9
IGNvbnRleHQudG91Y2hlcygpOworICAgICAgICBldmVudFBhdGhUYXJnZXRUb3VjaGVzW2ldID0g
Y29udGV4dC50YXJnZXRUb3VjaGVzKCk7CisgICAgICAgIGV2ZW50UGF0aENoYW5nZWRUb3VjaGVz
W2ldID0gY29udGV4dC5jaGFuZ2VkVG91Y2hlcygpOwogICAgIH0KIAogICAgIGFkanVzdFRvdWNo
TGlzdChub2RlLCB0b3VjaEV2ZW50LnRvdWNoZXMoKSwgZXZlbnRQYXRoLCBldmVudFBhdGhUb3Vj
aGVzKTsKQEAgLTE2OSwxMSArMTY5LDggQEAgdm9pZCBFdmVudFJldGFyZ2V0ZXI6OmFkanVzdEZv
clJlbGF0ZWRUYQogICAgIEFkanVzdGVkTm9kZXMgYWRqdXN0ZWROb2RlczsKICAgICBjYWxjdWxh
dGVBZGp1c3RlZE5vZGVzKG5vZGUsIHJlbGF0ZWROb2RlLCBTdG9wQXRCb3VuZGFyeUlmTmVlZGVk
LCBldmVudFBhdGgsIGFkanVzdGVkTm9kZXMpOwogICAgIEFTU0VSVChhZGp1c3RlZE5vZGVzLnNp
emUoKSA8PSBldmVudFBhdGguc2l6ZSgpKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFk
anVzdGVkTm9kZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgQVNTRVJUKGV2ZW50UGF0aFtpXS0+
aXNNb3VzZU9yRm9jdXNFdmVudENvbnRleHQoKSk7Ci0gICAgICAgIE1vdXNlT3JGb2N1c0V2ZW50
Q29udGV4dCogbW91c2VPckZvY3VzRXZlbnRDb250ZXh0ID0gc3RhdGljX2Nhc3Q8TW91c2VPckZv
Y3VzRXZlbnRDb250ZXh0Kj4oZXZlbnRQYXRoW2ldLmdldCgpKTsKLSAgICAgICAgbW91c2VPckZv
Y3VzRXZlbnRDb250ZXh0LT5zZXRSZWxhdGVkVGFyZ2V0KGFkanVzdGVkTm9kZXNbaV0pOwotICAg
IH0KKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFkanVzdGVkTm9kZXMuc2l6ZSgpOyArK2kp
CisgICAgICAgIHRvTW91c2VPckZvY3VzRXZlbnRDb250ZXh0KGV2ZW50UGF0aC5pdGVtKGkpKS5z
ZXRSZWxhdGVkVGFyZ2V0KGFkanVzdGVkTm9kZXNbaV0pOwogfQogCiBzdGF0aWMgdm9pZCBidWls
ZFJlbGF0ZWROb2RlTWFwKGNvbnN0IE5vZGUqIHJlbGF0ZWROb2RlLCBIYXNoTWFwPFRyZWVTY29w
ZSosIE5vZGUqPiYgcmVsYXRlZE5vZGVNYXApCkBAIC0yMjIsOCArMjE5LDEwIEBAIHZvaWQgRXZl
bnRSZXRhcmdldGVyOjpjYWxjdWxhdGVBZGp1c3RlZE4KIAogICAgIFRyZWVTY29wZSogbGFzdFRy
ZWVTY29wZSA9IDA7CiAgICAgTm9kZSogYWRqdXN0ZWROb2RlID0gMDsKLSAgICBmb3IgKEV2ZW50
UGF0aDo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IGV2ZW50UGF0aC5iZWdpbigpOyBpdGVyIDwgZXZl
bnRQYXRoLmVuZCgpOyArK2l0ZXIpIHsKLSAgICAgICAgVHJlZVNjb3BlKiBzY29wZSA9ICYoKml0
ZXIpLT5ub2RlKCktPnRyZWVTY29wZSgpOworICAgIHNpemVfdCBldmVudFBhdGhTaXplID0gZXZl
bnRQYXRoLnNpemUoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGV2ZW50UGF0aFNpemU7
IGkrKykgeworICAgICAgICBFdmVudENvbnRleHQmIGNvbnRleHQgPSBldmVudFBhdGguaXRlbShp
KTsKKyAgICAgICAgVHJlZVNjb3BlKiBzY29wZSA9ICZjb250ZXh0Lm5vZGUoKS0+dHJlZVNjb3Bl
KCk7CiAKICAgICAgICAgLy8gUmUtdXNlIHRoZSBwcmV2aW91cyBhZGp1c3RlZFJlbGF0ZWRUYXJn
ZXQgaWYgdHJlZVNjb3BlIGRvZXMgbm90IGNoYW5nZS4gSnVzdCBmb3IgdGhlIHBlcmZvcm1hbmNl
IG9wdGltaXphdGlvbi4KICAgICAgICAgaWYgKHNjb3BlICE9IGxhc3RUcmVlU2NvcGUpCkBAIC0y
MzQsMTMgKzIzMywxMyBAQCB2b2lkIEV2ZW50UmV0YXJnZXRlcjo6Y2FsY3VsYXRlQWRqdXN0ZWRO
CiAgICAgICAgIGlmIChldmVudFdpdGhSZWxhdGVkVGFyZ2V0RGlzcGF0Y2hCZWhhdmlvciA9PSBE
b2VzTm90U3RvcEF0Qm91bmRhcnkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYg
KHRhcmdldElzSWRlbnRpY2FsVG9Ub1JlbGF0ZWRUYXJnZXQpIHsKLSAgICAgICAgICAgIGlmIChu
b2RlLT50cmVlU2NvcGUoKS5yb290Tm9kZSgpID09ICgqaXRlciktPm5vZGUoKSkgewotICAgICAg
ICAgICAgICAgIGV2ZW50UGF0aC5zaHJpbmsoaXRlciArIDEgLSBldmVudFBhdGguYmVnaW4oKSk7
CisgICAgICAgICAgICBpZiAobm9kZS0+dHJlZVNjb3BlKCkucm9vdE5vZGUoKSA9PSBjb250ZXh0
Lm5vZGUoKSkgeworICAgICAgICAgICAgICAgIGV2ZW50UGF0aC5zaHJpbmsoaSArIDEpOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgaWYgKCgq
aXRlciktPnRhcmdldCgpID09IGFkanVzdGVkTm9kZSkgeworICAgICAgICB9IGVsc2UgaWYgKGNv
bnRleHQudGFyZ2V0KCkgPT0gYWRqdXN0ZWROb2RlKSB7CiAgICAgICAgICAgICAvLyBFdmVudCBk
aXNwYXRjaGluZyBzaG91bGQgYmUgc3RvcHBlZCBoZXJlLgotICAgICAgICAgICAgZXZlbnRQYXRo
LnNocmluayhpdGVyIC0gZXZlbnRQYXRoLmJlZ2luKCkpOworICAgICAgICAgICAgZXZlbnRQYXRo
LnNocmluayhpKTsKICAgICAgICAgICAgIGFkanVzdGVkTm9kZXMuc2hyaW5rKGFkanVzdGVkTm9k
ZXMuc2l6ZSgpIC0gMSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50UmV0YXJnZXRlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudFJldGFyZ2V0ZXIuaAkocmV2aXNpb24gMTU3MTQxKQorKysgU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50UmV0YXJnZXRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICsz
Niw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRXZlbnRQYXRoOwogY2xhc3Mg
RXZlbnRUYXJnZXQ7CiBjbGFzcyBGb2N1c0V2ZW50OwogY2xhc3MgTW91c2VFdmVudDsKQEAgLTQ3
LDcgKzQ4LDYgQEAgY2xhc3MgVHJlZVNjb3BlOwogCiBjbGFzcyBFdmVudFJldGFyZ2V0ZXIgewog
cHVibGljOgotICAgIHN0YXRpYyB2b2lkIGNhbGN1bGF0ZUV2ZW50UGF0aChOb2RlJiwgRXZlbnQm
LCBFdmVudFBhdGgmKTsKICAgICBzdGF0aWMgdm9pZCBhZGp1c3RGb3JNb3VzZUV2ZW50KE5vZGUq
LCBjb25zdCBNb3VzZUV2ZW50JiwgRXZlbnRQYXRoJik7CiAgICAgc3RhdGljIHZvaWQgYWRqdXN0
Rm9yRm9jdXNFdmVudChOb2RlKiwgY29uc3QgRm9jdXNFdmVudCYsIEV2ZW50UGF0aCYpOwogI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAkocmV2aXNpb24gMTU3MTQxKQor
KysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJEb2N1bWVudExvYWRl
ci5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRDb250ZXh0LmgiCisjaW5j
bHVkZSAiRXZlbnREaXNwYXRjaGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQWdlbnQuaCIKICNp
bmNsdWRlICJJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaCIKICNpbmNsdWRlICJJbnNw
ZWN0b3JDU1NBZ2VudC5oIgpAQCAtMTAzLDE1ICsxMDQsNyBAQCBzdGF0aWMgYm9vbCBldmVudEhh
c0xpc3RlbmVycyhjb25zdCBBdG9tCiAgICAgaWYgKHdpbmRvdyAmJiB3aW5kb3ctPmhhc0V2ZW50
TGlzdGVuZXJzKGV2ZW50VHlwZSkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYgKG5v
ZGUtPmhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50VHlwZSkpCi0gICAgICAgIHJldHVybiB0cnVlOwot
Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBldmVudFBhdGguc2l6ZSgpOyBpKyspIHsKLSAg
ICAgICAgaWYgKGV2ZW50UGF0aFtpXS0+bm9kZSgpLT5oYXNFdmVudExpc3RlbmVycyhldmVudFR5
cGUpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgcmV0dXJuIGZhbHNl
OworICAgIHJldHVybiBub2RlLT5oYXNFdmVudExpc3RlbmVycyhldmVudFR5cGUpIHx8IGV2ZW50
UGF0aC5oYXNFdmVudExpc3RlbmVycyhldmVudFR5cGUpOwogfQogCiBzdGF0aWMgRnJhbWUqIGZy
YW1lRm9yU2NyaXB0RXhlY3V0aW9uQ29udGV4dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0KQpJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uaAkocmV2aXNpb24gMTU3MTQxKQorKysgU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2
ICs1Nyw3IEBAIGNsYXNzIERhdGFiYXNlOwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBFbGVtZW50
OwogY2xhc3MgRXZlbnRDb250ZXh0OworY2xhc3MgRXZlbnRQYXRoOwogY2xhc3MgRG9jdW1lbnRM
b2FkZXI7CiBjbGFzcyBEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uOwogY2xhc3MgRGV2aWNl
T3JpZW50YXRpb25EYXRhOwo=
</data>
<flag name="review"
          id="236136"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>