<?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>206910</bug_id>
          
          <creation_ts>2020-01-28 14:45:43 -0800</creation_ts>
          <short_desc>[iOS][WK2] Drop process assertion logic for holding locked files</short_desc>
          <delta_ts>2020-06-15 15:41:06 -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>WebKit2</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>
          <dependson>213194</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>ggaren</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1612190</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-28 14:45:43 -0800</bug_when>
    <thetext>Drop process assertion logic for holding locked files as it is causing issues and should no longer be needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612199</commentid>
    <comment_count>1</comment_count>
      <attachid>389068</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-28 14:53:32 -0800</bug_when>
    <thetext>Created attachment 389068
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612203</commentid>
    <comment_count>2</comment_count>
      <attachid>389071</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-28 15:03:09 -0800</bug_when>
    <thetext>Created attachment 389071
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612212</commentid>
    <comment_count>3</comment_count>
      <attachid>389074</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-28 15:19:13 -0800</bug_when>
    <thetext>Created attachment 389074
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621251</commentid>
    <comment_count>4</comment_count>
      <attachid>389074</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-02-20 09:17:02 -0800</bug_when>
    <thetext>Comment on attachment 389074
Patch

Will investigate iOS api test failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621263</commentid>
    <comment_count>5</comment_count>
      <attachid>389074</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-02-20 09:53:47 -0800</bug_when>
    <thetext>Comment on attachment 389074
Patch

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

&gt; Source/WebKit/ChangeLog:22
&gt; +           those processes will make sure to suspend their database threads to prevent any

I remember further database work would be stopped only when the suspension is imminent or there is no ongoing transaction. 
If the concept of imminent suspension is still there, we need to also set IsSuspensionImminent::Yes, or set ShouldForceStop::No in WebIDBServer::suspend.

A nice thing about having the logic is we don&apos;t force aborting ongoing transaction if we know a message of holding file lock has been sent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646522</commentid>
    <comment_count>6</comment_count>
      <attachid>397845</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-28 09:32:22 -0700</bug_when>
    <thetext>Created attachment 397845
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646528</commentid>
    <comment_count>7</comment_count>
      <attachid>397846</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-28 09:38:51 -0700</bug_when>
    <thetext>Created attachment 397846
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646762</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-28 17:03:27 -0700</bug_when>
    <thetext>Committed r260856: &lt;https://trac.webkit.org/changeset/260856&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 397846.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646770</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-28 17:10:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/62558526&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662869</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-06-15 15:41:06 -0700</bug_when>
    <thetext>Looks like this got reverted, but the bug is still RESOLVED/FIXED.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389068</attachid>
            <date>2020-01-28 14:53:32 -0800</date>
            <delta_ts>2020-01-28 15:03:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206910-20200128145331.patch</filename>
            <type>text/plain</type>
            <size>23373</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1MzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ1YzgzZjkyYzM1MDBiYzRl
NWZhNWRjMmRiNmJkYzM0NDA4N2QzZmEuLjgwYmU4MTdlMTY4ZjczZDE1YTllMTllZTdiNWZmNTEy
OTQzNzA1YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMjAtMDEtMjggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXVtXSzJdIERyb3AgcHJvY2Vz
cyBhc3NlcnRpb24gbG9naWMgZm9yIGhvbGRpbmcgbG9ja2VkIGZpbGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY5MTAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHByb2Nlc3MgYXNzZXJ0aW9u
IGxvZ2ljIGZvciBob2xkaW5nIGxvY2tlZCBmaWxlcyBhcyBpdCBpcyBjYXVzaW5nIGlzc3VlcyBh
bmQKKyAgICAgICAgc2hvdWxkIG5vIGxvbmdlciBiZSBuZWVkZWQuCisKKyAgICAgICAgVGhlIGlu
dGVudGlvbiBvZiB0aGlzIGNvZGUgd2FzIHRoYXQgdGhlIE5ldHdvcmsgUHJvY2VzcyB3b3VsZCBz
ZW5kIGEKKyAgICAgICAgU2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCkgSVBDIHRvIHRoZSBV
SVByb2Nlc3Mgd2hlbmV2ZXIgdGhlcmUgYXJlIHBlbmRpbmcKKyAgICAgICAgU1FMaXRlIHRyYW5z
YWN0aW9ucyBhbmQgdGhlIFVJUHJvY2VzcyB3b3VsZCB0aGVuIHRha2UgYSBwcm9jZXNzIGFzc2Vy
dGlvbiBvbiBiZWhhbGYKKyAgICAgICAgb2YgdGhlIFdlYlByb2Nlc3MgKG9yIHJlbGVhc2UgaXQp
IHRvIHByZXZlbnQgLyBhbGxvdyBzdXNwZW5zaW9uLgorCisgICAgICAgIFRoaXMgYXBwcm9hY2gg
aGFzIHNvbWUgaXNzdWVzOgorICAgICAgICAxLiBJdCB3YXMgbm9pc3kgaW4gdGVybXMgb2YgSVBD
CisgICAgICAgIDIuIEJlY2F1c2UgaXQgcmVsaWVzIG9uIGFuIElQQyB0byB0aGUgVUlQcm9jZXNz
IHRvIGtlZXAgcnVubmluZywgaXQgd2FzIGluaGVyZW50bHkKKyAgICAgICAgICAgcmFjeQorICAg
ICAgICAzLiBXZSBhbHJlYWR5IGhhdmUgbG9naWMgdG8gZGVhbCB3aXRoIHN1c3BlbnNpb24gaW4g
dGhlIG5ldHdvcmsgLyB3ZWIgcHJvY2Vzc2VzLgorICAgICAgICAgICBUaGUgVUlQcm9jZXNzIHNl
bmRzIGEgUHJlcGFyZUZvclN1c3BlbnNpb24gSVBDIHRvIGl0cyBjaGlsZCBwcm9jZXNzZXMuIElu
IHR1cm4sCisgICAgICAgICAgIHRob3NlIHByb2Nlc3NlcyB3aWxsIG1ha2Ugc3VyZSB0byBzdXNw
ZW5kIHRoZWlyIGRhdGFiYXNlIHRocmVhZHMgdG8gcHJldmVudCBhbnkKKyAgICAgICAgICAgZnVy
dGhlciBkYXRhYmFzZSB3b3JrLiBUaGUgY2hpbGQgcHJvY2Vzc2VzIHdvdWxkIHRoZW4gcmVzcG9u
ZCB0byB0aGUKKyAgICAgICAgICAgUHJlcGFyZUZvclN1c3BlbnNpb24gSVBDIHRvIGxldCB0aGUg
VUlQcm9jZXNzIGtub3cgdGhleSBhcmUgcmVhZHkgdG8gc3VzcGVuZC4KKyAgICAgICAgICAgVGhl
IDIgYXBwcm9hY2hlcyB3ZXJlIGNvbmZsaWN0aW5nLCBiZWNhdXNlIGFmdGVyIHRoZSBQcmVwYXJl
Rm9yU3VzcGVuc2lvbiBJUEMgaXMKKyAgICAgICAgICAgc2VudCwgdGhlIGNoaWxkIHByb2Nlc3Mg
Y291bGQgcHJvY2VzcyBhIHRyYW5zYWN0aW9uIGFuZCBzZW5kIHRoZQorICAgICAgICAgICBTZXRJ
c0hvbGRpbmdMb2NrZWRGaWxlcygpIElQQyB0byB0aGUgVUlQcm9jZXNzIHdoaWNoIHdvdWxkIGlu
Y29ycmVjdGx5IGNhbmNlbCB0aGUKKyAgICAgICAgICAgc3VzcGVuc2lvbi4KKworICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6Ok5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6bV9tZXNzYWdl
UG9ydENoYW5uZWxSZWdpc3RyeSk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViU1FMaXRlRGF0YWJhc2VUcmFj
a2VyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBTaGFyZWQvV2ViU1FMaXRlRGF0YWJhc2VUcmFj
a2VyLmg6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZENs
b3NlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkU2V0QXNzZXJ0
aW9uU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRJc0hv
bGRpbmdMb2NrZWRGaWxlcyk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6c2h1dERvd24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnNldElzSG9sZGluZ0xvY2tlZEZp
bGVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjptX25vblZpc2libGVQcm9jZXNzQ2xl
YW51cFRpbWVyKToKKyAgICAgICAgKFdlYktpdDo6bV93ZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIp
OiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorCiAyMDIwLTAx
LTI4ICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KIAogICAgICAgICBG
aXggZm9yIGNyYXNoIGluIEFwcEtpdCBhY2Nlc3NpYmlsaXR5LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCA1Njc4NGVkNmNjYjkzZDYz
MTNkZjY4MTljMGE1MDQxM2ZhZGU0NmRhLi4zM2Y3NTdjYjZiYTI2ODhiZDBhOTI0YTA4ODYwNWY3
M2FhY2Y4ZDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcApAQCAtMTUwLDkgKzE1MCw2IEBAIE5ldHdvcmtQcm9jZXNzOjpOZXR3b3JrUHJv
Y2VzcyhBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1lCiAg
ICAgLCBtX3N0b3JhZ2VNYW5hZ2VyU2V0KFN0b3JhZ2VNYW5hZ2VyU2V0OjpjcmVhdGUoKSkKICNp
ZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogICAgICwgbV9uZXR3b3JrQ29udGVudFJ1bGVM
aXN0TWFuYWdlcigqdGhpcykKLSNlbmRpZgotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAg
LCBtX3dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlcihbdGhpc10oYm9vbCBpc0hvbGRpbmdMb2NrZWRG
aWxlcykgeyBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpTZXRJc0hvbGRpbmdMb2NrZWRGaWxlcyhpc0hvbGRpbmdMb2NrZWRGaWxl
cyksIDApOyB9KQogI2VuZGlmCiAgICAgLCBtX21lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5KGNy
ZWF0ZU1lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5KCp0aGlzKSkKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCBmMzIxZGYyOTBlOTRlODY2
YmFiYTZlZTdkMzZiYjFmZDIyMzZjYmZlLi4wOGRlNTJmZWQ0YTBmZjk5MTM4YjdjNTI0OWZkZWEy
ZDQ4N2UwN2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5oCkBAIC01NDQsMTAgKzU0NCw2IEBAIHByaXZhdGU6CiAgICAgTmV0d29ya0NvbnRlbnRS
dWxlTGlzdE1hbmFnZXIgbV9uZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcjsKICNlbmRpZgog
Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIg
bV93ZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXI7Ci0jZW5kaWYKLQogICAgIFJlZjxXb3JrUXVldWU+
IG1fc3RvcmFnZVRhc2tRdWV1ZSB7IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0
LlN0b3JhZ2VUYXNrIikgfTsKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQwMjcwNzA1ZDQ5ZTI1ODk4YWE2MGM2NDA5NmZmMTg0
MTlmZjRjZDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDg3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmgiCi0KLSNpbmNsdWRlICJOZXR3
b3JrUHJvY2Vzcy5oIgotI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgot
I2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdl
cy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvU1FMaXRlRGF0YWJhc2VUcmFja2VyLmg+Ci0KLW5hbWVz
cGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLVdlYlNRTGl0ZURhdGFi
YXNlVHJhY2tlcjo6V2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyKElzSG9sZGluZ0xvY2tlZEZpbGVz
SGFuZGxlciYmIGlzSG9sZGluZ0xvY2tlZEZpbGVzSGFuZGxlcikKLSAgICA6IG1faXNIb2xkaW5n
TG9ja2VkRmlsZXNIYW5kbGVyKFdURk1vdmUoaXNIb2xkaW5nTG9ja2VkRmlsZXNIYW5kbGVyKSkK
LSAgICAsIG1faHlzdGVyZXNpcyhbdGhpc10oUEFMOjpIeXN0ZXJlc2lzU3RhdGUgc3RhdGUpIHsg
c2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoc3RhdGUgPT0gUEFMOjpIeXN0ZXJlc2lzU3RhdGU6OlN0
YXJ0ZWQpOyB9KQotewotICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgU1FMaXRl
RGF0YWJhc2VUcmFja2VyOjpzZXRDbGllbnQodGhpcyk7Ci19Ci0KLVdlYlNRTGl0ZURhdGFiYXNl
VHJhY2tlcjo6fldlYlNRTGl0ZURhdGFiYXNlVHJhY2tlcigpCi17Ci0gICAgQVNTRVJUKFJ1bkxv
b3A6OmlzTWFpbigpKTsKLSAgICBTUUxpdGVEYXRhYmFzZVRyYWNrZXI6OnNldENsaWVudChudWxs
cHRyKTsKLQotICAgIGlmIChtX2h5c3RlcmVzaXMuc3RhdGUoKSA9PSBQQUw6Okh5c3RlcmVzaXNT
dGF0ZTo6U3RhcnRlZCkKLSAgICAgICAgc2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoZmFsc2UpOwot
fQotCi12b2lkIFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlcjo6c2V0SXNTdXNwZW5kZWQoYm9vbCBp
c1N1c3BlbmRlZCkKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgIG1faXNT
dXNwZW5kZWQgPSBpc1N1c3BlbmRlZDsKLX0KLQotdm9pZCBXZWJTUUxpdGVEYXRhYmFzZVRyYWNr
ZXI6OndpbGxCZWdpbkZpcnN0VHJhbnNhY3Rpb24oKQotewotICAgIFJ1bkxvb3A6Om1haW4oKS5k
aXNwYXRjaChbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldIHsKLSAgICAgICAgaWYgKHdl
YWtUaGlzKQotICAgICAgICAgICAgd2Vha1RoaXMtPm1faHlzdGVyZXNpcy5zdGFydCgpOwotICAg
IH0pOwotfQotCi12b2lkIFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlcjo6ZGlkRmluaXNoTGFzdFRy
YW5zYWN0aW9uKCkKLXsKLSAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3dlYWtUaGlzID0g
bWFrZVdlYWtQdHIoKnRoaXMpXSB7Ci0gICAgICAgIGlmICh3ZWFrVGhpcykKLSAgICAgICAgICAg
IHdlYWtUaGlzLT5tX2h5c3RlcmVzaXMuc3RvcCgpOwotICAgIH0pOwotfQotCi12b2lkIFdlYlNR
TGl0ZURhdGFiYXNlVHJhY2tlcjo6c2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCBpc0hvbGRp
bmdMb2NrZWRGaWxlcykKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotCi0gICAg
aWYgKG1faXNTdXNwZW5kZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1faXNIb2xkaW5nTG9j
a2VkRmlsZXNIYW5kbGVyKGlzSG9sZGluZ0xvY2tlZEZpbGVzKTsKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJTUUxpdGVEYXRh
YmFzZVRyYWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlNRTGl0ZURhdGFiYXNlVHJh
Y2tlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMmJmZDMyM2RlNTNlNjUyMzIx
MzkxMzM4ODdkYzU0ZTgxMTJjOTJkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlNRTGl0ZURhdGFiYXNlVHJhY2tl
ci5oCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaW5jbHVkZSA8V2ViQ29yZS9TUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQuaD4K
LSNpbmNsdWRlIDxwYWwvSHlzdGVyZXNpc0FjdGl2aXR5Lmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7
Ci0KLS8vIFVzZSBlYWdlciBpbml0aWFsaXphdGlvbiBmb3IgdGhlIFdlYWtQdHJGYWN0b3J5IHNp
bmNlIHdlIGNhbGwgbWFrZVdlYWtQdHIoKSBmcm9tIGEgbm9uLW1haW4gdGhyZWFkLgotY2xhc3Mg
V2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNRTGl0ZURh
dGFiYXNlVHJhY2tlckNsaWVudCwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdlYlNRTGl0ZURhdGFi
YXNlVHJhY2tlciwgV2Vha1B0ckZhY3RvcnlJbml0aWFsaXphdGlvbjo6RWFnZXI+IHsKLSAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIpCi1wdWJsaWM6Ci0g
ICAgdXNpbmcgSXNIb2xkaW5nTG9ja2VkRmlsZXNIYW5kbGVyID0gRnVuY3Rpb248dm9pZChib29s
KT47Ci0gICAgZXhwbGljaXQgV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyKElzSG9sZGluZ0xvY2tl
ZEZpbGVzSGFuZGxlciYmKTsKLQotICAgIH5XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIoKTsKLQot
ICAgIHZvaWQgc2V0SXNTdXNwZW5kZWQoYm9vbCk7Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCBzZXRJ
c0hvbGRpbmdMb2NrZWRGaWxlcyhib29sKTsKLQotICAgIC8vIFdlYkNvcmU6OlNRTGl0ZURhdGFi
YXNlVHJhY2tlckNsaWVudC4KLSAgICB2b2lkIHdpbGxCZWdpbkZpcnN0VHJhbnNhY3Rpb24oKSBm
aW5hbDsKLSAgICB2b2lkIGRpZEZpbmlzaExhc3RUcmFuc2FjdGlvbigpIGZpbmFsOwotCi0gICAg
SXNIb2xkaW5nTG9ja2VkRmlsZXNIYW5kbGVyIG1faXNIb2xkaW5nTG9ja2VkRmlsZXNIYW5kbGVy
OwotICAgIFBBTDo6SHlzdGVyZXNpc0FjdGl2aXR5IG1faHlzdGVyZXNpczsKLSAgICBib29sIG1f
aXNTdXNwZW5kZWQgeyBmYWxzZSB9OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcAppbmRleCAyNmFhYjAzNTgzN2Y4OWNlZDA1ODgxYjMxZTI0OTY2YWE4NDA1MzhiLi5m
NWUyYzBjZDQ3ZThiNGUxNDc0OTEyNzBhNDQ2YjQ2N2JmMTIyZjg1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAK
QEAgLTMwMSw4ICszMDEsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZENsb3NlKElQ
Qzo6Q29ubmVjdGlvbiYpCiAjaWYgRU5BQkxFKExFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFOQUdF
UikKICAgICBtX2N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5LmludmFsaWRhdGUoKTsKICNlbmRp
ZgotCi0gICAgbV9hY3Rpdml0eUZvckhvbGRpbmdMb2NrZWRGaWxlcyA9IG51bGxwdHI7CiAgICAg
CiAgICAgbV9zeW5jQWxsQ29va2llc0FjdGl2aXR5ID0gbnVsbHB0cjsKICAgICBtX3N5bmNBbGxD
b29raWVzQ291bnRlciA9IDA7CkBAIC0xMTU5LDE5ICsxMTU3LDYgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZSgpCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6OmRpZFNldEFzc2VydGlvblN0YXRlKEFzc2VydGlvblN0YXRlKQogewogfQotICAgIAotdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRJc0hvbGRpbmdMb2NrZWRGaWxlcyhib29sIGlzSG9s
ZGluZ0xvY2tlZEZpbGVzKQotewotICAgIGlmICghaXNIb2xkaW5nTG9ja2VkRmlsZXMpIHsKLSAg
ICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICJVSVByb2Nlc3MgaXMgcmVsZWFz
aW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0d29yayBwcm9jZXNzIGlz
IG5vIGxvbmdlciBob2xkaW5nIGxvY2tlZCBmaWxlcyIpOwotICAgICAgICBtX2FjdGl2aXR5Rm9y
SG9sZGluZ0xvY2tlZEZpbGVzID0gbnVsbHB0cjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAg
ICBpZiAoIW1fYWN0aXZpdHlGb3JIb2xkaW5nTG9ja2VkRmlsZXMpIHsKLSAgICAgICAgUkVMRUFT
RV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICJVSVByb2Nlc3MgaXMgdGFraW5nIGEgYmFja2dyb3Vu
ZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0d29yayBwcm9jZXNzIGlzIGhvbGRpbmcgbG9ja2Vk
IGZpbGVzIik7Ci0gICAgICAgIG1fYWN0aXZpdHlGb3JIb2xkaW5nTG9ja2VkRmlsZXMgPSBtX3Ro
cm90dGxlci5iYWNrZ3JvdW5kQWN0aXZpdHkoIkhvbGRpbmcgbG9ja2VkIGZpbGVzIl9zKS5tb3Zl
VG9VbmlxdWVQdHIoKTsKLSAgICB9Ci19CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c3lu
Y0FsbENvb2tpZXMoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCA3N2U3ZjZhOGNjOTFhNjkzYzhjMDQ1N2U2
NmMxZjcwNjg4ZTczNTM0Li4zZWFlNmUxZWNhOTI4MGFiNGVkZWE5YWQwM2UzMmZmNjJhOGZiM2Vj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuaApAQCAtMTY4LDggKzE2OCw2IEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lk
IHN5bnRoZXNpemVBcHBJc0JhY2tncm91bmQoYm9vbCBiYWNrZ3JvdW5kKTsKIAotICAgIHZvaWQg
c2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCk7Ci0KICAgICB2b2lkIHN5bmNBbGxDb29raWVz
KCk7CiAgICAgdm9pZCBkaWRTeW5jQWxsQ29va2llcygpOwogCkBAIC0yOTYsNyArMjk0LDYgQEAg
cHJpdmF0ZToKICAgICBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eSBtX2N1c3RvbVBy
b3RvY29sTWFuYWdlclByb3h5OwogI2VuZGlmCiAgICAgUHJvY2Vzc1Rocm90dGxlciBtX3Rocm90
dGxlcjsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFj
dGl2aXR5PiBtX2FjdGl2aXR5Rm9ySG9sZGluZ0xvY2tlZEZpbGVzOwogICAgIHN0ZDo6dW5pcXVl
X3B0cjxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHk+IG1fc3luY0FsbENvb2tp
ZXNBY3Rpdml0eTsKICAgICBQcm9jZXNzVGhyb3R0bGVyOjpBY3Rpdml0eVZhcmlhbnQgbV9hY3Rp
dml0eUZyb21XZWJQcm9jZXNzZXM7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4K
aW5kZXggM2Q5MTliZTQ3MWM3YzEwYmNlOTRmNmMxMjFhMTkzMzQxYmRiMTA1NC4uMDM2Y2JhNDUw
ZGRhNGNkMTlkZDEwNGUzZjQ2ZjZmOTA2YzM2YmY4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNz
YWdlcy5pbgpAQCAtMzIsOCArMzIsNiBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc1Byb3h5
IExlZ2FjeVJlY2VpdmVyIE5vdFJlZkNvdW50ZWQgewogICAgIFRlc3RQcm9jZXNzSW5jb21pbmdT
eW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseShXZWJLaXQ6OldlYlBhZ2VQcm94eUlk
ZW50aWZpZXIgcGFnZUlEKSAtPiAoYm9vbCBoYW5kbGVkKSBTeW5jaHJvbm91cwogICAgIFRlcm1p
bmF0ZVVucmVzcG9uc2l2ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMoV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4gZG9tYWluLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSWQpCiAKLSAgICBTZXRJc0hv
bGRpbmdMb2NrZWRGaWxlcyhib29sIGlzSG9sZGluZ0xvY2tlZEZpbGVzKQotCiAgICAgIyBEaWFn
bm9zdGljIG1lc3NhZ2VzIGxvZ2dpbmcKICAgICBMb2dEaWFnbm9zdGljTWVzc2FnZShXZWJLaXQ6
OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlELCBTdHJpbmcgbWVzc2FnZSwgU3RyaW5nIGRl
c2NyaXB0aW9uLCBlbnVtOmJvb2wgV2ViQ29yZTo6U2hvdWxkU2FtcGxlIHNob3VsZFNhbXBsZSkK
ICAgICBMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoV2ViS2l0OjpXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyIHBhZ2VJRCwgU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBkZXNjcmlwdGlvbiwgdWlu
dDMyX3QgcmVzdWx0LCBlbnVtOmJvb2wgV2ViQ29yZTo6U2hvdWxkU2FtcGxlIHNob3VsZFNhbXBs
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDk4
YzU1ZDYwY2Y2NTY0NWVjODEwZjUzMzZmNWFkYzc1MDAxOWIxYmIuLjc2MmU1ZjM5ZWU4OTU4YThl
YTgzMjIyZDQ4NmU4ZmE0Yzg4YzQ3ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcApAQCAtMzg5LDcgKzM4OSw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5
OjpzaHV0RG93bigpCiAKICAgICBtX3Jlc3BvbnNpdmVuZXNzVGltZXIuaW52YWxpZGF0ZSgpOwog
ICAgIG1fYmFja2dyb3VuZFJlc3BvbnNpdmVuZXNzVGltZXIuaW52YWxpZGF0ZSgpOwotICAgIG1f
YWN0aXZpdHlGb3JIb2xkaW5nTG9ja2VkRmlsZXMgPSBudWxscHRyOwogCiAgICAgZm9yIChhdXRv
JiBmcmFtZSA6IGNvcHlUb1ZlY3RvcihtX2ZyYW1lTWFwLnZhbHVlcygpKSkKICAgICAgICAgZnJh
bWUtPndlYlByb2Nlc3NXaWxsU2h1dERvd24oKTsKQEAgLTEzMTMsMTkgKzEzMTIsNiBAQCB2b2lk
IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZU1lZGlhU3RhdGVEaWRDaGFuZ2UoV2ViUGFnZVByb3h5
JikKICAgICAgICAgcHJvY2Vzc1Bvb2woKS5jbGVhcldlYlByb2Nlc3NJc1BsYXlpbmdBdWRpYmxl
TWVkaWEoY29yZVByb2Nlc3NJZGVudGlmaWVyKCkpOwogfQogCi12b2lkIFdlYlByb2Nlc3NQcm94
eTo6c2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCBpc0hvbGRpbmdMb2NrZWRGaWxlcykKLXsK
LSAgICBpZiAoIWlzSG9sZGluZ0xvY2tlZEZpbGVzKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HKFBy
b2Nlc3NTdXNwZW5zaW9uLCAiVUlQcm9jZXNzIGlzIHJlbGVhc2luZyBhIGJhY2tncm91bmQgYXNz
ZXJ0aW9uIGJlY2F1c2UgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBubyBsb25nZXIgaG9sZGlu
ZyBsb2NrZWQgZmlsZXMiKTsKLSAgICAgICAgbV9hY3Rpdml0eUZvckhvbGRpbmdMb2NrZWRGaWxl
cyA9IG51bGxwdHI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYgKCFtX2FjdGl2aXR5
Rm9ySG9sZGluZ0xvY2tlZEZpbGVzKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNw
ZW5zaW9uLCAiVUlQcm9jZXNzIGlzIHRha2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1
c2UgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBob2xkaW5nIGxvY2tlZCBmaWxlcyIpOwotICAg
ICAgICBtX2FjdGl2aXR5Rm9ySG9sZGluZ0xvY2tlZEZpbGVzID0gbV90aHJvdHRsZXIuYmFja2dy
b3VuZEFjdGl2aXR5KCJIb2xkaW5nIGxvY2tlZCBmaWxlcyJfcykubW92ZVRvVW5pcXVlUHRyKCk7
Ci0gICAgfQotfQotCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6aXNSZXNwb25zaXZlKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCBpc1dlYlByb2Nlc3NSZXNwb25zaXZlKT4mJiBjYWxsYmFjaykK
IHsKICAgICBpZiAobV9pc1Jlc3BvbnNpdmUgPT0gTm9Pck1heWJlOjpObykgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCAxMzJkZmIzOGNmNzY1NjMxZTA3
MWYzNWMyNTMyY2I5ZmEyODNjOGIzLi42ZWViOGJjYWE0MzM0ODYwYWE5ZDk0NzgzYTlmOWViZGVk
MzI2ZWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAt
MjI5LDggKzIyOSw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgd2luZG93U2VydmVyQ29ubmVjdGlv
blN0YXRlQ2hhbmdlZCgpOwogCi0gICAgdm9pZCBzZXRJc0hvbGRpbmdMb2NrZWRGaWxlcyhib29s
KTsKLQogICAgIFByb2Nlc3NUaHJvdHRsZXImIHRocm90dGxlcigpIHsgcmV0dXJuIG1fdGhyb3R0
bGVyOyB9CiAKICAgICB2b2lkIGlzUmVzcG9uc2l2ZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wgaXNXZWJQcm9jZXNzUmVzcG9uc2l2ZSk+JiYpOwpAQCAtNTAxLDcgKzQ5OSw2IEBAIHByaXZh
dGU6CiAKICAgICBpbnQgbV9udW1iZXJPZlRpbWVzU3VkZGVuVGVybWluYXRpb25XYXNEaXNhYmxl
ZDsKICAgICBQcm9jZXNzVGhyb3R0bGVyIG1fdGhyb3R0bGVyOwotICAgIHN0ZDo6dW5pcXVlX3B0
cjxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHk+IG1fYWN0aXZpdHlGb3JIb2xk
aW5nTG9ja2VkRmlsZXM7CiAgICAgRm9yZWdyb3VuZFdlYlByb2Nlc3NUb2tlbiBtX2ZvcmVncm91
bmRUb2tlbjsKICAgICBCYWNrZ3JvdW5kV2ViUHJvY2Vzc1Rva2VuIG1fYmFja2dyb3VuZFRva2Vu
OwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMzk4MWNiYjA1NTU4NTVlYTU5
YTg2MTBmYjg4NjhjODE3YjE2YWM3My4uOTJlYWUxNTA3MDdjYzBjYmY3MzZlN2ZhYTNiZWIzODJl
ZDJlMzNjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbgpAQCAtNDIsOCArNDIsNiBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNz
UHJveHkgTGVnYWN5UmVjZWl2ZXIgewogICAgIEdldEdQVVByb2Nlc3NDb25uZWN0aW9uKCkgLT4g
KHN0cnVjdCBXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uSW5mbyBjb25uZWN0aW9uSW5mbykg
U3luY2hyb25vdXMKICNlbmRpZgogCi0gICAgU2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCBp
c0hvbGRpbmdMb2NrZWRGaWxlcykKLQogICAgIERpZEV4Y2VlZEFjdGl2ZU1lbW9yeUxpbWl0KCkK
ICAgICBEaWRFeGNlZWRJbmFjdGl2ZU1lbW9yeUxpbWl0KCkKICAgICBEaWRFeGNlZWRDUFVMaW1p
dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA3Njk3YzRjNThkNDcyYzY0YzZiYjkwYzRjZGRlNmNkNWM2ZTU5YmNhLi5kZTgwYTkyM2Q3
MDlmNzI3ZjgzNjQwNGRjNmI5ZWNjNmQ0OWM4Yjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzMTcsNyArMTMxNyw2IEBACiAJCTgz
MkFFMjUyMUJFMkU4Q0QwMEZBQUUxMCAvKiBOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5h
Z2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzJB
RTI1MDFCRTJFOENEMDBGQUFFMTAgLyogTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkTWFuYWdl
ci5oICovOyB9OwogCQk4MzJFRDE4QzFFMkZFMTU3MDA2QkE2NEEgLyogUGVyQWN0aXZpdHlTdGF0
ZUNQVVVzYWdlU2FtcGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODMyRUQxOEExRTJGRTEzQjAwNkJBNjRBIC8qIFBlckFjdGl2aXR5U3RhdGVDUFVV
c2FnZVNhbXBsZXIuaCAqLzsgfTsKIAkJODM0QjI1MEYxQTgzMUE4RDAwQ0ZCMTUwIC8qIE5ldHdv
cmtDYWNoZUZpbGVTeXN0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgzNEIyNTBFMUE4MzFBOEQwMENGQjE1MCAvKiBOZXR3b3JrQ2FjaGVGaWxlU3lz
dGVtLmggKi87IH07Ci0JCTgzNjAzNEEwMUFDQjM0RDYwMDYyNjU0OSAvKiBXZWJTUUxpdGVEYXRh
YmFzZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzNjAzNDlFMUFDQjM0RDYwMDYyNjU0OSAvKiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIu
aCAqLzsgfTsKIAkJODM3MkRCMjUxQTY3NEM4RjAwQzY5N0M1IC8qIFdLUGFnZURpYWdub3N0aWNM
b2dnaW5nQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzcyREIyNDFBNjc0QzhGMDBDNjk3QzUgLyogV0tQYWdlRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk4MzcyREIyOTFBNjc1NjI4MDBDNjk3QzUgLyogV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Mzcy
REIyNzFBNjc1NjI4MDBDNjk3QzUgLyogV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmgg
Ki87IH07CiAJCTgzNzJEQjJGMUE2NzdENEEwMEM2OTdDNSAvKiBXS0RpYWdub3N0aWNMb2dnaW5n
UmVzdWx0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODM3MkRCMkUxQTY3N0Q0QTAwQzY5N0M1IC8qIFdLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRU
eXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTQyMDgsOCArNDIwNyw2IEBACiAJCTgzMzk3QzY2MjIxMjRCRDEwMEI2MjM4OCAvKiBXZWJQcm9j
ZXNzQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUHJv
Y2Vzc0NhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMzOTdDNjcyMjEy
NEJEMTAwQjYyMzg4IC8qIFdlYlByb2Nlc3NDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJQcm9jZXNzQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODM0QjI1MEUxQTgzMUE4RDAwQ0ZCMTUwIC8qIE5ldHdvcmtDYWNoZUZpbGVTeXN0ZW0uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0NhY2hlRmlsZVN5c3RlbS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4MzYwMzQ5RDFBQ0IzNEQ2MDA2MjY1NDkg
LyogV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTgzNjAzNDlFMUFDQjM0RDYwMDYyNjU0OSAvKiBXZWJTUUxpdGVEYXRh
YmFzZVRyYWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU1FMaXRl
RGF0YWJhc2VUcmFja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNzJEQjI0
MUE2NzRDOEYwMEM2OTdDNSAvKiBXS1BhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1BhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzcyREIyNjFBNjc1NjI4MDBDNjk3
QzUgLyogV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNzJEQjI3MUE2NzU2MjgwMEM2OTdDNSAv
KiBXZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC01ODI0LDggKzU4MjEsNiBAQAogCQkJCTVDMTMwMjRBMUZFMzQx
QTcwMDBEOUIzMSAvKiBXZWJzaXRlUG9saWNpZXNEYXRhLmggKi8sCiAJCQkJMEVERTg1MDIyMDA0
RTc0OTAwMDMwNTYwIC8qIFdlYnNpdGVQb3BVcFBvbGljeS5oICovLAogCQkJCTcxRkI4MTBBMjI2
MDYyN0EwMDMyMzY3NyAvKiBXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGlj
eS5oICovLAotCQkJCTgzNjAzNDlEMUFDQjM0RDYwMDYyNjU0OSAvKiBXZWJTUUxpdGVEYXRhYmFz
ZVRyYWNrZXIuY3BwICovLAotCQkJCTgzNjAzNDlFMUFDQjM0RDYwMDYyNjU0OSAvKiBXZWJTUUxp
dGVEYXRhYmFzZVRyYWNrZXIuaCAqLywKIAkJCQlDMDMzN0RENzEyN0E1MUI2MDA4RkY0RjQgLyog
V2ViVG91Y2hFdmVudC5jcHAgKi8sCiAJCQkJN0MwNjVGMjkxQzhDRDk1RjAwQzJEOTUwIC8qIFdl
YlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5jcHAgKi8sCiAJCQkJN0MwNjVGMkExQzhD
RDk1RjAwQzJEOTUwIC8qIFdlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oICovLApA
QCAtMTA3OTYsNyArMTA3OTEsNiBAQAogCQkJCTQxNzkxNUFGMjI1NkJCNzUwMEQ2Rjk3RSAvKiBX
ZWJTb2NrZXRDaGFubmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTc5MTVCMTIyNTZDMEQ2MDBE
NkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUMx
NDkzODA5MjIzNDcxMDQwMDBDRDcwNyAvKiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTgzNjAzNEEwMUFDQjM0RDYwMDYyNjU0OSAvKiBXZWJTUUxpdGVEYXRh
YmFzZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNTJDMEY4MUEzOENEQzcwMDE2MTYw
QSAvKiBXZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
NTZGMkRDMjE1MkI2QjUwMEU2RDVERiAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxN0E1MzEwMUY0N0E4NjIwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5l
Y3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKaW5kZXggNjdhNzkwYTdhODMyNjQyOTQ4NjM4ZGQ1NzQ3OTFkMDgwMjMxMDE3
MS4uMjlkODEyZGUxYmM3MzZjNjI4ZmYyYjU0YjMxYmI5ZWQ5ZTEzZGZiNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMjA5LDkgKzIwOSw2IEBAIFdlYlByb2Nl
c3M6OldlYlByb2Nlc3MoKQogICAgICwgbV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIo
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpjcmVhdGUoKSkKICNlbmRpZgogICAgICwg
bV9ub25WaXNpYmxlUHJvY2Vzc0NsZWFudXBUaW1lcigqdGhpcywgJldlYlByb2Nlc3M6Om5vblZp
c2libGVQcm9jZXNzQ2xlYW51cFRpbWVyRmlyZWQpCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
LSAgICAsIG1fd2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyKFt0aGlzXShib29sIGlzSG9sZGluZ0xv
Y2tlZEZpbGVzKSB7IHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Oldl
YlByb2Nlc3NQcm94eTo6U2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoaXNIb2xkaW5nTG9ja2VkRmls
ZXMpLCAwKTsgfSkKLSNlbmRpZgogewogICAgIC8vIEluaXRpYWxpemUgb3VyIHBsYXRmb3JtIHN0
cmF0ZWdpZXMuCiAgICAgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjppbml0aWFsaXplKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCA0OTNiMmI3YTA1OWFhYWZmNzlkM2Vl
YWZiZTc1ZTNhOGRhYzNmN2NmLi45OTVhNzM0NGViNGY1NjFhY2JiZjY2MjkzMmRjZmNmZTU3YWI2
ZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTU3OCw3ICs1Nzgs
NiBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlU3RvcmFn
ZT4gbV9hcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
Ci0gICAgV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyIG1fd2ViU1FMaXRlRGF0YWJhc2VUcmFja2Vy
OwogICAgIFJlZlB0cjxQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI+IG1fdGFza1N0YXRlT2JzZXJ2
ZXI7CiAgICAgTG9jayBtX3Byb2Nlc3NXYXNSZXN1bWVkQXNzZXJ0aW9uc0xvY2s7CiAgICAgUmV0
YWluUHRyPEJLU1Byb2Nlc3NBc3NlcnRpb24+IG1fcHJvY2Vzc1dhc1Jlc3VtZWRVSUFzc2VydGlv
bjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389071</attachid>
            <date>2020-01-28 15:03:09 -0800</date>
            <delta_ts>2020-01-28 15:19:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206910-20200128150308.patch</filename>
            <type>text/plain</type>
            <size>24648</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1MzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ1YzgzZjkyYzM1MDBiYzRl
