<?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>231321</bug_id>
          
          <creation_ts>2021-10-06 12:40:48 -0700</creation_ts>
          <short_desc>EnumeratorGetByVal for IndexedMode+OwnStructureMode doesn&apos;t always recover the property name</short_desc>
          <delta_ts>2021-11-02 10:25:55 -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 Local Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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="Lukas Bernhard">lukas.bernhard</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>lukas.bernhard</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1801267</commentid>
    <comment_count>0</comment_count>
    <who name="Lukas Bernhard">lukas.bernhard</who>
    <bug_when>2021-10-06 12:40:48 -0700</bug_when>
    <thetext>Differential testing identifies the following samples to trigger a miscomputation in FTL.
Tested on e467a9710432ebb3dae9880f897cf93929adc0e6 (Wed Oct 6 16:30:57 2021 +0000)
Sorry I couldn&apos;t minimize the testcase further, everything I try to simplify breaks the differential behavior.
Also, the bug description is obviously meaningless due to not having a hunch regarding the root cause.

Release/bin/jsc --validateOptions=true --useConcurrentJIT=false --useConcurrentGC=false --thresholdForJITSoon=10 --thresholdForJITAfterWarmUp=10 --thresholdForOptimizeAfterWarmUp=100 --thresholdForOptimizeAfterLongWarmUp=100 --thresholdForOptimizeSoon=100 --thresholdForFTLOptimizeAfterWarmUp=1000 --thresholdForFTLOptimizeSoon=1000 --validateBCE=true --useFTLJIT=true diff.js

function main() {
    let v224;
    const v35 = [0, 0, {b:&quot;AAAAA&quot;}];
    
    async function v36(arr) {
        edenGC();  // removing this break differential
        for (let v198 = 0; v198 &lt; 2; v198++) {
            const v200 = [0, 0]; 
            const v201 = ` 
                for (let v205 = 0; v205 &lt; 60000; v205++) { }

                async function v215() { } // never called but removing breaks differential

                const v222 = {&quot;__proto__&quot;:[[]], &quot;a&quot;:0, &quot;b&quot;:0};
                for (const v223 in v222) {
                    v224 = arr[v223];
                    v222.__proto__ = {};
                }
                v200;
            `;
            eval(v201); // moving code out of eval breaks differential
        }   
    }   
    v35.filter(v36);
    print(v224) // prints undefined in FTL, AAAAA without FTL (also AAAAA in v8)
}
main();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803915</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-13 12:41:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/84211697&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810938</commentid>
    <comment_count>2</comment_count>
      <attachid>443027</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-11-01 15:54:36 -0700</bug_when>
    <thetext>Created attachment 443027
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810945</commentid>
    <comment_count>3</comment_count>
      <attachid>443027</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-01 16:06:04 -0700</bug_when>
    <thetext>Comment on attachment 443027
patch

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

r=me

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:15908
&gt; +            MacroAssembler::JumpList&amp; genericOrRecoverCase = m_graph.varArgChild(node, 1).node() == m_graph.varArgChild(node, 3).node() ? recoverGenericCase : notFastNamedCases;

For readability, let&apos;s define `bool indexedModeAndOwnStructureMode = ...` and use it.

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:13686
&gt; +        // FIXME: This is a pretty bad way to say we&apos;re using IndexedMode+OwnStructureMode mode. 

