<?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>227563</bug_id>
          
          <creation_ts>2021-06-30 20:32:45 -0700</creation_ts>
          <short_desc>Fix Gmail hang bug (rdar://79978150) and discard the speculative fix (bug 227554)</short_desc>
          <delta_ts>2021-07-06 10:30:18 -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>fpizlo</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>1773985</commentid>
    <comment_count>0</comment_count>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-06-30 20:32:45 -0700</bug_when>
    <thetext>https://bugs.webkit.org/show_bug.cgi?id=227554 This speculative fix actually disables the pattern matches of UBFX, BFI, and SBFIZ. This patch will fix the instruction check failures in testb3 for those instruction pattern matches on ToT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774109</commentid>
    <comment_count>1</comment_count>
      <attachid>432692</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-07-01 08:05:01 -0700</bug_when>
    <thetext>Created attachment 432692
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774867</commentid>
    <comment_count>2</comment_count>
      <attachid>432901</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-07-05 16:07:10 -0700</bug_when>
    <thetext>Created attachment 432901
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774868</commentid>
    <comment_count>3</comment_count>
      <attachid>432902</attachid>
    <who name="Yijia Huang">yijia_huang</who>
    <bug_when>2021-07-05 16:15:37 -0700</bug_when>
    <thetext>Created attachment 432902
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774985</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-06 10:29:36 -0700</bug_when>
    <thetext>Committed r279593 (239419@main): &lt;https://commits.webkit.org/239419@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432902.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774986</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-07-06 10:30:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/80218496&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432692</attachid>
            <date>2021-07-01 08:05:01 -0700</date>
            <delta_ts>2021-07-05 16:07:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227563-20210701100500.patch</filename>
            <type>text/plain</type>
            <size>3331</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NDQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
M2MxYzMxOWY5ZjYyNTM2N2I5Mzc2N2U0N2U0M2FiYTc1M2ZhZTM1Li5kNDU4NGExNDcyMTgzNTM5
MTA2ZmMwMTc3MmYzM2I0YmZjODE1MDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAyMS0wNy0wMSAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgRml4IGluc3RydWN0aW9uIGNoZWNrIGZhaWx1cmUgb2YgVUJGWCBhbmQg
U0JGSVogaW4gdGVzdGIzIGR1ZSB0byB0aGUgc3BlY3VsYXRpdmUgZml4IGluIGJ1ZyAyMjc1NTQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzU2Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc1NTQgVGhpcyBzcGVjdWxhdGl2ZSBm
aXggYWN0dWFsbHkgZGlzYWJsZXMgdGhlIHBhdHRlcm4gCisgICAgICAgIG1hdGNoZXMgb2YgVUJG
WCwgQkZJLCBhbmQgU0JGSVouIFRoaXMgcGF0Y2ggd2lsbCBmaXggdGhlIGluc3RydWN0aW9uIGNo
ZWNrIGZhaWx1cmVzIGluIHRlc3RiMyBmb3IgCisgICAgICAgIHRob3NlIGluc3RydWN0aW9uIHBh
dHRlcm4gbWF0Y2hlcyBvbiBUb1QuCisKKyAgICAgICAgKiBiMy90ZXN0YjNfMi5jcHA6CisgICAg
ICAgICh0ZXN0VWJmeDMyU2hpZnRBbmQpOgorICAgICAgICAodGVzdFViZngzMkFuZFNoaWZ0KToK
KyAgICAgICAgKHRlc3RVYmZ4NjRTaGlmdEFuZCk6CisgICAgICAgICh0ZXN0VWJmeDY0QW5kU2hp
ZnQpOgorICAgICAgICAqIGIzL3Rlc3RiM18zLmNwcDoKKyAgICAgICAgKHRlc3RJbnNlcnRTaWdu
ZWRCaXRmaWVsZEluWmVybzMyKToKKyAgICAgICAgKHRlc3RJbnNlcnRTaWduZWRCaXRmaWVsZElu
WmVybzY0KToKKwogMjAyMS0wNi0zMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgogCiAgICAgICAgIFtKU0NdIFN0b3AgZ2VuZXJhdGluZyBkZWZhdWx0IHBhcmFtZXRlciBjb2Rl
IGlmIGNsYXNzIGNvbnN0cnVjdG9yIGlzIGNhbGxlZCB3aXRob3V0ICduZXcnCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzIuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL3Rlc3RiM18yLmNwcAppbmRleCBmYTAzNjBjZDNiOGM0MzdkNWZmNDE3YWM4M2Vk
ZmYxZDZkMjFhMThmLi5mYmVkYzlhNDE2NjNlZjNmNGMyMDFhMjEyMjkwNGQ4MGZhMWU2MzA4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzIuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMi5jcHAKQEAgLTI2NjQsNiArMjY2NCw4IEBA
IHZvaWQgdGVzdE5lZ0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDb252ZXJzaW9uKGZsb2F0IGEpCiAK
IHZvaWQgdGVzdFViZngzMlNoaWZ0QW5kKCkKIHsKKyAgICBpZiAoIUpTQzo6T3B0aW9uczo6dXNl
QkZJKCkpCisgICAgICAgIHJldHVybjsKICAgICAvLyBUZXN0IFBhdHRlcm46IChzcmMgPj4gbHNi
KSAmIG1hc2sKICAgICAvLyB3aGVyZTogbWFzayA9ICgxIDw8IHdpZHRoKSAtIDEKICAgICBpZiAo
SlNDOjpPcHRpb25zOjpkZWZhdWx0QjNPcHRMZXZlbCgpIDwgMikKQEAgLTI3MDYsNiArMjcwOCw4
IEBAIHZvaWQgdGVzdFViZngzMlNoaWZ0QW5kKCkKIAogdm9pZCB0ZXN0VWJmeDMyQW5kU2hpZnQo
KQogeworICAgIGlmICghSlNDOjpPcHRpb25zOjp1c2VCRkkoKSkKKyAgICAgICAgcmV0dXJuOwog
ICAgIC8vIFRlc3QgUGF0dGVybjogbWFzayAmIChzcmMgPj4gbHNiKQogICAgIC8vIFdoZXJlOiBt
YXNrID0gKDEgPDwgd2lkdGgpIC0gMQogICAgIGlmIChKU0M6Ok9wdGlvbnM6OmRlZmF1bHRCM09w
dExldmVsKCkgPCAyKQpAQCAtMjc0OCw2ICsyNzUyLDggQEAgdm9pZCB0ZXN0VWJmeDMyQW5kU2hp
ZnQoKQogCiB2b2lkIHRlc3RVYmZ4NjRTaGlmdEFuZCgpCiB7CisgICAgaWYgKCFKU0M6Ok9wdGlv
bnM6OnVzZUJGSSgpKQorICAgICAgICByZXR1cm47CiAgICAgLy8gVGVzdCBQYXR0ZXJuOiAoc3Jj
ID4+IGxzYikgJiBtYXNrCiAgICAgLy8gd2hlcmU6IG1hc2sgPSAoMSA8PCB3aWR0aCkgLSAxCiAg
ICAgaWYgKEpTQzo6T3B0aW9uczo6ZGVmYXVsdEIzT3B0TGV2ZWwoKSA8IDIpCkBAIC0yNzg4LDYg
KzI3OTQsOCBAQCB2b2lkIHRlc3RVYmZ4NjRTaGlmdEFuZCgpCiAKIHZvaWQgdGVzdFViZng2NEFu
ZFNoaWZ0KCkKIHsKKyAgICBpZiAoIUpTQzo6T3B0aW9uczo6dXNlQkZJKCkpCisgICAgICAgIHJl
dHVybjsKICAgICAvLyBUZXN0IFBhdHRlcm46IG1hc2sgJiAoc3JjID4+IGxzYikKICAgICAvLyBX
aGVyZTogbWFzayA9ICgxIDw8IHdpZHRoKSAtIDEKICAgICBpZiAoSlNDOjpPcHRpb25zOjpkZWZh
dWx0QjNPcHRMZXZlbCgpIDwgMikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My90ZXN0YjNfMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzMuY3BwCmlu
ZGV4IDA2NDFiODRjZmU2NTI3MDIwYmMwNmJlNTVjYzlkZWNkZWRkZDMxNjEuLjE0MjJkZmExZWY0
MjZkYzc0OTZlNWE0NGY2ZWNmYjdkZGJhODk3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy90ZXN0YjNfMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rl
c3RiM18zLmNwcApAQCAtMzAsNiArMzAsOCBAQAogCiB2b2lkIHRlc3RJbnNlcnRTaWduZWRCaXRm
aWVsZEluWmVybzMyKCkKIHsKKyAgICBpZiAoIUpTQzo6T3B0aW9uczo6dXNlQkZJKCkpCisgICAg
ICAgIHJldHVybjsKICAgICBpZiAoSlNDOjpPcHRpb25zOjpkZWZhdWx0QjNPcHRMZXZlbCgpIDwg
MikKICAgICAgICAgcmV0dXJuOwogICAgIGludDMyX3Qgc3JjID0gMHhmZmZmZmZmZjsKQEAgLTc2
LDYgKzc4LDggQEAgdm9pZCB0ZXN0SW5zZXJ0U2lnbmVkQml0ZmllbGRJblplcm8zMigpCiAKIHZv
aWQgdGVzdEluc2VydFNpZ25lZEJpdGZpZWxkSW5aZXJvNjQoKQogeworICAgIGlmICghSlNDOjpP
cHRpb25zOjp1c2VCRkkoKSkKKyAgICAgICAgcmV0dXJuOwogICAgIGlmIChKU0M6Ok9wdGlvbnM6
OmRlZmF1bHRCM09wdExldmVsKCkgPCAyKQogICAgICAgICByZXR1cm47CiAgICAgaW50NjRfdCBz
cmMgPSAweGZmZmZmZmZmZmZmZmZmZmY7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432901</attachid>
            <date>2021-07-05 16:07:10 -0700</date>
            <delta_ts>2021-07-05 16:15:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227563-20210705180709.patch</filename>
            <type>text/plain</type>
            <size>20157</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
YjI4MzJhN2RhMzE2NDNmM2ZhM2FlYmQwZDgxZDJjZDUyMmE4Yjk2Li44NDcyZjQwMTkxMGY4NzBi
Zjc5ZGE3MGZiMmNiNzViMzVkNjMxNmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3OSBAQAorMjAyMS0wNy0wNSAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgRml4IGluc3RydWN0aW9uIGNoZWNrIGZhaWx1cmUgb2YgVUJGWCBhbmQg
U0JGSVogaW4gdGVzdGIzIGR1ZSB0byB0aGUgc3BlY3VsYXRpdmUgZml4IGluIGJ1ZyAyMjc1NTQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzU2Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggaW5jbHVkZXMgdHdvIG1vZGlmaWNhdGlvbnMgdG8gcmVzb2x2ZSByZGFyOi8vNzk5NzgxNTA6
CisgICAgICAgICAgICAxLiBGaXggdGhlIGJ1ZyBjYXVzZWQgYnkgdGhlIHBhdGNoIGludHJvZHVj
aW5nIEJGSS4KKyAgICAgICAgICAgIDIuIERpc2NhcmQgdGhlIGNvcnJlc3BvbmRpbmcgc3BlY3Vs
YXRpdmUgZml4IGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc1
NTQuCisKKyAgICAgICAgVGhlIHByZXZpb3VzIHBhdGNoLCBhZGRlZCBiaXQgZmllbGQgaW5zZXJ0
IChCRkkpIHRvIEFJUiBvcGNvZGUsIGNhdXNlcyB0aGUgR21haWwgcGFnZSAKKyAgICAgICAgaGFu
Z2luZyBpc3N1ZSBvbiBTYWZhcmkuIFRoZSByb290IGNhdXNlIGlzIHRoZSBpbmNvcnJlY3QgZGVm
aW5pdGlvbiBvZiByZWdpc3RlciByb2xlIGluIAorICAgICAgICBCRkkncyBBSVIgb3Bjb2RlLiBT
aW5jZSBCRkkgaW5zZXJ0cyBhIGJpdCBmaWVsZCBhdCB0aGUgbG93IGVuZCBvZiB0aGUgZGVzdGlu
YXRpb24gcmVnaXN0ZXIgCisgICAgICAgIHdoaWxlIGtlZXBpbmcgdGhlIGhpZ2ggYml0IHVuY2hh
bmdlZCwgdGhlIGRlc3RpbmF0aW9uIHJlZ2lzdGVyIHNob3VsZCBoYXZlIGJvdGggcm9sZXMgb2Yg
CisgICAgICAgIHVzZSBhbmQgZGVmaW5lIHNpbXVsdGFuZW91c2x5LCB3aGljaCBpcyBub3QgKG1p
c3NpbmcgdXNlKSBpbiB0aGUgcHJldmlvdXMgcGF0Y2guIAorCisgICAgICAgIFRoaXMgd2lsbCBy
ZXN1bHQgaW4gdGhlIGxvc3Mgb2YgcHJlc2VydmluZyB0aGUgdmFsdWUgb2YgdGhlIGRlc3RpbmF0
aW9uIHJlZ2lzdGVyLCAKKyAgICAgICAgd2hpY2ggZG9lcyBoYXBwZW4gd2hlbiBicm93c2luZyB0
aGUgR21haWwgcGFnZSBvbiBTYWZhcmkuCisKKyAgICAgICAgICAgIC8vIEIzIElSIHNuaXBwZXRz
IGZyb20gR21haWwKKyAgICAgICAgICAgIEludDMyIGJAMjMgID0gQWRkKGJAMTA0LCBiQDExMSwg
REAxMDApCisgICAgICAgICAgICAuLi4KKyAgICAgICAgICAgIEludDMyIGJANTUgID0gQ29uc3Qz
Mig2NTUzNSwgREA1MCkKKyAgICAgICAgICAgIEludDMyIGJAMTM3ID0gQml0QW5kKGJAMTE4LCAk
NjU1MzUoYkA1NSksIERAMTYwKQorICAgICAgICAgICAgSW50MzIgYkAxNjggPSBDb25zdDMyKDE2
LCBEQDQwKQorICAgICAgICAgICAgSW50MzIgYkAxNDEgPSBTaGwoYkAxMzcsICQxNihiQDE2OCks
IERAMTYzKQorICAgICAgICAgICAgSW50MzIgYkAxNDMgPSBCaXRBbmQoYkAyMywgJDY1NTM1KGJA
NTUpLCBEQDE2NikKKyAgICAgICAgICAgIEludDMyIGJAMTQ0ID0gQml0T3IoYkAxNDEsIGJAMTQz
LCBEQDE2OSkKKworICAgICAgICBUaGUgcGF0dGVybiBvZiBCRkkgaXMgZCA9ICgobiAmIG1hc2sx
KSA8PCBsc2IpIHwgKGQgJiBtYXNrMikuIFNvLCBpdCBpcyBvYnZpb3VzIHRoYXQgCisgICAgICAg
IEJGSSBjYW4gYmUgdXRpbGl6ZWQgaW4gYkAxNDQgd2hlcmUgdGhlIGQgaXMgYkAyMy4KKworICAg
ICAgICAgICAgLy8gSW5jb3JyZWN0IEFJUiBvcGNvZGUgb2YgQkZJCisgICAgICAgICAgICBhcm02
NDogSW5zZXJ0Qml0RmllbGQzMiBVOkc6MzIsIFU6RzozMiwgVTpHOjMyLCBaRDpHOjMyCisgICAg
ICAgICAgICAgICAgVG1wLCBJbW0sIEltbSwgVG1wCisKKyAgICAgICAgICAgIC8vIEFpciB3L28g
dXNlIHJvbGUKKyAgICAgICAgICAgIEFkZDMyICAgICAgICAgICAgJXgzLCAleDcsICV4NywgICAg
ICBiQDIzCisgICAgICAgICAgICAuLi4KKyAgICAgICAgICAgIEluc2VydEJpdEZpZWxkMzIgJXgz
LCAkMTYsICQxNiwgJXg0LCBiQDE0NAorCisgICAgICAgICAgICAvLyBHZW5lcmF0ZWQgY29kZSB3
L28gdXNlIHJvbGUKKyAgICAgICAgICAgIGFkZCAgICAgIHc3LCB3MywgIHc3CisgICAgICAgICAg
ICAuLi4KKyAgICAgICAgICAgIGJmaSAgICAgIHc0LCB3MywgIzE2LCAjMTYKKworICAgICAgICBJ
biBBaXIsIHRoZSBhZGRlZCB2YWx1ZSBpcyBzdG9yZWQgaW4gdGhlIHc3LiBCdXQgdGhlIHZhbHVl
IGlzIG5vdCBwcmVzZXJ2ZWQgYWZ0ZXIgCisgICAgICAgIGxvd2VyaW5nIHdpdGggQkZJLiBUbyBm
aXggdGhpcywgdGhlIHVzZSByb2xlIHNob3VsZCBiZSBlbmFibGVkIGZvciB0aGUgZGVzdGluYXRp
b24gCisgICAgICAgIHJlZ2lzdGVyLgorCisgICAgICAgICAgICAvLyBDb3JyZW5jdCBBSVIgb3Bj
b2RlIG9mIEJGSQorICAgICAgICAgICAgYXJtNjQ6IEluc2VydEJpdEZpZWxkMzIgVTpHOjMyLCBV
Okc6MzIsIFU6RzozMiwgVVpEOkc6MzIKKyAgICAgICAgICAgICAgICBUbXAsIEltbSwgSW1tLCBU
bXAKKworICAgICAgICAgICAgLy8gQWlyIHcvIHVzZSByb2xlCisgICAgICAgICAgICBBZGQzMiAg
ICAgICAgICAgICV4MywgJXg3LCAleDcsICAgICAgYkAyMworICAgICAgICAgICAgLi4uCisgICAg
ICAgICAgICBNb3ZlMzIgICAgICAgICAgICV4NywgJXg0LCAgICAgICAgICAgYkAxNDQKKyAgICAg
ICAgICAgIEluc2VydEJpdEZpZWxkMzIgJXgzLCAkMTYsICQxNiwgJXg0LCBiQDE0NAorCisgICAg
ICAgICAgICAvLyBHZW5lcmF0ZWQgY29kZSB3LyB1c2Ugcm9sZQorICAgICAgICAgICAgYWRkICAg
ICAgdzcsIHczLCB3NworICAgICAgICAgICAgLi4uCisgICAgICAgICAgICB1YmZ4ICAgICB4NCwg
eDcsICAjMCwgIzMyCisgICAgICAgICAgICBiZmkgICAgICB3NCwgdzMsICMxNiwgIzE2CisKKyAg
ICAgICAgKiBiMy9CM0xvd2VyVG9BaXIuY3BwOgorICAgICAgICAqIGIzL2Fpci9BaXJPcGNvZGUu
b3Bjb2RlczoKKyAgICAgICAgKiBiMy90ZXN0YjNfMi5jcHA6CisgICAgICAgICh0ZXN0SW5zZXJ0
Qml0RmllbGQzMik6CisgICAgICAgICh0ZXN0SW5zZXJ0Qml0RmllbGQ2NCk6CisgICAgICAgICh0
ZXN0RXh0cmFjdEluc2VydEJpdGZpZWxkQXRMb3dFbmQzMik6CisgICAgICAgICh0ZXN0RXh0cmFj
dEluc2VydEJpdGZpZWxkQXRMb3dFbmQ2NCk6CisgICAgICAgICogcnVudGltZS9PcHRpb25zTGlz
dC5oOgorCiAyMDIxLTA3LTA0ICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+
CiAKICAgICAgICAgQWN0aXZlU2NyYXRjaEJ1ZmZlclNjb3BlIHNob3VsZCB0YWtlIHRoZSBidWZm
ZXIgYXMgYXJndW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xv
d2VyVG9BaXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAK
aW5kZXggMDAyZTUyNGYxYmEyM2ZkYjExMjE3MzNlMTRlMmZiYzAzYWM1MmFlNC4uMDk2NTg0MDRm
NDgzMTRlNDE3NTkxMzgzYTFjY2E1Nzg4YmVjZTZkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzTG93ZXJUb0Fpci5jcHAKQEAgLTI3NjQsOCArMjc2NCw2IEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICAvLyBVQkZYIFBhdHRlcm46IGRlc3QgPSAoc3JjID4+IGxzYikgJiBtYXNrIAogICAg
ICAgICAgICAgLy8gV2hlcmU6IG1hc2sgPSAoMSA8PCB3aWR0aCkgLSAxCiAgICAgICAgICAgICBh
dXRvIHRyeUFwcGVuZFVCRlggPSBbJl0gKCkgLT4gYm9vbCB7Ci0gICAgICAgICAgICAgICAgaWYg
KCFPcHRpb25zOjp1c2VCRkkoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICAgICAgICAgIEFpcjo6T3Bjb2RlIG9wY29kZSA9IG9wY29kZUZvclR5cGUoRXh0cmFj
dFVuc2lnbmVkQml0ZmllbGQzMiwgRXh0cmFjdFVuc2lnbmVkQml0ZmllbGQ2NCwgbV92YWx1ZS0+
dHlwZSgpKTsKICAgICAgICAgICAgICAgICBpZiAoIWlzVmFsaWRGb3JtKG9wY29kZSwgQXJnOjpU
bXAsIEFyZzo6SW1tLCBBcmc6OkltbSwgQXJnOjpUbXApKSAKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtMjg2NSw4ICsyODYzLDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
IC8vIFdoZXJlOiBtYXNrMSA9ICgoMSA8PCB3aWR0aCkgLSAxKQogICAgICAgICAgICAgLy8gICAg
ICAgIG1hc2syID0gfihtYXNrMSA8PCBsc2IpCiAgICAgICAgICAgICBhdXRvIHRyeUFwcGVuZEJG
SSA9IFsmXSAoVmFsdWUqIGxlZnQsIFZhbHVlKiByaWdodCkgLT4gYm9vbCB7Ci0gICAgICAgICAg
ICAgICAgaWYgKCFPcHRpb25zOjp1c2VCRkkoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICAgICAgICAgIEFpcjo6T3Bjb2RlIG9wY29kZSA9IG9wY29kZUZvclR5
cGUoSW5zZXJ0Qml0RmllbGQzMiwgSW5zZXJ0Qml0RmllbGQ2NCwgbV92YWx1ZS0+dHlwZSgpKTsK
ICAgICAgICAgICAgICAgICBpZiAoIWlzVmFsaWRGb3JtKG9wY29kZSwgQXJnOjpUbXAsIEFyZzo6
SW1tLCBBcmc6OkltbSwgQXJnOjpUbXApKSAKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwpAQCAtMzA1NSw4ICszMDUxLDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIC8vIFNCRkla
IFBhdHRlcm46IGQgPSAoKHNyYyA8PCBhbW91bnQpID4+IGFtb3VudCkgPDwgbHNiCiAgICAgICAg
ICAgICAvLyB3aGVyZTogYW1vdW50ID0gZGF0YXNpemUgLSB3aWR0aAogICAgICAgICAgICAgYXV0
byB0cnlBcHBlbmRTQkZJWiA9IFsmXSAoKSAtPiBib29sIHsKLSAgICAgICAgICAgICAgICBpZiAo
IU9wdGlvbnM6OnVzZUJGSSgpKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgICAgICAgICAgQWlyOjpPcGNvZGUgb3Bjb2RlID0gb3Bjb2RlRm9yVHlwZShJbnNlcnRT
aWduZWRCaXRmaWVsZEluWmVybzMyLCBJbnNlcnRTaWduZWRCaXRmaWVsZEluWmVybzY0LCBtX3Zh
bHVlLT50eXBlKCkpOwogICAgICAgICAgICAgICAgIGlmICghaXNWYWxpZEZvcm0ob3Bjb2RlLCBB
cmc6OlRtcCwgQXJnOjpJbW0sIEFyZzo6SW1tLCBBcmc6OlRtcCkpCiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyT3Bjb2RlLm9wY29kZXMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9w
Y29kZS5vcGNvZGVzCmluZGV4IDRiOGEyOGJiN2M4YzkwNTk1YjJmODgxNDkwODBkZmY5NGIwMDIw
M2IuLmQ0N2ZhM2VjYjM4YjI2MTQ1NWQ2OTA1YTQ2OWZmNzg0YzFmYWY5NTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcwpAQCAtODI0LDEwICs4
MjQsMTAgQEAgYXJtNjQ6IEluc2VydFVuc2lnbmVkQml0ZmllbGRJblplcm8zMiBVOkc6MzIsIFU6
RzozMiwgVTpHOjMyLCBaRDpHOjMyCiBhcm02NDogSW5zZXJ0VW5zaWduZWRCaXRmaWVsZEluWmVy
bzY0IFU6Rzo2NCwgVTpHOjMyLCBVOkc6MzIsIEQ6Rzo2NAogICAgIFRtcCwgSW1tLCBJbW0sIFRt
cAogCi1hcm02NDogSW5zZXJ0Qml0RmllbGQzMiBVOkc6MzIsIFU6RzozMiwgVTpHOjMyLCBaRDpH
OjMyCithcm02NDogSW5zZXJ0Qml0RmllbGQzMiBVOkc6MzIsIFU6RzozMiwgVTpHOjMyLCBVWkQ6
RzozMgogICAgIFRtcCwgSW1tLCBJbW0sIFRtcAogCi1hcm02NDogSW5zZXJ0Qml0RmllbGQ2NCBV
Okc6NjQsIFU6RzozMiwgVTpHOjMyLCBEOkc6NjQKK2FybTY0OiBJbnNlcnRCaXRGaWVsZDY0IFU6
Rzo2NCwgVTpHOjMyLCBVOkc6MzIsIFVEOkc6NjQKICAgICBUbXAsIEltbSwgSW1tLCBUbXAKIAog
YXJtNjQ6IENsZWFyQml0RmllbGQzMiBVOkc6MzIsIFU6RzozMiwgWkQ6RzozMgpAQCAtODQ4LDEw
ICs4NDgsMTAgQEAgYXJtNjQ6IE9yTm90MzIgVTpHOjMyLCBVOkc6MzIsIFpEOkc6MzIKIGFybTY0
OiBPck5vdDY0IFU6Rzo2NCwgVTpHOjY0LCBEOkc6NjQKICAgICBUbXAsIFRtcCwgVG1wCiAKLWFy
bTY0OiBFeHRyYWN0SW5zZXJ0Qml0ZmllbGRBdExvd0VuZDMyIFU6RzozMiwgVTpHOjMyLCBVOkc6
MzIsIFpEOkc6MzIKK2FybTY0OiBFeHRyYWN0SW5zZXJ0Qml0ZmllbGRBdExvd0VuZDMyIFU6Rzoz
MiwgVTpHOjMyLCBVOkc6MzIsIFVaRDpHOjMyCiAgICAgVG1wLCBJbW0sIEltbSwgVG1wCiAKLWFy
bTY0OiBFeHRyYWN0SW5zZXJ0Qml0ZmllbGRBdExvd0VuZDY0IFU6Rzo2NCwgVTpHOjMyLCBVOkc6
MzIsIEQ6Rzo2NAorYXJtNjQ6IEV4dHJhY3RJbnNlcnRCaXRmaWVsZEF0TG93RW5kNjQgVTpHOjY0
LCBVOkc6MzIsIFU6RzozMiwgVUQ6Rzo2NAogICAgIFRtcCwgSW1tLCBJbW0sIFRtcAogCiBhcm02
NDogSW5zZXJ0U2lnbmVkQml0ZmllbGRJblplcm8zMiBVOkc6MzIsIFU6RzozMiwgVTpHOjMyLCBa
RDpHOjMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzIuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM18yLmNwcAppbmRleCBiZTdmMjhhZmZh
YjQ1NGM0OGJkZDFkNjFkNWQ5NTExMzE0NGE4MzU0Li44ODA0NWYxNWRjZWE0ZjAyZDFkMTFiOTJh
MDIzYjRmYjdlMDFiNjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVz
dGIzXzIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMi5jcHAKQEAg
LTMxNjAsOCArMzE2MCw2IEBAIHZvaWQgdGVzdFViZml6NjRBbmRTaGlmdCgpCiAKIHZvaWQgdGVz
dEluc2VydEJpdEZpZWxkMzIoKQogewotICAgIGlmICghSlNDOjpPcHRpb25zOjp1c2VCRkkoKSkK
LSAgICAgICAgcmV0dXJuOwogICAgIGlmIChKU0M6Ok9wdGlvbnM6OmRlZmF1bHRCM09wdExldmVs
KCkgPCAyKQogICAgICAgICByZXR1cm47CiAgICAgdWludDMyX3QgZCA9IDB4ZjBmMGYwZjA7CkBA
IC0zMTk5LDYgKzMxOTcsMTMgQEAgdm9pZCB0ZXN0SW5zZXJ0Qml0RmllbGQzMigpCiAgICAgICAg
IHJldHVybiBpbnZva2U8dWludDMyX3Q+KCpjb2RlLCBkLCBuKTsKICAgICB9OwogCisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBsc2JzLnNpemUoKTsgKytpKSB7CisgICAgICAgIHVpbnQzMl90
IGxzYiA9IGxzYnMuYXQoaSk7CisgICAgICAgIHVpbnQzMl90IG1hc2sxID0gKDFVIDw8IHdpZHRo
cy5hdChpKSkgLSAxVTsKKyAgICAgICAgdWludDMyX3QgbWFzazIgPSB+KG1hc2sxIDw8IGxzYik7
CisgICAgICAgIENIRUNLKHRlc3QxKGxzYiwgbWFzazEsIG1hc2syKSA9PSAoKChuICYgbWFzazEp
IDw8IGxzYikgfCAoZCAmIG1hc2syKSkpOworICAgIH0KKwogICAgIC8vIFRlc3QgUGF0dGVybjog
ZCA9IChkICYgbWFzazIpIHwgKChuICYgbWFzazEpIDw8IGxzYikgCiAgICAgLy8gV2hlcmU6IG1h
c2sxID0gKCgxIDw8IHdpZHRoKSAtIDEpCiAgICAgLy8gICAgICAgIG1hc2syID0gfihtYXNrMSA8
PCBsc2IpCkBAIC0zMjMzLDE1ICszMjM4LDcwIEBAIHZvaWQgdGVzdEluc2VydEJpdEZpZWxkMzIo
KQogICAgICAgICB1aW50MzJfdCBsc2IgPSBsc2JzLmF0KGkpOwogICAgICAgICB1aW50MzJfdCBt
YXNrMSA9ICgxVSA8PCB3aWR0aHMuYXQoaSkpIC0gMVU7CiAgICAgICAgIHVpbnQzMl90IG1hc2sy
ID0gfihtYXNrMSA8PCBsc2IpOwotICAgICAgICBDSEVDSyh0ZXN0MShsc2IsIG1hc2sxLCBtYXNr
MikgPT0gKCgobiAmIG1hc2sxKSA8PCBsc2IpIHwgKGQgJiBtYXNrMikpKTsKICAgICAgICAgQ0hF
Q0sodGVzdDIobHNiLCBtYXNrMSwgbWFzazIpID09ICgoZCAmIG1hc2syKSB8ICgobiAmIG1hc2sx
KSA8PCBsc2IpKSk7CiAgICAgfQorCisgICAgLy8gVGVzdCB1c2Ugcm9sZSBvbiBkZXN0aW5hdGlv
biByZWdpc3RlciBvZiBCRkkKKyAgICB1aW50MzJfdCBkQSA9IDB4MDAwMGYwZjA7CisgICAgdWlu
dDMyX3QgZEIgPSAweGYwZjAwMDAwOworCisgICAgYXV0byB0ZXN0MyA9IFsmXSAodWludDMyX3Qg
bHNiLCB1aW50MzJfdCBtYXNrMSwgdWludDMyX3QgbWFzazIpIC0+IHVpbnQzMl90IHsKKyAgICAg
ICAgUHJvY2VkdXJlIHByb2M7CisgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CisKKyAgICAgICAgVmFsdWUqIGRBVmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KAorICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLCAKKyAgICAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKSk7CisgICAgICAgIFZhbHVlKiBkQlZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKKyAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwgCisgICAgICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMSkpOworICAgICAgICBWYWx1ZSogblZhbHVlID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwgCisgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMikpOworICAgICAgICBWYWx1ZSogbHNiVmFsdWUgPSByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgbHNiKTsKKyAgICAgICAgVmFsdWUq
IG1hc2tWYWx1ZTEgPSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgbWFzazEpOworICAgICAgICBWYWx1ZSogbWFza1ZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBtYXNrMik7CisKKyAgICAgICAgLy8gZCA9IGRB
ICsgZEIKKyAgICAgICAgVmFsdWUqIGRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQWRkLCBPcmlnaW4oKSwgZEFWYWx1ZSwgZEJWYWx1ZSk7CisKKyAgICAgICAgLy8gZCA9IChk
ICYgbWFzazIpIHwgKChuICYgbWFzazEpIDw8IGxzYikgCisgICAgICAgIFZhbHVlKiBsZWZ0QW5k
VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwgT3JpZ2luKCksIG5W
YWx1ZSwgbWFza1ZhbHVlMSk7CisgICAgICAgIFZhbHVlKiBzaGlmdFZhbHVlID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBTaGwsIE9yaWdpbigpLCBsZWZ0QW5kVmFsdWUsIGxzYlZhbHVl
KTsKKyAgICAgICAgVmFsdWUqIHJpZ2h0QW5kVmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdEFuZCwgT3JpZ2luKCksIGRWYWx1ZSwgbWFza1ZhbHVlMik7CisgICAgICAgIFZh
bHVlKiBvclZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRPciwgT3JpZ2lu
KCksIHNoaWZ0VmFsdWUsIHJpZ2h0QW5kVmFsdWUpOworCisgICAgICAgIC8vIHYzID0gKChtYXNr
MSArIG1hc2syKSArIGRCKSArIGRBCisgICAgICAgIFZhbHVlKiB2YWx1ZTEgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIG1hc2tWYWx1ZTEsIG1hc2tWYWx1ZTIp
OworICAgICAgICBWYWx1ZSogdmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBB
ZGQsIE9yaWdpbigpLCB2YWx1ZTEsIGRCVmFsdWUpOworICAgICAgICBWYWx1ZSogdmFsdWUzID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1ZTIsIGRBVmFs
dWUpOworCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKKyAgICAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksIAorICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1ZTMsIG9yVmFsdWUpKTsKKworICAgICAgICBh
dXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKKyAgICAgICAgaWYgKGlzQVJNNjQoKSkKKyAg
ICAgICAgICAgIGNoZWNrVXNlc0luc3RydWN0aW9uKCpjb2RlLCAiYmZpIik7CisgICAgICAgIHJl
dHVybiBpbnZva2U8dWludDMyX3Q+KCpjb2RlLCBkQSwgZEIsIG4pOworICAgIH07CisKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGxzYnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgdWludDMy
X3QgbHNiID0gbHNicy5hdChpKTsKKyAgICAgICAgdWludDMyX3QgbWFzazEgPSAoMVUgPDwgd2lk
dGhzLmF0KGkpKSAtIDFVOworICAgICAgICB1aW50MzJfdCBtYXNrMiA9IH4obWFzazEgPDwgbHNi
KTsKKworICAgICAgICB1aW50MzJfdCBsaHMzID0gdGVzdDMobHNiLCBtYXNrMSwgbWFzazIpOwor
ICAgICAgICB1aW50MzJfdCBkdiA9IGRBICsgZEI7CisgICAgICAgIGR2ID0gKGR2ICYgbWFzazIp
IHwgKChuICYgbWFzazEpIDw8IGxzYik7CisgICAgICAgIHVpbnQzMl90IHYzID0gKChtYXNrMSAr
IG1hc2syKSArIGRCKSArIGRBOworICAgICAgICB1aW50MzJfdCByaHMzID0gdjMgKyBkdjsKKyAg
ICAgICAgQ0hFQ0sobGhzMyA9PSByaHMzKTsKKyAgICB9CiB9CiAKIHZvaWQgdGVzdEluc2VydEJp
dEZpZWxkNjQoKQogewotICAgIGlmICghSlNDOjpPcHRpb25zOjp1c2VCRkkoKSkKLSAgICAgICAg
cmV0dXJuOwogICAgIGlmIChKU0M6Ok9wdGlvbnM6OmRlZmF1bHRCM09wdExldmVsKCkgPCAyKQog
ICAgICAgICByZXR1cm47CiAgICAgdWludDY0X3QgZCA9IDB4ZjBmMGYwZjBmMGYwZjBmMDsKQEAg
LTMzMDgsNiArMzM2OCw1OCBAQCB2b2lkIHRlc3RJbnNlcnRCaXRGaWVsZDY0KCkKICAgICAgICAg
Q0hFQ0sodGVzdDEobHNiLCBtYXNrMSwgbWFzazIpID09ICgoKG4gJiBtYXNrMSkgPDwgbHNiKSB8
IChkICYgbWFzazIpKSk7CiAgICAgICAgIENIRUNLKHRlc3QyKGxzYiwgbWFzazEsIG1hc2syKSA9
PSAoKGQgJiBtYXNrMikgfCAoKG4gJiBtYXNrMSkgPDwgbHNiKSkpOwogICAgIH0KKworICAgIC8v
IFRlc3QgdXNlIHJvbGUgb24gZGVzdGluYXRpb24gcmVnaXN0ZXIgb2YgQkZJCisgICAgdWludDY0
X3QgZEEgPSAweDAwMDAwMDAwZjBmMGYwZjA7CisgICAgdWludDY0X3QgZEIgPSAweGYwZjBmMGYw
MDAwMDAwMDA7CisKKyAgICBhdXRvIHRlc3QzID0gWyZdICh1aW50NjRfdCBsc2IsIHVpbnQ2NF90
IG1hc2sxLCB1aW50NjRfdCBtYXNrMikgLT4gdWludDY0X3QgeworICAgICAgICBQcm9jZWR1cmUg
cHJvYzsKKyAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKworICAg
ICAgICBWYWx1ZSogZEFWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICAgICAgVmFsdWUqIGRC
VmFsdWUgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgICAgIFZhbHVlKiBuVmFsdWUgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMik7CisgICAgICAgIFZhbHVlKiBsc2JWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBsc2IpOworICAgICAgICBWYWx1ZSogbWFza1ZhbHVl
MSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBtYXNrMSk7
CisgICAgICAgIFZhbHVlKiBtYXNrVmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIG1hc2syKTsKKworICAgICAgICAvLyBkID0gZEEgKyBkQgorICAg
ICAgICBWYWx1ZSogZFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9y
aWdpbigpLCBkQVZhbHVlLCBkQlZhbHVlKTsKKworICAgICAgICAvLyBkID0gKGQgJiBtYXNrMikg
fCAoKG4gJiBtYXNrMSkgPDwgbHNiKSAKKyAgICAgICAgVmFsdWUqIGxlZnRBbmRWYWx1ZSA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgblZhbHVlLCBtYXNr
VmFsdWUxKTsKKyAgICAgICAgVmFsdWUqIHNoaWZ0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIFNobCwgT3JpZ2luKCksIGxlZnRBbmRWYWx1ZSwgbHNiVmFsdWUpOworICAgICAg
ICBWYWx1ZSogcmlnaHRBbmRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0
QW5kLCBPcmlnaW4oKSwgZFZhbHVlLCBtYXNrVmFsdWUyKTsKKyAgICAgICAgVmFsdWUqIG9yVmFs
dWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdE9yLCBPcmlnaW4oKSwgc2hpZnRW
YWx1ZSwgcmlnaHRBbmRWYWx1ZSk7CisKKyAgICAgICAgLy8gdjMgPSAoKG1hc2sxICsgbWFzazIp
ICsgZEIpICsgZEEKKyAgICAgICAgVmFsdWUqIHZhbHVlMSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgbWFza1ZhbHVlMSwgbWFza1ZhbHVlMik7CisgICAgICAg
IFZhbHVlKiB2YWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2lu
KCksIHZhbHVlMSwgZEJWYWx1ZSk7CisgICAgICAgIFZhbHVlKiB2YWx1ZTMgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHZhbHVlMiwgZEFWYWx1ZSk7CisKKyAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAorICAgICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgCisgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEFkZCwgT3JpZ2luKCksIHZhbHVlMywgb3JWYWx1ZSkpOworCisgICAgICAgIGF1dG8gY29kZSA9
IGNvbXBpbGVQcm9jKHByb2MpOworICAgICAgICBpZiAoaXNBUk02NCgpKQorICAgICAgICAgICAg
Y2hlY2tVc2VzSW5zdHJ1Y3Rpb24oKmNvZGUsICJiZmkiKTsKKyAgICAgICAgcmV0dXJuIGludm9r
ZTx1aW50NjRfdD4oKmNvZGUsIGRBLCBkQiwgbik7CisgICAgfTsKKworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgbHNicy5zaXplKCk7ICsraSkgeworICAgICAgICB1aW50NjRfdCBsc2IgPSBs
c2JzLmF0KGkpOworICAgICAgICB1aW50NjRfdCBtYXNrMSA9ICgxVUxMIDw8IHdpZHRocy5hdChp
KSkgLSAxVUxMOworICAgICAgICB1aW50NjRfdCBtYXNrMiA9IH4obWFzazEgPDwgbHNiKTsKKwor
ICAgICAgICB1aW50NjRfdCBsaHMzID0gdGVzdDMobHNiLCBtYXNrMSwgbWFzazIpOworICAgICAg
ICB1aW50NjRfdCBkdiA9IGRBICsgZEI7CisgICAgICAgIGR2ID0gKGR2ICYgbWFzazIpIHwgKChu
ICYgbWFzazEpIDw8IGxzYik7CisgICAgICAgIHVpbnQ2NF90IHYzID0gKChtYXNrMSArIG1hc2sy
KSArIGRCKSArIGRBOworICAgICAgICB1aW50NjRfdCByaHMzID0gdjMgKyBkdjsKKyAgICAgICAg
Q0hFQ0sobGhzMyA9PSByaHMzKTsKKyAgICB9CiB9CiAKIHZvaWQgdGVzdEV4dHJhY3RJbnNlcnRC
aXRmaWVsZEF0TG93RW5kMzIoKQpAQCAtMzM5Miw2ICszNTA0LDY0IEBAIHZvaWQgdGVzdEV4dHJh
Y3RJbnNlcnRCaXRmaWVsZEF0TG93RW5kMzIoKQogICAgICAgICB1aW50MzJfdCBtYXNrMiA9IH4o
bWFzazEgPj4gbHNiKTsKICAgICAgICAgQ0hFQ0sodGVzdDIobHNiLCBtYXNrMSwgbWFzazIpID09
ICgoKG4gJiBtYXNrMSkgPj4gbHNiKSB8IChkICYgbWFzazIpKSk7CiAgICAgfQorCisgICAgLy8g
VGVzdCB1c2Ugcm9sZSBvbiBkZXN0aW5hdGlvbiByZWdpc3RlciBvZiBCRlhJTAorICAgIHVpbnQz
Ml90IGRBID0gMHgwMDAwZjBmMDsKKyAgICB1aW50MzJfdCBkQiA9IDB4ZjBmMDAwMDA7CisKKyAg
ICBhdXRvIHRlc3QzID0gWyZdICh1aW50MzJfdCBsc2IsIHVpbnQzMl90IG1hc2sxLCB1aW50MzJf
dCBtYXNrMikgLT4gdWludDMyX3QgeworICAgICAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKworICAgICAgICBWYWx1ZSogZEFW
YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBUcnVuYywg
T3JpZ2luKCksIAorICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKKyAgICAgICAgVmFsdWUq
IGRCVmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgVHJ1
bmMsIE9yaWdpbigpLCAKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CisgICAgICAgIFZh
bHVlKiBuVmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywg
VHJ1bmMsIE9yaWdpbigpLCAKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKSk7CisgICAgICAg
IFZhbHVlKiBsc2JWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBsc2IpOworICAgICAgICBWYWx1ZSogbWFza1ZhbHVlMSA9IHJvb3QtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBtYXNrMSk7CisgICAgICAgIFZhbHVlKiBt
YXNrVmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IG1hc2syKTsKKworICAgICAgICAvLyBkID0gZEEgKyBkQgorICAgICAgICBWYWx1ZSogZFZhbHVl
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBkQVZhbHVlLCBk
QlZhbHVlKTsKKworICAgICAgICAvLyBkID0gZCA9ICgobiA+PiBsc2IpICYgbWFzazEpIHwgKGQg
JiBtYXNrMikKKyAgICAgICAgVmFsdWUqIHNoaWZ0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIFpTaHIsIE9yaWdpbigpLCBuVmFsdWUsIGxzYlZhbHVlKTsKKyAgICAgICAgVmFs
dWUqIGxlZnRBbmRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBP
cmlnaW4oKSwgc2hpZnRWYWx1ZSwgbWFza1ZhbHVlMSk7CisgICAgICAgIFZhbHVlKiByaWdodEFu
ZFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9yaWdpbigpLCBk
VmFsdWUsIG1hc2tWYWx1ZTIpOworICAgICAgICBWYWx1ZSogb3JWYWx1ZSA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0T3IsIE9yaWdpbigpLCBsZWZ0QW5kVmFsdWUsIHJpZ2h0QW5k
VmFsdWUpOworCisgICAgICAgIC8vIHYzID0gKChtYXNrMSArIG1hc2syKSArIGRCKSArIGRBCisg
ICAgICAgIFZhbHVlKiB2YWx1ZTEgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwg
T3JpZ2luKCksIG1hc2tWYWx1ZTEsIG1hc2tWYWx1ZTIpOworICAgICAgICBWYWx1ZSogdmFsdWUy
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1ZTEsIGRC
VmFsdWUpOworICAgICAgICBWYWx1ZSogdmFsdWUzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1ZTIsIGRBVmFsdWUpOworCisgICAgICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKKyAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
IAorICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigp
LCB2YWx1ZTMsIG9yVmFsdWUpKTsKKworICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhw
cm9jKTsKKyAgICAgICAgaWYgKGlzQVJNNjQoKSkKKyAgICAgICAgICAgIGNoZWNrVXNlc0luc3Ry
dWN0aW9uKCpjb2RlLCAiYmZ4aWwiKTsKKyAgICAgICAgcmV0dXJuIGludm9rZTx1aW50MzJfdD4o
KmNvZGUsIGRBLCBkQiwgbik7CisgICAgfTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bHNicy5zaXplKCk7ICsraSkgeworICAgICAgICB1aW50MzJfdCBsc2IgPSBsc2JzLmF0KGkpOwor
ICAgICAgICB1aW50MzJfdCBtYXNrMSA9ICgxVSA8PCB3aWR0aHMuYXQoaSkpIC0gMVU7CisgICAg
ICAgIHVpbnQzMl90IG1hc2syID0gfm1hc2sxOworCisgICAgICAgIHVpbnQzMl90IGxoczMgPSB0
ZXN0Myhsc2IsIG1hc2sxLCBtYXNrMik7CisgICAgICAgIHVpbnQzMl90IGR2ID0gZEEgKyBkQjsK
KyAgICAgICAgZHYgPSAoKG4gPj4gbHNiKSAmIG1hc2sxKSB8IChkdiAmIG1hc2syKTsKKyAgICAg
ICAgdWludDMyX3QgdjMgPSAoKG1hc2sxICsgbWFzazIpICsgZEIpICsgZEE7CisgICAgICAgIHVp
bnQzMl90IHJoczMgPSB2MyArIGR2OworICAgICAgICBDSEVDSyhsaHMzID09IHJoczMpOworICAg
IH0KIH0KIAogdm9pZCB0ZXN0RXh0cmFjdEluc2VydEJpdGZpZWxkQXRMb3dFbmQ2NCgpCkBAIC0z
NDY4LDYgKzM2MzgsNTggQEAgdm9pZCB0ZXN0RXh0cmFjdEluc2VydEJpdGZpZWxkQXRMb3dFbmQ2
NCgpCiAgICAgICAgIHVpbnQ2NF90IG1hc2syID0gfihtYXNrMSA+PiBsc2IpOwogICAgICAgICBD
SEVDSyh0ZXN0Mihsc2IsIG1hc2sxLCBtYXNrMikgPT0gKCgobiAmIG1hc2sxKSA+PiBsc2IpIHwg
KGQgJiBtYXNrMikpKTsKICAgICB9CisKKyAgICAvLyBUZXN0IHVzZSByb2xlIG9uIGRlc3RpbmF0
aW9uIHJlZ2lzdGVyIG9mIEJGWElMCisgICAgdWludDY0X3QgZEEgPSAweDAwMDAwMDAwZjBmMGYw
ZjA7CisgICAgdWludDY0X3QgZEIgPSAweGYwZjBmMGYwMDAwMDAwMDA7CisKKyAgICBhdXRvIHRl
c3QzID0gWyZdICh1aW50NjRfdCBsc2IsIHVpbnQ2NF90IG1hc2sxLCB1aW50NjRfdCBtYXNrMikg
LT4gdWludDY0X3QgeworICAgICAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKworICAgICAgICBWYWx1ZSogZEFWYWx1ZSA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKKyAgICAgICAgVmFsdWUqIGRCVmFsdWUgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7
CisgICAgICAgIFZhbHVlKiBuVmFsdWUgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CisgICAgICAgIFZhbHVl
KiBsc2JWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBsc2IpOworICAgICAgICBWYWx1ZSogbWFza1ZhbHVlMSA9IHJvb3QtPmFwcGVuZE5ldzxDb25z
dDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBtYXNrMSk7CisgICAgICAgIFZhbHVlKiBtYXNrVmFs
dWUyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIG1hc2sy
KTsKKworICAgICAgICAvLyBkID0gZEEgKyBkQgorICAgICAgICBWYWx1ZSogZFZhbHVlID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBkQVZhbHVlLCBkQlZhbHVl
KTsKKworICAgICAgICAvLyBkID0gZCA9ICgobiA+PiBsc2IpICYgbWFzazEpIHwgKGQgJiBtYXNr
MikKKyAgICAgICAgVmFsdWUqIHNoaWZ0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIFpTaHIsIE9yaWdpbigpLCBuVmFsdWUsIGxzYlZhbHVlKTsKKyAgICAgICAgVmFsdWUqIGxl
ZnRBbmRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4o
KSwgc2hpZnRWYWx1ZSwgbWFza1ZhbHVlMSk7CisgICAgICAgIFZhbHVlKiByaWdodEFuZFZhbHVl
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9yaWdpbigpLCBkVmFsdWUs
IG1hc2tWYWx1ZTIpOworICAgICAgICBWYWx1ZSogb3JWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0T3IsIE9yaWdpbigpLCBsZWZ0QW5kVmFsdWUsIHJpZ2h0QW5kVmFsdWUp
OworCisgICAgICAgIC8vIHYzID0gKChtYXNrMSArIG1hc2syKSArIGRCKSArIGRBCisgICAgICAg
IFZhbHVlKiB2YWx1ZTEgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2lu
KCksIG1hc2tWYWx1ZTEsIG1hc2tWYWx1ZTIpOworICAgICAgICBWYWx1ZSogdmFsdWUyID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1ZTEsIGRCVmFsdWUp
OworICAgICAgICBWYWx1ZSogdmFsdWUzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBB
ZGQsIE9yaWdpbigpLCB2YWx1ZTIsIGRBVmFsdWUpOworCisgICAgICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKKyAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIAorICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1
ZTMsIG9yVmFsdWUpKTsKKworICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsK
KyAgICAgICAgaWYgKGlzQVJNNjQoKSkKKyAgICAgICAgICAgIGNoZWNrVXNlc0luc3RydWN0aW9u
KCpjb2RlLCAiYmZ4aWwiKTsKKyAgICAgICAgcmV0dXJuIGludm9rZTx1aW50NjRfdD4oKmNvZGUs
IGRBLCBkQiwgbik7CisgICAgfTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbHNicy5z
aXplKCk7ICsraSkgeworICAgICAgICB1aW50NjRfdCBsc2IgPSBsc2JzLmF0KGkpOworICAgICAg
ICB1aW50NjRfdCBtYXNrMSA9ICgxVUxMIDw8IHdpZHRocy5hdChpKSkgLSAxVUxMOworICAgICAg
ICB1aW50NjRfdCBtYXNrMiA9IH5tYXNrMTsKKworICAgICAgICB1aW50NjRfdCBsaHMzID0gdGVz
dDMobHNiLCBtYXNrMSwgbWFzazIpOworICAgICAgICB1aW50NjRfdCBkdiA9IGRBICsgZEI7Cisg
ICAgICAgIGR2ID0gKChuID4+IGxzYikgJiBtYXNrMSkgfCAoZHYgJiBtYXNrMik7CisgICAgICAg
IHVpbnQ2NF90IHYzID0gKChtYXNrMSArIG1hc2syKSArIGRCKSArIGRBOworICAgICAgICB1aW50
NjRfdCByaHMzID0gdjMgKyBkdjsKKyAgICAgICAgQ0hFQ0sobGhzMyA9PSByaHMzKTsKKyAgICB9
CiB9CiAKIHZvaWQgdGVzdEJJQzMyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnNMaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
cHRpb25zTGlzdC5oCmluZGV4IDIwZDA2YzIwMzYyZjRmNDhmOWM3Y2ZjOGFhZDRlNTkyMGQ3ZmRk
MjguLjBkZWE0YzUzZWExNzA1MGNkNDhjNGM3MTI0MDVjNjg3ZDRhNTg4ZmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaApAQCAtNTQ5LDcgKzU0OSw2IEBA
IGJvb2wgY2FuVXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5KCk7CiAgICAgdihCb29sLCB1c2VEYXRh
SUMsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KEJvb2wsIHVzZURhdGFJQ0luT3B0
aW1pemluZ0pJVCwgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoQm9vbCwgdXNlRGF0
YUlDU2hhcmluZywgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAotICAgIHYoQm9vbCwgdXNlQkZJ
LCBmYWxzZSwgTm9ybWFsLCAiQWxsb3cgQVJNNjQgaW5zdHJ1Y3Rpb24gc2VsZWN0aW9uIG9mIEJG
SSIpIFwKIAogCiBlbnVtIE9wdGlvbkVxdWl2YWxlbmNlIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432902</attachid>
            <date>2021-07-05 16:15:37 -0700</date>
            <delta_ts>2021-07-06 10:29:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227563-20210705181536.patch</filename>
            <type>text/plain</type>
            <size>20287</size>
            <attacher name="Yijia Huang">yijia_huang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
YjI4MzJhN2RhMzE2NDNmM2ZhM2FlYmQwZDgxZDJjZDUyMmE4Yjk2Li4zMmI1MGI1MWI3NzFmZTM4
MTRmMDIwYjNiNGQwMzFlNGJjMzc0ZWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4MiBAQAorMjAyMS0wNy0wNSAgWWlqaWEgSHVhbmcgIDx5aWppYV9odWFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgRml4IGluc3RydWN0aW9uIGNoZWNrIGZhaWx1cmUgb2YgVUJGWCBhbmQg
U0JGSVogaW4gdGVzdGIzIGR1ZSB0byB0aGUgc3BlY3VsYXRpdmUgZml4IGluIGJ1ZyAyMjc1NTQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzU2Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggaW5jbHVkZXMgdHdvIG1vZGlmaWNhdGlvbnMgdG8gcmVzb2x2ZSByZGFyOi8vNzk5NzgxNTA6
CisgICAgICAgICAgICAxLiBGaXggdGhlIGJ1ZyBjYXVzZWQgYnkgdGhlIHBhdGNoIGludHJvZHVj
aW5nIEJGSS4KKyAgICAgICAgICAgIDIuIERpc2NhcmQgdGhlIGNvcnJlc3BvbmRpbmcgc3BlY3Vs
YXRpdmUgZml4IGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc1
NTQuCisKKyAgICAgICAgVGhlIHByZXZpb3VzIHBhdGNoLCBhZGRlZCBiaXQgZmllbGQgaW5zZXJ0
IChCRkkpIHRvIEFJUiBvcGNvZGUsIGNhdXNlcyB0aGUgR21haWwgcGFnZSAKKyAgICAgICAgaGFu
Z2luZyBpc3N1ZSBvbiBTYWZhcmkuIFRoZSByb290IGNhdXNlIGlzIHRoZSBpbmNvcnJlY3QgZGVm
aW5pdGlvbiBvZiByZWdpc3RlciByb2xlIGluIAorICAgICAgICBCRkkncyBBSVIgb3Bjb2RlLiBT
aW5jZSBCRkkgaW5zZXJ0cyBhIGJpdCBmaWVsZCBhdCB0aGUgbG93IGVuZCBvZiB0aGUgZGVzdGlu
YXRpb24gcmVnaXN0ZXIgCisgICAgICAgIHdoaWxlIGtlZXBpbmcgdGhlIGhpZ2ggYml0IHVuY2hh
bmdlZCwgdGhlIGRlc3RpbmF0aW9uIHJlZ2lzdGVyIHNob3VsZCBoYXZlIGJvdGggcm9sZXMgb2Yg
CisgICAgICAgIHVzZSBhbmQgZGVmaW5lIHNpbXVsdGFuZW91c2x5LCB3aGljaCBpcyBub3QgKG1p
c3NpbmcgdXNlKSBpbiB0aGUgcHJldmlvdXMgcGF0Y2guIAorCisgICAgICAgIFRoaXMgd2lsbCBy
ZXN1bHQgaW4gdGhlIGxvc3Mgb2YgcHJlc2VydmluZyB0aGUgdmFsdWUgb2YgdGhlIGRlc3RpbmF0
aW9uIHJlZ2lzdGVyLCAKKyAgICAgICAgd2hpY2ggZG9lcyBoYXBwZW4gd2hlbiBicm93c2luZyB0
aGUgR21haWwgcGFnZSBvbiBTYWZhcmkuCisKKyAgICAgICAgICAgIC8vIEIzIElSIHNuaXBwZXRz
IGZyb20gR21haWwKKyAgICAgICAgICAgIEludDMyIGJAMjMgID0gQWRkKGJAMTA0LCBiQDExMSwg
REAxMDApCisgICAgICAgICAgICAuLi4KKyAgICAgICAgICAgIEludDMyIGJANTUgID0gQ29uc3Qz
Mig2NTUzNSwgREA1MCkKKyAgICAgICAgICAgIEludDMyIGJAMTM3ID0gQml0QW5kKGJAMTE4LCAk
NjU1MzUoYkA1NSksIERAMTYwKQorICAgICAgICAgICAgSW50MzIgYkAxNjggPSBDb25zdDMyKDE2
LCBEQDQwKQorICAgICAgICAgICAgSW50MzIgYkAxNDEgPSBTaGwoYkAxMzcsICQxNihiQDE2OCks
IERAMTYzKQorICAgICAgICAgICAgSW50MzIgYkAxNDMgPSBCaXRBbmQoYkAyMywgJDY1NTM1KGJA
NTUpLCBEQDE2NikKKyAgICAgICAgICAgIEludDMyIGJAMTQ0ID0gQml0T3IoYkAxNDEsIGJAMTQz
LCBEQDE2OSkKKworICAgICAgICBUaGUgcGF0dGVybiBvZiBCRkkgaXMgZCA9ICgobiAmIG1hc2sx
KSA8PCBsc2IpIHwgKGQgJiBtYXNrMikuIFNvLCBpdCBpcyBvYnZpb3VzIHRoYXQgCisgICAgICAg
IEJGSSBjYW4gYmUgdXRpbGl6ZWQgaW4gYkAxNDQgd2hlcmUgdGhlIGQgaXMgYkAyMy4KKworICAg
ICAgICAgICAgLy8gSW5jb3JyZWN0IEFJUiBvcGNvZGUgb2YgQkZJCisgICAgICAgICAgICBhcm02
NDogSW5zZXJ0Qml0RmllbGQzMiBVOkc6MzIsIFU6RzozMiwgVTpHOjMyLCBaRDpHOjMyCisgICAg
ICAgICAgICAgICAgVG1wLCBJbW0sIEltbSwgVG1wCisKKyAgICAgICAgICAgIC8vIEFpciB3L28g
dXNlIHJvbGUKKyAgICAgICAgICAgIEFkZDMyICAgICAgICAgICAgJXgzLCAleDcsICV4NywgICAg
ICBiQDIzCisgICAgICAgICAgICAuLi4KKyAgICAgICAgICAgIEluc2VydEJpdEZpZWxkMzIgJXgz
LCAkMTYsICQxNiwgJXg0LCBiQDE0NAorCisgICAgICAgICAgICAvLyBHZW5lcmF0ZWQgY29kZSB3
L28gdXNlIHJvbGUKKyAgICAgICAgICAgIGFkZCAgICAgIHc3LCB3MywgIHc3CisgICAgICAgICAg
ICAuLi4KKyAgICAgICAgICAgIGJmaSAgICAgIHc0LCB3MywgIzE2LCAjMTYKKworICAgICAgICBJ
biBBaXIsIHRoZSBhZGRlZCB2YWx1ZSBpcyBzdG9yZWQgaW4gdGhlIHc3LiBCdXQgdGhlIHZhbHVl
IGlzIG5vdCBwcmVzZXJ2ZWQgYWZ0ZXIgCisgICAgICAgIGxvd2VyaW5nIHdpdGggQkZJLiBUbyBm
aXggdGhpcywgdGhlIHVzZSByb2xlIHNob3VsZCBiZSBlbmFibGVkIGZvciB0aGUgZGVzdGluYXRp
b24gCisgICAgICAgIHJlZ2lzdGVyLgorCisgICAgICAgICAgICAvLyBDb3JyZW5jdCBBSVIgb3Bj
b2RlIG9mIEJGSQorICAgICAgICAgICAgYXJtNjQ6IEluc2VydEJpdEZpZWxkMzIgVTpHOjMyLCBV
Okc6MzIsIFU6RzozMiwgVVpEOkc6MzIKKyAgICAgICAgICAgICAgICBUbXAsIEltbSwgSW1tLCBU
bXAKKworICAgICAgICAgICAgLy8gQWlyIHcvIHVzZSByb2xlCisgICAgICAgICAgICBBZGQzMiAg
ICAgICAgICAgICV4MywgJXg3LCAleDcsICAgICAgYkAyMworICAgICAgICAgICAgLi4uCisgICAg
ICAgICAgICBNb3ZlMzIgICAgICAgICAgICV4NywgJXg0LCAgICAgICAgICAgYkAxNDQKKyAgICAg
ICAgICAgIEluc2VydEJpdEZpZWxkMzIgJXgzLCAkMTYsICQxNiwgJXg0LCBiQDE0NAorCisgICAg
ICAgICAgICAvLyBHZW5lcmF0ZWQgY29kZSB3LyB1c2Ugcm9sZQorICAgICAgICAgICAgYWRkICAg
ICAgdzcsIHczLCB3NworICAgICAgICAgICAgLi4uCisgICAgICAgICAgICB1YmZ4ICAgICB4NCwg
eDcsICAjMCwgIzMyCisgICAgICAgICAgICBiZmkgICAgICB3NCwgdzMsICMxNiwgIzE2CisKKyAg
ICAgICAgSW4gYWRkaXRpb24sIEJGWElMLCB3aGljaCBoYXMgcGF0dGVybiBkID0gKChuID4+IGxz
YikgJiBtYXNrMSkgfCAoZCAmIG1hc2syKSwgYWxzbyBuZWVkcyAKKyAgICAgICAgdGhlIHNpbWls
YXIgdXBkYXRlLgorCisgICAgICAgICogYjMvQjNMb3dlclRvQWlyLmNwcDoKKyAgICAgICAgKiBi
My9haXIvQWlyT3Bjb2RlLm9wY29kZXM6CisgICAgICAgICogYjMvdGVzdGIzXzIuY3BwOgorICAg
ICAgICAodGVzdEluc2VydEJpdEZpZWxkMzIpOgorICAgICAgICAodGVzdEluc2VydEJpdEZpZWxk
NjQpOgorICAgICAgICAodGVzdEV4dHJhY3RJbnNlcnRCaXRmaWVsZEF0TG93RW5kMzIpOgorICAg
ICAgICAodGVzdEV4dHJhY3RJbnNlcnRCaXRmaWVsZEF0TG93RW5kNjQpOgorICAgICAgICAqIHJ1
bnRpbWUvT3B0aW9uc0xpc3QuaDoKKwogMjAyMS0wNy0wNCAgUm9iaW4gTW9yaXNzZXQgIDxybW9y
aXNzZXRAYXBwbGUuY29tPgogCiAgICAgICAgIEFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZSBzaG91
bGQgdGFrZSB0aGUgYnVmZmVyIGFzIGFyZ3VtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0xvd2VyVG9BaXIuY3BwCmluZGV4IDAwMmU1MjRmMWJhMjNmZGIxMTIxNzMzZTE0ZTJmYmMwM2Fj
NTJhZTQuLjA5NjU4NDA0ZjQ4MzE0ZTQxNzU5MTM4M2ExY2NhNTc4OGJlY2U2ZGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCkBAIC0yNzY0LDggKzI3NjQsNiBA
QCBwcml2YXRlOgogICAgICAgICAgICAgLy8gVUJGWCBQYXR0ZXJuOiBkZXN0ID0gKHNyYyA+PiBs
c2IpICYgbWFzayAKICAgICAgICAgICAgIC8vIFdoZXJlOiBtYXNrID0gKDEgPDwgd2lkdGgpIC0g
MQogICAgICAgICAgICAgYXV0byB0cnlBcHBlbmRVQkZYID0gWyZdICgpIC0+IGJvb2wgewotICAg
ICAgICAgICAgICAgIGlmICghT3B0aW9uczo6dXNlQkZJKCkpCi0gICAgICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICBBaXI6Ok9wY29kZSBvcGNvZGUgPSBvcGNv
ZGVGb3JUeXBlKEV4dHJhY3RVbnNpZ25lZEJpdGZpZWxkMzIsIEV4dHJhY3RVbnNpZ25lZEJpdGZp
ZWxkNjQsIG1fdmFsdWUtPnR5cGUoKSk7CiAgICAgICAgICAgICAgICAgaWYgKCFpc1ZhbGlkRm9y
bShvcGNvZGUsIEFyZzo6VG1wLCBBcmc6OkltbSwgQXJnOjpJbW0sIEFyZzo6VG1wKSkgCiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTI4NjUsOCArMjg2Myw2IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICAvLyBXaGVyZTogbWFzazEgPSAoKDEgPDwgd2lkdGgpIC0gMSkKICAg
ICAgICAgICAgIC8vICAgICAgICBtYXNrMiA9IH4obWFzazEgPDwgbHNiKQogICAgICAgICAgICAg
YXV0byB0cnlBcHBlbmRCRkkgPSBbJl0gKFZhbHVlKiBsZWZ0LCBWYWx1ZSogcmlnaHQpIC0+IGJv
b2wgewotICAgICAgICAgICAgICAgIGlmICghT3B0aW9uczo6dXNlQkZJKCkpCi0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICBBaXI6Ok9wY29kZSBvcGNv
ZGUgPSBvcGNvZGVGb3JUeXBlKEluc2VydEJpdEZpZWxkMzIsIEluc2VydEJpdEZpZWxkNjQsIG1f
dmFsdWUtPnR5cGUoKSk7CiAgICAgICAgICAgICAgICAgaWYgKCFpc1ZhbGlkRm9ybShvcGNvZGUs
IEFyZzo6VG1wLCBBcmc6OkltbSwgQXJnOjpJbW0sIEFyZzo6VG1wKSkgCiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTMwNTUsOCArMzA1MSw2IEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICAvLyBTQkZJWiBQYXR0ZXJuOiBkID0gKChzcmMgPDwgYW1vdW50KSA+PiBhbW91bnQp
IDw8IGxzYgogICAgICAgICAgICAgLy8gd2hlcmU6IGFtb3VudCA9IGRhdGFzaXplIC0gd2lkdGgK
ICAgICAgICAgICAgIGF1dG8gdHJ5QXBwZW5kU0JGSVogPSBbJl0gKCkgLT4gYm9vbCB7Ci0gICAg
ICAgICAgICAgICAgaWYgKCFPcHRpb25zOjp1c2VCRkkoKSkKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgIEFpcjo6T3Bjb2RlIG9wY29kZSA9IG9wY29k
ZUZvclR5cGUoSW5zZXJ0U2lnbmVkQml0ZmllbGRJblplcm8zMiwgSW5zZXJ0U2lnbmVkQml0Zmll
bGRJblplcm82NCwgbV92YWx1ZS0+dHlwZSgpKTsKICAgICAgICAgICAgICAgICBpZiAoIWlzVmFs
aWRGb3JtKG9wY29kZSwgQXJnOjpUbXAsIEFyZzo6SW1tLCBBcmc6OkltbSwgQXJnOjpUbXApKQog
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcwppbmRleCA0YjhhMjhiYjdjOGM5MDU5NWIyZjg4
MTQ5MDgwZGZmOTRiMDAyMDNiLi5kNDdmYTNlY2IzOGIyNjE0NTVkNjkwNWE0NjlmZjc4NGMxZmFm
OTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5v
cGNvZGVzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29k
ZXMKQEAgLTgyNCwxMCArODI0LDEwIEBAIGFybTY0OiBJbnNlcnRVbnNpZ25lZEJpdGZpZWxkSW5a
ZXJvMzIgVTpHOjMyLCBVOkc6MzIsIFU6RzozMiwgWkQ6RzozMgogYXJtNjQ6IEluc2VydFVuc2ln
bmVkQml0ZmllbGRJblplcm82NCBVOkc6NjQsIFU6RzozMiwgVTpHOjMyLCBEOkc6NjQKICAgICBU
bXAsIEltbSwgSW1tLCBUbXAKIAotYXJtNjQ6IEluc2VydEJpdEZpZWxkMzIgVTpHOjMyLCBVOkc6
MzIsIFU6RzozMiwgWkQ6RzozMgorYXJtNjQ6IEluc2VydEJpdEZpZWxkMzIgVTpHOjMyLCBVOkc6
MzIsIFU6RzozMiwgVVpEOkc6MzIKICAgICBUbXAsIEltbSwgSW1tLCBUbXAKIAotYXJtNjQ6IElu
c2VydEJpdEZpZWxkNjQgVTpHOjY0LCBVOkc6MzIsIFU6RzozMiwgRDpHOjY0Cithcm02NDogSW5z
ZXJ0Qml0RmllbGQ2NCBVOkc6NjQsIFU6RzozMiwgVTpHOjMyLCBVRDpHOjY0CiAgICAgVG1wLCBJ
bW0sIEltbSwgVG1wCiAKIGFybTY0OiBDbGVhckJpdEZpZWxkMzIgVTpHOjMyLCBVOkc6MzIsIFpE
Okc6MzIKQEAgLTg0OCwxMCArODQ4LDEwIEBAIGFybTY0OiBPck5vdDMyIFU6RzozMiwgVTpHOjMy
LCBaRDpHOjMyCiBhcm02NDogT3JOb3Q2NCBVOkc6NjQsIFU6Rzo2NCwgRDpHOjY0CiAgICAgVG1w
LCBUbXAsIFRtcAogCi1hcm02NDogRXh0cmFjdEluc2VydEJpdGZpZWxkQXRMb3dFbmQzMiBVOkc6
MzIsIFU6RzozMiwgVTpHOjMyLCBaRDpHOjMyCithcm02NDogRXh0cmFjdEluc2VydEJpdGZpZWxk
QXRMb3dFbmQzMiBVOkc6MzIsIFU6RzozMiwgVTpHOjMyLCBVWkQ6RzozMgogICAgIFRtcCwgSW1t
LCBJbW0sIFRtcAogCi1hcm02NDogRXh0cmFjdEluc2VydEJpdGZpZWxkQXRMb3dFbmQ2NCBVOkc6
NjQsIFU6RzozMiwgVTpHOjMyLCBEOkc6NjQKK2FybTY0OiBFeHRyYWN0SW5zZXJ0Qml0ZmllbGRB
dExvd0VuZDY0IFU6Rzo2NCwgVTpHOjMyLCBVOkc6MzIsIFVEOkc6NjQKICAgICBUbXAsIEltbSwg
SW1tLCBUbXAKIAogYXJtNjQ6IEluc2VydFNpZ25lZEJpdGZpZWxkSW5aZXJvMzIgVTpHOjMyLCBV
Okc6MzIsIFU6RzozMiwgWkQ6RzozMgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL3Rlc3RiM18yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfMi5jcHAK
aW5kZXggYmU3ZjI4YWZmYWI0NTRjNDhiZGQxZDYxZDVkOTUxMTMxNDRhODM1NC4uODgwNDVmMTVk
Y2VhNGYwMmQxZDExYjkyYTAyM2I0ZmI3ZTAxYjYwZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL3Rlc3RiM18yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
dGVzdGIzXzIuY3BwCkBAIC0zMTYwLDggKzMxNjAsNiBAQCB2b2lkIHRlc3RVYmZpejY0QW5kU2hp
ZnQoKQogCiB2b2lkIHRlc3RJbnNlcnRCaXRGaWVsZDMyKCkKIHsKLSAgICBpZiAoIUpTQzo6T3B0
aW9uczo6dXNlQkZJKCkpCi0gICAgICAgIHJldHVybjsKICAgICBpZiAoSlNDOjpPcHRpb25zOjpk
ZWZhdWx0QjNPcHRMZXZlbCgpIDwgMikKICAgICAgICAgcmV0dXJuOwogICAgIHVpbnQzMl90IGQg
PSAweGYwZjBmMGYwOwpAQCAtMzE5OSw2ICszMTk3LDEzIEBAIHZvaWQgdGVzdEluc2VydEJpdEZp
ZWxkMzIoKQogICAgICAgICByZXR1cm4gaW52b2tlPHVpbnQzMl90PigqY29kZSwgZCwgbik7CiAg
ICAgfTsKIAorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbHNicy5zaXplKCk7ICsraSkgewor
ICAgICAgICB1aW50MzJfdCBsc2IgPSBsc2JzLmF0KGkpOworICAgICAgICB1aW50MzJfdCBtYXNr
MSA9ICgxVSA8PCB3aWR0aHMuYXQoaSkpIC0gMVU7CisgICAgICAgIHVpbnQzMl90IG1hc2syID0g
fihtYXNrMSA8PCBsc2IpOworICAgICAgICBDSEVDSyh0ZXN0MShsc2IsIG1hc2sxLCBtYXNrMikg
PT0gKCgobiAmIG1hc2sxKSA8PCBsc2IpIHwgKGQgJiBtYXNrMikpKTsKKyAgICB9CisKICAgICAv
LyBUZXN0IFBhdHRlcm46IGQgPSAoZCAmIG1hc2syKSB8ICgobiAmIG1hc2sxKSA8PCBsc2IpIAog
ICAgIC8vIFdoZXJlOiBtYXNrMSA9ICgoMSA8PCB3aWR0aCkgLSAxKQogICAgIC8vICAgICAgICBt
YXNrMiA9IH4obWFzazEgPDwgbHNiKQpAQCAtMzIzMywxNSArMzIzOCw3MCBAQCB2b2lkIHRlc3RJ
bnNlcnRCaXRGaWVsZDMyKCkKICAgICAgICAgdWludDMyX3QgbHNiID0gbHNicy5hdChpKTsKICAg
ICAgICAgdWludDMyX3QgbWFzazEgPSAoMVUgPDwgd2lkdGhzLmF0KGkpKSAtIDFVOwogICAgICAg
ICB1aW50MzJfdCBtYXNrMiA9IH4obWFzazEgPDwgbHNiKTsKLSAgICAgICAgQ0hFQ0sodGVzdDEo
bHNiLCBtYXNrMSwgbWFzazIpID09ICgoKG4gJiBtYXNrMSkgPDwgbHNiKSB8IChkICYgbWFzazIp
KSk7CiAgICAgICAgIENIRUNLKHRlc3QyKGxzYiwgbWFzazEsIG1hc2syKSA9PSAoKGQgJiBtYXNr
MikgfCAoKG4gJiBtYXNrMSkgPDwgbHNiKSkpOwogICAgIH0KKworICAgIC8vIFRlc3QgdXNlIHJv
bGUgb24gZGVzdGluYXRpb24gcmVnaXN0ZXIgb2YgQkZJCisgICAgdWludDMyX3QgZEEgPSAweDAw
MDBmMGYwOworICAgIHVpbnQzMl90IGRCID0gMHhmMGYwMDAwMDsKKworICAgIGF1dG8gdGVzdDMg
PSBbJl0gKHVpbnQzMl90IGxzYiwgdWludDMyX3QgbWFzazEsIHVpbnQzMl90IG1hc2syKSAtPiB1
aW50MzJfdCB7CisgICAgICAgIFByb2NlZHVyZSBwcm9jOworICAgICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOworCisgICAgICAgIFZhbHVlKiBkQVZhbHVlID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwgCisg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOworICAgICAgICBWYWx1ZSogZEJWYWx1ZSA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCks
IAorICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKKyAgICAgICAgVmFsdWUqIG5WYWx1ZSA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2lu
KCksIAorICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpKTsKKyAgICAgICAgVmFsdWUqIGxzYlZh
bHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGxzYik7
CisgICAgICAgIFZhbHVlKiBtYXNrVmFsdWUxID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIG1hc2sxKTsKKyAgICAgICAgVmFsdWUqIG1hc2tWYWx1ZTIgPSBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgbWFzazIpOworCisg
ICAgICAgIC8vIGQgPSBkQSArIGRCCisgICAgICAgIFZhbHVlKiBkVmFsdWUgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGRBVmFsdWUsIGRCVmFsdWUpOworCisg
ICAgICAgIC8vIGQgPSAoZCAmIG1hc2syKSB8ICgobiAmIG1hc2sxKSA8PCBsc2IpIAorICAgICAg
ICBWYWx1ZSogbGVmdEFuZFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRB
bmQsIE9yaWdpbigpLCBuVmFsdWUsIG1hc2tWYWx1ZTEpOworICAgICAgICBWYWx1ZSogc2hpZnRW
YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU2hsLCBPcmlnaW4oKSwgbGVmdEFu
ZFZhbHVlLCBsc2JWYWx1ZSk7CisgICAgICAgIFZhbHVlKiByaWdodEFuZFZhbHVlID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9yaWdpbigpLCBkVmFsdWUsIG1hc2tWYWx1
ZTIpOworICAgICAgICBWYWx1ZSogb3JWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0T3IsIE9yaWdpbigpLCBzaGlmdFZhbHVlLCByaWdodEFuZFZhbHVlKTsKKworICAgICAg
ICAvLyB2MyA9ICgobWFzazEgKyBtYXNrMikgKyBkQikgKyBkQQorICAgICAgICBWYWx1ZSogdmFs
dWUxID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBtYXNrVmFs
dWUxLCBtYXNrVmFsdWUyKTsKKyAgICAgICAgVmFsdWUqIHZhbHVlMiA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFsdWUxLCBkQlZhbHVlKTsKKyAgICAgICAg
VmFsdWUqIHZhbHVlMyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4o
KSwgdmFsdWUyLCBkQVZhbHVlKTsKKworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCisgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCAKKyAgICAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFsdWUzLCBvclZhbHVl
KSk7CisKKyAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CisgICAgICAgIGlm
IChpc0FSTTY0KCkpCisgICAgICAgICAgICBjaGVja1VzZXNJbnN0cnVjdGlvbigqY29kZSwgImJm
aSIpOworICAgICAgICByZXR1cm4gaW52b2tlPHVpbnQzMl90PigqY29kZSwgZEEsIGRCLCBuKTsK
KyAgICB9OworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsc2JzLnNpemUoKTsgKytpKSB7
CisgICAgICAgIHVpbnQzMl90IGxzYiA9IGxzYnMuYXQoaSk7CisgICAgICAgIHVpbnQzMl90IG1h
c2sxID0gKDFVIDw8IHdpZHRocy5hdChpKSkgLSAxVTsKKyAgICAgICAgdWludDMyX3QgbWFzazIg
PSB+KG1hc2sxIDw8IGxzYik7CisKKyAgICAgICAgdWludDMyX3QgbGhzMyA9IHRlc3QzKGxzYiwg
bWFzazEsIG1hc2syKTsKKyAgICAgICAgdWludDMyX3QgZHYgPSBkQSArIGRCOworICAgICAgICBk
diA9IChkdiAmIG1hc2syKSB8ICgobiAmIG1hc2sxKSA8PCBsc2IpOworICAgICAgICB1aW50MzJf
dCB2MyA9ICgobWFzazEgKyBtYXNrMikgKyBkQikgKyBkQTsKKyAgICAgICAgdWludDMyX3Qgcmhz
MyA9IHYzICsgZHY7CisgICAgICAgIENIRUNLKGxoczMgPT0gcmhzMyk7CisgICAgfQogfQogCiB2
b2lkIHRlc3RJbnNlcnRCaXRGaWVsZDY0KCkKIHsKLSAgICBpZiAoIUpTQzo6T3B0aW9uczo6dXNl
QkZJKCkpCi0gICAgICAgIHJldHVybjsKICAgICBpZiAoSlNDOjpPcHRpb25zOjpkZWZhdWx0QjNP
cHRMZXZlbCgpIDwgMikKICAgICAgICAgcmV0dXJuOwogICAgIHVpbnQ2NF90IGQgPSAweGYwZjBm
MGYwZjBmMGYwZjA7CkBAIC0zMzA4LDYgKzMzNjgsNTggQEAgdm9pZCB0ZXN0SW5zZXJ0Qml0Rmll
bGQ2NCgpCiAgICAgICAgIENIRUNLKHRlc3QxKGxzYiwgbWFzazEsIG1hc2syKSA9PSAoKChuICYg
bWFzazEpIDw8IGxzYikgfCAoZCAmIG1hc2syKSkpOwogICAgICAgICBDSEVDSyh0ZXN0Mihsc2Is
IG1hc2sxLCBtYXNrMikgPT0gKChkICYgbWFzazIpIHwgKChuICYgbWFzazEpIDw8IGxzYikpKTsK
ICAgICB9CisKKyAgICAvLyBUZXN0IHVzZSByb2xlIG9uIGRlc3RpbmF0aW9uIHJlZ2lzdGVyIG9m
IEJGSQorICAgIHVpbnQ2NF90IGRBID0gMHgwMDAwMDAwMGYwZjBmMGYwOworICAgIHVpbnQ2NF90
IGRCID0gMHhmMGYwZjBmMDAwMDAwMDAwOworCisgICAgYXV0byB0ZXN0MyA9IFsmXSAodWludDY0
X3QgbHNiLCB1aW50NjRfdCBtYXNrMSwgdWludDY0X3QgbWFzazIpIC0+IHVpbnQ2NF90IHsKKyAg
ICAgICAgUHJvY2VkdXJlIHByb2M7CisgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7CisKKyAgICAgICAgVmFsdWUqIGRBVmFsdWUgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Cisg
ICAgICAgIFZhbHVlKiBkQlZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOworICAgICAgICBWYWx1ZSog
blZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOworICAgICAgICBWYWx1ZSogbHNiVmFsdWUgPSByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgbHNiKTsKKyAgICAgICAg
VmFsdWUqIG1hc2tWYWx1ZTEgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgbWFzazEpOworICAgICAgICBWYWx1ZSogbWFza1ZhbHVlMiA9IHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBtYXNrMik7CisKKyAgICAgICAgLy8g
ZCA9IGRBICsgZEIKKyAgICAgICAgVmFsdWUqIGRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgZEFWYWx1ZSwgZEJWYWx1ZSk7CisKKyAgICAgICAgLy8g
ZCA9IChkICYgbWFzazIpIHwgKChuICYgbWFzazEpIDw8IGxzYikgCisgICAgICAgIFZhbHVlKiBs
ZWZ0QW5kVmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwgT3JpZ2lu
KCksIG5WYWx1ZSwgbWFza1ZhbHVlMSk7CisgICAgICAgIFZhbHVlKiBzaGlmdFZhbHVlID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTaGwsIE9yaWdpbigpLCBsZWZ0QW5kVmFsdWUsIGxz
YlZhbHVlKTsKKyAgICAgICAgVmFsdWUqIHJpZ2h0QW5kVmFsdWUgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEJpdEFuZCwgT3JpZ2luKCksIGRWYWx1ZSwgbWFza1ZhbHVlMik7CisgICAg
ICAgIFZhbHVlKiBvclZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRPciwg
T3JpZ2luKCksIHNoaWZ0VmFsdWUsIHJpZ2h0QW5kVmFsdWUpOworCisgICAgICAgIC8vIHYzID0g
KChtYXNrMSArIG1hc2syKSArIGRCKSArIGRBCisgICAgICAgIFZhbHVlKiB2YWx1ZTEgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIG1hc2tWYWx1ZTEsIG1hc2tW
YWx1ZTIpOworICAgICAgICBWYWx1ZSogdmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1ZTEsIGRCVmFsdWUpOworICAgICAgICBWYWx1ZSogdmFs
dWUzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1ZTIs
IGRBVmFsdWUpOworCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKKyAgICAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIAorICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1ZTMsIG9yVmFsdWUpKTsKKworICAg
ICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKKyAgICAgICAgaWYgKGlzQVJNNjQo
KSkKKyAgICAgICAgICAgIGNoZWNrVXNlc0luc3RydWN0aW9uKCpjb2RlLCAiYmZpIik7CisgICAg
ICAgIHJldHVybiBpbnZva2U8dWludDY0X3Q+KCpjb2RlLCBkQSwgZEIsIG4pOworICAgIH07CisK
KyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxzYnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAg
dWludDY0X3QgbHNiID0gbHNicy5hdChpKTsKKyAgICAgICAgdWludDY0X3QgbWFzazEgPSAoMVVM
TCA8PCB3aWR0aHMuYXQoaSkpIC0gMVVMTDsKKyAgICAgICAgdWludDY0X3QgbWFzazIgPSB+KG1h
c2sxIDw8IGxzYik7CisKKyAgICAgICAgdWludDY0X3QgbGhzMyA9IHRlc3QzKGxzYiwgbWFzazEs
IG1hc2syKTsKKyAgICAgICAgdWludDY0X3QgZHYgPSBkQSArIGRCOworICAgICAgICBkdiA9IChk
diAmIG1hc2syKSB8ICgobiAmIG1hc2sxKSA8PCBsc2IpOworICAgICAgICB1aW50NjRfdCB2MyA9
ICgobWFzazEgKyBtYXNrMikgKyBkQikgKyBkQTsKKyAgICAgICAgdWludDY0X3QgcmhzMyA9IHYz
ICsgZHY7CisgICAgICAgIENIRUNLKGxoczMgPT0gcmhzMyk7CisgICAgfQogfQogCiB2b2lkIHRl
c3RFeHRyYWN0SW5zZXJ0Qml0ZmllbGRBdExvd0VuZDMyKCkKQEAgLTMzOTIsNiArMzUwNCw2NCBA
QCB2b2lkIHRlc3RFeHRyYWN0SW5zZXJ0Qml0ZmllbGRBdExvd0VuZDMyKCkKICAgICAgICAgdWlu
dDMyX3QgbWFzazIgPSB+KG1hc2sxID4+IGxzYik7CiAgICAgICAgIENIRUNLKHRlc3QyKGxzYiwg
bWFzazEsIG1hc2syKSA9PSAoKChuICYgbWFzazEpID4+IGxzYikgfCAoZCAmIG1hc2syKSkpOwog
ICAgIH0KKworICAgIC8vIFRlc3QgdXNlIHJvbGUgb24gZGVzdGluYXRpb24gcmVnaXN0ZXIgb2Yg
QkZYSUwKKyAgICB1aW50MzJfdCBkQSA9IDB4MDAwMGYwZjA7CisgICAgdWludDMyX3QgZEIgPSAw
eGYwZjAwMDAwOworCisgICAgYXV0byB0ZXN0MyA9IFsmXSAodWludDMyX3QgbHNiLCB1aW50MzJf
dCBtYXNrMSwgdWludDMyX3QgbWFzazIpIC0+IHVpbnQzMl90IHsKKyAgICAgICAgUHJvY2VkdXJl
IHByb2M7CisgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisKKyAg
ICAgICAgVmFsdWUqIGRBVmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAg
ICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLCAKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7
CisgICAgICAgIFZhbHVlKiBkQlZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAg
ICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwgCisgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MSkpOworICAgICAgICBWYWx1ZSogblZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKKyAg
ICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwgCisgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMikpOworICAgICAgICBWYWx1ZSogbHNiVmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgbHNiKTsKKyAgICAgICAgVmFsdWUqIG1hc2tWYWx1ZTEg
PSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgbWFzazEpOwor
ICAgICAgICBWYWx1ZSogbWFza1ZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBtYXNrMik7CisKKyAgICAgICAgLy8gZCA9IGRBICsgZEIKKyAgICAg
ICAgVmFsdWUqIGRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmln
aW4oKSwgZEFWYWx1ZSwgZEJWYWx1ZSk7CisKKyAgICAgICAgLy8gZCA9IGQgPSAoKG4gPj4gbHNi
KSAmIG1hc2sxKSB8IChkICYgbWFzazIpCisgICAgICAgIFZhbHVlKiBzaGlmdFZhbHVlID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBaU2hyLCBPcmlnaW4oKSwgblZhbHVlLCBsc2JWYWx1
ZSk7CisgICAgICAgIFZhbHVlKiBsZWZ0QW5kVmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdEFuZCwgT3JpZ2luKCksIHNoaWZ0VmFsdWUsIG1hc2tWYWx1ZTEpOworICAgICAg
ICBWYWx1ZSogcmlnaHRBbmRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0
QW5kLCBPcmlnaW4oKSwgZFZhbHVlLCBtYXNrVmFsdWUyKTsKKyAgICAgICAgVmFsdWUqIG9yVmFs
dWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdE9yLCBPcmlnaW4oKSwgbGVmdEFu
ZFZhbHVlLCByaWdodEFuZFZhbHVlKTsKKworICAgICAgICAvLyB2MyA9ICgobWFzazEgKyBtYXNr
MikgKyBkQikgKyBkQQorICAgICAgICBWYWx1ZSogdmFsdWUxID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBtYXNrVmFsdWUxLCBtYXNrVmFsdWUyKTsKKyAgICAg
ICAgVmFsdWUqIHZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmln
aW4oKSwgdmFsdWUxLCBkQlZhbHVlKTsKKyAgICAgICAgVmFsdWUqIHZhbHVlMyA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFsdWUyLCBkQVZhbHVlKTsKKwor
ICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCisgICAgICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCAKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQWRkLCBPcmlnaW4oKSwgdmFsdWUzLCBvclZhbHVlKSk7CisKKyAgICAgICAgYXV0byBjb2Rl
ID0gY29tcGlsZVByb2MocHJvYyk7CisgICAgICAgIGlmIChpc0FSTTY0KCkpCisgICAgICAgICAg
ICBjaGVja1VzZXNJbnN0cnVjdGlvbigqY29kZSwgImJmeGlsIik7CisgICAgICAgIHJldHVybiBp
bnZva2U8dWludDMyX3Q+KCpjb2RlLCBkQSwgZEIsIG4pOworICAgIH07CisKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGxzYnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgdWludDMyX3QgbHNi
ID0gbHNicy5hdChpKTsKKyAgICAgICAgdWludDMyX3QgbWFzazEgPSAoMVUgPDwgd2lkdGhzLmF0
KGkpKSAtIDFVOworICAgICAgICB1aW50MzJfdCBtYXNrMiA9IH5tYXNrMTsKKworICAgICAgICB1
aW50MzJfdCBsaHMzID0gdGVzdDMobHNiLCBtYXNrMSwgbWFzazIpOworICAgICAgICB1aW50MzJf
dCBkdiA9IGRBICsgZEI7CisgICAgICAgIGR2ID0gKChuID4+IGxzYikgJiBtYXNrMSkgfCAoZHYg
JiBtYXNrMik7CisgICAgICAgIHVpbnQzMl90IHYzID0gKChtYXNrMSArIG1hc2syKSArIGRCKSAr
IGRBOworICAgICAgICB1aW50MzJfdCByaHMzID0gdjMgKyBkdjsKKyAgICAgICAgQ0hFQ0sobGhz
MyA9PSByaHMzKTsKKyAgICB9CiB9CiAKIHZvaWQgdGVzdEV4dHJhY3RJbnNlcnRCaXRmaWVsZEF0
TG93RW5kNjQoKQpAQCAtMzQ2OCw2ICszNjM4LDU4IEBAIHZvaWQgdGVzdEV4dHJhY3RJbnNlcnRC
aXRmaWVsZEF0TG93RW5kNjQoKQogICAgICAgICB1aW50NjRfdCBtYXNrMiA9IH4obWFzazEgPj4g
bHNiKTsKICAgICAgICAgQ0hFQ0sodGVzdDIobHNiLCBtYXNrMSwgbWFzazIpID09ICgoKG4gJiBt
YXNrMSkgPj4gbHNiKSB8IChkICYgbWFzazIpKSk7CiAgICAgfQorCisgICAgLy8gVGVzdCB1c2Ug
cm9sZSBvbiBkZXN0aW5hdGlvbiByZWdpc3RlciBvZiBCRlhJTAorICAgIHVpbnQ2NF90IGRBID0g
MHgwMDAwMDAwMGYwZjBmMGYwOworICAgIHVpbnQ2NF90IGRCID0gMHhmMGYwZjBmMDAwMDAwMDAw
OworCisgICAgYXV0byB0ZXN0MyA9IFsmXSAodWludDY0X3QgbHNiLCB1aW50NjRfdCBtYXNrMSwg
dWludDY0X3QgbWFzazIpIC0+IHVpbnQ2NF90IHsKKyAgICAgICAgUHJvY2VkdXJlIHByb2M7Cisg
ICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisKKyAgICAgICAgVmFs
dWUqIGRBVmFsdWUgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgICAgIFZhbHVlKiBkQlZhbHVlID0g
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjEpOworICAgICAgICBWYWx1ZSogblZhbHVlID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIp
OworICAgICAgICBWYWx1ZSogbHNiVmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgbHNiKTsKKyAgICAgICAgVmFsdWUqIG1hc2tWYWx1ZTEgPSByb290
LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgbWFzazEpOworICAgICAg
ICBWYWx1ZSogbWFza1ZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBtYXNrMik7CisKKyAgICAgICAgLy8gZCA9IGRBICsgZEIKKyAgICAgICAgVmFs
dWUqIGRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwg
ZEFWYWx1ZSwgZEJWYWx1ZSk7CisKKyAgICAgICAgLy8gZCA9IGQgPSAoKG4gPj4gbHNiKSAmIG1h
c2sxKSB8IChkICYgbWFzazIpCisgICAgICAgIFZhbHVlKiBzaGlmdFZhbHVlID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBaU2hyLCBPcmlnaW4oKSwgblZhbHVlLCBsc2JWYWx1ZSk7Cisg
ICAgICAgIFZhbHVlKiBsZWZ0QW5kVmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdEFuZCwgT3JpZ2luKCksIHNoaWZ0VmFsdWUsIG1hc2tWYWx1ZTEpOworICAgICAgICBWYWx1
ZSogcmlnaHRBbmRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBP
cmlnaW4oKSwgZFZhbHVlLCBtYXNrVmFsdWUyKTsKKyAgICAgICAgVmFsdWUqIG9yVmFsdWUgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdE9yLCBPcmlnaW4oKSwgbGVmdEFuZFZhbHVl
LCByaWdodEFuZFZhbHVlKTsKKworICAgICAgICAvLyB2MyA9ICgobWFzazEgKyBtYXNrMikgKyBk
QikgKyBkQQorICAgICAgICBWYWx1ZSogdmFsdWUxID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBBZGQsIE9yaWdpbigpLCBtYXNrVmFsdWUxLCBtYXNrVmFsdWUyKTsKKyAgICAgICAgVmFs
dWUqIHZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwg
dmFsdWUxLCBkQlZhbHVlKTsKKyAgICAgICAgVmFsdWUqIHZhbHVlMyA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFsdWUyLCBkQVZhbHVlKTsKKworICAgICAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCisgICAgICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCAKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRk
LCBPcmlnaW4oKSwgdmFsdWUzLCBvclZhbHVlKSk7CisKKyAgICAgICAgYXV0byBjb2RlID0gY29t
cGlsZVByb2MocHJvYyk7CisgICAgICAgIGlmIChpc0FSTTY0KCkpCisgICAgICAgICAgICBjaGVj
a1VzZXNJbnN0cnVjdGlvbigqY29kZSwgImJmeGlsIik7CisgICAgICAgIHJldHVybiBpbnZva2U8
dWludDY0X3Q+KCpjb2RlLCBkQSwgZEIsIG4pOworICAgIH07CisKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IGxzYnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgdWludDY0X3QgbHNiID0gbHNi
cy5hdChpKTsKKyAgICAgICAgdWludDY0X3QgbWFzazEgPSAoMVVMTCA8PCB3aWR0aHMuYXQoaSkp
IC0gMVVMTDsKKyAgICAgICAgdWludDY0X3QgbWFzazIgPSB+bWFzazE7CisKKyAgICAgICAgdWlu
dDY0X3QgbGhzMyA9IHRlc3QzKGxzYiwgbWFzazEsIG1hc2syKTsKKyAgICAgICAgdWludDY0X3Qg
ZHYgPSBkQSArIGRCOworICAgICAgICBkdiA9ICgobiA+PiBsc2IpICYgbWFzazEpIHwgKGR2ICYg
bWFzazIpOworICAgICAgICB1aW50NjRfdCB2MyA9ICgobWFzazEgKyBtYXNrMikgKyBkQikgKyBk
QTsKKyAgICAgICAgdWludDY0X3QgcmhzMyA9IHYzICsgZHY7CisgICAgICAgIENIRUNLKGxoczMg
PT0gcmhzMyk7CisgICAgfQogfQogCiB2b2lkIHRlc3RCSUMzMigpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaAppbmRleCAyMGQwNmMyMDM2MmY0ZjQ4ZjljN2Nm
YzhhYWQ0ZTU5MjBkN2ZkZDI4Li4wZGVhNGM1M2VhMTcwNTBjZDQ4YzRjNzEyNDA1YzY4N2Q0YTU4
OGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlz
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKQEAg
LTU0OSw3ICs1NDksNiBAQCBib29sIGNhblVzZVdlYkFzc2VtYmx5RmFzdE1lbW9yeSgpOwogICAg
IHYoQm9vbCwgdXNlRGF0YUlDLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihCb29s
LCB1c2VEYXRhSUNJbk9wdGltaXppbmdKSVQsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAg
ICB2KEJvb2wsIHVzZURhdGFJQ1NoYXJpbmcsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKLSAg
ICB2KEJvb2wsIHVzZUJGSSwgZmFsc2UsIE5vcm1hbCwgIkFsbG93IEFSTTY0IGluc3RydWN0aW9u
IHNlbGVjdGlvbiBvZiBCRkkiKSBcCiAKIAogZW51bSBPcHRpb25FcXVpdmFsZW5jZSB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>