NWZhNWRjMmRiNmJkYzM0NDA4N2QzZmEuLjgwYmU4MTdlMTY4ZjczZDE1YTllMTllZTdiNWZmNTEy
OTQzNzA1YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMjAtMDEtMjggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXVtXSzJdIERyb3AgcHJvY2Vz
cyBhc3NlcnRpb24gbG9naWMgZm9yIGhvbGRpbmcgbG9ja2VkIGZpbGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY5MTAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHByb2Nlc3MgYXNzZXJ0aW9u
IGxvZ2ljIGZvciBob2xkaW5nIGxvY2tlZCBmaWxlcyBhcyBpdCBpcyBjYXVzaW5nIGlzc3VlcyBh
bmQKKyAgICAgICAgc2hvdWxkIG5vIGxvbmdlciBiZSBuZWVkZWQuCisKKyAgICAgICAgVGhlIGlu
dGVudGlvbiBvZiB0aGlzIGNvZGUgd2FzIHRoYXQgdGhlIE5ldHdvcmsgUHJvY2VzcyB3b3VsZCBz
ZW5kIGEKKyAgICAgICAgU2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCkgSVBDIHRvIHRoZSBV
SVByb2Nlc3Mgd2hlbmV2ZXIgdGhlcmUgYXJlIHBlbmRpbmcKKyAgICAgICAgU1FMaXRlIHRyYW5z
YWN0aW9ucyBhbmQgdGhlIFVJUHJvY2VzcyB3b3VsZCB0aGVuIHRha2UgYSBwcm9jZXNzIGFzc2Vy
dGlvbiBvbiBiZWhhbGYKKyAgICAgICAgb2YgdGhlIFdlYlByb2Nlc3MgKG9yIHJlbGVhc2UgaXQp
IHRvIHByZXZlbnQgLyBhbGxvdyBzdXNwZW5zaW9uLgorCisgICAgICAgIFRoaXMgYXBwcm9hY2gg
aGFzIHNvbWUgaXNzdWVzOgorICAgICAgICAxLiBJdCB3YXMgbm9pc3kgaW4gdGVybXMgb2YgSVBD
CisgICAgICAgIDIuIEJlY2F1c2UgaXQgcmVsaWVzIG9uIGFuIElQQyB0byB0aGUgVUlQcm9jZXNz
IHRvIGtlZXAgcnVubmluZywgaXQgd2FzIGluaGVyZW50bHkKKyAgICAgICAgICAgcmFjeQorICAg
ICAgICAzLiBXZSBhbHJlYWR5IGhhdmUgbG9naWMgdG8gZGVhbCB3aXRoIHN1c3BlbnNpb24gaW4g
dGhlIG5ldHdvcmsgLyB3ZWIgcHJvY2Vzc2VzLgorICAgICAgICAgICBUaGUgVUlQcm9jZXNzIHNl
bmRzIGEgUHJlcGFyZUZvclN1c3BlbnNpb24gSVBDIHRvIGl0cyBjaGlsZCBwcm9jZXNzZXMuIElu
IHR1cm4sCisgICAgICAgICAgIHRob3NlIHByb2Nlc3NlcyB3aWxsIG1ha2Ugc3VyZSB0byBzdXNw
ZW5kIHRoZWlyIGRhdGFiYXNlIHRocmVhZHMgdG8gcHJldmVudCBhbnkKKyAgICAgICAgICAgZnVy
dGhlciBkYXRhYmFzZSB3b3JrLiBUaGUgY2hpbGQgcHJvY2Vzc2VzIHdvdWxkIHRoZW4gcmVzcG9u
ZCB0byB0aGUKKyAgICAgICAgICAgUHJlcGFyZUZvclN1c3BlbnNpb24gSVBDIHRvIGxldCB0aGUg
VUlQcm9jZXNzIGtub3cgdGhleSBhcmUgcmVhZHkgdG8gc3VzcGVuZC4KKyAgICAgICAgICAgVGhl
IDIgYXBwcm9hY2hlcyB3ZXJlIGNvbmZsaWN0aW5nLCBiZWNhdXNlIGFmdGVyIHRoZSBQcmVwYXJl
Rm9yU3VzcGVuc2lvbiBJUEMgaXMKKyAgICAgICAgICAgc2VudCwgdGhlIGNoaWxkIHByb2Nlc3Mg
Y291bGQgcHJvY2VzcyBhIHRyYW5zYWN0aW9uIGFuZCBzZW5kIHRoZQorICAgICAgICAgICBTZXRJ
c0hvbGRpbmdMb2NrZWRGaWxlcygpIElQQyB0byB0aGUgVUlQcm9jZXNzIHdoaWNoIHdvdWxkIGlu
Y29ycmVjdGx5IGNhbmNlbCB0aGUKKyAgICAgICAgICAgc3VzcGVuc2lvbi4KKworICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6Ok5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6bV9tZXNzYWdl
UG9ydENoYW5uZWxSZWdpc3RyeSk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViU1FMaXRlRGF0YWJhc2VUcmFj
a2VyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBTaGFyZWQvV2ViU1FMaXRlRGF0YWJhc2VUcmFj
a2VyLmg6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZENs
b3NlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkU2V0QXNzZXJ0
aW9uU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRJc0hv
bGRpbmdMb2NrZWRGaWxlcyk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6c2h1dERvd24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnNldElzSG9sZGluZ0xvY2tlZEZp
bGVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjptX25vblZpc2libGVQcm9jZXNzQ2xl
YW51cFRpbWVyKToKKyAgICAgICAgKFdlYktpdDo6bV93ZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIp
OiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorCiAyMDIwLTAx
LTI4ICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KIAogICAgICAgICBG
aXggZm9yIGNyYXNoIGluIEFwcEtpdCBhY2Nlc3NpYmlsaXR5LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCA1Njc4NGVkNmNjYjkzZDYz
MTNkZjY4MTljMGE1MDQxM2ZhZGU0NmRhLi4zM2Y3NTdjYjZiYTI2ODhiZDBhOTI0YTA4ODYwNWY3
M2FhY2Y4ZDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcApAQCAtMTUwLDkgKzE1MCw2IEBAIE5ldHdvcmtQcm9jZXNzOjpOZXR3b3JrUHJv
Y2VzcyhBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1lCiAg
ICAgLCBtX3N0b3JhZ2VNYW5hZ2VyU2V0KFN0b3JhZ2VNYW5hZ2VyU2V0OjpjcmVhdGUoKSkKICNp
ZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogICAgICwgbV9uZXR3b3JrQ29udGVudFJ1bGVM
aXN0TWFuYWdlcigqdGhpcykKLSNlbmRpZgotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAg
LCBtX3dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlcihbdGhpc10oYm9vbCBpc0hvbGRpbmdMb2NrZWRG
aWxlcykgeyBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpTZXRJc0hvbGRpbmdMb2NrZWRGaWxlcyhpc0hvbGRpbmdMb2NrZWRGaWxl
cyksIDApOyB9KQogI2VuZGlmCiAgICAgLCBtX21lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5KGNy
ZWF0ZU1lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5KCp0aGlzKSkKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCBmMzIxZGYyOTBlOTRlODY2
YmFiYTZlZTdkMzZiYjFmZDIyMzZjYmZlLi44NzdiZWEzN2RkMGYzMDBlM2E2YjhlNTdjZmFlMTdk
ODQ3MWUzYzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5oCkBAIC01NiwxMCArNTYsNiBAQAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNp
bmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNpbmNs
dWRlICJXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCIKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0o
Q09DT0EpCiB0eXBlZGVmIHN0cnVjdCBPcGFxdWVDRkhUVFBDb29raWVTdG9yYWdlKiAgQ0ZIVFRQ
Q29va2llU3RvcmFnZVJlZjsKICNlbmRpZgpAQCAtNTQ0LDEwICs1NDAsNiBAQCBwcml2YXRlOgog
ICAgIE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyIG1fbmV0d29ya0NvbnRlbnRSdWxlTGlz
dE1hbmFnZXI7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgV2ViU1FM
aXRlRGF0YWJhc2VUcmFja2VyIG1fd2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyOwotI2VuZGlmCi0K
ICAgICBSZWY8V29ya1F1ZXVlPiBtX3N0b3JhZ2VUYXNrUXVldWUgeyBXb3JrUXVldWU6OmNyZWF0
ZSgiY29tLmFwcGxlLldlYktpdC5TdG9yYWdlVGFzayIpIH07CiAKICNpZiBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlNRTGl0ZURh
dGFiYXNlVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJTUUxpdGVEYXRhYmFz
ZVRyYWNrZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMDI3MDcwNWQ0OWUy
NTg5OGFhNjBjNjQwOTZmZjE4NDE5ZmY0Y2Q4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlNRTGl0ZURhdGFiYXNl
VHJhY2tlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4NyArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5o
IgotCi0jaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKLSNpbmNsdWRlICJOZXR3b3JrUHJvY2Vz
c1Byb3h5TWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCi0jaW5jbHVkZSAiV2Vi
UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1NRTGl0ZURhdGFiYXNl
VHJhY2tlci5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwotCi1XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXI6OldlYlNRTGl0ZURhdGFiYXNlVHJhY2tlcihJ
c0hvbGRpbmdMb2NrZWRGaWxlc0hhbmRsZXImJiBpc0hvbGRpbmdMb2NrZWRGaWxlc0hhbmRsZXIp
Ci0gICAgOiBtX2lzSG9sZGluZ0xvY2tlZEZpbGVzSGFuZGxlcihXVEZNb3ZlKGlzSG9sZGluZ0xv
Y2tlZEZpbGVzSGFuZGxlcikpCi0gICAgLCBtX2h5c3RlcmVzaXMoW3RoaXNdKFBBTDo6SHlzdGVy
ZXNpc1N0YXRlIHN0YXRlKSB7IHNldElzSG9sZGluZ0xvY2tlZEZpbGVzKHN0YXRlID09IFBBTDo6
SHlzdGVyZXNpc1N0YXRlOjpTdGFydGVkKTsgfSkKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkpOwotICAgIFNRTGl0ZURhdGFiYXNlVHJhY2tlcjo6c2V0Q2xpZW50KHRoaXMpOwotfQot
Ci1XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXI6On5XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIoKQot
ewotICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgU1FMaXRlRGF0YWJhc2VUcmFj
a2VyOjpzZXRDbGllbnQobnVsbHB0cik7Ci0KLSAgICBpZiAobV9oeXN0ZXJlc2lzLnN0YXRlKCkg
PT0gUEFMOjpIeXN0ZXJlc2lzU3RhdGU6OlN0YXJ0ZWQpCi0gICAgICAgIHNldElzSG9sZGluZ0xv
Y2tlZEZpbGVzKGZhbHNlKTsKLX0KLQotdm9pZCBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXI6OnNl
dElzU3VzcGVuZGVkKGJvb2wgaXNTdXNwZW5kZWQpCi17Ci0gICAgQVNTRVJUKFJ1bkxvb3A6Omlz
TWFpbigpKTsKLSAgICBtX2lzU3VzcGVuZGVkID0gaXNTdXNwZW5kZWQ7Ci19Ci0KLXZvaWQgV2Vi
U1FMaXRlRGF0YWJhc2VUcmFja2VyOjp3aWxsQmVnaW5GaXJzdFRyYW5zYWN0aW9uKCkKLXsKLSAg
ICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMp
XSB7Ci0gICAgICAgIGlmICh3ZWFrVGhpcykKLSAgICAgICAgICAgIHdlYWtUaGlzLT5tX2h5c3Rl
cmVzaXMuc3RhcnQoKTsKLSAgICB9KTsKLX0KLQotdm9pZCBXZWJTUUxpdGVEYXRhYmFzZVRyYWNr
ZXI6OmRpZEZpbmlzaExhc3RUcmFuc2FjdGlvbigpCi17Ci0gICAgUnVuTG9vcDo6bWFpbigpLmRp
c3BhdGNoKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0gewotICAgICAgICBpZiAod2Vh
a1RoaXMpCi0gICAgICAgICAgICB3ZWFrVGhpcy0+bV9oeXN0ZXJlc2lzLnN0b3AoKTsKLSAgICB9
KTsKLX0KLQotdm9pZCBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXI6OnNldElzSG9sZGluZ0xvY2tl
ZEZpbGVzKGJvb2wgaXNIb2xkaW5nTG9ja2VkRmlsZXMpCi17Ci0gICAgQVNTRVJUKFJ1bkxvb3A6
OmlzTWFpbigpKTsKLQotICAgIGlmIChtX2lzU3VzcGVuZGVkKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBtX2lzSG9sZGluZ0xvY2tlZEZpbGVzSGFuZGxlcihpc0hvbGRpbmdMb2NrZWRGaWxlcyk7
Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YjJiZmQzMjNkZTUzZTY1MjMyMTM5MTMzODg3ZGM1NGU4MTEyYzkyZC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJT
UUxpdGVEYXRhYmFzZVRyYWNrZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgPFdlYkNvcmUvU1FMaXRlRGF0YWJh
c2VUcmFja2VyQ2xpZW50Lmg+Ci0jaW5jbHVkZSA8cGFsL0h5c3RlcmVzaXNBY3Rpdml0eS5oPgot
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+Ci0K
LW5hbWVzcGFjZSBXZWJLaXQgewotCi0vLyBVc2UgZWFnZXIgaW5pdGlhbGl6YXRpb24gZm9yIHRo
ZSBXZWFrUHRyRmFjdG9yeSBzaW5jZSB3ZSBjYWxsIG1ha2VXZWFrUHRyKCkgZnJvbSBhIG5vbi1t
YWluIHRocmVhZC4KLWNsYXNzIFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlciBmaW5hbCA6IHB1Ymxp
YyBXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQsIHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIsIFdlYWtQdHJGYWN0b3J5SW5pdGlhbGl6YXRp
b246OkVhZ2VyPiB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2ViU1FMaXRlRGF0YWJhc2VU
cmFja2VyKQotcHVibGljOgotICAgIHVzaW5nIElzSG9sZGluZ0xvY2tlZEZpbGVzSGFuZGxlciA9
IEZ1bmN0aW9uPHZvaWQoYm9vbCk+OwotICAgIGV4cGxpY2l0IFdlYlNRTGl0ZURhdGFiYXNlVHJh
Y2tlcihJc0hvbGRpbmdMb2NrZWRGaWxlc0hhbmRsZXImJik7Ci0KLSAgICB+V2ViU1FMaXRlRGF0
YWJhc2VUcmFja2VyKCk7Ci0KLSAgICB2b2lkIHNldElzU3VzcGVuZGVkKGJvb2wpOwotCi1wcml2
YXRlOgotICAgIHZvaWQgc2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCk7Ci0KLSAgICAvLyBX
ZWJDb3JlOjpTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQuCi0gICAgdm9pZCB3aWxsQmVnaW5G
aXJzdFRyYW5zYWN0aW9uKCkgZmluYWw7Ci0gICAgdm9pZCBkaWRGaW5pc2hMYXN0VHJhbnNhY3Rp
b24oKSBmaW5hbDsKLQotICAgIElzSG9sZGluZ0xvY2tlZEZpbGVzSGFuZGxlciBtX2lzSG9sZGlu
Z0xvY2tlZEZpbGVzSGFuZGxlcjsKLSAgICBQQUw6Okh5c3RlcmVzaXNBY3Rpdml0eSBtX2h5c3Rl
cmVzaXM7Ci0gICAgYm9vbCBtX2lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKLX07Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGVhYTBkODRmYTVjZmE3NDBk
MjdiNzhiOTA3ZWM5NTY5OTMxY2IwZGMuLjhhYWFkNzdhNWU3YjM1OTYxN2QyYTc0YmE2ZTE2ZDQx
ODc5ZmE2NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTEzMSw3ICsxMzEsNiBAQCBTaGFy
ZWQvQVBJV2ViQXJjaGl2ZVJlc291cmNlLm1tCiBTaGFyZWQvRG9jdW1lbnRFZGl0aW5nQ29udGV4
dC5tbQogU2hhcmVkL0ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uY3BwCiBTaGFyZWQvVmlzaWJs
ZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHAKLVNoYXJlZC9XZWJTUUxpdGVEYXRhYmFzZVRyYWNr
ZXIuY3BwCiAKIFNoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmNwcCBAbm8tdW5pZnkKIFNoYXJl
ZC9jZi9Db29raWVTdG9yYWdlVXRpbHNDRi5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggMjZhYWIwMzU4
MzdmODljZWQwNTg4MWIzMWUyNDk2NmFhODQwNTM4Yi4uZjVlMmMwY2Q0N2U4YjRlMTQ3NDkxMjcw
YTQ0NmI0NjdiZjEyMmY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0zMDEsOCArMzAxLDYgQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQogI2lmIEVO
QUJMRShMRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIpCiAgICAgbV9jdXN0b21Qcm90b2Nv
bE1hbmFnZXJQcm94eS5pbnZhbGlkYXRlKCk7CiAjZW5kaWYKLQotICAgIG1fYWN0aXZpdHlGb3JI
b2xkaW5nTG9ja2VkRmlsZXMgPSBudWxscHRyOwogICAgIAogICAgIG1fc3luY0FsbENvb2tpZXNB
Y3Rpdml0eSA9IG51bGxwdHI7CiAgICAgbV9zeW5jQWxsQ29va2llc0NvdW50ZXIgPSAwOwpAQCAt
MTE1OSwxOSArMTE1Nyw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZFByb2Nlc3NE
aWRSZXN1bWUoKQogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRTZXRBc3NlcnRpb25TdGF0
ZShBc3NlcnRpb25TdGF0ZSkKIHsKIH0KLSAgICAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6
c2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCBpc0hvbGRpbmdMb2NrZWRGaWxlcykKLXsKLSAg
ICBpZiAoIWlzSG9sZGluZ0xvY2tlZEZpbGVzKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HKFByb2Nl
c3NTdXNwZW5zaW9uLCAiVUlQcm9jZXNzIGlzIHJlbGVhc2luZyBhIGJhY2tncm91bmQgYXNzZXJ0
aW9uIGJlY2F1c2UgdGhlIE5ldHdvcmsgcHJvY2VzcyBpcyBubyBsb25nZXIgaG9sZGluZyBsb2Nr
ZWQgZmlsZXMiKTsKLSAgICAgICAgbV9hY3Rpdml0eUZvckhvbGRpbmdMb2NrZWRGaWxlcyA9IG51
bGxwdHI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYgKCFtX2FjdGl2aXR5Rm9ySG9s
ZGluZ0xvY2tlZEZpbGVzKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9u
LCAiVUlQcm9jZXNzIGlzIHRha2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhl
IE5ldHdvcmsgcHJvY2VzcyBpcyBob2xkaW5nIGxvY2tlZCBmaWxlcyIpOwotICAgICAgICBtX2Fj
dGl2aXR5Rm9ySG9sZGluZ0xvY2tlZEZpbGVzID0gbV90aHJvdHRsZXIuYmFja2dyb3VuZEFjdGl2
aXR5KCJIb2xkaW5nIGxvY2tlZCBmaWxlcyJfcykubW92ZVRvVW5pcXVlUHRyKCk7Ci0gICAgfQot
fQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnN5bmNBbGxDb29raWVzKCkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmgKaW5kZXggNzdlN2Y2YThjYzkxYTY5M2M4YzA0NTdlNjZjMWY3MDY4OGU3MzUzNC4uM2VhZTZl
MWVjYTkyODBhYjRlZGVhOWFkMDNlMzJmZjYyYThmYjNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTE2OCw4
ICsxNjgsNiBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBzeW50aGVzaXplQXBwSXNCYWNrZ3Jv
dW5kKGJvb2wgYmFja2dyb3VuZCk7CiAKLSAgICB2b2lkIHNldElzSG9sZGluZ0xvY2tlZEZpbGVz
KGJvb2wpOwotCiAgICAgdm9pZCBzeW5jQWxsQ29va2llcygpOwogICAgIHZvaWQgZGlkU3luY0Fs
bENvb2tpZXMoKTsKIApAQCAtMjk2LDcgKzI5NCw2IEBAIHByaXZhdGU6CiAgICAgTGVnYWN5Q3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkgbV9jdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eTsKICNl
bmRpZgogICAgIFByb2Nlc3NUaHJvdHRsZXIgbV90aHJvdHRsZXI7Ci0gICAgc3RkOjp1bmlxdWVf
cHRyPFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eT4gbV9hY3Rpdml0eUZvckhv
bGRpbmdMb2NrZWRGaWxlczsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc1Rocm90dGxlcjo6
QmFja2dyb3VuZEFjdGl2aXR5PiBtX3N5bmNBbGxDb29raWVzQWN0aXZpdHk7CiAgICAgUHJvY2Vz
c1Rocm90dGxlcjo6QWN0aXZpdHlWYXJpYW50IG1fYWN0aXZpdHlGcm9tV2ViUHJvY2Vzc2VzOwog
ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDNkOTE5YmU0NzFjN2MxMGJj
ZTk0ZjZjMTIxYTE5MzM0MWJkYjEwNTQuLjAzNmNiYTQ1MGRkYTRjZDE5ZGQxMDRlM2Y0NmY2Zjkw
NmMzNmJmOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTMyLDggKzMyLDYg
QEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciBOb3RSZWZD
b3VudGVkIHsKICAgICBUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdG
b3JTeW5jUmVwbHkoV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJRCkgLT4gKGJv
b2wgaGFuZGxlZCkgU3luY2hyb25vdXMKICAgICBUZXJtaW5hdGVVbnJlc3BvbnNpdmVTZXJ2aWNl
V29ya2VyUHJvY2Vzc2VzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbiwgUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklkKQogCi0gICAgU2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCBp
c0hvbGRpbmdMb2NrZWRGaWxlcykKLQogICAgICMgRGlhZ25vc3RpYyBtZXNzYWdlcyBsb2dnaW5n
CiAgICAgTG9nRGlhZ25vc3RpY01lc3NhZ2UoV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVy
IHBhZ2VJRCwgU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBkZXNjcmlwdGlvbiwgZW51bTpib29sIFdl
YkNvcmU6OlNob3VsZFNhbXBsZSBzaG91bGRTYW1wbGUpCiAgICAgTG9nRGlhZ25vc3RpY01lc3Nh
Z2VXaXRoUmVzdWx0KFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQsIFN0cmlu
ZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3JpcHRpb24sIHVpbnQzMl90IHJlc3VsdCwgZW51bTpib29s
IFdlYkNvcmU6OlNob3VsZFNhbXBsZSBzaG91bGRTYW1wbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA5OGM1NWQ2MGNmNjU2NDVlYzgxMGY1MzM2
ZjVhZGM3NTAwMTliMWJiLi43NjJlNWYzOWVlODk1OGE4ZWE4MzIyMmQ0ODZlOGZhNGM4OGM0N2Zh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTM4
OSw3ICszODksNiBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c2h1dERvd24oKQogCiAgICAgbV9y
ZXNwb25zaXZlbmVzc1RpbWVyLmludmFsaWRhdGUoKTsKICAgICBtX2JhY2tncm91bmRSZXNwb25z
aXZlbmVzc1RpbWVyLmludmFsaWRhdGUoKTsKLSAgICBtX2FjdGl2aXR5Rm9ySG9sZGluZ0xvY2tl
ZEZpbGVzID0gbnVsbHB0cjsKIAogICAgIGZvciAoYXV0byYgZnJhbWUgOiBjb3B5VG9WZWN0b3Io
bV9mcmFtZU1hcC52YWx1ZXMoKSkpCiAgICAgICAgIGZyYW1lLT53ZWJQcm9jZXNzV2lsbFNodXRE
b3duKCk7CkBAIC0xMzEzLDE5ICsxMzEyLDYgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OndlYlBh
Z2VNZWRpYVN0YXRlRGlkQ2hhbmdlKFdlYlBhZ2VQcm94eSYpCiAgICAgICAgIHByb2Nlc3NQb29s
KCkuY2xlYXJXZWJQcm9jZXNzSXNQbGF5aW5nQXVkaWJsZU1lZGlhKGNvcmVQcm9jZXNzSWRlbnRp
ZmllcigpKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OnNldElzSG9sZGluZ0xvY2tlZEZp
bGVzKGJvb2wgaXNIb2xkaW5nTG9ja2VkRmlsZXMpCi17Ci0gICAgaWYgKCFpc0hvbGRpbmdMb2Nr
ZWRGaWxlcykgewotICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIlVJUHJv
Y2VzcyBpcyByZWxlYXNpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBXZWJD
b250ZW50IHByb2Nlc3MgaXMgbm8gbG9uZ2VyIGhvbGRpbmcgbG9ja2VkIGZpbGVzIik7Ci0gICAg
ICAgIG1fYWN0aXZpdHlGb3JIb2xkaW5nTG9ja2VkRmlsZXMgPSBudWxscHRyOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotICAgIGlmICghbV9hY3Rpdml0eUZvckhvbGRpbmdMb2NrZWRGaWxlcykg
ewotICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIlVJUHJvY2VzcyBpcyB0
YWtpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSBXZWJDb250ZW50IHByb2Nl
c3MgaXMgaG9sZGluZyBsb2NrZWQgZmlsZXMiKTsKLSAgICAgICAgbV9hY3Rpdml0eUZvckhvbGRp
bmdMb2NrZWRGaWxlcyA9IG1fdGhyb3R0bGVyLmJhY2tncm91bmRBY3Rpdml0eSgiSG9sZGluZyBs
b2NrZWQgZmlsZXMiX3MpLm1vdmVUb1VuaXF1ZVB0cigpOwotICAgIH0KLX0KLQogdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OmlzUmVzcG9uc2l2ZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgaXNX
ZWJQcm9jZXNzUmVzcG9uc2l2ZSk+JiYgY2FsbGJhY2spCiB7CiAgICAgaWYgKG1faXNSZXNwb25z
aXZlID09IE5vT3JNYXliZTo6Tm8pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmgKaW5kZXggMTMyZGZiMzhjZjc2NTYzMWUwNzFmMzVjMjUzMmNiOWZhMjgzYzhiMy4u
NmVlYjhiY2FhNDMzNDg2MGFhOWQ5NDc4M2E5ZjllYmRlZDMyNmVkYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTIyOSw4ICsyMjksNiBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIHdpbmRvd1NlcnZlckNvbm5lY3Rpb25TdGF0ZUNoYW5nZWQoKTsKIAotICAg
IHZvaWQgc2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCk7Ci0KICAgICBQcm9jZXNzVGhyb3R0
bGVyJiB0aHJvdHRsZXIoKSB7IHJldHVybiBtX3Rocm90dGxlcjsgfQogCiAgICAgdm9pZCBpc1Jl
c3BvbnNpdmUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGlzV2ViUHJvY2Vzc1Jlc3BvbnNp
dmUpPiYmKTsKQEAgLTUwMSw3ICs0OTksNiBAQCBwcml2YXRlOgogCiAgICAgaW50IG1fbnVtYmVy
T2ZUaW1lc1N1ZGRlblRlcm1pbmF0aW9uV2FzRGlzYWJsZWQ7CiAgICAgUHJvY2Vzc1Rocm90dGxl
ciBtX3Rocm90dGxlcjsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc1Rocm90dGxlcjo6QmFj
a2dyb3VuZEFjdGl2aXR5PiBtX2FjdGl2aXR5Rm9ySG9sZGluZ0xvY2tlZEZpbGVzOwogICAgIEZv
cmVncm91bmRXZWJQcm9jZXNzVG9rZW4gbV9mb3JlZ3JvdW5kVG9rZW47CiAgICAgQmFja2dyb3Vu
ZFdlYlByb2Nlc3NUb2tlbiBtX2JhY2tncm91bmRUb2tlbjsKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluCmluZGV4IDM5ODFjYmIwNTU1ODU1ZWE1OWE4NjEwZmI4ODY4YzgxN2IxNmFjNzMu
LjkyZWFlMTUwNzA3Y2MwY2JmNzM2ZTdmYWEzYmViMzgyZWQyZTMzYzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTQy
LDggKzQyLDYgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsK
ICAgICBHZXRHUFVQcm9jZXNzQ29ubmVjdGlvbigpIC0+IChzdHJ1Y3QgV2ViS2l0OjpHUFVQcm9j
ZXNzQ29ubmVjdGlvbkluZm8gY29ubmVjdGlvbkluZm8pIFN5bmNocm9ub3VzCiAjZW5kaWYKIAot
ICAgIFNldElzSG9sZGluZ0xvY2tlZEZpbGVzKGJvb2wgaXNIb2xkaW5nTG9ja2VkRmlsZXMpCi0K
ICAgICBEaWRFeGNlZWRBY3RpdmVNZW1vcnlMaW1pdCgpCiAgICAgRGlkRXhjZWVkSW5hY3RpdmVN
ZW1vcnlMaW1pdCgpCiAgICAgRGlkRXhjZWVkQ1BVTGltaXQoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzY5N2M0YzU4ZDQ3MmM2NGM2
YmI5MGM0Y2RkZTZjZDVjNmU1OWJjYS4uZGU4MGE5MjNkNzA5ZjcyN2Y4MzY0MDRkYzZiOWVjYzZk
NDljOGI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0xMzE3LDcgKzEzMTcsNiBAQAogCQk4MzJBRTI1MjFCRTJFOENEMDBGQUFFMTAg
LyogTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMyQUUyNTAxQkUyRThDRDAwRkFBRTEwIC8q
IE5ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuaCAqLzsgfTsKIAkJODMyRUQxOEMx
RTJGRTE1NzAwNkJBNjRBIC8qIFBlckFjdGl2aXR5U3RhdGVDUFVVc2FnZVNhbXBsZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMkVEMThBMUUyRkUx
M0IwMDZCQTY0QSAvKiBQZXJBY3Rpdml0eVN0YXRlQ1BVVXNhZ2VTYW1wbGVyLmggKi87IH07CiAJ
CTgzNEIyNTBGMUE4MzFBOEQwMENGQjE1MCAvKiBOZXR3b3JrQ2FjaGVGaWxlU3lzdGVtLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzRCMjUwRTFBODMx
QThEMDBDRkIxNTAgLyogTmV0d29ya0NhY2hlRmlsZVN5c3RlbS5oICovOyB9OwotCQk4MzYwMzRB
MDFBQ0IzNEQ2MDA2MjY1NDkgLyogV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzYwMzQ5RTFBQ0IzNEQ2MDA2
MjY1NDkgLyogV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmggKi87IH07CiAJCTgzNzJEQjI1MUE2
NzRDOEYwMEM2OTdDNSAvKiBXS1BhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM3MkRCMjQxQTY3NEM4RjAw
QzY5N0M1IC8qIFdLUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODM3MkRCMjkxQTY3NTYyODAwQzY5
N0M1IC8qIFdlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM3MkRCMjcxQTY3NTYyODAwQzY5N0M1IC8q
IFdlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovOyB9OwogCQk4MzcyREIyRjFBNjc3
RDRBMDBDNjk3QzUgLyogV0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNzJEQjJFMUE2NzdENEEwMEM2
OTdDNSAvKiBXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC00MjA4LDggKzQyMDcsNiBAQAogCQk4
MzM5N0M2NjIyMTI0QkQxMDBCNjIzODggLyogV2ViUHJvY2Vzc0NhY2hlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlByb2Nlc3NDYWNoZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMzk3QzY3MjIxMjRCRDEwMEI2MjM4OCAvKiBXZWJQcm9j
ZXNzQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUHJvY2Vzc0Nh
Y2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNEIyNTBFMUE4MzFBOEQwMENG
QjE1MCAvKiBOZXR3b3JrQ2FjaGVGaWxlU3lzdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE5ldHdvcmtDYWNoZUZpbGVTeXN0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJODM2MDM0OUQxQUNCMzRENjAwNjI2NTQ5IC8qIFdlYlNRTGl0ZURhdGFiYXNlVHJh
Y2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTUUxpdGVE
YXRhYmFzZVRyYWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4MzYwMzQ5
RTFBQ0IzNEQ2MDA2MjY1NDkgLyogV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzcyREIyNDFBNjc0QzhGMDBDNjk3QzUgLyogV0tQ
YWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODM3MkRCMjYxQTY3NTYyODAwQzY5N0M1IC8qIFdlYlBhZ2VEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4MzcyREIyNzFBNjc1NjI4MDBDNjk3QzUgLyogV2ViUGFnZURpYWdub3N0aWNMb2dn
aW5nQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlBhZ2VEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTgy
NCw4ICs1ODIxLDYgQEAKIAkJCQk1QzEzMDI0QTFGRTM0MUE3MDAwRDlCMzEgLyogV2Vic2l0ZVBv
bGljaWVzRGF0YS5oICovLAogCQkJCTBFREU4NTAyMjAwNEU3NDkwMDAzMDU2MCAvKiBXZWJzaXRl
UG9wVXBQb2xpY3kuaCAqLywKIAkJCQk3MUZCODEwQTIyNjA2MjdBMDAzMjM2NzcgLyogV2Vic2l0
ZVNpbXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3kuaCAqLywKLQkJCQk4MzYwMzQ5RDFB
Q0IzNEQ2MDA2MjY1NDkgLyogV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmNwcCAqLywKLQkJCQk4
MzYwMzQ5RTFBQ0IzNEQ2MDA2MjY1NDkgLyogV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmggKi8s
CiAJCQkJQzAzMzdERDcxMjdBNTFCNjAwOEZGNEY0IC8qIFdlYlRvdWNoRXZlbnQuY3BwICovLAog
CQkJCTdDMDY1RjI5MUM4Q0Q5NUYwMEMyRDk1MCAvKiBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJE
YXRhVHlwZXMuY3BwICovLAogCQkJCTdDMDY1RjJBMUM4Q0Q5NUYwMEMyRDk1MCAvKiBXZWJVc2Vy
Q29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuaCAqLywKQEAgLTEwNzk2LDcgKzEwNzkxLDYgQEAK
IAkJCQk0MTc5MTVBRjIyNTZCQjc1MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDE3OTE1QjEyMjU2QzBENjAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5u
ZWxNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMTQ5MzgwOTIyMzQ3MTA0MDAwQ0Q3MDcg
LyogV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk4MzYwMzRB
MDFBQ0IzNEQ2MDA2MjY1NDkgLyogV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQTUyQzBGODFBMzhDREM3MDAxNjE2MEEgLyogV2ViU3RvcmFnZU5hbWVzcGFj
ZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzU2RjJEQzIxNTJCNkI1MDBFNkQ1REYg
LyogV2ViU1dDbGllbnRDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTdBNTMxMDFG
NDdBODYyMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDY3YTc5
MGE3YTgzMjY0Mjk0ODYzOGRkNTc0NzkxZDA4MDIzMTAxNzEuLjU3ZjNjMTBmMzBiZjVmYzVlNjk3
YmY5NDIwMWRkZmY1Zjg5ZTM2NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAKQEAgLTE0MiwxMCArMTQyLDYgQEAKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5oIgogI2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotI2luY2x1ZGUgIldl
YlNRTGl0ZURhdGFiYXNlVHJhY2tlci5oIgotI2VuZGlmCi0KICNpZiBFTkFCTEUoU0VDX0lURU1f
U0hJTSkKICNpbmNsdWRlICJTZWNJdGVtU2hpbS5oIgogI2VuZGlmCkBAIC0yMDksOSArMjA1LDYg
QEAgV2ViUHJvY2Vzczo6V2ViUHJvY2VzcygpCiAgICAgLCBtX3BsdWdpblByb2Nlc3NDb25uZWN0
aW9uTWFuYWdlcihQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OmNyZWF0ZSgpKQogI2Vu
ZGlmCiAgICAgLCBtX25vblZpc2libGVQcm9jZXNzQ2xlYW51cFRpbWVyKCp0aGlzLCAmV2ViUHJv
Y2Vzczo6bm9uVmlzaWJsZVByb2Nlc3NDbGVhbnVwVGltZXJGaXJlZCkKLSNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQotICAgICwgbV93ZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIoW3RoaXNdKGJvb2wg
aXNIb2xkaW5nTG9ja2VkRmlsZXMpIHsgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpTZXRJc0hvbGRpbmdMb2NrZWRGaWxlcyhpc0hvbGRp
bmdMb2NrZWRGaWxlcyksIDApOyB9KQotI2VuZGlmCiB7CiAgICAgLy8gSW5pdGlhbGl6ZSBvdXIg
cGxhdGZvcm0gc3RyYXRlZ2llcy4KICAgICBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxp
emUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDQ5M2IyYjdhMDU5
YWFhZmY3OWQzZWVhZmJlNzVlM2E4ZGFjM2Y3Y2YuLmM5YmM2NzAxNDMzN2MwZjVlMGQzMDNiMDMw
OTVmNzk3MTg2MWM1ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAt
NDAsNyArNDAsNiBAQAogI2luY2x1ZGUgIldlYkluc3BlY3RvckludGVycnVwdERpc3BhdGNoZXIu
aCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgotI2luY2x1ZGUgIldlYlNRTGl0ZURhdGFiYXNlVHJh
Y2tlci5oIgogI2luY2x1ZGUgIldlYlNvY2tldENoYW5uZWxNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZp
ZXIuaD4KQEAgLTU3OCw3ICs1NzcsNiBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJDb3JlOjpB
cHBsaWNhdGlvbkNhY2hlU3RvcmFnZT4gbV9hcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTsKIAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyIG1fd2Vi
U1FMaXRlRGF0YWJhc2VUcmFja2VyOwogICAgIFJlZlB0cjxQcm9jZXNzVGFza1N0YXRlT2JzZXJ2
ZXI+IG1fdGFza1N0YXRlT2JzZXJ2ZXI7CiAgICAgTG9jayBtX3Byb2Nlc3NXYXNSZXN1bWVkQXNz
ZXJ0aW9uc0xvY2s7CiAgICAgUmV0YWluUHRyPEJLU1Byb2Nlc3NBc3NlcnRpb24+IG1fcHJvY2Vz
c1dhc1Jlc3VtZWRVSUFzc2VydGlvbjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389074</attachid>
            <date>2020-01-28 15:19:13 -0800</date>
            <delta_ts>2020-04-28 09:32:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206910-20200128151913.patch</filename>
            <type>text/plain</type>
            <size>26165</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1MzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ1YzgzZjkyYzM1MDBiYzRl
