<?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>228721</bug_id>
          
          <creation_ts>2021-08-02 16:09:52 -0700</creation_ts>
          <short_desc>Add a new pattern to instruction selector to utilize UMULL supported by ARM64</short_desc>
          <delta_ts>2021-08-02 23:57:36 -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>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="Yijia Huang">yijia_huang</reporter>
          <assigned_to name="Yijia Huang">yijia_huang</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1781445</commentid>
    <comment_count>0</comment_count>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-08-02 16:09:52 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781463</commentid>
    <comment_count>1</comment_count>
      <attachid>434801</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-08-02 16:50:48 -0700</bug_when>
    <thetext>Created attachment 434801
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781506</commentid>
    <comment_count>2</comment_count>
      <attachid>434801</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-08-02 18:58:09 -0700</bug_when>
    <thetext>Comment on attachment 434801
Patch

Nice. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781527</commentid>
    <comment_count>3</comment_count>
      <attachid>434815</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-08-02 20:47:25 -0700</bug_when>
    <thetext>Created attachment 434815
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781535</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-02 21:18:29 -0700</bug_when>
    <thetext>Committed r280583 (240205@main): &lt;https://commits.webkit.org/240205@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 434815.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781536</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-08-02 21:19:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/81443297&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434801</attachid>
            <date>2021-08-02 16:50:48 -0700</date>
            <delta_ts>2021-08-02 21:22:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228721-20210802185047.patch</filename>
            <type>text/plain</type>
            <size>17751</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
