<?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>86562</bug_id>
          
          <creation_ts>2012-05-15 20:20:10 -0700</creation_ts>
          <short_desc>DocumentLoader wastes vector capacity</short_desc>
          <delta_ts>2014-05-16 09:18: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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WORKSFORME</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>86281</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>beidson</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>w.bielawski</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>624912</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-05-15 20:20:10 -0700</bug_when>
    <thetext>9 vectors, 2.27KB used of 32.62KB, 30.36KB wasted at:
1   0x108e022c4 WebCore::DocumentLoader::DocumentLoader(WebCore::ResourceRequest const&amp;, WebCore::SubstituteData const&amp;)
2   0x108395263 WebKit::WebFrameLoaderClient::createDocumentLoader(WebCore::ResourceRequest const&amp;, WebCore::SubstituteData const&amp;)
3   0x108f7d367 WebCore::FrameLoader::loadWithNavigationAction(WebCore::ResourceRequest const&amp;, WebCore::NavigationAction const&amp;, bool, WebCore::FrameLoadType, WTF::PassRefPtr&lt;WebCore::FormState&gt;)
4   0x108f7b450 WebCore::FrameLoader::loadURL(WebCore::KURL const&amp;, WTF::String const&amp;, WTF::String const&amp;, bool, WebCore::FrameLoadType, WTF::PassRefPtr&lt;WebCore::Event&gt;, WTF::PassRefPtr&lt;WebCore::FormState&gt;)
5   0x108f7a1dd WebCore::FrameLoader::loadURLIntoChildFrame(WebCore::KURL const&amp;, WTF::String const&amp;, WebCore::Frame*)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>988844</commentid>
    <comment_count>1</comment_count>
    <who name="Wojciech Bielawski">w.bielawski</who>
    <bug_when>2014-03-10 02:56:03 -0700</bug_when>
    <thetext>Looks like it&apos;s not a Loader problem any more. I&apos;ve tested latest vesion of webkit and there was no Loader related classes on the lists.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>988892</commentid>
    <comment_count>2</comment_count>
      <attachid>226305</attachid>
    <who name="Wojciech Bielawski">w.bielawski</who>
    <bug_when>2014-03-10 08:44:56 -0700</bug_when>
    <thetext>Created attachment 226305
A patch from mother issue modified for latest version

EFL port was tested with attached patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009727</commentid>
    <comment_count>3</comment_count>
    <who name="Wojciech Bielawski">w.bielawski</who>
    <bug_when>2014-05-16 01:08:20 -0700</bug_when>
    <thetext>Simon would you mind closing it as a resolved/works for me? According to EFL port this issue is not relevant.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226305</attachid>
            <date>2014-03-10 08:44:56 -0700</date>
            <delta_ts>2014-03-10 08:44:56 -0700</delta_ts>
            <desc>A patch from mother issue modified for latest version</desc>
            <filename>vectorStats.patch</filename>
            <type>text/plain</type>
            <size>23917</size>
            <attacher name="Wojciech Bielawski">w.bielawski</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93
dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggMDZiYzhkZC4uMzJkZjg2ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0
cy50eHQKQEAgLTE4OCw2ICsxODgsNyBAQCBzZXQoV1RGX1NPVVJDRVMKICAgICBUQ1N5c3RlbUFs
bG9jLmNwcAogICAgIFRocmVhZGluZy5jcHAKICAgICBXVEZUaHJlYWREYXRhLmNwcAorICAgIFZl
Y3Rvci5jcHAKICAgICBkdG9hLmNwcAogCiAgICAgZHRvYS9iaWdudW0tZHRvYS5jYwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvVmVjdG9yLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGVlMDYzMgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5jcHAKQEAgLTAsMCArMSwzMDcgQEAKKy8q
CisgICAgQ29weXJpZ2h0IChDKSAyMDA1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQXRvbWljcy5oIgorI2luY2x1ZGUg
IlZlY3Rvci5oIgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL0N1
cnJlbnRUaW1lLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvVGhy
ZWFkaW5nLmg+CisjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUgPG1hdGguaD4KKwordXNp
bmcgbmFtZXNwYWNlIHN0ZDsKK25hbWVzcGFjZSBXVEYgeworCisjaWYgRFVNUF9WRUNUT1JfU1RB
VFMKKworI2RlZmluZSBQT0xZNjRSRVYgICAgIDB4OTVBQzkzMjlBQzRCQzlCNQorI2RlZmluZSBJ
TklUSUFMQ1JDICAgIDB4RkZGRkZGRkZGRkZGRkZGRgorCitzdGF0aWMgTXV0ZXgqIHNNdXRleDsK
K3N0YXRpYyB1X2ludDY0X3QgQ1JDVGFibGVbMjU2XTsKKworc3RhdGljIHZvaWQgaW5pdENSQ1Rh
YmxlKCkKK3sKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDI1NjsgaSsrKQorICAgIHsKKyAgICAg
ICAgdV9pbnQ2NF90IHBhcnQgPSBpOworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IDg7IGor
KykKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHBhcnQgJiAxKQorICAgICAgICAgICAgICAg
IHBhcnQgPSAocGFydCA+PiAxKSBeIFBPTFk2NFJFVjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICBwYXJ0ID4+PSAxOworICAgICAgICB9CisgICAgICAgIENSQ1RhYmxlW2ldID0g
cGFydDsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIGluaXRpYWxpemVPbmNlKCkKK3sKKyAgICBz
TXV0ZXggPSBuZXcgTXV0ZXg7CisgICAgaW5pdENSQ1RhYmxlKCk7Cit9CisKK3N0YXRpYyBwdGhy
ZWFkX29uY2VfdCBpbml0aWFsaXplT25jZUtleSA9IFBUSFJFQURfT05DRV9JTklUOworCitzdGF0
aWMgTXV0ZXgmIHZlY3RvclN0YXRzTXV0ZXgoKQoreworICAgIHB0aHJlYWRfb25jZSgmaW5pdGlh
bGl6ZU9uY2VLZXksIGluaXRpYWxpemVPbmNlKTsKKyAgICByZXR1cm4gKnNNdXRleDsKK30KKwor
LyoKK3N0YXRpYyBpbnQgYnVja2V0Rm9yU2l6ZShpbnQgY291bnQsIGludCBudW1CdWNrZXRzKQor
eworICAgIHJldHVybiBtaW4oY291bnQsIG51bUJ1Y2tldHMgLSAxKTsKK30KKworc3RhdGljIGlu
dCBmdWxsbmVzc0J1Y2tldChpbnQgc2l6ZSwgaW50IGNhcGFjaXR5KQoreworICAgIGlmICghY2Fw
YWNpdHkpCisgICAgICAgIHJldHVybiAwOworCisgICAgQVNTRVJUKHNpemUgPD0gY2FwYWNpdHkp
OworICAgIHJldHVybiBjZWlsKDEwMC4wICogKChkb3VibGUpKHNpemUpIC8gY2FwYWNpdHkpKTsK
K30KKyovCisvKgorc3RhdGljIHZvaWQgcHJpbnRCdWNrZXRzKGludCBidWNrZXRzW10sIGludCBu
dW1CdWNrZXRzKQoreworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQnVja2V0czsgKytpKQor
ICAgICAgICBmcHJpbnRmKHN0ZG91dCwgIiUzZCAlOGRcbiIsIGksIGJ1Y2tldHNbaV0pOworfQor
Ki8KKworCisKKy8vIFBvb3IgbWFuJ3MgaGFzaCBmb3Igc3RhY2sgYWRkcmVzc2VzLgorc3RhdGlj
IHVfaW50NjRfdCBjcmM2NChjaGFyICpzZXEsIHVuc2lnbmVkIGludCBsZ19zZXEpCit7CisgICAg
dV9pbnQ2NF90IGNyYyA9IElOSVRJQUxDUkM7CisKKyAgICB3aGlsZSAobGdfc2VxLS0gPiAwKQor
CQljcmMgPSBDUkNUYWJsZVsoY3JjIF4gKnNlcSsrKSAmIDB4ZmZdIF4gKGNyYyA+PiA4KTsKKwkK
KyAgICByZXR1cm4gY3JjOworfQorCitzdGF0aWMgY29uc3QgaW50IGZyYW1lc1RvU2hvdyA9IDU7
CitzdGF0aWMgY29uc3QgaW50IGZyYW1lc1RvU2tpcCA9IDI7CisKK3N0cnVjdCBQZXJWZWN0b3JE
YXRhIHsKKyAgICB2b2lkKiBtX2NyZWF0aW9uU3RhY2tTYW1wbGVzW2ZyYW1lc1RvU2hvdyArIGZy
YW1lc1RvU2tpcF07CisgICAgaW50IG1fY3JlYXRpb25TdGFja0ZyYW1lQ291bnQgPSBmcmFtZXNU
b1Nob3cgKyBmcmFtZXNUb1NraXA7CisKKyAgICB1X2ludDY0X3QgbV9zdGFja0hhc2g7CisgICAg
CisgICAgaW50IG1fY3VyclNpemU7CisgICAgaW50IG1fY3VyckNhcGFjaXR5OworICAgIAorICAg
IGludCBtX21heFNpemU7CisgICAgaW50IG1fbWF4Q2FwYWNpdHk7CisKKyAgICBzaXplX3QgbV92
YWx1ZVNpemU7CisgICAgZG91YmxlIG1fY3JlYXRpb25UaW1lOworICAgIAorICAgIFBlclZlY3Rv
ckRhdGEoKQorICAgICAgICA6IG1fY3VyclNpemUoMCkKKyAgICAgICAgLCBtX2N1cnJDYXBhY2l0
eSgwKQorICAgICAgICAsIG1fbWF4U2l6ZSgwKQorICAgICAgICAsIG1fbWF4Q2FwYWNpdHkoMCkK
KyAgICAgICAgLCBtX3ZhbHVlU2l6ZSgwKQorICAgICAgICAsIG1fY3JlYXRpb25UaW1lKDApCisg
ICAgeworICAgIH0KK307CisKK3R5cGVkZWYgSGFzaE1hcDx2b2lkKiwgUGVyVmVjdG9yRGF0YT4g
VmVjdG9ySGFzaDsKKworc3RhdGljIFZlY3Rvckhhc2gmIHZlY3Rvckxpc3QoKQoreworICAgIERF
RklORV9TVEFUSUNfTE9DQUwoVmVjdG9ySGFzaCwgdmVjdG9yTGlzdCwgKCkpOworICAgIHJldHVy
biB2ZWN0b3JMaXN0OworfQorCit2b2lkIFZlY3RvclN0YXRzOjp2ZWN0b3JDcmVhdGVkKHZvaWQq
IHZlY3Rvciwgc2l6ZV90IHZhbHVlU2l6ZSwgaW50IGNhcGFjaXR5LCBpbnQgc2l6ZSkKK3sKKyAg
ICBBU1NFUlQoc2l6ZSA8PSBjYXBhY2l0eSk7CisKKyAgICBNdXRleExvY2tlciBsb2NrKHZlY3Rv
clN0YXRzTXV0ZXgoKSk7CisKKyAgICBQZXJWZWN0b3JEYXRhIGN1cnJWZWN0b3JEYXRhOworICAg
IGN1cnJWZWN0b3JEYXRhLm1fdmFsdWVTaXplID0gdmFsdWVTaXplOworICAgIGN1cnJWZWN0b3JE
YXRhLm1fY3VyclNpemUgPSBzaXplOzsKKyAgICBjdXJyVmVjdG9yRGF0YS5tX2N1cnJDYXBhY2l0
eSA9IGNhcGFjaXR5OworICAgIGN1cnJWZWN0b3JEYXRhLm1fbWF4U2l6ZSA9IHNpemU7CisgICAg
Y3VyclZlY3RvckRhdGEubV9tYXhDYXBhY2l0eSA9IGNhcGFjaXR5OworICAgIGN1cnJWZWN0b3JE
YXRhLm1fY3JlYXRpb25UaW1lID0gY3VycmVudFRpbWUoKTsKKworICAgIFdURkdldEJhY2t0cmFj
ZShjdXJyVmVjdG9yRGF0YS5tX2NyZWF0aW9uU3RhY2tTYW1wbGVzLCAmY3VyclZlY3RvckRhdGEu
bV9jcmVhdGlvblN0YWNrRnJhbWVDb3VudCk7CisKKyAgICBjdXJyVmVjdG9yRGF0YS5tX3N0YWNr
SGFzaCA9IGNyYzY0KChjaGFyKiljdXJyVmVjdG9yRGF0YS5tX2NyZWF0aW9uU3RhY2tTYW1wbGVz
LCBjdXJyVmVjdG9yRGF0YS5tX2NyZWF0aW9uU3RhY2tGcmFtZUNvdW50ICogc2l6ZW9mKHZvaWQq
KSk7CisgICAgQVNTRVJUKGN1cnJWZWN0b3JEYXRhLm1fc3RhY2tIYXNoKTsKKyAgICAKKworICAg
IFZlY3Rvckhhc2gmIHZlY3RvckRhdGEgPSB2ZWN0b3JMaXN0KCk7CisgICAgdmVjdG9yRGF0YS5h
ZGQodmVjdG9yLCBjdXJyVmVjdG9yRGF0YSk7Cit9CisKK3ZvaWQgVmVjdG9yU3RhdHM6OnZlY3Rv
clVwZGF0ZWQodm9pZCogdmVjdG9yLCBpbnQgY2FwYWNpdHksIGludCBzaXplKQoreworICAgIEFT
U0VSVChzaXplIDw9IGNhcGFjaXR5KTsKKyAgICBNdXRleExvY2tlciBsb2NrKHZlY3RvclN0YXRz
TXV0ZXgoKSk7CisKKyAgICBWZWN0b3JIYXNoJiB2ZWN0b3JEYXRhID0gdmVjdG9yTGlzdCgpOwor
ICAgIFZlY3Rvckhhc2g6Oml0ZXJhdG9yIGl0ID0gdmVjdG9yRGF0YS5maW5kKHZlY3Rvcik7Cisg
ICAgaWYgKGl0ICE9IHZlY3RvckRhdGEuZW5kKCkpIHsKKyAgICAgICAgUGVyVmVjdG9yRGF0YSYg
ZGF0YSA9IGl0LT52YWx1ZTsKKworICAgICAgICBkYXRhLm1fY3VyclNpemUgPSBzaXplOworICAg
ICAgICBkYXRhLm1fY3VyckNhcGFjaXR5ID0gY2FwYWNpdHk7CisKKyAgICAgICAgZGF0YS5tX21h
eFNpemUgPSBtYXgoZGF0YS5tX21heFNpemUsIHNpemUpOworICAgICAgICBkYXRhLm1fbWF4Q2Fw
YWNpdHkgPSBtYXgoZGF0YS5tX21heENhcGFjaXR5LCBjYXBhY2l0eSk7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgZnByaW50ZihzdGRlcnIsICJVbmtub3duIHZlY3RvciAlcFxuIiwgdmVjdG9yKTsK
KyAgICB9Cit9CisKK3N0cnVjdCBBbGxvY2F0aW9uU3RhY2tJbmZvIHsKKyAgICBQZXJWZWN0b3JE
YXRhIG1fZmlyc3RWZWN0b3I7IC8vIFVzZWQgdG8gZmV0Y2ggdGhlIHN0YWNrIGZyYW1lcy4KKyAg
ICAKKyAgICB1bnNpZ25lZCBtX2NvdW50OworICAgIHVfaW50NjRfdCBtX3RvdGFsU2l6ZUJ5dGVz
OyAKKyAgICB1X2ludDY0X3QgbV90b3RhbENhcGFjaXR5Qnl0ZXM7CisgICAgCisgICAgQWxsb2Nh
dGlvblN0YWNrSW5mbygpCisgICAgICAgIDogbV9jb3VudCgwKQorICAgICAgICAsIG1fdG90YWxT
aXplQnl0ZXMoMCkKKyAgICAgICAgLCBtX3RvdGFsQ2FwYWNpdHlCeXRlcygwKQorICAgIHsKKyAg
ICB9Cit9OworCitzdGF0aWMgYm9vbCBjb21wYXJlQnlXYXN0ZShjb25zdCBBbGxvY2F0aW9uU3Rh
Y2tJbmZvKiBmaXJzdCwgY29uc3QgQWxsb2NhdGlvblN0YWNrSW5mbyogc2Vjb25kKQoreworICAg
IHVfaW50NjRfdCBmaXJzdFdhc3RlID0gZmlyc3QtPm1fdG90YWxDYXBhY2l0eUJ5dGVzIC0gZmly
c3QtPm1fdG90YWxTaXplQnl0ZXM7CisgICAgdV9pbnQ2NF90IHNlY29uZFdhc3RlID0gc2Vjb25k
LT5tX3RvdGFsQ2FwYWNpdHlCeXRlcyAtIHNlY29uZC0+bV90b3RhbFNpemVCeXRlczsKKyAgICAK
KyAgICByZXR1cm4gZmlyc3RXYXN0ZSA8IHNlY29uZFdhc3RlOworfQorCitzdGF0aWMgdm9pZCBk
dW1wV2FzdGVmdWxuZXNzU3RhdHMoKQoreworICAgIEhhc2hNYXA8dV9pbnQ2NF90LCBBbGxvY2F0
aW9uU3RhY2tJbmZvPiBjb21tb25TdGFja3NNYXA7CisKKyAgICB7CisgICAgICAgIFZlY3Rvckhh
c2gmIHZlY3Rvckhhc2ggPSB2ZWN0b3JMaXN0KCk7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2so
dmVjdG9yU3RhdHNNdXRleCgpKTsKKworICAgICAgICBsb25nIGxvbmcgdG90YWxVc2VkQnl0ZXMg
PSAwOworICAgICAgICBsb25nIGxvbmcgdG90YWxDYXBhY2l0eUJ5dGVzID0gMDsKKyAgICAgICAg
CisgICAgICAgIFZlY3Rvckhhc2g6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IHZlY3Rvckhhc2guZW5k
KCk7CisgICAgICAgIGZvciAoVmVjdG9ySGFzaDo6Y29uc3RfaXRlcmF0b3IgaXQgPSB2ZWN0b3JI
YXNoLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICAgICAgY29uc3QgUGVyVmVj
dG9yRGF0YSYgY3VyclZlY3RvckRhdGEgPSBpdC0+dmFsdWU7CisgICAgICAgIAorICAgICAgICAg
ICAgdG90YWxVc2VkQnl0ZXMgKz0gY3VyclZlY3RvckRhdGEubV9jdXJyU2l6ZSAqIGN1cnJWZWN0
b3JEYXRhLm1fdmFsdWVTaXplOworICAgICAgICAgICAgdG90YWxDYXBhY2l0eUJ5dGVzICs9IGN1
cnJWZWN0b3JEYXRhLm1fY3VyckNhcGFjaXR5ICogY3VyclZlY3RvckRhdGEubV92YWx1ZVNpemU7
CisgICAgICAgICAgICAKKyAgICAgICAgICAgICBIYXNoTWFwPHVfaW50NjRfdCwgQWxsb2NhdGlv
blN0YWNrSW5mbz46Oml0ZXJhdG9yIGNvbW1vblN0YWNrc0l0ID0gY29tbW9uU3RhY2tzTWFwLmZp
bmQoY3VyclZlY3RvckRhdGEubV9zdGFja0hhc2gpOworICAgICAgICAgICAgIGlmIChjb21tb25T
dGFja3NJdCA9PSBjb21tb25TdGFja3NNYXAuZW5kKCkpIHsKKyAgICAgICAgICAgICAgICBBbGxv
Y2F0aW9uU3RhY2tJbmZvIGFsbG9jYXRpb25JbmZvOworICAgICAgICAgICAgICAgIGFsbG9jYXRp
b25JbmZvLm1fZmlyc3RWZWN0b3IgPSBpdC0+dmFsdWU7CisgICAgICAgICAgICAgICAgYWxsb2Nh
dGlvbkluZm8ubV9jb3VudCA9IDE7CisgICAgICAgICAgICAgICAgYWxsb2NhdGlvbkluZm8ubV90
b3RhbFNpemVCeXRlcyA9IGN1cnJWZWN0b3JEYXRhLm1fY3VyclNpemUgKiBjdXJyVmVjdG9yRGF0
YS5tX3ZhbHVlU2l6ZTsKKyAgICAgICAgICAgICAgICBhbGxvY2F0aW9uSW5mby5tX3RvdGFsQ2Fw
YWNpdHlCeXRlcyA9IGN1cnJWZWN0b3JEYXRhLm1fY3VyckNhcGFjaXR5ICogY3VyclZlY3RvckRh
dGEubV92YWx1ZVNpemU7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgY29tbW9u
U3RhY2tzTWFwLmFkZChjdXJyVmVjdG9yRGF0YS5tX3N0YWNrSGFzaCwgYWxsb2NhdGlvbkluZm8p
OworICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgQWxsb2NhdGlvblN0YWNr
SW5mbyYgYWxsb2NhdGlvbkluZm8gPSBjb21tb25TdGFja3NJdC0+dmFsdWU7CisgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICAgICAgYWxsb2NhdGlvbkluZm8ubV9jb3VudCArPSAxOworICAg
ICAgICAgICAgICAgIGFsbG9jYXRpb25JbmZvLm1fdG90YWxTaXplQnl0ZXMgKz0gY3VyclZlY3Rv
ckRhdGEubV9jdXJyU2l6ZSAqIGN1cnJWZWN0b3JEYXRhLm1fdmFsdWVTaXplOworICAgICAgICAg
ICAgICAgIGFsbG9jYXRpb25JbmZvLm1fdG90YWxDYXBhY2l0eUJ5dGVzICs9IGN1cnJWZWN0b3JE
YXRhLm1fY3VyckNhcGFjaXR5ICogY3VyclZlY3RvckRhdGEubV92YWx1ZVNpemU7CisgICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmcHJpbnRmKHN0ZG91dCwgIlxu
JWQgZXh0YW50IHZlY3RvcnMgd2FzdGluZyAlLjJmTUIgJS4yZiUlICh1c2VkICVsbGQgYnl0ZXMs
IGNhcGFjaXR5ICVsbGQgYnl0ZXMpOlxuIiwKKyAgICAgICAgICAgIHZlY3Rvckhhc2guc2l6ZSgp
LAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8ZG91YmxlPih0b3RhbENhcGFjaXR5Qnl0ZXMgLSB0
b3RhbFVzZWRCeXRlcykgLyAoMTAyNCAqIDEwMjQpLAorICAgICAgICAgICAgMTAwLjAgKiBzdGF0
aWNfY2FzdDxkb3VibGU+KHRvdGFsQ2FwYWNpdHlCeXRlcyAtIHRvdGFsVXNlZEJ5dGVzKSAvIHRv
dGFsQ2FwYWNpdHlCeXRlcywKKyAgICAgICAgICAgIHRvdGFsVXNlZEJ5dGVzLCB0b3RhbENhcGFj
aXR5Qnl0ZXMpOyAgICAKKyAgICB9CisgICAgCisgICAgVmVjdG9yPGNvbnN0IEFsbG9jYXRpb25T
dGFja0luZm8qPiBhbGxvY2F0aW9uczsKKyAgICBhbGxvY2F0aW9ucy5yZXNpemUoY29tbW9uU3Rh
Y2tzTWFwLnNpemUoKSk7CisgICAgCisgICAgSGFzaE1hcDx1X2ludDY0X3QsIEFsbG9jYXRpb25T
dGFja0luZm8+Ojpjb25zdF9pdGVyYXRvciBzdGFja3NFbmQgPSBjb21tb25TdGFja3NNYXAuZW5k
KCk7CisgICAgSGFzaE1hcDx1X2ludDY0X3QsIEFsbG9jYXRpb25TdGFja0luZm8+Ojpjb25zdF9p
dGVyYXRvciBzdGFja3NJdDsKKyAgICBpbnQgaTsKKyAgICBmb3IgKHN0YWNrc0l0ID0gY29tbW9u
U3RhY2tzTWFwLmJlZ2luKCksIGkgPSAwOyBzdGFja3NJdCAhPSBzdGFja3NFbmQ7ICsrc3RhY2tz
SXQsICsraSkKKyAgICAgICAgYWxsb2NhdGlvbnNbaV0gPSAmKHN0YWNrc0l0LT52YWx1ZSk7Cisg
ICAgCisgICAgc3RkOjpzb3J0KGFsbG9jYXRpb25zLmJlZ2luKCksIGFsbG9jYXRpb25zLmVuZCgp
LCBjb21wYXJlQnlXYXN0ZSk7CisgICAgCisgICAgeworICAgICAgICBNdXRleExvY2tlciBsb2Nr
KHZlY3RvclN0YXRzTXV0ZXgoKSk7IC8vIFRyeSB0byBhdm9pZCBpbnRlcmxlYXZlZCBvdXRwdXQu
CisKKyAgICAgICAgaW50IHN0YWNrc1RvUHJpbnQgPSBtaW48aW50PihhbGxvY2F0aW9ucy5zaXpl
KCksIDIwKTsKKyAgICAgICAgZnByaW50ZihzdGRvdXQsICJcbk1vc3Qgd2FzdGVmdWwgJWQgc3Rh
Y2tzXG4iLCBzdGFja3NUb1ByaW50KTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGogPSAw
OyBqIDwgc3RhY2tzVG9QcmludDsgKytqKSB7CisgICAgICAgICAgICBjb25zdCBBbGxvY2F0aW9u
U3RhY2tJbmZvKiBjdXJyU3RhY2sgPSBhbGxvY2F0aW9uc1thbGxvY2F0aW9ucy5zaXplKCkgLSBq
IC0gMV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZwcmludGYoc3Rkb3V0LCAiJWQgdmVj
dG9ycywgJS4yZktCIHVzZWQgb2YgJS4yZktCLCAlLjJmS0Igd2FzdGVkIGF0OlxuIiwgY3VyclN0
YWNrLT5tX2NvdW50LAorICAgICAgICAgICAgICAgIChkb3VibGUpY3VyclN0YWNrLT5tX3RvdGFs
U2l6ZUJ5dGVzIC8gMTAyNCwKKyAgICAgICAgICAgICAgICAoZG91YmxlKWN1cnJTdGFjay0+bV90
b3RhbENhcGFjaXR5Qnl0ZXMgLyAxMDI0LAorICAgICAgICAgICAgICAgIChkb3VibGUpKGN1cnJT
dGFjay0+bV90b3RhbENhcGFjaXR5Qnl0ZXMgLSBjdXJyU3RhY2stPm1fdG90YWxTaXplQnl0ZXMp
IC8gMTAyNC4wKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgV1RGUHJpbnRCYWNrdHJhY2Uo
KHZvaWQqKikoY3VyclN0YWNrLT5tX2ZpcnN0VmVjdG9yLm1fY3JlYXRpb25TdGFja1NhbXBsZXMp
ICsgZnJhbWVzVG9Ta2lwLCBjdXJyU3RhY2stPm1fZmlyc3RWZWN0b3IubV9jcmVhdGlvblN0YWNr
RnJhbWVDb3VudCAtIGZyYW1lc1RvU2tpcCk7CisgICAgICAgICAgICBmcHJpbnRmKHN0ZG91dCwg
IlxuIik7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgVmVjdG9yU3RhdHM6OnZlY3RvckRl
c3Ryb3llZCh2b2lkKiB2ZWN0b3IpCit7CisgICAgeworICAgICAgICBNdXRleExvY2tlciBsb2Nr
KHZlY3RvclN0YXRzTXV0ZXgoKSk7CisKKyAgICAgICAgVmVjdG9ySGFzaCYgdmVjdG9yRGF0YSA9
IHZlY3Rvckxpc3QoKTsKKyAgICAgICAgVmVjdG9ySGFzaDo6aXRlcmF0b3IgaXQgPSB2ZWN0b3JE
YXRhLmZpbmQodmVjdG9yKTsKKyAgICAgICAgaWYgKGl0ICE9IHZlY3RvckRhdGEuZW5kKCkpIHsK
KyAgICAgICAgICAgIHZlY3RvckRhdGEucmVtb3ZlKGl0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiVW5rbm93biB2ZWN0b3IgJXBcbiIsIHZlY3Rvcik7
CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgVmVjdG9yU3RhdHM6OmR1bXBWZWN0b3JTdGF0
cygpCit7CisgICAgZHVtcFdhc3RlZnVsbmVzc1N0YXRzKCk7Cit9CisKKworI2VuZGlmIC8vIERV
TVBfVkVDVE9SX1NUQVRTCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaCBi
L1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCmluZGV4IGRjNjJjZTEuLmVkODliOTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5o
CkBAIC0zNCw4ICszNCwyMCBAQAogI2luY2x1ZGUgPHd0Zi9WYWx1ZUNoZWNrLmg+CiAjaW5jbHVk
ZSA8d3RmL1ZlY3RvclRyYWl0cy5oPgogCisjZGVmaW5lIERVTVBfVkVDVE9SX1NUQVRTIDEKKwog
bmFtZXNwYWNlIFdURiB7CiAKKyNpZiBEVU1QX1ZFQ1RPUl9TVEFUUworc3RydWN0IFZlY3RvclN0
YXRzIHsKKyAgICB+VmVjdG9yU3RhdHMoKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGlj
IHZvaWQgdmVjdG9yQ3JlYXRlZCh2b2lkKiB2ZWN0b3IsIHNpemVfdCB2YWx1ZVNpemUsIGludCBj
YXBhY2l0eSwgaW50IHNpemUpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCB2
ZWN0b3JVcGRhdGVkKHZvaWQqIHZlY3RvciwgaW50IGNhcGFjaXR5LCBpbnQgc2l6ZSk7CisgICAg
V1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIHZlY3RvckRlc3Ryb3llZCh2b2lkKiB2ZWN0
b3IpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBkdW1wVmVjdG9yU3RhdHMo
KTsKK307CisjZW5kaWYKKwogY29uc3Qgc2l6ZV90IG5vdEZvdW5kID0gc3RhdGljX2Nhc3Q8c2l6
ZV90PigtMSk7CiAKIHRlbXBsYXRlIDxib29sIG5lZWRzRGVzdHJ1Y3Rpb24sIHR5cGVuYW1lIFQ+
CkBAIC01NjYsNiArNTc4LDkgQEAgcHVibGljOgogCiAgICAgVmVjdG9yKCkKICAgICB7CisjaWYg
RFVNUF9WRUNUT1JfU1RBVFMKKyAgICAgICAgVmVjdG9yU3RhdHM6OnZlY3RvckNyZWF0ZWQodGhp
cywgc2l6ZW9mKFZhbHVlVHlwZSksIGNhcGFjaXR5KCksIG1fc2l6ZSk7CisjZW5kaWYKICAgICB9
CiAKICAgICAvLyBVbmxpa2UgaW4gc3RkOjp2ZWN0b3IsIHRoaXMgY29uc3RydWN0b3IgZG9lcyBu
b3QgaW5pdGlhbGl6ZSBQT0QgdHlwZXMuCkBAIC01NzQsNiArNTg5LDkgQEAgcHVibGljOgogICAg
IHsKICAgICAgICAgaWYgKGJlZ2luKCkpCiAgICAgICAgICAgICBUeXBlT3BlcmF0aW9uczo6aW5p
dGlhbGl6ZShiZWdpbigpLCBlbmQoKSk7CisjaWYgRFVNUF9WRUNUT1JfU1RBVFMKKyAgICAgICAg
VmVjdG9yU3RhdHM6OnZlY3RvckNyZWF0ZWQodGhpcywgc2l6ZW9mKFZhbHVlVHlwZSksIGNhcGFj
aXR5KCksIG1fc2l6ZSk7CisjZW5kaWYKICAgICB9CiAKICAgICBWZWN0b3Ioc2l6ZV90IHNpemUs
IGNvbnN0IFQmIHZhbCkKQEAgLTU4MSw2ICs1OTksOSBAQCBwdWJsaWM6CiAgICAgewogICAgICAg
ICBpZiAoYmVnaW4oKSkKICAgICAgICAgICAgIFR5cGVPcGVyYXRpb25zOjp1bmluaXRpYWxpemVk
RmlsbChiZWdpbigpLCBlbmQoKSwgdmFsKTsKKyNpZiBEVU1QX1ZFQ1RPUl9TVEFUUworICAgICAg
ICBWZWN0b3JTdGF0czo6dmVjdG9yQ3JlYXRlZCh0aGlzLCBzaXplb2YoVmFsdWVUeXBlKSwgY2Fw
YWNpdHkoKSwgbV9zaXplKTsKKyNlbmRpZgogICAgIH0KIAogICAgIFZlY3RvcihzdGQ6OmluaXRp
YWxpemVyX2xpc3Q8VD4gaW5pdGlhbGl6ZXJMaXN0KQpAQCAtNTg4LDEyICs2MDksMTggQEAgcHVi
bGljOgogICAgICAgICByZXNlcnZlSW5pdGlhbENhcGFjaXR5KGluaXRpYWxpemVyTGlzdC5zaXpl
KCkpOwogICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGVsZW1lbnQgOiBpbml0aWFsaXplckxpc3Qp
CiAgICAgICAgICAgICB1bmNoZWNrZWRBcHBlbmQoZWxlbWVudCk7CisjaWYgRFVNUF9WRUNUT1Jf
U1RBVFMKKyAgICAgICAgVmVjdG9yU3RhdHM6OnZlY3RvckNyZWF0ZWQodGhpcywgc2l6ZW9mKFZh
bHVlVHlwZSksIGNhcGFjaXR5KCksIG1fc2l6ZSk7CisjZW5kaWYKICAgICB9CiAKICAgICB+VmVj
dG9yKCkKICAgICB7CiAgICAgICAgIGlmIChtX3NpemUpCiAgICAgICAgICAgICBzaHJpbmsoMCk7
CisjaWYgRFVNUF9WRUNUT1JfU1RBVFMKKyAgICAgICAgVmVjdG9yU3RhdHM6OnZlY3RvckRlc3Ry
b3llZCh0aGlzKTsKKyNlbmRpZgogICAgIH0KIAogICAgIFZlY3Rvcihjb25zdCBWZWN0b3ImKTsK
QEAgLTcxMyw2ICs3NDAsMTAgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgQmFzZTo6c3dhcChv
dGhlciwgbV9zaXplLCBvdGhlci5tX3NpemUpOwogICAgICAgICBzdGQ6OnN3YXAobV9zaXplLCBv
dGhlci5tX3NpemUpOworI2lmIERVTVBfVkVDVE9SX1NUQVRTCisgICAgICAgIFZlY3RvclN0YXRz
Ojp2ZWN0b3JVcGRhdGVkKHRoaXMsIGNhcGFjaXR5KCksIG1fc2l6ZSk7CisgICAgICAgIFZlY3Rv
clN0YXRzOjp2ZWN0b3JVcGRhdGVkKCZvdGhlciwgb3RoZXIuY2FwYWNpdHkoKSwgb3RoZXIuc2l6
ZSgpKTsKKyNlbmRpZgogICAgIH0KIAogICAgIHZvaWQgcmV2ZXJzZSgpOwpAQCAtNzQ2LDYgKzc3
Nyw5IEBAIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyPjo6VmVjdG9y
KGNvbnN0IFZlY3RvciYgb3RoZXIpCiB7CiAgICAgaWYgKGJlZ2luKCkpCiAgICAgICAgIFR5cGVP
cGVyYXRpb25zOjp1bmluaXRpYWxpemVkQ29weShvdGhlci5iZWdpbigpLCBvdGhlci5lbmQoKSwg
YmVnaW4oKSk7CisjaWYgRFVNUF9WRUNUT1JfU1RBVFMKKyAgICBWZWN0b3JTdGF0czo6dmVjdG9y
Q3JlYXRlZCh0aGlzLCBzaXplb2YoVmFsdWVUeXBlKSwgY2FwYWNpdHkoKSwgbV9zaXplKTsKKyNl
bmRpZgogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5
cGVuYW1lIE92ZXJmbG93SGFuZGxlcj4KQEAgLTc1NSw2ICs3ODksOSBAQCBWZWN0b3I8VCwgaW5s
aW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlcj46OlZlY3Rvcihjb25zdCBWZWN0b3I8VCwgb3Ro
ZXJDYXBhY2l0eQogewogICAgIGlmIChiZWdpbigpKQogICAgICAgICBUeXBlT3BlcmF0aW9uczo6
dW5pbml0aWFsaXplZENvcHkob3RoZXIuYmVnaW4oKSwgb3RoZXIuZW5kKCksIGJlZ2luKCkpOwor
I2lmIERVTVBfVkVDVE9SX1NUQVRTCisgICAgVmVjdG9yU3RhdHM6OnZlY3RvckNyZWF0ZWQodGhp
cywgc2l6ZW9mKFZhbHVlVHlwZSksIGNhcGFjaXR5KCksIG1fc2l6ZSk7CisjZW5kaWYKIH0KIAog
dGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVy
Zmxvd0hhbmRsZXI+CkBAIC03ODEsNiArODE4LDkgQEAgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5
LCBPdmVyZmxvd0hhbmRsZXI+JiBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGEK
ICAgICBUeXBlT3BlcmF0aW9uczo6dW5pbml0aWFsaXplZENvcHkob3RoZXIuYmVnaW4oKSArIHNp
emUoKSwgb3RoZXIuZW5kKCksIGVuZCgpKTsKICAgICBtX3NpemUgPSBvdGhlci5zaXplKCk7CiAK
KyNpZiBEVU1QX1ZFQ1RPUl9TVEFUUworICAgIFZlY3RvclN0YXRzOjp2ZWN0b3JVcGRhdGVkKHRo
aXMsIGNhcGFjaXR5KCksIG1fc2l6ZSk7CisjZW5kaWYKICAgICByZXR1cm4gKnRoaXM7CiB9CiAK
QEAgLTgxMyw2ICs4NTMsOSBAQCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFu
ZGxlcj4mIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYQogICAgIFR5cGVPcGVy
YXRpb25zOjp1bmluaXRpYWxpemVkQ29weShvdGhlci5iZWdpbigpICsgc2l6ZSgpLCBvdGhlci5l
bmQoKSwgZW5kKCkpOwogICAgIG1fc2l6ZSA9IG90aGVyLnNpemUoKTsKIAorI2lmIERVTVBfVkVD
VE9SX1NUQVRTCisgICAgVmVjdG9yU3RhdHM6OnZlY3RvclVwZGF0ZWQodGhpcywgY2FwYWNpdHko
KSwgbV9zaXplKTsKKyNlbmRpZgogICAgIHJldHVybiAqdGhpczsKIH0KIApAQCAtODIwLDEyICs4
NjMsMTggQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBl
bmFtZSBPdmVyZmxvd0hhbmRsZXI+CiBpbmxpbmUgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBP
dmVyZmxvd0hhbmRsZXI+OjpWZWN0b3IoVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxv
d0hhbmRsZXI+JiYgb3RoZXIpCiB7CiAgICAgc3dhcChvdGhlcik7CisjaWYgRFVNUF9WRUNUT1Jf
U1RBVFMKKyAgICBWZWN0b3JTdGF0czo6dmVjdG9yQ3JlYXRlZCh0aGlzLCBzaXplb2YoVmFsdWVU
eXBlKSwgY2FwYWNpdHkoKSwgbV9zaXplKTsKKyNlbmRpZgogfQogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlcj4KIGlu
bGluZSBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlcj4mIFZlY3RvcjxU
LCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyPjo6b3BlcmF0b3I9KFZlY3RvcjxULCBp
bmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyPiYmIG90aGVyKQogewogICAgIHN3YXAob3Ro
ZXIpOworI2lmIERVTVBfVkVDVE9SX1NUQVRTCisgICAgVmVjdG9yU3RhdHM6OnZlY3RvclVwZGF0
ZWQodGhpcywgY2FwYWNpdHkoKSwgbV9zaXplKTsKKyNlbmRpZgogICAgIHJldHVybiAqdGhpczsK
IH0KIApAQCAtODYzLDEwICs5MTIsMTggQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlu
bGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXI+CiB2b2lkIFZlY3RvcjxULCBp
bmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyPjo6ZmlsbChjb25zdCBUJiB2YWwsIHNpemVf
dCBuZXdTaXplKQogewogICAgIGlmIChzaXplKCkgPiBuZXdTaXplKQorICAgIHsKICAgICAgICAg
c2hyaW5rKG5ld1NpemUpOworI2lmIERVTVBfVkVDVE9SX1NUQVRTCisgICAgICAgIFZlY3RvclN0
YXRzOjp2ZWN0b3JVcGRhdGVkKHRoaXMsIGNhcGFjaXR5KCksIG1fc2l6ZSk7CisjZW5kaWYKKyAg
ICB9CiAgICAgZWxzZSBpZiAobmV3U2l6ZSA+IGNhcGFjaXR5KCkpIHsKICAgICAgICAgY2xlYXIo
KTsKICAgICAgICAgcmVzZXJ2ZUNhcGFjaXR5KG5ld1NpemUpOworI2lmIERVTVBfVkVDVE9SX1NU
QVRTCisgICAgICAgIFZlY3RvclN0YXRzOjp2ZWN0b3JVcGRhdGVkKHRoaXMsIGNhcGFjaXR5KCks
IG1fc2l6ZSk7CisjZW5kaWYKICAgICAgICAgQVNTRVJUKGJlZ2luKCkpOwogICAgIH0KICAgICAK
QEAgLTg4MSw2ICs5MzgsOSBAQCB2b2lkIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZs
b3dIYW5kbGVyPjo6YXBwZW5kUmFuZ2UoSXRlcmF0b3Igc3RhcnQsIEl0ZQogewogICAgIGZvciAo
SXRlcmF0b3IgaXQgPSBzdGFydDsgaXQgIT0gZW5kOyArK2l0KQogICAgICAgICBhcHBlbmQoKml0
KTsKKyNpZiBEVU1QX1ZFQ1RPUl9TVEFUUworICAgIFZlY3RvclN0YXRzOjp2ZWN0b3JVcGRhdGVk
KHRoaXMsIGNhcGFjaXR5KCksIG1fc2l6ZSk7CisjZW5kaWYKIH0KIAogdGVtcGxhdGU8dHlwZW5h
bWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXI+CkBA
IC05MjUsNiArOTg1LDkgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFj
aXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXI+IHRlbXBsYXRlPHQKIGlubGluZSBVKiBWZWN0
b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlcj46OmV4cGFuZENhcGFjaXR5KHNp
emVfdCBuZXdNaW5DYXBhY2l0eSwgVSogcHRyKQogewogICAgIGV4cGFuZENhcGFjaXR5KG5ld01p
bkNhcGFjaXR5KTsKKyNpZiBEVU1QX1ZFQ1RPUl9TVEFUUworICAgIFZlY3RvclN0YXRzOjp2ZWN0
b3JVcGRhdGVkKHRoaXMsIGNhcGFjaXR5KCksIG1fc2l6ZSk7CisjZW5kaWYKICAgICByZXR1cm4g
cHRyOwogfQogCkBAIC05NDEsNiArMTAwNCw5IEBAIGlubGluZSB2b2lkIFZlY3RvcjxULCBpbmxp
bmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyPjo6cmVzaXplKHNpemVfdCBzaXplKQogICAgIH0K
ICAgICAKICAgICBtX3NpemUgPSBzaXplOworI2lmIERVTVBfVkVDVE9SX1NUQVRTCisgICAgVmVj
dG9yU3RhdHM6OnZlY3RvclVwZGF0ZWQodGhpcywgY2FwYWNpdHkoKSwgbV9zaXplKTsKKyNlbmRp
ZgogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVu
YW1lIE92ZXJmbG93SGFuZGxlcj4KQEAgLTk0OCw2ICsxMDE0LDkgQEAgdm9pZCBWZWN0b3I8VCwg
aW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlcj46OnJlc2l6ZVRvRml0KHNpemVfdCBzaXpl
KQogewogICAgIHJlc2VydmVDYXBhY2l0eShzaXplKTsKICAgICByZXNpemUoc2l6ZSk7CisjaWYg
RFVNUF9WRUNUT1JfU1RBVFMKKyAgICBWZWN0b3JTdGF0czo6dmVjdG9yVXBkYXRlZCh0aGlzLCBj
YXBhY2l0eSgpLCBtX3NpemUpOworI2VuZGlmCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNp
emVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyPgpAQCAtOTU2LDYg
KzEwMjUsOSBAQCB2b2lkIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVy
Pjo6c2hyaW5rKHNpemVfdCBzaXplKQogICAgIEFTU0VSVChzaXplIDw9IG1fc2l6ZSk7CiAgICAg
VHlwZU9wZXJhdGlvbnM6OmRlc3RydWN0KGJlZ2luKCkgKyBzaXplLCBlbmQoKSk7CiAgICAgbV9z
aXplID0gc2l6ZTsKKyNpZiBEVU1QX1ZFQ1RPUl9TVEFUUworICAgIFZlY3RvclN0YXRzOjp2ZWN0
b3JVcGRhdGVkKHRoaXMsIGNhcGFjaXR5KCksIG1fc2l6ZSk7CisjZW5kaWYKIH0KIAogdGVtcGxh
dGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hh
bmRsZXI+CkBAIC05NjcsNiArMTAzOSw5IEBAIHZvaWQgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5
LCBPdmVyZmxvd0hhbmRsZXI+Ojpncm93KHNpemVfdCBzaXplKQogICAgIGlmIChiZWdpbigpKQog
ICAgICAgICBUeXBlT3BlcmF0aW9uczo6aW5pdGlhbGl6ZShlbmQoKSwgYmVnaW4oKSArIHNpemUp
OwogICAgIG1fc2l6ZSA9IHNpemU7CisjaWYgRFVNUF9WRUNUT1JfU1RBVFMKKyAgICBWZWN0b3JT
dGF0czo6dmVjdG9yVXBkYXRlZCh0aGlzLCBjYXBhY2l0eSgpLCBtX3NpemUpOworI2VuZGlmCiB9
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUg
T3ZlcmZsb3dIYW5kbGVyPgpAQCAtOTgwLDYgKzEwNTUsOSBAQCB2b2lkIFZlY3RvcjxULCBpbmxp
bmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyPjo6cmVzZXJ2ZUNhcGFjaXR5KHNpemVfdCBuZXdD
YXBhYwogICAgIEFTU0VSVChiZWdpbigpKTsKICAgICBUeXBlT3BlcmF0aW9uczo6bW92ZShvbGRC
dWZmZXIsIG9sZEVuZCwgYmVnaW4oKSk7CiAgICAgQmFzZTo6ZGVhbGxvY2F0ZUJ1ZmZlcihvbGRC
dWZmZXIpOworI2lmIERVTVBfVkVDVE9SX1NUQVRTCisgICAgVmVjdG9yU3RhdHM6OnZlY3RvclVw
ZGF0ZWQodGhpcywgY2FwYWNpdHkoKSwgbV9zaXplKTsKKyNlbmRpZgogfQogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxl
cj4KQEAgLTk5NCw2ICsxMDcyLDkgQEAgYm9vbCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92
ZXJmbG93SGFuZGxlcj46OnRyeVJlc2VydmVDYXBhY2l0eShzaXplX3QgbmV3Q2EKICAgICBBU1NF
UlQoYmVnaW4oKSk7CiAgICAgVHlwZU9wZXJhdGlvbnM6Om1vdmUob2xkQnVmZmVyLCBvbGRFbmQs
IGJlZ2luKCkpOwogICAgIEJhc2U6OmRlYWxsb2NhdGVCdWZmZXIob2xkQnVmZmVyKTsKKyNpZiBE
VU1QX1ZFQ1RPUl9TVEFUUworICAgIFZlY3RvclN0YXRzOjp2ZWN0b3JVcGRhdGVkKHRoaXMsIGNh
cGFjaXR5KCksIG1fc2l6ZSk7CisjZW5kaWYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTAw
NCw2ICsxMDg1LDkgQEAgaW5saW5lIHZvaWQgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVy
Zmxvd0hhbmRsZXI+OjpyZXNlcnZlSW5pdGlhbENhcGFjaXR5KHMKICAgICBBU1NFUlQoY2FwYWNp
dHkoKSA9PSBpbmxpbmVDYXBhY2l0eSk7CiAgICAgaWYgKGluaXRpYWxDYXBhY2l0eSA+IGlubGlu
ZUNhcGFjaXR5KQogICAgICAgICBCYXNlOjphbGxvY2F0ZUJ1ZmZlcihpbml0aWFsQ2FwYWNpdHkp
OworI2lmIERVTVBfVkVDVE9SX1NUQVRTCisgICAgVmVjdG9yU3RhdHM6OnZlY3RvclVwZGF0ZWQo
dGhpcywgY2FwYWNpdHkoKSwgbV9zaXplKTsKKyNlbmRpZgogfQogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlcj4KQEAg
LTEwMzAsNiArMTExNCw5IEBAIHZvaWQgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxv
d0hhbmRsZXI+OjpzaHJpbmtDYXBhY2l0eShzaXplX3QgbmV3Q2FwYWNpCiAKICAgICBCYXNlOjpk
ZWFsbG9jYXRlQnVmZmVyKG9sZEJ1ZmZlcik7CiAgICAgQmFzZTo6cmVzdG9yZUlubGluZUJ1ZmZl
cklmTmVlZGVkKCk7CisjaWYgRFVNUF9WRUNUT1JfU1RBVFMKKyAgICBWZWN0b3JTdGF0czo6dmVj
dG9yVXBkYXRlZCh0aGlzLCBjYXBhY2l0eSgpLCBtX3NpemUpOworI2VuZGlmCiB9CiAKIC8vIFRl
bXBsYXRpemluZyB0aGVzZSBpcyBiZXR0ZXIgdGhhbiBqdXN0IGxldHRpbmcgdGhlIGNvbnZlcnNp
b24gaGFwcGVuIGltcGxpY2l0bHksCkBAIC0xMDQ4LDYgKzExMzUsOSBAQCB2b2lkIFZlY3RvcjxU
LCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyPjo6YXBwZW5kKGNvbnN0IFUqIGRhdGEs
IHNpemVfdCBkYQogICAgIFQqIGRlc3QgPSBlbmQoKTsKICAgICBWZWN0b3JDb3BpZXI8c3RkOjpp
c190cml2aWFsPFQ+Ojp2YWx1ZSwgVT46OnVuaW5pdGlhbGl6ZWRDb3B5KGRhdGEsICZkYXRhW2Rh
dGFTaXplXSwgZGVzdCk7CiAgICAgbV9zaXplID0gbmV3U2l6ZTsKKyNpZiBEVU1QX1ZFQ1RPUl9T
VEFUUworICAgIFZlY3RvclN0YXRzOjp2ZWN0b3JVcGRhdGVkKHRoaXMsIGNhcGFjaXR5KCksIG1f
c2l6ZSk7CisjZW5kaWYKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNh
cGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXI+IHRlbXBsYXRlPHR5cGVuYW1lIFU+CkBA
IC0xMDY1LDYgKzExNTUsOSBAQCBib29sIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZs
b3dIYW5kbGVyPjo6dHJ5QXBwZW5kKGNvbnN0IFUqIGRhdGEsIHNpemVfdAogICAgIFQqIGRlc3Qg
PSBlbmQoKTsKICAgICBWZWN0b3JDb3BpZXI8c3RkOjppc190cml2aWFsPFQ+Ojp2YWx1ZSwgVT46
OnVuaW5pdGlhbGl6ZWRDb3B5KGRhdGEsICZkYXRhW2RhdGFTaXplXSwgZGVzdCk7CiAgICAgbV9z
aXplID0gbmV3U2l6ZTsKKyNpZiBEVU1QX1ZFQ1RPUl9TVEFUUworICAgIFZlY3RvclN0YXRzOjp2
ZWN0b3JVcGRhdGVkKHRoaXMsIGNhcGFjaXR5KCksIG1fc2l6ZSk7CisjZW5kaWYKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIApAQCAtMTA3OCw2ICsxMTcxLDkgQEAgQUxXQVlTX0lOTElORSB2b2lkIFZl
Y3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyPjo6YXBwZW5kKFUmJiB2YWx1
ZSkKICAgICB9CiAKICAgICBhcHBlbmRTbG93Q2FzZShzdGQ6OmZvcndhcmQ8VT4odmFsdWUpKTsK
KyNpZiBEVU1QX1ZFQ1RPUl9TVEFUUworICAgIFZlY3RvclN0YXRzOjp2ZWN0b3JVcGRhdGVkKHRo
aXMsIGNhcGFjaXR5KCksIG1fc2l6ZSk7CisjZW5kaWYKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUg
VCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXI+IHRlbXBs
YXRlPHR5cGVuYW1lIFU+CkBAIC0xMDkxLDYgKzExODcsOSBAQCB2b2lkIFZlY3RvcjxULCBpbmxp
bmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyPjo6YXBwZW5kU2xvd0Nhc2UoVSYmIHZhbHVlKQog
CiAgICAgbmV3IChOb3ROdWxsLCBlbmQoKSkgVChzdGQ6OmZvcndhcmQ8VT4oKnB0cikpOwogICAg
ICsrbV9zaXplOworI2lmIERVTVBfVkVDVE9SX1NUQVRTCisgICAgVmVjdG9yU3RhdHM6OnZlY3Rv
clVwZGF0ZWQodGhpcywgY2FwYWNpdHkoKSwgbV9zaXplKTsKKyNlbmRpZgogfQogCiAvLyBUaGlz
IHZlcnNpb24gb2YgYXBwZW5kIHNhdmVzIGEgYnJhbmNoIGluIHRoZSBjYXNlIHdoZXJlIHlvdSBr
bm93IHRoYXQgdGhlCkBAIC0xMTA0LDEyICsxMjAzLDE4IEBAIGlubGluZSB2b2lkIFZlY3RvcjxU
LCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyPjo6dW5jaGVja2VkQXBwZW5kKFUmJiB2
YWx1CiAgICAgYXV0byBwdHIgPSBzdGQ6OmFkZHJlc3NvZih2YWx1ZSk7CiAgICAgbmV3IChOb3RO
dWxsLCBlbmQoKSkgVChzdGQ6OmZvcndhcmQ8VT4oKnB0cikpOwogICAgICsrbV9zaXplOworI2lm
IERVTVBfVkVDVE9SX1NUQVRTCisgICAgVmVjdG9yU3RhdHM6OnZlY3RvclVwZGF0ZWQodGhpcywg
Y2FwYWNpdHkoKSwgbV9zaXplKTsKKyNlbmRpZgogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBz
aXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlcj4gdGVtcGxhdGU8
dHlwZW5hbWUgVSwgc2l6ZV90IG90aGVyQ2FwYWNpdHk+CiBpbmxpbmUgdm9pZCBWZWN0b3I8VCwg
aW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlcj46OmFwcGVuZFZlY3Rvcihjb25zdCBWZWN0
b3I8VSwgb3RoZXJDYXBhY2l0eT4mIHZhbCkKIHsKICAgICBhcHBlbmQodmFsLmJlZ2luKCksIHZh
bC5zaXplKCkpOworI2lmIERVTVBfVkVDVE9SX1NUQVRTCisgICAgVmVjdG9yU3RhdHM6OnZlY3Rv
clVwZGF0ZWQodGhpcywgY2FwYWNpdHkoKSwgbV9zaXplKTsKKyNlbmRpZgogfQogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFu
ZGxlcj4gdGVtcGxhdGU8dHlwZW5hbWUgVT4KQEAgLTExMjcsNiArMTIzMiw5IEBAIHZvaWQgVmVj
dG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXI+OjppbnNlcnQoc2l6ZV90IHBv
c2l0aW9uLCBjb25zdCBVCiAgICAgVHlwZU9wZXJhdGlvbnM6Om1vdmVPdmVybGFwcGluZyhzcG90
LCBlbmQoKSwgc3BvdCArIGRhdGFTaXplKTsKICAgICBWZWN0b3JDb3BpZXI8c3RkOjppc190cml2
aWFsPFQ+Ojp2YWx1ZSwgVT46OnVuaW5pdGlhbGl6ZWRDb3B5KGRhdGEsICZkYXRhW2RhdGFTaXpl
XSwgc3BvdCk7CiAgICAgbV9zaXplID0gbmV3U2l6ZTsKKyNpZiBEVU1QX1ZFQ1RPUl9TVEFUUwor
ICAgIFZlY3RvclN0YXRzOjp2ZWN0b3JVcGRhdGVkKHRoaXMsIGNhcGFjaXR5KCksIG1fc2l6ZSk7
CisjZW5kaWYKIH0KICAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0
eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyPiB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgpAQCAtMTE0
NCwxMiArMTI1MiwxOCBAQCBpbmxpbmUgdm9pZCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92
ZXJmbG93SGFuZGxlcj46Omluc2VydChzaXplX3QgcG9zaXRpb24sCiAgICAgVHlwZU9wZXJhdGlv
bnM6Om1vdmVPdmVybGFwcGluZyhzcG90LCBlbmQoKSwgc3BvdCArIDEpOwogICAgIG5ldyAoTm90
TnVsbCwgc3BvdCkgVChzdGQ6OmZvcndhcmQ8VT4oKnB0cikpOwogICAgICsrbV9zaXplOworI2lm
IERVTVBfVkVDVE9SX1NUQVRTCisgICAgVmVjdG9yU3RhdHM6OnZlY3RvclVwZGF0ZWQodGhpcywg
Y2FwYWNpdHkoKSwgbV9zaXplKTsKKyNlbmRpZgogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBz
aXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlcj4gdGVtcGxhdGU8
dHlwZW5hbWUgVSwgc2l6ZV90IGM+CiBpbmxpbmUgdm9pZCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNp
dHksIE92ZXJmbG93SGFuZGxlcj46Omluc2VydFZlY3RvcihzaXplX3QgcG9zaXRpb24sIGNvbnN0
IFZlY3RvcjxVLCBjPiYgdmFsKQogewogICAgIGluc2VydChwb3NpdGlvbiwgdmFsLmJlZ2luKCks
IHZhbC5zaXplKCkpOworI2lmIERVTVBfVkVDVE9SX1NUQVRTCisgICAgVmVjdG9yU3RhdHM6OnZl
Y3RvclVwZGF0ZWQodGhpcywgY2FwYWNpdHkoKSwgbV9zaXplKTsKKyNlbmRpZgogfQogCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93
SGFuZGxlcj4KQEAgLTExNjAsNiArMTI3NCw5IEBAIGlubGluZSB2b2lkIFZlY3RvcjxULCBpbmxp
bmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyPjo6cmVtb3ZlKHNpemVfdCBwb3NpdGlvbikKICAg
ICBzcG90LT5+VCgpOwogICAgIFR5cGVPcGVyYXRpb25zOjptb3ZlT3ZlcmxhcHBpbmcoc3BvdCAr
IDEsIGVuZCgpLCBzcG90KTsKICAgICAtLW1fc2l6ZTsKKyNpZiBEVU1QX1ZFQ1RPUl9TVEFUUwor
ICAgIFZlY3RvclN0YXRzOjp2ZWN0b3JVcGRhdGVkKHRoaXMsIGNhcGFjaXR5KCksIG1fc2l6ZSk7
CisjZW5kaWYKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5
LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXI+CkBAIC0xMTcyLDYgKzEyODksOSBAQCBpbmxpbmUg
dm9pZCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlcj46OnJlbW92ZShz
aXplX3QgcG9zaXRpb24sCiAgICAgVHlwZU9wZXJhdGlvbnM6OmRlc3RydWN0KGJlZ2luU3BvdCwg
ZW5kU3BvdCk7IAogICAgIFR5cGVPcGVyYXRpb25zOjptb3ZlT3ZlcmxhcHBpbmcoZW5kU3BvdCwg
ZW5kKCksIGJlZ2luU3BvdCk7CiAgICAgbV9zaXplIC09IGxlbmd0aDsKKyNpZiBEVU1QX1ZFQ1RP
Ul9TVEFUUworICAgIFZlY3RvclN0YXRzOjp2ZWN0b3JVcGRhdGVkKHRoaXMsIGNhcGFjaXR5KCks
IG1fc2l6ZSk7CisjZW5kaWYKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGlu
ZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXI+CkBAIC0xMTk0LDYgKzEzMTQsOSBA
QCBpbmxpbmUgTWFsbG9jUHRyPFQ+IFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dI
YW5kbGVyPjo6cmVsZWFzZUJ1ZmZlcigpCiAgICAgICAgIG1lbWNweShidWZmZXIuZ2V0KCksIGRh
dGEoKSwgYnl0ZXMpOwogICAgIH0KICAgICBtX3NpemUgPSAwOworI2lmIERVTVBfVkVDVE9SX1NU
QVRTCisgICAgVmVjdG9yU3RhdHM6OnZlY3RvclVwZGF0ZWQodGhpcywgY2FwYWNpdHkoKSwgbV9z
aXplKTsKKyNlbmRpZgogICAgIHJldHVybiBidWZmZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWluRWZsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWluRWZsLmNwcAppbmRleCA3YWNjOGVj
Li5iODk0MGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2VmbC9XZWJQ
cm9jZXNzTWFpbkVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9lZmwvV2Vi
UHJvY2Vzc01haW5FZmwuY3BwCkBAIC0xMjUsNiArMTI1LDggQEAgV0tfRVhQT1JUIGludCBXZWJQ
cm9jZXNzTWFpbkVmbChpbnQgYXJnYywgY2hhciogYXJndltdKQogCiAgICAgUnVuTG9vcDo6cnVu
KCk7CiAKKyAgICBXVEY6OlZlY3RvclN0YXRzOjpkdW1wVmVjdG9yU3RhdHMoKTsKKwogICAgIGlm
IChTb3VwQ2FjaGUqIHNvdXBDYWNoZSA9IFNvdXBOZXR3b3JrU2Vzc2lvbjo6ZGVmYXVsdFNlc3Np
b24oKS5jYWNoZSgpKSB7CiAgICAgICAgIHNvdXBfY2FjaGVfZmx1c2goc291cENhY2hlKTsKICAg
ICAgICAgc291cF9jYWNoZV9kdW1wKHNvdXBDYWNoZSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>