<?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>227195</bug_id>
          
          <creation_ts>2021-06-20 10:53:13 -0700</creation_ts>
          <short_desc>Add a new pattern to instruction selector to utilize SMSUBL supported by ARM64</short_desc>
          <delta_ts>2021-06-21 20:00:38 -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></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>kdaveport7</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>1771174</commentid>
    <comment_count>0</comment_count>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-06-20 10:53:13 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771280</commentid>
    <comment_count>1</comment_count>
      <attachid>431859</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-06-21 07:46:53 -0700</bug_when>
    <thetext>Created attachment 431859
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771357</commentid>
    <comment_count>2</comment_count>
      <attachid>431859</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-06-21 11:08:44 -0700</bug_when>
    <thetext>Comment on attachment 431859
Patch

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

looks good you should probably remove your comments before we land this though.

&gt; Source/JavaScriptCore/b3/B3LowerToAir.cpp:2589
&gt; +                    if (m_locked.contains(v-&gt;child(0)) || m_locked.contains(v-&gt;child(1))) // &lt;---- keep this? Why?

Per offline discussion, we need this in case we have a pattern that matches against the Mul(Something(...), Something(...)).

&gt; Source/JavaScriptCore/b3/B3LowerToAir.cpp:2604
&gt; +                            if (m_locked.contains(v-&gt;child(0))) // &lt;---- keep this? Why?

Ditto. e.g. SExt32(Something(...))

&gt; Source/JavaScriptCore/b3/testb3_2.cpp:1221
&gt; +    Value* addValue = root-&gt;appendNew&lt;Value&gt;(proc, Sub, Origin(), aValue, mulValue);

nit: should probably be subValue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771361</commentid>
    <comment_count>3</comment_count>
      <attachid>431882</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-06-21 11:15:27 -0700</bug_when>
    <thetext>Created attachment 431882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771362</commentid>
    <comment_count>4</comment_count>
      <attachid>431882</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-06-21 11:18:57 -0700</bug_when>
    <thetext>Comment on attachment 431882
Patch

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771386</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-21 11:56:07 -0700</bug_when>
    <thetext>Committed r279075 (238995@main): &lt;https://commits.webkit.org/238995@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 431882.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431859</attachid>
            <date>2021-06-21 07:46:53 -0700</date>
            <delta_ts>2021-06-21 11:15:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227195-20210621094652.patch</filename>
            <type>text/plain</type>
            <size>13853</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