NWZhNWRjMmRiNmJkYzM0NDA4N2QzZmEuLjgwYmU4MTdlMTY4ZjczZDE1YTllMTllZTdiNWZmNTEy
OTQzNzA1YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMjAtMDEtMjggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXVtXSzJdIERyb3AgcHJvY2Vz
cyBhc3NlcnRpb24gbG9naWMgZm9yIGhvbGRpbmcgbG9ja2VkIGZpbGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY5MTAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHByb2Nlc3MgYXNzZXJ0aW9u
IGxvZ2ljIGZvciBob2xkaW5nIGxvY2tlZCBmaWxlcyBhcyBpdCBpcyBjYXVzaW5nIGlzc3VlcyBh
bmQKKyAgICAgICAgc2hvdWxkIG5vIGxvbmdlciBiZSBuZWVkZWQuCisKKyAgICAgICAgVGhlIGlu
dGVudGlvbiBvZiB0aGlzIGNvZGUgd2FzIHRoYXQgdGhlIE5ldHdvcmsgUHJvY2VzcyB3b3VsZCBz
ZW5kIGEKKyAgICAgICAgU2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCkgSVBDIHRvIHRoZSBV
SVByb2Nlc3Mgd2hlbmV2ZXIgdGhlcmUgYXJlIHBlbmRpbmcKKyAgICAgICAgU1FMaXRlIHRyYW5z
YWN0aW9ucyBhbmQgdGhlIFVJUHJvY2VzcyB3b3VsZCB0aGVuIHRha2UgYSBwcm9jZXNzIGFzc2Vy
dGlvbiBvbiBiZWhhbGYKKyAgICAgICAgb2YgdGhlIFdlYlByb2Nlc3MgKG9yIHJlbGVhc2UgaXQp
IHRvIHByZXZlbnQgLyBhbGxvdyBzdXNwZW5zaW9uLgorCisgICAgICAgIFRoaXMgYXBwcm9hY2gg
aGFzIHNvbWUgaXNzdWVzOgorICAgICAgICAxLiBJdCB3YXMgbm9pc3kgaW4gdGVybXMgb2YgSVBD
CisgICAgICAgIDIuIEJlY2F1c2UgaXQgcmVsaWVzIG9uIGFuIElQQyB0byB0aGUgVUlQcm9jZXNz
IHRvIGtlZXAgcnVubmluZywgaXQgd2FzIGluaGVyZW50bHkKKyAgICAgICAgICAgcmFjeQorICAg
ICAgICAzLiBXZSBhbHJlYWR5IGhhdmUgbG9naWMgdG8gZGVhbCB3aXRoIHN1c3BlbnNpb24gaW4g
dGhlIG5ldHdvcmsgLyB3ZWIgcHJvY2Vzc2VzLgorICAgICAgICAgICBUaGUgVUlQcm9jZXNzIHNl
bmRzIGEgUHJlcGFyZUZvclN1c3BlbnNpb24gSVBDIHRvIGl0cyBjaGlsZCBwcm9jZXNzZXMuIElu
IHR1cm4sCisgICAgICAgICAgIHRob3NlIHByb2Nlc3NlcyB3aWxsIG1ha2Ugc3VyZSB0byBzdXNw
ZW5kIHRoZWlyIGRhdGFiYXNlIHRocmVhZHMgdG8gcHJldmVudCBhbnkKKyAgICAgICAgICAgZnVy
dGhlciBkYXRhYmFzZSB3b3JrLiBUaGUgY2hpbGQgcHJvY2Vzc2VzIHdvdWxkIHRoZW4gcmVzcG9u
ZCB0byB0aGUKKyAgICAgICAgICAgUHJlcGFyZUZvclN1c3BlbnNpb24gSVBDIHRvIGxldCB0aGUg
VUlQcm9jZXNzIGtub3cgdGhleSBhcmUgcmVhZHkgdG8gc3VzcGVuZC4KKyAgICAgICAgICAgVGhl
IDIgYXBwcm9hY2hlcyB3ZXJlIGNvbmZsaWN0aW5nLCBiZWNhdXNlIGFmdGVyIHRoZSBQcmVwYXJl
Rm9yU3VzcGVuc2lvbiBJUEMgaXMKKyAgICAgICAgICAgc2VudCwgdGhlIGNoaWxkIHByb2Nlc3Mg
Y291bGQgcHJvY2VzcyBhIHRyYW5zYWN0aW9uIGFuZCBzZW5kIHRoZQorICAgICAgICAgICBTZXRJ
c0hvbGRpbmdMb2NrZWRGaWxlcygpIElQQyB0byB0aGUgVUlQcm9jZXNzIHdoaWNoIHdvdWxkIGlu
Y29ycmVjdGx5IGNhbmNlbCB0aGUKKyAgICAgICAgICAgc3VzcGVuc2lvbi4KKworICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6Ok5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6bV9tZXNzYWdl
UG9ydENoYW5uZWxSZWdpc3RyeSk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViU1FMaXRlRGF0YWJhc2VUcmFj
a2VyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBTaGFyZWQvV2ViU1FMaXRlRGF0YWJhc2VUcmFj
a2VyLmg6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZENs
b3NlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkU2V0QXNzZXJ0
aW9uU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRJc0hv
bGRpbmdMb2NrZWRGaWxlcyk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6c2h1dERvd24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnNldElzSG9sZGluZ0xvY2tlZEZp
bGVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjptX25vblZpc2libGVQcm9jZXNzQ2xl
YW51cFRpbWVyKToKKyAgICAgICAgKFdlYktpdDo6bV93ZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIp
OiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorCiAyMDIwLTAx
LTI4ICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KIAogICAgICAgICBG
aXggZm9yIGNyYXNoIGluIEFwcEtpdCBhY2Nlc3NpYmlsaXR5LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCA1Njc4NGVkNmNjYjkzZDYz
MTNkZjY4MTljMGE1MDQxM2ZhZGU0NmRhLi40MzEzNTFjYjE3MzAwZDc5ZDk1YTlhNDZlY2RjYjU0
N2Y0YTY4MmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcApAQCAtMTUwLDkgKzE1MCw2IEBAIE5ldHdvcmtQcm9jZXNzOjpOZXR3b3JrUHJv
Y2VzcyhBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1lCiAg
ICAgLCBtX3N0b3JhZ2VNYW5hZ2VyU2V0KFN0b3JhZ2VNYW5hZ2VyU2V0OjpjcmVhdGUoKSkKICNp
ZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogICAgICwgbV9uZXR3b3JrQ29udGVudFJ1bGVM
aXN0TWFuYWdlcigqdGhpcykKLSNlbmRpZgotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAg
LCBtX3dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlcihbdGhpc10oYm9vbCBpc0hvbGRpbmdMb2NrZWRG
aWxlcykgeyBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpTZXRJc0hvbGRpbmdMb2NrZWRGaWxlcyhpc0hvbGRpbmdMb2NrZWRGaWxl
cyksIDApOyB9KQogI2VuZGlmCiAgICAgLCBtX21lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5KGNy
ZWF0ZU1lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5KCp0aGlzKSkKIHsKQEAgLTIxMDcsMTAgKzIx
MDQsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNw
ZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbAogICAgICAgICBzZXJ2ZXItPnN1c3BlbmQo
aXNTdXNwZW5zaW9uSW1taW5lbnQgPyBXZWJJREJTZXJ2ZXI6OlNob3VsZEZvcmNlU3RvcDo6WWVz
IDogV2ViSURCU2VydmVyOjpTaG91bGRGb3JjZVN0b3A6Ok5vKTsKICNlbmRpZgogCi0jaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBtX3dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5zZXRJc1N1
c3BlbmRlZCh0cnVlKTsKLSNlbmRpZgotCiAgICAgbG93TWVtb3J5SGFuZGxlcihDcml0aWNhbDo6
WWVzKTsKIAogICAgIFJlZlB0cjxDYWxsYmFja0FnZ3JlZ2F0b3I+IGNhbGxiYWNrQWdncmVnYXRv
ciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFt0aGlzLCBjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewpAQCAtMjE1OSwxMCArMjE1
Miw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKQogCiB2b2lkIE5l
dHdvcmtQcm9jZXNzOjpyZXN1bWUoKQogewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAg
bV93ZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuc2V0SXNTdXNwZW5kZWQoZmFsc2UpOwotI2VuZGlm
Ci0KICAgICBwbGF0Zm9ybVByb2Nlc3NEaWRSZXN1bWUoKTsKICAgICBmb3IgKGF1dG8mIGNvbm5l
Y3Rpb24gOiBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy52YWx1ZXMoKSkKICAgICAgICAgY29ubmVj
dGlvbi0+ZW5kU3VzcGVuc2lvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGYzMjFkZjI5MGU5NGU4NjZiYWJhNmVlN2QzNmJiMWZkMjIz
NmNiZmUuLjg3N2JlYTM3ZGQwZjMwMGUzYTZiOGU1N2NmYWUxN2Q4NDcxZTNjNTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTU2LDEwICs1
Niw2IEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotI2luY2x1ZGUgIldlYlNRTGl0ZURhdGFi
YXNlVHJhY2tlci5oIgotI2VuZGlmCi0KICNpZiBQTEFURk9STShDT0NPQSkKIHR5cGVkZWYgc3Ry
dWN0IE9wYXF1ZUNGSFRUUENvb2tpZVN0b3JhZ2UqICBDRkhUVFBDb29raWVTdG9yYWdlUmVmOwog
I2VuZGlmCkBAIC01NDQsMTAgKzU0MCw2IEBAIHByaXZhdGU6CiAgICAgTmV0d29ya0NvbnRlbnRS
dWxlTGlzdE1hbmFnZXIgbV9uZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcjsKICNlbmRpZgog
Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIg
bV93ZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXI7Ci0jZW5kaWYKLQogICAgIFJlZjxXb3JrUXVldWU+
IG1fc3RvcmFnZVRhc2tRdWV1ZSB7IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0
LlN0b3JhZ2VUYXNrIikgfTsKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQwMjcwNzA1ZDQ5ZTI1ODk4YWE2MGM2NDA5NmZmMTg0
MTlmZjRjZDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDg3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmgiCi0KLSNpbmNsdWRlICJOZXR3
b3JrUHJvY2Vzcy5oIgotI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgot
I2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdl
cy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvU1FMaXRlRGF0YWJhc2VUcmFja2VyLmg+Ci0KLW5hbWVz
cGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLVdlYlNRTGl0ZURhdGFi
YXNlVHJhY2tlcjo6V2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyKElzSG9sZGluZ0xvY2tlZEZpbGVz
SGFuZGxlciYmIGlzSG9sZGluZ0xvY2tlZEZpbGVzSGFuZGxlcikKLSAgICA6IG1faXNIb2xkaW5n
TG9ja2VkRmlsZXNIYW5kbGVyKFdURk1vdmUoaXNIb2xkaW5nTG9ja2VkRmlsZXNIYW5kbGVyKSkK
LSAgICAsIG1faHlzdGVyZXNpcyhbdGhpc10oUEFMOjpIeXN0ZXJlc2lzU3RhdGUgc3RhdGUpIHsg
c2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoc3RhdGUgPT0gUEFMOjpIeXN0ZXJlc2lzU3RhdGU6OlN0
YXJ0ZWQpOyB9KQotewotICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgU1FMaXRl
RGF0YWJhc2VUcmFja2VyOjpzZXRDbGllbnQodGhpcyk7Ci19Ci0KLVdlYlNRTGl0ZURhdGFiYXNl
VHJhY2tlcjo6fldlYlNRTGl0ZURhdGFiYXNlVHJhY2tlcigpCi17Ci0gICAgQVNTRVJUKFJ1bkxv
b3A6OmlzTWFpbigpKTsKLSAgICBTUUxpdGVEYXRhYmFzZVRyYWNrZXI6OnNldENsaWVudChudWxs
cHRyKTsKLQotICAgIGlmIChtX2h5c3RlcmVzaXMuc3RhdGUoKSA9PSBQQUw6Okh5c3RlcmVzaXNT
dGF0ZTo6U3RhcnRlZCkKLSAgICAgICAgc2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoZmFsc2UpOwot
fQotCi12b2lkIFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlcjo6c2V0SXNTdXNwZW5kZWQoYm9vbCBp
c1N1c3BlbmRlZCkKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgIG1faXNT
dXNwZW5kZWQgPSBpc1N1c3BlbmRlZDsKLX0KLQotdm9pZCBXZWJTUUxpdGVEYXRhYmFzZVRyYWNr
ZXI6OndpbGxCZWdpbkZpcnN0VHJhbnNhY3Rpb24oKQotewotICAgIFJ1bkxvb3A6Om1haW4oKS5k
aXNwYXRjaChbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldIHsKLSAgICAgICAgaWYgKHdl
YWtUaGlzKQotICAgICAgICAgICAgd2Vha1RoaXMtPm1faHlzdGVyZXNpcy5zdGFydCgpOwotICAg
IH0pOwotfQotCi12b2lkIFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlcjo6ZGlkRmluaXNoTGFzdFRy
YW5zYWN0aW9uKCkKLXsKLSAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3dlYWtUaGlzID0g
bWFrZVdlYWtQdHIoKnRoaXMpXSB7Ci0gICAgICAgIGlmICh3ZWFrVGhpcykKLSAgICAgICAgICAg
IHdlYWtUaGlzLT5tX2h5c3RlcmVzaXMuc3RvcCgpOwotICAgIH0pOwotfQotCi12b2lkIFdlYlNR
TGl0ZURhdGFiYXNlVHJhY2tlcjo6c2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCBpc0hvbGRp
bmdMb2NrZWRGaWxlcykKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotCi0gICAg
aWYgKG1faXNTdXNwZW5kZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1faXNIb2xkaW5nTG9j
a2VkRmlsZXNIYW5kbGVyKGlzSG9sZGluZ0xvY2tlZEZpbGVzKTsKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJTUUxpdGVEYXRh
YmFzZVRyYWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlNRTGl0ZURhdGFiYXNlVHJh
Y2tlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMmJmZDMyM2RlNTNlNjUyMzIx
MzkxMzM4ODdkYzU0ZTgxMTJjOTJkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlNRTGl0ZURhdGFiYXNlVHJhY2tl
ci5oCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaW5jbHVkZSA8V2ViQ29yZS9TUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQuaD4K
LSNpbmNsdWRlIDxwYWwvSHlzdGVyZXNpc0FjdGl2aXR5Lmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7
Ci0KLS8vIFVzZSBlYWdlciBpbml0aWFsaXphdGlvbiBmb3IgdGhlIFdlYWtQdHJGYWN0b3J5IHNp
bmNlIHdlIGNhbGwgbWFrZVdlYWtQdHIoKSBmcm9tIGEgbm9uLW1haW4gdGhyZWFkLgotY2xhc3Mg
V2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNRTGl0ZURh
dGFiYXNlVHJhY2tlckNsaWVudCwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdlYlNRTGl0ZURhdGFi
YXNlVHJhY2tlciwgV2Vha1B0ckZhY3RvcnlJbml0aWFsaXphdGlvbjo6RWFnZXI+IHsKLSAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIpCi1wdWJsaWM6Ci0g
ICAgdXNpbmcgSXNIb2xkaW5nTG9ja2VkRmlsZXNIYW5kbGVyID0gRnVuY3Rpb248dm9pZChib29s
KT47Ci0gICAgZXhwbGljaXQgV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyKElzSG9sZGluZ0xvY2tl
ZEZpbGVzSGFuZGxlciYmKTsKLQotICAgIH5XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIoKTsKLQot
ICAgIHZvaWQgc2V0SXNTdXNwZW5kZWQoYm9vbCk7Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCBzZXRJ
c0hvbGRpbmdMb2NrZWRGaWxlcyhib29sKTsKLQotICAgIC8vIFdlYkNvcmU6OlNRTGl0ZURhdGFi
YXNlVHJhY2tlckNsaWVudC4KLSAgICB2b2lkIHdpbGxCZWdpbkZpcnN0VHJhbnNhY3Rpb24oKSBm
aW5hbDsKLSAgICB2b2lkIGRpZEZpbmlzaExhc3RUcmFuc2FjdGlvbigpIGZpbmFsOwotCi0gICAg
SXNIb2xkaW5nTG9ja2VkRmlsZXNIYW5kbGVyIG1faXNIb2xkaW5nTG9ja2VkRmlsZXNIYW5kbGVy
OwotICAgIFBBTDo6SHlzdGVyZXNpc0FjdGl2aXR5IG1faHlzdGVyZXNpczsKLSAgICBib29sIG1f
aXNTdXNwZW5kZWQgeyBmYWxzZSB9OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNDb2NvYS50eHQKaW5kZXggZWFhMGQ4NGZhNWNmYTc0MGQyN2I3OGI5MDdlYzk1Njk5MzFj
YjBkYy4uOGFhYWQ3N2E1ZTdiMzU5NjE3ZDJhNzRiYTZlMTZkNDE4NzlmYTY0ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291
cmNlc0NvY29hLnR4dApAQCAtMTMxLDcgKzEzMSw2IEBAIFNoYXJlZC9BUElXZWJBcmNoaXZlUmVz
b3VyY2UubW0KIFNoYXJlZC9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tCiBTaGFyZWQvRm9jdXNl
ZEVsZW1lbnRJbmZvcm1hdGlvbi5jcHAKIFNoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJ
bmZvLmNwcAotU2hhcmVkL1dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5jcHAKIAogU2hhcmVkL2Nm
L0FyZ3VtZW50Q29kZXJzQ0YuY3BwIEBuby11bmlmeQogU2hhcmVkL2NmL0Nvb2tpZVN0b3JhZ2VV
dGlsc0NGLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAyNmFhYjAzNTgzN2Y4OWNlZDA1ODgxYjMxZTI0
OTY2YWE4NDA1MzhiLi5mNWUyYzBjZDQ3ZThiNGUxNDc0OTEyNzBhNDQ2YjQ2N2JmMTIyZjg1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5jcHAKQEAgLTMwMSw4ICszMDEsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCiAjaWYgRU5BQkxFKExFR0FDWV9DVVNUT01f
UFJPVE9DT0xfTUFOQUdFUikKICAgICBtX2N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5LmludmFs
aWRhdGUoKTsKICNlbmRpZgotCi0gICAgbV9hY3Rpdml0eUZvckhvbGRpbmdMb2NrZWRGaWxlcyA9
IG51bGxwdHI7CiAgICAgCiAgICAgbV9zeW5jQWxsQ29va2llc0FjdGl2aXR5ID0gbnVsbHB0cjsK
ICAgICBtX3N5bmNBbGxDb29raWVzQ291bnRlciA9IDA7CkBAIC0xMTU5LDE5ICsxMTU3LDYgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZSgpCiB2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OmRpZFNldEFzc2VydGlvblN0YXRlKEFzc2VydGlvblN0YXRlKQog
ewogfQotICAgIAotdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRJc0hvbGRpbmdMb2NrZWRG
aWxlcyhib29sIGlzSG9sZGluZ0xvY2tlZEZpbGVzKQotewotICAgIGlmICghaXNIb2xkaW5nTG9j
a2VkRmlsZXMpIHsKLSAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICJVSVBy
b2Nlc3MgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0
d29yayBwcm9jZXNzIGlzIG5vIGxvbmdlciBob2xkaW5nIGxvY2tlZCBmaWxlcyIpOwotICAgICAg
ICBtX2FjdGl2aXR5Rm9ySG9sZGluZ0xvY2tlZEZpbGVzID0gbnVsbHB0cjsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLSAgICBpZiAoIW1fYWN0aXZpdHlGb3JIb2xkaW5nTG9ja2VkRmlsZXMpIHsK
LSAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICJVSVByb2Nlc3MgaXMgdGFr
aW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0d29yayBwcm9jZXNzIGlz
IGhvbGRpbmcgbG9ja2VkIGZpbGVzIik7Ci0gICAgICAgIG1fYWN0aXZpdHlGb3JIb2xkaW5nTG9j
a2VkRmlsZXMgPSBtX3Rocm90dGxlci5iYWNrZ3JvdW5kQWN0aXZpdHkoIkhvbGRpbmcgbG9ja2Vk
IGZpbGVzIl9zKS5tb3ZlVG9VbmlxdWVQdHIoKTsKLSAgICB9Ci19CiAKIHZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6c3luY0FsbENvb2tpZXMoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCA3N2U3ZjZhOGNj
OTFhNjkzYzhjMDQ1N2U2NmMxZjcwNjg4ZTczNTM0Li4zZWFlNmUxZWNhOTI4MGFiNGVkZWE5YWQw
M2UzMmZmNjJhOGZiM2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtMTY4LDggKzE2OCw2IEBAIHB1YmxpYzoK
ICAgICAKICAgICB2b2lkIHN5bnRoZXNpemVBcHBJc0JhY2tncm91bmQoYm9vbCBiYWNrZ3JvdW5k
KTsKIAotICAgIHZvaWQgc2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCk7Ci0KICAgICB2b2lk
IHN5bmNBbGxDb29raWVzKCk7CiAgICAgdm9pZCBkaWRTeW5jQWxsQ29va2llcygpOwogCkBAIC0y
OTYsNyArMjk0LDYgQEAgcHJpdmF0ZToKICAgICBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQ
cm94eSBtX2N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5OwogI2VuZGlmCiAgICAgUHJvY2Vzc1Ro
cm90dGxlciBtX3Rocm90dGxlcjsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc1Rocm90dGxl
cjo6QmFja2dyb3VuZEFjdGl2aXR5PiBtX2FjdGl2aXR5Rm9ySG9sZGluZ0xvY2tlZEZpbGVzOwog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHk+
IG1fc3luY0FsbENvb2tpZXNBY3Rpdml0eTsKICAgICBQcm9jZXNzVGhyb3R0bGVyOjpBY3Rpdml0
eVZhcmlhbnQgbV9hY3Rpdml0eUZyb21XZWJQcm9jZXNzZXM7CiAgICAgCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkubWVzc2FnZXMuaW4KaW5kZXggM2Q5MTliZTQ3MWM3YzEwYmNlOTRmNmMxMjFhMTkzMzQxYmRi
MTA1NC4uMDM2Y2JhNDUwZGRhNGNkMTlkZDEwNGUzZjQ2ZjZmOTA2YzM2YmY4YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzIsOCArMzIsNiBAQCBtZXNzYWdlcyAtPiBOZXR3
b3JrUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIE5vdFJlZkNvdW50ZWQgewogICAgIFRlc3RQ
cm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseShXZWJLaXQ6
OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlEKSAtPiAoYm9vbCBoYW5kbGVkKSBTeW5jaHJv
bm91cwogICAgIFRlcm1pbmF0ZVVucmVzcG9uc2l2ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMoV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSWQp
CiAKLSAgICBTZXRJc0hvbGRpbmdMb2NrZWRGaWxlcyhib29sIGlzSG9sZGluZ0xvY2tlZEZpbGVz
KQotCiAgICAgIyBEaWFnbm9zdGljIG1lc3NhZ2VzIGxvZ2dpbmcKICAgICBMb2dEaWFnbm9zdGlj
TWVzc2FnZShXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlELCBTdHJpbmcgbWVz
c2FnZSwgU3RyaW5nIGRlc2NyaXB0aW9uLCBlbnVtOmJvb2wgV2ViQ29yZTo6U2hvdWxkU2FtcGxl
IHNob3VsZFNhbXBsZSkKICAgICBMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoV2ViS2l0
OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJRCwgU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBk
ZXNjcmlwdGlvbiwgdWludDMyX3QgcmVzdWx0LCBlbnVtOmJvb2wgV2ViQ29yZTo6U2hvdWxkU2Ft
cGxlIHNob3VsZFNhbXBsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwCmluZGV4IDk4YzU1ZDYwY2Y2NTY0NWVjODEwZjUzMzZmNWFkYzc1MDAxOWIxYmIuLjc2
MmU1ZjM5ZWU4OTU4YThlYTgzMjIyZDQ4NmU4ZmE0Yzg4YzQ3ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzg5LDcgKzM4OSw2IEBAIHZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpzaHV0RG93bigpCiAKICAgICBtX3Jlc3BvbnNpdmVuZXNzVGltZXIu
aW52YWxpZGF0ZSgpOwogICAgIG1fYmFja2dyb3VuZFJlc3BvbnNpdmVuZXNzVGltZXIuaW52YWxp
ZGF0ZSgpOwotICAgIG1fYWN0aXZpdHlGb3JIb2xkaW5nTG9ja2VkRmlsZXMgPSBudWxscHRyOwog
CiAgICAgZm9yIChhdXRvJiBmcmFtZSA6IGNvcHlUb1ZlY3RvcihtX2ZyYW1lTWFwLnZhbHVlcygp
KSkKICAgICAgICAgZnJhbWUtPndlYlByb2Nlc3NXaWxsU2h1dERvd24oKTsKQEAgLTEzMTMsMTkg
KzEzMTIsNiBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZU1lZGlhU3RhdGVEaWRDaGFu
Z2UoV2ViUGFnZVByb3h5JikKICAgICAgICAgcHJvY2Vzc1Bvb2woKS5jbGVhcldlYlByb2Nlc3NJ
c1BsYXlpbmdBdWRpYmxlTWVkaWEoY29yZVByb2Nlc3NJZGVudGlmaWVyKCkpOwogfQogCi12b2lk
IFdlYlByb2Nlc3NQcm94eTo6c2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCBpc0hvbGRpbmdM
b2NrZWRGaWxlcykKLXsKLSAgICBpZiAoIWlzSG9sZGluZ0xvY2tlZEZpbGVzKSB7Ci0gICAgICAg
IFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiVUlQcm9jZXNzIGlzIHJlbGVhc2luZyBh
IGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBu
byBsb25nZXIgaG9sZGluZyBsb2NrZWQgZmlsZXMiKTsKLSAgICAgICAgbV9hY3Rpdml0eUZvckhv
bGRpbmdMb2NrZWRGaWxlcyA9IG51bGxwdHI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAg
aWYgKCFtX2FjdGl2aXR5Rm9ySG9sZGluZ0xvY2tlZEZpbGVzKSB7Ci0gICAgICAgIFJFTEVBU0Vf
TE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiVUlQcm9jZXNzIGlzIHRha2luZyBhIGJhY2tncm91bmQg
YXNzZXJ0aW9uIGJlY2F1c2UgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBob2xkaW5nIGxvY2tl
ZCBmaWxlcyIpOwotICAgICAgICBtX2FjdGl2aXR5Rm9ySG9sZGluZ0xvY2tlZEZpbGVzID0gbV90
aHJvdHRsZXIuYmFja2dyb3VuZEFjdGl2aXR5KCJIb2xkaW5nIGxvY2tlZCBmaWxlcyJfcykubW92
ZVRvVW5pcXVlUHRyKCk7Ci0gICAgfQotfQotCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6aXNSZXNw
b25zaXZlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBpc1dlYlByb2Nlc3NSZXNwb25zaXZl
KT4mJiBjYWxsYmFjaykKIHsKICAgICBpZiAobV9pc1Jlc3BvbnNpdmUgPT0gTm9Pck1heWJlOjpO
bykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCAxMzJk
ZmIzOGNmNzY1NjMxZTA3MWYzNWMyNTMyY2I5ZmEyODNjOGIzLi42ZWViOGJjYWE0MzM0ODYwYWE5
ZDk0NzgzYTlmOWViZGVkMzI2ZWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaApAQCAtMjI5LDggKzIyOSw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgd2luZG93
U2VydmVyQ29ubmVjdGlvblN0YXRlQ2hhbmdlZCgpOwogCi0gICAgdm9pZCBzZXRJc0hvbGRpbmdM
b2NrZWRGaWxlcyhib29sKTsKLQogICAgIFByb2Nlc3NUaHJvdHRsZXImIHRocm90dGxlcigpIHsg
cmV0dXJuIG1fdGhyb3R0bGVyOyB9CiAKICAgICB2b2lkIGlzUmVzcG9uc2l2ZShDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wgaXNXZWJQcm9jZXNzUmVzcG9uc2l2ZSk+JiYpOwpAQCAtNTAxLDcg
KzQ5OSw2IEBAIHByaXZhdGU6CiAKICAgICBpbnQgbV9udW1iZXJPZlRpbWVzU3VkZGVuVGVybWlu
YXRpb25XYXNEaXNhYmxlZDsKICAgICBQcm9jZXNzVGhyb3R0bGVyIG1fdGhyb3R0bGVyOwotICAg
IHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHk+IG1f
YWN0aXZpdHlGb3JIb2xkaW5nTG9ja2VkRmlsZXM7CiAgICAgRm9yZWdyb3VuZFdlYlByb2Nlc3NU
b2tlbiBtX2ZvcmVncm91bmRUb2tlbjsKICAgICBCYWNrZ3JvdW5kV2ViUHJvY2Vzc1Rva2VuIG1f
YmFja2dyb3VuZFRva2VuOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMzk4
MWNiYjA1NTU4NTVlYTU5YTg2MTBmYjg4NjhjODE3YjE2YWM3My4uOTJlYWUxNTA3MDdjYzBjYmY3
MzZlN2ZhYTNiZWIzODJlZDJlMzNjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDIsOCArNDIsNiBAQCBtZXNzYWdl
cyAtPiBXZWJQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogICAgIEdldEdQVVByb2Nlc3ND
b25uZWN0aW9uKCkgLT4gKHN0cnVjdCBXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uSW5mbyBj
b25uZWN0aW9uSW5mbykgU3luY2hyb25vdXMKICNlbmRpZgogCi0gICAgU2V0SXNIb2xkaW5nTG9j
a2VkRmlsZXMoYm9vbCBpc0hvbGRpbmdMb2NrZWRGaWxlcykKLQogICAgIERpZEV4Y2VlZEFjdGl2
ZU1lbW9yeUxpbWl0KCkKICAgICBEaWRFeGNlZWRJbmFjdGl2ZU1lbW9yeUxpbWl0KCkKICAgICBE
aWRFeGNlZWRDUFVMaW1pdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA3Njk3YzRjNThkNDcyYzY0YzZiYjkwYzRjZGRlNmNkNWM2ZTU5
YmNhLi5kZTgwYTkyM2Q3MDlmNzI3ZjgzNjQwNGRjNmI5ZWNjNmQ0OWM4Yjk3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzMTcsNyAr
MTMxNyw2IEBACiAJCTgzMkFFMjUyMUJFMkU4Q0QwMEZBQUUxMCAvKiBOZXR3b3JrQ2FjaGVTcGVj
dWxhdGl2ZUxvYWRNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MzJBRTI1MDFCRTJFOENEMDBGQUFFMTAgLyogTmV0d29ya0NhY2hlU3BlY3Vs
YXRpdmVMb2FkTWFuYWdlci5oICovOyB9OwogCQk4MzJFRDE4QzFFMkZFMTU3MDA2QkE2NEEgLyog
UGVyQWN0aXZpdHlTdGF0ZUNQVVVzYWdlU2FtcGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMyRUQxOEExRTJGRTEzQjAwNkJBNjRBIC8qIFBlckFj
dGl2aXR5U3RhdGVDUFVVc2FnZVNhbXBsZXIuaCAqLzsgfTsKIAkJODM0QjI1MEYxQTgzMUE4RDAw
Q0ZCMTUwIC8qIE5ldHdvcmtDYWNoZUZpbGVTeXN0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNEIyNTBFMUE4MzFBOEQwMENGQjE1MCAvKiBOZXR3
b3JrQ2FjaGVGaWxlU3lzdGVtLmggKi87IH07Ci0JCTgzNjAzNEEwMUFDQjM0RDYwMDYyNjU0OSAv
KiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzNjAzNDlFMUFDQjM0RDYwMDYyNjU0OSAvKiBXZWJTUUxpdGVE
YXRhYmFzZVRyYWNrZXIuaCAqLzsgfTsKIAkJODM3MkRCMjUxQTY3NEM4RjAwQzY5N0M1IC8qIFdL
UGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4MzcyREIyNDFBNjc0QzhGMDBDNjk3QzUgLyogV0tQYWdlRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk4MzcyREIyOTFBNjc1NjI4MDBDNjk3QzUgLyogV2ViUGFnZURpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MzcyREIyNzFBNjc1NjI4MDBDNjk3QzUgLyogV2ViUGFnZURpYWdub3N0aWNM
b2dnaW5nQ2xpZW50LmggKi87IH07CiAJCTgzNzJEQjJGMUE2NzdENEEwMEM2OTdDNSAvKiBXS0Rp
YWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODM3MkRCMkUxQTY3N0Q0QTAwQzY5N0M1IC8qIFdLRGlhZ25vc3Rp
Y0xvZ2dpbmdSZXN1bHRUeXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTQyMDgsOCArNDIwNyw2IEBACiAJCTgzMzk3QzY2MjIxMjRCRDEwMEI2
MjM4OCAvKiBXZWJQcm9jZXNzQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViUHJvY2Vzc0NhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODMzOTdDNjcyMjEyNEJEMTAwQjYyMzg4IC8qIFdlYlByb2Nlc3NDYWNoZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQcm9jZXNzQ2FjaGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJODM0QjI1MEUxQTgzMUE4RDAwQ0ZCMTUwIC8qIE5ldHdvcmtDYWNo
ZUZpbGVTeXN0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0Nh
Y2hlRmlsZVN5c3RlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4MzYwMzQ5RDFB
Q0IzNEQ2MDA2MjY1NDkgLyogV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTgzNjAzNDlFMUFDQjM0RDYwMDYyNjU0OSAv
KiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTgzNzJEQjI0MUE2NzRDOEYwMEM2OTdDNSAvKiBXS1BhZ2VEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1BhZ2VEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzcyREIy
NjFBNjc1NjI4MDBDNjk3QzUgLyogV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlBhZ2VEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNzJEQjI3MUE2
NzU2MjgwMEM2OTdDNSAvKiBXZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01ODI0LDggKzU4MjEsNiBAQAogCQkJ
CTVDMTMwMjRBMUZFMzQxQTcwMDBEOUIzMSAvKiBXZWJzaXRlUG9saWNpZXNEYXRhLmggKi8sCiAJ
CQkJMEVERTg1MDIyMDA0RTc0OTAwMDMwNTYwIC8qIFdlYnNpdGVQb3BVcFBvbGljeS5oICovLAog
CQkJCTcxRkI4MTBBMjI2MDYyN0EwMDMyMzY3NyAvKiBXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVu
dHNEaXNwYXRjaFBvbGljeS5oICovLAotCQkJCTgzNjAzNDlEMUFDQjM0RDYwMDYyNjU0OSAvKiBX
ZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuY3BwICovLAotCQkJCTgzNjAzNDlFMUFDQjM0RDYwMDYy
NjU0OSAvKiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCAqLywKIAkJCQlDMDMzN0RENzEyN0E1
MUI2MDA4RkY0RjQgLyogV2ViVG91Y2hFdmVudC5jcHAgKi8sCiAJCQkJN0MwNjVGMjkxQzhDRDk1
RjAwQzJEOTUwIC8qIFdlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5jcHAgKi8sCiAJ
CQkJN0MwNjVGMkExQzhDRDk1RjAwQzJEOTUwIC8qIFdlYlVzZXJDb250ZW50Q29udHJvbGxlckRh
dGFUeXBlcy5oICovLApAQCAtMTA3OTYsNyArMTA3OTEsNiBAQAogCQkJCTQxNzkxNUFGMjI1NkJC
NzUwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTc5
MTVCMTIyNTZDMEQ2MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUMxNDkzODA5MjIzNDcxMDQwMDBDRDcwNyAvKiBXZWJTcGVlY2hTeW50aGVz
aXNDbGllbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTgzNjAzNEEwMUFDQjM0RDYwMDYyNjU0OSAv
KiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNTJDMEY4
MUEzOENEQzcwMDE2MTYwQSAvKiBXZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTkzNTZGMkRDMjE1MkI2QjUwMEU2RDVERiAvKiBXZWJTV0NsaWVudENvbm5l
Y3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxN0E1MzEwMUY0N0E4NjIwMERDREMwQSAvKiBX
ZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNjdhNzkwYTdhODMyNjQyOTQ4NjM4ZGQ1
NzQ3OTFkMDgwMjMxMDE3MS4uMThkM2NlN2RhNmFhOGE3MzVkMTMwNjg3YjA3Y2E2ZDU4ZjAxNWJi
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTQyLDEwICsx
NDIsNiBAQAogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgiCiAjZW5kaWYKIAot
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0jaW5jbHVkZSAiV2ViU1FMaXRlRGF0YWJhc2VUcmFj
a2VyLmgiCi0jZW5kaWYKLQogI2lmIEVOQUJMRShTRUNfSVRFTV9TSElNKQogI2luY2x1ZGUgIlNl
Y0l0ZW1TaGltLmgiCiAjZW5kaWYKQEAgLTIwOSw5ICsyMDUsNiBAQCBXZWJQcm9jZXNzOjpXZWJQ
cm9jZXNzKCkKICAgICAsIG1fcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyKFBsdWdpblBy
b2Nlc3NDb25uZWN0aW9uTWFuYWdlcjo6Y3JlYXRlKCkpCiAjZW5kaWYKICAgICAsIG1fbm9uVmlz
aWJsZVByb2Nlc3NDbGVhbnVwVGltZXIoKnRoaXMsICZXZWJQcm9jZXNzOjpub25WaXNpYmxlUHJv
Y2Vzc0NsZWFudXBUaW1lckZpcmVkKQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgLCBt
X3dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlcihbdGhpc10oYm9vbCBpc0hvbGRpbmdMb2NrZWRGaWxl
cykgeyBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNz
UHJveHk6OlNldElzSG9sZGluZ0xvY2tlZEZpbGVzKGlzSG9sZGluZ0xvY2tlZEZpbGVzKSwgMCk7
IH0pCi0jZW5kaWYKIHsKICAgICAvLyBJbml0aWFsaXplIG91ciBwbGF0Zm9ybSBzdHJhdGVnaWVz
LgogICAgIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6aW5pdGlhbGl6ZSgpOwpAQCAtMTQ5NCw3ICsx
NDg3LDYgQEAgdm9pZCBXZWJQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5z
aW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVyPHYKICNlbmRpZgogCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKLSAgICBtX3dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5zZXRJc1N1c3BlbmRl
ZCh0cnVlKTsKICAgICBTUUxpdGVEYXRhYmFzZTo6c2V0SXNEYXRhYmFzZU9wZW5pbmdGb3JiaWRk
ZW4odHJ1ZSk7CiAgICAgaWYgKERhdGFiYXNlVHJhY2tlcjo6aXNJbml0aWFsaXplZCgpKQogICAg
ICAgICBEYXRhYmFzZVRyYWNrZXI6OnNpbmdsZXRvbigpLmNsb3NlQWxsRGF0YWJhc2VzKEN1cnJl
bnRRdWVyeUJlaGF2aW9yOjpJbnRlcnJ1cHQpOwpAQCAtMTU3Myw3ICsxNTY1LDYgQEAgdm9pZCBX
ZWJQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKCkKICAgICB1bmZyZWV6ZUFsbExheWVyVHJlZXMo
KTsKICAgICAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIG1fd2ViU1FMaXRlRGF0YWJh
c2VUcmFja2VyLnNldElzU3VzcGVuZGVkKGZhbHNlKTsKICAgICBTUUxpdGVEYXRhYmFzZTo6c2V0
SXNEYXRhYmFzZU9wZW5pbmdGb3JiaWRkZW4oZmFsc2UpOwogICAgIGFjY2Vzc2liaWxpdHlQcm9j
ZXNzU3VzcGVuZGVkTm90aWZpY2F0aW9uKGZhbHNlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggNDkzYjJiN2EwNTlhYWFmZjc5ZDNlZWFmYmU3NWUzYThk
YWMzZjdjZi4uYzliYzY3MDE0MzM3YzBmNWUwZDMwM2IwMzA5NWY3OTcxODYxYzVkMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC00MCw3ICs0MCw2IEBACiAjaW5jbHVk
ZSAiV2ViSW5zcGVjdG9ySW50ZXJydXB0RGlzcGF0Y2hlci5oIgogI2luY2x1ZGUgIldlYlBhZ2VQ
cm94eUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgiCi0jaW5jbHVkZSAiV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiV2Vi
U29ja2V0Q2hhbm5lbE1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FjdGl2aXR5U3RhdGUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgpAQCAtNTc4LDcgKzU3Nyw2
IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdl
PiBtX2FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
LSAgICBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIgbV93ZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXI7
CiAgICAgUmVmUHRyPFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcj4gbV90YXNrU3RhdGVPYnNlcnZl
cjsKICAgICBMb2NrIG1fcHJvY2Vzc1dhc1Jlc3VtZWRBc3NlcnRpb25zTG9jazsKICAgICBSZXRh
aW5QdHI8QktTUHJvY2Vzc0Fzc2VydGlvbj4gbV9wcm9jZXNzV2FzUmVzdW1lZFVJQXNzZXJ0aW9u
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397845</attachid>
            <date>2020-04-28 09:32:22 -0700</date>
            <delta_ts>2020-04-28 09:38:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206910-20200428093221.patch</filename>
            <type>text/plain</type>
            <size>25703</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwODMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdmM2E0NzFkNmViZjMxMjgy
