<?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>137242</bug_id>
          
          <creation_ts>2014-09-29 19:48:39 -0700</creation_ts>
          <short_desc>DFG SSA should use PutLocal/KillLocal instead of SetLocal to communicate what is flushed to the stack and when</short_desc>
          <delta_ts>2014-10-01 13:12:53 -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>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>137307</blocked>
    
    <blocked>137168</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenb</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1038130</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-09-29 19:48:39 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038132</commentid>
    <comment_count>1</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-09-29 19:49:47 -0700</bug_when>
    <thetext>Probably the best way to solve this problem is to have DFG SSA use some name other than &quot;SetLocal&quot; for this node.  That way the SSA equivalent of the SetLocal NodeType can have NodeMustGenerate as a default flag.

We could call this new node PutLocal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038440</commentid>
    <comment_count>2</comment_count>
      <attachid>238988</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-09-30 20:20:29 -0700</bug_when>
    <thetext>Created attachment 238988
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038604</commentid>
    <comment_count>3</comment_count>
      <attachid>238988</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-10-01 11:58:57 -0700</bug_when>
    <thetext>Comment on attachment 238988
the patch

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:36
&gt; +        - PutLocal means that that a value is to be stored to the stack. It makes a flush available.
&gt; +        - KillLocal means that the value stored to the stack is no longer available for the purposes
&gt; +          of OSR (i.e. it no longer accurately corresponds to what that actual bytecode variable
&gt; +          would have been, so you have to fall back on node availability).

I wonder if we can get the flush logic into the names of these nodes.

FlushLocal
KillFlushLocal

?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038622</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-10-01 13:07:53 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 238988 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=238988&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:36
&gt; &gt; +        - PutLocal means that that a value is to be stored to the stack. It makes a flush available.
&gt; &gt; +        - KillLocal means that the value stored to the stack is no longer available for the purposes
&gt; &gt; +          of OSR (i.e. it no longer accurately corresponds to what that actual bytecode variable
&gt; &gt; +          would have been, so you have to fall back on node availability).
&gt; 
&gt; I wonder if we can get the flush logic into the names of these nodes.
&gt; 
&gt; FlushLocal
&gt; KillFlushLocal
&gt; 
&gt; ?

FlushLocal is probably better than PutLocal

KillFlushLocal is a mouthful!

I&apos;ll land this patch as-is but I&apos;ve filed:
https://bugs.webkit.org/show_bug.cgi?id=137307</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038623</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-10-01 13:12:53 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/174165</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238988</attachid>
            <date>2014-09-30 20:20:29 -0700</date>
            <delta_ts>2014-10-01 11:58:57 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>20525</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc0MTM5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDgyIEBA
CisyMDE0LTA5LTMwICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIFNTQSBzaG91bGQgdXNlIFB1dExvY2FsL0tpbGxMb2NhbCBpbnN0ZWFkIG9mIFNldExvY2Fs
IHRvIGNvbW11bmljYXRlIHdoYXQgaXMgZmx1c2hlZCB0byB0aGUgc3RhY2sgYW5kIHdoZW4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzI0MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgT1NS
IGF2YWlsYWJpbGl0eSBoYXMgdG8gZG8gd2l0aCB0ZWxsaW5nIHlvdSB0aGUgdmFyaW91cyB3YXlz
IHRoYXQgeW91IGNvdWxkIGdvIGFib3V0IGdldHRpbmcKKyAgICAgICAgdGhlIHZhbHVlIG9mIGEg
Ynl0ZWNvZGUgdmFyaWFibGUuIEl0IGNhbiBnaXZlIHlvdSB0d28gb3B0aW9uczogbm9kZSBhdmFp
bGFiaWxpdHkgbWVhbnMgdGhhdAorICAgICAgICB0aGVyZSBpcyBhIG5vZGUgaW4gdGhlIERGRyBJ
UiB0aGF0IGhhcyB0aGUgcmlnaHQgdmFsdWUsIGFuZCBmbHVzaCBhdmFpbGFiaWxpdHkgdGVsbHMg
eW91CisgICAgICAgIHRoYXQgdGhlIHZhbHVlIHdhcyBhbHJlYWR5IHN0b3JlZCB0byB0aGUgc3Rh
Y2suIFRoZSBjbGllbnRzIG9mIE9TUiBhdmFpbGFiaWxpdHkgd291bGQKKyAgICAgICAgdHlwaWNh
bGx5IHByZWZlciBmbHVzaCBvdmVyIG5vZGUgYXZhaWxhYmlsaXR5LgorICAgICAgICAKKyAgICAg
ICAgUHJldmlvdXNseSBPU1IgYXZhaWxhYmlsaXR5IHdhcyBhZmZlY3RlZCB0aHVzbHkgYnkgdGhl
IHZhcmlvdXMgbG9jYWwtcmVsYXRlZCBub2RlczogU2V0TG9jYWwKKyAgICAgICAgc2V0IGJvdGgg
dGhlIG5vZGUgYW5kIGZsdXNoIGF2YWlsYWJpbGl0eSwgTW92SGludCBzZXQgbm9kZSBhdmFpbGFi
aWxpdHkgYW5kIGNsZWFyZWQgZmx1c2gKKyAgICAgICAgYXZhaWxhYmlsaXR5LCBHZXRBcmd1bWVu
dCBzZXQgYm90aCwgYW5kIFpvbWJpZUhpbnQgY2xlYXJlZCBib3RoLgorICAgICAgICAKKyAgICAg
ICAgQSBNb3ZIaW50IGNvdWxkIGJlIHR1cm5lZCBpbnRvIGEgWm9tYmllSGludCBpZiBpdHMgc291
cmNlIHZhbHVlIHdhcyBEQ0VkLgorICAgICAgICAKKyAgICAgICAgVGhlIGZhY3QgdGhhdCBlYWNo
IG5vZGUgYWZmZWN0ZWQgYm90aCBub2RlIGFuZCBmbHVzaCBhdmFpbGFiaWxpdHkgY2F1c2VkIHdl
aXJkbmVzcy4gRm9yCisgICAgICAgIGV4YW1wbGUgaXQgbWVhbnQgdGhhdCB3ZSBjb3VsZCBub3Qg
aW5zZXJ0IE1vdkhpbnRzIGluIGFyZWFzIG9mIHRoZSBDRkcgd2hlcmUgYSBTZXRMb2NhbCdzCisg
ICAgICAgIHZhcmlhYmxlIHdhcyBzdGlsbCBsaXZlLCBiZWNhdXNlIHRoZW4gdGhvc2UgcGFydHMg
b2YgdGhlIGNvZGUgd291bGQgZm9yZ2V0IHRoYXQgdGhleSBoYWQgYW4KKyAgICAgICAgYXZhaWxh
YmlsaXR5IGZsdXNoLiBUaGlzIG1lYW50IHRoYXQgaWYgYSBmbHVzaCB3YXMgYXZhaWxhYmxlLCB3
ZSB3b3VsZG4ndCBpbnNlcnQgTW92SGludHMsCisgICAgICAgIGFuZCBzbyB3ZSB3b3VsZCBmb3Jn
ZXQgdGhhdCBhIG5vZGUgd2FzIGluIGZhY3QgYXZhaWxhYmxlLiBUaGlzIGtpbmQgb2YgImVpdGhl
ci1vciIgcGlja2luZworICAgICAgICB3YXMgbm90IG9ubHkgaGFja2lzaCBidXQgaXQgbGVkIHRv
IGludGVyZXN0aW5nIHByb2JsZW1zIGZvciBJUiB0cmFuc2Zvcm1hdGlvbjogZm9yIGV4YW1wbGUK
KyAgICAgICAgaWYgeW91IHRyaWVkIHRvIGRvIGFueSBraW5kIG9mIGNvZGUgbW90aW9uIG9uIFNl
dExvY2FscywgeW91IGhhZCB0byBiZSBzdXBlciBjYXJlZnVsIGJlY2F1c2UKKyAgICAgICAgeW91
IG1pZ2h0IHZpb2xhdGUgdGhlIHJ1bGUgdGhhdCAiTW92SGludHMgbXVzdCBleGlzdCBmb3IgYSBs
aXZlIGxvY2FsIGlmIGEgZmx1c2ggaXMKKyAgICAgICAgdW5hdmFpbGFibGUiLgorICAgICAgICAK
KyAgICAgICAgVGhlIHJpZ2h0IHRoaW5nIHRvIGRvIGlzIHRvIGhhdmUgaW5kZXBlbmRlbnQgbm9k
ZXMgZm9yIGZsdXNoaW5nIGFuZCBtYWtpbmcgbm9kZXMgYXZhaWxhYmxlLgorICAgICAgICBUaGV5
IHNob3VsZG4ndCBpbnRlcmFjdCB3aXRoIGVhY2ggb3RoZXIuIFRoaXMgcGF0Y2ggYWNjb21wbGlz
aGVzIHRoaXM6CisgICAgICAgIAorICAgICAgICAtIFB1dExvY2FsIG1lYW5zIHRoYXQgdGhhdCBh
IHZhbHVlIGlzIHRvIGJlIHN0b3JlZCB0byB0aGUgc3RhY2suIEl0IG1ha2VzIGEgZmx1c2ggYXZh
aWxhYmxlLgorICAgICAgICAtIEtpbGxMb2NhbCBtZWFucyB0aGF0IHRoZSB2YWx1ZSBzdG9yZWQg
dG8gdGhlIHN0YWNrIGlzIG5vIGxvbmdlciBhdmFpbGFibGUgZm9yIHRoZSBwdXJwb3NlcworICAg
ICAgICAgIG9mIE9TUiAoaS5lLiBpdCBubyBsb25nZXIgYWNjdXJhdGVseSBjb3JyZXNwb25kcyB0
byB3aGF0IHRoYXQgYWN0dWFsIGJ5dGVjb2RlIHZhcmlhYmxlCisgICAgICAgICAgd291bGQgaGF2
ZSBiZWVuLCBzbyB5b3UgaGF2ZSB0byBmYWxsIGJhY2sgb24gbm9kZSBhdmFpbGFiaWxpdHkpLgor
ICAgICAgICAtIE1vdkhpbnQgbWVhbnMgdGhhdCBhIG5vZGUgaXMgYXZhaWxhYmxlLiBJdCBoYXMg
bm8gZWZmZWN0IG9uIGZsdXNoIGF2YWlsYWJpbGl0eS4KKyAgICAgICAgLSBab21iaWVIaW50IG1l
YW5zIHRoYXQgYSBub2RlIGlzIG5vdCBhdmFpbGFibGUuIEl0IGhhcyBubyBlZmZlY3Qgb24gZmx1
c2ggYXZhaWxhYmlsaXR5LgorICAgICAgICAKKyAgICAgICAgVGhpcyBtZWFucyB0aGF0IHdlIHdp
bGwgc2VlIGEgbG90IG9mIEtpbGxMb2NhbHMgYW5kIE1vdkhpbnRzIHJpZ2h0IG5leHQgdG8gZWFj
aCBvdGhlci4gSXQncworICAgICAgICBhIGJpdCB2ZXJib3NlLCBidXQgYXQgbGVhc3QgaXQncyBw
cmVjaXNlLgorCisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6
CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlw
ZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQXZhaWxhYmlsaXR5Lmg6Cisg
ICAgICAgIChKU0M6OkRGRzo6QXZhaWxhYmlsaXR5OjpzZXRGbHVzaCk6CisgICAgICAgIChKU0M6
OkRGRzo6QXZhaWxhYmlsaXR5OjpzZXROb2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpBdmFpbGFi
aWxpdHk6OnNldE5vZGVVbmF2YWlsYWJsZSk6CisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUu
aDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcvREZHRG9l
c0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdG
aXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUp
OgorICAgICAgICAqIGRmZy9ERkdOb2RlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpo
YXNWYXJpYWJsZUFjY2Vzc0RhdGEpOgorICAgICAgICAqIGRmZy9ERkdOb2RlLmg6CisgICAgICAg
IChKU0M6OkRGRzo6Tm9kZTo6aGFzVW5saW5rZWRMb2NhbCk6CisgICAgICAgIChKU0M6OkRGRzo6
Tm9kZTo6d2lsbEhhdmVDb2RlR2VuT3JPU1IpOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5o
OgorICAgICAgICAqIGRmZy9ERkdPU1JBdmFpbGFiaWxpdHlBbmFseXNpc1BoYXNlLmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpMb2NhbE9TUkF2YWlsYWJpbGl0eUNhbGN1bGF0b3I6OmV4ZWN1dGVO
b2RlKToKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OlByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlOjpwcm9wYWdhdGUp
OgorICAgICAgICAqIGRmZy9ERkdTU0FDb252ZXJzaW9uUGhhc2UuY3BwOgorICAgICAgICAoSlND
OjpERkc6OlNTQUNvbnZlcnNpb25QaGFzZTo6cnVuKToKKyAgICAgICAgKiBkZmcvREZHU2FmZVRv
RXhlY3V0ZS5oOgorICAgICAgICAoSlNDOjpERkc6OnNhZmVUb0V4ZWN1dGUpOgorICAgICAgICAq
IGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1N0YWNrTGF5b3V0UGhhc2UuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OlN0YWNrTGF5b3V0UGhhc2U6OnJ1bik6CisgICAgICAgICog
ZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6
CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcDoKKyAgICAgICAgKEpTQzo6RlRM
OjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2Vy
REZHVG9MTFZNOjpjb21waWxlUHV0TG9jYWwpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZH
VG9MTFZNOjpjb21waWxlU2V0TG9jYWwpOiBEZWxldGVkLgorCiAyMDE0LTA5LTMwICBNYXJrIExh
bSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBMYWJlbCBzb21lIGFzc2VydHMgYXMg
aGF2aW5nIHNlY3VyaXR5IGltcGxpY2F0aW9ucy4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgJKHJl
dmlzaW9uIDE3NDEzOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJ
bnRlcnByZXRlcklubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTgzLDcgKzE4Myw4IEBAIGJv
b2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHkKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogICAgICAgICAKLSAgICBjYXNlIFNldExvY2FsOiB7CisgICAgY2FzZSBTZXRMb2NhbDoK
KyAgICBjYXNlIFB1dExvY2FsOiB7CiAgICAgICAgIG1fc3RhdGUudmFyaWFibGVzKCkub3BlcmFu
ZChub2RlLT5sb2NhbCgpLm9mZnNldCgpKSA9IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpOwogICAg
ICAgICBicmVhazsKICAgICB9CkBAIC0xOTUsNiArMTk2LDEyIEBAIGJvb2wgQWJzdHJhY3RJbnRl
cnByZXRlcjxBYnN0cmFjdFN0YXRlVHkKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgICAgICAK
KyAgICBjYXNlIEtpbGxMb2NhbDogeworICAgICAgICAvLyBUaGlzIGlzIGp1c3QgYSBoaW50IHRl
bGxpbmcgdXMgdGhhdCB0aGUgT1NSIHN0YXRlIG9mIHRoZSBsb2NhbCBpcyBubyBsb25nZXIgaW5z
aWRlIHRoZQorICAgICAgICAvLyBmbHVzaGVkIGRhdGEuCisgICAgICAgIGJyZWFrOworICAgIH0K
KyAgICAgICAgCiAgICAgY2FzZSBTZXRBcmd1bWVudDoKICAgICAgICAgLy8gQXNzZXJ0IHRoYXQg
dGhlIHN0YXRlIG9mIGFyZ3VtZW50cyBoYXMgYmVlbiBzZXQuCiAgICAgICAgIEFTU0VSVCghbV9z
dGF0ZS5ibG9jaygpLT52YWx1ZXNBdEhlYWQub3BlcmFuZChub2RlLT5sb2NhbCgpKS5pc0NsZWFy
KCkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBdmFpbGFiaWxpdHkuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0F2YWlsYWJpbGl0eS5o
CShyZXZpc2lvbiAxNzQxMzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0F2YWls
YWJpbGl0eS5oCSh3b3JraW5nIGNvcHkpCkBAIC04MSw2ICs4MSwyMSBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiB3aXRoTm9kZSh1bmF2YWlsYWJsZU1hcmtlcigpKTsKICAgICB9CiAgICAgCisg
ICAgdm9pZCBzZXRGbHVzaChGbHVzaGVkQXQgZmx1c2hlZEF0KQorICAgIHsKKyAgICAgICAgbV9m
bHVzaGVkQXQgPSBmbHVzaGVkQXQ7CisgICAgfQorICAgIAorICAgIHZvaWQgc2V0Tm9kZShOb2Rl
KiBub2RlKQorICAgIHsKKyAgICAgICAgbV9ub2RlID0gbm9kZTsKKyAgICB9CisgICAgCisgICAg
dm9pZCBzZXROb2RlVW5hdmFpbGFibGUoKQorICAgIHsKKyAgICAgICAgbV9ub2RlID0gdW5hdmFp
bGFibGVNYXJrZXIoKTsKKyAgICB9CisgICAgCiAgICAgYm9vbCBub2RlSXNVbmRlY2lkZWQoKSBj
b25zdCB7IHJldHVybiAhbV9ub2RlOyB9CiAgICAgYm9vbCBub2RlSXNVbmF2YWlsYWJsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fbm9kZSA9PSB1bmF2YWlsYWJsZU1hcmtlcigpOyB9CiAgICAgCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAkocmV2aXNpb24gMTc0
MTM4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI1Miw2ICsyNTIsNyBAQCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBo
LCBOb2RlKiBub2RlCiAgICAgICAgICAKICAgICBjYXNlIE1vdkhpbnQ6CiAgICAgY2FzZSBab21i
aWVIaW50OgorICAgIGNhc2UgS2lsbExvY2FsOgogICAgIGNhc2UgVXBzaWxvbjoKICAgICBjYXNl
IFBoaToKICAgICBjYXNlIFBoYW50b21Mb2NhbDoKQEAgLTM5NSw2ICszOTYsNyBAQCB2b2lkIGNs
b2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlCiAgICAgICAgIHJldHVybjsKICAgICAg
ICAgCiAgICAgY2FzZSBTZXRMb2NhbDoKKyAgICBjYXNlIFB1dExvY2FsOgogICAgICAgICB3cml0
ZShBYnN0cmFjdEhlYXAoVmFyaWFibGVzLCBub2RlLT5sb2NhbCgpKSk7CiAgICAgICAgIGRlZihI
ZWFwTG9jYXRpb24oVmFyaWFibGVMb2MsIEFic3RyYWN0SGVhcChWYXJpYWJsZXMsIG5vZGUtPmxv
Y2FsKCkpKSwgbm9kZS0+Y2hpbGQxKCkubm9kZSgpKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAkocmV2aXNpb24gMTc0MTM4KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMDMsNiArMjAzLDggQEAgYm9vbCBkb2VzR0MoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2Rl
KQogICAgIGNhc2UgUHV0QnlPZmZzZXRIaW50OgogICAgIGNhc2UgQ2hlY2tTdHJ1Y3R1cmVJbW1l
ZGlhdGU6CiAgICAgY2FzZSBQdXRTdHJ1Y3R1cmVIaW50OgorICAgIGNhc2UgUHV0TG9jYWw6Cisg
ICAgY2FzZSBLaWxsTG9jYWw6CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGNhc2UgQ3Jl
YXRlQWN0aXZhdGlvbjoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQ
aGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1
cFBoYXNlLmNwcAkocmV2aXNpb24gMTc0MTM4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdGaXh1cFBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAxOCw2ICsxMDE4LDggQEAg
cHJpdmF0ZToKICAgICAgICAgY2FzZSBDaGVja1N0cnVjdHVyZUltbWVkaWF0ZToKICAgICAgICAg
Y2FzZSBQdXRTdHJ1Y3R1cmVIaW50OgogICAgICAgICBjYXNlIE1hdGVyaWFsaXplTmV3T2JqZWN0
OgorICAgICAgICBjYXNlIFB1dExvY2FsOgorICAgICAgICBjYXNlIEtpbGxMb2NhbDoKICAgICAg
ICAgICAgIC8vIFRoZXNlIGFyZSBqdXN0IG5vZGVzIHRoYXQgd2UgZG9uJ3QgY3VycmVudGx5IGV4
cGVjdCB0byBzZWUgZHVyaW5nIGZpeHVwLgogICAgICAgICAgICAgLy8gSWYgd2UgZXZlciB3YW50
ZWQgdG8gaW5zZXJ0IHRoZW0gcHJpb3IgdG8gZml4dXAsIHRoZW4gd2UganVzdCBoYXZlIHRvIGNy
ZWF0ZQogICAgICAgICAgICAgLy8gZml4dXAgcnVsZXMgZm9yIHRoZW0uCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHTm9kZS5jcHAJKHJldmlzaW9uIDE3NDEzOCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc5LDYgKzc5
LDcgQEAgYm9vbCBOb2RlOjpoYXNWYXJpYWJsZUFjY2Vzc0RhdGEoR3JhcGgmIAogICAgIGNhc2Ug
U2V0QXJndW1lbnQ6CiAgICAgY2FzZSBGbHVzaDoKICAgICBjYXNlIFBoYW50b21Mb2NhbDoKKyAg
ICBjYXNlIFB1dExvY2FsOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgogICAg
ICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAko
cmV2aXNpb24gMTc0MTM4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTY4Myw2ICs2ODMsNyBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAg
IGNhc2UgRXh0cmFjdE9TUkVudHJ5TG9jYWw6CiAgICAgICAgIGNhc2UgTW92SGludDoKICAgICAg
ICAgY2FzZSBab21iaWVIaW50OgorICAgICAgICBjYXNlIEtpbGxMb2NhbDoKICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMTM5MCw2ICsxMzkxLDggQEAgc3RydWN0IE5vZGUgewogICAgIHsKICAgICAgICAgc3dp
dGNoIChvcCgpKSB7CiAgICAgICAgIGNhc2UgU2V0TG9jYWw6CisgICAgICAgIGNhc2UgUHV0TG9j
YWw6CisgICAgICAgIGNhc2UgS2lsbExvY2FsOgogICAgICAgICBjYXNlIE1vdkhpbnQ6CiAgICAg
ICAgIGNhc2UgWm9tYmllSGludDoKICAgICAgICAgY2FzZSBQaGFudG9tQXJndW1lbnRzOgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAkocmV2aXNpb24gMTc0MTM4
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC01Niw2ICs1Niw4IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICAg
ICAvKiBWYXJpYWJsZUFjY2Vzc0RhdGEsIGFuZCB0aHVzIHdpbGwgc2hhcmUgcHJlZGljdGlvbnMu
ICovXAogICAgIG1hY3JvKEdldExvY2FsLCBOb2RlUmVzdWx0SlMpIFwKICAgICBtYWNybyhTZXRM
b2NhbCwgMCkgXAorICAgIG1hY3JvKFB1dExvY2FsLCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAg
bWFjcm8oS2lsbExvY2FsLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oTW92SGludCwg
MCkgXAogICAgIG1hY3JvKFpvbWJpZUhpbnQsIDApIFwKICAgICBtYWNybyhHZXRBcmd1bWVudCwg
Tm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPU1JBdmFpbGFiaWxpdHlBbmFseXNpc1BoYXNlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkF2YWlsYWJpbGl0eUFuYWx5c2lz
UGhhc2UuY3BwCShyZXZpc2lvbiAxNzQxMzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR09TUkF2YWlsYWJpbGl0eUFuYWx5c2lzUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MjcsMTAgKzEyNywxNCBAQCB2b2lkIExvY2FsT1NSQXZhaWxhYmlsaXR5Q2FsY3VsYXRvcjo6ZW5k
CiB2b2lkIExvY2FsT1NSQXZhaWxhYmlsaXR5Q2FsY3VsYXRvcjo6ZXhlY3V0ZU5vZGUoTm9kZSog
bm9kZSkKIHsKICAgICBzd2l0Y2ggKG5vZGUtPm9wKCkpIHsKLSAgICBjYXNlIFNldExvY2FsOiB7
CisgICAgY2FzZSBQdXRMb2NhbDogewogICAgICAgICBWYXJpYWJsZUFjY2Vzc0RhdGEqIHZhcmlh
YmxlID0gbm9kZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCk7Ci0gICAgICAgIG1fYXZhaWxhYmlsaXR5
Lm1fbG9jYWxzLm9wZXJhbmQodmFyaWFibGUtPmxvY2FsKCkpID0KLSAgICAgICAgICAgIEF2YWls
YWJpbGl0eShub2RlLT5jaGlsZDEoKS5ub2RlKCksIHZhcmlhYmxlLT5mbHVzaGVkQXQoKSk7Cisg
ICAgICAgIG1fYXZhaWxhYmlsaXR5Lm1fbG9jYWxzLm9wZXJhbmQodmFyaWFibGUtPmxvY2FsKCkp
LnNldEZsdXNoKHZhcmlhYmxlLT5mbHVzaGVkQXQoKSk7CisgICAgICAgIGJyZWFrOworICAgIH0K
KyAgICAgICAgCisgICAgY2FzZSBLaWxsTG9jYWw6IHsKKyAgICAgICAgbV9hdmFpbGFiaWxpdHku
bV9sb2NhbHMub3BlcmFuZChub2RlLT51bmxpbmtlZExvY2FsKCkpLnNldEZsdXNoKEZsdXNoZWRB
dChDb25mbGljdGluZ0ZsdXNoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApAQCAtMTQyLDE0
ICsxNDYsMTIgQEAgdm9pZCBMb2NhbE9TUkF2YWlsYWJpbGl0eUNhbGN1bGF0b3I6OmV4ZQogICAg
IH0KIAogICAgIGNhc2UgTW92SGludDogewotICAgICAgICBtX2F2YWlsYWJpbGl0eS5tX2xvY2Fs
cy5vcGVyYW5kKG5vZGUtPnVubGlua2VkTG9jYWwoKSkgPQotICAgICAgICAgICAgQXZhaWxhYmls
aXR5KG5vZGUtPmNoaWxkMSgpLm5vZGUoKSk7CisgICAgICAgIG1fYXZhaWxhYmlsaXR5Lm1fbG9j
YWxzLm9wZXJhbmQobm9kZS0+dW5saW5rZWRMb2NhbCgpKS5zZXROb2RlKG5vZGUtPmNoaWxkMSgp
Lm5vZGUoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIGNhc2UgWm9tYmllSGludDog
ewotICAgICAgICBtX2F2YWlsYWJpbGl0eS5tX2xvY2Fscy5vcGVyYW5kKG5vZGUtPnVubGlua2Vk
TG9jYWwoKSkgPQotICAgICAgICAgICAgQXZhaWxhYmlsaXR5Ojp1bmF2YWlsYWJsZSgpOworICAg
ICAgICBtX2F2YWlsYWJpbGl0eS5tX2xvY2Fscy5vcGVyYW5kKG5vZGUtPnVubGlua2VkTG9jYWwo
KSkuc2V0Tm9kZVVuYXZhaWxhYmxlKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAgICAg
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlv
blBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1By
ZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAkocmV2aXNpb24gMTc0MTM4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTU2NSw3ICs1NjUsOSBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFB1
dEJ5T2Zmc2V0SGludDoKICAgICAgICAgY2FzZSBDaGVja1N0cnVjdHVyZUltbWVkaWF0ZToKICAg
ICAgICAgY2FzZSBQdXRTdHJ1Y3R1cmVIaW50OgotICAgICAgICBjYXNlIE1hdGVyaWFsaXplTmV3
T2JqZWN0OiB7CisgICAgICAgIGNhc2UgTWF0ZXJpYWxpemVOZXdPYmplY3Q6CisgICAgICAgIGNh
c2UgUHV0TG9jYWw6CisgICAgICAgIGNhc2UgS2lsbExvY2FsOiB7CiAgICAgICAgICAgICAvLyBU
aGlzIG5vZGUgc2hvdWxkIG5ldmVyIGJlIHZpc2libGUgYXQgdGhpcyBzdGFnZSBvZiBjb21waWxh
dGlvbi4gSXQgaXMKICAgICAgICAgICAgIC8vIGluc2VydGVkIGJ5IGZpeHVwKCksIHdoaWNoIGZv
bGxvd3MgdGhpcyBwaGFzZS4KICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUNvbnZlcnNpb25QaGFz
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FDb252
ZXJzaW9uUGhhc2UuY3BwCShyZXZpc2lvbiAxNzQxMzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NTQUNvbnZlcnNpb25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4NCwx
MiArMTg0LDE0IEBAIHB1YmxpYzoKICAgICAgICAgLy8gLSBDb252ZXJ0IGFsbCBvZiB0aGUgcHJl
ZXhpc3RpbmcgU1NBIG5vZGVzIChvdGhlciB0aGFuIHRoZSBvbGQgQ1BTIFBoaSBub2RlcykgaW50
byBTU0EKICAgICAgICAgLy8gICBmb3JtIGJ5IHJlcGxhY2luZyBhcyBmb2xsb3dzOgogICAgICAg
ICAvLworICAgICAgICAvLyAgIC0gTW92SGludCBoYXMgS2lsbExvY2FsIHByZXBlbmRlZCB0byBp
dC4KKyAgICAgICAgLy8KICAgICAgICAgLy8gICAtIEdldExvY2FsIG92ZXIgY2FwdHVyZWQgdmFy
aWFibGVzIGxvc2UgdGhlaXIgcGhpcy4KICAgICAgICAgLy8KICAgICAgICAgLy8gICAtIEdldExv
Y2FsIG92ZXIgdW5jYXB0dXJlZCB2YXJpYWJsZXMgZGllIGFuZCBnZXQgcmVwbGFjZWQgd2l0aCBy
ZWZlcmVuY2VzIHRvIHRoZSBub2RlCiAgICAgICAgIC8vICAgICBzcGVjaWZpZWQgYnkgdmFsdWVG
b3JPcGVyYW5kLgogICAgICAgICAvLwotICAgICAgICAvLyAgIC0gU2V0TG9jYWwgZ2V0cyBOb2Rl
TXVzdEdlbmVyYXRlIGlmIGl0J3MgZmx1c2hlZCwgb3IgdHVybnMgaW50byBhIENoZWNrIG90aGVy
d2lzZS4KKyAgICAgICAgLy8gICAtIFNldExvY2FsIHR1cm5zIGludG8gUHV0TG9jYWwgaWYgaXQn
cyBmbHVzaGVkLCBvciB0dXJucyBpbnRvIGEgQ2hlY2sgb3RoZXJ3aXNlLgogICAgICAgICAvLwog
ICAgICAgICAvLyAgIC0gRmx1c2ggbG9zZXMgaXRzIGNoaWxkcmVuIGFuZCB0dXJucyBpbnRvIGEg
UGhhbnRvbS4KICAgICAgICAgLy8KQEAgLTI0OSw0MSArMjUxLDEyIEBAIHB1YmxpYzoKICAgICAg
ICAgICAgIGZvciAoU1NBQ2FsY3VsYXRvcjo6RGVmKiBwaGlEZWYgOiBtX2NhbGN1bGF0b3IucGhp
c0ZvckJsb2NrKGJsb2NrKSkgewogICAgICAgICAgICAgICAgIFZhcmlhYmxlQWNjZXNzRGF0YSog
dmFyaWFibGUgPSBtX3ZhcmlhYmxlRm9yU1NBSW5kZXhbcGhpRGVmLT52YXJpYWJsZSgpLT5pbmRl
eCgpXTsKICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvLyBGaWd1cmUgb3V0IGlm
IHRoZSBsb2NhbCBpcyBtZWFudCB0byBiZSBmbHVzaGVkIGhlcmUuCi0gICAgICAgICAgICAgICAg
Ym9vbCBpc0ZsdXNoZWQgPSAhISgKLSAgICAgICAgICAgICAgICAgICAgYmxvY2stPnZhcmlhYmxl
c0F0SGVhZC5vcGVyYW5kKHZhcmlhYmxlLT5sb2NhbCgpKS0+ZmxhZ3MoKSAmIE5vZGVJc0ZsdXNo
ZWQpOwotICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIG1faW5zZXJ0aW9uU2V0Lmlu
c2VydChwaGlJbnNlcnRpb25Qb2ludCwgcGhpRGVmLT52YWx1ZSgpKTsKICAgICAgICAgICAgICAg
ICB2YWx1ZUZvck9wZXJhbmQub3BlcmFuZCh2YXJpYWJsZS0+bG9jYWwoKSkgPSBwaGlEZWYtPnZh
bHVlKCk7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKGlzRmx1c2hlZCkg
ewotICAgICAgICAgICAgICAgICAgICAvLyBEbyBub3RoaW5nLiBGb3IgbXVsdGlwbGUgcmVhc29u
cy4KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIC8vIFJlYXNvbiAj
MTogSWYgdGhlIGxvY2FsIGlzIGZsdXNoZWQgdGhlbiB3ZSBkb24ndCBuZWVkIHRvIGJvdGhlciB3
aXRoIGEKLSAgICAgICAgICAgICAgICAgICAgLy8gTW92SGludCBzaW5jZSBldmVyeSBwYXRoIHRv
IHRoaXMgcG9pbnQgaW4gdGhlIGNvZGUgd2lsbCBoYXZlIGZsdXNoZWQgdGhlCi0gICAgICAgICAg
ICAgICAgICAgIC8vIGJ5dGVjb2RlIHZhcmlhYmxlIHVzaW5nIGEgU2V0TG9jYWwgYW5kIGhlbmNl
IHRoZSBBdmFpbGFiaWxpdHk6OmZsdXNoZWRBdCgpCi0gICAgICAgICAgICAgICAgICAgIC8vIHdp
bGwgYWdyZWUsIGFuZCB0aGF0IHdpbGwgYmUgc3VmZmljaWVudCBmb3IgZmlndXJpbmcgb3V0IGhv
dyB0byByZWNvdmVyIHRoZQotICAgICAgICAgICAgICAgICAgICAvLyB2YXJpYWJsZSdzIHZhbHVl
LgotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgLy8gUmVhc29uICMy
OiBJZiB3ZSBoYWQgaW5zZXJ0ZWQgYSBNb3ZIaW50IGFuZCB0aGUgUGhpIGZ1bmN0aW9uIGhhZCBk
aWVkCi0gICAgICAgICAgICAgICAgICAgIC8vIChiZWNhdXNlIHRoZSBvbmx5IHVzZXIgb2YgdGhl
IHZhbHVlIHdhcyB0aGUgImZsdXNoIiAtIGkuZS4gc29tZQotICAgICAgICAgICAgICAgICAgICAv
LyBhc3luY2hyb25vdXMgcnVudGltZSB0aGluZ3kpIHRoZW4gdGhlIE1vdkhpbnQgd291bGQgdHVy
biBpbnRvIGEgWm9tYmllSGludCwKLSAgICAgICAgICAgICAgICAgICAgLy8gd2hpY2ggd291bGQg
Zm9vbCB1cyBpbnRvIHRoaW5raW5nIHRoYXQgdGhlIHZhcmlhYmxlIGlzIGRlYWQuIE5vdGUgdGhh
dCB0aGlzCi0gICAgICAgICAgICAgICAgICAgIC8vIHJlYXNvbiBoYXMgYSBsb3QgdG8gZG8gd2l0
aCB0aGUgZmFjdCB0aGF0IEZsdXNoZXMgZG8gbm90IHR1cm4gaW50bwotICAgICAgICAgICAgICAg
ICAgICAvLyBQaGFudG9tcywgYmVjYXVzZSBvdXIgaGFuZGxpbmcgb2YgRmx1c2hlcyBhc3N1bWUg
dGhhdCB3ZSAoMSkgYWx3YXlzIGxlYXZlCi0gICAgICAgICAgICAgICAgICAgIC8vIHRoZSBmbHVz
aGVkIFNldExvY2FscyBhbG9uZSBhbmQgKDIpIE9TUiBhdmFpbGFiaWxpdHkgYW5hbHlzaXMgYWx3
YXlzIHNlZXMKLSAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGF2YWlsYWJsZSBmbHVzaC4gVGhl
IHByZXNlbmNlIG9mIGEgTW92SGludCBvciBab21iaWVIaW50IHdvdWxkIG1ha2UgdGhlCi0gICAg
ICAgICAgICAgICAgICAgIC8vIGZsdXNoIHNlZW0gdW5hdmFpbGFibGUuCi0gICAgICAgICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICAgICAgICAvLyBSZWFzb24gIzM6IElmIHdlIGhhZCBpbnNl
cnRlZCBhIE1vdkhpbnQgdGhlbiBldmVuIGlmIHRoZSBQaGkgc3RheWVkIGFsaXZlLAotICAgICAg
ICAgICAgICAgICAgICAvLyB3ZSB3b3VsZCBzdGlsbCBlbmQgdXAgZ2VuZXJhdGluZyBpbmVmZmlj
aWVudCBjb2RlIHNpbmNlIHdlIHdvdWxkIGJlIHRlbGxpbmcKLSAgICAgICAgICAgICAgICAgICAg
Ly8gdGhlIE9TUiBleGl0IGNvbXBpbGVyIHRvIHVzZSBzb21lIFNTQSB2YWx1ZSBmb3IgdGhlIGJ5
dGVjb2RlIHZhcmlhYmxlCi0gICAgICAgICAgICAgICAgICAgIC8vIHJhdGhlciB0aGFuIGp1c3Qg
dGVsbGluZyBpdCB0aGF0IHRoZSB2YWx1ZSB3YXMgYWxyZWFkeSBvbiB0aGUgc3RhY2suCi0gICAg
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgbV9pbnNlcnRpb25TZXQu
aW5zZXJ0Tm9kZSgKLSAgICAgICAgICAgICAgICAgICAgICAgIHBoaUluc2VydGlvblBvaW50LCBT
cGVjTm9uZSwgTW92SGludCwgTm9kZU9yaWdpbigpLAotICAgICAgICAgICAgICAgICAgICAgICAg
T3BJbmZvKHZhcmlhYmxlLT5sb2NhbCgpLm9mZnNldCgpKSwgcGhpRGVmLT52YWx1ZSgpLT5kZWZh
dWx0RWRnZSgpKTsKLSAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbV9pbnNlcnRp
b25TZXQuaW5zZXJ0Tm9kZSgKKyAgICAgICAgICAgICAgICAgICAgcGhpSW5zZXJ0aW9uUG9pbnQs
IFNwZWNOb25lLCBNb3ZIaW50LCBOb2RlT3JpZ2luKCksCisgICAgICAgICAgICAgICAgICAgIE9w
SW5mbyh2YXJpYWJsZS0+bG9jYWwoKS5vZmZzZXQoKSksIHBoaURlZi0+dmFsdWUoKS0+ZGVmYXVs
dEVkZ2UoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGZvciAo
dW5zaWduZWQgbm9kZUluZGV4ID0gMDsgbm9kZUluZGV4IDwgYmxvY2stPnNpemUoKTsgKytub2Rl
SW5kZXgpIHsKQEAgLTI5NywxMSArMjcwLDE4IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICBt
X2dyYXBoLnBlcmZvcm1TdWJzdGl0dXRpb24obm9kZSk7CiAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgc3dpdGNoIChub2RlLT5vcCgpKSB7CisgICAgICAgICAgICAgICAgY2FzZSBN
b3ZIaW50OiB7CisgICAgICAgICAgICAgICAgICAgIG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUo
CisgICAgICAgICAgICAgICAgICAgICAgICBub2RlSW5kZXgsIFNwZWNOb25lLCBLaWxsTG9jYWws
IG5vZGUtPm9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgIE9wSW5mbyhub2RlLT51bmxp
bmtlZExvY2FsKCkub2Zmc2V0KCkpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBjYXNl
IFNldExvY2FsOiB7CiAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlQWNjZXNzRGF0YSogdmFy
aWFibGUgPSBub2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEoKTsKICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgIGlmICh2YXJpYWJsZS0+aXNDYXB0dXJlZCgpIHx8ICEhKG5v
ZGUtPmZsYWdzKCkgJiBOb2RlSXNGbHVzaGVkKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIG5v
ZGUtPm1lcmdlRmxhZ3MoTm9kZU11c3RHZW5lcmF0ZSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBub2RlLT5zZXRPcEFuZERlZmF1bHRGbGFncyhQdXRMb2NhbCk7CiAgICAgICAgICAgICAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUtPnNldE9wQW5kRGVmYXVsdEZs
YWdzKENoZWNrKTsKICAgICAgICAgICAgICAgICAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAkocmV2aXNpb24gMTc0MTM4KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTExOCw2ICsxMTgsOCBAQCBib29sIHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUm
IHN0CiAgICAgY2FzZSBHZXRDYWxsZWU6CiAgICAgY2FzZSBHZXRMb2NhbDoKICAgICBjYXNlIFNl
dExvY2FsOgorICAgIGNhc2UgUHV0TG9jYWw6CisgICAgY2FzZSBLaWxsTG9jYWw6CiAgICAgY2Fz
ZSBNb3ZIaW50OgogICAgIGNhc2UgWm9tYmllSGludDoKICAgICBjYXNlIEdldEFyZ3VtZW50OgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
NjQuY3BwCShyZXZpc2lvbiAxNzQxMzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OTg1LDYgKzQ5ODUsOCBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDaGVj
a1N0cnVjdHVyZUltbWVkaWF0ZToKICAgICBjYXNlIFB1dFN0cnVjdHVyZUhpbnQ6CiAgICAgY2Fz
ZSBNYXRlcmlhbGl6ZU5ld09iamVjdDoKKyAgICBjYXNlIFB1dExvY2FsOgorICAgIGNhc2UgS2ls
bExvY2FsOgogICAgICAgICBERkdfQ1JBU0gobV9qaXQuZ3JhcGgoKSwgbm9kZSwgIlVuZXhwZWN0
ZWQgbm9kZSIpOwogICAgICAgICBicmVhazsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1N0YWNrTGF5b3V0UGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAJKHJldmlzaW9uIDE3NDEz
OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTY2LDYgKzY2LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAg
IHN3aXRjaCAobm9kZS0+b3AoKSkgewogICAgICAgICAgICAgICAgIGNhc2UgR2V0TG9jYWw6CiAg
ICAgICAgICAgICAgICAgY2FzZSBTZXRMb2NhbDoKKyAgICAgICAgICAgICAgICBjYXNlIFB1dExv
Y2FsOgogICAgICAgICAgICAgICAgIGNhc2UgRmx1c2g6CiAgICAgICAgICAgICAgICAgY2FzZSBQ
aGFudG9tTG9jYWw6IHsKICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGVBY2Nlc3NEYXRhKiB2
YXJpYWJsZSA9IG5vZGUtPnZhcmlhYmxlQWNjZXNzRGF0YSgpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAkocmV2aXNpb24gMTc0MTM4KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00Nyw2ICs0Nyw4IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGls
ZShOb2RlKiAKICAgICBjYXNlIEdldE15QXJndW1lbnRzTGVuZ3RoOgogICAgIGNhc2UgR2V0TG9j
YWw6CiAgICAgY2FzZSBTZXRMb2NhbDoKKyAgICBjYXNlIFB1dExvY2FsOgorICAgIGNhc2UgS2ls
bExvY2FsOgogICAgIGNhc2UgTW92SGludDoKICAgICBjYXNlIFpvbWJpZUhpbnQ6CiAgICAgY2Fz
ZSBQaGFudG9tOgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
TExWTS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dl
ckRGR1RvTExWTS5jcHAJKHJldmlzaW9uIDE3NDEzOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zODYsOCArMzg2
LDggQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBHZXRMb2NhbDoKICAgICAgICAgICAgIGNvbXBp
bGVHZXRMb2NhbCgpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2V0TG9jYWw6
Ci0gICAgICAgICAgICBjb21waWxlU2V0TG9jYWwoKTsKKyAgICAgICAgY2FzZSBQdXRMb2NhbDoK
KyAgICAgICAgICAgIGNvbXBpbGVQdXRMb2NhbCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgR2V0TXlBcmd1bWVudHNMZW5ndGg6CiAgICAgICAgICAgICBjb21waWxlR2V0TXlB
cmd1bWVudHNMZW5ndGgoKTsKQEAgLTc0Niw2ICs3NDYsNyBAQCBwcml2YXRlOgogICAgICAgICBj
YXNlIFB1dEJ5T2Zmc2V0SGludDoKICAgICAgICAgY2FzZSBQdXRTdHJ1Y3R1cmVIaW50OgogICAg
ICAgICBjYXNlIEJvdHRvbVZhbHVlOgorICAgICAgICBjYXNlIEtpbGxMb2NhbDoKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3Jh
cGgsIG1fbm9kZSwgIlVucmVjb2duaXplZCBub2RlIGluIEZUTCBiYWNrZW5kIik7CkBAIC0xMDI0
LDcgKzEwMjUsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgc2V0SlNWYWx1ZShtX291dC5sb2Fk
NjQoYWRkcmVzc0Zvcih2YXJpYWJsZS0+bWFjaGluZUxvY2FsKCkpKSk7CiAgICAgfQogICAgIAot
ICAgIHZvaWQgY29tcGlsZVNldExvY2FsKCkKKyAgICB2b2lkIGNvbXBpbGVQdXRMb2NhbCgpCiAg
ICAgewogICAgICAgICBWYXJpYWJsZUFjY2Vzc0RhdGEqIHZhcmlhYmxlID0gbV9ub2RlLT52YXJp
YWJsZUFjY2Vzc0RhdGEoKTsKICAgICAgICAgc3dpdGNoICh2YXJpYWJsZS0+Zmx1c2hGb3JtYXQo
KSkgewo=
</data>
<flag name="review"
          id="263707"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>