MzRjY2YyOTUyZTg2ZDc4ZDM3MTg1M2YwMjc0OGQzYzU0NDhlNTAwLi4yMTNjYWUxZTZhNDY4NmYw
OTg2ODQxYjI0OGVkNGM3YzkwMDRiZWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OCBAQAorMjAyMS0wNi0yMSAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGEgbmV3IHBhdHRlcm4gdG8gaW5zdHJ1Y3Rpb24gc2VsZWN0b3Ig
dG8gdXRpbGl6ZSBTTVNVQkwgc3VwcG9ydGVkIGJ5IEFSTTY0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcxOTUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaWduZWQgTXVsdGlwbHktU3VidHJhY3QgTG9u
ZyhTTVNVQkwpLCBzdXBwb3J0ZWQgYnkgQVJNNjQsIG11bHRpcGxpZXMgdHdvIAorICAgICAgICAz
Mi1iaXQgcmVnaXN0ZXIgdmFsdWVzLCBzdWJ0cmFjdHMgdGhlIHByb2R1Y3QgZnJvbSBhIDY0LWJp
dCByZWdpc3RlciB2YWx1ZSwgCisgICAgICAgIGFuZCB3cml0ZXMgdGhlIHJlc3VsdCA2NC1iaXQg
ZGVzdGluYXRpb24gcmVnaXN0ZXIuIFRoZSBpbnN0cnVjdGlvbiBzZWxlY3RvciAKKyAgICAgICAg
Y2FuIHV0aWxpemUgdGhpcyB0byBsb3dlcmluZyBjZXJ0YWluIHBhdHRlcm5zIGluIEIzIElSIGJl
Zm9yZSBmdXJ0aGVyIEFpciAKKyAgICAgICAgb3B0aW1pemF0aW9uLiBHaXZlbiB0aGUgb3BlcmF0
aW9uOgorCisgICAgICAgIHNtc3VibCBkLCBuLCBtLCBhCisKKyAgICAgICAgVGhlIGVxdWl2YWxl
bnQgcGF0dGVybiB3b3VsZCBiZToKKworICAgICAgICBkID0gYSAtIFNFeHQzMihuKSAqIFNFeHQz
MihtKQorCisgICAgICAgIEdpdmVuIEIzIElSOgorICAgICAgICBJbnQgQDAgPSBBcmd1bWVudFJl
ZygleDApCisgICAgICAgIEludCBAMSA9IFNFeHQzMihUcnVuYyhBcmd1bWVudFJlZygleDEpKSkK
KyAgICAgICAgSW50IEAyID0gU0V4dDMyKFRydW5jKEFyZ3VtZW50UmVnKCV4MikpKQorICAgICAg
ICBJbnQgQDMgPSBNdWwoQDEsIEAyKQorICAgICAgICBJbnQgQDQgPSBTdWIoQDAsIEAzKQorICAg
ICAgICBWb2lkQDUgPSBSZXR1cm4oQDQsIFRlcm1pbmFsKQorCisgICAgICAgIEJlZm9yZSBBZGRp
bmcgU01TVUJMOgorICAgICAgICAvLyBPbGQgb3B0aW1pemVkIEFJUgorICAgICAgICBTaWduRXh0
ZW5kMzJUb1B0ciAgJXgxLCAleDEsICAgICAgICAgICBAMQorICAgICAgICBTaWduRXh0ZW5kMzJU
b1B0ciAgJXgyLCAleDIsICAgICAgICAgICBAMgorICAgICAgICBNdWx0aXBseVN1YjY0ICAgICAg
JXgxLCAleDIsICV4MCwgJXgwLCBANAorICAgICAgICBSZXQ2NCAgICAgICAgICAgICAgJXgwLCAg
ICAgICAgICAgICAgICBANQorCisgICAgICAgIEFmdGVyIEFkZGluZyBTTVNVQkw6CisgICAgICAg
IC8vIE5ldyBvcHRpbWl6ZWQgQUlSCisgICAgICAgIE11bHRpcGx5U3ViU2lnbkV4dGVuZDMyICV4
MSwgJXgyLCAleDAsICV4MCwgQDQKKyAgICAgICAgUmV0NjQgICAgICAgICAgICAgICAgICAgJXgw
LCAgICAgICAgICAgICAgICBANQorCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNNjQuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bXVsdGlwbHlTdWJT
aWduRXh0ZW5kMzIpOgorICAgICAgICAqIGFzc2VtYmxlci90ZXN0bWFzbS5jcHA6CisgICAgICAg
IChKU0M6OnRlc3RNdWxTdWJTaWduRXh0ZW5kMzIpOgorICAgICAgICAqIGIzL0IzTG93ZXJUb0Fp
ci5jcHA6CisgICAgICAgICogYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzOgorICAgICAgICAqIGIz
L3Rlc3RiMy5oOgorICAgICAgICAqIGIzL3Rlc3RiM18yLmNwcDoKKyAgICAgICAgKHRlc3RNdWxT
dWJBcmdzTGVmdCk6CisgICAgICAgICh0ZXN0TXVsU3ViQXJnc1JpZ2h0KToKKyAgICAgICAgKHRl
c3RNdWxTdWJBcmdzTGVmdDMyKToKKyAgICAgICAgKHRlc3RNdWxTdWJBcmdzUmlnaHQzMik6Cisg
ICAgICAgICh0ZXN0TXVsU3ViU2lnbkV4dGVuZDMyQXJncyk6CisgICAgICAgICogYjMvdGVzdGIz
XzMuY3BwOgorICAgICAgICAoYWRkQXJnVGVzdHMpOgorCiAyMDIxLTA2LTE5ICBNYXJrIExhbSAg
PG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbUmV2ZXJ0IHIyNzg1NzZdIFB1dCB0aGUg
QmFzZWxpbmUgSklUIHByb2xvZ3VlIGFuZCBvcF9sb29wX2hpbnQgY29kZSBpbiBKSVQgdGh1bmtz
LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTTY0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyQVJNNjQuaAppbmRleCAwYjE3NjVkYjA4OWIyZjlhOTk5ZjRjOTY5ZTkzOGRhNWE3MzJkOGQz
Li5jYTg3YTllMDRhM2YyZjU4OTE3YzNhNzRhMzY4MGMyYzI3MTBhYjhmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaApA
QCAtNjMyLDYgKzYzMiwxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLm1zdWI8NjQ+
KGRlc3QsIG11bExlZnQsIG11bFJpZ2h0LCBtaW51ZW5kKTsKICAgICB9CiAKKyAgICB2b2lkIG11
bHRpcGx5U3ViU2lnbkV4dGVuZDMyKFJlZ2lzdGVySUQgbXVsTGVmdCwgUmVnaXN0ZXJJRCBtdWxS
aWdodCwgUmVnaXN0ZXJJRCBtaW51ZW5kLCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAg
ICBtX2Fzc2VtYmxlci5zbXN1YmwoZGVzdCwgbXVsTGVmdCwgbXVsUmlnaHQsIG1pbnVlbmQpOwor
ICAgIH0KKwogICAgIHZvaWQgbXVsdGlwbHlOZWc2NChSZWdpc3RlcklEIG11bExlZnQsIFJlZ2lz
dGVySUQgbXVsUmlnaHQsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1i
bGVyLm1zdWI8NjQ+KGRlc3QsIG11bExlZnQsIG11bFJpZ2h0LCBBUk02NFJlZ2lzdGVyczo6enIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAppbmRleCA5
OTQ2NTg5YzAyOGFjM2U0MWRmYmY5YTVmNWMyOGQ4ZjM0ZmViNjM4Li43MGMwOWQyZTU2OTlkODNm
Nzc5MDRmNzgxZmRiZTJmZWJlM2FlNTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL3Rlc3RtYXNtLmNwcApAQCAtMTA2Nyw2ICsxMDY3LDI5IEBAIHZvaWQgdGVzdFViZngz
MigpCiAgICAgfQogfQogCit2b2lkIHRlc3RNdWxTdWJTaWduRXh0ZW5kMzIoKQoreworICAgIC8v
IGQgPSBhIC0gU0V4dDMyKG4pICogIFNFeHQzMihtKQorICAgIGF1dG8gc3ViID0gY29tcGlsZShb
PV0gKENDYWxsSGVscGVycyYgaml0KSB7CisgICAgICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKGpp
dCk7CisKKyAgICAgICAgaml0Lm11bHRpcGx5U3ViU2lnbkV4dGVuZDMyKEdQUkluZm86OmFyZ3Vt
ZW50R1BSMSwgCisgICAgICAgICAgICBHUFJJbmZvOjphcmd1bWVudEdQUjIsCisgICAgICAgICAg
ICBHUFJJbmZvOjphcmd1bWVudEdQUjAsIAorICAgICAgICAgICAgR1BSSW5mbzo6cmV0dXJuVmFs
dWVHUFIpOworCisgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7CisgICAgICAgIGpp
dC5yZXQoKTsKKyAgICB9KTsKKworICAgIGZvciAoYXV0byBhIDogaW50NjRPcGVyYW5kcygpKSB7
CisgICAgICAgIGZvciAoYXV0byBuIDogaW50MzJPcGVyYW5kcygpKSB7CisgICAgICAgICAgICBm
b3IgKGF1dG8gbSA6IGludDMyT3BlcmFuZHMoKSkKKyAgICAgICAgICAgICAgICBDSEVDS19FUShp
bnZva2U8aW50NjRfdD4oc3ViLCBhLCBuLCBtKSwgYSAtIHN0YXRpY19jYXN0PGludDY0X3Q+KG4p
ICogc3RhdGljX2Nhc3Q8aW50NjRfdD4obSkpOworICAgICAgICB9CisgICAgfQorfQorCiB2b2lk
IHRlc3RVYmZ4NjQoKQogewogICAgIHVpbnQ2NF90IHNyYyA9IDB4ZmZmZmZmZmZmZmZmZmZmZjsK
QEAgLTMyNTQsNiArMzI3Nyw3IEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikgV1RGX0lH
Tk9SRVNfVEhSRUFEX1NBRkVUWV9BTkFMWVNJUwogICAgIFJVTih0ZXN0U3ViNjRBcmdJbW0zMigp
KTsKICAgICBSVU4odGVzdFN1YjY0SW1tNjQoKSk7CiAgICAgUlVOKHRlc3RTdWI2NEFyZ0ltbTY0
KCkpOworICAgIFJVTih0ZXN0TXVsU3ViU2lnbkV4dGVuZDMyKCkpOwogICAgIFJVTih0ZXN0VWJm
eDMyKCkpOwogICAgIFJVTih0ZXN0VWJmeDY0KCkpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCmluZGV4IDUzY2ZhOTg0OGE4MTcwNzA4OTQ3OTBmZGVj
Y2FjMWU3NTdlNzNlN2UuLmNmM2M1MmE5ODk1NGM3ZWQyNDVkYzFiNWI3YTA3N2MzZTEwNTQ4ODcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCkBAIC0yNTgzLDI0
ICsyNTgzLDUwIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgJiYgaXNWYWxpZEZvcm0obXVs
dGlwbHlTdWJPcGNvZGUsIEFyZzo6VG1wLCBBcmc6OlRtcCwgQXJnOjpUbXAsIEFyZzo6VG1wKSkg
ewogICAgICAgICAgICAgICAgIFZhbHVlKiBsZWZ0ID0gbV92YWx1ZS0+Y2hpbGQoMCk7CiAgICAg
ICAgICAgICAgICAgVmFsdWUqIHJpZ2h0ID0gbV92YWx1ZS0+Y2hpbGQoMSk7Ci0gICAgICAgICAg
ICAgICAgaWYgKCFpbW0ocmlnaHQpIHx8IG1fdmFsdWVUb1RtcFtyaWdodF0pIHsKLSAgICAgICAg
ICAgICAgICAgICAgYXV0byB0cnlBcHBlbmRNdWx0aXBseVN1YiA9IFsmXSAoKSAtPiBib29sIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyaWdodC0+b3Bjb2RlKCkgIT0gTXVsIHx8ICFj
YW5CZUludGVybmFsKHJpZ2h0KSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlKiBtdWx0aXBseUxlZnQgPSBy
aWdodC0+Y2hpbGQoMCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSogbXVsdGlwbHlS
aWdodCA9IHJpZ2h0LT5jaGlsZCgxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtX2xv
Y2tlZC5jb250YWlucyhtdWx0aXBseUxlZnQpIHx8IG1fbG9ja2VkLmNvbnRhaW5zKG11bHRpcGx5
UmlnaHQpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
ICAgICAgICAgICAgICAgICAgICAgYXBwZW5kKG11bHRpcGx5U3ViT3Bjb2RlLCB0bXAobXVsdGlw
bHlMZWZ0KSwgdG1wKG11bHRpcGx5UmlnaHQpLCB0bXAobGVmdCksIHRtcChtX3ZhbHVlKSk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBjb21taXRJbnRlcm5hbChyaWdodCk7CisgICAgICAgICAg
ICAgICAgYXV0byB0cnlNdWx0aXBseSA9IFsmXSAoVmFsdWUqIHYpIC0+IGJvb2wgeworICAgICAg
ICAgICAgICAgICAgICBpZiAodi0+b3Bjb2RlKCkgIT0gTXVsIHx8ICFjYW5CZUludGVybmFsKHYp
KQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAg
ICAgICBpZiAobV9sb2NrZWQuY29udGFpbnModi0+Y2hpbGQoMCkpIHx8IG1fbG9ja2VkLmNvbnRh
aW5zKHYtPmNoaWxkKDEpKSkgLy8gPC0tLS0ga2VlcCB0aGlzPyBXaHk/CisgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICAgICAgICAgIH07CiAKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0
cnVlOwotICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIC8vIE1TVUI6IGQg
PSBhIC0gbiAqIG0KKyAgICAgICAgICAgICAgICBpZiAoKCFpbW0ocmlnaHQpIHx8IG1fdmFsdWVU
b1RtcFtyaWdodF0pICYmIHRyeU11bHRpcGx5KHJpZ2h0KSkgeyAKKyAgICAgICAgICAgICAgICAg
ICAgLy8gRG8gd2UgbmVlZCB0byBrZWVwIHRoZSBeIG1fdmFsdWVUb1RtcFtyaWdodF0gYm9vbCBl
eHA/IFdoeT8KKworICAgICAgICAgICAgICAgICAgICAvLyBTTVNVQkw6IGQgPSBhIC0gU0V4dDMy
KG4pICogIFNFeHQzMihtKQorICAgICAgICAgICAgICAgICAgICBpZiAobXVsdGlwbHlTdWJPcGNv
ZGUgPT0gTXVsdGlwbHlTdWI2NAorICAgICAgICAgICAgICAgICAgICAgICAgJiYgaXNWYWxpZEZv
cm0oTXVsdGlwbHlTdWJTaWduRXh0ZW5kMzIsIEFyZzo6VG1wLCBBcmc6OlRtcCwgQXJnOjpUbXAs
IEFyZzo6VG1wKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYXV0byB0cnlTRXh0MzIgPSBb
Jl0gKFZhbHVlKiB2KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYtPm9wY29k
ZSgpICE9IFNFeHQzMiB8fCAhY2FuQmVJbnRlcm5hbCh2KSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChtX2xvY2tlZC5jb250YWlucyh2LT5jaGlsZCgwKSkpIC8vIDwtLS0tIGtlZXAgdGhpcz8gV2h5
PworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9OworCisgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHRyeUFwcGVuZE11bHRpcGx5U3Vi
U2lnbkV4dGVuZDMyID0gWyZdICgpIC0+IGJvb2wgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICghdHJ5U0V4dDMyKHJpZ2h0LT5jaGlsZCgwKSkgfHwgIXRyeVNFeHQzMihyaWdodC0+
Y2hpbGQoMSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kKE11bHRpcGx5U3ViU2lnbkV4dGVu
ZDMyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wKHJpZ2h0LT5jaGlsZCgw
KS0+Y2hpbGQoMCkpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wKHJpZ2h0
LT5jaGlsZCgxKS0+Y2hpbGQoMCkpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dG1wKGxlZnQpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wKG1fdmFsdWUp
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21taXRJbnRlcm5hbChyaWdodCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWl0SW50ZXJuYWwocmlnaHQtPmNoaWxkKDAp
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21taXRJbnRlcm5hbChyaWdodC0+Y2hp
bGQoMSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICAgICAgICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRyeUFw
cGVuZE11bHRpcGx5U3ViU2lnbkV4dGVuZDMyKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAg
aWYgKHRyeUFwcGVuZE11bHRpcGx5U3ViKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZChtdWx0aXBseVN1Yk9wY29kZSwgdG1wKHJp
Z2h0LT5jaGlsZCgwKSksIHRtcChyaWdodC0+Y2hpbGQoMSkpLCB0bXAobGVmdCksIHRtcChtX3Zh
bHVlKSk7CisgICAgICAgICAgICAgICAgICAgIGNvbW1pdEludGVybmFsKHJpZ2h0KTsKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bj
b2RlcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMKaW5k
ZXggNTI0MzI1OGQ5Njg3M2U4MWIxYWMyMmVlODhmMDQwMDRkYmY3NWU2OC4uOWEyZTc0Mjc2NTM3
MGYzM2Q2ZjJkYzY2MjUxZTYxN2E1NGZkMjI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCkBAIC0yNTcsNiArMjU3LDkgQEAgYXJtNjQ6IE11
bHRpcGx5U3ViMzIgVTpHOjMyLCBVOkc6MzIsIFU6RzozMiwgWkQ6RzozMgogYXJtNjQ6IE11bHRp
cGx5U3ViNjQgVTpHOjY0LCBVOkc6NjQsIFU6Rzo2NCwgRDpHOjY0CiAgICAgVG1wLCBUbXAsIFRt
cCwgVG1wCiAKK2FybTY0OiBNdWx0aXBseVN1YlNpZ25FeHRlbmQzMiBVOkc6MzIsIFU6RzozMiwg
VTpHOjY0LCBEOkc6NjQKKyAgICBUbXAsIFRtcCwgVG1wLCBUbXAKKwogYXJtNjQ6IE11bHRpcGx5
TmVnMzIgVTpHOjMyLCBVOkc6MzIsIFpEOkc6MzIKICAgICBUbXAsIFRtcCwgVG1wCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy90ZXN0YjMuaAppbmRleCBhMjIzODEwNWFiMWI0NTkxNmUzY2NiNjM3NzliYWEy
NTFiZWUwZWRkLi5iNWU0Y2YyYzc4ODg4MmY2NWQzZjEyYzczMmVlMjRkNWM2ODMzZWU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oCkBAIC04NzYsNiArODc2LDcgQEAgdm9pZCB0ZXN0TXVs
U3ViQXJnc0xlZnQoKTsKIHZvaWQgdGVzdE11bFN1YkFyZ3NSaWdodCgpOwogdm9pZCB0ZXN0TXVs
U3ViQXJnc0xlZnQzMigpOwogdm9pZCB0ZXN0TXVsU3ViQXJnc1JpZ2h0MzIoKTsKK3ZvaWQgdGVz
dE11bFN1YlNpZ25FeHRlbmQzMkFyZ3MoKTsKIHZvaWQgdGVzdE11bE5lZ0FyZ3MoKTsKIHZvaWQg
dGVzdE11bE5lZ0FyZ3MzMigpOwogdm9pZCB0ZXN0TXVsQXJnRG91YmxlKGRvdWJsZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzIuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18yLmNwcAppbmRleCAzNGFiMGExMTY5YTdlMDI5MTgyMGFj
ODhkNjM3YTY0MzVlZmI5MzVlLi4zMjJjYzY1Y2U3ZDM3ZmE5YjAxNWUyMjQ2NDY1NjM4OTM0OTYz
MWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzIuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMi5jcHAKQEAgLTExMDYsMTMgKzEx
MDYsMTQgQEAgdm9pZCB0ZXN0TXVsU3ViQXJnc0xlZnQoKQogICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNv
ZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKKyAgICBpZiAoaXNBUk02NCgpKQorICAgICAgICBjaGVj
a0RvZXNOb3RVc2VJbnN0cnVjdGlvbigqY29kZSwgIm1zdWIiKTsKIAogICAgIGF1dG8gdGVzdFZh
bHVlcyA9IGludDY0T3BlcmFuZHMoKTsKICAgICBmb3IgKGF1dG8gYSA6IHRlc3RWYWx1ZXMpIHsK
ICAgICAgICAgZm9yIChhdXRvIGIgOiB0ZXN0VmFsdWVzKSB7Ci0gICAgICAgICAgICBmb3IgKGF1
dG8gYyA6IHRlc3RWYWx1ZXMpIHsKKyAgICAgICAgICAgIGZvciAoYXV0byBjIDogdGVzdFZhbHVl
cykKICAgICAgICAgICAgICAgICBDSEVDSyhpbnZva2U8aW50NjRfdD4oKmNvZGUsIGEudmFsdWUs
IGIudmFsdWUsIGMudmFsdWUpID09IGEudmFsdWUgKiBiLnZhbHVlIC0gYy52YWx1ZSk7Ci0gICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0xMTMwLDEzICsxMTMxLDE0IEBAIHZv
aWQgdGVzdE11bFN1YkFyZ3NSaWdodCgpCiAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBp
bGVQcm9jKHByb2MpOworICAgIGlmIChpc0FSTTY0KCkpCisgICAgICAgIGNoZWNrVXNlc0luc3Ry
dWN0aW9uKCpjb2RlLCAibXN1YiIpOwogCiAgICAgYXV0byB0ZXN0VmFsdWVzID0gaW50NjRPcGVy
YW5kcygpOwogICAgIGZvciAoYXV0byBhIDogdGVzdFZhbHVlcykgewogICAgICAgICBmb3IgKGF1
dG8gYiA6IHRlc3RWYWx1ZXMpIHsKLSAgICAgICAgICAgIGZvciAoYXV0byBjIDogdGVzdFZhbHVl
cykgeworICAgICAgICAgICAgZm9yIChhdXRvIGMgOiB0ZXN0VmFsdWVzKQogICAgICAgICAgICAg
ICAgIENIRUNLKGludm9rZTxpbnQ2NF90PigqY29kZSwgYS52YWx1ZSwgYi52YWx1ZSwgYy52YWx1
ZSkgPT0gYS52YWx1ZSAtIGIudmFsdWUgKiBjLnZhbHVlKTsKLSAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgIH0KIH0KQEAgLTExNTcsMTMgKzExNTksMTQgQEAgdm9pZCB0ZXN0TXVsU3ViQXJn
c0xlZnQzMigpCiAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwor
ICAgIGlmIChpc0FSTTY0KCkpCisgICAgICAgIGNoZWNrRG9lc05vdFVzZUluc3RydWN0aW9uKCpj
b2RlLCAibXN1YiIpOwogCiAgICAgYXV0byB0ZXN0VmFsdWVzID0gaW50MzJPcGVyYW5kcygpOwog
ICAgIGZvciAoYXV0byBhIDogdGVzdFZhbHVlcykgewogICAgICAgICBmb3IgKGF1dG8gYiA6IHRl
c3RWYWx1ZXMpIHsKLSAgICAgICAgICAgIGZvciAoYXV0byBjIDogdGVzdFZhbHVlcykgeworICAg
ICAgICAgICAgZm9yIChhdXRvIGMgOiB0ZXN0VmFsdWVzKQogICAgICAgICAgICAgICAgIENIRUNL
KGludm9rZTxpbnQzMl90PigqY29kZSwgYS52YWx1ZSwgYi52YWx1ZSwgYy52YWx1ZSkgPT0gYS52
YWx1ZSAqIGIudmFsdWUgLSBjLnZhbHVlKTsKLSAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
IH0KIH0KQEAgLTExODQsMTIgKzExODcsNTAgQEAgdm9pZCB0ZXN0TXVsU3ViQXJnc1JpZ2h0MzIo
KQogICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKKyAgICBpZiAo
aXNBUk02NCgpKQorICAgICAgICBjaGVja1VzZXNJbnN0cnVjdGlvbigqY29kZSwgIm1zdWIiKTsK
IAogICAgIGF1dG8gdGVzdFZhbHVlcyA9IGludDMyT3BlcmFuZHMoKTsKICAgICBmb3IgKGF1dG8g
YSA6IHRlc3RWYWx1ZXMpIHsKICAgICAgICAgZm9yIChhdXRvIGIgOiB0ZXN0VmFsdWVzKSB7Ci0g
ICAgICAgICAgICBmb3IgKGF1dG8gYyA6IHRlc3RWYWx1ZXMpIHsKKyAgICAgICAgICAgIGZvciAo
YXV0byBjIDogdGVzdFZhbHVlcykKICAgICAgICAgICAgICAgICBDSEVDSyhpbnZva2U8aW50MzJf
dD4oKmNvZGUsIGEudmFsdWUsIGIudmFsdWUsIGMudmFsdWUpID09IGEudmFsdWUgLSBiLnZhbHVl
ICogYy52YWx1ZSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgdGVzdE11bFN1YlNpZ25F
eHRlbmQzMkFyZ3MoKQoreworICAgIC8vIGQgPSBhIC0gU0V4dDMyKG4pICogU0V4dDMyKG0pCisg
ICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKKworICAgIFZhbHVlKiBhVmFsdWUgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgVmFsdWUqIG5W
YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgIHByb2MsIFNFeHQzMiwgT3Jp
Z2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9j
LCBUcnVuYywgT3JpZ2luKCksCisgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpKTsKKyAgICBW
YWx1ZSogbVZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgcHJvYywgU0V4
dDMyLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAg
ICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKSkp
OworCisgICAgVmFsdWUqIG11bFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBN
dWwsIE9yaWdpbigpLCBuVmFsdWUsIG1WYWx1ZSk7CisgICAgVmFsdWUqIGFkZFZhbHVlID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBhVmFsdWUsIG11bFZhbHVl
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgYWRkVmFsdWUpOworCisgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CisgICAg
aWYgKGlzQVJNNjQoKSkKKyAgICAgICAgY2hlY2tVc2VzSW5zdHJ1Y3Rpb24oKmNvZGUsICJzbXN1
YmwiKTsKKworICAgIGZvciAoYXV0byBhIDogaW50NjRPcGVyYW5kcygpKSB7CisgICAgICAgIGZv
ciAoYXV0byBuIDogaW50MzJPcGVyYW5kcygpKSB7CisgICAgICAgICAgICBmb3IgKGF1dG8gbSA6
IGludDMyT3BlcmFuZHMoKSkgeworICAgICAgICAgICAgICAgIGludDY0X3QgbGhzID0gaW52b2tl
PGludDY0X3Q+KCpjb2RlLCBhLnZhbHVlLCBuLnZhbHVlLCBtLnZhbHVlKTsKKyAgICAgICAgICAg
ICAgICBpbnQ2NF90IHJocyA9IGEudmFsdWUgLSBzdGF0aWNfY2FzdDxpbnQ2NF90PihuLnZhbHVl
KSAqIHN0YXRpY19jYXN0PGludDY0X3Q+KG0udmFsdWUpOworICAgICAgICAgICAgICAgIENIRUNL
KGxocyA9PSByaHMpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18zLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy90ZXN0YjNfMy5jcHAKaW5kZXggODU5YjhmYzllNjM1NTg0NjJkODVmMWM1ZTdk
M2EwMTA0MjU4ZjA1MS4uNzFlNDliYzYxZGEwODExZDIwMzQ0NTY5ODQxODFhZTFkMGU3ZTIyNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18zLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzMuY3BwCkBAIC0zMjAwLDYgKzMyMDAsNyBA
QCB2b2lkIGFkZEFyZ1Rlc3RzKGNvbnN0IGNoYXIqIGZpbHRlciwgRGVxdWU8UmVmUHRyPFNoYXJl
ZFRhc2s8dm9pZCgpPj4+JiB0YXNrcykKICAgICBSVU4odGVzdE11bFN1YkFyZ3NSaWdodCgpKTsK
ICAgICBSVU4odGVzdE11bFN1YkFyZ3NMZWZ0MzIoKSk7CiAgICAgUlVOKHRlc3RNdWxTdWJBcmdz
UmlnaHQzMigpKTsKKyAgICBSVU4odGVzdE11bFN1YlNpZ25FeHRlbmQzMkFyZ3MoKSk7CiAgICAg
UlVOKHRlc3RNdWxOZWdBcmdzKCkpOwogICAgIFJVTih0ZXN0TXVsTmVnQXJnczMyKCkpOwogICAg
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431882</attachid>
            <date>2021-06-21 11:15:27 -0700</date>
            <delta_ts>2021-06-21 11:56:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227195-20210621131526.patch</filename>
            <type>text/plain</type>
            <size>15781</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