N2M5NTU4ZWFiZGIxNjY0YzU2YWQyZGU0YWQzNGQ3ZDA3Y2UxNzI1Li43MzVjMDMyNWJjYzNmMGRl
NjY2NDgyMGYwNGU5Y2U4NDUwMzBkMTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MCBAQAorMjAyMS0wOC0wMiAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGEgbmV3IHBhdHRlcm4gdG8gaW5zdHJ1Y3Rpb24gc2VsZWN0b3Ig
dG8gdXRpbGl6ZSBVTVVMTCBzdXBwb3J0ZWQgYnkgQVJNNjQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODcyMQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuc2lnbmVkIE11bHRpcGx5IExvbmcgKFVNVUxM
KSBtdWx0aXBsaWVzIHR3byAzMi1iaXQgcmVnaXN0ZXIgdmFsdWVzLCBhbmQgd3JpdGVzIHRoZSAK
KyAgICAgICAgcmVzdWx0IHRvIHRoZSBkZXN0aW5hdGlvbiByZWdpc3Rlci4gVGhpcyBpbnN0cnVj
dGlvbiBpcyBhbiBhbGlhcyBvZiB0aGUgVU1BRERMIGluc3RydWN0aW9uLgorCisgICAgICAgICAg
ICB1bXVsbCB4ZCB3biB3bQorCisgICAgICAgIFRoZSBlcXVpdmFsZW50IHBhdHRlcm4gaXM6IGQg
PSBaRXh0MzIobikgKiBaRXh0MzIobSkKKworICAgICAgICBHaXZlbiBCMyBJUjoKKyAgICAgICAg
SW50IEAwID0gQXJndW1lbnRSZWcoJXgwKQorICAgICAgICBJbnQgQDEgPSBUcnVuYyhAMCkKKyAg
ICAgICAgSW50IEAyID0gQXJndW1lbnRSZWcoJXgxKQorICAgICAgICBJbnQgQDMgPSBUcnVuYyhA
MikKKyAgICAgICAgSW50IEA0ID0gWkV4dDMyKEAxKQorICAgICAgICBJbnQgQDUgPSBaRXh0MzIo
QDMpCisgICAgICAgIEludCBANiA9IE11bChANCwgQDUpCisgICAgICAgIFZvaWRANyA9IFJldHVy
bihANiwgVGVybWluYWwpCisKKyAgICAgICAgLy8gT2xkIG9wdGltaXplZCBBSVIKKyAgICAgICAg
TW92ZSAgICV4MCwgJXgwLCAgICAgIEA0CisgICAgICAgIE1vdmUgICAleDEsICV4MSwgICAgICBA
NQorICAgICAgICBNdWwgICAgJXgwLCAleDEsICV4MCwgQDYKKyAgICAgICAgUmV0ICAgICV4MCwg
ICAgICAgICAgIEA3CisKKyAgICAgICAgLy8gTmV3IG9wdGltaXplZCBBSVIKKyAgICAgICAgTXVs
dGlwbHlaZXJvRXh0ZW5kICV4MCwgJXgxLCAleDAsIEA2CisgICAgICAgIFJldCAgICAgICAgICAg
ICAgICAleDAsICAgICAgICAgICBANworCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyQVJNNjQuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bXVsdGlwbHla
ZXJvRXh0ZW5kMzIpOgorICAgICAgICAqIGFzc2VtYmxlci90ZXN0bWFzbS5jcHA6CisgICAgICAg
IChKU0M6OnRlc3RNdWx0aXBseVplcm9FeHRlbmQzMik6CisgICAgICAgICogYjMvQjNMb3dlclRv
QWlyLmNwcDoKKyAgICAgICAgKiBiMy9haXIvQWlyT3Bjb2RlLm9wY29kZXM6CisgICAgICAgICog
YjMvdGVzdGIzLmg6CisgICAgICAgICogYjMvdGVzdGIzXzIuY3BwOgorICAgICAgICAodGVzdE11
bEFyZ3MzMlNpZ25FeHRlbmQpOgorICAgICAgICAodGVzdE11bEFyZ3MzMlplcm9FeHRlbmQpOgor
ICAgICAgICAqIGIzL3Rlc3RiM18zLmNwcDoKKyAgICAgICAgKGFkZEFyZ1Rlc3RzKToKKwogMjAy
MS0wNy0zMCAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5jb20+CiAKICAgICAgICAg
QWRkIFByZS9Qb3N0LUluZGV4ZWQgQWRkcmVzcyBNb2RlIHRvIEFpciBmb3IgQVJNNjQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02
NC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0
LmgKaW5kZXggZTZiZmJlYzYwMDFjMTBjNjFlOWYyNjZlZmYyN2FkNmYxMGU4OWY4Zi4uNzNhYjYw
MmUzNTAwMWY1MTc1OWNjZmVlMzY5NGM0ZDBkY2NlODRlMSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKQEAgLTg2Myw2
ICs4NjMsMTEgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci5zbXVsbChkZXN0LCBsZWZ0
LCByaWdodCk7CiAgICAgfQogCisgICAgdm9pZCBtdWx0aXBseVplcm9FeHRlbmQzMihSZWdpc3Rl
cklEIGxlZnQsIFJlZ2lzdGVySUQgcmlnaHQsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAg
ICAgIG1fYXNzZW1ibGVyLnVtdWxsKGRlc3QsIGxlZnQsIHJpZ2h0KTsKKyAgICB9CisKICAgICB2
b2lkIGRpdjMyKFJlZ2lzdGVySUQgZGl2aWRlbmQsIFJlZ2lzdGVySUQgZGl2aXNvciwgUmVnaXN0
ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIuc2RpdjwzMj4oZGVzdCwgZGl2
aWRlbmQsIGRpdmlzb3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci90ZXN0bWFzbS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3Rt
YXNtLmNwcAppbmRleCAxY2E2OTgzZWI3MGQ5NjQwYmU0ZmIyZjExMGUyZjhlMDFmMzhmODM4Li5k
YTAyN2JhODZmMzI0N2Q2ZDI5NGI1NmJmYTBkMDdiZDA0OWQyMDVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcApAQCAtOTIxLDYgKzkyMSwyNiBAQCB2
b2lkIHRlc3RNdWx0aXBseVNpZ25FeHRlbmQzMigpCiAgICAgfQogfQogCit2b2lkIHRlc3RNdWx0
aXBseVplcm9FeHRlbmQzMigpCit7CisgICAgZm9yIChhdXRvIG5PcGVyYW5kIDogaW50MzJPcGVy
YW5kcygpKSB7CisgICAgICAgIGF1dG8gbXVsID0gY29tcGlsZShbPV0gKENDYWxsSGVscGVycyYg
aml0KSB7CisgICAgICAgICAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZShqaXQpOworCisgICAgICAg
ICAgICBqaXQubXVsdGlwbHlaZXJvRXh0ZW5kMzIoR1BSSW5mbzo6YXJndW1lbnRHUFIwLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjEsIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKworICAgICAgICAg
ICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKKyAgICAgICAgICAgIGppdC5yZXQoKTsKKyAg
ICAgICAgfSk7CisKKyAgICAgICAgZm9yIChhdXRvIG1PcGVyYW5kIDogaW50MzJPcGVyYW5kcygp
KSB7CisgICAgICAgICAgICB1aW50MzJfdCBuID0gbk9wZXJhbmQ7CisgICAgICAgICAgICB1aW50
MzJfdCBtID0gbU9wZXJhbmQ7CisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+
KG11bCwgbiwgbSksIHN0YXRpY19jYXN0PHVpbnQ2NF90PihuKSAqIHN0YXRpY19jYXN0PHVpbnQ2
NF90PihtKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKIHZvaWQgdGVzdE11bHRpcGx5QWRkU2ln
bkV4dGVuZDMyKCkKIHsKICAgICAvLyBkID0gU0V4dDMyKG4pICogU0V4dDMyKG0pICsgYQpAQCAt
NDkxNSw2ICs0OTM1LDcgQEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKSBXVEZfSUdOT1JF
U19USFJFQURfU0FGRVRZX0FOQUxZU0lTCiAgICAgUlVOKHRlc3RMb2FkU3RvcmVQYWlyNjRJbnQ2
NCgpKTsKICAgICBSVU4odGVzdExvYWRTdG9yZVBhaXI2NERvdWJsZSgpKTsKICAgICBSVU4odGVz
dE11bHRpcGx5U2lnbkV4dGVuZDMyKCkpOworICAgIFJVTih0ZXN0TXVsdGlwbHlaZXJvRXh0ZW5k
MzIoKSk7CiAKICAgICBSVU4odGVzdFN1YjMyQXJncygpKTsKICAgICBSVU4odGVzdFN1YjMySW1t
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAppbmRleCBlYmIw
MzUyY2IzMDgwM2RiYzFmZTgxOGUzOTkwYmEzNzQ1NzA2NjM3Li4zNzE4ODkzODlkNzBkMWFmYWE1
N2E5Njk5ZTRjZTI5ODRhM2YwOTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNMb3dlclRvQWlyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dl
clRvQWlyLmNwcApAQCAtNDk5LDcgKzQ5OSw3IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KIAotICAgIGJvb2wgaXNNZXJnZWFibGVWYWx1ZShWYWx1ZSogdiwgQjM6Ok9w
Y29kZSBiM09wY29kZSwgYm9vbCBjaGVja0NhbkJlSW50ZXJuYWwpCisgICAgYm9vbCBpc01lcmdl
YWJsZVZhbHVlKFZhbHVlKiB2LCBCMzo6T3Bjb2RlIGIzT3Bjb2RlLCBib29sIGNoZWNrQ2FuQmVJ
bnRlcm5hbCA9IGZhbHNlKQogICAgIHsgCiAgICAgICAgIGlmICh2LT5vcGNvZGUoKSAhPSBiM09w
Y29kZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTUxNiw5ICs1MTYsOSBAQCBwcml2
YXRlOgogI2lmIENQVShBUk02NCkKICAgICAgICAgLy8gTWF5YmUsIHRoZSBpZGVhbCBhcHByb2Fj
aCBpcyB0byBpbnRyb2R1Y2UgYSBkZWNvcmF0b3IgKEluZGV4QEVYVCkgdG8gdGhlIEFpciBvcGVy
YW5kIAogICAgICAgICAvLyB0byBwcm92aWRlIGFuIGV4dGVuc2lvbiBvcHBvcnR1bml0eSBmb3Ig
dGhlIHNwZWNpZmljIGZvcm0gdW5kZXIgdGhlIEFpciBvcGNvZGUuCi0gICAgICAgIGlmIChpc01l
cmdlYWJsZVZhbHVlKGluZGV4LCBaRXh0MzIsIGZhbHNlKSkKKyAgICAgICAgaWYgKGlzTWVyZ2Vh
YmxlVmFsdWUoaW5kZXgsIFpFeHQzMikpCiAgICAgICAgICAgICByZXR1cm4gQXJnOjppbmRleChi
YXNlLCB0bXAoaW5kZXgtPmNoaWxkKDApKSwgc2NhbGUsIG9mZnNldCwgTWFjcm9Bc3NlbWJsZXI6
OkV4dGVuZDo6WkV4dDMyKTsKLSAgICAgICAgaWYgKGlzTWVyZ2VhYmxlVmFsdWUoaW5kZXgsIFNF
eHQzMiwgZmFsc2UpKQorICAgICAgICBpZiAoaXNNZXJnZWFibGVWYWx1ZShpbmRleCwgU0V4dDMy
KSkKICAgICAgICAgICAgIHJldHVybiBBcmc6OmluZGV4KGJhc2UsIHRtcChpbmRleC0+Y2hpbGQo
MCkpLCBzY2FsZSwgb2Zmc2V0LCBNYWNyb0Fzc2VtYmxlcjo6RXh0ZW5kOjpTRXh0MzIpOwogI2Vu
ZGlmCiAgICAgICAgIHJldHVybiBBcmc6OmluZGV4KGJhc2UsIHRtcChpbmRleCksIHNjYWxlLCBv
ZmZzZXQpOwpAQCAtMjY3MiwxMCArMjY3MiwxMCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKGFpck9wY29kZSAhPSBNdWx0aXBseUFkZDY0KQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBBaXI6Ok9vcHM7CiAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBTTUFEREw6IGQgPSBTRXh0MzIobikgKiBTRXh0MzIobSkgKyBhCi0gICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoaXNNZXJnZWFibGVWYWx1ZShtdWx0aXBseUxlZnQsIFNFeHQzMiwgdHJ1ZSkg
JiYgaXNNZXJnZWFibGVWYWx1ZShtdWx0aXBseVJpZ2h0LCBTRXh0MzIsIHRydWUpKSAKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChpc01lcmdlYWJsZVZhbHVlKG11bHRpcGx5TGVmdCwgU0V4
dDMyKSAmJiBpc01lcmdlYWJsZVZhbHVlKG11bHRpcGx5UmlnaHQsIFNFeHQzMikpIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBNdWx0aXBseUFkZFNpZ25FeHRlbmQzMjsKICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIFVNQURETDogZCA9IFpFeHQzMihuKSAqIFpFeHQzMiht
KSArIGEKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc01lcmdlYWJsZVZhbHVlKG11bHRp
cGx5TGVmdCwgWkV4dDMyLCB0cnVlKSAmJiBpc01lcmdlYWJsZVZhbHVlKG11bHRpcGx5UmlnaHQs
IFpFeHQzMiwgdHJ1ZSkpIAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzTWVyZ2VhYmxl
VmFsdWUobXVsdGlwbHlMZWZ0LCBaRXh0MzIpICYmIGlzTWVyZ2VhYmxlVmFsdWUobXVsdGlwbHlS
aWdodCwgWkV4dDMyKSkgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE11bHRp
cGx5QWRkWmVyb0V4dGVuZDMyOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFpcjo6
T29wczsKICAgICAgICAgICAgICAgICAgICAgfTsKQEAgLTI2ODMsOCArMjY4Myw2IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICAgICAgICAgIEFpcjo6T3Bjb2RlIG5ld0Fpck9wY29kZSA9IHRyeU5l
d0Fpck9wY29kZSgpOwogICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0obmV3QWly
T3Bjb2RlLCBBcmc6OlRtcCwgQXJnOjpUbXAsIEFyZzo6VG1wLCBBcmc6OlRtcCkpIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgIGFwcGVuZChuZXdBaXJPcGNvZGUsIHRtcChtdWx0aXBseUxlZnQt
PmNoaWxkKDApKSwgdG1wKG11bHRpcGx5UmlnaHQtPmNoaWxkKDApKSwgdG1wKHJpZ2h0KSwgdG1w
KG1fdmFsdWUpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1pdEludGVybmFsKG11bHRp
cGx5TGVmdCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb21taXRJbnRlcm5hbChtdWx0aXBs
eVJpZ2h0KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1pdEludGVybmFsKGxlZnQpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgICAg
IH0KQEAgLTI3NTAsMTAgKzI3NDgsMTAgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAg
aWYgKGFpck9wY29kZSAhPSBNdWx0aXBseVN1YjY0KQogICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIEFpcjo6T29wczsKICAgICAgICAgICAgICAgICAgICAgLy8gU01TVUJMOiBkID0gYSAt
IFNFeHQzMihuKSAqIFNFeHQzMihtKQotICAgICAgICAgICAgICAgICAgICBpZiAoaXNNZXJnZWFi
bGVWYWx1ZShtdWx0aXBseUxlZnQsIFNFeHQzMiwgdHJ1ZSkgJiYgaXNNZXJnZWFibGVWYWx1ZSht
dWx0aXBseVJpZ2h0LCBTRXh0MzIsIHRydWUpKSAKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlz
TWVyZ2VhYmxlVmFsdWUobXVsdGlwbHlMZWZ0LCBTRXh0MzIpICYmIGlzTWVyZ2VhYmxlVmFsdWUo
bXVsdGlwbHlSaWdodCwgU0V4dDMyKSkgCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
TXVsdGlwbHlTdWJTaWduRXh0ZW5kMzI7CiAgICAgICAgICAgICAgICAgICAgIC8vIFVNU1VCTDog
ZCA9IGEgLSBaRXh0MzIobikgKiBaRXh0MzIobSkKLSAgICAgICAgICAgICAgICAgICAgaWYgKGlz
TWVyZ2VhYmxlVmFsdWUobXVsdGlwbHlMZWZ0LCBaRXh0MzIsIHRydWUpICYmIGlzTWVyZ2VhYmxl
VmFsdWUobXVsdGlwbHlSaWdodCwgWkV4dDMyLCB0cnVlKSkgCisgICAgICAgICAgICAgICAgICAg
IGlmIChpc01lcmdlYWJsZVZhbHVlKG11bHRpcGx5TGVmdCwgWkV4dDMyKSAmJiBpc01lcmdlYWJs
ZVZhbHVlKG11bHRpcGx5UmlnaHQsIFpFeHQzMikpIAogICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIE11bHRpcGx5U3ViWmVyb0V4dGVuZDMyOwogICAgICAgICAgICAgICAgICAgICByZXR1
cm4gQWlyOjpPb3BzOwogICAgICAgICAgICAgICAgIH07CkBAIC0yNzYxLDggKzI3NTksNiBAQCBw
cml2YXRlOgogICAgICAgICAgICAgICAgIEFpcjo6T3Bjb2RlIG5ld0Fpck9wY29kZSA9IHRyeU5l
d0Fpck9wY29kZSgpOwogICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkRm9ybShuZXdBaXJPcGNv
ZGUsIEFyZzo6VG1wLCBBcmc6OlRtcCwgQXJnOjpUbXAsIEFyZzo6VG1wKSkgewogICAgICAgICAg
ICAgICAgICAgICBhcHBlbmQobmV3QWlyT3Bjb2RlLCB0bXAobXVsdGlwbHlMZWZ0LT5jaGlsZCgw
KSksIHRtcChtdWx0aXBseVJpZ2h0LT5jaGlsZCgwKSksIHRtcChsZWZ0KSwgdG1wKG1fdmFsdWUp
KTsKLSAgICAgICAgICAgICAgICAgICAgY29tbWl0SW50ZXJuYWwobXVsdGlwbHlMZWZ0KTsKLSAg
ICAgICAgICAgICAgICAgICAgY29tbWl0SW50ZXJuYWwobXVsdGlwbHlSaWdodCk7CiAgICAgICAg
ICAgICAgICAgICAgIGNvbW1pdEludGVybmFsKHJpZ2h0KTsKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgfQpAQCAtMjc4MSw3ICsyNzc3LDcgQEAgcHJp
dmF0ZToKIAogICAgICAgICAgICAgLy8gc3ViLXdpdGgtc2hpZnQgUGF0dGVybjogbiAtIChtIFNo
aWZ0VHlwZSBhbW91bnQpCiAgICAgICAgICAgICBhdXRvIHRyeUFwcGVuZFN1YkFuZFNoaWZ0ID0g
WyZdICgpIC0+IGJvb2wgewotICAgICAgICAgICAgICAgIEFpcjo6T3Bjb2RlIG9wY29kZSA9IG9w
Y29kZUJhc2VkT25TaGlmdEtpbmQocmlnaHQtPm9wY29kZSgpLCAKKyAgICAgICAgICAgICAgICBB
aXI6Ok9wY29kZSBvcGNvZGUgPSBvcGNvZGVCYXNlZE9uU2hpZnRLaW5kKHJpZ2h0LT5vcGNvZGUo
KSwKICAgICAgICAgICAgICAgICAgICAgU3ViTGVmdFNoaWZ0MzIsIFN1YkxlZnRTaGlmdDY0LCAK
ICAgICAgICAgICAgICAgICAgICAgU3ViUmlnaHRTaGlmdDMyLCBTdWJSaWdodFNoaWZ0NjQsIAog
ICAgICAgICAgICAgICAgICAgICBTdWJVbnNpZ25lZFJpZ2h0U2hpZnQzMiwgU3ViVW5zaWduZWRS
aWdodFNoaWZ0NjQpOwpAQCAtMjgxOSwxMCArMjgxNSwxMCBAQCBwcml2YXRlOgogICAgICAgICAg
ICAgICAgICAgICBpZiAoYWlyT3Bjb2RlICE9IE11bHRpcGx5TmVnNjQpCiAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gQWlyOjpPb3BzOwogICAgICAgICAgICAgICAgICAgICAvLyBTTU5F
R0w6IGQgPSAtKFNFeHQzMihuKSAqIFNFeHQzMihtKSkKLSAgICAgICAgICAgICAgICAgICAgaWYg
KGlzTWVyZ2VhYmxlVmFsdWUobXVsdGlwbHlMZWZ0LCBTRXh0MzIsIHRydWUpICYmIGlzTWVyZ2Vh
YmxlVmFsdWUobXVsdGlwbHlSaWdodCwgU0V4dDMyLCB0cnVlKSkgCisgICAgICAgICAgICAgICAg
ICAgIGlmIChpc01lcmdlYWJsZVZhbHVlKG11bHRpcGx5TGVmdCwgU0V4dDMyKSAmJiBpc01lcmdl
YWJsZVZhbHVlKG11bHRpcGx5UmlnaHQsIFNFeHQzMikpIAogICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIE11bHRpcGx5TmVnU2lnbkV4dGVuZDMyOwogICAgICAgICAgICAgICAgICAgICAv
LyBVTU5FR0w6IGQgPSAtKFpFeHQzMihuKSAqIFpFeHQzMihtKSkKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKGlzTWVyZ2VhYmxlVmFsdWUobXVsdGlwbHlMZWZ0LCBaRXh0MzIsIHRydWUpICYmIGlz
TWVyZ2VhYmxlVmFsdWUobXVsdGlwbHlSaWdodCwgWkV4dDMyLCB0cnVlKSkgCisgICAgICAgICAg
ICAgICAgICAgIGlmIChpc01lcmdlYWJsZVZhbHVlKG11bHRpcGx5TGVmdCwgWkV4dDMyKSAmJiBp
c01lcmdlYWJsZVZhbHVlKG11bHRpcGx5UmlnaHQsIFpFeHQzMikpIAogICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIE11bHRpcGx5TmVnWmVyb0V4dGVuZDMyOwogICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gQWlyOjpPb3BzOwogICAgICAgICAgICAgICAgIH07CkBAIC0yODMwLDggKzI4
MjYsNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIEFpcjo6T3Bjb2RlIG5ld0Fpck9wY29k
ZSA9IHRyeU5ld0Fpck9wY29kZSgpOwogICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkRm9ybShu
ZXdBaXJPcGNvZGUsIEFyZzo6VG1wLCBBcmc6OlRtcCwgQXJnOjpUbXApKSB7CiAgICAgICAgICAg
ICAgICAgICAgIGFwcGVuZChuZXdBaXJPcGNvZGUsIHRtcChtdWx0aXBseUxlZnQtPmNoaWxkKDAp
KSwgdG1wKG11bHRpcGx5UmlnaHQtPmNoaWxkKDApKSwgdG1wKG1fdmFsdWUpKTsKLSAgICAgICAg
ICAgICAgICAgICAgY29tbWl0SW50ZXJuYWwobXVsdGlwbHlMZWZ0KTsKLSAgICAgICAgICAgICAg
ICAgICAgY29tbWl0SW50ZXJuYWwobXVsdGlwbHlSaWdodCk7CiAgICAgICAgICAgICAgICAgICAg
IGNvbW1pdEludGVybmFsKG1fdmFsdWUtPmNoaWxkKDApKTsKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgfQpAQCAtMjg1MywyOSArMjg0NywzNCBAQCBw
cml2YXRlOgogICAgICAgICB9CiAKICAgICAgICAgY2FzZSBNdWw6IHsKLSAgICAgICAgICAgIGlm
IChtX3ZhbHVlLT50eXBlKCkgPT0gSW50NjQKLSAgICAgICAgICAgICAgICAmJiBpc1ZhbGlkRm9y
bShNdWx0aXBseVNpZ25FeHRlbmQzMiwgQXJnOjpUbXAsIEFyZzo6VG1wLCBBcmc6OlRtcCkKLSAg
ICAgICAgICAgICAgICAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gU0V4dDMyCi0g
ICAgICAgICAgICAgICAgJiYgIW1fbG9ja2VkLmNvbnRhaW5zKG1fdmFsdWUtPmNoaWxkKDApKSkg
ewotICAgICAgICAgICAgICAgIFZhbHVlKiBvcExlZnQgPSBtX3ZhbHVlLT5jaGlsZCgwKTsKLSAg
ICAgICAgICAgICAgICBWYWx1ZSogbGVmdCA9IG9wTGVmdC0+Y2hpbGQoMCk7Ci0gICAgICAgICAg
ICAgICAgVmFsdWUqIG9wUmlnaHQgPSBtX3ZhbHVlLT5jaGlsZCgxKTsKLSAgICAgICAgICAgICAg
ICBWYWx1ZSogcmlnaHQgPSBudWxscHRyOwotCi0gICAgICAgICAgICAgICAgaWYgKG9wUmlnaHQt
Pm9wY29kZSgpID09IFNFeHQzMiAmJiAhbV9sb2NrZWQuY29udGFpbnMob3BSaWdodC0+Y2hpbGQo
MCkpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJpZ2h0ID0gb3BSaWdodC0+Y2hpbGQoMCk7Ci0g
ICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtX3ZhbHVlLT5jaGlsZCgxKS0+aXNSZXByZXNlbnRh
YmxlQXM8aW50MzJfdD4oKSAmJiAhbV9sb2NrZWQuY29udGFpbnMobV92YWx1ZS0+Y2hpbGQoMSkp
KSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIFdlIGp1c3QgdXNlIHRoZSA2NC1iaXQgY29uc3Qg
aW50IGFzIGEgMzIgYml0IGNvbnN0IGludCBkaXJlY3RseQotICAgICAgICAgICAgICAgICAgICBy
aWdodCA9IG9wUmlnaHQ7Ci0gICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgVmFsdWUqIGxl
ZnQgPSBtX3ZhbHVlLT5jaGlsZCgwKTsKKyAgICAgICAgICAgIFZhbHVlKiByaWdodCA9IG1fdmFs
dWUtPmNoaWxkKDEpOwogCi0gICAgICAgICAgICAgICAgaWYgKHJpZ2h0KSB7Ci0gICAgICAgICAg
ICAgICAgICAgIGFwcGVuZChNdWx0aXBseVNpZ25FeHRlbmQzMiwgdG1wKGxlZnQpLCB0bXAocmln
aHQpLCB0bXAobV92YWx1ZSkpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICBhdXRvIHRyeUFwcGVuZE11bHRpcGx5V2l0aEV4dGVuZCA9IFsmXSAoKSAtPiBib29sIHsK
KyAgICAgICAgICAgICAgICBhdXRvIHRyeUFpck9wY29kZSA9IFsmXSAoKSAtPiBBaXI6Ok9wY29k
ZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX3ZhbHVlLT50eXBlKCkgIT0gSW50NjQpCisg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQWlyOjpPb3BzOworICAgICAgICAgICAgICAg
ICAgICAvLyBTTVVMTDogZCA9IFNFeHQzMihuKSAqIFNFeHQzMihtKQorICAgICAgICAgICAgICAg
ICAgICBpZiAoaXNNZXJnZWFibGVWYWx1ZShsZWZ0LCBTRXh0MzIpICYmIGlzTWVyZ2VhYmxlVmFs
dWUocmlnaHQsIFNFeHQzMikpIAorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE11bHRp
cGx5U2lnbkV4dGVuZDMyOworICAgICAgICAgICAgICAgICAgICAvLyBVTVVMTDogZCA9IFpFeHQz
MihuKSAqIFpFeHQzMihtKQorICAgICAgICAgICAgICAgICAgICBpZiAoaXNNZXJnZWFibGVWYWx1
ZShsZWZ0LCBaRXh0MzIpICYmIGlzTWVyZ2VhYmxlVmFsdWUocmlnaHQsIFpFeHQzMikpIAorICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE11bHRpcGx5WmVyb0V4dGVuZDMyOworICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gQWlyOjpPb3BzOworICAgICAgICAgICAgICAgIH07CisKKyAg
ICAgICAgICAgICAgICBBaXI6Ok9wY29kZSBvcGNvZGUgPSB0cnlBaXJPcGNvZGUoKTsKKyAgICAg
ICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0ob3Bjb2RlLCBBcmc6OlRtcCwgQXJnOjpUbXAsIEFy
Zzo6VG1wKSkgeworICAgICAgICAgICAgICAgICAgICBhcHBlbmQob3Bjb2RlLCB0bXAobGVmdC0+
Y2hpbGQoMCkpLCB0bXAocmlnaHQtPmNoaWxkKDApKSwgdG1wKG1fdmFsdWUpKTsKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
fQotICAgICAgICAgICAgYXBwZW5kQmluT3A8TXVsMzIsIE11bDY0LCBNdWxEb3VibGUsIE11bEZs
b2F0LCBDb21tdXRhdGl2ZT4oCi0gICAgICAgICAgICAgICAgbV92YWx1ZS0+Y2hpbGQoMCksIG1f
dmFsdWUtPmNoaWxkKDEpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
ICAgICB9OworCisgICAgICAgICAgICBpZiAodHJ5QXBwZW5kTXVsdGlwbHlXaXRoRXh0ZW5kKCkp
CisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBhcHBlbmRCaW5PcDxNdWwz
MiwgTXVsNjQsIE11bERvdWJsZSwgTXVsRmxvYXQsIENvbW11dGF0aXZlPihsZWZ0LCByaWdodCk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtMzAwMSw3ICszMDAwLDcgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgIC8vICAgICAgICBtYXNrID0gKDEgPDwgbG93V2lkdGgpIC0g
MQogICAgICAgICAgICAgYXV0byB0cnlBcHBlbmRFWFRSID0gWyZdIChWYWx1ZSogbGVmdCwgVmFs
dWUqIHJpZ2h0KSAtPiBib29sIHsKICAgICAgICAgICAgICAgICBBaXI6Ok9wY29kZSBvcGNvZGUg
PSBvcGNvZGVGb3JUeXBlKEV4dHJhY3RSZWdpc3RlcjMyLCBFeHRyYWN0UmVnaXN0ZXI2NCwgbV92
YWx1ZS0+dHlwZSgpKTsKLSAgICAgICAgICAgICAgICBpZiAoIWlzVmFsaWRGb3JtKG9wY29kZSwg
QXJnOjpUbXAsIEFyZzo6VG1wLCBBcmc6OkltbSwgQXJnOjpUbXApKSAKKyAgICAgICAgICAgICAg
ICBpZiAoIWlzVmFsaWRGb3JtKG9wY29kZSwgQXJnOjpUbXAsIEFyZzo6VG1wLCBBcmc6OkltbSwg
QXJnOjpUbXApKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAg
ICAgICAgaWYgKGxlZnQtPm9wY29kZSgpICE9IFNobCB8fCBsZWZ0LT5jaGlsZCgwKS0+b3Bjb2Rl
KCkgIT0gQml0QW5kIHx8IHJpZ2h0LT5vcGNvZGUoKSAhPSBaU2hyKQogICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0Fpck9wY29kZS5vcGNvZGVzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJP
cGNvZGUub3Bjb2RlcwppbmRleCA0OWZlZDFhYWExOWFmNmRkY2Q5MmMzMzlmNzBiNTc2ZDBkMzk1
ZGRlLi42NGJjZTM5N2RjOTBjN2JiYzkxYTViNDA4YmYzZjNiNDEyYTE3Mzg4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMKQEAgLTI4NCw2ICsy
ODQsOSBAQCBhcm02NDogTXVsdGlwbHlOZWdaZXJvRXh0ZW5kMzIgVTpHOjMyLCBVOkc6MzIsIEQ6
Rzo2NAogYXJtNjQ6IE11bHRpcGx5U2lnbkV4dGVuZDMyIFU6RzozMiwgVTpHOjMyLCBEOkc6NjQK
ICAgICBUbXAsIFRtcCwgVG1wCiAKK2FybTY0OiBNdWx0aXBseVplcm9FeHRlbmQzMiBVOkc6MzIs
IFU6RzozMiwgRDpHOjY0CisgICAgVG1wLCBUbXAsIFRtcAorCiBhcm02NDogRGl2MzIgVTpHOjMy
LCBVOkc6MzIsIFpEOkc6MzIKICAgICBUbXAsIFRtcCwgVG1wCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90
ZXN0YjMuaAppbmRleCA3MjFlYjNhZGQ2Mjc0OGUyZmIwMmRkZjQyNTU3Y2M1OWQ1ZDg4MGViLi5m
OTFjODIzNzE2MTg3NGE4ZTExMDc1MTNlNThkYTFkNWUyZGU2ZDUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL3Rlc3RiMy5oCkBAIC05MTcsNyArOTE3LDggQEAgdm9pZCB0ZXN0TXVsTmVnQXJnQXJnKGlu
dCwgaW50KTsKIHZvaWQgdGVzdE11bEFyZ0ltbShpbnQ2NF90LCBpbnQ2NF90KTsKIHZvaWQgdGVz
dE11bEltbUFyZyhpbnQsIGludCk7CiB2b2lkIHRlc3RNdWxBcmdzMzIoaW50LCBpbnQpOwotdm9p
ZCB0ZXN0TXVsQXJnczMyU2lnbkV4dGVuZChpbnQsIGludCk7Cit2b2lkIHRlc3RNdWxBcmdzMzJT
aWduRXh0ZW5kKCk7Cit2b2lkIHRlc3RNdWxBcmdzMzJaZXJvRXh0ZW5kKCk7CiB2b2lkIHRlc3RN
dWxJbW0zMlNpZ25FeHRlbmQoY29uc3QgaW50LCBpbnQpOwogdm9pZCB0ZXN0TXVsTG9hZFR3aWNl
KCk7CiB2b2lkIHRlc3RNdWxBZGRBcmdzTGVmdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL3Rlc3RiM18yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0
YjNfMi5jcHAKaW5kZXggMjRiM2Y4Mzg3MmEwZmNiZTY5MzRmM2JhMGM5MTA3YWNhNzE0MDE1NC4u
YTY1ODAxNTQ3OGE4YjUxYjAzZWFhZTIxOTE0MTNhZGY4M2UyNmFkNCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvdGVzdGIzXzIuY3BwCkBAIC0xMjI4LDEwICsxMjI4LDEwIEBAIHZvaWQgdGVzdE11
bEFyZ3MzMihpbnQgYSwgaW50IGIpCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2Ms
IGEsIGIpID09IGEgKiBiKTsKIH0KIAotdm9pZCB0ZXN0TXVsQXJnczMyU2lnbkV4dGVuZChpbnQg
YSwgaW50IGIpCit2b2lkIHRlc3RNdWxBcmdzMzJTaWduRXh0ZW5kKCkKIHsKICAgICBQcm9jZWR1
cmUgcHJvYzsKLSAgICBpZiAocHJvYy5vcHRMZXZlbCgpIDwgMSkKKyAgICBpZiAocHJvYy5vcHRM
ZXZlbCgpIDwgMikKICAgICAgICAgcmV0dXJuOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZzEgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KApA
QCAtMTI0Niw4ICsxMjQ2LDQ2IEBAIHZvaWQgdGVzdE11bEFyZ3MzMlNpZ25FeHRlbmQoaW50IGEs
IGludCBiKQogICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBtdWwpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CisgICAg
aWYgKGlzQVJNNjQoKSkKKyAgICAgICAgY2hlY2tVc2VzSW5zdHJ1Y3Rpb24oKmNvZGUsICJzbXVs
bCIpOworCisgICAgZm9yIChhdXRvIG5PcGVyYW5kIDogaW50MzJPcGVyYW5kcygpKSB7CisgICAg
ICAgIGZvciAoYXV0byBtT3BlcmFuZCA6IGludDMyT3BlcmFuZHMoKSkgeworICAgICAgICAgICAg
aW50MzJfdCBuID0gbk9wZXJhbmQudmFsdWU7CisgICAgICAgICAgICBpbnQzMl90IG0gPSBtT3Bl
cmFuZC52YWx1ZTsKKyAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ2NF90PigqY29kZSwg
biwgbSksIHN0YXRpY19jYXN0PGludDY0X3Q+KG4pICogc3RhdGljX2Nhc3Q8aW50NjRfdD4obSkp
OworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIHRlc3RNdWxBcmdzMzJaZXJvRXh0ZW5kKCkK
K3sKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICBpZiAocHJvYy5vcHRMZXZlbCgpIDwgMikKKyAg
ICAgICAgcmV0dXJuOworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Cisg
ICAgVmFsdWUqIGFyZzEgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICBwcm9jLCBU
cnVuYywgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CisgICAgVmFsdWUqIGFy
ZzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2lu
KCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CisgICAgVmFsdWUqIGxlZnQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIFpFeHQzMiwgT3JpZ2luKCksIGFyZzEpOworICAgIFZhbHVl
KiByaWdodCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgWkV4dDMyLCBPcmlnaW4oKSwg
YXJnMik7CisgICAgVmFsdWUqIG11bCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVs
LCBPcmlnaW4oKSwgbGVmdCwgcmlnaHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBtdWwpOworCisgICAgYXV0byBjb2RlID0gY29tcGls
ZVByb2MocHJvYyk7CisgICAgaWYgKGlzQVJNNjQoKSkKKyAgICAgICAgY2hlY2tVc2VzSW5zdHJ1
Y3Rpb24oKmNvZGUsICJ1bXVsbCIpOwogCi0gICAgQ0hFQ0soaW52b2tlPGxvbmcgaW50PigqY29k
ZSwgYSwgYikgPT0gKChsb25nIGludCkgYSkgKiAoKGxvbmcgaW50KSBiKSk7CisgICAgZm9yIChh
dXRvIG5PcGVyYW5kIDogaW50MzJPcGVyYW5kcygpKSB7CisgICAgICAgIGZvciAoYXV0byBtT3Bl
cmFuZCA6IGludDMyT3BlcmFuZHMoKSkgeworICAgICAgICAgICAgdWludDMyX3QgbiA9IG5PcGVy
YW5kLnZhbHVlOworICAgICAgICAgICAgdWludDMyX3QgbSA9IG1PcGVyYW5kLnZhbHVlOworICAg
ICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90PigqY29kZSwgbiwgbSksIHN0YXRpY19j
YXN0PHVpbnQ2NF90PihuKSAqIHN0YXRpY19jYXN0PHVpbnQ2NF90PihtKSk7CisgICAgICAgIH0K
KyAgICB9CiB9CiAKIHZvaWQgdGVzdE11bEltbTMyU2lnbkV4dGVuZChjb25zdCBpbnQgYSwgaW50
IGIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18zLmNwcAppbmRleCBiODliMDE5ZmQ4YmY1
ZjA3MTJmNDY2ODY1MGY2MWNkZjgxZGE0YzgzLi41MDVmZDYzOTAzY2U4ZjIyNDJkZTYwMzYzMjg5
MjkwY2E4ODE5YTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIz
XzMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMy5jcHAKQEAgLTM3
MzAsMTAgKzM3MzAsOCBAQCB2b2lkIGFkZEFyZ1Rlc3RzKGNvbnN0IGNoYXIqIGZpbHRlciwgRGVx
dWU8UmVmUHRyPFNoYXJlZFRhc2s8dm9pZCgpPj4+JiB0YXNrcykKICAgICBSVU4odGVzdE11bEFy
Z3MzMigxLCAyKSk7CiAgICAgUlVOKHRlc3RNdWxBcmdzMzIoMHhGRkZGRkZGRiwgMHhGRkZGRkZG
RikpOwogICAgIFJVTih0ZXN0TXVsQXJnczMyKDB4RkZGRkZGRkUsIDB4RkZGRkZGRkYpKTsKLSAg
ICBSVU4odGVzdE11bEFyZ3MzMlNpZ25FeHRlbmQoMSwgMSkpOwotICAgIFJVTih0ZXN0TXVsQXJn
czMyU2lnbkV4dGVuZCgxLCAyKSk7Ci0gICAgUlVOKHRlc3RNdWxBcmdzMzJTaWduRXh0ZW5kKDB4
RkZGRkZGRkYsIDB4RkZGRkZGRkYpKTsKLSAgICBSVU4odGVzdE11bEFyZ3MzMlNpZ25FeHRlbmQo
MHhGRkZGRkZGRSwgMHhGRkZGRkZGRikpOworICAgIFJVTih0ZXN0TXVsQXJnczMyU2lnbkV4dGVu
ZCgpKTsKKyAgICBSVU4odGVzdE11bEFyZ3MzMlplcm9FeHRlbmQoKSk7CiAgICAgUlVOKHRlc3RN
dWxMb2FkVHdpY2UoKSk7CiAgICAgUlVOKHRlc3RNdWxBZGRBcmdzTGVmdCgpKTsKICAgICBSVU4o
dGVzdE11bEFkZEFyZ3NSaWdodCgpKTsK
</data>
<flag name="review"
          id="457393"
          type_id="1"
          status="+"
          setter="saam"
    />
    <flag name="commit-queue"
          id="457420"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434815</attachid>
            <date>2021-08-02 20:47:25 -0700</date>
            <delta_ts>2021-08-02 23:57:36 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-228721-20210802224723.patch</filename>
            <type>text/plain</type>
            <size>17870</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
