<?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>194975</bug_id>
          
          <creation_ts>2019-02-23 01:12:35 -0800</creation_ts>
          <short_desc>[JSC] Lazily create sentinel Map and Set buckets</short_desc>
          <delta_ts>2019-02-24 18:31:21 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1509347</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-02-23 01:12:35 -0800</bug_when>
    <thetext>[JSC] Lazily create sentinel Map and Set buckets</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509348</commentid>
    <comment_count>1</comment_count>
      <attachid>362819</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-02-23 01:14:58 -0800</bug_when>
    <thetext>Created attachment 362819
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509349</commentid>
    <comment_count>2</comment_count>
      <attachid>362820</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-02-23 01:20:00 -0800</bug_when>
    <thetext>Created attachment 362820
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509497</commentid>
    <comment_count>3</comment_count>
      <attachid>362820</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-02-24 15:18:11 -0800</bug_when>
    <thetext>Comment on attachment 362820
Patch

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

r=me

&gt; Source/JavaScriptCore/runtime/VM.cpp:404
&gt; +    // Eagerly initialize constant cells if concurrent compiler can touch.

“if” =&gt; “since”. “touch” =&gt; “access them”

&gt; Source/JavaScriptCore/runtime/VM.h:572
&gt; +    JSCell* sentinelSetBucketSlow();

Should be private

&gt; Source/JavaScriptCore/runtime/VM.h:580
&gt; +    JSCell* sentinelMapBucketSlow();

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509498</commentid>
    <comment_count>4</comment_count>
      <attachid>362820</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-02-24 15:19:11 -0800</bug_when>
    <thetext>Comment on attachment 362820
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/VM.cpp:404
&gt;&gt; +    // Eagerly initialize constant cells if concurrent compiler can touch.
&gt; 
&gt; “if” =&gt; “since”. “touch” =&gt; “access them”

Oops, I meant:
“if” =&gt; “since the”</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509513</commentid>
    <comment_count>5</comment_count>
      <attachid>362820</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-02-24 18:14:50 -0800</bug_when>
    <thetext>Comment on attachment 362820
Patch

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

Thanks, fixed.

&gt;&gt;&gt; Source/JavaScriptCore/runtime/VM.cpp:404
&gt;&gt;&gt; +    // Eagerly initialize constant cells if concurrent compiler can touch.
&gt;&gt; 
&gt;&gt; “if” =&gt; “since”. “touch” =&gt; “access them”
&gt; 
&gt; Oops, I meant:
&gt; “if” =&gt; “since the”

Fixed.

&gt;&gt; Source/JavaScriptCore/runtime/VM.h:572
&gt;&gt; +    JSCell* sentinelSetBucketSlow();
&gt; 
&gt; Should be private

Fixed.

&gt;&gt; Source/JavaScriptCore/runtime/VM.h:580
&gt;&gt; +    JSCell* sentinelMapBucketSlow();
&gt; 
&gt; Ditto

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509514</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-02-24 18:17:39 -0800</bug_when>
    <thetext>Committed r242015: &lt;https://trac.webkit.org/changeset/242015&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509515</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-24 18:31:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/48349543&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362819</attachid>
            <date>2019-02-23 01:14:58 -0800</date>
            <delta_ts>2019-02-23 01:19:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194975-20190223011457.patch</filename>
            <type>text/plain</type>
            <size>16556</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxOTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