Ditto for bool variable.

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:13755
&gt; +        if (indexEdge.node() == propertyNameEdge.node()) {

Use bool variable which should be defined above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810965</commentid>
    <comment_count>4</comment_count>
      <attachid>443034</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-11-01 16:33:33 -0700</bug_when>
    <thetext>Created attachment 443034
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811169</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-02 10:25:53 -0700</bug_when>
    <thetext>Committed r285167 (243803@main): &lt;https://commits.webkit.org/243803@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 443034.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443027</attachid>
            <date>2021-11-01 15:54:36 -0700</date>
            <delta_ts>2021-11-01 16:33:33 -0700</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>10638</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyODUxMzkpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE2IEBACisyMDIxLTExLTAxICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgorCisgICAgICAgIEVudW1lcmF0b3JHZXRCeVZhbCBmb3IgSW5kZXhlZE1vZGUrT3duU3Ry
dWN0dXJlTW9kZSBkb2Vzbid0IGFsd2F5cyByZWNvdmVyIHRoZSBwcm9wZXJ0eSBuYW1lCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEzMjEKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzg0MjExNjk3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL2VudW1lcmF0b3ItZ2V0LWJ5LXZhbC1uZWVk
cy10by1yZWNvdmVyLXByb3BlcnR5LW5hbWUuanM6IEFkZGVkLgorICAgICAgICAoYXNzZXJ0KToK
KyAgICAgICAgKG1haW4uYXN5bmMgdjM2KToKKyAgICAgICAgKG1haW4pOgorCiAyMDIxLTExLTAx
ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIEFycmF5QnVmZmVy
IHNwZWNpZXMgd2F0Y2hwb2ludCBiZWluZyBpbnZhbGlkYXRlZCBkb2Vzbid0IG1lYW4gaXQncyBu
b3QgYW4gQXJyYXlCdWZmZXIgY29uc3RydWN0b3IgZnJvbSB0aGUgc2FtZSBnbG9iYWwgb2JqZWN0
CkluZGV4OiBKU1Rlc3RzL3N0cmVzcy9lbnVtZXJhdG9yLWdldC1ieS12YWwtbmVlZHMtdG8tcmVj
b3Zlci1wcm9wZXJ0eS1uYW1lLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvc3RyZXNzL2VudW1l
cmF0b3ItZ2V0LWJ5LXZhbC1uZWVkcy10by1yZWNvdmVyLXByb3BlcnR5LW5hbWUuanMJKG5vbmV4
aXN0ZW50KQorKysgSlNUZXN0cy9zdHJlc3MvZW51bWVyYXRvci1nZXQtYnktdmFsLW5lZWRzLXRv
LXJlY292ZXItcHJvcGVydHktbmFtZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMyIEBA
CisvL0AgcnVuRGVmYXVsdCgiLS12YWxpZGF0ZU9wdGlvbnM9dHJ1ZSIsICItLXVzZUNvbmN1cnJl
bnRKSVQ9ZmFsc2UiLCAiLS11c2VDb25jdXJyZW50R0M9ZmFsc2UiLCAiLS10aHJlc2hvbGRGb3JK
SVRTb29uPTEwIiwgIi0tdGhyZXNob2xkRm9ySklUQWZ0ZXJXYXJtVXA9MTAiLCAiLS10aHJlc2hv
bGRGb3JPcHRpbWl6ZUFmdGVyV2FybVVwPTEwMCIsICItLXRocmVzaG9sZEZvck9wdGltaXplQWZ0
ZXJMb25nV2FybVVwPTEwMCIsICItLXRocmVzaG9sZEZvck9wdGltaXplU29vbj0xMDAiLCAiLS10
aHJlc2hvbGRGb3JGVExPcHRpbWl6ZUFmdGVyV2FybVVwPTEwMDAiLCAiLS10aHJlc2hvbGRGb3JG
VExPcHRpbWl6ZVNvb249MTAwMCIsICItLXZhbGlkYXRlQkNFPXRydWUiLCAiLS11c2VGVExKSVQ9
dHJ1ZSIpCisKK2Z1bmN0aW9uIGFzc2VydChiKSB7CisgICAgaWYgKCFiKQorICAgICAgICB0aHJv
dyBuZXcgRXJyb3I7Cit9CisKK2Z1bmN0aW9uIG1haW4oKSB7CisgICAgbGV0IHJlc3VsdDsKKyAg
ICBjb25zdCB2MzUgPSBbMCwgMCwge2I6IkFBQUFBIn1dOworICAgIAorICAgIGFzeW5jIGZ1bmN0
aW9uIHYzNihhcnIpIHsKKyAgICAgICAgZWRlbkdDKCk7ICAvLyBUaGlzIGlzIG5lZWRlZAorICAg
ICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDI7IGkrKykgeworICAgICAgICAgICAgY29uc3QgdjIw
MSA9IGAgCisgICAgICAgICAgICAgICAgdmFyIHNvbWVWYXI7IC8vIHRoaXMgaXMgbmVlZGVkCisK
KyAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IDYwMDAwOyBqKyspIHsgfQorCisg
ICAgICAgICAgICAgICAgY29uc3QgdjIyMiA9IHsiX19wcm90b19fIjpbW11dLCAiYSI6MCwgImIi
OjB9OworICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcHJvcCBpbiB2MjIyKSB7CisgICAgICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IGFycltwcm9wXTsKKyAgICAgICAgICAgICAgICAgICAgdjIy
Mi5fX3Byb3RvX18gPSB7fTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBgOworICAg
ICAgICAgICAgZXZhbCh2MjAxKTsgLy8gbW92aW5nIGNvZGUgb3V0IG9mIGV2YWwgYnJlYWtzIGRp
ZmZlcmVudGlhbAorICAgICAgICB9CisgICAgfQorICAgIHYzNS5maWx0ZXIodjM2KTsKKyAgICBh
c3NlcnQocmVzdWx0ID09PSAiQUFBQUEiKTsKK30KK21haW4oKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZwkocmV2aXNpb24gMjg1MTE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDIxLTExLTAxICBTYWFt
IEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIEVudW1lcmF0b3JHZXRCeVZh
bCBmb3IgSW5kZXhlZE1vZGUrT3duU3RydWN0dXJlTW9kZSBkb2Vzbid0IGFsd2F5cyByZWNvdmVy
IHRoZSBwcm9wZXJ0eSBuYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzEzMjEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MjExNjk3PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gcnVubmlu
ZyBhbiBFbnVtZXJhdG9yR2V0QnlWYWwgaW4gSW5kZXhlZE1vZGUrT3duU3RydWN0dXJlTW9kZSwg
d2UgbWF5CisgICAgICAgIGdvIHRvIHRoZSBzbG93IHBhdGguIEhvd2V2ZXIsIHdlIHdlcmUgaW5j
b3JyZWN0bHkgZ29pbmcgdG8gdGhlIHNsb3cgcGF0aAorICAgICAgICBiZWZvcmUgcmVjb3Zlcmlu
ZyB0aGUgYWN0dWFsIHByb3BlcnR5IG5hbWUuIEluc3RlYWQsIHdlIHdlcmUgcGFzc2luZyBpbgor
ICAgICAgICB0aGUgaW50ZWdlciBpbmRleCB2YWx1ZSB0byB0aGUgZ2V0IGJ5IHZhbC4KKworICAg
ICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVFbnVtZXJhdG9yR2V0QnlWYWwpOgorICAgICAgICAqIGZ0bC9G
VExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0Iz
Ojpjb21waWxlQ29tcGFyZVN0cmljdEVxKToKKwogMjAyMS0xMS0wMSAgUm9iaW4gTW9yaXNzZXQg
IDxybW9yaXNzZXRAYXBwbGUuY29tPgogCiAgICAgICAgIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3
PEFkYXB0b3I+OjpzZXQgY3Jhc2hlcyBpZiB0aGUgbGVuZ3RoICsgb2JqZWN0T2Zmc2V0IGlzID4g
VUlOVDMyX01BWApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDI4NTExNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTg3NSw3ICsx
NTg3NSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVFbnVtZXJhdG9yR2UKICAgICAg
ICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVnczsKICAgICAgICAgR1BSUmVnIGluZGV4R1BSOwogICAg
ICAgICBHUFJSZWcgZW51bWVyYXRvckdQUjsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
YmFkU3RydWN0dXJlU2xvd1BhdGg7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBy
ZWNvdmVyR2VuZXJpY0Nhc2U7CiAKICAgICAgICAgY29tcGlsZUdldEJ5VmFsKG5vZGUsIHNjb3Bl
ZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0LCBDYW5Vc2VGbHVzaD4o
RGF0YUZvcm1hdCk+KFsmXSAoRGF0YUZvcm1hdCkgewogICAgICAgICAgICAgRWRnZSBzdG9yYWdl
RWRnZSA9IG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMik7CkBAIC0xNTkwNCwxMiArMTU5MDQs
MTQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUVudW1lcmF0b3JHZQogICAgICAgICAg
ICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSByZXN1bHRSZWdzLnBheWxvYWRHUFIoKTsKIAogICAgICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IG5vdEZhc3ROYW1lZENhc2VzOworICAgICAg
ICAgICAgLy8gRklYTUU6IE1heWJlIHdlIHNob3VsZCBoYXZlIGEgYmV0dGVyIHdheSB0byByZXBy
ZXNlbnQgSW5kZXhlZE1vZGUrT3duU3RydWN0dXJlTW9kZT8KKyAgICAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpKdW1wTGlzdCYgZ2VuZXJpY09yUmVjb3ZlckNhc2UgPSBtX2dyYXBoLnZhckFyZ0No
aWxkKG5vZGUsIDEpLm5vZGUoKSA9PSBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDMpLm5vZGUo
KSA/IHJlY292ZXJHZW5lcmljQ2FzZSA6IG5vdEZhc3ROYW1lZENhc2VzOwogCiAgICAgICAgICAg
ICAvLyBGSVhNRTogV2Ugc2hvdWxkbid0IGdlbmVyYXRlIHRoaXMgY29kZSBpZiB3ZSBrbm93IGJh
c2UgaXMgbm90IGFuIG9iamVjdC4KICAgICAgICAgICAgIG5vdEZhc3ROYW1lZENhc2VzLmFwcGVu
ZChtX2ppdC5icmFuY2hUZXN0MzIoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIG1vZGVHUFIsIFRy
dXN0ZWRJbW0zMihKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OkluZGV4ZWRNb2RlIHwgSlNQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yOjpHZW5lcmljTW9kZSkpKTsKICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICBpZiAoIW1fc3RhdGUuZm9yTm9kZShiYXNlRWRnZSkuaXNUeXBlKFNwZWNDZWxs
KSkKLSAgICAgICAgICAgICAgICAgICAgbm90RmFzdE5hbWVkQ2FzZXMuYXBwZW5kKG1faml0LmJy
YW5jaElmTm90Q2VsbChiYXNlUmVncykpOworICAgICAgICAgICAgICAgICAgICBnZW5lcmljT3JS
ZWNvdmVyQ2FzZS5hcHBlbmQobV9qaXQuYnJhbmNoSWZOb3RDZWxsKGJhc2VSZWdzKSk7CiAKICAg
ICAgICAgICAgICAgICAvLyBDaGVjayB0aGUgc3RydWN0dXJlCiAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IElmIHdlIGtub3cgdGhlcmUncyBvbmx5IG9uZSBzdHJ1Y3R1cmUgZm9yIGJhc2Ugd2Ug
Y2FuIGp1c3QgZW1iZWQgaXQgaGVyZS4KQEAgLTE1OTIwLDEyICsxNTkyMiw3IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVFbnVtZXJhdG9yR2UKICAgICAgICAgICAgICAgICAgICAgc2Ny
YXRjaEdQUiwKICAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoCiAg
ICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhdG9yR1BSLCBKU1Byb3BlcnR5TmFtZUVudW1l
cmF0b3I6OmNhY2hlZFN0cnVjdHVyZUlET2Zmc2V0KCkpKTsKLQotICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBNYXliZSB3ZSBzaG91bGQgaGF2ZSBhIGJldHRlciB3YXkgdG8gcmVwcmVzZW50IElu
ZGV4ZWQrTmFtZWQ/Ci0gICAgICAgICAgICAgICAgaWYgKG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9k
ZSwgMSkubm9kZSgpID09IG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMykubm9kZSgpKQotICAg
ICAgICAgICAgICAgICAgICBiYWRTdHJ1Y3R1cmVTbG93UGF0aCA9IGJhZFN0cnVjdHVyZTsKLSAg
ICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIG5vdEZhc3ROYW1lZENhc2Vz
LmFwcGVuZChiYWRTdHJ1Y3R1cmUpOworICAgICAgICAgICAgICAgIGdlbmVyaWNPclJlY292ZXJD
YXNlLmFwcGVuZChiYWRTdHJ1Y3R1cmUpOwogCiAgICAgICAgICAgICAgICAgLy8gQ29tcHV0ZSB0
aGUgb2Zmc2V0CiAgICAgICAgICAgICAgICAgLy8gSWYgaW5kZXggaXMgbGVzcyB0aGFuIHRoZSBl
bnVtZXJhdG9yJ3MgY2FjaGVkIGlubGluZSBzdG9yYWdlLCB0aGVuIGl0J3MgYW4gaW5saW5lIGFj
Y2VzcwpAQCAtMTU5NTcsMTEgKzE1OTU0LDExIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVFbnVtZXJhdG9yR2UKICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMga2luZGEgaGFja3kuLi4K
ICAgICAgICAgQVNTRVJUKGdlbmVyYXRpb25JbmZvKG5vZGUpLmpzVmFsdWVSZWdzKCkgPT0gcmVz
dWx0UmVncyAmJiBnZW5lcmF0aW9uSW5mbyhub2RlKS5yZWdpc3RlckZvcm1hdCgpID09IERhdGFG
b3JtYXRKUyk7CiAKLSAgICAgICAgaWYgKGJhZFN0cnVjdHVyZVNsb3dQYXRoLmlzU2V0KCkpIHsK
KyAgICAgICAgaWYgKCFyZWNvdmVyR2VuZXJpY0Nhc2UuZW1wdHkoKSkgewogICAgICAgICAgICAg
aWYgKGJhc2VSZWdzLnRhZ0dQUigpID09IEludmFsaWRHUFJSZWcpCi0gICAgICAgICAgICAgICAg
YWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKGJhZFN0cnVjdHVyZVNsb3dQYXRoLCB0
aGlzLCBvcGVyYXRpb25FbnVtZXJhdG9yUmVjb3Zlck5hbWVBbmRHZXRCeVZhbCwgcmVzdWx0UmVn
cywgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmpl
Y3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIENDYWxsSGVscGVyczo6Q2VsbFZhbHVlKGJh
c2VSZWdzLnBheWxvYWRHUFIoKSksIGluZGV4R1BSLCBlbnVtZXJhdG9yR1BSKSk7CisgICAgICAg
ICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKHJlY292ZXJHZW5lcmlj
Q2FzZSwgdGhpcywgb3BlcmF0aW9uRW51bWVyYXRvclJlY292ZXJOYW1lQW5kR2V0QnlWYWwsIHJl
c3VsdFJlZ3MsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xv
YmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBDQ2FsbEhlbHBlcnM6OkNlbGxW
YWx1ZShiYXNlUmVncy5wYXlsb2FkR1BSKCkpLCBpbmRleEdQUiwgZW51bWVyYXRvckdQUikpOwog
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNs
b3dQYXRoQ2FsbChiYWRTdHJ1Y3R1cmVTbG93UGF0aCwgdGhpcywgb3BlcmF0aW9uRW51bWVyYXRv
clJlY292ZXJOYW1lQW5kR2V0QnlWYWwsIHJlc3VsdFJlZ3MsIFRydXN0ZWRJbW1QdHI6OndlYWtQ
b2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1h
bnRpYykpLCBiYXNlUmVncywgaW5kZXhHUFIsIGVudW1lcmF0b3JHUFIpKTsKKyAgICAgICAgICAg
ICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwocmVjb3ZlckdlbmVyaWNDYXNl
LCB0aGlzLCBvcGVyYXRpb25FbnVtZXJhdG9yUmVjb3Zlck5hbWVBbmRHZXRCeVZhbCwgcmVzdWx0
UmVncywgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxP
YmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2VSZWdzLCBpbmRleEdQUiwgZW51
bWVyYXRvckdQUikpOwogICAgICAgICB9CiAKICAgICAgICAgZG9uZUNhc2VzLmxpbmsoJm1faml0
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5j
cHAJKHJldmlzaW9uIDI4NTExNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93
ZXJERkdUb0IzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM2ODEsNiArMTM2ODEsMTMgQEAgSUdO
T1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICBMQmFzaWNCbG9jayBvdXRPZkxpbmVMb2Fk
QmxvY2sgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICBMQmFzaWNCbG9jayBnZW5lcmljSUNC
bG9jayA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlv
biA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisgICAgICAgIExCYXNpY0Jsb2NrIGdlbmVyaWNPclJlY292
ZXI7CisKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgYSBwcmV0dHkgYmFkIHdheSB0byBzYXkg
d2UncmUgdXNpbmcgSW5kZXhlZE1vZGUrT3duU3RydWN0dXJlTW9kZSBtb2RlLiAKKyAgICAgICAg
aWYgKGluZGV4RWRnZS5ub2RlKCkgPT0gcHJvcGVydHlOYW1lRWRnZS5ub2RlKCkpCisgICAgICAg
ICAgICBnZW5lcmljT3JSZWNvdmVyID0gbV9vdXQubmV3QmxvY2soKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgZ2VuZXJpY09yUmVjb3ZlciA9IGdlbmVyaWNJQ0Jsb2NrOwogCiAgICAgICAg
IFZlY3RvcjxWYWx1ZUZyb21CbG9jaywgND4gcmVzdWx0czsKIApAQCAtMTM2ODgsNyArMTM2OTUs
NyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgIG1fb3V0LmJyYW5jaChpc05v
dE5hbWVkLCB1bnN1cmUoZ2VuZXJpY0lDQmxvY2spLCB1bnN1cmUoY2hlY2tJc0NlbGxCbG9jaykp
OwogCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNoZWNrSXNDZWxsQmxvY2spOwotICAgICAgICBt
X291dC5icmFuY2goaXNDZWxsKGJhc2UsIHByb3ZlblR5cGUoYmFzZUVkZ2UpKSwgdXN1YWxseShj
aGVja1N0cnVjdHVyZUJsb2NrKSwgcmFyZWx5KGdlbmVyaWNJQ0Jsb2NrKSk7CisgICAgICAgIG1f
b3V0LmJyYW5jaChpc0NlbGwoYmFzZSwgcHJvdmVuVHlwZShiYXNlRWRnZSkpLCB1c3VhbGx5KGNo
ZWNrU3RydWN0dXJlQmxvY2spLCByYXJlbHkoZ2VuZXJpY09yUmVjb3ZlcikpOwogCiAgICAgICAg
IG1fb3V0LmFwcGVuZFRvKGNoZWNrU3RydWN0dXJlQmxvY2spOwogICAgICAgICBMVmFsdWUgc3Ry
dWN0dXJlSUQ7CkBAIC0xMzcwMCwxNSArMTM3MDcsNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1Nf
RU5ECiAKICAgICAgICAgTFZhbHVlIGhhc0VudW1lcmF0b3JTdHJ1Y3R1cmUgPSBtX291dC5lcXVh
bChzdHJ1Y3R1cmVJRCwgbV9vdXQubG9hZDMyKGVudW1lcmF0b3IsIG1faGVhcHMuSlNQcm9wZXJ0
eU5hbWVFbnVtZXJhdG9yX2NhY2hlZFN0cnVjdHVyZUlEKSk7CiAKLSAgICAgICAgaWYgKGluZGV4
RWRnZS5ub2RlKCkgPT0gcHJvcGVydHlOYW1lRWRnZS5ub2RlKCkpIHsKLSAgICAgICAgICAgIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihtX29y
aWdpbi5zZW1hbnRpYyk7Ci0gICAgICAgICAgICBMQmFzaWNCbG9jayBiYWRTdHJ1Y3R1cmVTbG93
UGF0aCA9IG1fb3V0Lm5ld0Jsb2NrKCk7Ci0gICAgICAgICAgICBtX291dC5icmFuY2goaGFzRW51
bWVyYXRvclN0cnVjdHVyZSwgdXN1YWxseShjaGVja0lubGluZU9yT3V0T2ZMaW5lQmxvY2spLCBy
YXJlbHkoZ2VuZXJpY0lDQmxvY2spKTsKLQotICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oYmFk
U3RydWN0dXJlU2xvd1BhdGgpOwotICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5j
aG9yKHZtQ2FsbChJbnQ2NCwgb3BlcmF0aW9uRW51bWVyYXRvclJlY292ZXJOYW1lQW5kR2V0QnlW
YWwsIHdlYWtQb2ludGVyKGdsb2JhbE9iamVjdCksIGJhc2UsIGluZGV4LCBlbnVtZXJhdG9yKSkp
OwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIG1fb3V0LmJyYW5jaChoYXNFbnVtZXJhdG9y
U3RydWN0dXJlLCB1c3VhbGx5KGNoZWNrSW5saW5lT3JPdXRPZkxpbmVCbG9jayksIHJhcmVseShn
ZW5lcmljSUNCbG9jaykpOworICAgICAgICBtX291dC5icmFuY2goaGFzRW51bWVyYXRvclN0cnVj
dHVyZSwgdXN1YWxseShjaGVja0lubGluZU9yT3V0T2ZMaW5lQmxvY2spLCByYXJlbHkoZ2VuZXJp
Y09yUmVjb3ZlcikpOwogCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNoZWNrSW5saW5lT3JPdXRP
ZkxpbmVCbG9jayk7CiAgICAgICAgIExWYWx1ZSBpbmxpbmVDYXBhY2l0eSA9IG51bGxwdHI7CkBA
IC0xMzc1Myw2ICsxMzc1MiwxMiBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAg
IHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcihnZW5lcmljUmVzdWx0KSk7CiAgICAgICAgIG1f
b3V0Lmp1bXAoY29udGludWF0aW9uKTsKIAorICAgICAgICBpZiAoaW5kZXhFZGdlLm5vZGUoKSA9
PSBwcm9wZXJ0eU5hbWVFZGdlLm5vZGUoKSkgeworICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8o
Z2VuZXJpY09yUmVjb3Zlcik7CisgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChtX291dC5hbmNo
b3Iodm1DYWxsKEludDY0LCBvcGVyYXRpb25FbnVtZXJhdG9yUmVjb3Zlck5hbWVBbmRHZXRCeVZh
bCwgd2Vha1BvaW50ZXIobV9ncmFwaC5nbG9iYWxPYmplY3RGb3IobV9vcmlnaW4uc2VtYW50aWMp
KSwgYmFzZSwgaW5kZXgsIGVudW1lcmF0b3IpKSk7CisgICAgICAgICAgICBtX291dC5qdW1wKGNv
bnRpbnVhdGlvbik7CisgICAgICAgIH0KKwogICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51
YXRpb24pOwogICAgICAgICBBU1NFUlQocmVzdWx0cy5zaXplKCkpOwogICAgICAgICBMVmFsdWUg
cmVzdWx0ID0gbV9vdXQucGhpKEludDY0LCByZXN1bHRzKTsK
</data>
<flag name="review"
          id="467662"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443034</attachid>
            <date>2021-11-01 16:33:33 -0700</date>
            <delta_ts>2021-11-02 10:25:54 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>10706</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyODUxMzkpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDIxLTExLTAxICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgorCisgICAgICAgIEVudW1lcmF0b3JHZXRCeVZhbCBmb3IgSW5kZXhlZE1vZGUrT3duU3Ry
dWN0dXJlTW9kZSBkb2Vzbid0IGFsd2F5cyByZWNvdmVyIHRoZSBwcm9wZXJ0eSBuYW1lCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEzMjEKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzg0MjExNjk3PgorCisgICAgICAgIFJldmlld2VkIGJ5IFl1c3Vr
ZSBTdXp1a2kuCisKKyAgICAgICAgKiBzdHJlc3MvZW51bWVyYXRvci1nZXQtYnktdmFsLW5lZWRz
LXRvLXJlY292ZXItcHJvcGVydHktbmFtZS5qczogQWRkZWQuCisKIDIwMjEtMTEtMDEgIFNhYW0g
QmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgQXJyYXlCdWZmZXIgc3BlY2ll
cyB3YXRjaHBvaW50IGJlaW5nIGludmFsaWRhdGVkIGRvZXNuJ3QgbWVhbiBpdCdzIG5vdCBhbiBB
cnJheUJ1ZmZlciBjb25zdHJ1Y3RvciBmcm9tIHRoZSBzYW1lIGdsb2JhbCBvYmplY3QKSW5kZXg6
IEpTVGVzdHMvc3RyZXNzL2VudW1lcmF0b3ItZ2V0LWJ5LXZhbC1uZWVkcy10by1yZWNvdmVyLXBy
b3BlcnR5LW5hbWUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9zdHJlc3MvZW51bWVyYXRvci1n
ZXQtYnktdmFsLW5lZWRzLXRvLXJlY292ZXItcHJvcGVydHktbmFtZS5qcwkobm9uZXhpc3RlbnQp
CisrKyBKU1Rlc3RzL3N0cmVzcy9lbnVtZXJhdG9yLWdldC1ieS12YWwtbmVlZHMtdG8tcmVjb3Zl
ci1wcm9wZXJ0eS1uYW1lLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzIgQEAKKy8vQCBy
dW5EZWZhdWx0KCItLXZhbGlkYXRlT3B0aW9ucz10cnVlIiwgIi0tdXNlQ29uY3VycmVudEpJVD1m
YWxzZSIsICItLXVzZUNvbmN1cnJlbnRHQz1mYWxzZSIsICItLXRocmVzaG9sZEZvckpJVFNvb249
MTAiLCAiLS10aHJlc2hvbGRGb3JKSVRBZnRlcldhcm1VcD0xMCIsICItLXRocmVzaG9sZEZvck9w
dGltaXplQWZ0ZXJXYXJtVXA9MTAwIiwgIi0tdGhyZXNob2xkRm9yT3B0aW1pemVBZnRlckxvbmdX
YXJtVXA9MTAwIiwgIi0tdGhyZXNob2xkRm9yT3B0aW1pemVTb29uPTEwMCIsICItLXRocmVzaG9s
ZEZvckZUTE9wdGltaXplQWZ0ZXJXYXJtVXA9MTAwMCIsICItLXRocmVzaG9sZEZvckZUTE9wdGlt
aXplU29vbj0xMDAwIiwgIi0tdmFsaWRhdGVCQ0U9dHJ1ZSIsICItLXVzZUZUTEpJVD10cnVlIikK
KworZnVuY3Rpb24gYXNzZXJ0KGIpIHsKKyAgICBpZiAoIWIpCisgICAgICAgIHRocm93IG5ldyBF
cnJvcjsKK30KKworZnVuY3Rpb24gbWFpbigpIHsKKyAgICBsZXQgcmVzdWx0OworICAgIGNvbnN0
IHYzNSA9IFswLCAwLCB7YjoiQUFBQUEifV07CisgICAgCisgICAgYXN5bmMgZnVuY3Rpb24gdjM2
KGFycikgeworICAgICAgICBlZGVuR0MoKTsgIC8vIFRoaXMgaXMgbmVlZGVkCisgICAgICAgIGZv
ciAobGV0IGkgPSAwOyBpIDwgMjsgaSsrKSB7CisgICAgICAgICAgICBjb25zdCB2MjAxID0gYCAK
KyAgICAgICAgICAgICAgICB2YXIgc29tZVZhcjsgLy8gdGhpcyBpcyBuZWVkZWQKKworICAgICAg
ICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgNjAwMDA7IGorKykgeyB9CisKKyAgICAgICAg
ICAgICAgICBjb25zdCB2MjIyID0geyJfX3Byb3RvX18iOltbXV0sICJhIjowLCAiYiI6MH07Cisg
ICAgICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wIGluIHYyMjIpIHsKKyAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0ID0gYXJyW3Byb3BdOworICAgICAgICAgICAgICAgICAgICB2MjIyLl9fcHJv
dG9fXyA9IHt9OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGA7CisgICAgICAgICAg
ICBldmFsKHYyMDEpOyAvLyBtb3ZpbmcgY29kZSBvdXQgb2YgZXZhbCBicmVha3MgZGlmZmVyZW50
aWFsCisgICAgICAgIH0KKyAgICB9CisgICAgdjM1LmZpbHRlcih2MzYpOworICAgIGFzc2VydChy
ZXN1bHQgPT09ICJBQUFBQSIpOworfQorbWFpbigpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCShyZXZpc2lvbiAyODUxMTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMTEtMDEgIFNhYW0gQmFyYXRp
ICA8c2JhcmF0aUBhcHBsZS5jb20+CisKKyAgICAgICAgRW51bWVyYXRvckdldEJ5VmFsIGZvciBJ
bmRleGVkTW9kZStPd25TdHJ1Y3R1cmVNb2RlIGRvZXNuJ3QgYWx3YXlzIHJlY292ZXIgdGhlIHBy
b3BlcnR5IG5hbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMTMyMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQyMTE2OTc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgWXVzdWtlIFN1enVraS4KKworICAgICAgICBXaGVuIHJ1bm5pbmcgYW4gRW51
bWVyYXRvckdldEJ5VmFsIGluIEluZGV4ZWRNb2RlK093blN0cnVjdHVyZU1vZGUsIHdlIG1heQor
ICAgICAgICBnbyB0byB0aGUgc2xvdyBwYXRoLiBIb3dldmVyLCB3ZSB3ZXJlIGluY29ycmVjdGx5
IGdvaW5nIHRvIHRoZSBzbG93IHBhdGgKKyAgICAgICAgYmVmb3JlIHJlY292ZXJpbmcgdGhlIGFj
dHVhbCBwcm9wZXJ0eSBuYW1lLiBJbnN0ZWFkLCB3ZSB3ZXJlIHBhc3NpbmcgaW4KKyAgICAgICAg
dGhlIGludGVnZXIgaW5kZXggdmFsdWUgdG8gdGhlIGdldCBieSB2YWwuCisKKyAgICAgICAgKiBk
ZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlRW51bWVyYXRvckdldEJ5VmFsKToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJE
RkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGls
ZUNvbXBhcmVTdHJpY3RFcSk6CisKIDIwMjEtMTEtMDEgIFJvYmluIE1vcmlzc2V0ICA8cm1vcmlz
c2V0QGFwcGxlLmNvbT4KIAogICAgICAgICBKU0dlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9y
Pjo6c2V0IGNyYXNoZXMgaWYgdGhlIGxlbmd0aCArIG9iamVjdE9mZnNldCBpcyA+IFVJTlQzMl9N
QVgKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwCShyZXZpc2lvbiAyODUxMTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU4NzUsNyArMTU4NzUsNyBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlRW51bWVyYXRvckdlCiAgICAgICAgIEpTVmFs
dWVSZWdzIHJlc3VsdFJlZ3M7CiAgICAgICAgIEdQUlJlZyBpbmRleEdQUjsKICAgICAgICAgR1BS
UmVnIGVudW1lcmF0b3JHUFI7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGJhZFN0cnVj
dHVyZVNsb3dQYXRoOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3QgcmVjb3Zlckdl
bmVyaWNDYXNlOwogCiAgICAgICAgIGNvbXBpbGVHZXRCeVZhbChub2RlLCBzY29wZWRMYW1iZGE8
c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNlRmx1c2g+KERhdGFGb3Jt
YXQpPihbJl0gKERhdGFGb3JtYXQpIHsKICAgICAgICAgICAgIEVkZ2Ugc3RvcmFnZUVkZ2UgPSBt
X2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDIpOwpAQCAtMTU5MDQsMTIgKzE1OTA0LDE1IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVFbnVtZXJhdG9yR2UKICAgICAgICAgICAgIEdQUlJl
ZyBzY3JhdGNoR1BSID0gcmVzdWx0UmVncy5wYXlsb2FkR1BSKCk7CiAKICAgICAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBub3RGYXN0TmFtZWRDYXNlczsKKyAgICAgICAgICAgIC8v
IEZJWE1FOiBNYXliZSB3ZSBzaG91bGQgaGF2ZSBhIGJldHRlciB3YXkgdG8gcmVwcmVzZW50IElu
ZGV4ZWRNb2RlK093blN0cnVjdHVyZU1vZGU/CisgICAgICAgICAgICBib29sIGluZGV4ZWRBbmRP
d25TdHJ1Y3R1cmVNb2RlID0gbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAxKS5ub2RlKCkgPT0g
bV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAzKS5ub2RlKCk7CisgICAgICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6SnVtcExpc3QmIGdlbmVyaWNPclJlY292ZXJDYXNlID0gaW5kZXhlZEFuZE93blN0
cnVjdHVyZU1vZGUgPyByZWNvdmVyR2VuZXJpY0Nhc2UgOiBub3RGYXN0TmFtZWRDYXNlczsKIAog
ICAgICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZG4ndCBnZW5lcmF0ZSB0aGlzIGNvZGUgaWYg
d2Uga25vdyBiYXNlIGlzIG5vdCBhbiBvYmplY3QuCiAgICAgICAgICAgICBub3RGYXN0TmFtZWRD
YXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoVGVzdDMyKE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLCBt
b2RlR1BSLCBUcnVzdGVkSW1tMzIoSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpJbmRleGVkTW9k
ZSB8IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6R2VuZXJpY01vZGUpKSk7CiAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgaWYgKCFtX3N0YXRlLmZvck5vZGUoYmFzZUVkZ2UpLmlzVHlw
ZShTcGVjQ2VsbCkpCi0gICAgICAgICAgICAgICAgICAgIG5vdEZhc3ROYW1lZENhc2VzLmFwcGVu
ZChtX2ppdC5icmFuY2hJZk5vdENlbGwoYmFzZVJlZ3MpKTsKKyAgICAgICAgICAgICAgICAgICAg
Z2VuZXJpY09yUmVjb3ZlckNhc2UuYXBwZW5kKG1faml0LmJyYW5jaElmTm90Q2VsbChiYXNlUmVn
cykpOwogCiAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhlIHN0cnVjdHVyZQogICAgICAgICAg
ICAgICAgIC8vIEZJWE1FOiBJZiB3ZSBrbm93IHRoZXJlJ3Mgb25seSBvbmUgc3RydWN0dXJlIGZv
ciBiYXNlIHdlIGNhbiBqdXN0IGVtYmVkIGl0IGhlcmUuCkBAIC0xNTkyMCwxMiArMTU5MjMsNyBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlRW51bWVyYXRvckdlCiAgICAgICAgICAgICAg
ICAgICAgIHNjcmF0Y2hHUFIsCiAgICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzKAogICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYXRvckdQUiwgSlNQcm9wZXJ0
eU5hbWVFbnVtZXJhdG9yOjpjYWNoZWRTdHJ1Y3R1cmVJRE9mZnNldCgpKSk7Ci0KLSAgICAgICAg
ICAgICAgICAvLyBGSVhNRTogTWF5YmUgd2Ugc2hvdWxkIGhhdmUgYSBiZXR0ZXIgd2F5IHRvIHJl
cHJlc2VudCBJbmRleGVkK05hbWVkPwotICAgICAgICAgICAgICAgIGlmIChtX2dyYXBoLnZhckFy
Z0NoaWxkKG5vZGUsIDEpLm5vZGUoKSA9PSBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDMpLm5v
ZGUoKSkKLSAgICAgICAgICAgICAgICAgICAgYmFkU3RydWN0dXJlU2xvd1BhdGggPSBiYWRTdHJ1
Y3R1cmU7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBub3RGYXN0
TmFtZWRDYXNlcy5hcHBlbmQoYmFkU3RydWN0dXJlKTsKKyAgICAgICAgICAgICAgICBnZW5lcmlj
T3JSZWNvdmVyQ2FzZS5hcHBlbmQoYmFkU3RydWN0dXJlKTsKIAogICAgICAgICAgICAgICAgIC8v
IENvbXB1dGUgdGhlIG9mZnNldAogICAgICAgICAgICAgICAgIC8vIElmIGluZGV4IGlzIGxlc3Mg
dGhhbiB0aGUgZW51bWVyYXRvcidzIGNhY2hlZCBpbmxpbmUgc3RvcmFnZSwgdGhlbiBpdCdzIGFu
IGlubGluZSBhY2Nlc3MKQEAgLTE1OTU3LDExICsxNTk1NSwxMSBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlRW51bWVyYXRvckdlCiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIGtpbmRh
IGhhY2t5Li4uCiAgICAgICAgIEFTU0VSVChnZW5lcmF0aW9uSW5mbyhub2RlKS5qc1ZhbHVlUmVn
cygpID09IHJlc3VsdFJlZ3MgJiYgZ2VuZXJhdGlvbkluZm8obm9kZSkucmVnaXN0ZXJGb3JtYXQo
KSA9PSBEYXRhRm9ybWF0SlMpOwogCi0gICAgICAgIGlmIChiYWRTdHJ1Y3R1cmVTbG93UGF0aC5p
c1NldCgpKSB7CisgICAgICAgIGlmICghcmVjb3ZlckdlbmVyaWNDYXNlLmVtcHR5KCkpIHsKICAg
ICAgICAgICAgIGlmIChiYXNlUmVncy50YWdHUFIoKSA9PSBJbnZhbGlkR1BSUmVnKQotICAgICAg
ICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbChiYWRTdHJ1Y3R1cmVT
bG93UGF0aCwgdGhpcywgb3BlcmF0aW9uRW51bWVyYXRvclJlY292ZXJOYW1lQW5kR2V0QnlWYWws
IHJlc3VsdFJlZ3MsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGgu
Z2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBDQ2FsbEhlbHBlcnM6OkNl
bGxWYWx1ZShiYXNlUmVncy5wYXlsb2FkR1BSKCkpLCBpbmRleEdQUiwgZW51bWVyYXRvckdQUikp
OworICAgICAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbChyZWNv
dmVyR2VuZXJpY0Nhc2UsIHRoaXMsIG9wZXJhdGlvbkVudW1lcmF0b3JSZWNvdmVyTmFtZUFuZEdl
dEJ5VmFsLCByZXN1bHRSZWdzLCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBt
X2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgQ0NhbGxIZWxw
ZXJzOjpDZWxsVmFsdWUoYmFzZVJlZ3MucGF5bG9hZEdQUigpKSwgaW5kZXhHUFIsIGVudW1lcmF0
b3JHUFIpKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBhZGRTbG93UGF0aEdl
bmVyYXRvcihzbG93UGF0aENhbGwoYmFkU3RydWN0dXJlU2xvd1BhdGgsIHRoaXMsIG9wZXJhdGlv
bkVudW1lcmF0b3JSZWNvdmVyTmFtZUFuZEdldEJ5VmFsLCByZXN1bHRSZWdzLCBUcnVzdGVkSW1t
UHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5v
cmlnaW4uc2VtYW50aWMpKSwgYmFzZVJlZ3MsIGluZGV4R1BSLCBlbnVtZXJhdG9yR1BSKSk7Cisg
ICAgICAgICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKHJlY292ZXJH
ZW5lcmljQ2FzZSwgdGhpcywgb3BlcmF0aW9uRW51bWVyYXRvclJlY292ZXJOYW1lQW5kR2V0QnlW
YWwsIHJlc3VsdFJlZ3MsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3Jh
cGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBiYXNlUmVncywgaW5k
ZXhHUFIsIGVudW1lcmF0b3JHUFIpKTsKICAgICAgICAgfQogCiAgICAgICAgIGRvbmVDYXNlcy5s
aW5rKCZtX2ppdCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dl
ckRGR1RvQjMuY3BwCShyZXZpc2lvbiAyODUxMTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNjgxLDYgKzEzNjgx
LDE0IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgTEJhc2ljQmxvY2sgb3V0
T2ZMaW5lTG9hZEJsb2NrID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgTEJhc2ljQmxvY2sg
Z2VuZXJpY0lDQmxvY2sgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICBMQmFzaWNCbG9jayBj
b250aW51YXRpb24gPSBtX291dC5uZXdCbG9jaygpOworICAgICAgICBMQmFzaWNCbG9jayBnZW5l
cmljT3JSZWNvdmVyOworCisgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIG5vdCB0aGUgY2xlYW5l
c3Qgd2F5IHRvIHNheSB3ZSdyZSB1c2luZyBJbmRleGVkTW9kZStPd25TdHJ1Y3R1cmVNb2RlIG1v
ZGUuIAorICAgICAgICBib29sIGluZGV4ZWRBbmRPd25TdHJ1Y3R1cmVNb2RlID0gaW5kZXhFZGdl
Lm5vZGUoKSA9PSBwcm9wZXJ0eU5hbWVFZGdlLm5vZGUoKTsKKyAgICAgICAgaWYgKGluZGV4ZWRB
bmRPd25TdHJ1Y3R1cmVNb2RlKQorICAgICAgICAgICAgZ2VuZXJpY09yUmVjb3ZlciA9IG1fb3V0
Lm5ld0Jsb2NrKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGdlbmVyaWNPclJlY292ZXIg
PSBnZW5lcmljSUNCbG9jazsKIAogICAgICAgICBWZWN0b3I8VmFsdWVGcm9tQmxvY2ssIDQ+IHJl
c3VsdHM7CiAKQEAgLTEzNjg4LDcgKzEzNjk2LDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VO
RAogICAgICAgICBtX291dC5icmFuY2goaXNOb3ROYW1lZCwgdW5zdXJlKGdlbmVyaWNJQ0Jsb2Nr
KSwgdW5zdXJlKGNoZWNrSXNDZWxsQmxvY2spKTsKIAogICAgICAgICBtX291dC5hcHBlbmRUbyhj
aGVja0lzQ2VsbEJsb2NrKTsKLSAgICAgICAgbV9vdXQuYnJhbmNoKGlzQ2VsbChiYXNlLCBwcm92
ZW5UeXBlKGJhc2VFZGdlKSksIHVzdWFsbHkoY2hlY2tTdHJ1Y3R1cmVCbG9jayksIHJhcmVseShn
ZW5lcmljSUNCbG9jaykpOworICAgICAgICBtX291dC5icmFuY2goaXNDZWxsKGJhc2UsIHByb3Zl
blR5cGUoYmFzZUVkZ2UpKSwgdXN1YWxseShjaGVja1N0cnVjdHVyZUJsb2NrKSwgcmFyZWx5KGdl
bmVyaWNPclJlY292ZXIpKTsKIAogICAgICAgICBtX291dC5hcHBlbmRUbyhjaGVja1N0cnVjdHVy
ZUJsb2NrKTsKICAgICAgICAgTFZhbHVlIHN0cnVjdHVyZUlEOwpAQCAtMTM3MDAsMTUgKzEzNzA4
LDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogCiAgICAgICAgIExWYWx1ZSBoYXNFbnVt
ZXJhdG9yU3RydWN0dXJlID0gbV9vdXQuZXF1YWwoc3RydWN0dXJlSUQsIG1fb3V0LmxvYWQzMihl
bnVtZXJhdG9yLCBtX2hlYXBzLkpTUHJvcGVydHlOYW1lRW51bWVyYXRvcl9jYWNoZWRTdHJ1Y3R1
cmVJRCkpOwogCi0gICAgICAgIGlmIChpbmRleEVkZ2Uubm9kZSgpID09IHByb3BlcnR5TmFtZUVk
Z2Uubm9kZSgpKSB7Ci0gICAgICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0g
bV9ncmFwaC5nbG9iYWxPYmplY3RGb3IobV9vcmlnaW4uc2VtYW50aWMpOwotICAgICAgICAgICAg
TEJhc2ljQmxvY2sgYmFkU3RydWN0dXJlU2xvd1BhdGggPSBtX291dC5uZXdCbG9jaygpOwotICAg
ICAgICAgICAgbV9vdXQuYnJhbmNoKGhhc0VudW1lcmF0b3JTdHJ1Y3R1cmUsIHVzdWFsbHkoY2hl
Y2tJbmxpbmVPck91dE9mTGluZUJsb2NrKSwgcmFyZWx5KGdlbmVyaWNJQ0Jsb2NrKSk7Ci0KLSAg
ICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGJhZFN0cnVjdHVyZVNsb3dQYXRoKTsKLSAgICAgICAg
ICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcih2bUNhbGwoSW50NjQsIG9wZXJhdGlvbkVu
dW1lcmF0b3JSZWNvdmVyTmFtZUFuZEdldEJ5VmFsLCB3ZWFrUG9pbnRlcihnbG9iYWxPYmplY3Qp
LCBiYXNlLCBpbmRleCwgZW51bWVyYXRvcikpKTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAg
ICBtX291dC5icmFuY2goaGFzRW51bWVyYXRvclN0cnVjdHVyZSwgdXN1YWxseShjaGVja0lubGlu
ZU9yT3V0T2ZMaW5lQmxvY2spLCByYXJlbHkoZ2VuZXJpY0lDQmxvY2spKTsKKyAgICAgICAgbV9v
dXQuYnJhbmNoKGhhc0VudW1lcmF0b3JTdHJ1Y3R1cmUsIHVzdWFsbHkoY2hlY2tJbmxpbmVPck91
dE9mTGluZUJsb2NrKSwgcmFyZWx5KGdlbmVyaWNPclJlY292ZXIpKTsKIAogICAgICAgICBtX291
dC5hcHBlbmRUbyhjaGVja0lubGluZU9yT3V0T2ZMaW5lQmxvY2spOwogICAgICAgICBMVmFsdWUg
aW5saW5lQ2FwYWNpdHkgPSBudWxscHRyOwpAQCAtMTM3NTMsNiArMTM3NTMsMTIgQEAgSUdOT1JF
X0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICByZXN1bHRzLmFwcGVuZChtX291dC5hbmNob3Io
Z2VuZXJpY1Jlc3VsdCkpOwogICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CiAKKyAg
ICAgICAgaWYgKGluZGV4ZWRBbmRPd25TdHJ1Y3R1cmVNb2RlKSB7CisgICAgICAgICAgICBtX291
dC5hcHBlbmRUbyhnZW5lcmljT3JSZWNvdmVyKTsKKyAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5k
KG1fb3V0LmFuY2hvcih2bUNhbGwoSW50NjQsIG9wZXJhdGlvbkVudW1lcmF0b3JSZWNvdmVyTmFt
ZUFuZEdldEJ5VmFsLCB3ZWFrUG9pbnRlcihtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihtX29yaWdp
bi5zZW1hbnRpYykpLCBiYXNlLCBpbmRleCwgZW51bWVyYXRvcikpKTsKKyAgICAgICAgICAgIG1f
b3V0Lmp1bXAoY29udGludWF0aW9uKTsKKyAgICAgICAgfQorCiAgICAgICAgIG1fb3V0LmFwcGVu
ZFRvKGNvbnRpbnVhdGlvbik7CiAgICAgICAgIEFTU0VSVChyZXN1bHRzLnNpemUoKSk7CiAgICAg
ICAgIExWYWx1ZSByZXN1bHQgPSBtX291dC5waGkoSW50NjQsIHJlc3VsdHMpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>