N2IwZWFjYTlhNWFlNTFiNGJjMjdiMTUuLmI0N2JhZDg4MGM3MWIxNzk2NzUwNDUzMzRkN2VlMWI2
YjRjMDYzZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMjAtMDQtMjggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXVtXSzJdIERyb3AgcHJvY2Vz
cyBhc3NlcnRpb24gbG9naWMgZm9yIGhvbGRpbmcgbG9ja2VkIGZpbGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY5MTAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHByb2Nlc3MgYXNzZXJ0aW9u
IGxvZ2ljIGZvciBob2xkaW5nIGxvY2tlZCBmaWxlcyBhcyBpdCBpcyBjYXVzaW5nIGlzc3VlcyBh
bmQKKyAgICAgICAgc2hvdWxkIG5vIGxvbmdlciBiZSBuZWVkZWQuCisKKyAgICAgICAgVGhlIGlu
dGVudGlvbiBvZiB0aGlzIGNvZGUgd2FzIHRoYXQgdGhlIE5ldHdvcmsgUHJvY2VzcyB3b3VsZCBz
ZW5kIGEKKyAgICAgICAgU2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCkgSVBDIHRvIHRoZSBV
SVByb2Nlc3Mgd2hlbmV2ZXIgdGhlcmUgYXJlIHBlbmRpbmcKKyAgICAgICAgU1FMaXRlIHRyYW5z
YWN0aW9ucyBhbmQgdGhlIFVJUHJvY2VzcyB3b3VsZCB0aGVuIHRha2UgYSBwcm9jZXNzIGFzc2Vy
dGlvbiBvbiBiZWhhbGYKKyAgICAgICAgb2YgdGhlIFdlYlByb2Nlc3MgKG9yIHJlbGVhc2UgaXQp
IHRvIHByZXZlbnQgLyBhbGxvdyBzdXNwZW5zaW9uLgorCisgICAgICAgIFRoaXMgYXBwcm9hY2gg
aGFzIHNvbWUgaXNzdWVzOgorICAgICAgICAxLiBJdCB3YXMgbm9pc3kgaW4gdGVybXMgb2YgSVBD
CisgICAgICAgIDIuIEJlY2F1c2UgaXQgcmVsaWVzIG9uIGFuIElQQyB0byB0aGUgVUlQcm9jZXNz
IHRvIGtlZXAgcnVubmluZywgaXQgd2FzIGluaGVyZW50bHkKKyAgICAgICAgICAgcmFjeQorICAg
ICAgICAzLiBXZSBhbHJlYWR5IGhhdmUgbG9naWMgdG8gZGVhbCB3aXRoIHN1c3BlbnNpb24gaW4g
dGhlIG5ldHdvcmsgLyB3ZWIgcHJvY2Vzc2VzLgorICAgICAgICAgICBUaGUgVUlQcm9jZXNzIHNl
bmRzIGEgUHJlcGFyZUZvclN1c3BlbnNpb24gSVBDIHRvIGl0cyBjaGlsZCBwcm9jZXNzZXMuIElu
IHR1cm4sCisgICAgICAgICAgIHRob3NlIHByb2Nlc3NlcyB3aWxsIG1ha2Ugc3VyZSB0byBzdXNw
ZW5kIHRoZWlyIGRhdGFiYXNlIHRocmVhZHMgdG8gcHJldmVudCBhbnkKKyAgICAgICAgICAgZnVy
dGhlciBkYXRhYmFzZSB3b3JrLiBUaGUgY2hpbGQgcHJvY2Vzc2VzIHdvdWxkIHRoZW4gcmVzcG9u
ZCB0byB0aGUKKyAgICAgICAgICAgUHJlcGFyZUZvclN1c3BlbnNpb24gSVBDIHRvIGxldCB0aGUg
VUlQcm9jZXNzIGtub3cgdGhleSBhcmUgcmVhZHkgdG8gc3VzcGVuZC4KKyAgICAgICAgICAgVGhl
IDIgYXBwcm9hY2hlcyB3ZXJlIGNvbmZsaWN0aW5nLCBiZWNhdXNlIGFmdGVyIHRoZSBQcmVwYXJl
Rm9yU3VzcGVuc2lvbiBJUEMgaXMKKyAgICAgICAgICAgc2VudCwgdGhlIGNoaWxkIHByb2Nlc3Mg
Y291bGQgcHJvY2VzcyBhIHRyYW5zYWN0aW9uIGFuZCBzZW5kIHRoZQorICAgICAgICAgICBTZXRJ
c0hvbGRpbmdMb2NrZWRGaWxlcygpIElQQyB0byB0aGUgVUlQcm9jZXNzIHdoaWNoIHdvdWxkIGlu
Y29ycmVjdGx5IGNhbmNlbCB0aGUKKyAgICAgICAgICAgc3VzcGVuc2lvbi4KKworICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6Ok5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6bV9tZXNzYWdl
UG9ydENoYW5uZWxSZWdpc3RyeSk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViU1FMaXRlRGF0YWJhc2VUcmFj
a2VyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBTaGFyZWQvV2ViU1FMaXRlRGF0YWJhc2VUcmFj
a2VyLmg6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZENs
b3NlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkU2V0QXNzZXJ0
aW9uU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRJc0hv
bGRpbmdMb2NrZWRGaWxlcyk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6c2h1dERvd24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnNldElzSG9sZGluZ0xvY2tlZEZp
bGVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjptX25vblZpc2libGVQcm9jZXNzQ2xl
YW51cFRpbWVyKToKKyAgICAgICAgKFdlYktpdDo6bV93ZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIp
OiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorCiAyMDIwLTA0
LTI4ICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0dUS10gVW5yZXZpZXdlZCBidWlsZCBmaXggZm9yIENsYW5nIDEwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IGY0YzgxZjY3MTQ0
OTE0MzJhMjZmZDBhNzcyOWQzZGZmNzlhOTA0YjcuLmQwODEwZDcyOTliYjY0YTgzMWIyNGQ4NTNl
NGJlNjljOGQ2N2QzOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwCkBAIC0xNTAsOSArMTUwLDYgQEAgTmV0d29ya1Byb2Nlc3M6Ok5ldHdv
cmtQcm9jZXNzKEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmJiBwYXJh
bWUKICAgICAsIG1fc3RvcmFnZU1hbmFnZXJTZXQoU3RvcmFnZU1hbmFnZXJTZXQ6OmNyZWF0ZSgp
KQogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCiAgICAgLCBtX25ldHdvcmtDb250ZW50
UnVsZUxpc3RNYW5hZ2VyKCp0aGlzKQotI2VuZGlmCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
LSAgICAsIG1fd2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyKFt0aGlzXShib29sIGlzSG9sZGluZ0xv
Y2tlZEZpbGVzKSB7IHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzUHJveHk6OlNldElzSG9sZGluZ0xvY2tlZEZpbGVzKGlzSG9sZGluZ0xvY2tl
ZEZpbGVzKSwgMCk7IH0pCiAjZW5kaWYKICAgICAsIG1fbWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0
cnkoY3JlYXRlTWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkoKnRoaXMpKQogewpAQCAtMjE5Nywx
MSArMjE5NCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoYm9vbCBp
c1N1c3BlbnNpb25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRsCiAKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKSAmJiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBmb3IgKGF1dG8mIHNlcnZl
ciA6IG1fd2ViSURCU2VydmVycy52YWx1ZXMoKSkKLSAgICAgICAgc2VydmVyLT5zdXNwZW5kKGlz
U3VzcGVuc2lvbkltbWluZW50ID8gV2ViSURCU2VydmVyOjpTaG91bGRGb3JjZVN0b3A6OlllcyA6
IFdlYklEQlNlcnZlcjo6U2hvdWxkRm9yY2VTdG9wOjpObyk7Ci0jZW5kaWYKLQotI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCi0gICAgbV93ZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuc2V0SXNTdXNw
ZW5kZWQodHJ1ZSk7CisgICAgICAgIHNlcnZlci0+c3VzcGVuZChXZWJJREJTZXJ2ZXI6OlNob3Vs
ZEZvcmNlU3RvcDo6WWVzKTsKICNlbmRpZgogCiAgICAgbG93TWVtb3J5SGFuZGxlcihDcml0aWNh
bDo6WWVzKTsKQEAgLTIyNTQsMTAgKzIyNDcsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcm9j
ZXNzRGlkUmVzdW1lKCkKIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cmVzdW1lKCkKIHsKLSNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQotICAgIG1fd2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLnNldElz
U3VzcGVuZGVkKGZhbHNlKTsKLSNlbmRpZgotCiAgICAgcGxhdGZvcm1Qcm9jZXNzRGlkUmVzdW1l
KCk7CiAgICAgZm9yIChhdXRvJiBjb25uZWN0aW9uIDogbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMu
dmFsdWVzKCkpCiAgICAgICAgIGNvbm5lY3Rpb24tPmVuZFN1c3BlbnNpb24oKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCBkYTZhZDdhODc4
YTdhOTkxYjA1YWI3MzhlM2I5MDdkZDk5MGJmODlhLi5jNTkwYjZkZmIwZDMwNWY3ZjcwNTQ1ZjAw
MGJmNmIyMDEzZGVmMGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oCkBAIC01OCwxMCArNTgsNiBAQAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIu
aD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
LSNpbmNsdWRlICJXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCIKLSNlbmRpZgotCiAjaWYgUExB
VEZPUk0oQ09DT0EpCiB0eXBlZGVmIHN0cnVjdCBPcGFxdWVDRkhUVFBDb29raWVTdG9yYWdlKiAg
Q0ZIVFRQQ29va2llU3RvcmFnZVJlZjsKICNlbmRpZgpAQCAtNTUyLDEwICs1NDgsNiBAQCBwcml2
YXRlOgogICAgIE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyIG1fbmV0d29ya0NvbnRlbnRS
dWxlTGlzdE1hbmFnZXI7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAg
V2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyIG1fd2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyOwotI2Vu
ZGlmCi0KICAgICBSZWY8V29ya1F1ZXVlPiBtX3N0b3JhZ2VUYXNrUXVldWUgeyBXb3JrUXVldWU6
OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5TdG9yYWdlVGFzayIpIH07CiAKICNpZiBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlNR
TGl0ZURhdGFiYXNlVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJTUUxpdGVE
YXRhYmFzZVRyYWNrZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMDI3MDcw
NWQ0OWUyNTg5OGFhNjBjNjQwOTZmZjE4NDE5ZmY0Y2Q4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlNRTGl0ZURh
dGFiYXNlVHJhY2tlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4NyArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYlNRTGl0ZURhdGFiYXNlVHJh
Y2tlci5oIgotCi0jaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKLSNpbmNsdWRlICJOZXR3b3Jr
UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCi0jaW5jbHVk
ZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1NRTGl0ZURh
dGFiYXNlVHJhY2tlci5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwotCi1XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXI6OldlYlNRTGl0ZURhdGFiYXNlVHJh
Y2tlcihJc0hvbGRpbmdMb2NrZWRGaWxlc0hhbmRsZXImJiBpc0hvbGRpbmdMb2NrZWRGaWxlc0hh
bmRsZXIpCi0gICAgOiBtX2lzSG9sZGluZ0xvY2tlZEZpbGVzSGFuZGxlcihXVEZNb3ZlKGlzSG9s
ZGluZ0xvY2tlZEZpbGVzSGFuZGxlcikpCi0gICAgLCBtX2h5c3RlcmVzaXMoW3RoaXNdKFBBTDo6
SHlzdGVyZXNpc1N0YXRlIHN0YXRlKSB7IHNldElzSG9sZGluZ0xvY2tlZEZpbGVzKHN0YXRlID09
IFBBTDo6SHlzdGVyZXNpc1N0YXRlOjpTdGFydGVkKTsgfSkKLXsKLSAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOwotICAgIFNRTGl0ZURhdGFiYXNlVHJhY2tlcjo6c2V0Q2xpZW50KHRoaXMp
OwotfQotCi1XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXI6On5XZWJTUUxpdGVEYXRhYmFzZVRyYWNr
ZXIoKQotewotICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgU1FMaXRlRGF0YWJh
c2VUcmFja2VyOjpzZXRDbGllbnQobnVsbHB0cik7Ci0KLSAgICBpZiAobV9oeXN0ZXJlc2lzLnN0
YXRlKCkgPT0gUEFMOjpIeXN0ZXJlc2lzU3RhdGU6OlN0YXJ0ZWQpCi0gICAgICAgIHNldElzSG9s
ZGluZ0xvY2tlZEZpbGVzKGZhbHNlKTsKLX0KLQotdm9pZCBXZWJTUUxpdGVEYXRhYmFzZVRyYWNr
ZXI6OnNldElzU3VzcGVuZGVkKGJvb2wgaXNTdXNwZW5kZWQpCi17Ci0gICAgQVNTRVJUKFJ1bkxv
b3A6OmlzTWFpbigpKTsKLSAgICBtX2lzU3VzcGVuZGVkID0gaXNTdXNwZW5kZWQ7Ci19Ci0KLXZv
aWQgV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyOjp3aWxsQmVnaW5GaXJzdFRyYW5zYWN0aW9uKCkK
LXsKLSAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIo
KnRoaXMpXSB7Ci0gICAgICAgIGlmICh3ZWFrVGhpcykKLSAgICAgICAgICAgIHdlYWtUaGlzLT5t
X2h5c3RlcmVzaXMuc3RhcnQoKTsKLSAgICB9KTsKLX0KLQotdm9pZCBXZWJTUUxpdGVEYXRhYmFz
ZVRyYWNrZXI6OmRpZEZpbmlzaExhc3RUcmFuc2FjdGlvbigpCi17Ci0gICAgUnVuTG9vcDo6bWFp
bigpLmRpc3BhdGNoKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0gewotICAgICAgICBp
ZiAod2Vha1RoaXMpCi0gICAgICAgICAgICB3ZWFrVGhpcy0+bV9oeXN0ZXJlc2lzLnN0b3AoKTsK
LSAgICB9KTsKLX0KLQotdm9pZCBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXI6OnNldElzSG9sZGlu
Z0xvY2tlZEZpbGVzKGJvb2wgaXNIb2xkaW5nTG9ja2VkRmlsZXMpCi17Ci0gICAgQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpKTsKLQotICAgIGlmIChtX2lzU3VzcGVuZGVkKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBtX2lzSG9sZGluZ0xvY2tlZEZpbGVzSGFuZGxlcihpc0hvbGRpbmdMb2NrZWRG
aWxlcyk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYjJiZmQzMjNkZTUzZTY1MjMyMTM5MTMzODg3ZGM1NGU4MTEyYzkyZC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgPFdlYkNvcmUvU1FMaXRl
RGF0YWJhc2VUcmFja2VyQ2xpZW50Lmg+Ci0jaW5jbHVkZSA8cGFsL0h5c3RlcmVzaXNBY3Rpdml0
eS5oPgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi0vLyBVc2UgZWFnZXIgaW5pdGlhbGl6YXRpb24g
Zm9yIHRoZSBXZWFrUHRyRmFjdG9yeSBzaW5jZSB3ZSBjYWxsIG1ha2VXZWFrUHRyKCkgZnJvbSBh
IG5vbi1tYWluIHRocmVhZC4KLWNsYXNzIFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlciBmaW5hbCA6
IHB1YmxpYyBXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQsIHB1YmxpYyBDYW5N
YWtlV2Vha1B0cjxXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIsIFdlYWtQdHJGYWN0b3J5SW5pdGlh
bGl6YXRpb246OkVhZ2VyPiB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2ViU1FMaXRlRGF0
YWJhc2VUcmFja2VyKQotcHVibGljOgotICAgIHVzaW5nIElzSG9sZGluZ0xvY2tlZEZpbGVzSGFu
ZGxlciA9IEZ1bmN0aW9uPHZvaWQoYm9vbCk+OwotICAgIGV4cGxpY2l0IFdlYlNRTGl0ZURhdGFi
YXNlVHJhY2tlcihJc0hvbGRpbmdMb2NrZWRGaWxlc0hhbmRsZXImJik7Ci0KLSAgICB+V2ViU1FM
aXRlRGF0YWJhc2VUcmFja2VyKCk7Ci0KLSAgICB2b2lkIHNldElzU3VzcGVuZGVkKGJvb2wpOwot
Ci1wcml2YXRlOgotICAgIHZvaWQgc2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCk7Ci0KLSAg
ICAvLyBXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQuCi0gICAgdm9pZCB3aWxs
QmVnaW5GaXJzdFRyYW5zYWN0aW9uKCkgZmluYWw7Ci0gICAgdm9pZCBkaWRGaW5pc2hMYXN0VHJh
bnNhY3Rpb24oKSBmaW5hbDsKLQotICAgIElzSG9sZGluZ0xvY2tlZEZpbGVzSGFuZGxlciBtX2lz
SG9sZGluZ0xvY2tlZEZpbGVzSGFuZGxlcjsKLSAgICBQQUw6Okh5c3RlcmVzaXNBY3Rpdml0eSBt
X2h5c3RlcmVzaXM7Ci0gICAgYm9vbCBtX2lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKLX07Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGJiY2IwMmViNTM0
N2NmM2FhYmZmY2YzZWZiNGEzNDJhYjlhYTIyNTMuLjBmNDExOTM3ZGIyYmE1N2RjOWE4OGMwYjli
NDk5MTBkYjE5NDY0ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4
dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTEzNCw3ICsxMzQsNiBA
QCBTaGFyZWQvQVBJV2ViQXJjaGl2ZVJlc291cmNlLm1tCiBTaGFyZWQvRG9jdW1lbnRFZGl0aW5n
Q29udGV4dC5tbQogU2hhcmVkL0ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uY3BwCiBTaGFyZWQv
VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHAKLVNoYXJlZC9XZWJTUUxpdGVEYXRhYmFz
ZVRyYWNrZXIuY3BwCiAKIFNoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmNwcCBAbm8tdW5pZnkK
IFNoYXJlZC9jZi9Db29raWVTdG9yYWdlVXRpbHNDRi5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggZjlh
ZGU3NjJhZGIzODE0ZTQ5YWY5ZTU5ZDVmNGQxYWEyOGMyMWRmYy4uZjYzNzE1NTg4ZGE0Njc3NjNj
MmZhZTEzMGFhNGNkOWRhNmVkNWEwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0yNjUsOCArMjY1LDYg
QEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQog
I2lmIEVOQUJMRShMRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIpCiAgICAgbV9jdXN0b21Q
cm90b2NvbE1hbmFnZXJQcm94eS5pbnZhbGlkYXRlKCk7CiAjZW5kaWYKLQotICAgIG1fYWN0aXZp
dHlGb3JIb2xkaW5nTG9ja2VkRmlsZXMgPSBudWxscHRyOwogICAgIAogICAgIG1fc3luY0FsbENv
b2tpZXNBY3Rpdml0eSA9IG51bGxwdHI7CiAgICAgbV9zeW5jQWxsQ29va2llc0NvdW50ZXIgPSAw
OwpAQCAtMTE3MCwxOSArMTE2OCw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZFBy
b2Nlc3NEaWRSZXN1bWUoKQogICAgIGlmIChjYW5TZW5kTWVzc2FnZSgpKQogICAgICAgICBzZW5k
KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UHJvY2Vzc0RpZFJlc3VtZSgpLCAwKTsKIH0KLSAg
ICAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9v
bCBpc0hvbGRpbmdMb2NrZWRGaWxlcykKLXsKLSAgICBpZiAoIWlzSG9sZGluZ0xvY2tlZEZpbGVz
KSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiVUlQcm9jZXNzIGlz
IHJlbGVhc2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIE5ldHdvcmsgcHJv
Y2VzcyBpcyBubyBsb25nZXIgaG9sZGluZyBsb2NrZWQgZmlsZXMiKTsKLSAgICAgICAgbV9hY3Rp
dml0eUZvckhvbGRpbmdMb2NrZWRGaWxlcyA9IG51bGxwdHI7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0gICAgaWYgKCFtX2FjdGl2aXR5Rm9ySG9sZGluZ0xvY2tlZEZpbGVzKSB7Ci0gICAgICAg
IFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiVUlQcm9jZXNzIGlzIHRha2luZyBhIGJh
Y2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIE5ldHdvcmsgcHJvY2VzcyBpcyBob2xkaW5n
IGxvY2tlZCBmaWxlcyIpOwotICAgICAgICBtX2FjdGl2aXR5Rm9ySG9sZGluZ0xvY2tlZEZpbGVz
ID0gbV90aHJvdHRsZXIuYmFja2dyb3VuZEFjdGl2aXR5KCJIb2xkaW5nIGxvY2tlZCBmaWxlcyJf
cykubW92ZVRvVW5pcXVlUHRyKCk7Ci0gICAgfQotfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6OnN5bmNBbGxDb29raWVzKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggNGY4MDUzMzNlY2M3MTgxMWI1
MmIyMzhkYjE4ZDZhYWRhZGQyZGE3MC4uODZmZmJjZjg0MzM2NDc4YzkwZjMyMmQ0OWY2NmU1YTIx
ZGRkMzBlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTE4Miw4ICsxODIsNiBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgdm9pZCBzeW50aGVzaXplQXBwSXNCYWNrZ3JvdW5kKGJvb2wgYmFja2dyb3VuZCk7CiAKLSAg
ICB2b2lkIHNldElzSG9sZGluZ0xvY2tlZEZpbGVzKGJvb2wpOwotCiAgICAgdm9pZCBzeW5jQWxs
Q29va2llcygpOwogICAgIHZvaWQgZGlkU3luY0FsbENvb2tpZXMoKTsKIApAQCAtMzAyLDcgKzMw
MCw2IEBAIHByaXZhdGU6CiAgICAgTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkgbV9j
dXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eTsKICNlbmRpZgogICAgIFByb2Nlc3NUaHJvdHRsZXIg
bV90aHJvdHRsZXI7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tn
cm91bmRBY3Rpdml0eT4gbV9hY3Rpdml0eUZvckhvbGRpbmdMb2NrZWRGaWxlczsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5PiBtX3N5bmNB
bGxDb29raWVzQWN0aXZpdHk7CiAgICAgUHJvY2Vzc1Rocm90dGxlcjo6QWN0aXZpdHlWYXJpYW50
IG1fYWN0aXZpdHlGcm9tV2ViUHJvY2Vzc2VzOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3Nh
Z2VzLmluCmluZGV4IDgzNzlkOWY1OTEwMGI2ZTZlMTA2NWE3ZGY1NjQxNTEyMzE1MzQzNjkuLjcy
NDEwMDRlYTlhMThjMmVhZDdmNWU4MTMzYjFlNDUwOGI5OWY0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkubWVzc2FnZXMuaW4KQEAgLTM0LDggKzM0LDYgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nl
c3NQcm94eSBMZWdhY3lSZWNlaXZlciBOb3RSZWZDb3VudGVkIHsKICAgICBUZXN0UHJvY2Vzc0lu
Y29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoV2ViS2l0OjpXZWJQYWdl
UHJveHlJZGVudGlmaWVyIHBhZ2VJRCkgLT4gKGJvb2wgaGFuZGxlZCkgU3luY2hyb25vdXMKICAg
ICBUZXJtaW5hdGVVbnJlc3BvbnNpdmVTZXJ2aWNlV29ya2VyUHJvY2Vzc2VzKFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVyKQogCi0gICAgU2V0SXNIb2xkaW5nTG9j
a2VkRmlsZXMoYm9vbCBpc0hvbGRpbmdMb2NrZWRGaWxlcykKLQogICAgICMgRGlhZ25vc3RpYyBt
ZXNzYWdlcyBsb2dnaW5nCiAgICAgTG9nRGlhZ25vc3RpY01lc3NhZ2UoV2ViS2l0OjpXZWJQYWdl
UHJveHlJZGVudGlmaWVyIHBhZ2VJRCwgU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBkZXNjcmlwdGlv
biwgZW51bTpib29sIFdlYkNvcmU6OlNob3VsZFNhbXBsZSBzaG91bGRTYW1wbGUpCiAgICAgTG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmll
ciBwYWdlSUQsIFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3JpcHRpb24sIHVpbnQzMl90IHJl
c3VsdCwgZW51bTpib29sIFdlYkNvcmU6OlNob3VsZFNhbXBsZSBzaG91bGRTYW1wbGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBlNGE4NmZhYWYz
MTgzOGM4Y2ZhM2VkNzllODliODk0ZGM1YzIwMjEwLi5hNTg4Nzk5ODljYzlkMzQwNzZmMzYzNjNj
Mzk5YTc5NzVjMTc2NjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKQEAgLTE0MDIsMTkgKzE0MDIsNiBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6dXBk
YXRlQXVkaWJsZU1lZGlhQXNzZXJ0aW9ucygpCiAgICAgfQogfQogCi12b2lkIFdlYlByb2Nlc3NQ
cm94eTo6c2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCBpc0hvbGRpbmdMb2NrZWRGaWxlcykK
LXsKLSAgICBpZiAoIWlzSG9sZGluZ0xvY2tlZEZpbGVzKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9H
KFByb2Nlc3NTdXNwZW5zaW9uLCAiVUlQcm9jZXNzIGlzIHJlbGVhc2luZyBhIGJhY2tncm91bmQg
YXNzZXJ0aW9uIGJlY2F1c2UgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBubyBsb25nZXIgaG9s
ZGluZyBsb2NrZWQgZmlsZXMiKTsKLSAgICAgICAgbV9hY3Rpdml0eUZvckhvbGRpbmdMb2NrZWRG
aWxlcyA9IG51bGxwdHI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYgKCFtX2FjdGl2
aXR5Rm9ySG9sZGluZ0xvY2tlZEZpbGVzKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NT
dXNwZW5zaW9uLCAiVUlQcm9jZXNzIGlzIHRha2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJl
Y2F1c2UgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBob2xkaW5nIGxvY2tlZCBmaWxlcyIpOwot
ICAgICAgICBtX2FjdGl2aXR5Rm9ySG9sZGluZ0xvY2tlZEZpbGVzID0gbV90aHJvdHRsZXIuYmFj
a2dyb3VuZEFjdGl2aXR5KCJIb2xkaW5nIGxvY2tlZCBmaWxlcyJfcykubW92ZVRvVW5pcXVlUHRy
KCk7Ci0gICAgfQotfQotCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6aXNSZXNwb25zaXZlKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBpc1dlYlByb2Nlc3NSZXNwb25zaXZlKT4mJiBjYWxsYmFj
aykKIHsKICAgICBpZiAobV9pc1Jlc3BvbnNpdmUgPT0gTm9Pck1heWJlOjpObykgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBjMzQ0Yzc5YmYwOWZiMTE4
ZTBiMzFlMWE1OWE3MDFmM2JiNDE0MTViLi5jMWUzYTE0YWU0OGM3OThhY2VmNzU5MDRmNTViYjY5
MmY0MDY1YmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApA
QCAtMjQyLDggKzI0Miw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgd2luZG93U2VydmVyQ29ubmVj
dGlvblN0YXRlQ2hhbmdlZCgpOwogCi0gICAgdm9pZCBzZXRJc0hvbGRpbmdMb2NrZWRGaWxlcyhi
b29sKTsKLQogICAgIFByb2Nlc3NUaHJvdHRsZXImIHRocm90dGxlcigpIHsgcmV0dXJuIG1fdGhy
b3R0bGVyOyB9CiAKICAgICB2b2lkIGlzUmVzcG9uc2l2ZShDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wgaXNXZWJQcm9jZXNzUmVzcG9uc2l2ZSk+JiYpOwpAQCAtNTM3LDcgKzUzNSw2IEBAIHBy
aXZhdGU6CiAKICAgICBpbnQgbV9udW1iZXJPZlRpbWVzU3VkZGVuVGVybWluYXRpb25XYXNEaXNh
YmxlZDsKICAgICBQcm9jZXNzVGhyb3R0bGVyIG1fdGhyb3R0bGVyOwotICAgIHN0ZDo6dW5pcXVl
X3B0cjxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHk+IG1fYWN0aXZpdHlGb3JI
b2xkaW5nTG9ja2VkRmlsZXM7CiAgICAgRm9yZWdyb3VuZFdlYlByb2Nlc3NUb2tlbiBtX2ZvcmVn
cm91bmRUb2tlbjsKICAgICBCYWNrZ3JvdW5kV2ViUHJvY2Vzc1Rva2VuIG1fYmFja2dyb3VuZFRv
a2VuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
bWVzc2FnZXMuaW4KaW5kZXggODVjZWI2NDM0MjllOTEzNzg3MzRkYjgyOWI4ZWFlOGU4OWZkM2M4
OC4uN2NiZmRjMjM3ZTk0OTgyMDA5ZDBmNDMyMzRmZDdmMDE3YTA0OWQzMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAt
NDIsOCArNDIsNiBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIg
ewogICAgIEdldEdQVVByb2Nlc3NDb25uZWN0aW9uKCkgLT4gKHN0cnVjdCBXZWJLaXQ6OkdQVVBy
b2Nlc3NDb25uZWN0aW9uSW5mbyBjb25uZWN0aW9uSW5mbykgU3luY2hyb25vdXMKICNlbmRpZgog
Ci0gICAgU2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCBpc0hvbGRpbmdMb2NrZWRGaWxlcykK
LQogICAgIERpZEV4Y2VlZEFjdGl2ZU1lbW9yeUxpbWl0KCkKICAgICBEaWRFeGNlZWRJbmFjdGl2
ZU1lbW9yeUxpbWl0KCkKICAgICBEaWRFeGNlZWRDUFVMaW1pdCgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxOGFjOTlmNDhjNTljMDBm
N2Y2MWQ1Y2Y1ODMxOGRjMzNmZmUzY2MzLi4xNjM2ZWE3ZjIyNDMzMmIzYzRlZjgxNDYwOGJiMTQ0
ZmZiNzQ2NjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTEzMjQsNyArMTMyNCw2IEBACiAJCTgzMkFFMjUyMUJFMkU4Q0QwMEZBQUUx
MCAvKiBOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzJBRTI1MDFCRTJFOENEMDBGQUFFMTAg
LyogTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkTWFuYWdlci5oICovOyB9OwogCQk4MzJFRDE4
QzFFMkZFMTU3MDA2QkE2NEEgLyogUGVyQWN0aXZpdHlTdGF0ZUNQVVVzYWdlU2FtcGxlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMyRUQxOEExRTJG
RTEzQjAwNkJBNjRBIC8qIFBlckFjdGl2aXR5U3RhdGVDUFVVc2FnZVNhbXBsZXIuaCAqLzsgfTsK
IAkJODM0QjI1MEYxQTgzMUE4RDAwQ0ZCMTUwIC8qIE5ldHdvcmtDYWNoZUZpbGVTeXN0ZW0uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNEIyNTBFMUE4
MzFBOEQwMENGQjE1MCAvKiBOZXR3b3JrQ2FjaGVGaWxlU3lzdGVtLmggKi87IH07Ci0JCTgzNjAz
NEEwMUFDQjM0RDYwMDYyNjU0OSAvKiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNjAzNDlFMUFDQjM0RDYw
MDYyNjU0OSAvKiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCAqLzsgfTsKIAkJODM3MkRCMjUx
QTY3NEM4RjAwQzY5N0M1IC8qIFdLUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzcyREIyNDFBNjc0QzhG
MDBDNjk3QzUgLyogV0tQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzcyREIyOTFBNjc1NjI4MDBD
Njk3QzUgLyogV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzcyREIyNzFBNjc1NjI4MDBDNjk3QzUg
LyogV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggKi87IH07CiAJCTgzNzJEQjJGMUE2
NzdENEEwMEM2OTdDNSAvKiBXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM3MkRCMkUxQTY3N0Q0QTAw
QzY5N0M1IC8qIFdLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTQzMjUsOCArNDMyNCw2IEBACiAJ
CTgzMzk3QzY2MjIxMjRCRDEwMEI2MjM4OCAvKiBXZWJQcm9jZXNzQ2FjaGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUHJvY2Vzc0NhY2hlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMzOTdDNjcyMjEyNEJEMTAwQjYyMzg4IC8qIFdlYlBy
b2Nlc3NDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQcm9jZXNz
Q2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM0QjI1MEUxQTgzMUE4RDAw
Q0ZCMTUwIC8qIE5ldHdvcmtDYWNoZUZpbGVTeXN0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTmV0d29ya0NhY2hlRmlsZVN5c3RlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk4MzYwMzQ5RDFBQ0IzNEQ2MDA2MjY1NDkgLyogV2ViU1FMaXRlRGF0YWJhc2VU
cmFja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNRTGl0
ZURhdGFiYXNlVHJhY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTgzNjAz
NDlFMUFDQjM0RDYwMDYyNjU0OSAvKiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNzJEQjI0MUE2NzRDOEYwMEM2OTdDNSAvKiBX
S1BhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXS1BhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4MzcyREIyNjFBNjc1NjI4MDBDNjk3QzUgLyogV2ViUGFnZURpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTgzNzJEQjI3MUE2NzU2MjgwMEM2OTdDNSAvKiBXZWJQYWdlRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUGFnZURp
YWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02
MTc2LDggKzYxNzMsNiBAQAogCQkJCTVDMTMwMjRBMUZFMzQxQTcwMDBEOUIzMSAvKiBXZWJzaXRl
UG9saWNpZXNEYXRhLmggKi8sCiAJCQkJMEVERTg1MDIyMDA0RTc0OTAwMDMwNTYwIC8qIFdlYnNp
dGVQb3BVcFBvbGljeS5oICovLAogCQkJCTcxRkI4MTBBMjI2MDYyN0EwMDMyMzY3NyAvKiBXZWJz
aXRlU2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeS5oICovLAotCQkJCTgzNjAzNDlE
MUFDQjM0RDYwMDYyNjU0OSAvKiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuY3BwICovLAotCQkJ
CTgzNjAzNDlFMUFDQjM0RDYwMDYyNjU0OSAvKiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCAq
LywKIAkJCQlDMDMzN0RENzEyN0E1MUI2MDA4RkY0RjQgLyogV2ViVG91Y2hFdmVudC5jcHAgKi8s
CiAJCQkJN0MwNjVGMjkxQzhDRDk1RjAwQzJEOTUwIC8qIFdlYlVzZXJDb250ZW50Q29udHJvbGxl
ckRhdGFUeXBlcy5jcHAgKi8sCiAJCQkJN0MwNjVGMkExQzhDRDk1RjAwQzJEOTUwIC8qIFdlYlVz
ZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oICovLApAQCAtMTEzODAsNyArMTEzNzUsNiBA
QAogCQkJCTQxNzkxNUFGMjI1NkJCNzUwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTc5MTVCMTIyNTZDMEQ2MDBENkY5N0UgLyogV2ViU29ja2V0Q2hh
bm5lbE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUMxNDkzODA5MjIzNDcxMDQwMDBDRDcw
NyAvKiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTgzNjAz
NEEwMUFDQjM0RDYwMDYyNjU0OSAvKiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBNTJDMEY4MUEzOENEQzcwMDE2MTYwQSAvKiBXZWJTdG9yYWdlTmFtZXNw
YWNlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNTZGMkRDMjE1MkI2QjUwMEU2RDVE
RiAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxN0E1MzEw
MUY0N0E4NjIwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggZWIx
ZTJiNmU0NTQ5NDU4Y2IxNjhkM2ZhZDliYTA1NTU2MWFjNTI0Zi4uNjgxMDRiZGZkMjk5NDA3NjEz
NjFhZWNjYjZiNjRiOWNmNGExMGE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcApAQCAtMTQ2LDEwICsxNDYsNiBAQAogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmgiCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0jaW5jbHVkZSAi
V2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmgiCi0jZW5kaWYKLQogI2lmIEVOQUJMRShTRUNfSVRF
TV9TSElNKQogI2luY2x1ZGUgIlNlY0l0ZW1TaGltLmgiCiAjZW5kaWYKQEAgLTIyNyw5ICsyMjMs
NiBAQCBXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKCkKICAgICAsIG1fcGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb25NYW5hZ2VyKFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjo6Y3JlYXRlKCkpCiAj
ZW5kaWYKICAgICAsIG1fbm9uVmlzaWJsZVByb2Nlc3NDbGVhbnVwVGltZXIoKnRoaXMsICZXZWJQ
cm9jZXNzOjpub25WaXNpYmxlUHJvY2Vzc0NsZWFudXBUaW1lckZpcmVkKQotI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCi0gICAgLCBtX3dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlcihbdGhpc10oYm9v
bCBpc0hvbGRpbmdMb2NrZWRGaWxlcykgeyBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OlNldElzSG9sZGluZ0xvY2tlZEZpbGVzKGlzSG9s
ZGluZ0xvY2tlZEZpbGVzKSwgMCk7IH0pCi0jZW5kaWYKIHsKICAgICAvLyBJbml0aWFsaXplIG91
ciBwbGF0Zm9ybSBzdHJhdGVnaWVzLgogICAgIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6aW5pdGlh
bGl6ZSgpOwpAQCAtMTQzOSw3ICsxNDMyLDYgQEAgdm9pZCBXZWJQcm9jZXNzOjpwcmVwYXJlVG9T
dXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVyPHYKICNl
bmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBtX3dlYlNRTGl0ZURhdGFiYXNl
VHJhY2tlci5zZXRJc1N1c3BlbmRlZCh0cnVlKTsKICAgICBTUUxpdGVEYXRhYmFzZTo6c2V0SXNE
YXRhYmFzZU9wZW5pbmdGb3JiaWRkZW4odHJ1ZSk7CiAgICAgaWYgKERhdGFiYXNlVHJhY2tlcjo6
aXNJbml0aWFsaXplZCgpKQogICAgICAgICBEYXRhYmFzZVRyYWNrZXI6OnNpbmdsZXRvbigpLmNs
b3NlQWxsRGF0YWJhc2VzKEN1cnJlbnRRdWVyeUJlaGF2aW9yOjpJbnRlcnJ1cHQpOwpAQCAtMTUx
OCw3ICsxNTEwLDYgQEAgdm9pZCBXZWJQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKCkKICAgICB1
bmZyZWV6ZUFsbExheWVyVHJlZXMoKTsKICAgICAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQot
ICAgIG1fd2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLnNldElzU3VzcGVuZGVkKGZhbHNlKTsKICAg
ICBTUUxpdGVEYXRhYmFzZTo6c2V0SXNEYXRhYmFzZU9wZW5pbmdGb3JiaWRkZW4oZmFsc2UpOwog
ICAgIGFjY2Vzc2liaWxpdHlQcm9jZXNzU3VzcGVuZGVkTm90aWZpY2F0aW9uKGZhbHNlKTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggNmIzOTljM2FlMDI0
YTc3NjIyNTUzNGRmYzIyYTgzN2M1YzFkOWJlMy4uZjE5OWY1NTFhODc1MzgxYjEyNWNjZDNhMzJk
ZTVlOGI3ZDUwYjA4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0z
OSw3ICszOSw2IEBACiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9ySW50ZXJydXB0RGlzcGF0Y2hlci5o
IgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCi0jaW5jbHVkZSAiV2ViU1FMaXRlRGF0YWJhc2VUcmFj
a2VyLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0FjdGl2aXR5U3RhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmll
ci5oPgpAQCAtNTc5LDcgKzU3OCw2IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYkNvcmU6OkFw
cGxpY2F0aW9uQ2FjaGVTdG9yYWdlPiBtX2FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOwogCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIgbV93ZWJT
UUxpdGVEYXRhYmFzZVRyYWNrZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NBc3NlcnRp
b24+IG1fdWlQcm9jZXNzRGVwZW5kZW5jeVByb2Nlc3NBc3NlcnRpb247CiAjZW5kaWYKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397846</attachid>
            <date>2020-04-28 09:38:51 -0700</date>
            <delta_ts>2020-04-28 17:03:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206910-20200428093851.patch</filename>
            <type>text/plain</type>
            <size>26003</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwODMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdmM2E0NzFkNmViZjMxMjgy