N2JhNDgxMjRlODVjMjk1ZmM3Y2Y5Yjc4NzUxMWQ3ZDFhNGU2YzlmLi5iYTMzMGI3Njg2Mjc5Yjc3
ZTdlYzE1YmFhZmFmYTQ1Y2YwMjhlMWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOSBAQAorMjAxOS0wMi0yMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIExhemlseSBjcmVhdGUgc2VudGluZWwgTWFwIGFuZCBTZXQgYnVj
a2V0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0
OTc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYg
Vk06OmNhblVzZUpJVCgpIHJldHVybnMgZmFsc2UsIHdlIGNhbiBsYXppbHkgaW5pdGlhbGl6ZSBz
ZW50aW5lbCBNYXAgYW5kIFNldCBidWNrZXRzLgorICAgICAgICBUaGlzIHBhdGNoIGFkZHMgZ2V0
dGVycyB0byBWTSB3aGljaCBsYXppbHkgYWxsb2NhdGUgdGhlc2UgYnVja2V0cy4gV2UgZWFnZXJs
eSBpbml0aWFsaXplCisgICAgICAgIHRoZW0gaWYgVk06OmNhblVzZUpJVCgpIHJldHVybnMgdHJ1
ZSBzaW5jZSB0aGV5IGNhbiBiZSB0b3VjaGVkIGZyb20gREZHIGFuZCBGVEwuCisKKyAgICAgICAg
KiBieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKEpTQzo6
Qnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeTo6Qnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeSk6Cisg
ICAgICAgIChKU0M6OkJ5dGVjb2RlSW50cmluc2ljUmVnaXN0cnk6OnNlbnRpbmVsTWFwQnVja2V0
VmFsdWUpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5OjpzZW50aW5l
bFNldEJ1Y2tldFZhbHVlKToKKyAgICAgICAgKiBieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1Jl
Z2lzdHJ5Lmg6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljQ2FsbCk6CisgICAgICAg
ICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRNYXBC
dWNrZXROZXh0KToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9G
VExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0Iz
Ojpjb21waWxlR2V0TWFwQnVja2V0KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZH
VG9CMzo6Y29tcGlsZUdldE1hcEJ1Y2tldE5leHQpOgorICAgICAgICAqIHJ1bnRpbWUvTWFwQ29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjptYXBQcml2YXRlRnVuY01hcEJ1Y2tldE5leHQp
OgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3BwOgorICAgICAgICAoSlNDOjpWTTo6Vk0pOgorICAg
ICAgICAoSlNDOjpWTTo6c2VudGluZWxTZXRCdWNrZXRTbG93KToKKyAgICAgICAgKEpTQzo6Vk06
OnNlbnRpbmVsTWFwQnVja2V0U2xvdyk6CisgICAgICAgICogcnVudGltZS9WTS5oOgorICAgICAg
ICAoSlNDOjpWTTo6c2VudGluZWxTZXRCdWNrZXQpOgorICAgICAgICAoSlNDOjpWTTo6c2VudGlu
ZWxNYXBCdWNrZXQpOgorCiAyMDE5LTAyLTIyICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBh
cHBsZS5jb20+CiAKICAgICAgICAgREZHQnl0ZWNvZGVQYXJzZXIgc2hvdWxkIG5vdCBkZWNsYXJl
IHRoYXQgYSBub2RlIHdvbid0IGNsb2JiZXJFeGl0IGlmIERGR0ZpeHVwUGhhc2UgY2FuIGxhdGVy
IGRlY2xhcmUgaXQgZG9lcyBjbG9iYmVyRXhpdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuY3BwCmluZGV4
IDMyOWZmZTg0MmNjODFiOTg2YzY2N2EyZjA4NDE0NGQ3YzE3Y2YwMTYuLmQxZWYwMDkyMTExNmYw
MzQyOThhMmIyMzMyZTc2MmVlNGNhMTBjYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5jcHAKQEAg
LTY5LDggKzY5LDYgQEAgQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeTo6Qnl0ZWNvZGVJbnRyaW5z
aWNSZWdpc3RyeShWTSYgdm0pCiAgICAgbV9wcm9taXNlU3RhdGVQZW5kaW5nLnNldChtX3ZtLCBq
c051bWJlcihzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNQcm9taXNlOjpTdGF0dXM6OlBlbmRpbmcp
KSk7CiAgICAgbV9wcm9taXNlU3RhdGVGdWxmaWxsZWQuc2V0KG1fdm0sIGpzTnVtYmVyKHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU1Byb21pc2U6OlN0YXR1czo6RnVsZmlsbGVkKSkpOwogICAgIG1f
cHJvbWlzZVN0YXRlUmVqZWN0ZWQuc2V0KG1fdm0sIGpzTnVtYmVyKHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU1Byb21pc2U6OlN0YXR1czo6UmVqZWN0ZWQpKSk7Ci0gICAgbV9zZW50aW5lbE1hcEJ1
Y2tldC5zZXQobV92bSwgbV92bS5zZW50aW5lbE1hcEJ1Y2tldC5nZXQoKSk7Ci0gICAgbV9zZW50
aW5lbFNldEJ1Y2tldC5zZXQobV92bSwgbV92bS5zZW50aW5lbFNldEJ1Y2tldC5nZXQoKSk7CiAg
ICAgbV9HZW5lcmF0b3JSZXN1bWVNb2RlTm9ybWFsLnNldChtX3ZtLCBqc051bWJlcihzdGF0aWNf
Y2FzdDxpbnQzMl90PihKU0dlbmVyYXRvckZ1bmN0aW9uOjpHZW5lcmF0b3JSZXN1bWVNb2RlOjpO
b3JtYWxNb2RlKSkpOwogICAgIG1fR2VuZXJhdG9yUmVzdW1lTW9kZVRocm93LnNldChtX3ZtLCBq
c051bWJlcihzdGF0aWNfY2FzdDxpbnQzMl90PihKU0dlbmVyYXRvckZ1bmN0aW9uOjpHZW5lcmF0
b3JSZXN1bWVNb2RlOjpUaHJvd01vZGUpKSk7CiAgICAgbV9HZW5lcmF0b3JSZXN1bWVNb2RlUmV0
dXJuLnNldChtX3ZtLCBqc051bWJlcihzdGF0aWNfY2FzdDxpbnQzMl90PihKU0dlbmVyYXRvckZ1
bmN0aW9uOjpHZW5lcmF0b3JSZXN1bWVNb2RlOjpSZXR1cm5Nb2RlKSkpOwpAQCAtMTAxLDggKzk5
LDE4IEBAIEJ5dGVjb2RlSW50cmluc2ljTm9kZTo6RW1pdHRlclR5cGUgQnl0ZWNvZGVJbnRyaW5z
aWNSZWdpc3RyeTo6bG9va3VwKGNvbnN0IElkZW50CiAgICAgeyBcCiAgICAgICAgIHJldHVybiBt
XyMjbmFtZS5nZXQoKTsgXAogICAgIH0KLSAgICBKU0NfQ09NTU9OX0JZVEVDT0RFX0lOVFJJTlNJ
Q19DT05TVEFOVFNfRUFDSF9OQU1FKEpTQ19ERUNMQVJFX0JZVEVDT0RFX0lOVFJJTlNJQ19DT05T
VEFOVF9HRU5FUkFUT1JTKQorICAgIEpTQ19DT01NT05fQllURUNPREVfSU5UUklOU0lDX0NPTlNU
QU5UU19TSU1QTEVfRUFDSF9OQU1FKEpTQ19ERUNMQVJFX0JZVEVDT0RFX0lOVFJJTlNJQ19DT05T
VEFOVF9HRU5FUkFUT1JTKQogI3VuZGVmIEpTQ19ERUNMQVJFX0JZVEVDT0RFX0lOVFJJTlNJQ19D
T05TVEFOVF9HRU5FUkFUT1JTCiAKK0pTVmFsdWUgQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeTo6
c2VudGluZWxNYXBCdWNrZXRWYWx1ZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yKQorewor
ICAgIHJldHVybiBnZW5lcmF0b3Iudm0oKS0+c2VudGluZWxNYXBCdWNrZXQoKTsKK30KKworSlNW
YWx1ZSBCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5OjpzZW50aW5lbFNldEJ1Y2tldFZhbHVlKEJ5
dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IpCit7CisgICAgcmV0dXJuIGdlbmVyYXRvci52bSgp
LT5zZW50aW5lbFNldEJ1Y2tldCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVn
aXN0cnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUludHJpbnNp
Y1JlZ2lzdHJ5LmgKaW5kZXggZTk3YmQ5NWI5MTdmNjBhYzIxZDljODJhNzBiNThkNTRjMWU4NzRh
OC4uNDJmOGUxMjc1YzExNzkwYjJiMGJlZDQ0MTg4NWU1MDQ4ZWEyNDkxNiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnku
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNS
ZWdpc3RyeS5oCkBAIC02Niw2ICs2NiwxMCBAQCBjbGFzcyBJZGVudGlmaWVyOwogICAgIG1hY3Jv
KGRlZmluZUVudW1lcmFibGVXcml0YWJsZUNvbmZpZ3VyYWJsZURhdGFQcm9wZXJ0eSkgXAogCiAj
ZGVmaW5lIEpTQ19DT01NT05fQllURUNPREVfSU5UUklOU0lDX0NPTlNUQU5UU19FQUNIX05BTUUo
bWFjcm8pIFwKKyAgICBKU0NfQ09NTU9OX0JZVEVDT0RFX0lOVFJJTlNJQ19DT05TVEFOVFNfU0lN
UExFX0VBQ0hfTkFNRShtYWNybykgXAorICAgIEpTQ19DT01NT05fQllURUNPREVfSU5UUklOU0lD
X0NPTlNUQU5UU19DVVNUT01fRUFDSF9OQU1FKG1hY3JvKSBcCisKKyNkZWZpbmUgSlNDX0NPTU1P
Tl9CWVRFQ09ERV9JTlRSSU5TSUNfQ09OU1RBTlRTX1NJTVBMRV9FQUNIX05BTUUobWFjcm8pIFwK
ICAgICBtYWNybyh1bmRlZmluZWQpIFwKICAgICBtYWNybyhJbmZpbml0eSkgXAogICAgIG1hY3Jv
KGl0ZXJhdGlvbktpbmRLZXkpIFwKQEAgLTg1LDggKzg5LDYgQEAgY2xhc3MgSWRlbnRpZmllcjsK
ICAgICBtYWNybyhwcm9taXNlU3RhdGVQZW5kaW5nKSBcCiAgICAgbWFjcm8ocHJvbWlzZVN0YXRl
RnVsZmlsbGVkKSBcCiAgICAgbWFjcm8ocHJvbWlzZVN0YXRlUmVqZWN0ZWQpIFwKLSAgICBtYWNy
byhzZW50aW5lbE1hcEJ1Y2tldCkgXAotICAgIG1hY3JvKHNlbnRpbmVsU2V0QnVja2V0KSBcCiAg
ICAgbWFjcm8oR2VuZXJhdG9yUmVzdW1lTW9kZU5vcm1hbCkgXAogICAgIG1hY3JvKEdlbmVyYXRv
clJlc3VtZU1vZGVUaHJvdykgXAogICAgIG1hY3JvKEdlbmVyYXRvclJlc3VtZU1vZGVSZXR1cm4p
IFwKQEAgLTEwMSw2ICsxMDMsMTAgQEAgY2xhc3MgSWRlbnRpZmllcjsKICAgICBtYWNybyhBc3lu
Y0dlbmVyYXRvclN1c3BlbmRSZWFzb25Bd2FpdCkgXAogICAgIG1hY3JvKEFzeW5jR2VuZXJhdG9y
U3VzcGVuZFJlYXNvbk5vbmUpIFwKIAorI2RlZmluZSBKU0NfQ09NTU9OX0JZVEVDT0RFX0lOVFJJ
TlNJQ19DT05TVEFOVFNfQ1VTVE9NX0VBQ0hfTkFNRShtYWNybykgXAorICAgIG1hY3JvKHNlbnRp
bmVsTWFwQnVja2V0KSBcCisgICAgbWFjcm8oc2VudGluZWxTZXRCdWNrZXQpIFwKKwogY2xhc3Mg
Qnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeSk7CkBA
IC0xMjAsNyArMTI2LDcgQEAgY2xhc3MgQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeSB7CiAgICAg
SGFzaE1hcDxSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+LCBFbWl0dGVyVHlwZSwgSWRlbnRpZmll
clJlcEhhc2g+IG1fYnl0ZWNvZGVJbnRyaW5zaWNNYXA7CiAKICNkZWZpbmUgSlNDX0RFQ0xBUkVf
QllURUNPREVfSU5UUklOU0lDX0NPTlNUQU5UX0dFTkVSQVRPUlMobmFtZSkgU3Ryb25nPFVua25v
d24+IG1fIyNuYW1lOwotICAgIEpTQ19DT01NT05fQllURUNPREVfSU5UUklOU0lDX0NPTlNUQU5U
U19FQUNIX05BTUUoSlNDX0RFQ0xBUkVfQllURUNPREVfSU5UUklOU0lDX0NPTlNUQU5UX0dFTkVS
QVRPUlMpCisgICAgSlNDX0NPTU1PTl9CWVRFQ09ERV9JTlRSSU5TSUNfQ09OU1RBTlRTX1NJTVBM
RV9FQUNIX05BTUUoSlNDX0RFQ0xBUkVfQllURUNPREVfSU5UUklOU0lDX0NPTlNUQU5UX0dFTkVS
QVRPUlMpCiAjdW5kZWYgSlNDX0RFQ0xBUkVfQllURUNPREVfSU5UUklOU0lDX0NPTlNUQU5UX0dF
TkVSQVRPUlMKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Qnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAKaW5kZXggMDEwY2MzOWY4ODc4YjQxNTk0YTdhYzllNGVhNmMwZDAwZDA2ZWIw
Mi4uNjliZjE0YTQzMDg2ZDhjMWVmMDU5N2QxZThiNDVlYzQ1Yjc3NzFlNiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTI5MjksOSAr
MjkyOSw5IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUludHJpbnNpY0NhbGwoTm9kZSog
Y2FsbGVlLCBWaXJ0dWFsUmVnaXN0ZXIgcmVzdWx0LCBJCiAgICAgICAgICAgICBOb2RlKiBidWNr
ZXQgPSBhZGRUb0dyYXBoKEdldE1hcEJ1Y2tldCwgT3BJbmZvKDApLCBFZGdlKG1hcE9yU2V0LCB1
c2VLaW5kKSwgRWRnZShub3JtYWxpemVkS2V5KSwgRWRnZShoYXNoKSk7CiAgICAgICAgICAgICBK
U0NlbGwqIHNlbnRpbmVsID0gbnVsbHB0cjsKICAgICAgICAgICAgIGlmIChpbnRyaW5zaWMgPT0g
SlNNYXBIYXNJbnRyaW5zaWMpCi0gICAgICAgICAgICAgICAgc2VudGluZWwgPSBtX3ZtLT5zZW50
aW5lbE1hcEJ1Y2tldC5nZXQoKTsKKyAgICAgICAgICAgICAgICBzZW50aW5lbCA9IG1fdm0tPnNl
bnRpbmVsTWFwQnVja2V0KCk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgc2Vu
dGluZWwgPSBtX3ZtLT5zZW50aW5lbFNldEJ1Y2tldC5nZXQoKTsKKyAgICAgICAgICAgICAgICBz
ZW50aW5lbCA9IG1fdm0tPnNlbnRpbmVsU2V0QnVja2V0KCk7CiAKICAgICAgICAgICAgIEZyb3pl
blZhbHVlKiBmcm96ZW5Qb2ludGVyID0gbV9ncmFwaC5mcmVlemUoc2VudGluZWwpOwogICAgICAg
ICAgICAgTm9kZSogaW52ZXJ0ZWRSZXN1bHQgPSBhZGRUb0dyYXBoKENvbXBhcmVFcVB0ciwgT3BJ
bmZvKGZyb3plblBvaW50ZXIpLCBidWNrZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT3BlcmF0aW9ucy5jcHAKaW5kZXggNmE1NzgyNjZlYjRhMTI4MzI3ZTUzY2RhYWNiN2Q4NjE1
NzdjNDllZi4uMDI5YjA5MTMxMzBkNWM3ZGIzZmRmZTcwOTkxOWVjOWVjMmM5M2U4NCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC0yODkyLDcgKzI4
OTIsNyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSlNNYXBGaW5kQnVja2V0KEV4
ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBtYXAsIEVuYwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNl
ciB0cmFjZXIoJnZtLCBleGVjKTsKICAgICBKU01hcDo6QnVja2V0VHlwZSoqIGJ1Y2tldCA9IGpz
Q2FzdDxKU01hcCo+KG1hcCktPmZpbmRCdWNrZXQoZXhlYywgSlNWYWx1ZTo6ZGVjb2RlKGtleSks
IGhhc2gpOwogICAgIGlmICghYnVja2V0KQotICAgICAgICByZXR1cm4gdm0uc2VudGluZWxNYXBC
dWNrZXQuZ2V0KCk7CisgICAgICAgIHJldHVybiB2bS5zZW50aW5lbE1hcEJ1Y2tldCgpOwogICAg
IHJldHVybiAqYnVja2V0OwogfQogCkBAIC0yOTAyLDcgKzI5MDIsNyBAQCBKU0NlbGwqIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uSlNTZXRGaW5kQnVja2V0KEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxs
KiBtYXAsIEVuYwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsK
ICAgICBKU1NldDo6QnVja2V0VHlwZSoqIGJ1Y2tldCA9IGpzQ2FzdDxKU1NldCo+KG1hcCktPmZp
bmRCdWNrZXQoZXhlYywgSlNWYWx1ZTo6ZGVjb2RlKGtleSksIGhhc2gpOwogICAgIGlmICghYnVj
a2V0KQotICAgICAgICByZXR1cm4gdm0uc2VudGluZWxTZXRCdWNrZXQuZ2V0KCk7CisgICAgICAg
IHJldHVybiB2bS5zZW50aW5lbFNldEJ1Y2tldCgpOwogICAgIHJldHVybiAqYnVja2V0OwogfQog
CkBAIC0yOTEyLDcgKzI5MTIsNyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU2V0
QWRkKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBzZXQsIEVuY29kZWRKU1ZhbAogICAgIE5hdGl2
ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKICAgICBhdXRvKiBidWNrZXQgPSBq
c0Nhc3Q8SlNTZXQqPihzZXQpLT5hZGROb3JtYWxpemVkKGV4ZWMsIEpTVmFsdWU6OmRlY29kZShr
ZXkpLCBKU1ZhbHVlKCksIGhhc2gpOwogICAgIGlmICghYnVja2V0KQotICAgICAgICByZXR1cm4g
dm0uc2VudGluZWxTZXRCdWNrZXQuZ2V0KCk7CisgICAgICAgIHJldHVybiB2bS5zZW50aW5lbFNl
dEJ1Y2tldCgpOwogICAgIHJldHVybiBidWNrZXQ7CiB9CiAKQEAgLTI5MjIsNyArMjkyMiw3IEBA
IEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25NYXBTZXQoRXhlY1N0YXRlKiBleGVjLCBK
U0NlbGwqIG1hcCwgRW5jb2RlZEpTVmFsCiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cigmdm0sIGV4ZWMpOwogICAgIGF1dG8qIGJ1Y2tldCA9IGpzQ2FzdDxKU01hcCo+KG1hcCktPmFk
ZE5vcm1hbGl6ZWQoZXhlYywgSlNWYWx1ZTo6ZGVjb2RlKGtleSksIEpTVmFsdWU6OmRlY29kZSh2
YWx1ZSksIGhhc2gpOwogICAgIGlmICghYnVja2V0KQotICAgICAgICByZXR1cm4gdm0uc2VudGlu
ZWxNYXBCdWNrZXQuZ2V0KCk7CisgICAgICAgIHJldHVybiB2bS5zZW50aW5lbE1hcEJ1Y2tldCgp
OwogICAgIHJldHVybiBidWNrZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggMjkxMTI4OGVkZThkNTY5OTA2NmQwZDExZmYy
YjdmZDRiMjlkZTEyMS4uOWU3OWE1YThkMDU3NDA1YTU3N2Q3ZTdjNWNiMjBjODM0NDZjZDMwNyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAK
QEAgLTExNzkyLDEwICsxMTc5MiwxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0
TWFwQnVja2V0TmV4dChOb2RlKiBub2RlKQogICAgIG5vdEJ1Y2tldC5saW5rKCZtX2ppdCk7CiAg
ICAgSlNDZWxsKiBzZW50aW5lbCA9IG51bGxwdHI7CiAgICAgaWYgKG5vZGUtPmJ1Y2tldE93bmVy
VHlwZSgpID09IEJ1Y2tldE93bmVyVHlwZTo6TWFwKQotICAgICAgICBzZW50aW5lbCA9IG1faml0
LnZtKCktPnNlbnRpbmVsTWFwQnVja2V0LmdldCgpOworICAgICAgICBzZW50aW5lbCA9IG1faml0
LnZtKCktPnNlbnRpbmVsTWFwQnVja2V0KCk7CiAgICAgZWxzZSB7CiAgICAgICAgIEFTU0VSVChu
b2RlLT5idWNrZXRPd25lclR5cGUoKSA9PSBCdWNrZXRPd25lclR5cGU6OlNldCk7Ci0gICAgICAg
IHNlbnRpbmVsID0gbV9qaXQudm0oKS0+c2VudGluZWxTZXRCdWNrZXQuZ2V0KCk7CisgICAgICAg
IHNlbnRpbmVsID0gbV9qaXQudm0oKS0+c2VudGluZWxTZXRCdWNrZXQoKTsKICAgICB9CiAgICAg
bV9qaXQubW92ZShUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2ppdC5ncmFwaCgpLCBzZW50
aW5lbCksIHJlc3VsdEdQUik7CiAgICAgZG9uZS5saW5rKCZtX2ppdCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCBkYjhkZjg5
NGUzMzYyNjFjZWY1YjZkMzNlYWQ4NTdjNzhmODk0YjgyLi40NGIyM2ZmMjEzYjIyZDZlZWI3NDdj
OTVlNTFhZjM0ZTNjYzhmYzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTQyMTcsOSArNDIxNyw5IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKIAogICAgICAgICBub3RQcmVzZW50SW5UYWJs
ZS5saW5rKCZtX2ppdCk7CiAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0g
TWFwT2JqZWN0VXNlKQotICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tUHRyOjp3ZWFr
UG9pbnRlcihtX2ppdC5ncmFwaCgpLCBtX2ppdC52bSgpLT5zZW50aW5lbE1hcEJ1Y2tldC5nZXQo
KSksIHJlc3VsdEdQUik7CisgICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW1QdHI6Ondl
YWtQb2ludGVyKG1faml0LmdyYXBoKCksIG1faml0LnZtKCktPnNlbnRpbmVsTWFwQnVja2V0KCkp
LCByZXN1bHRHUFIpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0
ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1faml0LmdyYXBoKCksIG1faml0LnZtKCktPnNlbnRpbmVs
U2V0QnVja2V0LmdldCgpKSwgcmVzdWx0R1BSKTsKKyAgICAgICAgICAgIG1faml0Lm1vdmUoVHJ1
c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9qaXQuZ3JhcGgoKSwgbV9qaXQudm0oKS0+c2VudGlu
ZWxTZXRCdWNrZXQoKSksIHJlc3VsdEdQUik7CiAgICAgICAgIGRvbmUubGluaygmbV9qaXQpOwog
ICAgICAgICBjZWxsUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CiAgICAgICAgIGJyZWFrOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IDg3ZGU5
YmFiYTA1YzFjZWRjODQzZmQ3NTEyNDBhODA1YTkwMjczNGUuLmY4YTc5MTIxODk0Y2QzMDE0N2Uw
ZmI4Yjg5ZTkxNDIwYjIxMjYzZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TExvd2VyREZHVG9CMy5jcHAKQEAgLTk3NDQsOSArOTc0NCw5IEBAIGNsYXNzIExvd2VyREZHVG9C
MyB7CiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG5vdFByZXNlbnRJblRhYmxlLCBjb250aW51YXRp
b24pOwogICAgICAgICBWYWx1ZUZyb21CbG9jayBub3RQcmVzZW50UmVzdWx0OwogICAgICAgICBp
ZiAobV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gTWFwT2JqZWN0VXNlKQotICAgICAgICAg
ICAgbm90UHJlc2VudFJlc3VsdCA9IG1fb3V0LmFuY2hvcih3ZWFrUG9pbnRlcih2bSgpLnNlbnRp
bmVsTWFwQnVja2V0LmdldCgpKSk7CisgICAgICAgICAgICBub3RQcmVzZW50UmVzdWx0ID0gbV9v
dXQuYW5jaG9yKHdlYWtQb2ludGVyKHZtKCkuc2VudGluZWxNYXBCdWNrZXQoKSkpOwogICAgICAg
ICBlbHNlIGlmIChtX25vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBTZXRPYmplY3RVc2UpCi0g
ICAgICAgICAgICBub3RQcmVzZW50UmVzdWx0ID0gbV9vdXQuYW5jaG9yKHdlYWtQb2ludGVyKHZt
KCkuc2VudGluZWxTZXRCdWNrZXQuZ2V0KCkpKTsKKyAgICAgICAgICAgIG5vdFByZXNlbnRSZXN1
bHQgPSBtX291dC5hbmNob3Iod2Vha1BvaW50ZXIodm0oKS5zZW50aW5lbFNldEJ1Y2tldCgpKSk7
CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKQEAgLTk3OTIsMTAgKzk3OTIsMTAg
QEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgbV9vdXQuYXBwZW5kVG8obm9CdWNrZXQs
IGhhc0J1Y2tldCk7CiAgICAgICAgIFZhbHVlRnJvbUJsb2NrIG5vQnVja2V0UmVzdWx0OwogICAg
ICAgICBpZiAobV9ub2RlLT5idWNrZXRPd25lclR5cGUoKSA9PSBCdWNrZXRPd25lclR5cGU6Ok1h
cCkKLSAgICAgICAgICAgIG5vQnVja2V0UmVzdWx0ID0gbV9vdXQuYW5jaG9yKHdlYWtQb2ludGVy
KHZtKCkuc2VudGluZWxNYXBCdWNrZXQuZ2V0KCkpKTsKKyAgICAgICAgICAgIG5vQnVja2V0UmVz
dWx0ID0gbV9vdXQuYW5jaG9yKHdlYWtQb2ludGVyKHZtKCkuc2VudGluZWxNYXBCdWNrZXQoKSkp
OwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIEFTU0VSVChtX25vZGUtPmJ1Y2tldE93bmVy
VHlwZSgpID09IEJ1Y2tldE93bmVyVHlwZTo6U2V0KTsKLSAgICAgICAgICAgIG5vQnVja2V0UmVz
dWx0ID0gbV9vdXQuYW5jaG9yKHdlYWtQb2ludGVyKHZtKCkuc2VudGluZWxTZXRCdWNrZXQuZ2V0
KCkpKTsKKyAgICAgICAgICAgIG5vQnVja2V0UmVzdWx0ID0gbV9vdXQuYW5jaG9yKHdlYWtQb2lu
dGVyKHZtKCkuc2VudGluZWxTZXRCdWNrZXQoKSkpOwogICAgICAgICB9CiAgICAgICAgIG1fb3V0
Lmp1bXAoY29udGludWF0aW9uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTWFwQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTWFwQ29uc3RydWN0b3IuY3BwCmluZGV4IDc4ZTUzNGJjMDZjOTE0ZTdiZDg1MTAxMGU3NGY0
OTdiODQ3MGJjZWYuLjVlZTJjYmYyNTg2NjJjNmQzMWQ1NjIxOWY5YzBjYjJlYTJmYmY1NmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcENvbnN0cnVjdG9yLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5jcHAK
QEAgLTEzNiw3ICsxMzYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByaXZh
dGVGdW5jTWFwQnVja2V0TmV4dChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGJ1Y2tldCk7CiAgICAgICAgIGJ1Y2tldCA9IGJ1Y2tldC0+bmV4dCgp
OwogICAgIH0KLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGV4ZWMtPnZtKCkuc2VudGluZWxN
YXBCdWNrZXQuZ2V0KCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZXhlYy0+dm0oKS5z
ZW50aW5lbE1hcEJ1Y2tldCgpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBt
YXBQcml2YXRlRnVuY01hcEJ1Y2tldEtleShFeGVjU3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTS5jcHAKaW5kZXggMGQxZWZjOTRjNDAxM2JkMmYzYjNiYjk3MTVhYTE3MWY2
ZGU4ZjljOC4uMTVhNzJkZWViZGFlNGZjOWRhNjI2MzJmOWIwNWRjOGNjMTE1OTQ0NiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcApAQCAtNDAxLDggKzQwMSwxMSBAQCBWTTo6Vk0o
Vk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAgICAgYmlnSW50U3RydWN0dXJlLnNl
dCgqdGhpcywgSlNCaWdJbnQ6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywgMCwganNOdWxsKCkpKTsK
ICAgICBleGVjdXRhYmxlVG9Db2RlQmxvY2tFZGdlU3RydWN0dXJlLnNldCgqdGhpcywgRXhlY3V0
YWJsZVRvQ29kZUJsb2NrRWRnZTo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCBudWxscHRyLCBqc051
bGwoKSkpOwogCi0gICAgc2VudGluZWxTZXRCdWNrZXQuc2V0KCp0aGlzLCBKU1NldDo6QnVja2V0
VHlwZTo6Y3JlYXRlU2VudGluZWwoKnRoaXMpKTsKLSAgICBzZW50aW5lbE1hcEJ1Y2tldC5zZXQo
KnRoaXMsIEpTTWFwOjpCdWNrZXRUeXBlOjpjcmVhdGVTZW50aW5lbCgqdGhpcykpOworICAgIC8v
IEVhZ2VybHkgaW5pdGlhbGl6ZSBjb25zdGFudCBjZWxscyBpZiBjb25jdXJyZW50IGNvbXBpbGVy
IGNhbiB0b3VjaC4KKyAgICBpZiAoY2FuVXNlSklUKCkpIHsKKyAgICAgICAgc2VudGluZWxNYXBC
dWNrZXQoKTsKKyAgICAgICAgc2VudGluZWxTZXRCdWNrZXQoKTsKKyAgICB9CiAKICAgICBUaHJl
YWQ6OmN1cnJlbnQoKS5zZXRDdXJyZW50QXRvbWljU3RyaW5nVGFibGUoZXhpc3RpbmdFbnRyeUF0
b21pY1N0cmluZ1RhYmxlKTsKIApAQCAtMTI4NCw2ICsxMjg3LDIzIEBAIERZTkFNSUNfU1BBQ0Vf
QU5EX1NFVF9ERUZJTkVfTUVNQkVSX1NMT1cobW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGVTcGFjZSwg
ZGVzdHJ1Y3RpCiAKICN1bmRlZiBEWU5BTUlDX1NQQUNFX0FORF9TRVRfREVGSU5FX01FTUJFUl9T
TE9XCiAKKworSlNDZWxsKiBWTTo6c2VudGluZWxTZXRCdWNrZXRTbG93KCkKK3sKKyAgICBBU1NF
UlQoIW1fc2VudGluZWxTZXRCdWNrZXQpOworICAgIGF1dG8qIHNlbnRpbmVsID0gSlNTZXQ6OkJ1
Y2tldFR5cGU6OmNyZWF0ZVNlbnRpbmVsKCp0aGlzKTsKKyAgICBtX3NlbnRpbmVsU2V0QnVja2V0
LnNldCgqdGhpcywgc2VudGluZWwpOworICAgIHJldHVybiBzZW50aW5lbDsKK30KKworSlNDZWxs
KiBWTTo6c2VudGluZWxNYXBCdWNrZXRTbG93KCkKK3sKKyAgICBBU1NFUlQoIW1fc2VudGluZWxN
YXBCdWNrZXQpOworICAgIGF1dG8qIHNlbnRpbmVsID0gSlNNYXA6OkJ1Y2tldFR5cGU6OmNyZWF0
ZVNlbnRpbmVsKCp0aGlzKTsKKyAgICBtX3NlbnRpbmVsTWFwQnVja2V0LnNldCgqdGhpcywgc2Vu
dGluZWwpOworICAgIHJldHVybiBzZW50aW5lbDsKK30KKwogSlNHbG9iYWxPYmplY3QqIFZNOjp2
bUVudHJ5R2xvYmFsT2JqZWN0KGNvbnN0IENhbGxGcmFtZSogY2FsbEZyYW1lKSBjb25zdAogewog
ICAgIGlmIChjYWxsRnJhbWUgJiYgY2FsbEZyYW1lLT5pc0dsb2JhbEV4ZWMoKSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1ZNLmgKaW5kZXggNWFiMzUyZmY2MWM1NzJmODc0MzY2MTRmZmQyMDU1
NWIzMzk3NmUwYy4uODRjY2NkYWRkZDk1NDhjN2Q2YjE0ZmJkNTA3Y2JhNmI2ZGU0ODBlZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCkBAIC01MzksOCArNTM5LDkgQEAgY2xhc3MgVk0g
OiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Vk0+LCBwdWJsaWMgRG91Ymx5TGlua2VkTGlz
dE5vZGU8Vk0+IHsKICAgICBTdHJvbmc8U3RydWN0dXJlPiBleGVjdXRhYmxlVG9Db2RlQmxvY2tF
ZGdlU3RydWN0dXJlOwogCiAgICAgU3Ryb25nPEpTQ2VsbD4gZW1wdHlQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yOwotICAgIFN0cm9uZzxKU0NlbGw+IHNlbnRpbmVsU2V0QnVja2V0OwotICAgIFN0cm9u
ZzxKU0NlbGw+IHNlbnRpbmVsTWFwQnVja2V0OworCisgICAgU3Ryb25nPEpTQ2VsbD4gbV9zZW50
aW5lbFNldEJ1Y2tldDsKKyAgICBTdHJvbmc8SlNDZWxsPiBtX3NlbnRpbmVsTWFwQnVja2V0Owog
CiAgICAgc3RkOjp1bmlxdWVfcHRyPFByb21pc2VEZWZlcnJlZFRpbWVyPiBwcm9taXNlRGVmZXJy
ZWRUaW1lcjsKICAgICAKQEAgLTU2Miw2ICs1NjMsMjIgQEAgY2xhc3MgVk0gOiBwdWJsaWMgVGhy
ZWFkU2FmZVJlZkNvdW50ZWQ8Vk0+LCBwdWJsaWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8Vk0+IHsK
ICAgICBBdG9taWNTdHJpbmdUYWJsZSogYXRvbWljU3RyaW5nVGFibGUoKSBjb25zdCB7IHJldHVy
biBtX2F0b21pY1N0cmluZ1RhYmxlOyB9CiAgICAgV1RGOjpTeW1ib2xSZWdpc3RyeSYgc3ltYm9s
UmVnaXN0cnkoKSB7IHJldHVybiBtX3N5bWJvbFJlZ2lzdHJ5OyB9CiAKKyAgICBKU0NlbGwqIHNl
bnRpbmVsU2V0QnVja2V0KCkKKyAgICB7CisgICAgICAgIGlmIChMSUtFTFkobV9zZW50aW5lbFNl
dEJ1Y2tldCkpCisgICAgICAgICAgICByZXR1cm4gbV9zZW50aW5lbFNldEJ1Y2tldC5nZXQoKTsK
KyAgICAgICAgcmV0dXJuIHNlbnRpbmVsU2V0QnVja2V0U2xvdygpOworICAgIH0KKyAgICBKU0Nl
bGwqIHNlbnRpbmVsU2V0QnVja2V0U2xvdygpOworCisgICAgSlNDZWxsKiBzZW50aW5lbE1hcEJ1
Y2tldCgpCisgICAgeworICAgICAgICBpZiAoTElLRUxZKG1fc2VudGluZWxNYXBCdWNrZXQpKQor
ICAgICAgICAgICAgcmV0dXJuIG1fc2VudGluZWxNYXBCdWNrZXQuZ2V0KCk7CisgICAgICAgIHJl
dHVybiBzZW50aW5lbE1hcEJ1Y2tldFNsb3coKTsKKyAgICB9CisgICAgSlNDZWxsKiBzZW50aW5l
bE1hcEJ1Y2tldFNsb3coKTsKKwogICAgIFdlYWtHQ01hcDxTeW1ib2xJbXBsKiwgU3ltYm9sLCBQ
dHJIYXNoPFN5bWJvbEltcGwqPj4gc3ltYm9sSW1wbFRvU3ltYm9sTWFwOwogCiAgICAgZW51bSBj
bGFzcyBEZWxldGVQcm9wZXJ0eU1vZGUgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362820</attachid>
            <date>2019-02-23 01:20:00 -0800</date>
            <delta_ts>2019-02-24 15:18:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194975-20190223011959.patch</filename>
            <type>text/plain</type>
            <size>17344</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxOTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
