<?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>203942</bug_id>
          
          <creation_ts>2019-11-06 21:56:52 -0800</creation_ts>
          <short_desc>Remove remnants of support code for an upwards growing stack.</short_desc>
          <delta_ts>2019-11-06 23:29:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1588111</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-11-06 21:56:52 -0800</bug_when>
    <thetext>We haven&apos;t supported an upwards growing stack in years, and a lot of code has since been written specifically with only a downwards growing stack in mind (e.g. the LLInt, the JITs).  Also, all our currently supported platforms use a downward growing stack.

We should remove the remnants of support code for an upwards growing stack.  The presence of that code is deceptive in that it conveys support for an upwards growing stack where this hasn&apos;t been the case in years.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588113</commentid>
    <comment_count>1</comment_count>
      <attachid>383022</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-11-06 22:02:11 -0800</bug_when>
    <thetext>Created attachment 383022
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588116</commentid>
    <comment_count>2</comment_count>
      <attachid>383022</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-11-06 22:10:11 -0800</bug_when>
    <thetext>Comment on attachment 383022
proposed patch.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588117</commentid>
    <comment_count>3</comment_count>
      <attachid>383022</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-11-06 22:21:49 -0800</bug_when>
    <thetext>Comment on attachment 383022
proposed patch.

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

Thanks for the review.

&gt; Source/WTF/wtf/StackBounds.h:113
&gt; +        ASSERT(m_bound &lt;= m_origin);

This one is redundant from a partial edit.  I opted to go with the private isGrowingDownwards() methods instead because it documents at a glance what we&apos;re asserting here.  I&apos;ll remove this redundant line before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588128</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-11-06 23:28:27 -0800</bug_when>
    <thetext>Landed in r252177: &lt;http://trac.webkit.org/r252177&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588129</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-06 23:29:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/56973526&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383022</attachid>
            <date>2019-11-06 22:02:11 -0800</date>
            <delta_ts>2019-11-06 22:10:11 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-203942.patch</filename>
            <type>text/plain</type>
            <size>18630</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjUyMTczKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBA
CisyMDE5LTExLTA2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZW1vdmUgcmVtbmFudHMgb2Ygc3VwcG9ydCBjb2RlIGZvciBhbiB1cHdhcmRzIGdyb3dpbmcgc3Rh
Y2suCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM5
NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHJ1
bnRpbWUvVk0uY3BwOgorICAgICAgICAoSlNDOjpWTTo6dXBkYXRlU3RhY2tMaW1pdHMpOgorICAg
ICAgICAoSlNDOjpWTTo6Y29tbWl0dGVkU3RhY2tCeXRlQ291bnQpOgorICAgICAgICAqIHJ1bnRp
bWUvVk0uaDoKKyAgICAgICAgKEpTQzo6Vk06OmlzU2FmZVRvUmVjdXJzZSBjb25zdCk6CisgICAg
ICAgICogcnVudGltZS9WTUVudHJ5U2NvcGUuY3BwOgorICAgICAgICAoSlNDOjpWTUVudHJ5U2Nv
cGU6OlZNRW50cnlTY29wZSk6CisgICAgICAgICogcnVudGltZS9WTUlubGluZXMuaDoKKyAgICAg
ICAgKEpTQzo6Vk06OmVuc3VyZVN0YWNrQ2FwYWNpdHlGb3IpOgorICAgICAgICAqIHlhcnIvWWFy
clBhdHRlcm4uY3BwOgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJyUGF0dGVybkNvbnN0cnVjdG9y
Ojppc1NhZmVUb1JlY3Vyc2UgY29uc3QpOgorCiAyMDE5LTExLTA2ICBUYWRldSBaYWdhbGxvICA8
dHphZ2FsbG9AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJBc3NlbWJseV0gQkJRUGxhbiBzaG91
bGQgcmV0YWluIFdhc206OkNvZGVCbG9jayB3aGVuIGNvbXBpbGluZyBhIHNpbmdsZSBmdW5jdGlv
bgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAkocmV2aXNpb24gMjUyMTY1
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC04OTYsNyArODk2LDYgQEAgaW5saW5lIHZvaWQgVk06OnVwZGF0ZVN0YWNrTGltaXRzKCkK
ICAgICBSRUxFQVNFX0FTU0VSVChyZXNlcnZlZFpvbmVTaXplID49IG1pbmltdW1SZXNlcnZlZFpv
bmVTaXplKTsKIAogICAgIGlmIChtX3N0YWNrUG9pbnRlckF0Vk1FbnRyeSkgewotICAgICAgICBB
U1NFUlQoc3RhY2suaXNHcm93aW5nRG93bndhcmQoKSk7CiAgICAgICAgIGNoYXIqIHN0YXJ0T2ZT
dGFjayA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fc3RhY2tQb2ludGVyQXRWTUVudHJ5KTsK
ICAgICAgICAgbV9zb2Z0U3RhY2tMaW1pdCA9IHN0YWNrLnJlY3Vyc2lvbkxpbWl0KHN0YXJ0T2ZT
dGFjaywgT3B0aW9uczo6bWF4UGVyVGhyZWFkU3RhY2tVc2FnZSgpLCBtX2N1cnJlbnRTb2Z0UmVz
ZXJ2ZWRab25lU2l6ZSk7CiAgICAgICAgIG1fc3RhY2tMaW1pdCA9IHN0YWNrLnJlY3Vyc2lvbkxp
bWl0KHN0YXJ0T2ZTdGFjaywgT3B0aW9uczo6bWF4UGVyVGhyZWFkU3RhY2tVc2FnZSgpLCByZXNl
cnZlZFpvbmVTaXplKTsKQEAgLTExNzAsNyArMTE2OSw2IEBAIHNpemVfdCBWTTo6Y29tbWl0dGVk
U3RhY2tCeXRlQ291bnQoKQogI2lmICFFTkFCTEUoQ19MT09QKQogICAgIC8vIFdoZW4gdXNpbmcg
dGhlIEMgc3RhY2ssIHdlIGRvbid0IGtub3cgaG93IG1hbnkgc3RhY2sgcGFnZXMgYXJlIGFjdHVh
bGx5CiAgICAgLy8gY29tbWl0dGVkLiBTbywgd2UgdXNlIHRoZSBjdXJyZW50IHN0YWNrIHVzYWdl
IGFzIGFuIGVzdGltYXRlLgotICAgIEFTU0VSVChUaHJlYWQ6OmN1cnJlbnQoKS5zdGFjaygpLmlz
R3Jvd2luZ0Rvd253YXJkKCkpOwogICAgIHVpbnQ4X3QqIGN1cnJlbnQgPSBiaXR3aXNlX2Nhc3Q8
dWludDhfdCo+KGN1cnJlbnRTdGFja1BvaW50ZXIoKSk7CiAgICAgdWludDhfdCogaGlnaCA9IGJp
dHdpc2VfY2FzdDx1aW50OF90Kj4oVGhyZWFkOjpjdXJyZW50KCkuc3RhY2soKS5vcmlnaW4oKSk7
CiAgICAgcmV0dXJuIGhpZ2ggLSBjdXJyZW50OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVk0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTS5oCShyZXZpc2lvbiAyNTIxNjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTS5oCSh3b3JraW5nIGNvcHkpCkBAIC05NzMsNyArOTczLDYgQEAgcHJpdmF0ZToKIAogICAg
IGJvb2wgaXNTYWZlVG9SZWN1cnNlKHZvaWQqIHN0YWNrTGltaXQpIGNvbnN0CiAgICAgewotICAg
ICAgICBBU1NFUlQoVGhyZWFkOjpjdXJyZW50KCkuc3RhY2soKS5pc0dyb3dpbmdEb3dud2FyZCgp
KTsKICAgICAgICAgdm9pZCogY3VyciA9IGN1cnJlbnRTdGFja1BvaW50ZXIoKTsKICAgICAgICAg
cmV0dXJuIGN1cnIgPj0gc3RhY2tMaW1pdDsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTUVudHJ5U2NvcGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1ZNRW50cnlTY29wZS5jcHAJKHJldmlzaW9uIDI1MjE2NSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNRW50cnlTY29wZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQyLDcgKzQyLDYgQEAgVk1FbnRyeVNjb3BlOjpWTUVudHJ5U2NvcGUoVk0mIHZt
LCBKU0dsbwogICAgICwgbV9nbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0KQogewogICAgIEFTU0VS
VCghRGlzYWxsb3dWTVJlZW50cnk6OmlzSW5FZmZlY3RPbkN1cnJlbnRUaHJlYWQoKSk7Ci0gICAg
QVNTRVJUKFRocmVhZDo6Y3VycmVudCgpLnN0YWNrKCkuaXNHcm93aW5nRG93bndhcmQoKSk7CiAg
ICAgaWYgKCF2bS5lbnRyeVNjb3BlKSB7CiAgICAgICAgIHZtLmVudHJ5U2NvcGUgPSB0aGlzOwog
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTUlubGluZXMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTUlubGluZXMuaAkocmV2aXNp
b24gMjUyMTY1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1JbmxpbmVzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiBib29sIFZN
OjplbnN1cmVTdGFja0NhcGFjaXR5Rm9yKFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrKQogewogI2lm
ICFFTkFCTEUoQ19MT09QKQotICAgIEFTU0VSVChUaHJlYWQ6OmN1cnJlbnQoKS5zdGFjaygpLmlz
R3Jvd2luZ0Rvd253YXJkKCkpOwogICAgIHJldHVybiBuZXdUb3BPZlN0YWNrID49IG1fc29mdFN0
YWNrTGltaXQ7CiAjZWxzZQogICAgIHJldHVybiBlbnN1cmVTdGFja0NhcGFjaXR5Rm9yQ0xvb3Ao
bmV3VG9wT2ZTdGFjayk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGF0
dGVybi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBh
dHRlcm4uY3BwCShyZXZpc2lvbiAyNTIxNjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFy
ci9ZYXJyUGF0dGVybi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMjIsNyArMTEyMiw2IEBAIHBy
aXZhdGU6CiAgICAgewogICAgICAgICBpZiAoIW1fc3RhY2tMaW1pdCkKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgICAgICBBU1NFUlQoVGhyZWFkOjpjdXJyZW50KCkuc3RhY2soKS5pc0dy
b3dpbmdEb3dud2FyZCgpKTsKICAgICAgICAgaW50OF90KiBjdXJyID0gcmVpbnRlcnByZXRfY2Fz
dDxpbnQ4X3QqPihjdXJyZW50U3RhY2tQb2ludGVyKCkpOwogICAgICAgICBpbnQ4X3QqIGxpbWl0
ID0gcmVpbnRlcnByZXRfY2FzdDxpbnQ4X3QqPihtX3N0YWNrTGltaXQpOwogICAgICAgICByZXR1
cm4gY3VyciA+PSBsaW1pdDsKSW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTIxNjUpCisrKyBTb3VyY2UvV1RG
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDE5LTExLTA2ICBN
YXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgcmVtbmFudHMg
b2Ygc3VwcG9ydCBjb2RlIGZvciBhbiB1cHdhcmRzIGdyb3dpbmcgc3RhY2suCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM5NDIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBoYXZlbid0IHN1cHBvcnRl
ZCBhbiB1cHdhcmRzIGdyb3dpbmcgc3RhY2sgaW4geWVhcnMsIGFuZCBhIGxvdCBvZiBjb2RlIGhh
cworICAgICAgICBzaW5jZSBiZWVuIHdyaXR0ZW4gc3BlY2lmaWNhbGx5IHdpdGggb25seSBhIGRv
d253YXJkcyBncm93aW5nIHN0YWNrIGluIG1pbmQgKGUuZy4KKyAgICAgICAgdGhlIExMSW50LCB0
aGUgSklUcykuICBBbHNvLCBhbGwgb3VyIGN1cnJlbnRseSBzdXBwb3J0ZWQgcGxhdGZvcm1zIHVz
ZSBhIGRvd253YXJkCisgICAgICAgIGdyb3dpbmcgc3RhY2suCisKKyAgICAgICAgV2Ugc2hvdWxk
IHJlbW92ZSB0aGUgcmVtbmFudHMgb2Ygc3VwcG9ydCBjb2RlIGZvciBhbiB1cHdhcmRzIGdyb3dp
bmcgc3RhY2suICBUaGUKKyAgICAgICAgcHJlc2VuY2Ugb2YgdGhhdCBjb2RlIGlzIGRlY2VwdGl2
ZSBpbiB0aGF0IGl0IGNvbnZleXMgc3VwcG9ydCBmb3IgYW4gdXB3YXJkcworICAgICAgICBncm93
aW5nIHN0YWNrIHdoZXJlIHRoaXMgaGFzbid0IGJlZW4gdGhlIGNhc2UgaW4geWVhcnMuCisKKyAg
ICAgICAgKiB3dGYvU3RhY2tCb3VuZHMuY3BwOgorICAgICAgICAoV1RGOjpTdGFja0JvdW5kczo6
bmV3VGhyZWFkU3RhY2tCb3VuZHMpOgorICAgICAgICAoV1RGOjpTdGFja0JvdW5kczo6Y3VycmVu
dFRocmVhZFN0YWNrQm91bmRzSW50ZXJuYWwpOgorICAgICAgICAoV1RGOjpTdGFja0JvdW5kczo6
c3RhY2tEaXJlY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoV1RGOjp0ZXN0U3RhY2tEaXJlY3Rp
b24yKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6dGVzdFN0YWNrRGlyZWN0aW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKiB3dGYvU3RhY2tCb3VuZHMuaDoKKyAgICAgICAgKFdURjo6U3RhY2tCb3Vu
ZHM6OnNpemUgY29uc3QpOgorICAgICAgICAoV1RGOjpTdGFja0JvdW5kczo6Y29udGFpbnMgY29u
c3QpOgorICAgICAgICAoV1RGOjpTdGFja0JvdW5kczo6cmVjdXJzaW9uTGltaXQgY29uc3QpOgor
ICAgICAgICAoV1RGOjpTdGFja0JvdW5kczo6U3RhY2tCb3VuZHMpOgorICAgICAgICAoV1RGOjpT
dGFja0JvdW5kczo6aXNHcm93aW5nRG93bndhcmRzIGNvbnN0KToKKyAgICAgICAgKFdURjo6U3Rh
Y2tCb3VuZHM6OmNoZWNrQ29uc2lzdGVuY3kgY29uc3QpOgorICAgICAgICAoV1RGOjpTdGFja0Jv
dW5kczo6aXNHcm93aW5nRG93bndhcmQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHd0Zi9T
dGFja1N0YXRzLmNwcDoKKyAgICAgICAgKFdURjo6U3RhY2tTdGF0czo6Q2hlY2tQb2ludDo6Q2hl
Y2tQb2ludCk6CisgICAgICAgIChXVEY6OlN0YWNrU3RhdHM6OkNoZWNrUG9pbnQ6On5DaGVja1Bv
aW50KToKKyAgICAgICAgKFdURjo6U3RhY2tTdGF0czo6cHJvYmUpOgorICAgICAgICAoV1RGOjpT
dGFja1N0YXRzOjpMYXlvdXRDaGVja1BvaW50OjpMYXlvdXRDaGVja1BvaW50KToKKwogMjAxOS0x
MS0wNSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgV1RGOjpSdW5M
b29wIHNob3VsZCBub3QgZGVwZW5kIG9uIGlzTWFpblRocmVhZCgpIGlkaW9tLgpJbmRleDogU291
cmNlL1dURi93dGYvU3RhY2tCb3VuZHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3Rm
L1N0YWNrQm91bmRzLmNwcAkocmV2aXNpb24gMjUyMTY1KQorKysgU291cmNlL1dURi93dGYvU3Rh
Y2tCb3VuZHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqICBDb3B5
cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwMy0yMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDcgRXJp
YyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNDUsNDIgKzQ1LDEw
IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi0jaWYgQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwg
Q1BVKEFSTSkgfHwgQ1BVKEFSTTY0KSB8fCBDUFUoTUlQUykKLUFMV0FZU19JTkxJTkUgU3RhY2tC
b3VuZHM6OlN0YWNrRGlyZWN0aW9uIFN0YWNrQm91bmRzOjpzdGFja0RpcmVjdGlvbigpCi17Ci0g
ICAgcmV0dXJuIFN0YWNrRGlyZWN0aW9uOjpEb3dud2FyZDsKLX0KLSNlbHNlCi1zdGF0aWMgTkVW
RVJfSU5MSU5FIE5PVF9UQUlMX0NBTExFRCBTdGFja0JvdW5kczo6U3RhY2tEaXJlY3Rpb24gdGVz
dFN0YWNrRGlyZWN0aW9uMih2b2xhdGlsZSBjb25zdCB1aW50OF90KiBwb2ludGVyKQotewotICAg
IHZvbGF0aWxlIHVpbnQ4X3QqIHN0YWNrVmFsdWUgPSBiaXR3aXNlX2Nhc3Q8dWludDhfdCo+KGN1
cnJlbnRTdGFja1BvaW50ZXIoKSk7Ci0gICAgcmV0dXJuIChwb2ludGVyIDwgc3RhY2tWYWx1ZSkg
PyBTdGFja0JvdW5kczo6U3RhY2tEaXJlY3Rpb246OlVwd2FyZCA6IFN0YWNrQm91bmRzOjpTdGFj
a0RpcmVjdGlvbjo6RG93bndhcmQ7Ci19Ci0KLXN0YXRpYyBORVZFUl9JTkxJTkUgTk9UX1RBSUxf
Q0FMTEVEIFN0YWNrQm91bmRzOjpTdGFja0RpcmVjdGlvbiB0ZXN0U3RhY2tEaXJlY3Rpb24oKQot
ewotICAgIE5PX1RBSUxfQ0FMTFMoKTsKLSAgICB2b2xhdGlsZSB1aW50OF90KiBzdGFja1ZhbHVl
ID0gYml0d2lzZV9jYXN0PHVpbnQ4X3QqPihjdXJyZW50U3RhY2tQb2ludGVyKCkpOwotICAgIHJl
dHVybiB0ZXN0U3RhY2tEaXJlY3Rpb24yKHN0YWNrVmFsdWUpOwotfQotCi1ORVZFUl9JTkxJTkUg
U3RhY2tCb3VuZHM6OlN0YWNrRGlyZWN0aW9uIFN0YWNrQm91bmRzOjpzdGFja0RpcmVjdGlvbigp
Ci17Ci0gICAgc3RhdGljIFN0YWNrQm91bmRzOjpTdGFja0RpcmVjdGlvbiByZXN1bHQgPSBTdGFj
a0JvdW5kczo6U3RhY2tEaXJlY3Rpb246OkRvd253YXJkOwotICAgIHN0YXRpYyBzdGQ6Om9uY2Vf
ZmxhZyBvbmNlS2V5OwotICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VLZXksIFtdIHsKLSAgICAgICAg
Tk9fVEFJTF9DQUxMUygpOwotICAgICAgICByZXN1bHQgPSB0ZXN0U3RhY2tEaXJlY3Rpb24oKTsK
LSAgICB9KTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotI2VuZGlmCi0KICNpZiBPUyhEQVJXSU4p
CiAKIFN0YWNrQm91bmRzIFN0YWNrQm91bmRzOjpuZXdUaHJlYWRTdGFja0JvdW5kcyhQbGF0Zm9y
bVRocmVhZEhhbmRsZSB0aHJlYWQpCiB7Ci0gICAgQVNTRVJUKHN0YWNrRGlyZWN0aW9uKCkgPT0g
U3RhY2tEaXJlY3Rpb246OkRvd253YXJkKTsKICAgICB2b2lkKiBvcmlnaW4gPSBwdGhyZWFkX2dl
dF9zdGFja2FkZHJfbnAodGhyZWFkKTsKICAgICBybGltX3Qgc2l6ZSA9IHB0aHJlYWRfZ2V0X3N0
YWNrc2l6ZV9ucCh0aHJlYWQpOwogICAgIHZvaWQqIGJvdW5kID0gc3RhdGljX2Nhc3Q8Y2hhcio+
KG9yaWdpbikgLSBzaXplOwpAQCAtODksNyArNTcsNiBAQCBTdGFja0JvdW5kcyBTdGFja0JvdW5k
czo6bmV3VGhyZWFkU3RhY2tCCiAKIFN0YWNrQm91bmRzIFN0YWNrQm91bmRzOjpjdXJyZW50VGhy
ZWFkU3RhY2tCb3VuZHNJbnRlcm5hbCgpCiB7Ci0gICAgQVNTRVJUKHN0YWNrRGlyZWN0aW9uKCkg
PT0gU3RhY2tEaXJlY3Rpb246OkRvd253YXJkKTsKICAgICBpZiAocHRocmVhZF9tYWluX25wKCkp
IHsKICAgICAgICAgLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS8xMzc0MTIwND4KICAgICAgICAg
Ly8gcHRocmVhZF9nZXRfc2l6ZSBsaWVzIHRvIHVzIHdoZW4gd2UncmUgdGhlIG1haW4gdGhyZWFk
LCB1c2UgZ2V0X3JsaW1pdCBpbnN0ZWFkCkBAIC0xMTIsMTEgKzc5LDcgQEAgU3RhY2tCb3VuZHMg
U3RhY2tCb3VuZHM6Om5ld1RocmVhZFN0YWNrQgogICAgIHN0YWNrX3Qgc3RhY2s7CiAgICAgcHRo
cmVhZF9zdGFja3NlZ19ucCh0aHJlYWQsICZzdGFjayk7CiAgICAgdm9pZCogb3JpZ2luID0gc3Rh
Y2suc3Nfc3A7Ci0gICAgdm9pZCogYm91bmQgPSBudWxscHRyOwotICAgIGlmIChzdGFja0RpcmVj
dGlvbigpID09IFN0YWNrRGlyZWN0aW9uOjpVcHdhcmQpCi0gICAgICAgIGJvdW5kID0gc3RhdGlj
X2Nhc3Q8Y2hhcio+KG9yaWdpbikgKyBzdGFjay5zc19zaXplOwotICAgIGVsc2UKLSAgICAgICAg
Ym91bmQgPSBzdGF0aWNfY2FzdDxjaGFyKj4ob3JpZ2luKSAtIHN0YWNrLnNzX3NpemU7CisgICAg
dm9pZCogYm91bmQgPSBzdGF0aWNfY2FzdDxjaGFyKj4ob3JpZ2luKSAtIHN0YWNrLnNzX3NpemU7
CiAgICAgcmV0dXJuIFN0YWNrQm91bmRzIHsgb3JpZ2luLCBib3VuZCB9OwogfQogCkBAIC0xNDIs
MTAgKzEwNSw2IEBAIFN0YWNrQm91bmRzIFN0YWNrQm91bmRzOjpuZXdUaHJlYWRTdGFja0IKICAg
ICBwdGhyZWFkX2F0dHJfZGVzdHJveSgmc2F0dHIpOwogICAgIHZvaWQqIG9yaWdpbiA9IHN0YXRp
Y19jYXN0PGNoYXIqPihib3VuZCkgKyBzdGFja1NpemU7CiAgICAgLy8gcHRocmVhZF9hdHRyX2dl
dHN0YWNrJ3MgYm91bmQgaXMgdGhlIGxvd2VzdCBhY2Nlc3NpYmxlIHBvaW50ZXIgb2YgdGhlIHN0
YWNrLgotICAgIC8vIElmIHN0YWNrIGdyb3dzIHVwLCBvcmlnaW4gYW5kIGJvdW5kIGluIHRoaXMg
Y29kZSBzaG91bGQgYmUgc3dhcHBlZC4KLSAgICBpZiAoc3RhY2tEaXJlY3Rpb24oKSA9PSBTdGFj
a0RpcmVjdGlvbjo6VXB3YXJkKQotICAgICAgICBzdGQ6OnN3YXAob3JpZ2luLCBib3VuZCk7Ci0K
ICAgICByZXR1cm4gU3RhY2tCb3VuZHMgeyBvcmlnaW4sIGJvdW5kIH07CiB9CiAKQEAgLTE2MCw3
ICsxMTksNiBAQCBTdGFja0JvdW5kcyBTdGFja0JvdW5kczo6Y3VycmVudFRocmVhZFN0CiAKIFN0
YWNrQm91bmRzIFN0YWNrQm91bmRzOjpjdXJyZW50VGhyZWFkU3RhY2tCb3VuZHNJbnRlcm5hbCgp
CiB7Ci0gICAgQVNTRVJUKHN0YWNrRGlyZWN0aW9uKCkgPT0gU3RhY2tEaXJlY3Rpb246OkRvd253
YXJkKTsKICAgICBNRU1PUllfQkFTSUNfSU5GT1JNQVRJT04gc3RhY2tPcmlnaW4geyB9OwogICAg
IFZpcnR1YWxRdWVyeSgmc3RhY2tPcmlnaW4sICZzdGFja09yaWdpbiwgc2l6ZW9mKHN0YWNrT3Jp
Z2luKSk7CiAgICAgLy8gc3RhY2tPcmlnaW4uQWxsb2NhdGlvbkJhc2UgcG9pbnRzIHRvIHRoZSBy
ZXNlcnZlZCBzdGFjayBtZW1vcnkgYmFzZSBhZGRyZXNzLgpJbmRleDogU291cmNlL1dURi93dGYv
U3RhY2tCb3VuZHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9TdGFja0JvdW5kcy5o
CShyZXZpc2lvbiAyNTIxNjUpCisrKyBTb3VyY2UvV1RGL3d0Zi9TdGFja0JvdW5kcy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE3
IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0y
MDE5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtNDMsOCArNDMsNiBAQCBjbGFzcyBTdGFja0JvdW5kcyB7CiAgICAgc3Rh
dGljIGNvbnN0ZXhwciBzaXplX3Qgc19kZWZhdWx0QXZhaWxhYmlsaXR5RGVsdGEgPSA2NCAqIDEw
MjQ7CiAKIHB1YmxpYzoKLSAgICBlbnVtIGNsYXNzIFN0YWNrRGlyZWN0aW9uIHsgVXB3YXJkLCBE
b3dud2FyZCB9OwotCiAgICAgc3RhdGljIGNvbnN0ZXhwciBTdGFja0JvdW5kcyBlbXB0eUJvdW5k
cygpIHsgcmV0dXJuIFN0YWNrQm91bmRzKCk7IH0KIAogI2lmIEhBVkUoU1RBQ0tfQk9VTkRTX0ZP
Ul9ORVdfVEhSRUFEKQpAQCAtNzIsOSArNzAsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgc2l6ZV90
IHNpemUoKSBjb25zdAogICAgIHsKLSAgICAgICAgaWYgKGlzR3Jvd2luZ0Rvd253YXJkKCkpCi0g
ICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y2hhcio+KG1fb3JpZ2luKSAtIHN0YXRpY19j
YXN0PGNoYXIqPihtX2JvdW5kKTsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNoYXIqPiht
X2JvdW5kKSAtIHN0YXRpY19jYXN0PGNoYXIqPihtX29yaWdpbik7CisgICAgICAgIHJldHVybiBz
dGF0aWNfY2FzdDxjaGFyKj4obV9vcmlnaW4pIC0gc3RhdGljX2Nhc3Q8Y2hhcio+KG1fYm91bmQp
OwogICAgIH0KIAogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFtX29yaWdpbjsg
fQpAQCAtODMsMTcgKzc5LDEzIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIGlmIChpc0VtcHR5
KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmIChpc0dyb3dpbmdEb3du
d2FyZCgpKQotICAgICAgICAgICAgcmV0dXJuIChtX29yaWdpbiA+PSBwKSAmJiAocCA+IG1fYm91
bmQpOwotICAgICAgICByZXR1cm4gKG1fYm91bmQgPiBwKSAmJiAocCA+PSBtX29yaWdpbik7Cisg
ICAgICAgIHJldHVybiAobV9vcmlnaW4gPj0gcCkgJiYgKHAgPiBtX2JvdW5kKTsKICAgICB9CiAK
ICAgICB2b2lkKiByZWN1cnNpb25MaW1pdChzaXplX3QgbWluQXZhaWxhYmxlRGVsdGEgPSBzX2Rl
ZmF1bHRBdmFpbGFiaWxpdHlEZWx0YSkgY29uc3QKICAgICB7CiAgICAgICAgIGNoZWNrQ29uc2lz
dGVuY3koKTsKLSAgICAgICAgaWYgKGlzR3Jvd2luZ0Rvd253YXJkKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Y2hhcio+KG1fYm91bmQpICsgbWluQXZhaWxhYmxlRGVsdGE7Ci0g
ICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxjaGFyKj4obV9ib3VuZCkgLSBtaW5BdmFpbGFibGVE
ZWx0YTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNoYXIqPihtX2JvdW5kKSArIG1pbkF2
YWlsYWJsZURlbHRhOwogICAgIH0KIAogICAgIHZvaWQqIHJlY3Vyc2lvbkxpbWl0KGNoYXIqIHN0
YXJ0T2ZVc2VyU3RhY2ssIHNpemVfdCBtYXhVc2VyU3RhY2ssIHNpemVfdCByZXNlcnZlZFpvbmVT
aXplKSBjb25zdApAQCAtMTAzLDI5ICs5NSwxMyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXNl
cnZlZFpvbmVTaXplID0gbWF4VXNlclN0YWNrOwogICAgICAgICBzaXplX3QgbWF4VXNlclN0YWNr
V2l0aFJlc2VydmVkWm9uZSA9IG1heFVzZXJTdGFjayAtIHJlc2VydmVkWm9uZVNpemU7CiAKLSAg
ICAgICAgaWYgKGlzR3Jvd2luZ0Rvd253YXJkKCkpIHsKLSAgICAgICAgICAgIGNoYXIqIGVuZE9m
U3RhY2tXaXRoUmVzZXJ2ZWRab25lID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9ib3VuZCkg
KyByZXNlcnZlZFpvbmVTaXplOwotICAgICAgICAgICAgaWYgKHN0YXJ0T2ZVc2VyU3RhY2sgPCBl
bmRPZlN0YWNrV2l0aFJlc2VydmVkWm9uZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZW5kT2ZT
dGFja1dpdGhSZXNlcnZlZFpvbmU7Ci0gICAgICAgICAgICBzaXplX3QgYXZhaWxhYmxlVXNlclN0
YWNrID0gc3RhcnRPZlVzZXJTdGFjayAtIGVuZE9mU3RhY2tXaXRoUmVzZXJ2ZWRab25lOwotICAg
ICAgICAgICAgaWYgKG1heFVzZXJTdGFja1dpdGhSZXNlcnZlZFpvbmUgPiBhdmFpbGFibGVVc2Vy
U3RhY2spCi0gICAgICAgICAgICAgICAgbWF4VXNlclN0YWNrV2l0aFJlc2VydmVkWm9uZSA9IGF2
YWlsYWJsZVVzZXJTdGFjazsKLSAgICAgICAgICAgIHJldHVybiBzdGFydE9mVXNlclN0YWNrIC0g
bWF4VXNlclN0YWNrV2l0aFJlc2VydmVkWm9uZTsKLSAgICAgICAgfQotCi0gICAgICAgIGNoYXIq
IGVuZE9mU3RhY2tXaXRoUmVzZXJ2ZWRab25lID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9i
b3VuZCkgLSByZXNlcnZlZFpvbmVTaXplOwotICAgICAgICBpZiAoc3RhcnRPZlVzZXJTdGFjayA+
IGVuZE9mU3RhY2tXaXRoUmVzZXJ2ZWRab25lKQorICAgICAgICBjaGFyKiBlbmRPZlN0YWNrV2l0
aFJlc2VydmVkWm9uZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fYm91bmQpICsgcmVzZXJ2
ZWRab25lU2l6ZTsKKyAgICAgICAgaWYgKHN0YXJ0T2ZVc2VyU3RhY2sgPCBlbmRPZlN0YWNrV2l0
aFJlc2VydmVkWm9uZSkKICAgICAgICAgICAgIHJldHVybiBlbmRPZlN0YWNrV2l0aFJlc2VydmVk
Wm9uZTsKLSAgICAgICAgc2l6ZV90IGF2YWlsYWJsZVVzZXJTdGFjayA9IGVuZE9mU3RhY2tXaXRo
UmVzZXJ2ZWRab25lIC0gc3RhcnRPZlVzZXJTdGFjazsKKyAgICAgICAgc2l6ZV90IGF2YWlsYWJs
ZVVzZXJTdGFjayA9IHN0YXJ0T2ZVc2VyU3RhY2sgLSBlbmRPZlN0YWNrV2l0aFJlc2VydmVkWm9u
ZTsKICAgICAgICAgaWYgKG1heFVzZXJTdGFja1dpdGhSZXNlcnZlZFpvbmUgPiBhdmFpbGFibGVV
c2VyU3RhY2spCiAgICAgICAgICAgICBtYXhVc2VyU3RhY2tXaXRoUmVzZXJ2ZWRab25lID0gYXZh
aWxhYmxlVXNlclN0YWNrOwotICAgICAgICByZXR1cm4gc3RhcnRPZlVzZXJTdGFjayArIG1heFVz
ZXJTdGFja1dpdGhSZXNlcnZlZFpvbmU7Ci0gICAgfQotCi0gICAgYm9vbCBpc0dyb3dpbmdEb3du
d2FyZCgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV9vcmlnaW4gJiYgbV9ib3VuZCk7
Ci0gICAgICAgIHJldHVybiBtX2JvdW5kIDw9IG1fb3JpZ2luOworICAgICAgICByZXR1cm4gc3Rh
cnRPZlVzZXJTdGFjayAtIG1heFVzZXJTdGFja1dpdGhSZXNlcnZlZFpvbmU7CiAgICAgfQogCiBw
cml2YXRlOgpAQCAtMTMzLDYgKzEwOSw4IEBAIHByaXZhdGU6CiAgICAgICAgIDogbV9vcmlnaW4o
b3JpZ2luKQogICAgICAgICAsIG1fYm91bmQoZW5kKQogICAgIHsKKyAgICAgICAgQVNTRVJUKGlz
R3Jvd2luZ0Rvd253YXJkcygpKTsKKyAgICAgICAgQVNTRVJUKG1fYm91bmQgPD0gbV9vcmlnaW4p
OwogICAgIH0KIAogICAgIGNvbnN0ZXhwciBTdGFja0JvdW5kcygpCkBAIC0xNDEsNyArMTE5LDEx
IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIHN0YXRpYyBTdGFja0RpcmVjdGlvbiBz
dGFja0RpcmVjdGlvbigpOworICAgIGlubGluZSBib29sIGlzR3Jvd2luZ0Rvd253YXJkcygpIGNv
bnN0CisgICAgeworICAgICAgICBBU1NFUlQobV9vcmlnaW4gJiYgbV9ib3VuZCk7CisgICAgICAg
IHJldHVybiBtX2JvdW5kIDw9IG1fb3JpZ2luOworICAgIH0KIAogICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBzdGF0aWMgU3RhY2tCb3VuZHMgY3VycmVudFRocmVhZFN0YWNrQm91bmRzSW50ZXJuYWwo
KTsKIApAQCAtMTUwLDkgKzEzMiw3IEBAIHByaXZhdGU6CiAjaWYgIUFTU0VSVF9ESVNBQkxFRAog
ICAgICAgICB2b2lkKiBjdXJyZW50UG9zaXRpb24gPSBjdXJyZW50U3RhY2tQb2ludGVyKCk7CiAg
ICAgICAgIEFTU0VSVChtX29yaWdpbiAhPSBtX2JvdW5kKTsKLSAgICAgICAgQVNTRVJUKGlzR3Jv
d2luZ0Rvd253YXJkKCkKLSAgICAgICAgICAgID8gKGN1cnJlbnRQb3NpdGlvbiA8IG1fb3JpZ2lu
ICYmIGN1cnJlbnRQb3NpdGlvbiA+IG1fYm91bmQpCi0gICAgICAgICAgICA6IChjdXJyZW50UG9z
aXRpb24gPiBtX29yaWdpbiAmJiBjdXJyZW50UG9zaXRpb24gPCBtX2JvdW5kKSk7CisgICAgICAg
IEFTU0VSVChjdXJyZW50UG9zaXRpb24gPCBtX29yaWdpbiAmJiBjdXJyZW50UG9zaXRpb24gPiBt
X2JvdW5kKTsKICNlbmRpZgogICAgIH0KIApJbmRleDogU291cmNlL1dURi93dGYvU3RhY2tTdGF0
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvU3RhY2tTdGF0cy5jcHAJKHJldmlz
aW9uIDI1MjE2NSkKKysrIFNvdXJjZS9XVEYvd3RmL1N0YWNrU3RhdHMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTczLDcgKzczLDYgQEAgU3RhY2tTdGF0czo6Q2hlY2tQb2ludDo6Q2hlY2tQb2ludCgpCiAg
ICAgU3RhY2tTdGF0czo6UGVyVGhyZWFkU3RhdHMmIHQgPSB0aHJlYWQuc3RhY2tTdGF0cygpOwog
ICAgIGNvbnN0IFN0YWNrQm91bmRzJiBzdGFjayA9IHRocmVhZC5zdGFjaygpOwogCi0gICAgYm9v
bCBpc0dyb3dpbmdEb3dud2FyZCA9IHN0YWNrLmlzR3Jvd2luZ0Rvd253YXJkKCk7CiAgICAgYm9v
bCBuZWVkVG9Mb2cgPSBmYWxzZTsKICAgICBjaGFyKiBjdXJyZW50ID0gcmVpbnRlcnByZXRfY2Fz
dDxjaGFyKj4odGhpcyk7CiAgICAgY2hhciogbGFzdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+
KHQubV9jdXJyZW50Q2hlY2tQb2ludCk7CkBAIC05MSw4ICs5MCw2IEBAIFN0YWNrU3RhdHM6OkNo
ZWNrUG9pbnQ6OkNoZWNrUG9pbnQoKQogCiAgICAgLy8gVXBkYXRlIHRoZSBzdGFjayBoZWlnaHQg
c3RhdHM6CiAgICAgaW50IGhlaWdodCA9IHQubV9zdGFja1N0YXJ0IC0gY3VycmVudDsKLSAgICBp
ZiAoIWlzR3Jvd2luZ0Rvd253YXJkKQotICAgICAgICBoZWlnaHQgPSAtaGVpZ2h0OwogICAgIGlm
IChoZWlnaHQgPiBTdGFja1N0YXRzOjpzX21heFN0YWNrSGVpZ2h0KSB7CiAgICAgICAgIFN0YWNr
U3RhdHM6OnNfbWF4U3RhY2tIZWlnaHQgPSBoZWlnaHQ7CiAgICAgICAgIG5lZWRUb0xvZyA9IHRy
dWU7CkBAIC0xMDAsOCArOTcsNiBAQCBTdGFja1N0YXRzOjpDaGVja1BvaW50OjpDaGVja1BvaW50
KCkKIAogICAgIC8vIFVwZGF0ZSB0aGUgY2hlY2twb2ludCBkaWZmIHN0YXRzOgogICAgIGludCBk
aWZmID0gbGFzdCAtIGN1cnJlbnQ7Ci0gICAgaWYgKCFpc0dyb3dpbmdEb3dud2FyZCkKLSAgICAg
ICAgZGlmZiA9IC1kaWZmOwogICAgIGlmIChkaWZmID4gU3RhY2tTdGF0czo6c19tYXhDaGVja1Bv
aW50RGlmZikgewogICAgICAgICBTdGFja1N0YXRzOjpzX21heENoZWNrUG9pbnREaWZmID0gZGlm
ZjsKICAgICAgICAgbmVlZFRvTG9nID0gdHJ1ZTsKQEAgLTEzOCwxNCArMTMzLDEwIEBAIFN0YWNr
U3RhdHM6OkNoZWNrUG9pbnQ6On5DaGVja1BvaW50KCkKICNpZiBFTkFCTEUoVkVSQk9TRV9TVEFD
S19TVEFUUykKICAgICBpZiAoIW1fcHJldikgewogICAgICAgICBjb25zdCBTdGFja0JvdW5kcyYg
c3RhY2sgPSB0aHJlYWQuc3RhY2soKTsKLSAgICAgICAgYm9vbCBpc0dyb3dpbmdEb3dud2FyZCA9
IHN0YWNrLmlzR3Jvd2luZ0Rvd253YXJkKCk7CiAKICAgICAgICAgY2hhciogY3VycmVudCA9IHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHRoaXMpOwogICAgICAgICBpbnQgaGVpZ2h0ID0gdC5tX3N0
YWNrU3RhcnQgLSBjdXJyZW50OwogCi0gICAgICAgIGlmICghaXNHcm93aW5nRG93bndhcmQpCi0g
ICAgICAgICAgICBoZWlnaHQgPSAtaGVpZ2h0OwotCiAgICAgICAgIGRhdGFMb2dGKCIgUE9QIHRv
ICVwIGRpZmYgbWF4ICUuMWZrIHwgcmVlbnRyeSAlZC8lZCBtYXggfCBoZWlnaHQgJS4xZmsvbWF4
ICUuMWZrIHwgc3RhY2sgJXAgc2l6ZSAlLjFmaylcbiIsCiAgICAgICAgICAgICB0aGlzLCBTdGFj
a1N0YXRzOjpzX21heENoZWNrUG9pbnREaWZmIC8gMTAyNC4wLAogICAgICAgICAgICAgdC5tX3Jl
ZW50cnlEZXB0aCwgU3RhY2tTdGF0czo6c19tYXhSZWVudHJ5RGVwdGgsCkBAIC0xNjIsOCArMTUz
LDYgQEAgdm9pZCBTdGFja1N0YXRzOjpwcm9iZSgpCiAgICAgU3RhY2tTdGF0czo6UGVyVGhyZWFk
U3RhdHMmIHQgPSB0aHJlYWQuc3RhY2tTdGF0cygpOwogICAgIGNvbnN0IFN0YWNrQm91bmRzJiBz
dGFjayA9IHRocmVhZC5zdGFjaygpOwogCi0gICAgYm9vbCBpc0dyb3dpbmdEb3dud2FyZCA9IHN0
YWNrLmlzR3Jvd2luZ0Rvd253YXJkKCk7Ci0KICAgICBib29sIG5lZWRUb0xvZyA9IGZhbHNlOwog
CiAgICAgaW50IGR1bW15OwpAQCAtMTc5LDggKzE2OCw2IEBAIHZvaWQgU3RhY2tTdGF0czo6cHJv
YmUoKQogCiAgICAgLy8gVXBkYXRlIHRoZSBzdGFjayBoZWlnaHQgc3RhdHM6CiAgICAgaW50IGhl
aWdodCA9IHQubV9zdGFja1N0YXJ0IC0gY3VycmVudDsKLSAgICBpZiAoIWlzR3Jvd2luZ0Rvd253
YXJkKQotICAgICAgICBoZWlnaHQgPSAtaGVpZ2h0OwogICAgIGlmIChoZWlnaHQgPiBTdGFja1N0
YXRzOjpzX21heFN0YWNrSGVpZ2h0KSB7CiAgICAgICAgIFN0YWNrU3RhdHM6OnNfbWF4U3RhY2tI
ZWlnaHQgPSBoZWlnaHQ7CiAgICAgICAgIG5lZWRUb0xvZyA9IHRydWU7CkBAIC0xODgsOCArMTc1
LDYgQEAgdm9pZCBTdGFja1N0YXRzOjpwcm9iZSgpCiAKICAgICAvLyBVcGRhdGUgdGhlIGNoZWNr
cG9pbnQgZGlmZiBzdGF0czoKICAgICBpbnQgZGlmZiA9IGxhc3QgLSBjdXJyZW50OwotICAgIGlm
ICghaXNHcm93aW5nRG93bndhcmQpCi0gICAgICAgIGRpZmYgPSAtZGlmZjsKICAgICBpZiAoZGlm
ZiA+IFN0YWNrU3RhdHM6OnNfbWF4Q2hlY2tQb2ludERpZmYpIHsKICAgICAgICAgU3RhY2tTdGF0
czo6c19tYXhDaGVja1BvaW50RGlmZiA9IGRpZmY7CiAgICAgICAgIG5lZWRUb0xvZyA9IHRydWU7
CkBAIC0yMjMsOCArMjA4LDYgQEAgU3RhY2tTdGF0czo6TGF5b3V0Q2hlY2tQb2ludDo6TGF5b3V0
Q2hlYwogICAgIFN0YWNrU3RhdHM6OlBlclRocmVhZFN0YXRzJiB0ID0gdGhyZWFkLnN0YWNrU3Rh
dHMoKTsKICAgICBjb25zdCBTdGFja0JvdW5kcyYgc3RhY2sgPSB0aHJlYWQuc3RhY2soKTsKIAot
ICAgIGJvb2wgaXNHcm93aW5nRG93bndhcmQgPSBzdGFjay5pc0dyb3dpbmdEb3dud2FyZCgpOwot
CiAgICAgLy8gUHVzaCB0aGlzIGNoZWNrcG9pbnQ6CiAgICAgbV9wcmV2ID0gU3RhY2tTdGF0czo6
c190b3BMYXlvdXRDaGVja1BvaW50OwogICAgIGlmIChtX3ByZXYpCkBAIC0yNTAsMjQgKzIzMywx
OCBAQCBTdGFja1N0YXRzOjpMYXlvdXRDaGVja1BvaW50OjpMYXlvdXRDaGVjCiAKICAgICAvLyBV
cGRhdGUgdGhlIHN0YWNrIGhlaWdodCBzdGF0czoKICAgICBpbnQgaGVpZ2h0ID0gdC5tX3N0YWNr
U3RhcnQgLSBjdXJyZW50OwotICAgIGlmICghaXNHcm93aW5nRG93bndhcmQpCi0gICAgICAgIGhl
aWdodCA9IC1oZWlnaHQ7CiAgICAgaWYgKGhlaWdodCA+IFN0YWNrU3RhdHM6OnNfbWF4U3RhY2tI
ZWlnaHQpIHsKICAgICAgICAgU3RhY2tTdGF0czo6c19tYXhTdGFja0hlaWdodCA9IGhlaWdodDsK
ICAgICAgICAgbmVlZFRvTG9nID0gdHJ1ZTsKICAgICB9CiAKICAgICAvLyBVcGRhdGUgdGhlIGxh
eW91dCBjaGVja3BvaW50IGRpZmYgc3RhdHM6Ci0gICAgaWYgKCFpc0dyb3dpbmdEb3dud2FyZCkK
LSAgICAgICAgZGlmZiA9IC1kaWZmOwogICAgIGlmIChkaWZmID4gU3RhY2tTdGF0czo6c19tYXhM
YXlvdXRDaGVja1BvaW50RGlmZikgewogICAgICAgICBTdGFja1N0YXRzOjpzX21heExheW91dENo
ZWNrUG9pbnREaWZmID0gZGlmZjsKICAgICAgICAgbmVlZFRvTG9nID0gdHJ1ZTsKICAgICB9CiAK
ICAgICAvLyBVcGRhdGUgdGhlIHRvdGFsIGxheW91dCBjaGVja3BvaW50IGRpZmYgc3RhdHM6Ci0g
ICAgaWYgKCFpc0dyb3dpbmdEb3dud2FyZCkKLSAgICAgICAgdG90YWxEaWZmID0gLXRvdGFsRGlm
ZjsKICAgICBpZiAodG90YWxEaWZmID4gU3RhY2tTdGF0czo6c19tYXhUb3RhbExheW91dENoZWNr
UG9pbnREaWZmKSB7CiAgICAgICAgIFN0YWNrU3RhdHM6OnNfbWF4VG90YWxMYXlvdXRDaGVja1Bv
aW50RGlmZiA9IHRvdGFsRGlmZjsKICAgICAgICAgbmVlZFRvTG9nID0gdHJ1ZTsK
</data>
<flag name="review"
          id="398771"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
          </attachment>
      

    </bug>

</bugzilla>