N2IwZWFjYTlhNWFlNTFiNGJjMjdiMTUuLmI0N2JhZDg4MGM3MWIxNzk2NzUwNDUzMzRkN2VlMWI2
YjRjMDYzZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMjAtMDQtMjggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXVtXSzJdIERyb3AgcHJvY2Vz
cyBhc3NlcnRpb24gbG9naWMgZm9yIGhvbGRpbmcgbG9ja2VkIGZpbGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY5MTAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHByb2Nlc3MgYXNzZXJ0aW9u
IGxvZ2ljIGZvciBob2xkaW5nIGxvY2tlZCBmaWxlcyBhcyBpdCBpcyBjYXVzaW5nIGlzc3VlcyBh
bmQKKyAgICAgICAgc2hvdWxkIG5vIGxvbmdlciBiZSBuZWVkZWQuCisKKyAgICAgICAgVGhlIGlu
dGVudGlvbiBvZiB0aGlzIGNvZGUgd2FzIHRoYXQgdGhlIE5ldHdvcmsgUHJvY2VzcyB3b3VsZCBz
ZW5kIGEKKyAgICAgICAgU2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCkgSVBDIHRvIHRoZSBV
SVByb2Nlc3Mgd2hlbmV2ZXIgdGhlcmUgYXJlIHBlbmRpbmcKKyAgICAgICAgU1FMaXRlIHRyYW5z
YWN0aW9ucyBhbmQgdGhlIFVJUHJvY2VzcyB3b3VsZCB0aGVuIHRha2UgYSBwcm9jZXNzIGFzc2Vy
dGlvbiBvbiBiZWhhbGYKKyAgICAgICAgb2YgdGhlIFdlYlByb2Nlc3MgKG9yIHJlbGVhc2UgaXQp
IHRvIHByZXZlbnQgLyBhbGxvdyBzdXNwZW5zaW9uLgorCisgICAgICAgIFRoaXMgYXBwcm9hY2gg
aGFzIHNvbWUgaXNzdWVzOgorICAgICAgICAxLiBJdCB3YXMgbm9pc3kgaW4gdGVybXMgb2YgSVBD
CisgICAgICAgIDIuIEJlY2F1c2UgaXQgcmVsaWVzIG9uIGFuIElQQyB0byB0aGUgVUlQcm9jZXNz
IHRvIGtlZXAgcnVubmluZywgaXQgd2FzIGluaGVyZW50bHkKKyAgICAgICAgICAgcmFjeQorICAg
ICAgICAzLiBXZSBhbHJlYWR5IGhhdmUgbG9naWMgdG8gZGVhbCB3aXRoIHN1c3BlbnNpb24gaW4g
dGhlIG5ldHdvcmsgLyB3ZWIgcHJvY2Vzc2VzLgorICAgICAgICAgICBUaGUgVUlQcm9jZXNzIHNl
bmRzIGEgUHJlcGFyZUZvclN1c3BlbnNpb24gSVBDIHRvIGl0cyBjaGlsZCBwcm9jZXNzZXMuIElu
IHR1cm4sCisgICAgICAgICAgIHRob3NlIHByb2Nlc3NlcyB3aWxsIG1ha2Ugc3VyZSB0byBzdXNw
ZW5kIHRoZWlyIGRhdGFiYXNlIHRocmVhZHMgdG8gcHJldmVudCBhbnkKKyAgICAgICAgICAgZnVy
dGhlciBkYXRhYmFzZSB3b3JrLiBUaGUgY2hpbGQgcHJvY2Vzc2VzIHdvdWxkIHRoZW4gcmVzcG9u
ZCB0byB0aGUKKyAgICAgICAgICAgUHJlcGFyZUZvclN1c3BlbnNpb24gSVBDIHRvIGxldCB0aGUg
VUlQcm9jZXNzIGtub3cgdGhleSBhcmUgcmVhZHkgdG8gc3VzcGVuZC4KKyAgICAgICAgICAgVGhl
IDIgYXBwcm9hY2hlcyB3ZXJlIGNvbmZsaWN0aW5nLCBiZWNhdXNlIGFmdGVyIHRoZSBQcmVwYXJl
Rm9yU3VzcGVuc2lvbiBJUEMgaXMKKyAgICAgICAgICAgc2VudCwgdGhlIGNoaWxkIHByb2Nlc3Mg
Y291bGQgcHJvY2VzcyBhIHRyYW5zYWN0aW9uIGFuZCBzZW5kIHRoZQorICAgICAgICAgICBTZXRJ
c0hvbGRpbmdMb2NrZWRGaWxlcygpIElQQyB0byB0aGUgVUlQcm9jZXNzIHdoaWNoIHdvdWxkIGlu
Y29ycmVjdGx5IGNhbmNlbCB0aGUKKyAgICAgICAgICAgc3VzcGVuc2lvbi4KKworICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6Ok5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6bV9tZXNzYWdl
UG9ydENoYW5uZWxSZWdpc3RyeSk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViU1FMaXRlRGF0YWJhc2VUcmFj
a2VyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBTaGFyZWQvV2ViU1FMaXRlRGF0YWJhc2VUcmFj
a2VyLmg6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZENs
b3NlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkU2V0QXNzZXJ0
aW9uU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRJc0hv
bGRpbmdMb2NrZWRGaWxlcyk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6c2h1dERvd24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnNldElzSG9sZGluZ0xvY2tlZEZp
bGVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjptX25vblZpc2libGVQcm9jZXNzQ2xl
YW51cFRpbWVyKToKKyAgICAgICAgKFdlYktpdDo6bV93ZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIp
OiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorCiAyMDIwLTA0
LTI4ICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0dUS10gVW5yZXZpZXdlZCBidWlsZCBmaXggZm9yIENsYW5nIDEwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IGY0YzgxZjY3MTQ0
OTE0MzJhMjZmZDBhNzcyOWQzZGZmNzlhOTA0YjcuLmQwODEwZDcyOTliYjY0YTgzMWIyNGQ4NTNl
NGJlNjljOGQ2N2QzOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwCkBAIC0xNTAsOSArMTUwLDYgQEAgTmV0d29ya1Byb2Nlc3M6Ok5ldHdv
cmtQcm9jZXNzKEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmJiBwYXJh
bWUKICAgICAsIG1fc3RvcmFnZU1hbmFnZXJTZXQoU3RvcmFnZU1hbmFnZXJTZXQ6OmNyZWF0ZSgp
KQogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCiAgICAgLCBtX25ldHdvcmtDb250ZW50
UnVsZUxpc3RNYW5hZ2VyKCp0aGlzKQotI2VuZGlmCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
LSAgICAsIG1fd2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyKFt0aGlzXShib29sIGlzSG9sZGluZ0xv
Y2tlZEZpbGVzKSB7IHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzUHJveHk6OlNldElzSG9sZGluZ0xvY2tlZEZpbGVzKGlzSG9sZGluZ0xvY2tl
ZEZpbGVzKSwgMCk7IH0pCiAjZW5kaWYKICAgICAsIG1fbWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0
cnkoY3JlYXRlTWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkoKnRoaXMpKQogewpAQCAtMjE5Nywx
MSArMjE5NCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoYm9vbCBp
c1N1c3BlbnNpb25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRsCiAKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKSAmJiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBmb3IgKGF1dG8mIHNlcnZl
ciA6IG1fd2ViSURCU2VydmVycy52YWx1ZXMoKSkKLSAgICAgICAgc2VydmVyLT5zdXNwZW5kKGlz
U3VzcGVuc2lvbkltbWluZW50ID8gV2ViSURCU2VydmVyOjpTaG91bGRGb3JjZVN0b3A6OlllcyA6
IFdlYklEQlNlcnZlcjo6U2hvdWxkRm9yY2VTdG9wOjpObyk7Ci0jZW5kaWYKLQotI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCi0gICAgbV93ZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuc2V0SXNTdXNw
ZW5kZWQodHJ1ZSk7CisgICAgICAgIHNlcnZlci0+c3VzcGVuZChXZWJJREJTZXJ2ZXI6OlNob3Vs
ZEZvcmNlU3RvcDo6WWVzKTsKICNlbmRpZgogCiAgICAgbG93TWVtb3J5SGFuZGxlcihDcml0aWNh
bDo6WWVzKTsKQEAgLTIyNTQsMTAgKzIyNDcsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcm9j
ZXNzRGlkUmVzdW1lKCkKIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cmVzdW1lKCkKIHsKLSNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQotICAgIG1fd2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLnNldElz
U3VzcGVuZGVkKGZhbHNlKTsKLSNlbmRpZgotCiAgICAgcGxhdGZvcm1Qcm9jZXNzRGlkUmVzdW1l
KCk7CiAgICAgZm9yIChhdXRvJiBjb25uZWN0aW9uIDogbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMu
dmFsdWVzKCkpCiAgICAgICAgIGNvbm5lY3Rpb24tPmVuZFN1c3BlbnNpb24oKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCBkYTZhZDdhODc4
YTdhOTkxYjA1YWI3MzhlM2I5MDdkZDk5MGJmODlhLi5jNTkwYjZkZmIwZDMwNWY3ZjcwNTQ1ZjAw
MGJmNmIyMDEzZGVmMGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oCkBAIC01OCwxMCArNTgsNiBAQAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIu
aD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
LSNpbmNsdWRlICJXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCIKLSNlbmRpZgotCiAjaWYgUExB
VEZPUk0oQ09DT0EpCiB0eXBlZGVmIHN0cnVjdCBPcGFxdWVDRkhUVFBDb29raWVTdG9yYWdlKiAg
Q0ZIVFRQQ29va2llU3RvcmFnZVJlZjsKICNlbmRpZgpAQCAtNTUyLDEwICs1NDgsNiBAQCBwcml2
YXRlOgogICAgIE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyIG1fbmV0d29ya0NvbnRlbnRS
dWxlTGlzdE1hbmFnZXI7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAg
V2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyIG1fd2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyOwotI2Vu
ZGlmCi0KICAgICBSZWY8V29ya1F1ZXVlPiBtX3N0b3JhZ2VUYXNrUXVldWUgeyBXb3JrUXVldWU6
OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5TdG9yYWdlVGFzayIpIH07CiAKICNpZiBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlNR
TGl0ZURhdGFiYXNlVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJTUUxpdGVE
YXRhYmFzZVRyYWNrZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMDI3MDcw
NWQ0OWUyNTg5OGFhNjBjNjQwOTZmZjE4NDE5ZmY0Y2Q4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlNRTGl0ZURh
dGFiYXNlVHJhY2tlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4NyArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYlNRTGl0ZURhdGFiYXNlVHJh
Y2tlci5oIgotCi0jaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKLSNpbmNsdWRlICJOZXR3b3Jr
UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCi0jaW5jbHVk
ZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1NRTGl0ZURh
dGFiYXNlVHJhY2tlci5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwotCi1XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXI6OldlYlNRTGl0ZURhdGFiYXNlVHJh
Y2tlcihJc0hvbGRpbmdMb2NrZWRGaWxlc0hhbmRsZXImJiBpc0hvbGRpbmdMb2NrZWRGaWxlc0hh
bmRsZXIpCi0gICAgOiBtX2lzSG9sZGluZ0xvY2tlZEZpbGVzSGFuZGxlcihXVEZNb3ZlKGlzSG9s
ZGluZ0xvY2tlZEZpbGVzSGFuZGxlcikpCi0gICAgLCBtX2h5c3RlcmVzaXMoW3RoaXNdKFBBTDo6
SHlzdGVyZXNpc1N0YXRlIHN0YXRlKSB7IHNldElzSG9sZGluZ0xvY2tlZEZpbGVzKHN0YXRlID09
IFBBTDo6SHlzdGVyZXNpc1N0YXRlOjpTdGFydGVkKTsgfSkKLXsKLSAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOwotICAgIFNRTGl0ZURhdGFiYXNlVHJhY2tlcjo6c2V0Q2xpZW50KHRoaXMp
OwotfQotCi1XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXI6On5XZWJTUUxpdGVEYXRhYmFzZVRyYWNr
ZXIoKQotewotICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgU1FMaXRlRGF0YWJh
c2VUcmFja2VyOjpzZXRDbGllbnQobnVsbHB0cik7Ci0KLSAgICBpZiAobV9oeXN0ZXJlc2lzLnN0
YXRlKCkgPT0gUEFMOjpIeXN0ZXJlc2lzU3RhdGU6OlN0YXJ0ZWQpCi0gICAgICAgIHNldElzSG9s
ZGluZ0xvY2tlZEZpbGVzKGZhbHNlKTsKLX0KLQotdm9pZCBXZWJTUUxpdGVEYXRhYmFzZVRyYWNr
ZXI6OnNldElzU3VzcGVuZGVkKGJvb2wgaXNTdXNwZW5kZWQpCi17Ci0gICAgQVNTRVJUKFJ1bkxv
b3A6OmlzTWFpbigpKTsKLSAgICBtX2lzU3VzcGVuZGVkID0gaXNTdXNwZW5kZWQ7Ci19Ci0KLXZv
aWQgV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyOjp3aWxsQmVnaW5GaXJzdFRyYW5zYWN0aW9uKCkK
LXsKLSAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIo
KnRoaXMpXSB7Ci0gICAgICAgIGlmICh3ZWFrVGhpcykKLSAgICAgICAgICAgIHdlYWtUaGlzLT5t
X2h5c3RlcmVzaXMuc3RhcnQoKTsKLSAgICB9KTsKLX0KLQotdm9pZCBXZWJTUUxpdGVEYXRhYmFz
ZVRyYWNrZXI6OmRpZEZpbmlzaExhc3RUcmFuc2FjdGlvbigpCi17Ci0gICAgUnVuTG9vcDo6bWFp
bigpLmRpc3BhdGNoKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0gewotICAgICAgICBp
ZiAod2Vha1RoaXMpCi0gICAgICAgICAgICB3ZWFrVGhpcy0+bV9oeXN0ZXJlc2lzLnN0b3AoKTsK
LSAgICB9KTsKLX0KLQotdm9pZCBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXI6OnNldElzSG9sZGlu
Z0xvY2tlZEZpbGVzKGJvb2wgaXNIb2xkaW5nTG9ja2VkRmlsZXMpCi17Ci0gICAgQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpKTsKLQotICAgIGlmIChtX2lzU3VzcGVuZGVkKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBtX2lzSG9sZGluZ0xvY2tlZEZpbGVzSGFuZGxlcihpc0hvbGRpbmdMb2NrZWRG
aWxlcyk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYjJiZmQzMjNkZTUzZTY1MjMyMTM5MTMzODg3ZGM1NGU4MTEyYzkyZC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgPFdlYkNvcmUvU1FMaXRl
RGF0YWJhc2VUcmFja2VyQ2xpZW50Lmg+Ci0jaW5jbHVkZSA8cGFsL0h5c3RlcmVzaXNBY3Rpdml0
eS5oPgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi0vLyBVc2UgZWFnZXIgaW5pdGlhbGl6YXRpb24g
Zm9yIHRoZSBXZWFrUHRyRmFjdG9yeSBzaW5jZSB3ZSBjYWxsIG1ha2VXZWFrUHRyKCkgZnJvbSBh
IG5vbi1tYWluIHRocmVhZC4KLWNsYXNzIFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlciBmaW5hbCA6
IHB1YmxpYyBXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQsIHB1YmxpYyBDYW5N
YWtlV2Vha1B0cjxXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIsIFdlYWtQdHJGYWN0b3J5SW5pdGlh
bGl6YXRpb246OkVhZ2VyPiB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2ViU1FMaXRlRGF0
YWJhc2VUcmFja2VyKQotcHVibGljOgotICAgIHVzaW5nIElzSG9sZGluZ0xvY2tlZEZpbGVzSGFu
ZGxlciA9IEZ1bmN0aW9uPHZvaWQoYm9vbCk+OwotICAgIGV4cGxpY2l0IFdlYlNRTGl0ZURhdGFi
YXNlVHJhY2tlcihJc0hvbGRpbmdMb2NrZWRGaWxlc0hhbmRsZXImJik7Ci0KLSAgICB+V2ViU1FM
aXRlRGF0YWJhc2VUcmFja2VyKCk7Ci0KLSAgICB2b2lkIHNldElzU3VzcGVuZGVkKGJvb2wpOwot
Ci1wcml2YXRlOgotICAgIHZvaWQgc2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCk7Ci0KLSAg
ICAvLyBXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQuCi0gICAgdm9pZCB3aWxs
QmVnaW5GaXJzdFRyYW5zYWN0aW9uKCkgZmluYWw7Ci0gICAgdm9pZCBkaWRGaW5pc2hMYXN0VHJh
bnNhY3Rpb24oKSBmaW5hbDsKLQotICAgIElzSG9sZGluZ0xvY2tlZEZpbGVzSGFuZGxlciBtX2lz
SG9sZGluZ0xvY2tlZEZpbGVzSGFuZGxlcjsKLSAgICBQQUw6Okh5c3RlcmVzaXNBY3Rpdml0eSBt
X2h5c3RlcmVzaXM7Ci0gICAgYm9vbCBtX2lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKLX07Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGJiY2IwMmViNTM0
N2NmM2FhYmZmY2YzZWZiNGEzNDJhYjlhYTIyNTMuLjBmNDExOTM3ZGIyYmE1N2RjOWE4OGMwYjli
NDk5MTBkYjE5NDY0ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4
dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTEzNCw3ICsxMzQsNiBA
QCBTaGFyZWQvQVBJV2ViQXJjaGl2ZVJlc291cmNlLm1tCiBTaGFyZWQvRG9jdW1lbnRFZGl0aW5n
Q29udGV4dC5tbQogU2hhcmVkL0ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uY3BwCiBTaGFyZWQv
VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHAKLVNoYXJlZC9XZWJTUUxpdGVEYXRhYmFz
ZVRyYWNrZXIuY3BwCiAKIFNoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmNwcCBAbm8tdW5pZnkK
IFNoYXJlZC9jZi9Db29raWVTdG9yYWdlVXRpbHNDRi5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggZjlh
ZGU3NjJhZGIzODE0ZTQ5YWY5ZTU5ZDVmNGQxYWEyOGMyMWRmYy4uZjYzNzE1NTg4ZGE0Njc3NjNj
MmZhZTEzMGFhNGNkOWRhNmVkNWEwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0yNjUsOCArMjY1LDYg
QEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQog
I2lmIEVOQUJMRShMRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIpCiAgICAgbV9jdXN0b21Q
cm90b2NvbE1hbmFnZXJQcm94eS5pbnZhbGlkYXRlKCk7CiAjZW5kaWYKLQotICAgIG1fYWN0aXZp
dHlGb3JIb2xkaW5nTG9ja2VkRmlsZXMgPSBudWxscHRyOwogICAgIAogICAgIG1fc3luY0FsbENv
b2tpZXNBY3Rpdml0eSA9IG51bGxwdHI7CiAgICAgbV9zeW5jQWxsQ29va2llc0NvdW50ZXIgPSAw
OwpAQCAtMTE3MCwxOSArMTE2OCw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZFBy
b2Nlc3NEaWRSZXN1bWUoKQogICAgIGlmIChjYW5TZW5kTWVzc2FnZSgpKQogICAgICAgICBzZW5k
KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UHJvY2Vzc0RpZFJlc3VtZSgpLCAwKTsKIH0KLSAg
ICAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9v
bCBpc0hvbGRpbmdMb2NrZWRGaWxlcykKLXsKLSAgICBpZiAoIWlzSG9sZGluZ0xvY2tlZEZpbGVz
KSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiVUlQcm9jZXNzIGlz
IHJlbGVhc2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIE5ldHdvcmsgcHJv
Y2VzcyBpcyBubyBsb25nZXIgaG9sZGluZyBsb2NrZWQgZmlsZXMiKTsKLSAgICAgICAgbV9hY3Rp
dml0eUZvckhvbGRpbmdMb2NrZWRGaWxlcyA9IG51bGxwdHI7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0gICAgaWYgKCFtX2FjdGl2aXR5Rm9ySG9sZGluZ0xvY2tlZEZpbGVzKSB7Ci0gICAgICAg
IFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiVUlQcm9jZXNzIGlzIHRha2luZyBhIGJh
Y2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIE5ldHdvcmsgcHJvY2VzcyBpcyBob2xkaW5n
IGxvY2tlZCBmaWxlcyIpOwotICAgICAgICBtX2FjdGl2aXR5Rm9ySG9sZGluZ0xvY2tlZEZpbGVz
ID0gbV90aHJvdHRsZXIuYmFja2dyb3VuZEFjdGl2aXR5KCJIb2xkaW5nIGxvY2tlZCBmaWxlcyJf
cykubW92ZVRvVW5pcXVlUHRyKCk7Ci0gICAgfQotfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6OnN5bmNBbGxDb29raWVzKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggNGY4MDUzMzNlY2M3MTgxMWI1
MmIyMzhkYjE4ZDZhYWRhZGQyZGE3MC4uODZmZmJjZjg0MzM2NDc4YzkwZjMyMmQ0OWY2NmU1YTIx
ZGRkMzBlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTE4Miw4ICsxODIsNiBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgdm9pZCBzeW50aGVzaXplQXBwSXNCYWNrZ3JvdW5kKGJvb2wgYmFja2dyb3VuZCk7CiAKLSAg
ICB2b2lkIHNldElzSG9sZGluZ0xvY2tlZEZpbGVzKGJvb2wpOwotCiAgICAgdm9pZCBzeW5jQWxs
Q29va2llcygpOwogICAgIHZvaWQgZGlkU3luY0FsbENvb2tpZXMoKTsKIApAQCAtMzAyLDcgKzMw
MCw2IEBAIHByaXZhdGU6CiAgICAgTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkgbV9j
dXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eTsKICNlbmRpZgogICAgIFByb2Nlc3NUaHJvdHRsZXIg
bV90aHJvdHRsZXI7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tn
cm91bmRBY3Rpdml0eT4gbV9hY3Rpdml0eUZvckhvbGRpbmdMb2NrZWRGaWxlczsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5PiBtX3N5bmNB
bGxDb29raWVzQWN0aXZpdHk7CiAgICAgUHJvY2Vzc1Rocm90dGxlcjo6QWN0aXZpdHlWYXJpYW50
IG1fYWN0aXZpdHlGcm9tV2ViUHJvY2Vzc2VzOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3Nh
Z2VzLmluCmluZGV4IDgzNzlkOWY1OTEwMGI2ZTZlMTA2NWE3ZGY1NjQxNTEyMzE1MzQzNjkuLjcy
NDEwMDRlYTlhMThjMmVhZDdmNWU4MTMzYjFlNDUwOGI5OWY0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkubWVzc2FnZXMuaW4KQEAgLTM0LDggKzM0LDYgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nl
c3NQcm94eSBMZWdhY3lSZWNlaXZlciBOb3RSZWZDb3VudGVkIHsKICAgICBUZXN0UHJvY2Vzc0lu
Y29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoV2ViS2l0OjpXZWJQYWdl
UHJveHlJZGVudGlmaWVyIHBhZ2VJRCkgLT4gKGJvb2wgaGFuZGxlZCkgU3luY2hyb25vdXMKICAg
ICBUZXJtaW5hdGVVbnJlc3BvbnNpdmVTZXJ2aWNlV29ya2VyUHJvY2Vzc2VzKFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVyKQogCi0gICAgU2V0SXNIb2xkaW5nTG9j
a2VkRmlsZXMoYm9vbCBpc0hvbGRpbmdMb2NrZWRGaWxlcykKLQogICAgICMgRGlhZ25vc3RpYyBt
ZXNzYWdlcyBsb2dnaW5nCiAgICAgTG9nRGlhZ25vc3RpY01lc3NhZ2UoV2ViS2l0OjpXZWJQYWdl
UHJveHlJZGVudGlmaWVyIHBhZ2VJRCwgU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBkZXNjcmlwdGlv
biwgZW51bTpib29sIFdlYkNvcmU6OlNob3VsZFNhbXBsZSBzaG91bGRTYW1wbGUpCiAgICAgTG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmll
ciBwYWdlSUQsIFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3JpcHRpb24sIHVpbnQzMl90IHJl
c3VsdCwgZW51bTpib29sIFdlYkNvcmU6OlNob3VsZFNhbXBsZSBzaG91bGRTYW1wbGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBlNGE4NmZhYWYz
MTgzOGM4Y2ZhM2VkNzllODliODk0ZGM1YzIwMjEwLi4wNTRkMzAxYTdlOTU0YjJhMTM0MmY2NDEz
MmFiMGYxYjMzN2UzZTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKQEAgLTQxMyw3ICs0MTMsNiBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c2h1dERv
d24oKQogCiAgICAgbV9yZXNwb25zaXZlbmVzc1RpbWVyLmludmFsaWRhdGUoKTsKICAgICBtX2Jh
Y2tncm91bmRSZXNwb25zaXZlbmVzc1RpbWVyLmludmFsaWRhdGUoKTsKLSAgICBtX2FjdGl2aXR5
Rm9ySG9sZGluZ0xvY2tlZEZpbGVzID0gbnVsbHB0cjsKICAgICBtX2F1ZGlibGVNZWRpYUFjdGl2
aXR5ID0gV1RGOjpudWxsb3B0OwogCiAgICAgZm9yIChhdXRvJiBmcmFtZSA6IGNvcHlUb1ZlY3Rv
cihtX2ZyYW1lTWFwLnZhbHVlcygpKSkKQEAgLTE0MDIsMTkgKzE0MDEsNiBAQCB2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6dXBkYXRlQXVkaWJsZU1lZGlhQXNzZXJ0aW9ucygpCiAgICAgfQogfQogCi12
b2lkIFdlYlByb2Nlc3NQcm94eTo6c2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCBpc0hvbGRp
bmdMb2NrZWRGaWxlcykKLXsKLSAgICBpZiAoIWlzSG9sZGluZ0xvY2tlZEZpbGVzKSB7Ci0gICAg
ICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiVUlQcm9jZXNzIGlzIHJlbGVhc2lu
ZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBp
cyBubyBsb25nZXIgaG9sZGluZyBsb2NrZWQgZmlsZXMiKTsKLSAgICAgICAgbV9hY3Rpdml0eUZv
ckhvbGRpbmdMb2NrZWRGaWxlcyA9IG51bGxwdHI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0g
ICAgaWYgKCFtX2FjdGl2aXR5Rm9ySG9sZGluZ0xvY2tlZEZpbGVzKSB7Ci0gICAgICAgIFJFTEVB
U0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiVUlQcm9jZXNzIGlzIHRha2luZyBhIGJhY2tncm91
bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBob2xkaW5nIGxv
Y2tlZCBmaWxlcyIpOwotICAgICAgICBtX2FjdGl2aXR5Rm9ySG9sZGluZ0xvY2tlZEZpbGVzID0g
bV90aHJvdHRsZXIuYmFja2dyb3VuZEFjdGl2aXR5KCJIb2xkaW5nIGxvY2tlZCBmaWxlcyJfcyku
bW92ZVRvVW5pcXVlUHRyKCk7Ci0gICAgfQotfQotCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6aXNS
ZXNwb25zaXZlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBpc1dlYlByb2Nlc3NSZXNwb25z
aXZlKT4mJiBjYWxsYmFjaykKIHsKICAgICBpZiAobV9pc1Jlc3BvbnNpdmUgPT0gTm9Pck1heWJl
OjpObykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBj
MzQ0Yzc5YmYwOWZiMTE4ZTBiMzFlMWE1OWE3MDFmM2JiNDE0MTViLi5jMWUzYTE0YWU0OGM3OThh
Y2VmNzU5MDRmNTViYjY5MmY0MDY1YmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuaApAQCAtMjQyLDggKzI0Miw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgd2lu
ZG93U2VydmVyQ29ubmVjdGlvblN0YXRlQ2hhbmdlZCgpOwogCi0gICAgdm9pZCBzZXRJc0hvbGRp
bmdMb2NrZWRGaWxlcyhib29sKTsKLQogICAgIFByb2Nlc3NUaHJvdHRsZXImIHRocm90dGxlcigp
IHsgcmV0dXJuIG1fdGhyb3R0bGVyOyB9CiAKICAgICB2b2lkIGlzUmVzcG9uc2l2ZShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wgaXNXZWJQcm9jZXNzUmVzcG9uc2l2ZSk+JiYpOwpAQCAtNTM3
LDcgKzUzNSw2IEBAIHByaXZhdGU6CiAKICAgICBpbnQgbV9udW1iZXJPZlRpbWVzU3VkZGVuVGVy
bWluYXRpb25XYXNEaXNhYmxlZDsKICAgICBQcm9jZXNzVGhyb3R0bGVyIG1fdGhyb3R0bGVyOwot
ICAgIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHk+
IG1fYWN0aXZpdHlGb3JIb2xkaW5nTG9ja2VkRmlsZXM7CiAgICAgRm9yZWdyb3VuZFdlYlByb2Nl
c3NUb2tlbiBtX2ZvcmVncm91bmRUb2tlbjsKICAgICBCYWNrZ3JvdW5kV2ViUHJvY2Vzc1Rva2Vu
IG1fYmFja2dyb3VuZFRva2VuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggODVjZWI2NDM0MjllOTEzNzg3MzRkYjgy
OWI4ZWFlOGU4OWZkM2M4OC4uN2NiZmRjMjM3ZTk0OTgyMDA5ZDBmNDMyMzRmZDdmMDE3YTA0OWQz
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbgpAQCAtNDIsOCArNDIsNiBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJveHkg
TGVnYWN5UmVjZWl2ZXIgewogICAgIEdldEdQVVByb2Nlc3NDb25uZWN0aW9uKCkgLT4gKHN0cnVj
dCBXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uSW5mbyBjb25uZWN0aW9uSW5mbykgU3luY2hy
b25vdXMKICNlbmRpZgogCi0gICAgU2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCBpc0hvbGRp
bmdMb2NrZWRGaWxlcykKLQogICAgIERpZEV4Y2VlZEFjdGl2ZU1lbW9yeUxpbWl0KCkKICAgICBE
aWRFeGNlZWRJbmFjdGl2ZU1lbW9yeUxpbWl0KCkKICAgICBEaWRFeGNlZWRDUFVMaW1pdCgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAx
OGFjOTlmNDhjNTljMDBmN2Y2MWQ1Y2Y1ODMxOGRjMzNmZmUzY2MzLi4xNjM2ZWE3ZjIyNDMzMmIz
YzRlZjgxNDYwOGJiMTQ0ZmZiNzQ2NjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzMjQsNyArMTMyNCw2IEBACiAJCTgzMkFFMjUy
MUJFMkU4Q0QwMEZBQUUxMCAvKiBOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzJBRTI1MDFC
RTJFOENEMDBGQUFFMTAgLyogTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkTWFuYWdlci5oICov
OyB9OwogCQk4MzJFRDE4QzFFMkZFMTU3MDA2QkE2NEEgLyogUGVyQWN0aXZpdHlTdGF0ZUNQVVVz
YWdlU2FtcGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODMyRUQxOEExRTJGRTEzQjAwNkJBNjRBIC8qIFBlckFjdGl2aXR5U3RhdGVDUFVVc2FnZVNh
bXBsZXIuaCAqLzsgfTsKIAkJODM0QjI1MEYxQTgzMUE4RDAwQ0ZCMTUwIC8qIE5ldHdvcmtDYWNo
ZUZpbGVTeXN0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzNEIyNTBFMUE4MzFBOEQwMENGQjE1MCAvKiBOZXR3b3JrQ2FjaGVGaWxlU3lzdGVtLmgg
Ki87IH07Ci0JCTgzNjAzNEEwMUFDQjM0RDYwMDYyNjU0OSAvKiBXZWJTUUxpdGVEYXRhYmFzZVRy
YWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgz
NjAzNDlFMUFDQjM0RDYwMDYyNjU0OSAvKiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCAqLzsg
fTsKIAkJODM3MkRCMjUxQTY3NEM4RjAwQzY5N0M1IC8qIFdLUGFnZURpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
MzcyREIyNDFBNjc0QzhGMDBDNjk3QzUgLyogV0tQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4Mzcy
REIyOTFBNjc1NjI4MDBDNjk3QzUgLyogV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzcyREIyNzFB
Njc1NjI4MDBDNjk3QzUgLyogV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggKi87IH07
CiAJCTgzNzJEQjJGMUE2NzdENEEwMEM2OTdDNSAvKiBXS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0
VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM3
MkRCMkUxQTY3N0Q0QTAwQzY5N0M1IC8qIFdLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTQzMjUs
OCArNDMyNCw2IEBACiAJCTgzMzk3QzY2MjIxMjRCRDEwMEI2MjM4OCAvKiBXZWJQcm9jZXNzQ2Fj
aGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUHJvY2Vzc0Nh
Y2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMzOTdDNjcyMjEyNEJEMTAw
QjYyMzg4IC8qIFdlYlByb2Nlc3NDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJQcm9jZXNzQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM0
QjI1MEUxQTgzMUE4RDAwQ0ZCMTUwIC8qIE5ldHdvcmtDYWNoZUZpbGVTeXN0ZW0uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0NhY2hlRmlsZVN5c3RlbS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4MzYwMzQ5RDFBQ0IzNEQ2MDA2MjY1NDkgLyogV2Vi
U1FMaXRlRGF0YWJhc2VUcmFja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTgzNjAzNDlFMUFDQjM0RDYwMDYyNjU0OSAvKiBXZWJTUUxpdGVEYXRhYmFzZVRy
YWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU1FMaXRlRGF0YWJh
c2VUcmFja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNzJEQjI0MUE2NzRD
OEYwMEM2OTdDNSAvKiBXS1BhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXS1BhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzcyREIyNjFBNjc1NjI4MDBDNjk3QzUgLyog
V2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNzJEQjI3MUE2NzU2MjgwMEM2OTdDNSAvKiBXZWJQ
YWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC02MTc2LDggKzYxNzMsNiBAQAogCQkJCTVDMTMwMjRBMUZFMzQxQTcwMDBE
OUIzMSAvKiBXZWJzaXRlUG9saWNpZXNEYXRhLmggKi8sCiAJCQkJMEVERTg1MDIyMDA0RTc0OTAw
MDMwNTYwIC8qIFdlYnNpdGVQb3BVcFBvbGljeS5oICovLAogCQkJCTcxRkI4MTBBMjI2MDYyN0Ew
MDMyMzY3NyAvKiBXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeS5oICov
LAotCQkJCTgzNjAzNDlEMUFDQjM0RDYwMDYyNjU0OSAvKiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNr
ZXIuY3BwICovLAotCQkJCTgzNjAzNDlFMUFDQjM0RDYwMDYyNjU0OSAvKiBXZWJTUUxpdGVEYXRh
YmFzZVRyYWNrZXIuaCAqLywKIAkJCQlDMDMzN0RENzEyN0E1MUI2MDA4RkY0RjQgLyogV2ViVG91
Y2hFdmVudC5jcHAgKi8sCiAJCQkJN0MwNjVGMjkxQzhDRDk1RjAwQzJEOTUwIC8qIFdlYlVzZXJD
b250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5jcHAgKi8sCiAJCQkJN0MwNjVGMkExQzhDRDk1RjAw
QzJEOTUwIC8qIFdlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oICovLApAQCAtMTEz
ODAsNyArMTEzNzUsNiBAQAogCQkJCTQxNzkxNUFGMjI1NkJCNzUwMEQ2Rjk3RSAvKiBXZWJTb2Nr
ZXRDaGFubmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTc5MTVCMTIyNTZDMEQ2MDBENkY5N0Ug
LyogV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUMxNDkzODA5
MjIzNDcxMDQwMDBDRDcwNyAvKiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTgzNjAzNEEwMUFDQjM0RDYwMDYyNjU0OSAvKiBXZWJTUUxpdGVEYXRhYmFzZVRy
YWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNTJDMEY4MUEzOENEQzcwMDE2MTYwQSAvKiBX
ZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNTZGMkRD
MjE1MkI2QjUwMEU2RDVERiAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCTUxN0E1MzEwMUY0N0E4NjIwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb25N
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAKaW5kZXggZWIxZTJiNmU0NTQ5NDU4Y2IxNjhkM2ZhZDliYTA1NTU2MWFjNTI0Zi4uNjgx
MDRiZGZkMjk5NDA3NjEzNjFhZWNjYjZiNjRiOWNmNGExMGE3YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTQ2LDEwICsxNDYsNiBAQAogI2luY2x1ZGUgIlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgiCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCi0jaW5jbHVkZSAiV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmgiCi0jZW5kaWYKLQogI2lm
IEVOQUJMRShTRUNfSVRFTV9TSElNKQogI2luY2x1ZGUgIlNlY0l0ZW1TaGltLmgiCiAjZW5kaWYK
QEAgLTIyNyw5ICsyMjMsNiBAQCBXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKCkKICAgICAsIG1fcGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyKFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdl
cjo6Y3JlYXRlKCkpCiAjZW5kaWYKICAgICAsIG1fbm9uVmlzaWJsZVByb2Nlc3NDbGVhbnVwVGlt
ZXIoKnRoaXMsICZXZWJQcm9jZXNzOjpub25WaXNpYmxlUHJvY2Vzc0NsZWFudXBUaW1lckZpcmVk
KQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgLCBtX3dlYlNRTGl0ZURhdGFiYXNlVHJh
Y2tlcihbdGhpc10oYm9vbCBpc0hvbGRpbmdMb2NrZWRGaWxlcykgeyBwYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OlNldElzSG9sZGluZ0xv
Y2tlZEZpbGVzKGlzSG9sZGluZ0xvY2tlZEZpbGVzKSwgMCk7IH0pCi0jZW5kaWYKIHsKICAgICAv
LyBJbml0aWFsaXplIG91ciBwbGF0Zm9ybSBzdHJhdGVnaWVzLgogICAgIFdlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6aW5pdGlhbGl6ZSgpOwpAQCAtMTQzOSw3ICsxNDMyLDYgQEAgdm9pZCBXZWJQcm9j
ZXNzOjpwcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRp
b25IYW5kbGVyPHYKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBtX3dl
YlNRTGl0ZURhdGFiYXNlVHJhY2tlci5zZXRJc1N1c3BlbmRlZCh0cnVlKTsKICAgICBTUUxpdGVE
YXRhYmFzZTo6c2V0SXNEYXRhYmFzZU9wZW5pbmdGb3JiaWRkZW4odHJ1ZSk7CiAgICAgaWYgKERh
dGFiYXNlVHJhY2tlcjo6aXNJbml0aWFsaXplZCgpKQogICAgICAgICBEYXRhYmFzZVRyYWNrZXI6
OnNpbmdsZXRvbigpLmNsb3NlQWxsRGF0YWJhc2VzKEN1cnJlbnRRdWVyeUJlaGF2aW9yOjpJbnRl
cnJ1cHQpOwpAQCAtMTUxOCw3ICsxNTEwLDYgQEAgdm9pZCBXZWJQcm9jZXNzOjpwcm9jZXNzRGlk
UmVzdW1lKCkKICAgICB1bmZyZWV6ZUFsbExheWVyVHJlZXMoKTsKICAgICAKICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQotICAgIG1fd2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLnNldElzU3VzcGVu
ZGVkKGZhbHNlKTsKICAgICBTUUxpdGVEYXRhYmFzZTo6c2V0SXNEYXRhYmFzZU9wZW5pbmdGb3Ji
aWRkZW4oZmFsc2UpOwogICAgIGFjY2Vzc2liaWxpdHlQcm9jZXNzU3VzcGVuZGVkTm90aWZpY2F0
aW9uKGZhbHNlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5k
ZXggNmIzOTljM2FlMDI0YTc3NjIyNTUzNGRmYzIyYTgzN2M1YzFkOWJlMy4uZjE5OWY1NTFhODc1
MzgxYjEyNWNjZDNhMzJkZTVlOGI3ZDUwYjA4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oCkBAIC0zOSw3ICszOSw2IEBACiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9ySW50ZXJy
dXB0RGlzcGF0Y2hlci5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eUlkZW50aWZpZXIuaCIKICNp
bmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCi0jaW5jbHVkZSAiV2ViU1FM
aXRlRGF0YWJhc2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0FjdGl2aXR5U3RhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lSWRlbnRpZmllci5oPgpAQCAtNTc5LDcgKzU3OCw2IEBAIHByaXZhdGU6CiAgICAgUmVm
UHRyPFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlPiBtX2FwcGxpY2F0aW9uQ2FjaGVT
dG9yYWdlOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBXZWJTUUxpdGVEYXRhYmFz
ZVRyYWNrZXIgbV93ZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PFByb2Nlc3NBc3NlcnRpb24+IG1fdWlQcm9jZXNzRGVwZW5kZW5jeVByb2Nlc3NBc3NlcnRpb247
CiAjZW5kaWYKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>