N2JhNDgxMjRlODVjMjk1ZmM3Y2Y5Yjc4NzUxMWQ3ZDFhNGU2YzlmLi5lZDc0NDIwNWRiOWJkYjE4
MWFiZmVjNmZiMmQzMTc0NjgyOTNlMTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAxOS0wMi0yMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIExhemlseSBjcmVhdGUgc2VudGluZWwgTWFwIGFuZCBTZXQgYnVj
a2V0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0
OTc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYg
Vk06OmNhblVzZUpJVCgpIHJldHVybnMgZmFsc2UsIHdlIGNhbiBsYXppbHkgaW5pdGlhbGl6ZSBz
ZW50aW5lbCBNYXAgYW5kIFNldCBidWNrZXRzLgorICAgICAgICBUaGlzIHBhdGNoIGFkZHMgZ2V0
dGVycyB0byBWTSB3aGljaCBsYXppbHkgYWxsb2NhdGUgdGhlc2UgYnVja2V0cy4gV2UgZWFnZXJs
eSBpbml0aWFsaXplCisgICAgICAgIHRoZW0gaWYgVk06OmNhblVzZUpJVCgpIHJldHVybnMgdHJ1
ZSBzaW5jZSB0aGV5IGNhbiBiZSB0b3VjaGVkIGZyb20gREZHIGFuZCBGVEwuCisKKyAgICAgICAg
KiBieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKEpTQzo6
Qnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeTo6Qnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeSk6Cisg
ICAgICAgIChKU0M6OkJ5dGVjb2RlSW50cmluc2ljUmVnaXN0cnk6OnNlbnRpbmVsTWFwQnVja2V0
VmFsdWUpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5OjpzZW50aW5l
bFNldEJ1Y2tldFZhbHVlKToKKyAgICAgICAgKiBieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1Jl
Z2lzdHJ5Lmg6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljQ2FsbCk6CisgICAgICAg
ICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRNYXBC
dWNrZXROZXh0KToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9G
VExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0Iz
Ojpjb21waWxlR2V0TWFwQnVja2V0KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZH
VG9CMzo6Y29tcGlsZUdldE1hcEJ1Y2tldE5leHQpOgorICAgICAgICAqIHJ1bnRpbWUvTWFwQ29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjptYXBQcml2YXRlRnVuY01hcEJ1Y2tldE5leHQp
OgorICAgICAgICAqIHJ1bnRpbWUvU2V0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpz
ZXRQcml2YXRlRnVuY1NldEJ1Y2tldE5leHQpOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3BwOgor
ICAgICAgICAoSlNDOjpWTTo6Vk0pOgorICAgICAgICAoSlNDOjpWTTo6c2VudGluZWxTZXRCdWNr
ZXRTbG93KToKKyAgICAgICAgKEpTQzo6Vk06OnNlbnRpbmVsTWFwQnVja2V0U2xvdyk6CisgICAg
ICAgICogcnVudGltZS9WTS5oOgorICAgICAgICAoSlNDOjpWTTo6c2VudGluZWxTZXRCdWNrZXQp
OgorICAgICAgICAoSlNDOjpWTTo6c2VudGluZWxNYXBCdWNrZXQpOgorCiAyMDE5LTAyLTIyICBS
b2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CiAKICAgICAgICAgREZHQnl0ZWNv
ZGVQYXJzZXIgc2hvdWxkIG5vdCBkZWNsYXJlIHRoYXQgYSBub2RlIHdvbid0IGNsb2JiZXJFeGl0
IGlmIERGR0ZpeHVwUGhhc2UgY2FuIGxhdGVyIGRlY2xhcmUgaXQgZG9lcyBjbG9iYmVyRXhpdApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlSW50cmlu
c2ljUmVnaXN0cnkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2Rl
SW50cmluc2ljUmVnaXN0cnkuY3BwCmluZGV4IDMyOWZmZTg0MmNjODFiOTg2YzY2N2EyZjA4NDE0
NGQ3YzE3Y2YwMTYuLmQxZWYwMDkyMTExNmYwMzQyOThhMmIyMzMyZTc2MmVlNGNhMTBjYWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUludHJpbnNp
Y1JlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNv
ZGVJbnRyaW5zaWNSZWdpc3RyeS5jcHAKQEAgLTY5LDggKzY5LDYgQEAgQnl0ZWNvZGVJbnRyaW5z
aWNSZWdpc3RyeTo6Qnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeShWTSYgdm0pCiAgICAgbV9wcm9t
aXNlU3RhdGVQZW5kaW5nLnNldChtX3ZtLCBqc051bWJlcihzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNQcm9taXNlOjpTdGF0dXM6OlBlbmRpbmcpKSk7CiAgICAgbV9wcm9taXNlU3RhdGVGdWxmaWxs
ZWQuc2V0KG1fdm0sIGpzTnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU1Byb21pc2U6OlN0
YXR1czo6RnVsZmlsbGVkKSkpOwogICAgIG1fcHJvbWlzZVN0YXRlUmVqZWN0ZWQuc2V0KG1fdm0s
IGpzTnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU1Byb21pc2U6OlN0YXR1czo6UmVqZWN0
ZWQpKSk7Ci0gICAgbV9zZW50aW5lbE1hcEJ1Y2tldC5zZXQobV92bSwgbV92bS5zZW50aW5lbE1h
cEJ1Y2tldC5nZXQoKSk7Ci0gICAgbV9zZW50aW5lbFNldEJ1Y2tldC5zZXQobV92bSwgbV92bS5z
ZW50aW5lbFNldEJ1Y2tldC5nZXQoKSk7CiAgICAgbV9HZW5lcmF0b3JSZXN1bWVNb2RlTm9ybWFs
LnNldChtX3ZtLCBqc051bWJlcihzdGF0aWNfY2FzdDxpbnQzMl90PihKU0dlbmVyYXRvckZ1bmN0
aW9uOjpHZW5lcmF0b3JSZXN1bWVNb2RlOjpOb3JtYWxNb2RlKSkpOwogICAgIG1fR2VuZXJhdG9y
UmVzdW1lTW9kZVRocm93LnNldChtX3ZtLCBqc051bWJlcihzdGF0aWNfY2FzdDxpbnQzMl90PihK
U0dlbmVyYXRvckZ1bmN0aW9uOjpHZW5lcmF0b3JSZXN1bWVNb2RlOjpUaHJvd01vZGUpKSk7CiAg
ICAgbV9HZW5lcmF0b3JSZXN1bWVNb2RlUmV0dXJuLnNldChtX3ZtLCBqc051bWJlcihzdGF0aWNf
Y2FzdDxpbnQzMl90PihKU0dlbmVyYXRvckZ1bmN0aW9uOjpHZW5lcmF0b3JSZXN1bWVNb2RlOjpS
ZXR1cm5Nb2RlKSkpOwpAQCAtMTAxLDggKzk5LDE4IEBAIEJ5dGVjb2RlSW50cmluc2ljTm9kZTo6
RW1pdHRlclR5cGUgQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeTo6bG9va3VwKGNvbnN0IElkZW50
CiAgICAgeyBcCiAgICAgICAgIHJldHVybiBtXyMjbmFtZS5nZXQoKTsgXAogICAgIH0KLSAgICBK
U0NfQ09NTU9OX0JZVEVDT0RFX0lOVFJJTlNJQ19DT05TVEFOVFNfRUFDSF9OQU1FKEpTQ19ERUNM
QVJFX0JZVEVDT0RFX0lOVFJJTlNJQ19DT05TVEFOVF9HRU5FUkFUT1JTKQorICAgIEpTQ19DT01N
T05fQllURUNPREVfSU5UUklOU0lDX0NPTlNUQU5UU19TSU1QTEVfRUFDSF9OQU1FKEpTQ19ERUNM
QVJFX0JZVEVDT0RFX0lOVFJJTlNJQ19DT05TVEFOVF9HRU5FUkFUT1JTKQogI3VuZGVmIEpTQ19E
RUNMQVJFX0JZVEVDT0RFX0lOVFJJTlNJQ19DT05TVEFOVF9HRU5FUkFUT1JTCiAKK0pTVmFsdWUg
Qnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeTo6c2VudGluZWxNYXBCdWNrZXRWYWx1ZShCeXRlY29k
ZUdlbmVyYXRvciYgZ2VuZXJhdG9yKQoreworICAgIHJldHVybiBnZW5lcmF0b3Iudm0oKS0+c2Vu
dGluZWxNYXBCdWNrZXQoKTsKK30KKworSlNWYWx1ZSBCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5
OjpzZW50aW5lbFNldEJ1Y2tldFZhbHVlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IpCit7
CisgICAgcmV0dXJuIGdlbmVyYXRvci52bSgpLT5zZW50aW5lbFNldEJ1Y2tldCgpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBKU0MKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmgKaW5kZXggZTk3YmQ5NWI5MTdm
NjBhYzIxZDljODJhNzBiNThkNTRjMWU4NzRhOC4uNDJmOGUxMjc1YzExNzkwYjJiMGJlZDQ0MTg4
NWU1MDQ4ZWEyNDkxNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5oCkBAIC02Niw2ICs2NiwxMCBAQCBj
bGFzcyBJZGVudGlmaWVyOwogICAgIG1hY3JvKGRlZmluZUVudW1lcmFibGVXcml0YWJsZUNvbmZp
Z3VyYWJsZURhdGFQcm9wZXJ0eSkgXAogCiAjZGVmaW5lIEpTQ19DT01NT05fQllURUNPREVfSU5U
UklOU0lDX0NPTlNUQU5UU19FQUNIX05BTUUobWFjcm8pIFwKKyAgICBKU0NfQ09NTU9OX0JZVEVD
T0RFX0lOVFJJTlNJQ19DT05TVEFOVFNfU0lNUExFX0VBQ0hfTkFNRShtYWNybykgXAorICAgIEpT
Q19DT01NT05fQllURUNPREVfSU5UUklOU0lDX0NPTlNUQU5UU19DVVNUT01fRUFDSF9OQU1FKG1h
Y3JvKSBcCisKKyNkZWZpbmUgSlNDX0NPTU1PTl9CWVRFQ09ERV9JTlRSSU5TSUNfQ09OU1RBTlRT
X1NJTVBMRV9FQUNIX05BTUUobWFjcm8pIFwKICAgICBtYWNybyh1bmRlZmluZWQpIFwKICAgICBt
YWNybyhJbmZpbml0eSkgXAogICAgIG1hY3JvKGl0ZXJhdGlvbktpbmRLZXkpIFwKQEAgLTg1LDgg
Kzg5LDYgQEAgY2xhc3MgSWRlbnRpZmllcjsKICAgICBtYWNybyhwcm9taXNlU3RhdGVQZW5kaW5n
KSBcCiAgICAgbWFjcm8ocHJvbWlzZVN0YXRlRnVsZmlsbGVkKSBcCiAgICAgbWFjcm8ocHJvbWlz
ZVN0YXRlUmVqZWN0ZWQpIFwKLSAgICBtYWNybyhzZW50aW5lbE1hcEJ1Y2tldCkgXAotICAgIG1h
Y3JvKHNlbnRpbmVsU2V0QnVja2V0KSBcCiAgICAgbWFjcm8oR2VuZXJhdG9yUmVzdW1lTW9kZU5v
cm1hbCkgXAogICAgIG1hY3JvKEdlbmVyYXRvclJlc3VtZU1vZGVUaHJvdykgXAogICAgIG1hY3Jv
KEdlbmVyYXRvclJlc3VtZU1vZGVSZXR1cm4pIFwKQEAgLTEwMSw2ICsxMDMsMTAgQEAgY2xhc3Mg
SWRlbnRpZmllcjsKICAgICBtYWNybyhBc3luY0dlbmVyYXRvclN1c3BlbmRSZWFzb25Bd2FpdCkg
XAogICAgIG1hY3JvKEFzeW5jR2VuZXJhdG9yU3VzcGVuZFJlYXNvbk5vbmUpIFwKIAorI2RlZmlu
ZSBKU0NfQ09NTU9OX0JZVEVDT0RFX0lOVFJJTlNJQ19DT05TVEFOVFNfQ1VTVE9NX0VBQ0hfTkFN
RShtYWNybykgXAorICAgIG1hY3JvKHNlbnRpbmVsTWFwQnVja2V0KSBcCisgICAgbWFjcm8oc2Vu
dGluZWxTZXRCdWNrZXQpIFwKKwogY2xhc3MgQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeSB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQnl0
ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeSk7CkBAIC0xMjAsNyArMTI2LDcgQEAgY2xhc3MgQnl0ZWNv
ZGVJbnRyaW5zaWNSZWdpc3RyeSB7CiAgICAgSGFzaE1hcDxSZWZQdHI8VW5pcXVlZFN0cmluZ0lt
cGw+LCBFbWl0dGVyVHlwZSwgSWRlbnRpZmllclJlcEhhc2g+IG1fYnl0ZWNvZGVJbnRyaW5zaWNN
YXA7CiAKICNkZWZpbmUgSlNDX0RFQ0xBUkVfQllURUNPREVfSU5UUklOU0lDX0NPTlNUQU5UX0dF
TkVSQVRPUlMobmFtZSkgU3Ryb25nPFVua25vd24+IG1fIyNuYW1lOwotICAgIEpTQ19DT01NT05f
QllURUNPREVfSU5UUklOU0lDX0NPTlNUQU5UU19FQUNIX05BTUUoSlNDX0RFQ0xBUkVfQllURUNP
REVfSU5UUklOU0lDX0NPTlNUQU5UX0dFTkVSQVRPUlMpCisgICAgSlNDX0NPTU1PTl9CWVRFQ09E
RV9JTlRSSU5TSUNfQ09OU1RBTlRTX1NJTVBMRV9FQUNIX05BTUUoSlNDX0RFQ0xBUkVfQllURUNP
REVfSU5UUklOU0lDX0NPTlNUQU5UX0dFTkVSQVRPUlMpCiAjdW5kZWYgSlNDX0RFQ0xBUkVfQllU
RUNPREVfSU5UUklOU0lDX0NPTlNUQU5UX0dFTkVSQVRPUlMKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggMDEwY2MzOWY4ODc4
YjQxNTk0YTdhYzllNGVhNmMwZDAwZDA2ZWIwMi4uNjliZjE0YTQzMDg2ZDhjMWVmMDU5N2QxZThi
NDVlYzQ1Yjc3NzFlNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdC
eXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHAKQEAgLTI5MjksOSArMjkyOSw5IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6
OmhhbmRsZUludHJpbnNpY0NhbGwoTm9kZSogY2FsbGVlLCBWaXJ0dWFsUmVnaXN0ZXIgcmVzdWx0
LCBJCiAgICAgICAgICAgICBOb2RlKiBidWNrZXQgPSBhZGRUb0dyYXBoKEdldE1hcEJ1Y2tldCwg
T3BJbmZvKDApLCBFZGdlKG1hcE9yU2V0LCB1c2VLaW5kKSwgRWRnZShub3JtYWxpemVkS2V5KSwg
RWRnZShoYXNoKSk7CiAgICAgICAgICAgICBKU0NlbGwqIHNlbnRpbmVsID0gbnVsbHB0cjsKICAg
ICAgICAgICAgIGlmIChpbnRyaW5zaWMgPT0gSlNNYXBIYXNJbnRyaW5zaWMpCi0gICAgICAgICAg
ICAgICAgc2VudGluZWwgPSBtX3ZtLT5zZW50aW5lbE1hcEJ1Y2tldC5nZXQoKTsKKyAgICAgICAg
ICAgICAgICBzZW50aW5lbCA9IG1fdm0tPnNlbnRpbmVsTWFwQnVja2V0KCk7CiAgICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgc2VudGluZWwgPSBtX3ZtLT5zZW50aW5lbFNldEJ1Y2tl
dC5nZXQoKTsKKyAgICAgICAgICAgICAgICBzZW50aW5lbCA9IG1fdm0tPnNlbnRpbmVsU2V0QnVj
a2V0KCk7CiAKICAgICAgICAgICAgIEZyb3plblZhbHVlKiBmcm96ZW5Qb2ludGVyID0gbV9ncmFw
aC5mcmVlemUoc2VudGluZWwpOwogICAgICAgICAgICAgTm9kZSogaW52ZXJ0ZWRSZXN1bHQgPSBh
ZGRUb0dyYXBoKENvbXBhcmVFcVB0ciwgT3BJbmZvKGZyb3plblBvaW50ZXIpLCBidWNrZXQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKaW5kZXggNmE1Nzgy
NjZlYjRhMTI4MzI3ZTUzY2RhYWNiN2Q4NjE1NzdjNDllZi4uMDI5YjA5MTMxMzBkNWM3ZGIzZmRm
ZTcwOTkxOWVjOWVjMmM5M2U4NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09w
ZXJhdGlvbnMuY3BwCkBAIC0yODkyLDcgKzI4OTIsNyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uSlNNYXBGaW5kQnVja2V0KEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBtYXAsIEVu
YwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKICAgICBKU01h
cDo6QnVja2V0VHlwZSoqIGJ1Y2tldCA9IGpzQ2FzdDxKU01hcCo+KG1hcCktPmZpbmRCdWNrZXQo
ZXhlYywgSlNWYWx1ZTo6ZGVjb2RlKGtleSksIGhhc2gpOwogICAgIGlmICghYnVja2V0KQotICAg
ICAgICByZXR1cm4gdm0uc2VudGluZWxNYXBCdWNrZXQuZ2V0KCk7CisgICAgICAgIHJldHVybiB2
bS5zZW50aW5lbE1hcEJ1Y2tldCgpOwogICAgIHJldHVybiAqYnVja2V0OwogfQogCkBAIC0yOTAy
LDcgKzI5MDIsNyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSlNTZXRGaW5kQnVj
a2V0KEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBtYXAsIEVuYwogICAgIE5hdGl2ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKICAgICBKU1NldDo6QnVja2V0VHlwZSoqIGJ1Y2tl
dCA9IGpzQ2FzdDxKU1NldCo+KG1hcCktPmZpbmRCdWNrZXQoZXhlYywgSlNWYWx1ZTo6ZGVjb2Rl
KGtleSksIGhhc2gpOwogICAgIGlmICghYnVja2V0KQotICAgICAgICByZXR1cm4gdm0uc2VudGlu
ZWxTZXRCdWNrZXQuZ2V0KCk7CisgICAgICAgIHJldHVybiB2bS5zZW50aW5lbFNldEJ1Y2tldCgp
OwogICAgIHJldHVybiAqYnVja2V0OwogfQogCkBAIC0yOTEyLDcgKzI5MTIsNyBAQCBKU0NlbGwq
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU2V0QWRkKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBz
ZXQsIEVuY29kZWRKU1ZhbAogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBl
eGVjKTsKICAgICBhdXRvKiBidWNrZXQgPSBqc0Nhc3Q8SlNTZXQqPihzZXQpLT5hZGROb3JtYWxp
emVkKGV4ZWMsIEpTVmFsdWU6OmRlY29kZShrZXkpLCBKU1ZhbHVlKCksIGhhc2gpOwogICAgIGlm
ICghYnVja2V0KQotICAgICAgICByZXR1cm4gdm0uc2VudGluZWxTZXRCdWNrZXQuZ2V0KCk7Cisg
ICAgICAgIHJldHVybiB2bS5zZW50aW5lbFNldEJ1Y2tldCgpOwogICAgIHJldHVybiBidWNrZXQ7
CiB9CiAKQEAgLTI5MjIsNyArMjkyMiw3IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRp
b25NYXBTZXQoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIG1hcCwgRW5jb2RlZEpTVmFsCiAgICAg
TmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwogICAgIGF1dG8qIGJ1Y2tl
dCA9IGpzQ2FzdDxKU01hcCo+KG1hcCktPmFkZE5vcm1hbGl6ZWQoZXhlYywgSlNWYWx1ZTo6ZGVj
b2RlKGtleSksIEpTVmFsdWU6OmRlY29kZSh2YWx1ZSksIGhhc2gpOwogICAgIGlmICghYnVja2V0
KQotICAgICAgICByZXR1cm4gdm0uc2VudGluZWxNYXBCdWNrZXQuZ2V0KCk7CisgICAgICAgIHJl
dHVybiB2bS5zZW50aW5lbE1hcEJ1Y2tldCgpOwogICAgIHJldHVybiBidWNrZXQ7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXgg
MjkxMTI4OGVkZThkNTY5OTA2NmQwZDExZmYyYjdmZDRiMjlkZTEyMS4uOWU3OWE1YThkMDU3NDA1
YTU3N2Q3ZTdjNWNiMjBjODM0NDZjZDMwNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTExNzkyLDEwICsxMTc5MiwxMCBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0TWFwQnVja2V0TmV4dChOb2RlKiBub2RlKQogICAg
IG5vdEJ1Y2tldC5saW5rKCZtX2ppdCk7CiAgICAgSlNDZWxsKiBzZW50aW5lbCA9IG51bGxwdHI7
CiAgICAgaWYgKG5vZGUtPmJ1Y2tldE93bmVyVHlwZSgpID09IEJ1Y2tldE93bmVyVHlwZTo6TWFw
KQotICAgICAgICBzZW50aW5lbCA9IG1faml0LnZtKCktPnNlbnRpbmVsTWFwQnVja2V0LmdldCgp
OworICAgICAgICBzZW50aW5lbCA9IG1faml0LnZtKCktPnNlbnRpbmVsTWFwQnVja2V0KCk7CiAg
ICAgZWxzZSB7CiAgICAgICAgIEFTU0VSVChub2RlLT5idWNrZXRPd25lclR5cGUoKSA9PSBCdWNr
ZXRPd25lclR5cGU6OlNldCk7Ci0gICAgICAgIHNlbnRpbmVsID0gbV9qaXQudm0oKS0+c2VudGlu
ZWxTZXRCdWNrZXQuZ2V0KCk7CisgICAgICAgIHNlbnRpbmVsID0gbV9qaXQudm0oKS0+c2VudGlu
ZWxTZXRCdWNrZXQoKTsKICAgICB9CiAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tUHRyOjp3ZWFr
UG9pbnRlcihtX2ppdC5ncmFwaCgpLCBzZW50aW5lbCksIHJlc3VsdEdQUik7CiAgICAgZG9uZS5s
aW5rKCZtX2ppdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcAppbmRleCBkYjhkZjg5NGUzMzYyNjFjZWY1YjZkMzNlYWQ4NTdjNzhmODk0
YjgyLi40NGIyM2ZmMjEzYjIyZDZlZWI3NDdjOTVlNTFhZjM0ZTNjYzhmYzIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTQy
MTcsOSArNDIxNyw5IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkK
IAogICAgICAgICBub3RQcmVzZW50SW5UYWJsZS5saW5rKCZtX2ppdCk7CiAgICAgICAgIGlmIChu
b2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gTWFwT2JqZWN0VXNlKQotICAgICAgICAgICAgbV9q
aXQubW92ZShUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2ppdC5ncmFwaCgpLCBtX2ppdC52
bSgpLT5zZW50aW5lbE1hcEJ1Y2tldC5nZXQoKSksIHJlc3VsdEdQUik7CisgICAgICAgICAgICBt
X2ppdC5tb3ZlKFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1faml0LmdyYXBoKCksIG1faml0
LnZtKCktPnNlbnRpbmVsTWFwQnVja2V0KCkpLCByZXN1bHRHUFIpOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1faml0Lmdy
YXBoKCksIG1faml0LnZtKCktPnNlbnRpbmVsU2V0QnVja2V0LmdldCgpKSwgcmVzdWx0R1BSKTsK
KyAgICAgICAgICAgIG1faml0Lm1vdmUoVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9qaXQu
Z3JhcGgoKSwgbV9qaXQudm0oKS0+c2VudGluZWxTZXRCdWNrZXQoKSksIHJlc3VsdEdQUik7CiAg
ICAgICAgIGRvbmUubGluaygmbV9qaXQpOwogICAgICAgICBjZWxsUmVzdWx0KHJlc3VsdEdQUiwg
bm9kZSk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExM
b3dlckRGR1RvQjMuY3BwCmluZGV4IDg3ZGU5YmFiYTA1YzFjZWRjODQzZmQ3NTEyNDBhODA1YTkw
MjczNGUuLmY4YTc5MTIxODk0Y2QzMDE0N2UwZmI4Yjg5ZTkxNDIwYjIxMjYzZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTk3NDQsOSAr
OTc0NCw5IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG5v
dFByZXNlbnRJblRhYmxlLCBjb250aW51YXRpb24pOwogICAgICAgICBWYWx1ZUZyb21CbG9jayBu
b3RQcmVzZW50UmVzdWx0OwogICAgICAgICBpZiAobV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkg
PT0gTWFwT2JqZWN0VXNlKQotICAgICAgICAgICAgbm90UHJlc2VudFJlc3VsdCA9IG1fb3V0LmFu
Y2hvcih3ZWFrUG9pbnRlcih2bSgpLnNlbnRpbmVsTWFwQnVja2V0LmdldCgpKSk7CisgICAgICAg
ICAgICBub3RQcmVzZW50UmVzdWx0ID0gbV9vdXQuYW5jaG9yKHdlYWtQb2ludGVyKHZtKCkuc2Vu
dGluZWxNYXBCdWNrZXQoKSkpOwogICAgICAgICBlbHNlIGlmIChtX25vZGUtPmNoaWxkMSgpLnVz
ZUtpbmQoKSA9PSBTZXRPYmplY3RVc2UpCi0gICAgICAgICAgICBub3RQcmVzZW50UmVzdWx0ID0g
bV9vdXQuYW5jaG9yKHdlYWtQb2ludGVyKHZtKCkuc2VudGluZWxTZXRCdWNrZXQuZ2V0KCkpKTsK
KyAgICAgICAgICAgIG5vdFByZXNlbnRSZXN1bHQgPSBtX291dC5hbmNob3Iod2Vha1BvaW50ZXIo
dm0oKS5zZW50aW5lbFNldEJ1Y2tldCgpKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0
aW9uKTsKQEAgLTk3OTIsMTAgKzk3OTIsMTAgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAg
ICAgbV9vdXQuYXBwZW5kVG8obm9CdWNrZXQsIGhhc0J1Y2tldCk7CiAgICAgICAgIFZhbHVlRnJv
bUJsb2NrIG5vQnVja2V0UmVzdWx0OwogICAgICAgICBpZiAobV9ub2RlLT5idWNrZXRPd25lclR5
cGUoKSA9PSBCdWNrZXRPd25lclR5cGU6Ok1hcCkKLSAgICAgICAgICAgIG5vQnVja2V0UmVzdWx0
ID0gbV9vdXQuYW5jaG9yKHdlYWtQb2ludGVyKHZtKCkuc2VudGluZWxNYXBCdWNrZXQuZ2V0KCkp
KTsKKyAgICAgICAgICAgIG5vQnVja2V0UmVzdWx0ID0gbV9vdXQuYW5jaG9yKHdlYWtQb2ludGVy
KHZtKCkuc2VudGluZWxNYXBCdWNrZXQoKSkpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAg
IEFTU0VSVChtX25vZGUtPmJ1Y2tldE93bmVyVHlwZSgpID09IEJ1Y2tldE93bmVyVHlwZTo6U2V0
KTsKLSAgICAgICAgICAgIG5vQnVja2V0UmVzdWx0ID0gbV9vdXQuYW5jaG9yKHdlYWtQb2ludGVy
KHZtKCkuc2VudGluZWxTZXRCdWNrZXQuZ2V0KCkpKTsKKyAgICAgICAgICAgIG5vQnVja2V0UmVz
dWx0ID0gbV9vdXQuYW5jaG9yKHdlYWtQb2ludGVyKHZtKCkuc2VudGluZWxTZXRCdWNrZXQoKSkp
OwogICAgICAgICB9CiAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwQ29uc3RydWN0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwQ29uc3RydWN0b3IuY3BwCmluZGV4IDc4
ZTUzNGJjMDZjOTE0ZTdiZDg1MTAxMGU3NGY0OTdiODQ3MGJjZWYuLjVlZTJjYmYyNTg2NjJjNmQz
MWQ1NjIxOWY5YzBjYjJlYTJmYmY1NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL01hcENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9NYXBDb25zdHJ1Y3Rvci5jcHAKQEAgLTEzNiw3ICsxMzYsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByaXZhdGVGdW5jTWFwQnVja2V0TmV4dChFeGVjU3RhdGUq
IGV4ZWMpCiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGJ1Y2tldCk7CiAgICAg
ICAgIGJ1Y2tldCA9IGJ1Y2tldC0+bmV4dCgpOwogICAgIH0KLSAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGV4ZWMtPnZtKCkuc2VudGluZWxNYXBCdWNrZXQuZ2V0KCkpOworICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoZXhlYy0+dm0oKS5zZW50aW5lbE1hcEJ1Y2tldCgpKTsKIH0KIAogRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQcml2YXRlRnVuY01hcEJ1Y2tldEtleShFeGVj
U3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
ZXRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRDb25z
dHJ1Y3Rvci5jcHAKaW5kZXggMDBiN2Y5MzI5NGUyOWNlMjk1ZDhmMTM2YWY5MDcxODgxZTA4YmE4
ZC4uZjYwYmZjZTYwMGQ5ZWIwMjQwYTJhYTE0YWZlMjcxY2Y4NDNiNjc0OSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0b3IuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldENvbnN0cnVjdG9yLmNwcApAQCAtMTIyLDcg
KzEyMiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc2V0UHJpdmF0ZUZ1bmNTZXRC
dWNrZXROZXh0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoYnVja2V0KTsKICAgICAgICAgYnVja2V0ID0gYnVja2V0LT5uZXh0KCk7CiAgICAgfQot
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZXhlYy0+dm0oKS5zZW50aW5lbFNldEJ1Y2tldC5n
ZXQoKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShleGVjLT52bSgpLnNlbnRpbmVsU2V0
QnVja2V0KCkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNldFByaXZhdGVG
dW5jU2V0QnVja2V0S2V5KEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNLmNwcAppbmRleCAwZDFlZmM5NGM0MDEzYmQyZjNiM2JiOTcxNWFhMTcxZjZkZThmOWM4Li4x
NWE3MmRlZWJkYWU0ZmM5ZGE2MjYzMmY5YjA1ZGM4Y2MxMTU5NDQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVk0uY3BwCkBAIC00MDEsOCArNDAxLDExIEBAIFZNOjpWTShWTVR5cGUgdm1U
eXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICBiaWdJbnRTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBK
U0JpZ0ludDo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCAwLCBqc051bGwoKSkpOwogICAgIGV4ZWN1
dGFibGVUb0NvZGVCbG9ja0VkZ2VTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBFeGVjdXRhYmxlVG9Db2Rl
QmxvY2tFZGdlOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIG51bGxwdHIsIGpzTnVsbCgpKSk7CiAK
LSAgICBzZW50aW5lbFNldEJ1Y2tldC5zZXQoKnRoaXMsIEpTU2V0OjpCdWNrZXRUeXBlOjpjcmVh
dGVTZW50aW5lbCgqdGhpcykpOwotICAgIHNlbnRpbmVsTWFwQnVja2V0LnNldCgqdGhpcywgSlNN
YXA6OkJ1Y2tldFR5cGU6OmNyZWF0ZVNlbnRpbmVsKCp0aGlzKSk7CisgICAgLy8gRWFnZXJseSBp
bml0aWFsaXplIGNvbnN0YW50IGNlbGxzIGlmIGNvbmN1cnJlbnQgY29tcGlsZXIgY2FuIHRvdWNo
LgorICAgIGlmIChjYW5Vc2VKSVQoKSkgeworICAgICAgICBzZW50aW5lbE1hcEJ1Y2tldCgpOwor
ICAgICAgICBzZW50aW5lbFNldEJ1Y2tldCgpOworICAgIH0KIAogICAgIFRocmVhZDo6Y3VycmVu
dCgpLnNldEN1cnJlbnRBdG9taWNTdHJpbmdUYWJsZShleGlzdGluZ0VudHJ5QXRvbWljU3RyaW5n
VGFibGUpOwogCkBAIC0xMjg0LDYgKzEyODcsMjMgQEAgRFlOQU1JQ19TUEFDRV9BTkRfU0VUX0RF
RklORV9NRU1CRVJfU0xPVyhtb2R1bGVQcm9ncmFtRXhlY3V0YWJsZVNwYWNlLCBkZXN0cnVjdGkK
IAogI3VuZGVmIERZTkFNSUNfU1BBQ0VfQU5EX1NFVF9ERUZJTkVfTUVNQkVSX1NMT1cKIAorCitK
U0NlbGwqIFZNOjpzZW50aW5lbFNldEJ1Y2tldFNsb3coKQoreworICAgIEFTU0VSVCghbV9zZW50
aW5lbFNldEJ1Y2tldCk7CisgICAgYXV0byogc2VudGluZWwgPSBKU1NldDo6QnVja2V0VHlwZTo6
Y3JlYXRlU2VudGluZWwoKnRoaXMpOworICAgIG1fc2VudGluZWxTZXRCdWNrZXQuc2V0KCp0aGlz
LCBzZW50aW5lbCk7CisgICAgcmV0dXJuIHNlbnRpbmVsOworfQorCitKU0NlbGwqIFZNOjpzZW50
aW5lbE1hcEJ1Y2tldFNsb3coKQoreworICAgIEFTU0VSVCghbV9zZW50aW5lbE1hcEJ1Y2tldCk7
CisgICAgYXV0byogc2VudGluZWwgPSBKU01hcDo6QnVja2V0VHlwZTo6Y3JlYXRlU2VudGluZWwo
KnRoaXMpOworICAgIG1fc2VudGluZWxNYXBCdWNrZXQuc2V0KCp0aGlzLCBzZW50aW5lbCk7Cisg
ICAgcmV0dXJuIHNlbnRpbmVsOworfQorCiBKU0dsb2JhbE9iamVjdCogVk06OnZtRW50cnlHbG9i
YWxPYmplY3QoY29uc3QgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpIGNvbnN0CiB7CiAgICAgaWYgKGNh
bGxGcmFtZSAmJiBjYWxsRnJhbWUtPmlzR2xvYmFsRXhlYygpKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVk0uaAppbmRleCA1YWIzNTJmZjYxYzU3MmY4NzQzNjYxNGZmZDIwNTU1YjMzOTc2ZTBj
Li44NGNjY2RhZGRkOTU0OGM3ZDZiMTRmYmQ1MDdjYmE2YjZkZTQ4MGVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1ZNLmgKQEAgLTUzOSw4ICs1MzksOSBAQCBjbGFzcyBWTSA6IHB1YmxpYyBU
aHJlYWRTYWZlUmVmQ291bnRlZDxWTT4sIHB1YmxpYyBEb3VibHlMaW5rZWRMaXN0Tm9kZTxWTT4g
ewogICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IGV4ZWN1dGFibGVUb0NvZGVCbG9ja0VkZ2VTdHJ1Y3R1
cmU7CiAKICAgICBTdHJvbmc8SlNDZWxsPiBlbXB0eVByb3BlcnR5TmFtZUVudW1lcmF0b3I7Ci0g
ICAgU3Ryb25nPEpTQ2VsbD4gc2VudGluZWxTZXRCdWNrZXQ7Ci0gICAgU3Ryb25nPEpTQ2VsbD4g
c2VudGluZWxNYXBCdWNrZXQ7CisKKyAgICBTdHJvbmc8SlNDZWxsPiBtX3NlbnRpbmVsU2V0QnVj
a2V0OworICAgIFN0cm9uZzxKU0NlbGw+IG1fc2VudGluZWxNYXBCdWNrZXQ7CiAKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8UHJvbWlzZURlZmVycmVkVGltZXI+IHByb21pc2VEZWZlcnJlZFRpbWVyOwog
ICAgIApAQCAtNTYyLDYgKzU2MywyMiBAQCBjbGFzcyBWTSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVm
Q291bnRlZDxWTT4sIHB1YmxpYyBEb3VibHlMaW5rZWRMaXN0Tm9kZTxWTT4gewogICAgIEF0b21p
Y1N0cmluZ1RhYmxlKiBhdG9taWNTdHJpbmdUYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXRvbWlj
U3RyaW5nVGFibGU7IH0KICAgICBXVEY6OlN5bWJvbFJlZ2lzdHJ5JiBzeW1ib2xSZWdpc3RyeSgp
IHsgcmV0dXJuIG1fc3ltYm9sUmVnaXN0cnk7IH0KIAorICAgIEpTQ2VsbCogc2VudGluZWxTZXRC
dWNrZXQoKQorICAgIHsKKyAgICAgICAgaWYgKExJS0VMWShtX3NlbnRpbmVsU2V0QnVja2V0KSkK
KyAgICAgICAgICAgIHJldHVybiBtX3NlbnRpbmVsU2V0QnVja2V0LmdldCgpOworICAgICAgICBy
ZXR1cm4gc2VudGluZWxTZXRCdWNrZXRTbG93KCk7CisgICAgfQorICAgIEpTQ2VsbCogc2VudGlu
ZWxTZXRCdWNrZXRTbG93KCk7CisKKyAgICBKU0NlbGwqIHNlbnRpbmVsTWFwQnVja2V0KCkKKyAg
ICB7CisgICAgICAgIGlmIChMSUtFTFkobV9zZW50aW5lbE1hcEJ1Y2tldCkpCisgICAgICAgICAg
ICByZXR1cm4gbV9zZW50aW5lbE1hcEJ1Y2tldC5nZXQoKTsKKyAgICAgICAgcmV0dXJuIHNlbnRp
bmVsTWFwQnVja2V0U2xvdygpOworICAgIH0KKyAgICBKU0NlbGwqIHNlbnRpbmVsTWFwQnVja2V0
U2xvdygpOworCiAgICAgV2Vha0dDTWFwPFN5bWJvbEltcGwqLCBTeW1ib2wsIFB0ckhhc2g8U3lt
Ym9sSW1wbCo+PiBzeW1ib2xJbXBsVG9TeW1ib2xNYXA7CiAKICAgICBlbnVtIGNsYXNzIERlbGV0
ZVByb3BlcnR5TW9kZSB7Cg==
</data>
<flag name="review"
          id="379431"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>