<?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>217055</bug_id>
          
          <creation_ts>2020-09-28 10:22:05 -0700</creation_ts>
          <short_desc>Add Bounds Check Elimination validation for debugging.</short_desc>
          <delta_ts>2020-09-28 21:55:16 -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="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1692590</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-09-28 10:22:05 -0700</bug_when>
    <thetext>rdar://69122891</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692787</commentid>
    <comment_count>1</comment_count>
      <attachid>409946</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-09-28 19:07:56 -0700</bug_when>
    <thetext>Created attachment 409946
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692791</commentid>
    <comment_count>2</comment_count>
      <attachid>409946</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-09-28 19:13:10 -0700</bug_when>
    <thetext>Comment on attachment 409946
proposed patch.

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

r=me with nit

&gt; Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:-381
&gt; -

Undo please.

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:4654
&gt; +        RELEASE_ASSERT(Options::validateBoundsCheckElimination());

Does this really do anything?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692795</commentid>
    <comment_count>3</comment_count>
      <attachid>409946</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-09-28 19:20:29 -0700</bug_when>
    <thetext>Comment on attachment 409946
proposed patch.

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

Thanks for the review.

&gt;&gt; Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:-381
&gt;&gt; -
&gt; 
&gt; Undo please.

will do.

&gt;&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:4654
&gt;&gt; +        RELEASE_ASSERT(Options::validateBoundsCheckElimination());
&gt; 
&gt; Does this really do anything?

Just a sanity check that this node should never be emitted if the option isn&apos;t enabled.  I suppose there&apos;s no strong reason it needs to be a RELEASE_ASSERT.  I&apos;ll change it to an ASSERT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692829</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-09-28 21:55:16 -0700</bug_when>
    <thetext>Landed in r267726: &lt;http://trac.webkit.org/r267726&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409946</attachid>
            <date>2020-09-28 19:07:56 -0700</date>
            <delta_ts>2020-09-28 19:13:10 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-217055.patch</filename>
            <type>text/plain</type>
            <size>22348</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjY3NzA0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBA
