<?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>214627</bug_id>
          
          <creation_ts>2020-07-21 22:04:09 -0700</creation_ts>
          <short_desc>Scrolling tesla.com on iPad is not smooth</short_desc>
          <delta_ts>2020-08-16 18:34:49 -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>Scrolling</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=173887</see_also>
          <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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>amit23.lfc</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>jamesr</cc>
    
    <cc>koivisto</cc>
    
    <cc>krollin</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1673746</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-07-21 22:04:09 -0700</bug_when>
    <thetext>Scrolling tesla.com on iPad is not smooth</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673747</commentid>
    <comment_count>1</comment_count>
      <attachid>404900</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-07-21 22:09:02 -0700</bug_when>
    <thetext>Created attachment 404900
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673748</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-07-21 22:09:05 -0700</bug_when>
    <thetext>&lt;rdar://problem/65568979&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673865</commentid>
    <comment_count>3</comment_count>
      <attachid>404900</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-07-22 09:51:37 -0700</bug_when>
    <thetext>Comment on attachment 404900
Patch

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

Sbould make sure that a page that goes into the page cache with an active scroll comes out of it without one, probably?

&gt; Source/WebKit/Shared/RemoteLayerTree/RemoteScrollingUIState.h:50
&gt; +    RemoteScrollingUIState() = default;