MmIyM2UzZDMyNjQ4MjQxNDZlMzVmMmE3NTQzNzNhYTI2N2UxY2YwLi41MDBlNWQ4OWJjMjRjMDk0
NmU4Njc0MWRkZTU4YzMxNjJlNDgyOWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MCBAQAorMjAyMS0wOC0wMiAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGEgbmV3IHBhdHRlcm4gdG8gaW5zdHJ1Y3Rpb24gc2VsZWN0b3Ig
dG8gdXRpbGl6ZSBVTVVMTCBzdXBwb3J0ZWQgYnkgQVJNNjQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODcyMQorCisgICAgICAgIFJldmlld2VkIGJ5
IFNhYW0gQmFyYXRpLgorCisgICAgICAgIFVuc2lnbmVkIE11bHRpcGx5IExvbmcgKFVNVUxMKSBt
dWx0aXBsaWVzIHR3byAzMi1iaXQgcmVnaXN0ZXIgdmFsdWVzLCBhbmQgd3JpdGVzIHRoZSAKKyAg
ICAgICAgcmVzdWx0IHRvIHRoZSBkZXN0aW5hdGlvbiByZWdpc3Rlci4gVGhpcyBpbnN0cnVjdGlv
biBpcyBhbiBhbGlhcyBvZiB0aGUgVU1BRERMIGluc3RydWN0aW9uLgorCisgICAgICAgICAgICB1
bXVsbCB4ZCB3biB3bQorCisgICAgICAgIFRoZSBlcXVpdmFsZW50IHBhdHRlcm4gaXM6IGQgPSBa
RXh0MzIobikgKiBaRXh0MzIobSkKKworICAgICAgICBHaXZlbiBCMyBJUjoKKyAgICAgICAgSW50
IEAwID0gQXJndW1lbnRSZWcoJXgwKQorICAgICAgICBJbnQgQDEgPSBUcnVuYyhAMCkKKyAgICAg
ICAgSW50IEAyID0gQXJndW1lbnRSZWcoJXgxKQorICAgICAgICBJbnQgQDMgPSBUcnVuYyhAMikK
KyAgICAgICAgSW50IEA0ID0gWkV4dDMyKEAxKQorICAgICAgICBJbnQgQDUgPSBaRXh0MzIoQDMp
CisgICAgICAgIEludCBANiA9IE11bChANCwgQDUpCisgICAgICAgIFZvaWRANyA9IFJldHVybihA
NiwgVGVybWluYWwpCisKKyAgICAgICAgLy8gT2xkIG9wdGltaXplZCBBSVIKKyAgICAgICAgTW92
ZSAgICV4MCwgJXgwLCAgICAgIEA0CisgICAgICAgIE1vdmUgICAleDEsICV4MSwgICAgICBANQor
ICAgICAgICBNdWwgICAgJXgwLCAleDEsICV4MCwgQDYKKyAgICAgICAgUmV0ICAgICV4MCwgICAg
ICAgICAgIEA3CisKKyAgICAgICAgLy8gTmV3IG9wdGltaXplZCBBSVIKKyAgICAgICAgTXVsdGlw
bHlaZXJvRXh0ZW5kICV4MCwgJXgxLCAleDAsIEA2CisgICAgICAgIFJldCAgICAgICAgICAgICAg
ICAleDAsICAgICAgICAgICBANworCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNNjQuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bXVsdGlwbHlaZXJv
RXh0ZW5kMzIpOgorICAgICAgICAqIGFzc2VtYmxlci90ZXN0bWFzbS5jcHA6CisgICAgICAgIChK
U0M6OnRlc3RNdWx0aXBseVplcm9FeHRlbmQzMik6CisgICAgICAgICogYjMvQjNMb3dlclRvQWly
LmNwcDoKKyAgICAgICAgKiBiMy9haXIvQWlyT3Bjb2RlLm9wY29kZXM6CisgICAgICAgICogYjMv
dGVzdGIzLmg6CisgICAgICAgICogYjMvdGVzdGIzXzIuY3BwOgorICAgICAgICAodGVzdE11bEFy
Z3MzMlNpZ25FeHRlbmQpOgorICAgICAgICAodGVzdE11bEFyZ3MzMlplcm9FeHRlbmQpOgorICAg
ICAgICAqIGIzL3Rlc3RiM18zLmNwcDoKKyAgICAgICAgKGFkZEFyZ1Rlc3RzKToKKwogMjAyMS0w
OC0wMiAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IG5ldyBwYXR0ZXJucyB0byBpbnN0cnVjdGlvbiBzZWxlY3RvciB0byB1dGlsaXplIEFORC9FT1Iv
T1JSLXdpdGgtc2hpZnQgc3VwcG9ydGVkIGJ5IEFSTTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCmluZGV4IDI1ZWZhMmE5
YzliZGFlNjIyMzZmZDhjYmEzNmIzZDExZmMxYzcxMjYuLjdiN2Q4NDEzNGE3NDA5OWQyZmIxNzQz
NzM1YjYzZjhhYzVmNDkxNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCkBAIC05NTMsNiArOTUzLDExIEBAIHB1Ymxp
YzoKICAgICAgICAgbV9hc3NlbWJsZXIuc211bGwoZGVzdCwgbGVmdCwgcmlnaHQpOwogICAgIH0K
IAorICAgIHZvaWQgbXVsdGlwbHlaZXJvRXh0ZW5kMzIoUmVnaXN0ZXJJRCBsZWZ0LCBSZWdpc3Rl
cklEIHJpZ2h0LCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci51
bXVsbChkZXN0LCBsZWZ0LCByaWdodCk7CisgICAgfQorCiAgICAgdm9pZCBkaXYzMihSZWdpc3Rl
cklEIGRpdmlkZW5kLCBSZWdpc3RlcklEIGRpdmlzb3IsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7
CiAgICAgICAgIG1fYXNzZW1ibGVyLnNkaXY8MzI+KGRlc3QsIGRpdmlkZW5kLCBkaXZpc29yKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKaW5kZXggNTAy
OGZmYWU3NGFjZDc3MDY0YmMxNTE4NmRhYmY4M2RhZTliY2I2Yi4uZWJhMGIyMjk2NjQ5YzIzZTM1
ZTZhYWZlOWNjZjA4NGQ2ZDNlODIxMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci90ZXN0bWFzbS5jcHAKQEAgLTkyMSw2ICs5MjEsMjYgQEAgdm9pZCB0ZXN0TXVsdGlwbHlT
aWduRXh0ZW5kMzIoKQogICAgIH0KIH0KIAordm9pZCB0ZXN0TXVsdGlwbHlaZXJvRXh0ZW5kMzIo
KQoreworICAgIGZvciAoYXV0byBuT3BlcmFuZCA6IGludDMyT3BlcmFuZHMoKSkgeworICAgICAg
ICBhdXRvIG11bCA9IGNvbXBpbGUoWz1dIChDQ2FsbEhlbHBlcnMmIGppdCkgeworICAgICAgICAg
ICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoaml0KTsKKworICAgICAgICAgICAgaml0Lm11bHRpcGx5
WmVyb0V4dGVuZDMyKEdQUkluZm86OmFyZ3VtZW50R1BSMCwgR1BSSW5mbzo6YXJndW1lbnRHUFIx
LCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisKKyAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVw
aWxvZ3VlKGppdCk7CisgICAgICAgICAgICBqaXQucmV0KCk7CisgICAgICAgIH0pOworCisgICAg
ICAgIGZvciAoYXV0byBtT3BlcmFuZCA6IGludDMyT3BlcmFuZHMoKSkgeworICAgICAgICAgICAg
dWludDMyX3QgbiA9IG5PcGVyYW5kOworICAgICAgICAgICAgdWludDMyX3QgbSA9IG1PcGVyYW5k
OworICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90PihtdWwsIG4sIG0pLCBzdGF0
aWNfY2FzdDx1aW50NjRfdD4obikgKiBzdGF0aWNfY2FzdDx1aW50NjRfdD4obSkpOworICAgICAg
ICB9CisgICAgfQorfQorCiB2b2lkIHRlc3RNdWx0aXBseUFkZFNpZ25FeHRlbmQzMigpCiB7CiAg
ICAgLy8gZCA9IFNFeHQzMihuKSAqIFNFeHQzMihtKSArIGEKQEAgLTU2NDksNiArNTY2OSw3IEBA
IHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikgV1RGX0lHTk9SRVNfVEhSRUFEX1NBRkVUWV9B
TkFMWVNJUwogICAgIFJVTih0ZXN0TG9hZFN0b3JlUGFpcjY0SW50NjQoKSk7CiAgICAgUlVOKHRl
c3RMb2FkU3RvcmVQYWlyNjREb3VibGUoKSk7CiAgICAgUlVOKHRlc3RNdWx0aXBseVNpZ25FeHRl
bmQzMigpKTsKKyAgICBSVU4odGVzdE11bHRpcGx5WmVyb0V4dGVuZDMyKCkpOwogCiAgICAgUlVO
KHRlc3RTdWIzMkFyZ3MoKSk7CiAgICAgUlVOKHRlc3RTdWIzMkltbSgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKaW5kZXggZDMwZGRhOTAyMTNkYTM4ZWZmZTcx
Yzc5OWVhM2ZlODIyNjNkZWFkNi4uNGEzZjkyNmYxMDQ0YzY2YTNiYTg1NTVmMjE1ZWIyOGJlOTE3
YzA5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKQEAgLTQ5
OSw3ICs0OTksNyBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAg
ICBib29sIGlzTWVyZ2VhYmxlVmFsdWUoVmFsdWUqIHYsIEIzOjpPcGNvZGUgYjNPcGNvZGUsIGJv
b2wgY2hlY2tDYW5CZUludGVybmFsKQorICAgIGJvb2wgaXNNZXJnZWFibGVWYWx1ZShWYWx1ZSog
diwgQjM6Ok9wY29kZSBiM09wY29kZSwgYm9vbCBjaGVja0NhbkJlSW50ZXJuYWwgPSBmYWxzZSkK
ICAgICB7IAogICAgICAgICBpZiAodi0+b3Bjb2RlKCkgIT0gYjNPcGNvZGUpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CkBAIC01MTYsOSArNTE2LDkgQEAgcHJpdmF0ZToKICNpZiBDUFUoQVJN
NjQpCiAgICAgICAgIC8vIE1heWJlLCB0aGUgaWRlYWwgYXBwcm9hY2ggaXMgdG8gaW50cm9kdWNl
IGEgZGVjb3JhdG9yIChJbmRleEBFWFQpIHRvIHRoZSBBaXIgb3BlcmFuZCAKICAgICAgICAgLy8g
dG8gcHJvdmlkZSBhbiBleHRlbnNpb24gb3Bwb3J0dW5pdHkgZm9yIHRoZSBzcGVjaWZpYyBmb3Jt
IHVuZGVyIHRoZSBBaXIgb3Bjb2RlLgotICAgICAgICBpZiAoaXNNZXJnZWFibGVWYWx1ZShpbmRl
eCwgWkV4dDMyLCBmYWxzZSkpCisgICAgICAgIGlmIChpc01lcmdlYWJsZVZhbHVlKGluZGV4LCBa
RXh0MzIpKQogICAgICAgICAgICAgcmV0dXJuIEFyZzo6aW5kZXgoYmFzZSwgdG1wKGluZGV4LT5j
aGlsZCgwKSksIHNjYWxlLCBvZmZzZXQsIE1hY3JvQXNzZW1ibGVyOjpFeHRlbmQ6OlpFeHQzMik7
Ci0gICAgICAgIGlmIChpc01lcmdlYWJsZVZhbHVlKGluZGV4LCBTRXh0MzIsIGZhbHNlKSkKKyAg
ICAgICAgaWYgKGlzTWVyZ2VhYmxlVmFsdWUoaW5kZXgsIFNFeHQzMikpCiAgICAgICAgICAgICBy
ZXR1cm4gQXJnOjppbmRleChiYXNlLCB0bXAoaW5kZXgtPmNoaWxkKDApKSwgc2NhbGUsIG9mZnNl
dCwgTWFjcm9Bc3NlbWJsZXI6OkV4dGVuZDo6U0V4dDMyKTsKICNlbmRpZgogICAgICAgICByZXR1
cm4gQXJnOjppbmRleChiYXNlLCB0bXAoaW5kZXgpLCBzY2FsZSwgb2Zmc2V0KTsKQEAgLTI2ODks
MTAgKzI2ODksMTAgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhaXJP
cGNvZGUgIT0gTXVsdGlwbHlBZGQ2NCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gQWlyOjpPb3BzOwogICAgICAgICAgICAgICAgICAgICAgICAgLy8gU01BRERMOiBkID0gU0V4
dDMyKG4pICogU0V4dDMyKG0pICsgYQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzTWVy
Z2VhYmxlVmFsdWUobXVsdGlwbHlMZWZ0LCBTRXh0MzIsIHRydWUpICYmIGlzTWVyZ2VhYmxlVmFs
dWUobXVsdGlwbHlSaWdodCwgU0V4dDMyLCB0cnVlKSkgCisgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoaXNNZXJnZWFibGVWYWx1ZShtdWx0aXBseUxlZnQsIFNFeHQzMikgJiYgaXNNZXJnZWFi
bGVWYWx1ZShtdWx0aXBseVJpZ2h0LCBTRXh0MzIpKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBNdWx0aXBseUFkZFNpZ25FeHRlbmQzMjsKICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIFVNQURETDogZCA9IFpFeHQzMihuKSAqIFpFeHQzMihtKSArIGEKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChpc01lcmdlYWJsZVZhbHVlKG11bHRpcGx5TGVmdCwgWkV4dDMyLCB0
cnVlKSAmJiBpc01lcmdlYWJsZVZhbHVlKG11bHRpcGx5UmlnaHQsIFpFeHQzMiwgdHJ1ZSkpIAor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzTWVyZ2VhYmxlVmFsdWUobXVsdGlwbHlMZWZ0
LCBaRXh0MzIpICYmIGlzTWVyZ2VhYmxlVmFsdWUobXVsdGlwbHlSaWdodCwgWkV4dDMyKSkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTXVsdGlwbHlBZGRaZXJvRXh0ZW5kMzI7
CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQWlyOjpPb3BzOwogICAgICAgICAgICAg
ICAgICAgICB9OwpAQCAtMjcwMCw4ICsyNzAwLDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAg
ICAgICAgQWlyOjpPcGNvZGUgbmV3QWlyT3Bjb2RlID0gdHJ5TmV3QWlyT3Bjb2RlKCk7CiAgICAg
ICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkRm9ybShuZXdBaXJPcGNvZGUsIEFyZzo6VG1wLCBB
cmc6OlRtcCwgQXJnOjpUbXAsIEFyZzo6VG1wKSkgewogICAgICAgICAgICAgICAgICAgICAgICAg
YXBwZW5kKG5ld0Fpck9wY29kZSwgdG1wKG11bHRpcGx5TGVmdC0+Y2hpbGQoMCkpLCB0bXAobXVs
dGlwbHlSaWdodC0+Y2hpbGQoMCkpLCB0bXAocmlnaHQpLCB0bXAobV92YWx1ZSkpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgY29tbWl0SW50ZXJuYWwobXVsdGlwbHlMZWZ0KTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbW1pdEludGVybmFsKG11bHRpcGx5UmlnaHQpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgY29tbWl0SW50ZXJuYWwobGVmdCk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgfQpAQCAtMjc1NSwxMCArMjc1
MywxMCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICBpZiAoYWlyT3Bjb2RlICE9IE11
bHRpcGx5U3ViNjQpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQWlyOjpPb3BzOwog
ICAgICAgICAgICAgICAgICAgICAvLyBTTVNVQkw6IGQgPSBhIC0gU0V4dDMyKG4pICogU0V4dDMy
KG0pCi0gICAgICAgICAgICAgICAgICAgIGlmIChpc01lcmdlYWJsZVZhbHVlKG11bHRpcGx5TGVm
dCwgU0V4dDMyLCB0cnVlKSAmJiBpc01lcmdlYWJsZVZhbHVlKG11bHRpcGx5UmlnaHQsIFNFeHQz
MiwgdHJ1ZSkpIAorICAgICAgICAgICAgICAgICAgICBpZiAoaXNNZXJnZWFibGVWYWx1ZShtdWx0
aXBseUxlZnQsIFNFeHQzMikgJiYgaXNNZXJnZWFibGVWYWx1ZShtdWx0aXBseVJpZ2h0LCBTRXh0
MzIpKQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE11bHRpcGx5U3ViU2lnbkV4dGVu
ZDMyOwogICAgICAgICAgICAgICAgICAgICAvLyBVTVNVQkw6IGQgPSBhIC0gWkV4dDMyKG4pICog
WkV4dDMyKG0pCi0gICAgICAgICAgICAgICAgICAgIGlmIChpc01lcmdlYWJsZVZhbHVlKG11bHRp
cGx5TGVmdCwgWkV4dDMyLCB0cnVlKSAmJiBpc01lcmdlYWJsZVZhbHVlKG11bHRpcGx5UmlnaHQs
IFpFeHQzMiwgdHJ1ZSkpIAorICAgICAgICAgICAgICAgICAgICBpZiAoaXNNZXJnZWFibGVWYWx1
ZShtdWx0aXBseUxlZnQsIFpFeHQzMikgJiYgaXNNZXJnZWFibGVWYWx1ZShtdWx0aXBseVJpZ2h0
LCBaRXh0MzIpKQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE11bHRpcGx5U3ViWmVy
b0V4dGVuZDMyOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gQWlyOjpPb3BzOwogICAgICAg
ICAgICAgICAgIH07CkBAIC0yNzY2LDggKzI3NjQsNiBAQCBwcml2YXRlOgogICAgICAgICAgICAg
ICAgIEFpcjo6T3Bjb2RlIG5ld0Fpck9wY29kZSA9IHRyeU5ld0Fpck9wY29kZSgpOwogICAgICAg
ICAgICAgICAgIGlmIChpc1ZhbGlkRm9ybShuZXdBaXJPcGNvZGUsIEFyZzo6VG1wLCBBcmc6OlRt
cCwgQXJnOjpUbXAsIEFyZzo6VG1wKSkgewogICAgICAgICAgICAgICAgICAgICBhcHBlbmQobmV3
QWlyT3Bjb2RlLCB0bXAobXVsdGlwbHlMZWZ0LT5jaGlsZCgwKSksIHRtcChtdWx0aXBseVJpZ2h0
LT5jaGlsZCgwKSksIHRtcChsZWZ0KSwgdG1wKG1fdmFsdWUpKTsKLSAgICAgICAgICAgICAgICAg
ICAgY29tbWl0SW50ZXJuYWwobXVsdGlwbHlMZWZ0KTsKLSAgICAgICAgICAgICAgICAgICAgY29t
bWl0SW50ZXJuYWwobXVsdGlwbHlSaWdodCk7CiAgICAgICAgICAgICAgICAgICAgIGNvbW1pdElu
dGVybmFsKHJpZ2h0KTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
ICAgICAgICAgfQpAQCAtMjgwOCwxMCArMjgwNCwxMCBAQCBwcml2YXRlOgogICAgICAgICAgICAg
ICAgICAgICBpZiAoYWlyT3Bjb2RlICE9IE11bHRpcGx5TmVnNjQpCiAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gQWlyOjpPb3BzOwogICAgICAgICAgICAgICAgICAgICAvLyBTTU5FR0w6
IGQgPSAtKFNFeHQzMihuKSAqIFNFeHQzMihtKSkKLSAgICAgICAgICAgICAgICAgICAgaWYgKGlz
TWVyZ2VhYmxlVmFsdWUobXVsdGlwbHlMZWZ0LCBTRXh0MzIsIHRydWUpICYmIGlzTWVyZ2VhYmxl
VmFsdWUobXVsdGlwbHlSaWdodCwgU0V4dDMyLCB0cnVlKSkgCisgICAgICAgICAgICAgICAgICAg
IGlmIChpc01lcmdlYWJsZVZhbHVlKG11bHRpcGx5TGVmdCwgU0V4dDMyKSAmJiBpc01lcmdlYWJs
ZVZhbHVlKG11bHRpcGx5UmlnaHQsIFNFeHQzMikpCiAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gTXVsdGlwbHlOZWdTaWduRXh0ZW5kMzI7CiAgICAgICAgICAgICAgICAgICAgIC8vIFVN
TkVHTDogZCA9IC0oWkV4dDMyKG4pICogWkV4dDMyKG0pKQotICAgICAgICAgICAgICAgICAgICBp
ZiAoaXNNZXJnZWFibGVWYWx1ZShtdWx0aXBseUxlZnQsIFpFeHQzMiwgdHJ1ZSkgJiYgaXNNZXJn
ZWFibGVWYWx1ZShtdWx0aXBseVJpZ2h0LCBaRXh0MzIsIHRydWUpKSAKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKGlzTWVyZ2VhYmxlVmFsdWUobXVsdGlwbHlMZWZ0LCBaRXh0MzIpICYmIGlzTWVy
Z2VhYmxlVmFsdWUobXVsdGlwbHlSaWdodCwgWkV4dDMyKSkKICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBNdWx0aXBseU5lZ1plcm9FeHRlbmQzMjsKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIEFpcjo6T29wczsKICAgICAgICAgICAgICAgICB9OwpAQCAtMjgxOSw4ICsyODE1LDYg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBBaXI6Ok9wY29kZSBuZXdBaXJPcGNvZGUgPSB0
cnlOZXdBaXJPcGNvZGUoKTsKICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0obmV3QWly
T3Bjb2RlLCBBcmc6OlRtcCwgQXJnOjpUbXAsIEFyZzo6VG1wKSkgewogICAgICAgICAgICAgICAg
ICAgICBhcHBlbmQobmV3QWlyT3Bjb2RlLCB0bXAobXVsdGlwbHlMZWZ0LT5jaGlsZCgwKSksIHRt
cChtdWx0aXBseVJpZ2h0LT5jaGlsZCgwKSksIHRtcChtX3ZhbHVlKSk7Ci0gICAgICAgICAgICAg
ICAgICAgIGNvbW1pdEludGVybmFsKG11bHRpcGx5TGVmdCk7Ci0gICAgICAgICAgICAgICAgICAg
IGNvbW1pdEludGVybmFsKG11bHRpcGx5UmlnaHQpOwogICAgICAgICAgICAgICAgICAgICBjb21t
aXRJbnRlcm5hbChtX3ZhbHVlLT5jaGlsZCgwKSk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICAgICAgICAgIH0KQEAgLTI4NDIsMjkgKzI4MzYsMzQgQEAgcHJpdmF0
ZToKICAgICAgICAgfQogCiAgICAgICAgIGNhc2UgTXVsOiB7Ci0gICAgICAgICAgICBpZiAobV92
YWx1ZS0+dHlwZSgpID09IEludDY0Ci0gICAgICAgICAgICAgICAgJiYgaXNWYWxpZEZvcm0oTXVs
dGlwbHlTaWduRXh0ZW5kMzIsIEFyZzo6VG1wLCBBcmc6OlRtcCwgQXJnOjpUbXApCi0gICAgICAg
ICAgICAgICAgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPm9wY29kZSgpID09IFNFeHQzMgotICAgICAg
ICAgICAgICAgICYmICFtX2xvY2tlZC5jb250YWlucyhtX3ZhbHVlLT5jaGlsZCgwKSkpIHsKLSAg
ICAgICAgICAgICAgICBWYWx1ZSogb3BMZWZ0ID0gbV92YWx1ZS0+Y2hpbGQoMCk7Ci0gICAgICAg
ICAgICAgICAgVmFsdWUqIGxlZnQgPSBvcExlZnQtPmNoaWxkKDApOwotICAgICAgICAgICAgICAg
IFZhbHVlKiBvcFJpZ2h0ID0gbV92YWx1ZS0+Y2hpbGQoMSk7Ci0gICAgICAgICAgICAgICAgVmFs
dWUqIHJpZ2h0ID0gbnVsbHB0cjsKLQotICAgICAgICAgICAgICAgIGlmIChvcFJpZ2h0LT5vcGNv
ZGUoKSA9PSBTRXh0MzIgJiYgIW1fbG9ja2VkLmNvbnRhaW5zKG9wUmlnaHQtPmNoaWxkKDApKSkg
ewotICAgICAgICAgICAgICAgICAgICByaWdodCA9IG9wUmlnaHQtPmNoaWxkKDApOwotICAgICAg
ICAgICAgICAgIH0gZWxzZSBpZiAobV92YWx1ZS0+Y2hpbGQoMSktPmlzUmVwcmVzZW50YWJsZUFz
PGludDMyX3Q+KCkgJiYgIW1fbG9ja2VkLmNvbnRhaW5zKG1fdmFsdWUtPmNoaWxkKDEpKSkgewot
ICAgICAgICAgICAgICAgICAgICAvLyBXZSBqdXN0IHVzZSB0aGUgNjQtYml0IGNvbnN0IGludCBh
cyBhIDMyIGJpdCBjb25zdCBpbnQgZGlyZWN0bHkKLSAgICAgICAgICAgICAgICAgICAgcmlnaHQg
PSBvcFJpZ2h0OwotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFZhbHVlKiBsZWZ0ID0g
bV92YWx1ZS0+Y2hpbGQoMCk7CisgICAgICAgICAgICBWYWx1ZSogcmlnaHQgPSBtX3ZhbHVlLT5j
aGlsZCgxKTsKIAotICAgICAgICAgICAgICAgIGlmIChyaWdodCkgewotICAgICAgICAgICAgICAg
ICAgICBhcHBlbmQoTXVsdGlwbHlTaWduRXh0ZW5kMzIsIHRtcChsZWZ0KSwgdG1wKHJpZ2h0KSwg
dG1wKG1fdmFsdWUpKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
YXV0byB0cnlBcHBlbmRNdWx0aXBseVdpdGhFeHRlbmQgPSBbJl0gKCkgLT4gYm9vbCB7CisgICAg
ICAgICAgICAgICAgYXV0byB0cnlBaXJPcGNvZGUgPSBbJl0gKCkgLT4gQWlyOjpPcGNvZGUgewor
ICAgICAgICAgICAgICAgICAgICBpZiAobV92YWx1ZS0+dHlwZSgpICE9IEludDY0KQorICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIEFpcjo6T29wczsKKyAgICAgICAgICAgICAgICAgICAg
Ly8gU01VTEw6IGQgPSBTRXh0MzIobikgKiBTRXh0MzIobSkKKyAgICAgICAgICAgICAgICAgICAg
aWYgKGlzTWVyZ2VhYmxlVmFsdWUobGVmdCwgU0V4dDMyKSAmJiBpc01lcmdlYWJsZVZhbHVlKHJp
Z2h0LCBTRXh0MzIpKSAKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBNdWx0aXBseVNp
Z25FeHRlbmQzMjsKKyAgICAgICAgICAgICAgICAgICAgLy8gVU1VTEw6IGQgPSBaRXh0MzIobikg
KiBaRXh0MzIobSkKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzTWVyZ2VhYmxlVmFsdWUobGVm
dCwgWkV4dDMyKSAmJiBpc01lcmdlYWJsZVZhbHVlKHJpZ2h0LCBaRXh0MzIpKSAKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBNdWx0aXBseVplcm9FeHRlbmQzMjsKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEFpcjo6T29wczsKKyAgICAgICAgICAgICAgICB9OworCisgICAgICAg
ICAgICAgICAgQWlyOjpPcGNvZGUgb3Bjb2RlID0gdHJ5QWlyT3Bjb2RlKCk7CisgICAgICAgICAg
ICAgICAgaWYgKGlzVmFsaWRGb3JtKG9wY29kZSwgQXJnOjpUbXAsIEFyZzo6VG1wLCBBcmc6OlRt
cCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYXBwZW5kKG9wY29kZSwgdG1wKGxlZnQtPmNoaWxk
KDApKSwgdG1wKHJpZ2h0LT5jaGlsZCgwKSksIHRtcChtX3ZhbHVlKSk7CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGFwcGVuZEJpbk9wPE11bDMyLCBNdWw2NCwgTXVsRG91YmxlLCBNdWxGbG9hdCwg
Q29tbXV0YXRpdmU+KAotICAgICAgICAgICAgICAgIG1fdmFsdWUtPmNoaWxkKDApLCBtX3ZhbHVl
LT5jaGlsZCgxKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAg
fTsKKworICAgICAgICAgICAgaWYgKHRyeUFwcGVuZE11bHRpcGx5V2l0aEV4dGVuZCgpKQorICAg
ICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgYXBwZW5kQmluT3A8TXVsMzIsIE11
bDY0LCBNdWxEb3VibGUsIE11bEZsb2F0LCBDb21tdXRhdGl2ZT4obGVmdCwgcmlnaHQpOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTMwMDIsNyArMzAwMSw3IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICAvLyAgICAgICAgbWFzayA9ICgxIDw8IGxvd1dpZHRoKSAtIDEKICAg
ICAgICAgICAgIGF1dG8gdHJ5QXBwZW5kRVhUUiA9IFsmXSAoVmFsdWUqIGxlZnQsIFZhbHVlKiBy
aWdodCkgLT4gYm9vbCB7CiAgICAgICAgICAgICAgICAgQWlyOjpPcGNvZGUgb3Bjb2RlID0gb3Bj
b2RlRm9yVHlwZShFeHRyYWN0UmVnaXN0ZXIzMiwgRXh0cmFjdFJlZ2lzdGVyNjQsIG1fdmFsdWUt
PnR5cGUoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKCFpc1ZhbGlkRm9ybShvcGNvZGUsIEFyZzo6
VG1wLCBBcmc6OlRtcCwgQXJnOjpJbW0sIEFyZzo6VG1wKSkgCisgICAgICAgICAgICAgICAgaWYg
KCFpc1ZhbGlkRm9ybShvcGNvZGUsIEFyZzo6VG1wLCBBcmc6OlRtcCwgQXJnOjpJbW0sIEFyZzo6
VG1wKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAg
IGlmIChsZWZ0LT5vcGNvZGUoKSAhPSBTaGwgfHwgbGVmdC0+Y2hpbGQoMCktPm9wY29kZSgpICE9
IEJpdEFuZCB8fCByaWdodC0+b3Bjb2RlKCkgIT0gWlNocikKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtMzIwOCw3ICszMjA3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
ICAgICAgICAgICAgIFhvck5vdExlZnRTaGlmdDMyLCBYb3JOb3RMZWZ0U2hpZnQ2NCwgCiAgICAg
ICAgICAgICAgICAgICAgICAgICBYb3JOb3RSaWdodFNoaWZ0MzIsIFhvck5vdFJpZ2h0U2hpZnQ2
NCwgCiAgICAgICAgICAgICAgICAgICAgICAgICBYb3JOb3RVbnNpZ25lZFJpZ2h0U2hpZnQzMiwg
WG9yTm90VW5zaWduZWRSaWdodFNoaWZ0NjQpOwotICAgICAgICAgICAgICAgICAgICBpZiAoIWlz
VmFsaWRGb3JtKG9wY29kZSwgQXJnOjpUbXAsIEFyZzo6VG1wLCBBcmc6OkltbSwgQXJnOjpUbXAp
KSAKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1ZhbGlkRm9ybShvcGNvZGUsIEFyZzo6VG1w
LCBBcmc6OlRtcCwgQXJnOjpJbW0sIEFyZzo6VG1wKSkKICAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgVmFsdWUqIG1WYWx1ZSA9IHNoaWZ0
VmFsdWUtPmNoaWxkKDApOwogICAgICAgICAgICAgICAgICAgICBWYWx1ZSogYW1vdW50VmFsdWUg
PSBzaGlmdFZhbHVlLT5jaGlsZCgxKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0Fpck9wY29kZS5vcGNvZGVzCmluZGV4IDljOGZlNDhkYjAzYmEzMWEzNThkNGQ5NmU3OWNjM2Vm
NTY3YWUwYTUuLmY4NTQ1NzUzNzQzYWYyNWMyYjU4N2VlYmZkZGE0MjU3NzlmZGJlYzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcwpAQCAtMjg0
LDYgKzI4NCw5IEBAIGFybTY0OiBNdWx0aXBseU5lZ1plcm9FeHRlbmQzMiBVOkc6MzIsIFU6Rzoz
MiwgRDpHOjY0CiBhcm02NDogTXVsdGlwbHlTaWduRXh0ZW5kMzIgVTpHOjMyLCBVOkc6MzIsIEQ6
Rzo2NAogICAgIFRtcCwgVG1wLCBUbXAKIAorYXJtNjQ6IE11bHRpcGx5WmVyb0V4dGVuZDMyIFU6
RzozMiwgVTpHOjMyLCBEOkc6NjQKKyAgICBUbXAsIFRtcCwgVG1wCisKIGFybTY0OiBEaXYzMiBV
Okc6MzIsIFU6RzozMiwgWkQ6RzozMgogICAgIFRtcCwgVG1wLCBUbXAKIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL3Rlc3RiMy5oCmluZGV4IDBhMmNmMjM2NDczN2NjM2MzMDdiMDhmNDg1OGQ2NWIxMWZjYjhh
ZjEuLjlhYTQwZDEyMWVlNGVjZjI2ZTk0ZjdlNTlmYjE0ZjkzNWJlYTljYjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvdGVzdGIzLmgKQEAgLTkzOSw3ICs5MzksOCBAQCB2b2lkIHRlc3RNdWxOZWdBcmdB
cmcoaW50LCBpbnQpOwogdm9pZCB0ZXN0TXVsQXJnSW1tKGludDY0X3QsIGludDY0X3QpOwogdm9p
ZCB0ZXN0TXVsSW1tQXJnKGludCwgaW50KTsKIHZvaWQgdGVzdE11bEFyZ3MzMihpbnQsIGludCk7
Ci12b2lkIHRlc3RNdWxBcmdzMzJTaWduRXh0ZW5kKGludCwgaW50KTsKK3ZvaWQgdGVzdE11bEFy
Z3MzMlNpZ25FeHRlbmQoKTsKK3ZvaWQgdGVzdE11bEFyZ3MzMlplcm9FeHRlbmQoKTsKIHZvaWQg
dGVzdE11bEltbTMyU2lnbkV4dGVuZChjb25zdCBpbnQsIGludCk7CiB2b2lkIHRlc3RNdWxMb2Fk
VHdpY2UoKTsKIHZvaWQgdGVzdE11bEFkZEFyZ3NMZWZ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L3Rlc3RiM18yLmNwcAppbmRleCBmYTY0YzhiM2MyNmYyZWE3YzkwNzk1OTgxNmQxZjYwZTY5OWIx
MzJmLi41MTM2ODE3ZjJjYjQ5YTFmMjVhNmIyNTU2YzUwOTMwY2NjODVkZDhjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzIuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy90ZXN0YjNfMi5jcHAKQEAgLTEyMjgsMTAgKzEyMjgsMTAgQEAgdm9pZCB0
ZXN0TXVsQXJnczMyKGludCBhLCBpbnQgYikKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4o
cHJvYywgYSwgYikgPT0gYSAqIGIpOwogfQogCi12b2lkIHRlc3RNdWxBcmdzMzJTaWduRXh0ZW5k
KGludCBhLCBpbnQgYikKK3ZvaWQgdGVzdE11bEFyZ3MzMlNpZ25FeHRlbmQoKQogewogICAgIFBy
b2NlZHVyZSBwcm9jOwotICAgIGlmIChwcm9jLm9wdExldmVsKCkgPCAxKQorICAgIGlmIChwcm9j
Lm9wdExldmVsKCkgPCAyKQogICAgICAgICByZXR1cm47CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJnMSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCkBAIC0xMjQ2LDggKzEyNDYsNDYgQEAgdm9pZCB0ZXN0TXVsQXJnczMyU2lnbkV4dGVuZChp
bnQgYSwgaW50IGIpCiAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIG11bCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsK
KyAgICBpZiAoaXNBUk02NCgpKQorICAgICAgICBjaGVja1VzZXNJbnN0cnVjdGlvbigqY29kZSwg
InNtdWxsIik7CisKKyAgICBmb3IgKGF1dG8gbk9wZXJhbmQgOiBpbnQzMk9wZXJhbmRzKCkpIHsK
KyAgICAgICAgZm9yIChhdXRvIG1PcGVyYW5kIDogaW50MzJPcGVyYW5kcygpKSB7CisgICAgICAg
ICAgICBpbnQzMl90IG4gPSBuT3BlcmFuZC52YWx1ZTsKKyAgICAgICAgICAgIGludDMyX3QgbSA9
IG1PcGVyYW5kLnZhbHVlOworICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludDY0X3Q+KCpj
b2RlLCBuLCBtKSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4obikgKiBzdGF0aWNfY2FzdDxpbnQ2NF90
PihtKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgdGVzdE11bEFyZ3MzMlplcm9FeHRl
bmQoKQoreworICAgIFByb2NlZHVyZSBwcm9jOworICAgIGlmIChwcm9jLm9wdExldmVsKCkgPCAy
KQorICAgICAgICByZXR1cm47CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKKyAgICBWYWx1ZSogYXJnMSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgIHBy
b2MsIFRydW5jLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKKyAgICBWYWx1
ZSogYXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgIHByb2MsIFRydW5jLCBP
cmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKKyAgICBWYWx1ZSogbGVmdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgWkV4dDMyLCBPcmlnaW4oKSwgYXJnMSk7CisgICAg
VmFsdWUqIHJpZ2h0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBaRXh0MzIsIE9yaWdp
bigpLCBhcmcyKTsKKyAgICBWYWx1ZSogbXVsID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBNdWwsIE9yaWdpbigpLCBsZWZ0LCByaWdodCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIG11bCk7CisKKyAgICBhdXRvIGNvZGUgPSBj
b21waWxlUHJvYyhwcm9jKTsKKyAgICBpZiAoaXNBUk02NCgpKQorICAgICAgICBjaGVja1VzZXNJ
bnN0cnVjdGlvbigqY29kZSwgInVtdWxsIik7CiAKLSAgICBDSEVDSyhpbnZva2U8bG9uZyBpbnQ+
KCpjb2RlLCBhLCBiKSA9PSAoKGxvbmcgaW50KSBhKSAqICgobG9uZyBpbnQpIGIpKTsKKyAgICBm
b3IgKGF1dG8gbk9wZXJhbmQgOiBpbnQzMk9wZXJhbmRzKCkpIHsKKyAgICAgICAgZm9yIChhdXRv
IG1PcGVyYW5kIDogaW50MzJPcGVyYW5kcygpKSB7CisgICAgICAgICAgICB1aW50MzJfdCBuID0g
bk9wZXJhbmQudmFsdWU7CisgICAgICAgICAgICB1aW50MzJfdCBtID0gbU9wZXJhbmQudmFsdWU7
CisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+KCpjb2RlLCBuLCBtKSwgc3Rh
dGljX2Nhc3Q8dWludDY0X3Q+KG4pICogc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG0pKTsKKyAgICAg
ICAgfQorICAgIH0KIH0KIAogdm9pZCB0ZXN0TXVsSW1tMzJTaWduRXh0ZW5kKGNvbnN0IGludCBh
LCBpbnQgYikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzMuY3BwCmluZGV4IGI4OWIwMTlm
ZDhiZjVmMDcxMmY0NjY4NjUwZjYxY2RmODFkYTRjODMuLjUwNWZkNjM5MDNjZThmMjI0MmRlNjAz
NjMyODkyOTBjYTg4MTlhNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90
ZXN0YjNfMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18zLmNwcApA
QCAtMzczMCwxMCArMzczMCw4IEBAIHZvaWQgYWRkQXJnVGVzdHMoY29uc3QgY2hhciogZmlsdGVy
LCBEZXF1ZTxSZWZQdHI8U2hhcmVkVGFzazx2b2lkKCk+Pj4mIHRhc2tzKQogICAgIFJVTih0ZXN0
TXVsQXJnczMyKDEsIDIpKTsKICAgICBSVU4odGVzdE11bEFyZ3MzMigweEZGRkZGRkZGLCAweEZG
RkZGRkZGKSk7CiAgICAgUlVOKHRlc3RNdWxBcmdzMzIoMHhGRkZGRkZGRSwgMHhGRkZGRkZGRikp
OwotICAgIFJVTih0ZXN0TXVsQXJnczMyU2lnbkV4dGVuZCgxLCAxKSk7Ci0gICAgUlVOKHRlc3RN
dWxBcmdzMzJTaWduRXh0ZW5kKDEsIDIpKTsKLSAgICBSVU4odGVzdE11bEFyZ3MzMlNpZ25FeHRl
bmQoMHhGRkZGRkZGRiwgMHhGRkZGRkZGRikpOwotICAgIFJVTih0ZXN0TXVsQXJnczMyU2lnbkV4
dGVuZCgweEZGRkZGRkZFLCAweEZGRkZGRkZGKSk7CisgICAgUlVOKHRlc3RNdWxBcmdzMzJTaWdu
RXh0ZW5kKCkpOworICAgIFJVTih0ZXN0TXVsQXJnczMyWmVyb0V4dGVuZCgpKTsKICAgICBSVU4o
dGVzdE11bExvYWRUd2ljZSgpKTsKICAgICBSVU4odGVzdE11bEFkZEFyZ3NMZWZ0KCkpOwogICAg
IFJVTih0ZXN0TXVsQWRkQXJnc1JpZ2h0KCkpOwo=
</data>
<flag name="commit-queue"
          id="457431"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>