MzRjY2YyOTUyZTg2ZDc4ZDM3MTg1M2YwMjc0OGQzYzU0NDhlNTAwLi4yMTNjYWUxZTZhNDY4NmYw
OTg2ODQxYjI0OGVkNGM3YzkwMDRiZWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OCBAQAorMjAyMS0wNi0yMSAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGEgbmV3IHBhdHRlcm4gdG8gaW5zdHJ1Y3Rpb24gc2VsZWN0b3Ig
dG8gdXRpbGl6ZSBTTVNVQkwgc3VwcG9ydGVkIGJ5IEFSTTY0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcxOTUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaWduZWQgTXVsdGlwbHktU3VidHJhY3QgTG9u
ZyhTTVNVQkwpLCBzdXBwb3J0ZWQgYnkgQVJNNjQsIG11bHRpcGxpZXMgdHdvIAorICAgICAgICAz
Mi1iaXQgcmVnaXN0ZXIgdmFsdWVzLCBzdWJ0cmFjdHMgdGhlIHByb2R1Y3QgZnJvbSBhIDY0LWJp
dCByZWdpc3RlciB2YWx1ZSwgCisgICAgICAgIGFuZCB3cml0ZXMgdGhlIHJlc3VsdCA2NC1iaXQg
ZGVzdGluYXRpb24gcmVnaXN0ZXIuIFRoZSBpbnN0cnVjdGlvbiBzZWxlY3RvciAKKyAgICAgICAg
Y2FuIHV0aWxpemUgdGhpcyB0byBsb3dlcmluZyBjZXJ0YWluIHBhdHRlcm5zIGluIEIzIElSIGJl
Zm9yZSBmdXJ0aGVyIEFpciAKKyAgICAgICAgb3B0aW1pemF0aW9uLiBHaXZlbiB0aGUgb3BlcmF0
aW9uOgorCisgICAgICAgIHNtc3VibCBkLCBuLCBtLCBhCisKKyAgICAgICAgVGhlIGVxdWl2YWxl
bnQgcGF0dGVybiB3b3VsZCBiZToKKworICAgICAgICBkID0gYSAtIFNFeHQzMihuKSAqIFNFeHQz
MihtKQorCisgICAgICAgIEdpdmVuIEIzIElSOgorICAgICAgICBJbnQgQDAgPSBBcmd1bWVudFJl
ZygleDApCisgICAgICAgIEludCBAMSA9IFNFeHQzMihUcnVuYyhBcmd1bWVudFJlZygleDEpKSkK
KyAgICAgICAgSW50IEAyID0gU0V4dDMyKFRydW5jKEFyZ3VtZW50UmVnKCV4MikpKQorICAgICAg
ICBJbnQgQDMgPSBNdWwoQDEsIEAyKQorICAgICAgICBJbnQgQDQgPSBTdWIoQDAsIEAzKQorICAg
ICAgICBWb2lkQDUgPSBSZXR1cm4oQDQsIFRlcm1pbmFsKQorCisgICAgICAgIEJlZm9yZSBBZGRp
bmcgU01TVUJMOgorICAgICAgICAvLyBPbGQgb3B0aW1pemVkIEFJUgorICAgICAgICBTaWduRXh0
ZW5kMzJUb1B0ciAgJXgxLCAleDEsICAgICAgICAgICBAMQorICAgICAgICBTaWduRXh0ZW5kMzJU
b1B0ciAgJXgyLCAleDIsICAgICAgICAgICBAMgorICAgICAgICBNdWx0aXBseVN1YjY0ICAgICAg
JXgxLCAleDIsICV4MCwgJXgwLCBANAorICAgICAgICBSZXQ2NCAgICAgICAgICAgICAgJXgwLCAg
ICAgICAgICAgICAgICBANQorCisgICAgICAgIEFmdGVyIEFkZGluZyBTTVNVQkw6CisgICAgICAg
IC8vIE5ldyBvcHRpbWl6ZWQgQUlSCisgICAgICAgIE11bHRpcGx5U3ViU2lnbkV4dGVuZDMyICV4
MSwgJXgyLCAleDAsICV4MCwgQDQKKyAgICAgICAgUmV0NjQgICAgICAgICAgICAgICAgICAgJXgw
LCAgICAgICAgICAgICAgICBANQorCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNNjQuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bXVsdGlwbHlTdWJT
aWduRXh0ZW5kMzIpOgorICAgICAgICAqIGFzc2VtYmxlci90ZXN0bWFzbS5jcHA6CisgICAgICAg
IChKU0M6OnRlc3RNdWxTdWJTaWduRXh0ZW5kMzIpOgorICAgICAgICAqIGIzL0IzTG93ZXJUb0Fp
ci5jcHA6CisgICAgICAgICogYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzOgorICAgICAgICAqIGIz
L3Rlc3RiMy5oOgorICAgICAgICAqIGIzL3Rlc3RiM18yLmNwcDoKKyAgICAgICAgKHRlc3RNdWxT
dWJBcmdzTGVmdCk6CisgICAgICAgICh0ZXN0TXVsU3ViQXJnc1JpZ2h0KToKKyAgICAgICAgKHRl
c3RNdWxTdWJBcmdzTGVmdDMyKToKKyAgICAgICAgKHRlc3RNdWxTdWJBcmdzUmlnaHQzMik6Cisg
ICAgICAgICh0ZXN0TXVsU3ViU2lnbkV4dGVuZDMyQXJncyk6CisgICAgICAgICogYjMvdGVzdGIz
XzMuY3BwOgorICAgICAgICAoYWRkQXJnVGVzdHMpOgorCiAyMDIxLTA2LTE5ICBNYXJrIExhbSAg
PG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbUmV2ZXJ0IHIyNzg1NzZdIFB1dCB0aGUg
QmFzZWxpbmUgSklUIHByb2xvZ3VlIGFuZCBvcF9sb29wX2hpbnQgY29kZSBpbiBKSVQgdGh1bmtz
LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTTY0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyQVJNNjQuaAppbmRleCAwYjE3NjVkYjA4OWIyZjlhOTk5ZjRjOTY5ZTkzOGRhNWE3MzJkOGQz
Li5jYTg3YTllMDRhM2YyZjU4OTE3YzNhNzRhMzY4MGMyYzI3MTBhYjhmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaApA
QCAtNjMyLDYgKzYzMiwxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLm1zdWI8NjQ+
KGRlc3QsIG11bExlZnQsIG11bFJpZ2h0LCBtaW51ZW5kKTsKICAgICB9CiAKKyAgICB2b2lkIG11
bHRpcGx5U3ViU2lnbkV4dGVuZDMyKFJlZ2lzdGVySUQgbXVsTGVmdCwgUmVnaXN0ZXJJRCBtdWxS
aWdodCwgUmVnaXN0ZXJJRCBtaW51ZW5kLCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAg
ICBtX2Fzc2VtYmxlci5zbXN1YmwoZGVzdCwgbXVsTGVmdCwgbXVsUmlnaHQsIG1pbnVlbmQpOwor
ICAgIH0KKwogICAgIHZvaWQgbXVsdGlwbHlOZWc2NChSZWdpc3RlcklEIG11bExlZnQsIFJlZ2lz
dGVySUQgbXVsUmlnaHQsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1i
bGVyLm1zdWI8NjQ+KGRlc3QsIG11bExlZnQsIG11bFJpZ2h0LCBBUk02NFJlZ2lzdGVyczo6enIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAppbmRleCA5
OTQ2NTg5YzAyOGFjM2U0MWRmYmY5YTVmNWMyOGQ4ZjM0ZmViNjM4Li43MGMwOWQyZTU2OTlkODNm
Nzc5MDRmNzgxZmRiZTJmZWJlM2FlNTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL3Rlc3RtYXNtLmNwcApAQCAtMTA2Nyw2ICsxMDY3LDI5IEBAIHZvaWQgdGVzdFViZngz
MigpCiAgICAgfQogfQogCit2b2lkIHRlc3RNdWxTdWJTaWduRXh0ZW5kMzIoKQoreworICAgIC8v
IGQgPSBhIC0gU0V4dDMyKG4pICogIFNFeHQzMihtKQorICAgIGF1dG8gc3ViID0gY29tcGlsZShb
PV0gKENDYWxsSGVscGVycyYgaml0KSB7CisgICAgICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKGpp
dCk7CisKKyAgICAgICAgaml0Lm11bHRpcGx5U3ViU2lnbkV4dGVuZDMyKEdQUkluZm86OmFyZ3Vt
ZW50R1BSMSwgCisgICAgICAgICAgICBHUFJJbmZvOjphcmd1bWVudEdQUjIsCisgICAgICAgICAg
ICBHUFJJbmZvOjphcmd1bWVudEdQUjAsIAorICAgICAgICAgICAgR1BSSW5mbzo6cmV0dXJuVmFs
dWVHUFIpOworCisgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7CisgICAgICAgIGpp
dC5yZXQoKTsKKyAgICB9KTsKKworICAgIGZvciAoYXV0byBhIDogaW50NjRPcGVyYW5kcygpKSB7
CisgICAgICAgIGZvciAoYXV0byBuIDogaW50MzJPcGVyYW5kcygpKSB7CisgICAgICAgICAgICBm
b3IgKGF1dG8gbSA6IGludDMyT3BlcmFuZHMoKSkKKyAgICAgICAgICAgICAgICBDSEVDS19FUShp
bnZva2U8aW50NjRfdD4oc3ViLCBhLCBuLCBtKSwgYSAtIHN0YXRpY19jYXN0PGludDY0X3Q+KG4p
ICogc3RhdGljX2Nhc3Q8aW50NjRfdD4obSkpOworICAgICAgICB9CisgICAgfQorfQorCiB2b2lk
IHRlc3RVYmZ4NjQoKQogewogICAgIHVpbnQ2NF90IHNyYyA9IDB4ZmZmZmZmZmZmZmZmZmZmZjsK
QEAgLTMyNTQsNiArMzI3Nyw3IEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikgV1RGX0lH
Tk9SRVNfVEhSRUFEX1NBRkVUWV9BTkFMWVNJUwogICAgIFJVTih0ZXN0U3ViNjRBcmdJbW0zMigp
KTsKICAgICBSVU4odGVzdFN1YjY0SW1tNjQoKSk7CiAgICAgUlVOKHRlc3RTdWI2NEFyZ0ltbTY0
KCkpOworICAgIFJVTih0ZXN0TXVsU3ViU2lnbkV4dGVuZDMyKCkpOwogICAgIFJVTih0ZXN0VWJm
eDMyKCkpOwogICAgIFJVTih0ZXN0VWJmeDY0KCkpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCmluZGV4IDUzY2ZhOTg0OGE4MTcwNzA4OTQ3OTBmZGVj
Y2FjMWU3NTdlNzNlN2UuLjMzODYzZWI4ZWM0ODcyNDIxNjVjZjEwODUwN2IwNjYwZTJhZTdmNGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCkBAIC0yNTgzLDI0
ICsyNTgzLDUxIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgJiYgaXNWYWxpZEZvcm0obXVs
dGlwbHlTdWJPcGNvZGUsIEFyZzo6VG1wLCBBcmc6OlRtcCwgQXJnOjpUbXAsIEFyZzo6VG1wKSkg
ewogICAgICAgICAgICAgICAgIFZhbHVlKiBsZWZ0ID0gbV92YWx1ZS0+Y2hpbGQoMCk7CiAgICAg
ICAgICAgICAgICAgVmFsdWUqIHJpZ2h0ID0gbV92YWx1ZS0+Y2hpbGQoMSk7Ci0gICAgICAgICAg
ICAgICAgaWYgKCFpbW0ocmlnaHQpIHx8IG1fdmFsdWVUb1RtcFtyaWdodF0pIHsKLSAgICAgICAg
ICAgICAgICAgICAgYXV0byB0cnlBcHBlbmRNdWx0aXBseVN1YiA9IFsmXSAoKSAtPiBib29sIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyaWdodC0+b3Bjb2RlKCkgIT0gTXVsIHx8ICFj
YW5CZUludGVybmFsKHJpZ2h0KSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlKiBtdWx0aXBseUxlZnQgPSBy
aWdodC0+Y2hpbGQoMCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSogbXVsdGlwbHlS
aWdodCA9IHJpZ2h0LT5jaGlsZCgxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtX2xv
Y2tlZC5jb250YWlucyhtdWx0aXBseUxlZnQpIHx8IG1fbG9ja2VkLmNvbnRhaW5zKG11bHRpcGx5
UmlnaHQpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
ICAgICAgICAgICAgICAgICAgICAgYXBwZW5kKG11bHRpcGx5U3ViT3Bjb2RlLCB0bXAobXVsdGlw
bHlMZWZ0KSwgdG1wKG11bHRpcGx5UmlnaHQpLCB0bXAobGVmdCksIHRtcChtX3ZhbHVlKSk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBjb21taXRJbnRlcm5hbChyaWdodCk7CisgICAgICAgICAg
ICAgICAgYXV0byB0cnlNdWx0aXBseSA9IFsmXSAoVmFsdWUqIHYpIC0+IGJvb2wgeworICAgICAg
ICAgICAgICAgICAgICBpZiAodi0+b3Bjb2RlKCkgIT0gTXVsIHx8ICFjYW5CZUludGVybmFsKHYp
KQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAg
ICAgICBpZiAobV9sb2NrZWQuY29udGFpbnModi0+Y2hpbGQoMCkpIHx8IG1fbG9ja2VkLmNvbnRh
aW5zKHYtPmNoaWxkKDEpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfTsKIAot
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICAgICAgICAg
IH07CisgICAgICAgICAgICAgICAgLy8gTVNVQjogZCA9IGEgLSBuICogbQorICAgICAgICAgICAg
ICAgIGlmICgoIWltbShyaWdodCkgfHwgbV92YWx1ZVRvVG1wW3JpZ2h0XSkgJiYgdHJ5TXVsdGlw
bHkocmlnaHQpKSB7CisgICAgICAgICAgICAgICAgICAgIFZhbHVlKiBtdWx0aXBseUxlZnQgPSBy
aWdodC0+Y2hpbGQoMCk7CisgICAgICAgICAgICAgICAgICAgIFZhbHVlKiBtdWx0aXBseVJpZ2h0
ID0gcmlnaHQtPmNoaWxkKDEpOworCisgICAgICAgICAgICAgICAgICAgIC8vIFNNU1VCTDogZCA9
IGEgLSBTRXh0MzIobikgKiAgU0V4dDMyKG0pCisgICAgICAgICAgICAgICAgICAgIGlmIChtdWx0
aXBseVN1Yk9wY29kZSA9PSBNdWx0aXBseVN1YjY0CisgICAgICAgICAgICAgICAgICAgICAgICAm
JiBpc1ZhbGlkRm9ybShNdWx0aXBseVN1YlNpZ25FeHRlbmQzMiwgQXJnOjpUbXAsIEFyZzo6VG1w
LCBBcmc6OlRtcCwgQXJnOjpUbXApKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHRy
eVNFeHQzMiA9IFsmXSAoVmFsdWUqIHYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAodi0+b3Bjb2RlKCkgIT0gU0V4dDMyIHx8ICFjYW5CZUludGVybmFsKHYpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKG1fbG9ja2VkLmNvbnRhaW5zKHYtPmNoaWxkKDApKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfTsKKworICAgICAg
ICAgICAgICAgICAgICAgICAgYXV0byB0cnlBcHBlbmRNdWx0aXBseVN1YlNpZ25FeHRlbmQzMiA9
IFsmXSAoKSAtPiBib29sIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRyeVNF
eHQzMihtdWx0aXBseUxlZnQpIHx8ICF0cnlTRXh0MzIobXVsdGlwbHlSaWdodCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhcHBlbmQoTXVsdGlwbHlTdWJTaWduRXh0ZW5kMzIsIAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0bXAobXVsdGlwbHlMZWZ0LT5jaGlsZCgwKSksIAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0bXAobXVsdGlwbHlSaWdodC0+Y2hpbGQoMCkpLCAK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wKGxlZnQpLCAKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdG1wKG1fdmFsdWUpKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb21taXRJbnRlcm5hbChyaWdodCk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29tbWl0SW50ZXJuYWwobXVsdGlwbHlMZWZ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb21taXRJbnRlcm5hbChtdWx0aXBseVJpZ2h0KTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH07CisKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICh0cnlBcHBlbmRNdWx0aXBseVN1YlNpZ25FeHRlbmQzMigp
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAg
ICAgfQogCi0gICAgICAgICAgICAgICAgICAgIGlmICh0cnlBcHBlbmRNdWx0aXBseVN1YigpKQot
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICBhcHBl
bmQobXVsdGlwbHlTdWJPcGNvZGUsIHRtcChtdWx0aXBseUxlZnQpLCB0bXAobXVsdGlwbHlSaWdo
dCksIHRtcChsZWZ0KSwgdG1wKG1fdmFsdWUpKTsKKyAgICAgICAgICAgICAgICAgICAgY29tbWl0
SW50ZXJuYWwocmlnaHQpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJPcGNvZGUub3Bjb2RlcwppbmRleCA1MjQzMjU4ZDk2ODczZTgxYjFhYzIyZWU4OGYwNDAw
NGRiZjc1ZTY4Li45YTJlNzQyNzY1MzcwZjMzZDZmMmRjNjYyNTFlNjE3YTU0ZmQyMjlkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMKQEAgLTI1
Nyw2ICsyNTcsOSBAQCBhcm02NDogTXVsdGlwbHlTdWIzMiBVOkc6MzIsIFU6RzozMiwgVTpHOjMy
LCBaRDpHOjMyCiBhcm02NDogTXVsdGlwbHlTdWI2NCBVOkc6NjQsIFU6Rzo2NCwgVTpHOjY0LCBE
Okc6NjQKICAgICBUbXAsIFRtcCwgVG1wLCBUbXAKIAorYXJtNjQ6IE11bHRpcGx5U3ViU2lnbkV4
dGVuZDMyIFU6RzozMiwgVTpHOjMyLCBVOkc6NjQsIEQ6Rzo2NAorICAgIFRtcCwgVG1wLCBUbXAs
IFRtcAorCiBhcm02NDogTXVsdGlwbHlOZWczMiBVOkc6MzIsIFU6RzozMiwgWkQ6RzozMgogICAg
IFRtcCwgVG1wLCBUbXAKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rl
c3RiMy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oCmluZGV4IGEyMjM4MTA1
YWIxYjQ1OTE2ZTNjY2I2Mzc3OWJhYTI1MWJlZTBlZGQuLmI1ZTRjZjJjNzg4ODgyZjY1ZDNmMTJj
NzMyZWUyNGQ1YzY4MzNlZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90
ZXN0YjMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgKQEAgLTg3Niw2
ICs4NzYsNyBAQCB2b2lkIHRlc3RNdWxTdWJBcmdzTGVmdCgpOwogdm9pZCB0ZXN0TXVsU3ViQXJn
c1JpZ2h0KCk7CiB2b2lkIHRlc3RNdWxTdWJBcmdzTGVmdDMyKCk7CiB2b2lkIHRlc3RNdWxTdWJB
cmdzUmlnaHQzMigpOwordm9pZCB0ZXN0TXVsU3ViU2lnbkV4dGVuZDMyQXJncygpOwogdm9pZCB0
ZXN0TXVsTmVnQXJncygpOwogdm9pZCB0ZXN0TXVsTmVnQXJnczMyKCk7CiB2b2lkIHRlc3RNdWxB
cmdEb3VibGUoZG91YmxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90
ZXN0YjNfMi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzIuY3BwCmluZGV4
IDM0YWIwYTExNjlhN2UwMjkxODIwYWM4OGQ2MzdhNjQzNWVmYjkzNWUuLjFkZGM3MWYxMDJhZDVh
YWJiNzE5MjExZGU0NzlmMGQxYzhhNjlhNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy90ZXN0YjNfMi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3Ri
M18yLmNwcApAQCAtMTEwMiwxNyArMTEwMiwxOCBAQCB2b2lkIHRlc3RNdWxTdWJBcmdzTGVmdCgp
CiAgICAgVmFsdWUqIGFyZzEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgVmFsdWUqIGFyZzIgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMik7CiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzAsIGFyZzEpOwotICAgIFZhbHVlKiBhZGRl
ZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgbXVsdGlwbGll
ZCwgYXJnMik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGFkZGVkKTsKKyAgICBWYWx1ZSogc3VidHJhY3RlZCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgbXVsdGlwbGllZCwgYXJnMik7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHN1YnRyYWN0
ZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CisgICAgaWYgKGlzQVJN
NjQoKSkKKyAgICAgICAgY2hlY2tEb2VzTm90VXNlSW5zdHJ1Y3Rpb24oKmNvZGUsICJtc3ViIik7
CiAKICAgICBhdXRvIHRlc3RWYWx1ZXMgPSBpbnQ2NE9wZXJhbmRzKCk7CiAgICAgZm9yIChhdXRv
IGEgOiB0ZXN0VmFsdWVzKSB7CiAgICAgICAgIGZvciAoYXV0byBiIDogdGVzdFZhbHVlcykgewot
ICAgICAgICAgICAgZm9yIChhdXRvIGMgOiB0ZXN0VmFsdWVzKSB7CisgICAgICAgICAgICBmb3Ig
KGF1dG8gYyA6IHRlc3RWYWx1ZXMpCiAgICAgICAgICAgICAgICAgQ0hFQ0soaW52b2tlPGludDY0
X3Q+KCpjb2RlLCBhLnZhbHVlLCBiLnZhbHVlLCBjLnZhbHVlKSA9PSBhLnZhbHVlICogYi52YWx1
ZSAtIGMudmFsdWUpOwotICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogfQpAQCAtMTEy
NiwxNyArMTEyNywxOCBAQCB2b2lkIHRlc3RNdWxTdWJBcmdzUmlnaHQoKQogICAgIFZhbHVlKiBh
cmcxID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIp
OwogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBN
dWwsIE9yaWdpbigpLCBhcmcxLCBhcmcyKTsKLSAgICBWYWx1ZSogYWRkZWQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGFyZzAsIG11bHRpcGxpZWQpOwotICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRl
ZCk7CisgICAgVmFsdWUqIHN1YnRyYWN0ZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IFN1YiwgT3JpZ2luKCksIGFyZzAsIG11bHRpcGxpZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzdWJ0cmFjdGVkKTsKIAogICAgIGF1
dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOworICAgIGlmIChpc0FSTTY0KCkpCisgICAgICAg
IGNoZWNrVXNlc0luc3RydWN0aW9uKCpjb2RlLCAibXN1YiIpOwogCiAgICAgYXV0byB0ZXN0VmFs
dWVzID0gaW50NjRPcGVyYW5kcygpOwogICAgIGZvciAoYXV0byBhIDogdGVzdFZhbHVlcykgewog
ICAgICAgICBmb3IgKGF1dG8gYiA6IHRlc3RWYWx1ZXMpIHsKLSAgICAgICAgICAgIGZvciAoYXV0
byBjIDogdGVzdFZhbHVlcykgeworICAgICAgICAgICAgZm9yIChhdXRvIGMgOiB0ZXN0VmFsdWVz
KQogICAgICAgICAgICAgICAgIENIRUNLKGludm9rZTxpbnQ2NF90PigqY29kZSwgYS52YWx1ZSwg
Yi52YWx1ZSwgYy52YWx1ZSkgPT0gYS52YWx1ZSAtIGIudmFsdWUgKiBjLnZhbHVlKTsKLSAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIH0KQEAgLTExNTMsMTcgKzExNTUsMTggQEAgdm9p
ZCB0ZXN0TXVsU3ViQXJnc0xlZnQzMigpCiAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIp
KTsKICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
TXVsLCBPcmlnaW4oKSwgYXJnMCwgYXJnMSk7Ci0gICAgVmFsdWUqIGFkZGVkID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBtdWx0aXBsaWVkLCBhcmcyKTsKLSAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRk
ZWQpOworICAgIFZhbHVlKiBzdWJ0cmFjdGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBTdWIsIE9yaWdpbigpLCBtdWx0aXBsaWVkLCBhcmcyKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3VidHJhY3RlZCk7CiAKICAgICBh
dXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKKyAgICBpZiAoaXNBUk02NCgpKQorICAgICAg
ICBjaGVja0RvZXNOb3RVc2VJbnN0cnVjdGlvbigqY29kZSwgIm1zdWIiKTsKIAogICAgIGF1dG8g
dGVzdFZhbHVlcyA9IGludDMyT3BlcmFuZHMoKTsKICAgICBmb3IgKGF1dG8gYSA6IHRlc3RWYWx1
ZXMpIHsKICAgICAgICAgZm9yIChhdXRvIGIgOiB0ZXN0VmFsdWVzKSB7Ci0gICAgICAgICAgICBm
b3IgKGF1dG8gYyA6IHRlc3RWYWx1ZXMpIHsKKyAgICAgICAgICAgIGZvciAoYXV0byBjIDogdGVz
dFZhbHVlcykKICAgICAgICAgICAgICAgICBDSEVDSyhpbnZva2U8aW50MzJfdD4oKmNvZGUsIGEu
dmFsdWUsIGIudmFsdWUsIGMudmFsdWUpID09IGEudmFsdWUgKiBiLnZhbHVlIC0gYy52YWx1ZSk7
Ci0gICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0xMTgwLDE2ICsxMTgzLDU0
IEBAIHZvaWQgdGVzdE11bFN1YkFyZ3NSaWdodDMyKCkKICAgICBWYWx1ZSogYXJnMiA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMikpOwogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcxLCBhcmcyKTsKLSAgICBWYWx1ZSogYWRkZWQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGFyZzAsIG11bHRpcGxp
ZWQpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBhZGRlZCk7CisgICAgVmFsdWUqIHN1YnRyYWN0ZWQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGFyZzAsIG11bHRpcGxpZWQpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzdWJ0cmFjdGVkKTsK
IAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOworICAgIGlmIChpc0FSTTY0KCkp
CisgICAgICAgIGNoZWNrVXNlc0luc3RydWN0aW9uKCpjb2RlLCAibXN1YiIpOwogCiAgICAgYXV0
byB0ZXN0VmFsdWVzID0gaW50MzJPcGVyYW5kcygpOwogICAgIGZvciAoYXV0byBhIDogdGVzdFZh
bHVlcykgewogICAgICAgICBmb3IgKGF1dG8gYiA6IHRlc3RWYWx1ZXMpIHsKLSAgICAgICAgICAg
IGZvciAoYXV0byBjIDogdGVzdFZhbHVlcykgeworICAgICAgICAgICAgZm9yIChhdXRvIGMgOiB0
ZXN0VmFsdWVzKQogICAgICAgICAgICAgICAgIENIRUNLKGludm9rZTxpbnQzMl90PigqY29kZSwg
YS52YWx1ZSwgYi52YWx1ZSwgYy52YWx1ZSkgPT0gYS52YWx1ZSAtIGIudmFsdWUgKiBjLnZhbHVl
KTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCB0ZXN0TXVsU3ViU2lnbkV4dGVuZDMyQXJn
cygpCit7CisgICAgLy8gZCA9IGEgLSBTRXh0MzIobikgKiBTRXh0MzIobSkKKyAgICBQcm9jZWR1
cmUgcHJvYzsKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworCisgICAg
VmFsdWUqIGFWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICBWYWx1ZSogblZhbHVlID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgcHJvYywgU0V4dDMyLCBPcmlnaW4oKSwKKyAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIFRydW5jLCBP
cmlnaW4oKSwKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSkpOworICAgIFZhbHVlKiBtVmFs
dWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICBwcm9jLCBTRXh0MzIsIE9yaWdp
bigpLAorICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywg
VHJ1bmMsIE9yaWdpbigpLAorICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpKSk7CisKKyAgICBW
YWx1ZSogbXVsVmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2lu
KCksIG5WYWx1ZSwgbVZhbHVlKTsKKyAgICBWYWx1ZSogc3ViVmFsdWUgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGFWYWx1ZSwgbXVsVmFsdWUpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzdWJWYWx1
ZSk7CisKKyAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKKyAgICBpZiAoaXNBUk02
NCgpKQorICAgICAgICBjaGVja1VzZXNJbnN0cnVjdGlvbigqY29kZSwgInNtc3VibCIpOworCisg
ICAgZm9yIChhdXRvIGEgOiBpbnQ2NE9wZXJhbmRzKCkpIHsKKyAgICAgICAgZm9yIChhdXRvIG4g
OiBpbnQzMk9wZXJhbmRzKCkpIHsKKyAgICAgICAgICAgIGZvciAoYXV0byBtIDogaW50MzJPcGVy
YW5kcygpKSB7CisgICAgICAgICAgICAgICAgaW50NjRfdCBsaHMgPSBpbnZva2U8aW50NjRfdD4o
KmNvZGUsIGEudmFsdWUsIG4udmFsdWUsIG0udmFsdWUpOworICAgICAgICAgICAgICAgIGludDY0
X3QgcmhzID0gYS52YWx1ZSAtIHN0YXRpY19jYXN0PGludDY0X3Q+KG4udmFsdWUpICogc3RhdGlj
X2Nhc3Q8aW50NjRfdD4obS52YWx1ZSk7CisgICAgICAgICAgICAgICAgQ0hFQ0sobGhzID09IHJo
cyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L3Rlc3RiM18zLmNwcAppbmRleCA4NTliOGZjOWU2MzU1ODQ2MmQ4NWYxYzVlN2QzYTAxMDQyNThm
MDUxLi43MWU0OWJjNjFkYTA4MTFkMjAzNDQ1Njk4NDE4MWFlMWQwZTdlMjI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzMuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy90ZXN0YjNfMy5jcHAKQEAgLTMyMDAsNiArMzIwMCw3IEBAIHZvaWQgYWRk
QXJnVGVzdHMoY29uc3QgY2hhciogZmlsdGVyLCBEZXF1ZTxSZWZQdHI8U2hhcmVkVGFzazx2b2lk
KCk+Pj4mIHRhc2tzKQogICAgIFJVTih0ZXN0TXVsU3ViQXJnc1JpZ2h0KCkpOwogICAgIFJVTih0
ZXN0TXVsU3ViQXJnc0xlZnQzMigpKTsKICAgICBSVU4odGVzdE11bFN1YkFyZ3NSaWdodDMyKCkp
OworICAgIFJVTih0ZXN0TXVsU3ViU2lnbkV4dGVuZDMyQXJncygpKTsKICAgICBSVU4odGVzdE11
bE5lZ0FyZ3MoKSk7CiAgICAgUlVOKHRlc3RNdWxOZWdBcmdzMzIoKSk7CiAgICAgCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>