Isn&apos;t this line needless?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673866</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-07-22 09:52:03 -0700</bug_when>
    <thetext>(or the process-swappy-cache, which ... might be the same?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673871</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-22 10:04:02 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #4)
&gt; (or the process-swappy-cache, which ... might be the same?)

It is called back/forward cache now and is the same whether you proses-swap or not :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673872</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-22 10:06:51 -0700</bug_when>
    <thetext>Cc&apos;ing Keith because he cares :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673883</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-07-22 10:48:54 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/264704/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680211</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-08-13 21:11:16 -0700</bug_when>
    <thetext>*** Bug 215254 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404900</attachid>
            <date>2020-07-21 22:09:02 -0700</date>
            <delta_ts>2020-07-22 09:51:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214627-20200721220901.patch</filename>
            <type>text/plain</type>
            <size>36427</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NDQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTdlNmQ4YzZkNWU4YjQz
N2M3ZTU2ZjBlMzBiNmM3NjU4MzdhOTFlOS4uYWNiNTkyZTU1MzcyNzM0YzliODdkNmViYzI5ZGYz
YzkyYjVkY2Y1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTA3LTIxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNjcm9sbGluZyB0
ZXNsYS5jb20gb24gaVBhZCBpcyBub3Qgc21vb3RoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ2MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBmYXN0L3Njcm9sbGluZy9pb3MvYWRqdXN0LXNj
cm9sbC1zbmFwLWR1cmluZy1nZXN0dXJlLmh0bWwKKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzY3JvbGxp
bmdUcmVlTm9kZVdpbGxTdGFydFBhbkdlc3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVXaWxsU3RhcnRTY3JvbGwpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRFbmRTY3JvbGwpOgorCiAy
MDIwLTA3LTE1ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkIGZvbGxvd3VwLCB1c2UgYG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyYCBpbnN0
ZWFkIG9mIGAweEZGRkNgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJiZmE1OWJiZTI0YTU3MDFlMmMwMWRjZDA2ZjQz
ZmI4NTRmNjJiMjguLjQzNDFiMDFlYzQzYTA4ZGIzNzE2ZGIwNmRmNDRlMDg0MDVkNWI2ZjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMjAtMDctMjEgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgU2Nyb2xsaW5nIHRlc2xhLmNvbSBvbiBpUGFk
IGlzIG5vdCBzbW9vdGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNDYyNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjU1Njg5Nzk+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyB0aGUgaU9T
IGVxdWl2YWxlbnQgb2YgdGhlIGZpeCBpbiByMjY0MjAzOyBpZiB0aGUgdXNlciBpcyBzY3JvbGxp
bmcgKG9yIHdlJ3JlIGFuaW1hdGluZyBmb3IKKyAgICAgICAgc2Nyb2xsIHNuYXApLCBsYXlvdXQg
c2hvdWxkIG5vdCB0cmlnZ2VyIHNjcm9sbCBwb3NpdGlvbiBjaGFuZ2VzIHZpYSBjb21wdXRhdGlv
biBvZiB0aGUgY3VycmVudCBzbmFwCisgICAgICAgIGxvY2F0aW9uLgorCisgICAgICAgIFRvIGZp
eCB0aGlzLCB3ZSBuZWVkIHRvIHNlbmQgZGF0YSBmcm9tIHRoZSBVSSBwcm9jZXNzIHRvIHRoZSB3
ZWIgcHJvY2VzcyBhYm91dCB3aGljaCBzY3JvbGxpbmcgdHJlZQorICAgICAgICBub2RlcyB0aGUg
dXNlciBpcyBzY3JvbGxpbmcuIFRoYXQncyBkb25lIHZpYSBSZW1vdGVTY3JvbGxpbmdVSVN0YXRl
LCB3aGljaCB3aWxsLCBpbiB0aGUgbG9uZyB0ZXJtLAorICAgICAgICBiZWNvbWUgYSBtb3JlIGdl
bmVyYWwgVUkgLT4gV2ViUHJvY2VzcyBzY3JvbGxpbmcgc3RhdGUgdXBkYXRpbmcgbWVjaGFuaXNt
LiBGb3Igbm93LCBpdCBqdXN0IGtlZXBzCisgICAgICAgIHRyYWNrIG9mIG5vZGVzIHVuZGVyZ29p
bmcgc2Nyb2xsIHNuYXAgYW5kIHVzZXIgc2Nyb2xscyAob25seSB0aGUgbGF0dGVyIGlzIGhvb2tl
ZCB1cCBmb3Igbm93KS4KKworICAgICAgICAqIFNoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
U2Nyb2xsaW5nVUlTdGF0ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3Jv
bGxpbmdVSVN0YXRlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3Jv
bGxpbmdVSVN0YXRlOjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdV
SVN0YXRlOjphZGROb2RlV2l0aEFjdGl2ZVNjcm9sbFNuYXApOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVTY3JvbGxpbmdVSVN0YXRlOjpyZW1vdmVOb2RlV2l0aEFjdGl2ZVNjcm9sbFNuYXApOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdVSVN0YXRlOjphZGROb2RlV2l0aEFjdGl2
ZVVzZXJTY3JvbGwpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdVSVN0YXRlOjpy
ZW1vdmVOb2RlV2l0aEFjdGl2ZVVzZXJTY3JvbGwpOgorICAgICAgICAqIFNoYXJlZC9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVUlTdGF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlU2Nyb2xsaW5nVUlTdGF0ZTo6Y2hhbmdlcyBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVNjcm9sbGluZ1VJU3RhdGU6OmNsZWFyQ2hhbmdlcyk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVNjcm9sbGluZ1VJU3RhdGU6Om5vZGVzV2l0aEFjdGl2ZVNjcm9sbFNuYXAgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdVSVN0YXRlOjpub2Rlc1dpdGhB
Y3RpdmVVc2VyU2Nyb2xscyBjb25zdCk6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
clByb3h5OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2VuZFVJU3RhdGVDaGFuZ2VkSWZO
ZWNlc3NhcnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNj
cm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlV2lsbFN0YXJ0UGFuR2VzdHVyZSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlV2lsbFN0
YXJ0U2Nyb2xsKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xs
aW5nVHJlZU5vZGVEaWRFbmRTY3JvbGwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvaW9zL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHlJT1MubW06CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbFZpZXdG
b3JTY3JvbGxpbmdOb2RlSUQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZVdpbGxTdGFydFBhbkdlc3R1cmUp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3Jv
bGxpbmdUcmVlTm9kZVdpbGxTdGFydFNjcm9sbCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlRGlkRW5kU2Nyb2xsKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxXaWxsU3RhcnQgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxE
aWRFbmQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlSU9TOjpzY3JvbGxWaWV3V2lsbFN0YXJ0UGFuR2VzdHVyZSBjb25zdCk6CisgICAg
ICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3IubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmlzVXNlclNjcm9sbEluUHJv
Z3Jlc3MgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
cjo6aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxpbmdTdGF0ZUluVUlQcm9jZXNzQ2hhbmdlZCk6
CisKIDIwMjAtMDctMTUgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJldmVydCBwYXJ0IG9mIHIyNjQzODUuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmgKaW5kZXggZWQ5NjA1NmI2YmI3NTA5NGI2ZjkzN2UyM2M2OGZjYTBmM2U0NDE5MS4uYzc5ZWJk
MGM5NTczZGVhOWZhNmU0ZGExZTdiOWE3NzVlZWZmYTk2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApA
QCAtMTMwLDEyICsxMzAsMTMgQEAgcHJpdmF0ZToKIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wg
aXNVc2VyU2Nyb2xsSW5Qcm9ncmVzcyhTY3JvbGxpbmdOb2RlSUQpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIGJvb2wgaXNSdWJiZXJCYW5kSW5Qcm9ncmVzcygpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZv
aWQgc2V0U2Nyb2xsUGlubmluZ0JlaGF2aW9yKFNjcm9sbFBpbm5pbmdCZWhhdmlvcikgb3ZlcnJp
ZGU7CiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQotICAgIGJvb2wgaXNTY3JvbGxTbmFw
SW5Qcm9ncmVzcyhTY3JvbGxpbmdOb2RlSUQpIGNvbnN0IG92ZXJyaWRlOworICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgaXNTY3JvbGxTbmFwSW5Qcm9ncmVzcyhTY3JvbGxpbmdOb2RlSUQpIGNvbnN0
IG92ZXJyaWRlOwogI2VuZGlmCiAKKyAgICB2b2lkIHNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcihT
Y3JvbGxQaW5uaW5nQmVoYXZpb3IpIG92ZXJyaWRlOworCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCByZWNvbmNpbGVWaWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJQb3NpdGlvbnMoU2Nyb2xsaW5nTm9k
ZUlELCBjb25zdCBMYXlvdXRSZWN0JiB2aWV3cG9ydFJlY3QsIFNjcm9sbGluZ0xheWVyUG9zaXRp
b25BY3Rpb24pIG92ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2Nyb2xsYWJsZUFy
ZWFTY3JvbGxiYXJMYXllckRpZENoYW5nZShTY3JvbGxhYmxlQXJlYSYsIFNjcm9sbGJhck9yaWVu
dGF0aW9uKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nVHJlZS5oCmluZGV4IDMxODVkOWJiODhmYzFkZjEwOTNmZDNmYjYyYjUyYWU2YWI0ZGY3
MTMuLjFiODQ1MDdiZWE1MGZmM2Y5YWVhNTQ3MWRmOWE1NGZiNzljNDY4MDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKQEAgLTEzMyw5ICsxMzMs
OSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlcG9ydEV4cG9zZWRVbmZpbGxlZEFyZWEo
TW9ub3RvbmljVGltZSwgdW5zaWduZWQgLyogdW5maWxsZWRBcmVhICovKSB7IH0KIAogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCi0gICAgdmlydHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlV2ls
bFN0YXJ0UGFuR2VzdHVyZSgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9k
ZVdpbGxTdGFydFNjcm9sbCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9k
ZURpZEVuZFNjcm9sbCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZVdp
bGxTdGFydFBhbkdlc3R1cmUoU2Nyb2xsaW5nTm9kZUlEKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
c2Nyb2xsaW5nVHJlZU5vZGVXaWxsU3RhcnRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRFbmRTY3JvbGwoU2Nyb2xsaW5nTm9k
ZUlEKSB7IH0KICNlbmRpZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgVHJhY2tpbmdUeXBlIGV2ZW50
VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnROYW1lLCBJbnRQb2lu
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nVUlTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXll
clRyZWUvUmVtb3RlU2Nyb2xsaW5nVUlTdGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDU4YThlYTJkYThi
ZDJiMjZkYjM1Mzg1ODE0ZTNkODM0M2Q4Y2I2NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdVSVN0YXRlLmNwcApA
QCAtMCwwICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0
ICJSZW1vdGVTY3JvbGxpbmdVSVN0YXRlLmgiCisKKyNpbXBvcnQgIkFyZ3VtZW50Q29kZXJzLmgi
CisjaW1wb3J0IDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
Cit2b2lkIFJlbW90ZVNjcm9sbGluZ1VJU3RhdGU6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29k
ZXIpIGNvbnN0Cit7CisgICAgZW5jb2Rlci5lbmNvZGUobV9jaGFuZ2VzKTsKKworICAgIGlmICht
X2NoYW5nZXMuY29udGFpbnMoQ2hhbmdlczo6U2Nyb2xsU25hcE5vZGVzKSkKKyAgICAgICAgZW5j
b2RlciA8PCBtX25vZGVzV2l0aEFjdGl2ZVNjcm9sbFNuYXA7CisKKyAgICBpZiAobV9jaGFuZ2Vz
LmNvbnRhaW5zKENoYW5nZXM6OlVzZXJTY3JvbGxOb2RlcykpCisgICAgICAgIGVuY29kZXIgPDwg
bV9ub2Rlc1dpdGhBY3RpdmVVc2VyU2Nyb2xsczsKK30KKworT3B0aW9uYWw8UmVtb3RlU2Nyb2xs
aW5nVUlTdGF0ZT4gUmVtb3RlU2Nyb2xsaW5nVUlTdGF0ZTo6ZGVjb2RlKElQQzo6RGVjb2RlciYg
ZGVjb2RlcikKK3sKKyAgICBSZW1vdGVTY3JvbGxpbmdVSVN0YXRlIHVpU3RhdGU7CisKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHVpU3RhdGUubV9jaGFuZ2VzKSkKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgIGlmICh1aVN0YXRlLm1fY2hhbmdlcy5jb250YWlucyhDaGFuZ2Vz
OjpTY3JvbGxTbmFwTm9kZXMpKSB7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUodWlTdGF0
ZS5tX25vZGVzV2l0aEFjdGl2ZVNjcm9sbFNuYXApKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKKyAgICB9CisKKyAgICBpZiAodWlTdGF0ZS5tX2NoYW5nZXMuY29udGFpbnMoQ2hh
bmdlczo6VXNlclNjcm9sbE5vZGVzKSkgeworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHVp
U3RhdGUubV9ub2Rlc1dpdGhBY3RpdmVVc2VyU2Nyb2xscykpCisgICAgICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworICAgIH0KKworICAgIHJldHVybiB1aVN0YXRlOworfQorCit2b2lkIFJl
bW90ZVNjcm9sbGluZ1VJU3RhdGU6OmFkZE5vZGVXaXRoQWN0aXZlU2Nyb2xsU25hcChXZWJDb3Jl
OjpTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQoreworICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9ub2Rl
c1dpdGhBY3RpdmVTY3JvbGxTbmFwLmFkZChub2RlSUQpOworICAgIGlmIChhZGRSZXN1bHQuaXNO
ZXdFbnRyeSkKKyAgICAgICAgbV9jaGFuZ2VzLmFkZChDaGFuZ2VzOjpTY3JvbGxTbmFwTm9kZXMp
OworfQorCit2b2lkIFJlbW90ZVNjcm9sbGluZ1VJU3RhdGU6OnJlbW92ZU5vZGVXaXRoQWN0aXZl
U2Nyb2xsU25hcChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQoreworICAgIGlmICht
X25vZGVzV2l0aEFjdGl2ZVNjcm9sbFNuYXAucmVtb3ZlKG5vZGVJRCkpCisgICAgICAgIG1fY2hh
bmdlcy5hZGQoQ2hhbmdlczo6U2Nyb2xsU25hcE5vZGVzKTsKK30KKwordm9pZCBSZW1vdGVTY3Jv
bGxpbmdVSVN0YXRlOjphZGROb2RlV2l0aEFjdGl2ZVVzZXJTY3JvbGwoV2ViQ29yZTo6U2Nyb2xs
aW5nTm9kZUlEIG5vZGVJRCkKK3sKKyAgICBhdXRvIGFkZFJlc3VsdCA9IG1fbm9kZXNXaXRoQWN0
aXZlVXNlclNjcm9sbHMuYWRkKG5vZGVJRCk7CisgICAgaWYgKGFkZFJlc3VsdC5pc05ld0VudHJ5
KQorICAgICAgICBtX2NoYW5nZXMuYWRkKENoYW5nZXM6OlVzZXJTY3JvbGxOb2Rlcyk7Cit9CisK
K3ZvaWQgUmVtb3RlU2Nyb2xsaW5nVUlTdGF0ZTo6cmVtb3ZlTm9kZVdpdGhBY3RpdmVVc2VyU2Ny
b2xsKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCBub2RlSUQpCit7CisgICAgaWYgKG1fbm9kZXNX
aXRoQWN0aXZlVXNlclNjcm9sbHMucmVtb3ZlKG5vZGVJRCkpCisgICAgICAgIG1fY2hhbmdlcy5h
ZGQoQ2hhbmdlczo6VXNlclNjcm9sbE5vZGVzKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
U2Nyb2xsaW5nVUlTdGF0ZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZVNjcm9sbGluZ1VJU3RhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzYyZTNiNmVlMTIzNDkxOWEw
MzAzNGIxNWIwOGNmMzg3MTdiZTA3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1VJU3RhdGUuaApAQCAtMCwwICsx
LDg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvSGFzaFNl
dC5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFz
cyBEZWNvZGVyOworY2xhc3MgRW5jb2RlcjsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgewordXNp
bmcgU2Nyb2xsaW5nTm9kZUlEID0gdWludDY0X3Q7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBSZW1vdGVTY3JvbGxpbmdVSVN0YXRlIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBlbnVtIGNsYXNzIENoYW5nZXMgOiB1aW50OF90IHsKKyAgICAg
ICAgU2Nyb2xsU25hcE5vZGVzICAgICA9IDEgPDwgMCwKKyAgICAgICAgVXNlclNjcm9sbE5vZGVz
ICAgICA9IDEgPDwgMSwKKyAgICB9OworCisgICAgUmVtb3RlU2Nyb2xsaW5nVUlTdGF0ZSgpID0g
ZGVmYXVsdDsKKworICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OworICAgIHN0
YXRpYyBPcHRpb25hbDxSZW1vdGVTY3JvbGxpbmdVSVN0YXRlPiBkZWNvZGUoSVBDOjpEZWNvZGVy
Jik7CisKKyAgICBPcHRpb25TZXQ8Q2hhbmdlcz4gY2hhbmdlcygpIGNvbnN0IHsgcmV0dXJuIG1f
Y2hhbmdlczsgfQorICAgIHZvaWQgY2xlYXJDaGFuZ2VzKCkgeyBtX2NoYW5nZXMgPSB7IH07IH0K
KworICAgIGNvbnN0IEhhc2hTZXQ8V2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEPiYgbm9kZXNXaXRo
QWN0aXZlU2Nyb2xsU25hcCgpIGNvbnN0IHsgcmV0dXJuIG1fbm9kZXNXaXRoQWN0aXZlU2Nyb2xs
U25hcDsgfQorICAgIHZvaWQgYWRkTm9kZVdpdGhBY3RpdmVTY3JvbGxTbmFwKFdlYkNvcmU6OlNj
cm9sbGluZ05vZGVJRCk7CisgICAgdm9pZCByZW1vdmVOb2RlV2l0aEFjdGl2ZVNjcm9sbFNuYXAo
V2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEKTsKKyAgICAKKyAgICBjb25zdCBIYXNoU2V0PFdlYkNv
cmU6OlNjcm9sbGluZ05vZGVJRD4mIG5vZGVzV2l0aEFjdGl2ZVVzZXJTY3JvbGxzKCkgY29uc3Qg
eyByZXR1cm4gbV9ub2Rlc1dpdGhBY3RpdmVVc2VyU2Nyb2xsczsgfQorICAgIHZvaWQgYWRkTm9k
ZVdpdGhBY3RpdmVVc2VyU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCk7CisgICAgdm9p
ZCByZW1vdmVOb2RlV2l0aEFjdGl2ZVVzZXJTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlE
KTsKKworcHJpdmF0ZToKKyAgICBPcHRpb25TZXQ8Q2hhbmdlcz4gbV9jaGFuZ2VzOworICAgIEhh
c2hTZXQ8V2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEPiBtX25vZGVzV2l0aEFjdGl2ZVNjcm9sbFNu
YXA7CisgICAgSGFzaFNldDxXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQ+IG1fbm9kZXNXaXRoQWN0
aXZlVXNlclNjcm9sbHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworbmFtZXNwYWNl
IFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViS2l0OjpSZW1vdGVTY3Jv
bGxpbmdVSVN0YXRlOjpDaGFuZ2VzPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwK
KyAgICAgICAgV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdVSVN0YXRlOjpDaGFuZ2VzLAorICAgICAg
ICBXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1VJU3RhdGU6OkNoYW5nZXM6OlNjcm9sbFNuYXBOb2Rl
cywKKyAgICAgICAgV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdVSVN0YXRlOjpDaGFuZ2VzOjpVc2Vy
U2Nyb2xsTm9kZXMKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXND
b2NvYS50eHQKaW5kZXggYTg4NDA3MTYxZWYwZjkzZDAzMDBjNTFjOGZmMjcxNGQ1N2I0YjYyOS4u
MGNiMDQzNDVjNDE4ZWMxOGVlNWVhYzFkNmZhMWM3MTBiMDlkMzg2OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dApAQCAtMjIwLDYgKzIyMCw3IEBAIFNoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLm1tCiBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5tbQogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbQogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcAorU2hhcmVkL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdVSVN0YXRlLmNwcAogCiBVSVByb2Nlc3MvX1dLV2ViVmlld1By
aW50Rm9ybWF0dGVyLm1tCiBVSVByb2Nlc3MvQXBwbGljYXRpb25TdGF0ZVRyYWNrZXIubW0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAppbmRleCA1
YmZmNTIzOWRiNTIxNDM2MWFjNjNmZDQ4MWJjMjJkMzM5M2I4NDEyLi5hY2MxMWU0MjdiNDI2YTZi
NDY5YTgwZWFlZTkyODc2ZjJjZmU3NmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC00OSw4ICs0OSw2IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6UmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eShXZWJQYWdlUHJveHkmIHdlYlBhZ2VQcm94eSkKICAgICA6IG1f
d2ViUGFnZVByb3h5KHdlYlBhZ2VQcm94eSkKICAgICAsIG1fc2Nyb2xsaW5nVHJlZShSZW1vdGVT
Y3JvbGxpbmdUcmVlOjpjcmVhdGUoKnRoaXMpKQotICAgICwgbV9yZXF1ZXN0ZWRTY3JvbGxJbmZv
KG51bGxwdHIpCi0gICAgLCBtX3Byb3BhZ2F0ZXNNYWluRnJhbWVTY3JvbGxzKHRydWUpCiB7CiB9
CiAKQEAgLTI5Myw2ICsyOTEsMTUgQEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5OjpjbGVhclRvdWNoQWN0aW9uc0ZvclRvdWNoSWRlbnRpZmllcih1bnNpZ24KICAgICBtX3Rv
dWNoQWN0aW9uc0J5VG91Y2hJZGVudGlmaWVyLnJlbW92ZSh0b3VjaElkZW50aWZpZXIpOwogfQog
Cit2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNlbmRVSVN0YXRlQ2hhbmdl
ZElmTmVjZXNzYXJ5KCkKK3sKKyAgICBpZiAoIW1fdWlTdGF0ZS5jaGFuZ2VzKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fd2ViUGFnZVByb3h5LnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yOjpTY3JvbGxpbmdTdGF0ZUluVUlQcm9jZXNzQ2hhbmdlZChtX3VpU3Rh
dGUpKTsKKyAgICBtX3VpU3RhdGUuY2xlYXJDaGFuZ2VzKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKFVJX1NJREVfQ09NUE9TSVRJTkcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaAppbmRleCAzNTExY2EwNzRj
ZmU0NGM4YzcxZmRkOTc4ZmRhOGU3MWY5MGJjNmYxLi43ZWZmZDUzMGQxM2EzNmUyYzU0OWEzODIx
MWFkZWEyODMxNGZiMWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIu
aCIKICNpbmNsdWRlICJSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oIgogI2luY2x1ZGUgIlJl
bW90ZVNjcm9sbGluZ1RyZWUuaCIKKyNpbmNsdWRlICJSZW1vdGVTY3JvbGxpbmdVSVN0YXRlLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtOTQsOSArOTUsOSBAQCBwdWJs
aWM6CiAgICAgVUlTY3JvbGxWaWV3ICpzY3JvbGxWaWV3Rm9yU2Nyb2xsaW5nTm9kZUlEKFdlYkNv
cmU6OlNjcm9sbGluZ05vZGVJRCkgY29uc3Q7CiAKICAgICBXZWJDb3JlOjpGbG9hdFJlY3QgY3Vy
cmVudExheW91dFZpZXdwb3J0KCkgY29uc3Q7Ci0gICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZVdp
bGxTdGFydFBhbkdlc3R1cmUoKTsKLSAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlV2lsbFN0YXJ0
U2Nyb2xsKCk7Ci0gICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZEVuZFNjcm9sbCgpOworICAg
IHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVXaWxsU3RhcnRQYW5HZXN0dXJlKFdlYkNvcmU6OlNjcm9s
bGluZ05vZGVJRCk7CisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZVdpbGxTdGFydFNjcm9sbChX
ZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQpOworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRF
bmRTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEKTsKICNpZiBFTkFCTEUoQ1NTX1NDUk9M
TF9TTkFQKQogICAgIHZvaWQgYWRqdXN0VGFyZ2V0Q29udGVudE9mZnNldEZvclNuYXBwaW5nKENH
U2l6ZSBtYXhTY3JvbGxEaW1lbnNpb25zLCBDR1BvaW50IHZlbG9jaXR5LCBDR0Zsb2F0IHRvcElu
c2V0LCBDR1BvaW50KiB0YXJnZXRDb250ZW50T2Zmc2V0KTsKICAgICBib29sIGhhc0FjdGl2ZVNu
YXBQb2ludCgpIGNvbnN0OwpAQCAtMTIwLDE1ICsxMjEsMTggQEAgcHJpdmF0ZToKICAgICBmbG9h
dCBjbG9zZXN0U25hcE9mZnNldEZvck1haW5GcmFtZVNjcm9sbGluZyhXZWJDb3JlOjpTY3JvbGxF
dmVudEF4aXMsIGZsb2F0IHNjcm9sbERlc3RpbmF0aW9uLCBmbG9hdCB2ZWxvY2l0eSwgdW5zaWdu
ZWQmIGNsb3Nlc3RJbmRleCkgY29uc3Q7CiAjZW5kaWYKIAorICAgIHZvaWQgc2VuZFVJU3RhdGVD
aGFuZ2VkSWZOZWNlc3NhcnkoKTsKKwogICAgIFdlYlBhZ2VQcm94eSYgbV93ZWJQYWdlUHJveHk7
CiAgICAgUmVmUHRyPFJlbW90ZVNjcm9sbGluZ1RyZWU+IG1fc2Nyb2xsaW5nVHJlZTsKICAgICBI
YXNoTWFwPHVuc2lnbmVkLCBPcHRpb25TZXQ8V2ViQ29yZTo6VG91Y2hBY3Rpb24+PiBtX3RvdWNo
QWN0aW9uc0J5VG91Y2hJZGVudGlmaWVyOwotICAgIFJlcXVlc3RlZFNjcm9sbEluZm8qIG1fcmVx
dWVzdGVkU2Nyb2xsSW5mbzsKKyAgICBSZXF1ZXN0ZWRTY3JvbGxJbmZvKiBtX3JlcXVlc3RlZFNj
cm9sbEluZm8geyBudWxscHRyIH07CisgICAgUmVtb3RlU2Nyb2xsaW5nVUlTdGF0ZSBtX3VpU3Rh
dGU7CiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAgICB1bnNpZ25lZCBtX2N1cnJlbnRI
b3Jpem9udGFsU25hcFBvaW50SW5kZXggeyAwIH07CiAgICAgdW5zaWduZWQgbV9jdXJyZW50VmVy
dGljYWxTbmFwUG9pbnRJbmRleCB7IDAgfTsKICNlbmRpZgotICAgIGJvb2wgbV9wcm9wYWdhdGVz
TWFpbkZyYW1lU2Nyb2xsczsKKyAgICBib29sIG1fcHJvcGFnYXRlc01haW5GcmFtZVNjcm9sbHMg
eyB0cnVlIH07CiAgICAgSGFzaFNldDxXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxh
eWVySUQ+IG1fbGF5ZXJzV2l0aFNjcm9sbGluZ1JlbGF0aW9uczsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdU
cmVlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVT
Y3JvbGxpbmdUcmVlLmNwcAppbmRleCA0MTgzZWEyNDk0ZGQ2YmJhYzkzZGViNjZlNTU5ZWU0NGI3
ZjVhNWVmLi41NGQ0MGY4ZmUyMTdlZmNhZjk1NTY4NGFkOTgwZDEwYzM0YTE5YzdhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCkBAIC02OSwyMSArNjksMjAgQEAgdm9pZCBSZW1vdGVT
Y3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50UGhhc2UoU2Nyb2xsaW5nTm9kZUlELCBQbGF0
Zm9ybVdoZWVsRXYKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLXZvaWQgUmVt
b3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVXaWxsU3RhcnRQYW5HZXN0dXJlKCkK
K3ZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVXaWxsU3RhcnRQYW5H
ZXN0dXJlKFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCiB7Ci0gICAgbV9zY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlV2lsbFN0YXJ0UGFuR2VzdHVyZSgpOworICAgIG1f
c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZVdpbGxTdGFydFBhbkdl
c3R1cmUobm9kZUlEKTsKIH0KIAotdm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdU
cmVlTm9kZVdpbGxTdGFydFNjcm9sbCgpCit2b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9s
bGluZ1RyZWVOb2RlV2lsbFN0YXJ0U2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCiB7Ci0g
ICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlV2lsbFN0YXJ0
U2Nyb2xsKCk7CisgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVO
b2RlV2lsbFN0YXJ0U2Nyb2xsKG5vZGVJRCk7CiB9CiAKLXZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJl
ZTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRFbmRTY3JvbGwoKQordm9pZCBSZW1vdGVTY3JvbGxpbmdU
cmVlOjpzY3JvbGxpbmdUcmVlTm9kZURpZEVuZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQgbm9kZUlE
KQogewotICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZURp
ZEVuZFNjcm9sbCgpOworICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdU
cmVlTm9kZURpZEVuZFNjcm9sbChub2RlSUQpOwogfQotCiAjZW5kaWYKIAogdm9pZCBSZW1vdGVT
Y3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZSYgbm9kZSwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiBzY3JvbGxpbmdM
YXllclBvc2l0aW9uQWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmgKaW5kZXggNjU3NjBm
Y2ExMDk1ZTYzMWU4MDY2OGQyZDdhYjc4ODhiMDI2YjI3ZS4uNjM5YmQ3MzBiYjdhZmQyMTAyMzg4
Njg4ODExYWU0MmE2YWExYTQ2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCkBAIC02Myw5
ICs2Myw5IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0g
ICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZVdpbGxTdGFydFBhbkdlc3R1cmUoKSBvdmVycmlkZTsK
LSAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlV2lsbFN0YXJ0U2Nyb2xsKCkgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZEVuZFNjcm9sbCgpIG92ZXJyaWRlOworICAgIHZv
aWQgc2Nyb2xsaW5nVHJlZU5vZGVXaWxsU3RhcnRQYW5HZXN0dXJlKFdlYkNvcmU6OlNjcm9sbGlu
Z05vZGVJRCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZVdpbGxTdGFydFNj
cm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQpIG92ZXJyaWRlOworICAgIHZvaWQgc2Nyb2xs
aW5nVHJlZU5vZGVEaWRFbmRTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEKSBvdmVycmlk
ZTsKICNlbmRpZgogCiAgICAgUmVmPFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVT
Y3JvbGxpbmdUcmVlTm9kZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlVHlwZSwgV2ViQ29yZTo6U2Ny
b2xsaW5nTm9kZUlEKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eUlP
Uy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eUlPUy5tbQppbmRleCBkMWVjZWFhNmQzNWU3MjhlZTE3
NGZjOGRjMDUyNDUyNGJmMzJhNTg2Li5jMjBlMWY4ODg2Nzc3OGY1YzBjMjk1Zjg4MTM4NzZhMWM0
YzUyZDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvaW9zL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHlJT1MubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5SU9TLm1tCkBAIC01Myw3ICs1Myw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1VSVNjcm9sbFZpZXcgKlJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbFZpZXdGb3JTY3JvbGxpbmdOb2RlSUQoV2ViQ29yZTo6
U2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkgY29uc3QKK1VJU2Nyb2xsVmlldyAqUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsVmlld0ZvclNjcm9sbGluZ05vZGVJRChTY3JvbGxp
bmdOb2RlSUQgbm9kZUlEKSBjb25zdAogewogICAgIGF1dG8qIHRyZWVOb2RlID0gbV9zY3JvbGxp
bmdUcmVlLT5ub2RlRm9ySUQobm9kZUlEKTsKICAgICBpZiAoIWlzPFNjcm9sbGluZ1RyZWVPdmVy
Zmxvd1Njcm9sbGluZ05vZGU+KHRyZWVOb2RlKSkKQEAgLTEyMSwxOSArMTIxLDI1IEBAIEZsb2F0
UmVjdCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpjdXJyZW50TGF5b3V0Vmlld3Bv
cnQoKSBjb25zdAogICAgICAgICBtX3dlYlBhZ2VQcm94eS5kaXNwbGF5ZWRDb250ZW50U2NhbGUo
KSwgRnJhbWVWaWV3OjpMYXlvdXRWaWV3cG9ydENvbnN0cmFpbnQ6OlVuY29uc3RyYWluZWQpOwog
fQogCi12b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVO
b2RlV2lsbFN0YXJ0UGFuR2VzdHVyZSgpCit2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHk6OnNjcm9sbGluZ1RyZWVOb2RlV2lsbFN0YXJ0UGFuR2VzdHVyZShTY3JvbGxpbmdOb2Rl
SUQpCiB7CiAgICAgbV93ZWJQYWdlUHJveHkuc2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdXaWxsU3Rh
cnRQYW5HZXN0dXJlKCk7CiB9CiAKLXZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eTo6c2Nyb2xsaW5nVHJlZU5vZGVXaWxsU3RhcnRTY3JvbGwoKQordm9pZCBSZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZVdpbGxTdGFydFNjcm9sbChTY3Jv
bGxpbmdOb2RlSUQgbm9kZUlEKQogewogICAgIG1fd2ViUGFnZVByb3h5LnNjcm9sbGluZ05vZGVT
Y3JvbGxXaWxsU3RhcnRTY3JvbGwoKTsKKworICAgIG1fdWlTdGF0ZS5hZGROb2RlV2l0aEFjdGl2
ZVVzZXJTY3JvbGwobm9kZUlEKTsKKyAgICBzZW5kVUlTdGF0ZUNoYW5nZWRJZk5lY2Vzc2FyeSgp
OwogfQotICAgIAotdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxp
bmdUcmVlTm9kZURpZEVuZFNjcm9sbCgpCisKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRFbmRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIG5v
ZGVJRCkKIHsKICAgICBtX3dlYlBhZ2VQcm94eS5zY3JvbGxpbmdOb2RlU2Nyb2xsRGlkRW5kU2Ny
b2xsKCk7CisKKyAgICBtX3VpU3RhdGUucmVtb3ZlTm9kZVdpdGhBY3RpdmVVc2VyU2Nyb2xsKG5v
ZGVJRCk7CisgICAgc2VuZFVJU3RhdGVDaGFuZ2VkSWZOZWNlc3NhcnkoKTsKIH0KIAogdm9pZCBS
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Ojplc3RhYmxpc2hMYXllclRyZWVTY3JvbGxp
bmdSZWxhdGlvbnMoY29uc3QgUmVtb3RlTGF5ZXJUcmVlSG9zdCYgcmVtb3RlTGF5ZXJUcmVlSG9z
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9p
b3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZUlPUy5tbQppbmRleCA5YzVlNDUwMTI4YzRmMWZlMGUzZTRjNjBmMjhhZmUxM2Yw
NDc1NmE5Li44MTBhZGNkNGU1M2Y4OGEwNzU0MDIzZTg5ODBhODAxYTdjMTFmZmNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlSU9TLm1tCkBAIC0zMDgsMTcgKzMwOCwxNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVJT1M6OnJlcG9zaXRpb25TY3JvbGxpbmdMYXllcnMoKQogCiB2b2lkIFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OnNjcm9sbFdpbGxTdGFydCgpIGNv
bnN0CiB7Ci0gICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlV2lsbFN0YXJ0U2Ny
b2xsKCk7CisgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlV2lsbFN0YXJ0U2Ny
b2xsKHNjcm9sbGluZ05vZGUoKS5zY3JvbGxpbmdOb2RlSUQoKSk7CiB9CiAKIHZvaWQgU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6c2Nyb2xsRGlkRW5kKCkgY29uc3QKIHsK
LSAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVEaWRFbmRTY3JvbGwoKTsKKyAg
ICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsaW5nVHJlZU5vZGVEaWRFbmRTY3JvbGwoc2Nyb2xsaW5n
Tm9kZSgpLnNjcm9sbGluZ05vZGVJRCgpKTsKIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxWaWV3V2lsbFN0YXJ0UGFuR2VzdHVyZSgpIGNvbnN0
CiB7Ci0gICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlV2lsbFN0YXJ0UGFuR2Vz
dHVyZSgpOworICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZVdpbGxTdGFydFBh
bkdlc3R1cmUoc2Nyb2xsaW5nTm9kZSgpLnNjcm9sbGluZ05vZGVJRCgpKTsKIH0KIAogdm9pZCBT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TOjpzY3JvbGxWaWV3RGlkU2Nyb2xs
KGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbE9mZnNldCwgYm9vbCBpblVzZXJJbnRlcmFjdGlvbikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGViZWRlMzAyMGZkMTJjYWEyOWI0Mzk2MjczZTJjNDMxMWIzZWVhNjEuLmNmNGY5ZDcyMWMxOWQ2
OGQxZDBlYWI1ODQxZTMyYTU5YmZjZWIwYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjI2Niw2ICsyMjY2LDggQEAKIAkJMEZDQjRF
NUYxOEJCRTNEOTAwMEZDRkM5IC8qIFdLVGV4dElucHV0V2luZG93Q29udHJvbGxlci5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLVGV4dElucHV0V2luZG93Q29u
dHJvbGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDQjRFNkExOEJCRjI2
QTAwMEZDRkM5IC8qIFdLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBXS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDsgcGF0aCA9IGlvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEZDQjRFNkIxOEJCRjI2QTAwMEZDRkM5IC8qIFdLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbTsgcGF0aCA9IGlvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGQ0QwOTRFMjRDNzlGNUIwMDBDNkQzOSAvKiBSZW1v
dGVTY3JvbGxpbmdVSVN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVNjcm9sbGlu
Z1VJU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRkNEMDk0RjI0Qzc5
RjVCMDAwQzZEMzkgLyogUmVtb3RlU2Nyb2xsaW5nVUlTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW1vdGVTY3JvbGxpbmdVSVN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
RENEN0Y2MUQ0N0U5MkEwMDlGMDhCQyAvKiBMb2dJbml0aWFsaXphdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBMb2dJbml0aWFsaXphdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRkYyNEEyQjE4NzlFNEJDMDAzQUJGMEMgLyogUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CiAJCTBGRjI0QTJCMTg3OUU0QkMwMDNBQkYwRCAvKiBSZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUNhcHR1cmVTYW1w
bGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RT
X0RJUjsgfTsKQEAgLTY2NjQsNiArNjY2Niw4IEBACiAJCQkJMUFGMUFDNjkxNjUxNzU5RTAwQzE3
RDdGIC8qIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tICovLAogCQkJCTBGNTk0N0ExMTg3
QjNCN0QwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNw
cCAqLywKIAkJCQkwRjU5NDdBMjE4N0IzQjdEMDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JUcmFuc2FjdGlvbi5oICovLAorCQkJCTBGQ0QwOTRFMjRDNzlGNUIwMDBDNkQzOSAv
KiBSZW1vdGVTY3JvbGxpbmdVSVN0YXRlLmNwcCAqLywKKwkJCQkwRkNEMDk0RjI0Qzc5RjVCMDAw
QzZEMzkgLyogUmVtb3RlU2Nyb2xsaW5nVUlTdGF0ZS5oICovLAogCQkJCTJEMTJEQUI0MjA2NjJD
NzMwMDZGMDBGQiAvKiBXS0FuaW1hdGlvbkRlbGVnYXRlLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9
IFJlbW90ZUxheWVyVHJlZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggMjRiNGE3MzA1ODY4M2Q0YmM2YWYxYzQ4NjY1YTRkNWQ3
ZDkwYmUwNC4uMDIxNDY4MWFmYzZiZmU1ZGYxNDg5MDBhOWFjNGQ5M2IzMzZkYmY3YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgKQEAg
LTQyLDYgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlBhZ2U7CiBjbGFz
cyBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uOworY2xhc3MgUmVtb3RlU2Ny
b2xsaW5nVUlTdGF0ZTsKIAogY2xhc3MgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IgOiBwdWJs
aWMgV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciwgcHVibGljIElQQzo6TWVzc2Fn
ZVJlY2VpdmVyIHsKIHB1YmxpYzoKQEAgLTUyLDYgKzUzLDggQEAgcHVibGljOgogCiAgICAgdm9p
ZCBidWlsZFRyYW5zYWN0aW9uKFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24m
KTsKIAorICAgIHZvaWQgc2Nyb2xsaW5nU3RhdGVJblVJUHJvY2Vzc0NoYW5nZWQoY29uc3QgUmVt
b3RlU2Nyb2xsaW5nVUlTdGF0ZSYpOworCiBwcml2YXRlOgogICAgIFJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yKFdlYlBhZ2UqKTsKICAgICB2aXJ0dWFsIH5SZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvcigpOwpAQCAtNjMsOCArNjYsMTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNjaGVkdWxlVHJl
ZVN0YXRlQ29tbWl0KCkgb3ZlcnJpZGU7CiAKICAgICBib29sIGlzUnViYmVyQmFuZEluUHJvZ3Jl
c3MoKSBjb25zdCBvdmVycmlkZTsKKworICAgIGJvb2wgaXNVc2VyU2Nyb2xsSW5Qcm9ncmVzcyhX
ZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQpIGNvbnN0IGZpbmFsOworI2lmIEVOQUJMRShDU1NfU0NS
T0xMX1NOQVApCisgICAgYm9vbCBpc1Njcm9sbFNuYXBJblByb2dyZXNzKFdlYkNvcmU6OlNjcm9s
bGluZ05vZGVJRCkgY29uc3QgZmluYWw7CisjZW5kaWYKKwogICAgIHZvaWQgc2V0U2Nyb2xsUGlu
bmluZ0JlaGF2aW9yKFdlYkNvcmU6OlNjcm9sbFBpbm5pbmdCZWhhdmlvcikgb3ZlcnJpZGU7Ci0g
ICAgYm9vbCBpc1Njcm9sbFNuYXBJblByb2dyZXNzKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCkg
Y29uc3Qgb3ZlcnJpZGU7CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgogICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJp
ZGU7CkBAIC03NCw2ICs4Miw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjdXJyZW50U25hcFBvaW50
SW5kaWNlc0NoYW5nZWRGb3JOb2RlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQg
aG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpOwogCiAgICAgV2ViUGFnZSogbV93ZWJQYWdl
OworCisgICAgSGFzaFNldDxXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQ+IG1fbm9kZXNXaXRoQWN0
aXZlU2Nyb2xsU25hcDsKKyAgICBIYXNoU2V0PFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRD4gbV9u
b2Rlc1dpdGhBY3RpdmVVc2VyU2Nyb2xsczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yLm1lc3NhZ2VzLmluCmluZGV4IDJjMDk4YTEwOTcwMjM2N2MzODMzNzFlODhlNWE3NjFk
NDVlMTk5YWQuLmZlMTYzMGY2NDIyN2UxZDViZGY3MjQ0YTMzZGQ0MTZkNDc0ODM1MzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3IubWVzc2FnZXMuaW4KQEAgLTI1LDYgKzI1LDcgQEAKIG1lc3NhZ2VzIC0+IFJlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yIHsKICAgICBTY3JvbGxQb3NpdGlvbkNoYW5nZWRGb3JOb2RlKHVp
bnQ2NF90IG5vZGVJRCwgV2ViQ29yZTo6RmxvYXRQb2ludCBzY3JvbGxQb3NpdGlvbiwgYm9vbCBz
eW5jTGF5ZXJQb3NpdGlvbik7CiAgICAgQ3VycmVudFNuYXBQb2ludEluZGljZXNDaGFuZ2VkRm9y
Tm9kZSh1aW50NjRfdCBub2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZlcnRp
Y2FsKTsKKyAgICBTY3JvbGxpbmdTdGF0ZUluVUlQcm9jZXNzQ2hhbmdlZChXZWJLaXQ6OlJlbW90
ZVNjcm9sbGluZ1VJU3RhdGUgdWlTdGF0ZSk7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNf
U0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yLm1tCmluZGV4IDU4OGQyNDAxYTAwNTE3MjhjZDhjYTJlNDQ3ZWRkOWYzNzY0ODI3
ODAuLjMwZjk4Y2MyODEyYTk5MzNjMmVmODFkZTI0ZGQ2YmI0N2RkM2ZjYTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KQEAgLTMz
LDYgKzMzLDcgQEAKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgiCiAjaW1w
b3J0ICJSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmgiCisjaW1wb3J0ICJSZW1vdGVTY3Jv
bGxpbmdVSVN0YXRlLmgiCiAjaW1wb3J0ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbXBv
cnQgIldlYlBhZ2UuaCIKICNpbXBvcnQgIldlYlByb2Nlc3MuaCIKQEAgLTQ0LDYgKzQ1LDcgQEAK
ICNpbXBvcnQgPFdlYkNvcmUvU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZS5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9TY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZS5oPgogCisKIG5hbWVzcGFjZSBXZWJLaXQgewog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTc2LDEwICs3OCwxNCBAQCBib29sIFJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjppc1J1YmJlckJhbmRJblByb2dyZXNzKCkgY29uc3QKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6Omlz
U2Nyb2xsU25hcEluUHJvZ3Jlc3MoU2Nyb2xsaW5nTm9kZUlEKSBjb25zdAorYm9vbCBSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvcjo6aXNVc2VyU2Nyb2xsSW5Qcm9ncmVzcyhTY3JvbGxpbmdOb2Rl
SUQgbm9kZUlEKSBjb25zdAogewotICAgIC8vIEZJWE1FOiBuZWVkIHRvIG1haW50YWluIHN0YXRl
IGluIHRoZSB3ZWIgcHJvY2Vzcz8KLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIG1fbm9k
ZXNXaXRoQWN0aXZlVXNlclNjcm9sbHMuY29udGFpbnMobm9kZUlEKTsKK30KKworYm9vbCBSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvcjo6aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcyhTY3JvbGxpbmdO
b2RlSUQgbm9kZUlEKSBjb25zdAoreworICAgIHJldHVybiBtX25vZGVzV2l0aEFjdGl2ZVNjcm9s
bFNuYXAuY29udGFpbnMobm9kZUlEKTsKIH0KIAogdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvcjo6c2V0U2Nyb2xsUGlubmluZ0JlaGF2aW9yKFNjcm9sbFBpbm5pbmdCZWhhdmlvcikKQEAg
LTEwNCw2ICsxMTAsMTUgQEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6Y3VycmVu
dFNuYXBQb2ludEluZGljZXNDaGFuZ2VkRm9yTm9kZShTY3JvbGxpbmcKICAgICBzZXRBY3RpdmVT
Y3JvbGxTbmFwSW5kaWNlcyhub2RlSUQsIGhvcml6b250YWwsIHZlcnRpY2FsKTsKIH0KIAordm9p
ZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsaW5nU3RhdGVJblVJUHJvY2Vzc0No
YW5nZWQoY29uc3QgUmVtb3RlU2Nyb2xsaW5nVUlTdGF0ZSYgdWlTdGF0ZSkKK3sKKyAgICBpZiAo
dWlTdGF0ZS5jaGFuZ2VzKCkuY29udGFpbnMoUmVtb3RlU2Nyb2xsaW5nVUlTdGF0ZTo6Q2hhbmdl
czo6U2Nyb2xsU25hcE5vZGVzKSkKKyAgICAgICAgbV9ub2Rlc1dpdGhBY3RpdmVTY3JvbGxTbmFw
ID0gdWlTdGF0ZS5ub2Rlc1dpdGhBY3RpdmVTY3JvbGxTbmFwKCk7CisKKyAgICBpZiAodWlTdGF0
ZS5jaGFuZ2VzKCkuY29udGFpbnMoUmVtb3RlU2Nyb2xsaW5nVUlTdGF0ZTo6Q2hhbmdlczo6VXNl
clNjcm9sbE5vZGVzKSkKKyAgICAgICAgbV9ub2Rlc1dpdGhBY3RpdmVVc2VyU2Nyb2xscyA9IHVp
U3RhdGUubm9kZXNXaXRoQWN0aXZlVXNlclNjcm9sbHMoKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDJmY2Vk
Y2YyNGY5MDNjNWZhODZiYzNiZGZmNDQ1YWZjYzc0NzgxMWMuLjY3NjUwNmEzYmIwMzUwOTEwNzA4
MmIyZjgxYzNhM2UxNGEyMWZhNDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0wNy0yMSAg
U2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBTY3JvbGxp
bmcgdGVzbGEuY29tIG9uIGlQYWQgaXMgbm90IHNtb290aAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0NjI3CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS82NTU2ODk3OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9hZGp1c3Qtc2Nyb2xsLXNuYXAtZHVyaW5nLWdlc3R1
cmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3MvYWRq
dXN0LXNjcm9sbC1zbmFwLWR1cmluZy1nZXN0dXJlLmh0bWw6IEFkZGVkLgorCiAyMDIwLTA3LTE1
ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFsgaU9T
IFdLMiBSZWxlYXNlIF0gZmFzdC9zY3JvbGxpbmcvaW9zL25vbi1pbnZlcnRpYmxlLXRyYW5zZm9y
bWVkLXNjcm9sbGVyLWFuY2VzdG9yLmh0bWwgaXMgYSBmbGFreSBmYWlsdXJlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvYWRqdXN0LXNjcm9sbC1zbmFwLWR1cmlu
Zy1nZXN0dXJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9h
ZGp1c3Qtc2Nyb2xsLXNuYXAtZHVyaW5nLWdlc3R1cmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmYyMmVkOTRiZDQ1NGRjOThjMjZjZTMyZjQxZDIxNDBmNjU2MTIyZjcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvYWRqdXN0LXNjcm9sbC1zbmFwLWR1
cmluZy1nZXN0dXJlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKKyAgICAgICAgCitQQVNT
IGJlZm9yZUNoYW5nZVNjcm9sbExlZnQgPiAwIGlzIHRydWUKK1BBU1MgYmVmb3JlQ2hhbmdlU2Ny
b2xsTGVmdCBpcyBzY3JvbGxlci5zY3JvbGxMZWZ0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL2FkanVzdC1zY3JvbGwtc25hcC1kdXJpbmctZ2VzdHVyZS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL2FkanVzdC1zY3JvbGwtc25hcC1kdXJpbmctZ2Vz
dHVyZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4NWM3NGQ1ZTFiZDliZWRiOTE4M2FjNjkwZjE3ZmJmYTcz
NWU5NDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mv
YWRqdXN0LXNjcm9sbC1zbmFwLWR1cmluZy1nZXN0dXJlLmh0bWwKQEAgLTAsMCArMSw5MyBAQAor
PCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaW50ZXJuYWw6QXN5bmNP
dmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8
c3R5bGU+CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgaGVpZ2h0OiAyMDAwcHg7CisgICAg
ICAgIH0KKyAgICAgICAgCisgICAgICAgIC5zY3JvbGxlciB7CisgICAgICAgICAgICB3aWR0aDog
NjIwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEyMHB4OworICAgICAgICAgICAgYm9yZGVyOiAx
cHggc29saWQgYmxhY2s7CisgICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7CisgICAgICAg
ICAgICBzY3JvbGwtc25hcC10eXBlOiB4IG1hbmRhdG9yeTsKKyAgICAgICAgfQorICAgICAgICAK
KyAgICAgICAgLmNvbnRlbnRzIHsKKyAgICAgICAgICAgIHdpZHRoOiAyMDAlOworICAgICAgICB9
CisgICAgICAgIAorICAgICAgICAuYm94IHsKKyAgICAgICAgICAgIHNjcm9sbC1zbmFwLWFsaWdu
OiBzdGFydDsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDog
MTAwcHg7CisgICAgICAgICAgICBtYXJnaW46IDEwcHg7CisgICAgICAgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBibHVlOworICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAg
ICB9CisgICAgICAgIAorICAgICAgICAuc2Nyb2xsZXIuY2hhbmdlZCAuYm94IHsKKyAgICAgICAg
ICAgIHdpZHRoOiAxMTBweDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICA8L3N0eWxlPgorICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2Jhc2ljLWdlc3R1cmVz
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICB2YXIganNUZXN0SXNBc3luYyA9
IHRydWU7CisKKyAgICAgICAgdmFyIHNjcm9sbGVyOworICAgICAgICB2YXIgYmVmb3JlQ2hhbmdl
U2Nyb2xsTGVmdDsKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gc2Nyb2xsVGVzdCgpCisgICAgICAg
IHsKKyAgICAgICAgICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBVSUhl
bHBlci53YWl0Rm9yRXZlbnQoc2Nyb2xsZXIsICdzY3JvbGwnKSwKKyAgICAgICAgICAgICAgICB0
b3VjaEFuZERyYWdGcm9tUG9pbnRUb1BvaW50KDMwMCwgNTAsIDUwLCA1MCkKKyAgICAgICAgICAg
IF0pOworCisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5hbmltYXRpb25GcmFtZSgpOworCisg
ICAgICAgICAgICBiZWZvcmVDaGFuZ2VTY3JvbGxMZWZ0ID0gc2Nyb2xsZXIuc2Nyb2xsTGVmdDsK
KyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgnYmVmb3JlQ2hhbmdlU2Nyb2xsTGVmdCA+IDAnKTsK
KworICAgICAgICAgICAgc2Nyb2xsZXIuY2xhc3NMaXN0LmFkZCgnY2hhbmdlZCcpOworICAgICAg
ICAgICAgYXdhaXQgVUlIZWxwZXIuYW5pbWF0aW9uRnJhbWUoKTsKKworICAgICAgICAgICAgc2hv
dWxkQmUoJ2JlZm9yZUNoYW5nZVNjcm9sbExlZnQnLCAnc2Nyb2xsZXIuc2Nyb2xsTGVmdCcpOwor
CisgICAgICAgICAgICBhd2FpdCBsaWZ0VXBBdFBvaW50KDUwLCA1MCk7CisgICAgICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCdsb2FkJywgKCkgPT4geworICAgICAgICAgICAgc2Nyb2xsZXIgPSBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCcuc2Nyb2xsZXInKTsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVz
dCwgMTAwKTsKKyAgICAgICAgfSwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xsZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250
ZW50cyI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giPjwvZGl2PgorICAgICAgICAgICAg
PGRpdiBjbGFzcz0iYm94Ij48L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCI+PC9k
aXY+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giPjwvZGl2PgorICAgICAgICAgICAgPGRp
diBjbGFzcz0iYm94Ij48L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCI+PC9kaXY+
CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giPjwvZGl2PgorICAgICAgICAgICAgPGRpdiBj
bGFzcz0iYm94Ij48L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJveCI+PC9kaXY+Cisg
ICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3giPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8
L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICA8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+Cg==
</data>
<flag name="review"
          id="420296"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>