CisyMDIwLTA5LTI4ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgQm91bmRzIENoZWNrIEVsaW1pbmF0aW9uIHZhbGlkYXRpb24gZm9yIGRlYnVnZ2luZy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzA1NQorICAg
ICAgICByZGFyOi8vNjkxMjI4OTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCBhIEpTQ192YWxpZGF0ZUJvdW5kc0NoZWNrRWxpbWluYXRpb24g
b3B0aW9uICh3aXRoIGFsaWFzCisgICAgICAgIEpTQ192YWxpZGF0ZUJDRSkgdGhhdCBhZGRzIGFu
IEFzc2VydEluQm91bmRzIHdoZW5ldmVyIGEgQ2hlY2tJbkJvdW5kcworICAgICAgICBub2RlIGlz
IGVsaWRlZC4KKworICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5o
OgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5
cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAg
ICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcvREZHQ29uc3RhbnRG
b2xkaW5nUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkNvbnN0YW50Rm9sZGluZ1BoYXNl
Ojpmb2xkQ29uc3RhbnRzKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAqIGRmZy9E
RkdJbnRlZ2VyQ2hlY2tDb21iaW5pbmdQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6SW50
ZWdlckNoZWNrQ29tYmluaW5nUGhhc2U6OmhhbmRsZUJsb2NrKToKKyAgICAgICAgKiBkZmcvREZH
SW50ZWdlclJhbmdlT3B0aW1pemF0aW9uUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdOb2Rl
VHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmg6CisgICAgICAgICogZGZnL0RG
R1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHU2FmZVRv
RXhlY3V0ZS5oOgorICAgICAgICAoSlNDOjpERkc6OnNhZmVUb0V4ZWN1dGUpOgorICAgICAgICAq
IGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAg
ICAgKiBkZmcvREZHVmFsaWRhdGUuY3BwOgorICAgICAgICAqIGZ0bC9GVExDYXBhYmlsaXRpZXMu
Y3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNhbkNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExM
b3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjp2
YWxpZGF0ZUFJU3RhdGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpj
b21waWxlTm9kZSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBp
bGVBc3NlcnROb3RFbXB0eSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6
OmNvbXBpbGVBc3NlcnRJbkJvdW5kcyk6CisgICAgICAgICogZnRsL0ZUTE9wZXJhdGlvbnMuY3Bw
OgorICAgICAgICAoSlNDOjpGVEw6Om9wZXJhdGlvblJlcG9ydEJvdW5kc0NoZWNrRWxpbWluYXRp
b25FcnJvckFuZENyYXNoKToKKyAgICAgICAgKiBmdGwvRlRMT3BlcmF0aW9ucy5oOgorICAgICAg
ICAqIHJ1bnRpbWUvT3B0aW9uc0xpc3QuaDoKKwogMjAyMC0wOS0yNiAgWXVzdWtlIFN1enVraSAg
PHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZvbGxvdy11cCBhZnRl
ciByMjY3MzczIHRvIHJlc29sdmUgcG9zdC1jb21taXQgcmV2aWV3IGNvbW1lbnRzCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oCShyZXZpc2lvbiAyNjc3MDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQwMTQsNiArNDAxNCw5IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRl
VHkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2FzZSBBc3NlcnRJbkJvdW5kczoKKyAg
ICAgICAgYnJlYWs7CisKICAgICBjYXNlIENoZWNrSW5Cb3VuZHM6IHsKICAgICAgICAgSlNWYWx1
ZSBsZWZ0ID0gZm9yTm9kZShub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKICAgICAgICAgSlNWYWx1
ZSByaWdodCA9IGZvck5vZGUobm9kZS0+Y2hpbGQyKCkpLnZhbHVlKCk7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAkocmV2aXNpb24gMjY3NzA0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ1Nyw2ICs0NTcsNyBAQCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBu
b2RlCiAgICAgICAgIGRlZihQdXJlVmFsdWUoQ2hlY2tOb3RFbXB0eSwgQWRqYWNlbmN5TGlzdChB
ZGphY2VuY3lMaXN0OjpGaXhlZCwgbm9kZS0+Y2hpbGQxKCkpKSk7CiAgICAgICAgIHJldHVybjsK
IAorICAgIGNhc2UgQXNzZXJ0SW5Cb3VuZHM6CiAgICAgY2FzZSBBc3NlcnROb3RFbXB0eToKICAg
ICAgICAgd3JpdGUoU2lkZVN0YXRlKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAJ
KHJldmlzaW9uIDI2NzcwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3Rh
bnRGb2xkaW5nUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNzgsNyArMzc4LDYgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgICAgICBKU1ZhbHVlIHJpZ2h0ID0gbV9zdGF0ZS5mb3JOb2RlKG5v
ZGUtPmNoaWxkMigpKS52YWx1ZSgpOwogICAgICAgICAgICAgICAgIGlmIChsZWZ0ICYmIHJpZ2h0
ICYmIGxlZnQuaXNJbnQzMigpICYmIHJpZ2h0LmlzSW50MzIoKQogICAgICAgICAgICAgICAgICAg
ICAmJiBzdGF0aWNfY2FzdDx1aW50MzJfdD4obGVmdC5hc0ludDMyKCkpIDwgc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KHJpZ2h0LmFzSW50MzIoKSkpIHsKLQogICAgICAgICAgICAgICAgICAgICBOb2Rl
KiB6ZXJvID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0Q29uc3RhbnQoaW5kZXhJbkJsb2NrLCBub2Rl
LT5vcmlnaW4sIGpzTnVtYmVyKDApKTsKICAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y29udmVy
dFRvSWRlbnRpdHlPbih6ZXJvKTsKICAgICAgICAgICAgICAgICAgICAgZWxpbWluYXRlZCA9IHRy
dWU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCShyZXZpc2lv
biAyNjc3MDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0LTIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0
LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0xODIsNiArMTgyLDcgQEAgYm9vbCBkb2VzR0MoR3JhcGgmIGdyYXBo
LCBOb2RlKiBub2RlKQogICAgIGNhc2UgRmVuY2VkU3RvcmVCYXJyaWVyOgogICAgIGNhc2UgSW52
YWxpZGF0aW9uUG9pbnQ6CiAgICAgY2FzZSBOb3RpZnlXcml0ZToKKyAgICBjYXNlIEFzc2VydElu
Qm91bmRzOgogICAgIGNhc2UgQ2hlY2tJbkJvdW5kczoKICAgICBjYXNlIENvbnN0YW50U3RvcmFn
ZVBvaW50ZXI6CiAgICAgY2FzZSBDaGVjazoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHRml4dXBQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkocmV2aXNpb24gMjY3NzA0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjExOCw2
ICsyMTE4LDcgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBDaGVja1RpZXJVcEluTG9vcDoKICAg
ICAgICAgY2FzZSBDaGVja1RpZXJVcEF0UmV0dXJuOgogICAgICAgICBjYXNlIENoZWNrVGllclVw
QW5kT1NSRW50ZXI6CisgICAgICAgIGNhc2UgQXNzZXJ0SW5Cb3VuZHM6CiAgICAgICAgIGNhc2Ug
Q2hlY2tJbkJvdW5kczoKICAgICAgICAgY2FzZSBDb25zdGFudFN0b3JhZ2VQb2ludGVyOgogICAg
ICAgICBjYXNlIERvdWJsZUFzSW50MzI6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0ludGVnZXJDaGVja0NvbWJpbmluZ1BoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0ludGVnZXJDaGVja0NvbWJpbmluZ1BoYXNlLmNwcAkocmV2
aXNpb24gMjY3NzA0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJbnRlZ2VyQ2hl
Y2tDb21iaW5pbmdQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yODIsNiArMjgyLDkgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgIGNhc2UgQXJyYXlCb3VuZHM6CisgICAgICAgICAgICAgICAgQVNTRVJUKG5vZGUtPm9w
KCkgPT0gQ2hlY2tJbkJvdW5kcyk7CisgICAgICAgICAgICAgICAgaWYgKFVOTElLRUxZKE9wdGlv
bnM6OnZhbGlkYXRlQm91bmRzQ2hlY2tFbGltaW5hdGlvbigpKSkKKyAgICAgICAgICAgICAgICAg
ICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZShub2RlSW5kZXgsIFNwZWNOb25lLCBBc3NlcnRJ
bkJvdW5kcywgbm9kZS0+b3JpZ2luLCBub2RlLT5jaGlsZDEoKSwgbm9kZS0+Y2hpbGQyKCkpOwog
ICAgICAgICAgICAgICAgIG5vZGUtPmNvbnZlcnRUb0lkZW50aXR5T24obV9tYXBbZGF0YS5tX2tl
eV0ubV9kZXBlbmRlbmN5KTsKICAgICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJ
bnRlZ2VyUmFuZ2VPcHRpbWl6YXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdJbnRlZ2VyUmFuZ2VPcHRpbWl6YXRpb25QaGFzZS5jcHAJKHJl
dmlzaW9uIDI2NzcwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW50ZWdlclJh
bmdlT3B0aW1pemF0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTMzNSw2ICsxMzM1
LDggQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
aWYgKG5vbk5lZ2F0aXZlICYmIGxlc3NUaGFuTGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICBleGVjdXRlTm9kZShibG9jay0+YXQobm9kZUluZGV4KSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoVU5MSUtFTFkoT3B0aW9uczo6dmFsaWRhdGVCb3VuZHNDaGVja0VsaW1pbmF0
aW9uKCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1faW5zZXJ0aW9uU2V0Lmluc2Vy
dE5vZGUobm9kZUluZGV4LCBTcGVjTm9uZSwgQXNzZXJ0SW5Cb3VuZHMsIG5vZGUtPm9yaWdpbiwg
bm9kZS0+Y2hpbGQxKCksIG5vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIFdlIGp1c3QgbmVlZCB0byBtYWtlIHN1cmUgd2UgYXJlIGEgdmFsdWUtcHJvZHVjaW5nIG5v
ZGUuCiAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5jb252ZXJ0VG9JZGVudGl0eU9uKG5v
ZGUtPmNoaWxkMSgpLm5vZGUoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0g
dHJ1ZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgJKHJldmlz
aW9uIDI2NzcwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAko
d29ya2luZyBjb3B5KQpAQCAtMjgwLDYgKzI4MCw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgREZHIHsKICAgICBtYWNybyhDaGVja05vdEVtcHR5LCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAg
ICAgbWFjcm8oQXNzZXJ0Tm90RW1wdHksIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhD
aGVja0JhZFZhbHVlLCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oQXNzZXJ0SW5Cb3Vu
ZHMsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhDaGVja0luQm91bmRzLCBOb2RlTXVz
dEdlbmVyYXRlIHwgTm9kZVJlc3VsdEpTKSBcCiAgICAgbWFjcm8oQ2hlY2tJZGVudCwgTm9kZU11
c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENoZWNrVHlwZUluZm9GbGFncywgTm9kZU11c3RHZW5l
cmF0ZSkgLyogVGFrZXMgYW4gT3BJbmZvIHdpdGggdGhlIGZsYWdzIHlvdSB3YW50IHRvIHRlc3Qg
YXJlIHNldCAqL1wKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9u
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9u
cy5oCShyZXZpc2lvbiAyNjc3MDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09w
ZXJhdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzMwLDcgKzMzMCw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGEKIAogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblByb2Nlc3NUeXBlUHJvZmlsZXJMb2dERkcoVk0qKSBXVEZfSU5URVJOQUw7CiAKLXZvaWQg
SklUX09QRVJBVElPTiBvcGVyYXRpb25UcmlnZ2VyUmVvcHRpbWl6YXRpb25Ob3coQ29kZUJsb2Nr
KiBiYXNlbGluZUNvZGVCbG9jaywgQ29kZUJsb2NrKiBvcHRpaW16ZWRDb2RlQmxvY2ssIE9TUkV4
aXRCYXNlKikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRyaWdn
ZXJSZW9wdGltaXphdGlvbk5vdyhDb2RlQmxvY2sqIGJhc2VsaW5lQ29kZUJsb2NrLCBDb2RlQmxv
Y2sqIG9wdGltaXplZENvZGVCbG9jaywgT1NSRXhpdEJhc2UqKSBXVEZfSU5URVJOQUw7CiB2b2lk
IHRyaWdnZXJSZW9wdGltaXphdGlvbk5vdyhDb2RlQmxvY2sqIGJhc2VsaW5lQ29kZUJsb2NrLCBD
b2RlQmxvY2sqIG9wdGlpbXplZENvZGVCbG9jaywgT1NSRXhpdEJhc2UqKTsgLy8gVGhpcyBpcyBu
b3QgSklUX09QRVJBVElPTi4KIAogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdh
dGlvblBoYXNlLmNwcAkocmV2aXNpb24gMjY3NzA0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0xMzE1LDYgKzEzMTUsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIENoZWNrVGllclVwSW5M
b29wOgogICAgICAgICBjYXNlIENoZWNrVGllclVwQXRSZXR1cm46CiAgICAgICAgIGNhc2UgQ2hl
Y2tUaWVyVXBBbmRPU1JFbnRlcjoKKyAgICAgICAgY2FzZSBBc3NlcnRJbkJvdW5kczoKICAgICAg
ICAgY2FzZSBDaGVja0luQm91bmRzOgogICAgICAgICBjYXNlIFZhbHVlVG9JbnQzMjoKICAgICAg
ICAgY2FzZSBEb3VibGVSZXA6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nh
ZmVUb0V4ZWN1dGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NhZmVUb0V4ZWN1dGUuaAkocmV2aXNpb24gMjY3NzA0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yODEsNiArMjgx
LDcgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVUeXBlJiBzdAogICAgIGNhc2Ug
U3RyaW5nRnJvbUNoYXJDb2RlOgogICAgIGNhc2UgRXh0cmFjdE9TUkVudHJ5TG9jYWw6CiAgICAg
Y2FzZSBFeHRyYWN0Q2F0Y2hMb2NhbDoKKyAgICBjYXNlIEFzc2VydEluQm91bmRzOgogICAgIGNh
c2UgQ2hlY2tJbkJvdW5kczoKICAgICBjYXNlIENvbnN0YW50U3RvcmFnZVBvaW50ZXI6CiAgICAg
Y2FzZSBDaGVjazoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkocmV2aXNpb24gMjY3NzA0KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDI0NSw2ICs0MjQ1LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2Rl
KiBub2RlKQogICAgIGNhc2UgSW50NTJSZXA6CiAgICAgY2FzZSBGaWF0SW50NTI6CiAgICAgY2Fz
ZSBJbnQ1MkNvbnN0YW50OgorICAgIGNhc2UgQXNzZXJ0SW5Cb3VuZHM6CiAgICAgY2FzZSBDaGVj
a0luQm91bmRzOgogICAgIGNhc2UgQXJpdGhJTXVsOgogICAgIGNhc2UgTXVsdGlHZXRCeU9mZnNl
dDoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcAkocmV2aXNpb24gMjY3NzA0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTY3MCw2ICs1Njcw
LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgIGNhc2Ug
UGhpOgogICAgIGNhc2UgVXBzaWxvbjoKICAgICBjYXNlIEV4dHJhY3RPU1JFbnRyeUxvY2FsOgor
ICAgIGNhc2UgQXNzZXJ0SW5Cb3VuZHM6CiAgICAgY2FzZSBDaGVja0luQm91bmRzOgogICAgIGNh
c2UgQXJpdGhJTXVsOgogICAgIGNhc2UgTXVsdGlHZXRCeU9mZnNldDoKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHVmFsaWRhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHVmFsaWRhdGUuY3BwCShyZXZpc2lvbiAyNjc3MDQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhbGlkYXRlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTYzOCw2ICs2MzgsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIHN3aXRjaCAobm9k
ZS0+b3AoKSkgewogICAgICAgICAgICAgICAgIGNhc2UgUGhpOgogICAgICAgICAgICAgICAgIGNh
c2UgVXBzaWxvbjoKKyAgICAgICAgICAgICAgICBjYXNlIEFzc2VydEluQm91bmRzOgogICAgICAg
ICAgICAgICAgIGNhc2UgQ2hlY2tJbkJvdW5kczoKICAgICAgICAgICAgICAgICBjYXNlIFBoYW50
b21OZXdPYmplY3Q6CiAgICAgICAgICAgICAgICAgY2FzZSBQaGFudG9tTmV3RnVuY3Rpb246Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCShy
ZXZpc2lvbiAyNjc3MDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxp
dGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEzLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xOTYsNiArMTk2LDcgQEAgaW5saW5lIENhcGFi
aWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIAogICAgIGNhc2UgVmFsdWVUb0ludDMyOgogICAg
IGNhc2UgQnJhbmNoOgogICAgIGNhc2UgTG9naWNhbE5vdDoKKyAgICBjYXNlIEFzc2VydEluQm91
bmRzOgogICAgIGNhc2UgQ2hlY2tJbkJvdW5kczoKICAgICBjYXNlIENvbnN0YW50U3RvcmFnZVBv
aW50ZXI6CiAgICAgY2FzZSBDaGVjazoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMTG93ZXJERkdUb0IzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJKHJldmlzaW9uIDI2NzcwNCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTkw
LDYgKzU5MCw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBpZiAobm9kZS0+aXNQaGFudG9tQWxs
b2NhdGlvbigpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCisgICAgICAgICAgICBpZiAo
bm9kZS0+b3AoKSA9PSBBc3NlcnRJbkJvdW5kcykKKyAgICAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IENoZWNrSW5Cb3VuZHMpCiAgICAgICAgICAg
ICAgICAgY29udGludWU7CiAKQEAgLTk5Niw2ICs5OTgsOSBAQCBwcml2YXRlOgogICAgICAgICBj
YXNlIEdldFZlY3Rvckxlbmd0aDoKICAgICAgICAgICAgIGNvbXBpbGVHZXRWZWN0b3JMZW5ndGgo
KTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFzc2VydEluQm91bmRzOgorICAg
ICAgICAgICAgY29tcGlsZUFzc2VydEluQm91bmRzKCk7CisgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBDaGVja0luQm91bmRzOgogICAgICAgICAgICAgY29tcGlsZUNoZWNrSW5Cb3Vu
ZHMoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzcxMyw3ICszNzE4LDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgcGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKAogICAgICAgICAgICAgWz1dIChDQ2Fs
bEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsK
ICAgICAgICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3Jh
dGNoKGppdCk7Ci0gICAgICAgICAgICAgICAgR1BSUmVnIGlucHV0ID0gIHBhcmFtc1swXS5ncHIo
KTsKKyAgICAgICAgICAgICAgICBHUFJSZWcgaW5wdXQgPSBwYXJhbXNbMF0uZ3ByKCk7CiAgICAg
ICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGRvbmUgPSBqaXQuYnJhbmNoSWZOb3RFbXB0
eShpbnB1dCk7CiAgICAgICAgICAgICAgICAgaml0LmJyZWFrcG9pbnQoKTsKICAgICAgICAgICAg
ICAgICBkb25lLmxpbmsoJmppdCk7CkBAIC00NjQzLDcgKzQ2NDgsMjkgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KLSAgICAKKworICAgIHZvaWQgY29t
cGlsZUFzc2VydEluQm91bmRzKCkKKyAgICB7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKE9wdGlv
bnM6OnZhbGlkYXRlQm91bmRzQ2hlY2tFbGltaW5hdGlvbigpKTsKKyAgICAgICAgTFZhbHVlIGlu
ZGV4ID0gbG93SW50MzIobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgIExWYWx1ZSBib3VuZHMg
PSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMigpKTsKKworICAgICAgICBMQmFzaWNCbG9jayBvdXRP
ZkJvdW5kc0Nhc2UgPSBtX291dC5uZXdCbG9jaygpOworICAgICAgICBMQmFzaWNCbG9jayBjb250
aW51YXRpb24gPSBtX291dC5uZXdCbG9jaygpOworICAgICAgICBtX291dC5icmFuY2gobV9vdXQu
YmVsb3coaW5kZXgsIGJvdW5kcyksIHVzdWFsbHkoY29udGludWF0aW9uKSwgcmFyZWx5KG91dE9m
Qm91bmRzQ2FzZSkpOworCisgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBw
ZW5kVG8ob3V0T2ZCb3VuZHNDYXNlLCBjb250aW51YXRpb24pOworICAgICAgICB2bUNhbGwoVm9p
ZCwgb3BlcmF0aW9uUmVwb3J0Qm91bmRzQ2hlY2tFbGltaW5hdGlvbkVycm9yQW5kQ3Jhc2gsCisg
ICAgICAgICAgICBtX291dC5jb25zdEludFB0cihiaXR3aXNlX2Nhc3Q8aW50cHRyX3Q+KGNvZGVC
bG9jaygpKSksCisgICAgICAgICAgICBtX291dC5jb25zdEludDMyKG1fbm9kZS0+aW5kZXgoKSks
CisgICAgICAgICAgICBtX291dC5jb25zdEludDMyKG1fbm9kZS0+Y2hpbGQxKCktPmluZGV4KCkp
LAorICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihtX25vZGUtPmNoaWxkMigpLT5pbmRleCgp
KSwKKyAgICAgICAgICAgIGluZGV4LCBib3VuZHMpOworICAgICAgICBtX291dC51bnJlYWNoYWJs
ZSgpOworCisgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOwor
ICAgIH0KKwogICAgIHZvaWQgY29tcGlsZUNoZWNrSW5Cb3VuZHMoKQogICAgIHsKICAgICAgICAg
c3BlY3VsYXRlKApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPcGVyYXRpb25z
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9wZXJhdGlv
bnMuY3BwCShyZXZpc2lvbiAyNjc3MDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TE9wZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1
ZGUgIkpTTWFwSXRlcmF0b3IuaCIKICNpbmNsdWRlICJKU1NldEl0ZXJhdG9yLmgiCiAjaW5jbHVk
ZSAiUmVnRXhwT2JqZWN0LmgiCisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogSUdOT1JF
X1dBUk5JTkdTX0JFR0lOKCJmcmFtZS1hZGRyZXNzIikKIApAQCAtNzQxLDYgKzc0MiwxMyBAQCBl
eHRlcm4gIkMiIHZvaWQqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uCiAgICAgcmV0dXJuIGxhenlT
bG93UGF0aC5zdHViKCkuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCk7CiB9CiAKK2V4dGVybiAi
QyIgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVw
b3J0Qm91bmRzQ2hlY2tFbGltaW5hdGlvbkVycm9yQW5kQ3Jhc2goaW50cHRyX3QgY29kZUJsb2Nr
QXNJbnRQdHIsIGludDMyX3Qgbm9kZUluZGV4LCBpbnQzMl90IGNoaWxkMUluZGV4LCBpbnQzMl90
IGNoaWxkMkluZGV4LCBpbnQzMl90IGNoZWNrZWRJbmRleCwgaW50MzJfdCBib3VuZHMpCit7Cisg
ICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBiaXR3aXNlX2Nhc3Q8Q29kZUJsb2NrKj4oY29kZUJs
b2NrQXNJbnRQdHIpOworICAgIGRhdGFMb2dMbigiQm91bmRzIENoZWNrIEVpbWluYXRpb24gZXJy
b3IgZm91bmQgQCBEQCIsIG5vZGVJbmRleCwgIjogQXNzZXJ0SW5Cb3VuZHMoaW5kZXggREAiLCBj
aGlsZDFJbmRleCwgIjogIiwgY2hlY2tlZEluZGV4LCAiLCBib3VuZHMgREAiLCBjaGlsZDJJbmRl
eCwgIiAiLCBib3VuZHMsICIpIGluICIsIGNvZGVCbG9jayk7CisgICAgQ1JBU0goKTsKK30KKwog
fSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAogCiBJR05PUkVfV0FSTklOR1NfRU5ECkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9wZXJhdGlvbnMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9wZXJhdGlvbnMuaAkocmV2aXNpb24gMjY3NzA0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPcGVyYXRpb25zLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtNDUsNiArNDUsOCBAQCB2b2lkKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBpbGVG
VExMCiBpbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3dpdGNoU3RyaW5nQW5kR2V0QnJh
bmNoT2Zmc2V0KEpTR2xvYmFsT2JqZWN0Kiwgc2l6ZV90IHRhYmxlSW5kZXgsIEpTU3RyaW5nKikg
V1RGX0lOVEVSTkFMOwogaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblR5cGVPZk9iamVj
dEFzVHlwZW9mVHlwZShKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKIAor
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlcG9ydEJvdW5kc0NoZWNrRWxpbWluYXRpb25F
cnJvckFuZENyYXNoKGludHB0cl90IGNvZGVCbG9ja0FzSW50UHRyLCBpbnQzMl90LCBpbnQzMl90
LCBpbnQzMl90LCBpbnQzMl90LCBpbnQzMl90KTsKKwogfSAvLyBleHRlcm4gIkMiCiAKIH0gfSAv
LyBuYW1lc3BhY2UgSlNDOjpERkcKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09wdGlvbnNMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3B0aW9uc0xpc3QuaAkocmV2aXNpb24gMjY3NzA0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzg0LDcgKzM4NCw4
IEBAIGNvbnN0ZXhwciBib29sIGVuYWJsZVdlYkFzc2VtYmx5U3RyZWFtaW4KICAgICB2KEJvb2ws
IHZhbGlkYXRlRXhjZXB0aW9uQ2hlY2tzLCBmYWxzZSwgTm9ybWFsLCAiVmVyaWZpZXMgdGhhdCBu
ZWVkZWQgZXhjZXB0aW9uIGNoZWNrcyBhcmUgcGVyZm9ybWVkLiIpIFwKICAgICB2KFVuc2lnbmVk
LCB1bmV4cGVjdGVkRXhjZXB0aW9uU3RhY2tUcmFjZUxpbWl0LCAxMDAsIE5vcm1hbCwgIlN0YWNr
IHRyYWNlIGxpbWl0IGZvciBkZWJ1Z2dpbmcgdW5leHBlY3RlZCBleGNlcHRpb25zIG9ic2VydmVk
IGluIHRoZSBWTSIpIFwKICAgICBcCi0gICAgdihCb29sLCB2YWxpZGF0ZURGR0Nsb2JiZXJpemUs
IGZhbHNlLCBOb3JtYWwsICJFbWl0cyBleHRyYSB2YWxpZGF0aW9uIGNvZGUgaW4gdGhlIERGRy9G
VEwgZm9yIHRoZSBDbG9iYmVyaXplIHBoYXNlIilcCisgICAgdihCb29sLCB2YWxpZGF0ZURGR0Ns
b2JiZXJpemUsIGZhbHNlLCBOb3JtYWwsICJFbWl0cyBjb2RlIGluIHRoZSBERkcvRlRMIHRvIHZh
bGlkYXRlIHRoZSBDbG9iYmVyaXplIHBoYXNlIilcCisgICAgdihCb29sLCB2YWxpZGF0ZUJvdW5k
c0NoZWNrRWxpbWluYXRpb24sIGZhbHNlLCBOb3JtYWwsICJFbWl0cyBjb2RlIGluIHRoZSBERkcv
RlRMIHRvIHZhbGlkYXRlIGJvdW5kcyBjaGVjayBlbGltaW5hdGlvbiIpXAogICAgIFwKICAgICB2
KEJvb2wsIHVzZUV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6eiwgZmFsc2UsIE5vcm1hbCwgbnVsbHB0
cikgXAogICAgIHYoVW5zaWduZWQsIGZpcmVFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enpBdCwgMCwg
Tm9ybWFsLCBudWxscHRyKSBcCkBAIC01NTksNyArNTYwLDggQEAgZW51bSBPcHRpb25FcXVpdmFs
ZW5jZSB7CiAgICAgdihtYXhpbXVtRnVuY3Rpb25Gb3JDbG9zdXJlQ2FsbElubGluZUNhbmRpZGF0
ZUluc3RydWN0aW9uQ291bnQsIG1heGltdW1GdW5jdGlvbkZvckNsb3N1cmVDYWxsSW5saW5lQ2Fu
ZGlkYXRlQnl0ZWNvZGVDb3N0LCBTYW1lT3B0aW9uKSBcCiAgICAgdihtYXhpbXVtRnVuY3Rpb25G
b3JDb25zdHJ1Y3RJbmxpbmVDYW5kaWRhdGVJbnN0cnVjdGlvbkNvdW50LCBtYXhpbXVtRnVuY3Rp
b25Gb3JDb25zdHJ1Y3RJbmxpbmVDYW5kaWRhdGVCeXRlY29vZGVDb3N0LCBTYW1lT3B0aW9uKSBc
CiAgICAgdihtYXhpbXVtRlRMQ2FuZGlkYXRlSW5zdHJ1Y3Rpb25Db3VudCwgbWF4aW11bUZUTENh
bmRpZGF0ZUJ5dGVjb2RlQ29zdCwgU2FtZU9wdGlvbikgXAotICAgIHYobWF4aW11bUlubGluaW5n
Q2FsbGVyU2l6ZSwgbWF4aW11bUlubGluaW5nQ2FsbGVyQnl0ZWNvZGVDb3N0LCBTYW1lT3B0aW9u
KQorICAgIHYobWF4aW11bUlubGluaW5nQ2FsbGVyU2l6ZSwgbWF4aW11bUlubGluaW5nQ2FsbGVy
Qnl0ZWNvZGVDb3N0LCBTYW1lT3B0aW9uKSBcCisgICAgdih2YWxpZGF0ZUJDRSwgdmFsaWRhdGVC
b3VuZHNDaGVja0VsaW1pbmF0aW9uLCBTYW1lT3B0aW9uKQogCiBlbnVtIEV4cGVyaW1lbnRhbE9w
dGlvbkZsYWdzIHsKICAgICBMTEludEFuZEJhc2VsaW5lT25seSA9IDAsCkluZGV4OiBUb29scy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjc3MjIp
CisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAy
MC0wOS0yOCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIEJv
dW5kcyBDaGVjayBFbGltaW5hdGlvbiB2YWxpZGF0aW9uIGZvciBkZWJ1Z2dpbmcuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcwNTUKKyAgICAgICAg
cmRhcjovLzY5MTIyODkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkZWQgLS12YWxpZGF0ZUJDRT10cnVlIHRvIGZ0bC1uby1jaml0LXZhbGlkYXRl
LXNhbXBsaW5nLXByb2ZpbGVyCisgICAgICAgIGFuZCBmdGwtZWFnZXItbm8tY2ppdC4KKworICAg
ICAgICAqIFNjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHM6CisKIDIwMjAtMDktMjggIE1hdHQg
TGV3aXMgIDxqbGV3aXMzQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggQnVpbGQgdHJpZ2dlcnMg
Zm9yIGlPUywgd2F0Y2hPUywgYW5kIHR2T1MKSW5kZXg6IFRvb2xzL1NjcmlwdHMvcnVuLWpzYy1z
dHJlc3MtdGVzdHMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10
ZXN0cwkocmV2aXNpb24gMjY3NzA0KQorKysgVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10
ZXN0cwkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKICMhL3Vzci9iaW4vZW52IHJ1YnkK
IAotIyBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMy0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNzU0LDcgKzc1NCw3IEBAIGRl
ZiBydW5GVExOb0NKSVRCM08wKCpvcHRpb25hbFRlc3RTcGVjaWYKIGVuZAogCiBkZWYgcnVuRlRM
Tm9DSklUVmFsaWRhdGUoKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykKLSAgICBydW4oImZ0
bC1uby1jaml0LXZhbGlkYXRlLXNhbXBsaW5nLXByb2ZpbGVyIiwgIi0tdmFsaWRhdGVHcmFwaD10
cnVlIiwgIi0tdXNlU2FtcGxpbmdQcm9maWxlcj10cnVlIiwgIi0tYWlyRm9yY2VJUkNBbGxvY2F0
b3I9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBOT19DSklUX09QVElPTlMgKyBvcHRpb25hbFRlc3RT
cGVjaWZpY09wdGlvbnMpKQorICAgIHJ1bigiZnRsLW5vLWNqaXQtdmFsaWRhdGUtc2FtcGxpbmct
cHJvZmlsZXIiLCAiLS12YWxpZGF0ZUdyYXBoPXRydWUiLCAiLS12YWxpZGF0ZUJDRT10cnVlIiwg
Ii0tdXNlU2FtcGxpbmdQcm9maWxlcj10cnVlIiwgIi0tYWlyRm9yY2VJUkNBbGxvY2F0b3I9dHJ1
ZSIsICooRlRMX09QVElPTlMgKyBOT19DSklUX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZp
Y09wdGlvbnMpKQogZW5kCiAKIGRlZiBydW5GVExOb0NKSVROb1B1dFN0YWNrVmFsaWRhdGUoKm9w
dGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykKQEAgLTc4Nyw3ICs3ODcsNyBAQCBkZWYgcnVuRlRM
RWFnZXJXYXRjaGRvZygqb3B0aW9uYWxUZXN0U3BlCiBlbmQKIAogZGVmIHJ1bkZUTEVhZ2VyTm9D
SklUVmFsaWRhdGUoKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykKLSAgICBydW4oImZ0bC1l
YWdlci1uby1jaml0IiwgIi0tdmFsaWRhdGVHcmFwaD10cnVlIiwgIi0tYWlyRm9yY2VJUkNBbGxv
Y2F0b3I9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBOT19DSklUX09QVElPTlMgKyBFQUdFUl9PUFRJ
T05TICsgQ09MTEVDVF9DT05USU5VT1VTTFlfT1BUSU9OUyArIEZPUkNFX0xMSU5UX0VYSVRfT1BU
SU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCisgICAgcnVuKCJmdGwtZWFnZXIt
bm8tY2ppdCIsICItLXZhbGlkYXRlR3JhcGg9dHJ1ZSIsICItLXZhbGlkYXRlQkNFPXRydWUiLCAi
LS1haXJGb3JjZUlSQ0FsbG9jYXRvcj10cnVlIiwgKihGVExfT1BUSU9OUyArIE5PX0NKSVRfT1BU
SU9OUyArIEVBR0VSX09QVElPTlMgKyBDT0xMRUNUX0NPTlRJTlVPVVNMWV9PUFRJT05TICsgRk9S
Q0VfTExJTlRfRVhJVF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKIGVu
ZAogCiBkZWYgcnVuRlRMRWFnZXJOb0NKSVRCM08xKCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlv
bnMpCg==
</data>
<flag name="review"
          id="425771"
          type_id="1"
          status="+"
          setter="keith_miller"
    />
          </attachment>
      

    </bug>

</bugzilla>