<?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>240931</bug_id>
          
          <creation_ts>2022-05-25 16:42:58 -0700</creation_ts>
          <short_desc>Remove WebCookieManagerProxy, replaced by API::HTTPCookieStore</short_desc>
          <delta_ts>2022-06-07 14:32:00 -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>WebKit API</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>aboya</cc>
    
    <cc>asumu</cc>
    
    <cc>beidson</cc>
    
    <cc>cgarcia</cc>
    
    <cc>pgriffis</cc>
    
    <cc>philn</cc>
    
    <cc>pnormand</cc>
    
    <cc>rbuis</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zdobersek</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1871893</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-05-25 16:42:58 -0700</bug_when>
    <thetext>It has outlived its usefulness</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871896</commentid>
    <comment_count>1</comment_count>
      <attachid>459773</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-05-25 16:47:17 -0700</bug_when>
    <thetext>Created attachment 459773
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871897</commentid>
    <comment_count>2</comment_count>
      <attachid>459774</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-05-25 16:57:09 -0700</bug_when>
    <thetext>Created attachment 459774
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871898</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-05-25 16:57:36 -0700</bug_when>
    <thetext>I&apos;m going to need some help with the soup parts of this on Linux.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1873428</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-06-01 16:43:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/94255115&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1873696</commentid>
    <comment_count>5</comment_count>
      <attachid>459974</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-06-02 14:40:00 -0700</bug_when>
    <thetext>Created attachment 459974
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874160</commentid>
    <comment_count>6</comment_count>
      <attachid>459974</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2022-06-04 19:09:18 -0700</bug_when>
    <thetext>Comment on attachment 459974
Patch

r+. of course assuming you figure out the linux stuff</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874181</commentid>
    <comment_count>7</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2022-06-05 03:35:10 -0700</bug_when>
    <thetext>https://github.com/philn/WebKit/commit/ac6a0ff6f2830de12d7bc2fc43b8bd3fb07fc310.patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874548</commentid>
    <comment_count>8</comment_count>
      <attachid>460070</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-06-07 11:58:48 -0700</bug_when>
    <thetext>Created attachment 460070
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874572</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-06-07 14:31:57 -0700</bug_when>
    <thetext>Committed r295365 (251373@main): &lt;https://commits.webkit.org/251373@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 460070.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459773</attachid>
            <date>2022-05-25 16:47:17 -0700</date>
            <delta_ts>2022-05-25 16:57:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240931-20220525164716.patch</filename>
            <type>text/plain</type>
            <size>62192</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">RnJvbSAxY2UwNjY2NzFlMGE4ZmJkNzVlYTUyZDQzZjdkZGQ4YTNmYWY2OTMyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4IENocmlzdGVuc2VuIDxhY2hyaXN0ZW5zZW5AYXBwbGUu
Y29tPgpEYXRlOiBXZWQsIDI1IE1heSAyMDIyIDE2OjQzOjA2IC0wNzAwClN1YmplY3Q6IFtQQVRD
SF0gUmVtb3ZlIFdlYkNvb2tpZU1hbmFnZXJQcm94eSwgcmVwbGFjZWQgYnkKIEFQSTo6SFRUUENv
b2tpZVN0b3JlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDA5MzEK
ClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKQWxsIHRoZSBDIEFQSSBpbiBXS0Nvb2tpZU1h
bmFnZXJSZWYgdGhhdCB1c2VkIHRvIHVzZSBpdCBoYXMgYmVlbiBkZXByZWNhdGVkLgpJdCBpcyBu
b3cgYW4gdW5uZWVkZWQgYWJzdHJhY3Rpb24uCgoqIFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CiogU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtl
OgoqIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2Vy
LmNwcDoKKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1l
cyk6CihXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6OmRlbGV0ZUFsbENvb2tpZXMpOgooV2ViS2l0
OjpXZWJDb29raWVNYW5hZ2VyOjpub3RpZnlDb29raWVzRGlkQ2hhbmdlKToKKiBTb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oOgoqIFNvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmlu
OgoqIFNvdXJjZS9XZWJLaXQvU291cmNlcy50eHQ6CiogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHA6CihBUEk6OkhUVFBDb29raWVTdG9yZTo6SFRUUENv
b2tpZVN0b3JlKToKKEFQSTo6SFRUUENvb2tpZVN0b3JlOjp+SFRUUENvb2tpZVN0b3JlKToKKEFQ
STo6SFRUUENvb2tpZVN0b3JlOjpjb29raWVzKToKKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpjb29r
aWVzRm9yVVJMKToKKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpzZXRDb29raWVzKToKKEFQSTo6SFRU
UENvb2tpZVN0b3JlOjpkZWxldGVDb29raWUpOgooQVBJOjpIVFRQQ29va2llU3RvcmU6OmRlbGV0
ZUFsbENvb2tpZXMpOgooQVBJOjpIVFRQQ29va2llU3RvcmU6OmRlbGV0ZUNvb2tpZXNGb3JIb3N0
bmFtZXMpOgooQVBJOjpIVFRQQ29va2llU3RvcmU6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kp
OgooQVBJOjpIVFRQQ29va2llU3RvcmU6OmZsdXNoQ29va2llcyk6CihBUEk6OkhUVFBDb29raWVT
dG9yZTo6cmVnaXN0ZXJPYnNlcnZlcik6CihBUEk6OkhUVFBDb29raWVTdG9yZTo6dW5yZWdpc3Rl
ck9ic2VydmVyKToKKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpuZXR3b3JrUHJvY2Vzc0lmRXhpc3Rz
KToKKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpuZXR3b3JrUHJvY2Vzc0xhdW5jaGluZ0lmTmVjZXNz
YXJ5KToKKEFQSTo6QVBJV2ViQ29va2llTWFuYWdlclByb3h5T2JzZXJ2ZXI6OkFQSVdlYkNvb2tp
ZU1hbmFnZXJQcm94eU9ic2VydmVyKTogRGVsZXRlZC4KKCk6IERlbGV0ZWQuCiogU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5oOgoqIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgoqIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLQ29udGV4dC5jcHA6CiogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2wubW06CiogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJB
dXRvbWF0aW9uU2Vzc2lvbi5jcHA6CihXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjphZGRT
aW5nbGVDb29raWUpOgooV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6ZGVsZXRlQWxsQ29v
a2llcyk6CiogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcDoKKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6TmV0d29ya1Byb2Nlc3NQcm94
eSk6CihXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmNvb2tpZXNEaWRDaGFuZ2UpOgooV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpmbHVzaENvb2tpZXMpOiBEZWxldGVkLgoqIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgoqIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5p
bjoKKiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwOiBS
ZW1vdmVkLgoqIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5o
OiBSZW1vdmVkLgoqIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbjogUmVtb3ZlZC4KKiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5jcHA6CiogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5jcHA6CihXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OmZsdXNoQ29va2llcyk6
IERlbGV0ZWQuCiogU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKLS0tCiAuLi4vV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0ICAgfCAg
IDMgLQogU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlICAgICAgICAgICAgIHwgICAx
IC0KIC4uLi9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwICAgICAgICAgICAgICB8ICAgOSAr
LQogLi4uL05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oIHwgICA0ICst
CiAuLi4vQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluICAgICAgfCAgIDQgKy0K
IFNvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgICAgICAgICAgICAgICAgICAgICB8ICAgMSAtCiAu
Li4vVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3BwICAgICAgfCAxNDIgKysrKysr
Ky0tLS0tLS0KIC4uLi9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuaCB8
ICAxMyArLQogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggICAgIHwg
ICAyIC0KIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAgICB8ICAg
MSAtCiAuLi4vVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tICAgICAgfCAgIDEg
LQogLi4uL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwICAgICAgIHwgIDEwICst
CiAuLi4vVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgfCAgMTQgKy0K
IC4uLi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggICB8ICAgNiArLQog
Li4uL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiAgIHwgICAyICsKIC4u
Li9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcCAgICAgICB8IDE4NCAtLS0tLS0t
LS0tLS0tLS0tLS0KIC4uLi9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5o
ICB8IDEwMyAtLS0tLS0tLS0tCiAuLi4vV2ViQ29va2llTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
ICAgICAgICAgfCAgMjUgLS0tCiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHAgICAgfCAgIDEgLQogLi4uL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwICAg
ICAgICAgIHwgICA2IC0KIC4uLi9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogICB8ICA1OCAtLS0tLS0KIDIxIGZpbGVzIGNoYW5nZWQsIDEwMSBpbnNlcnRpb25zKCspLCA0
ODkgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCiBkZWxldGUgbW9kZSAxMDA2
NDQgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QK
aW5kZXggMjVlMzUyMzM2ZWQ1Li5mOTFhNzU1YTlmYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtNTAyLDkgKzUwMiw2IEBAICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvV2ViQ29ubmVjdGlvbk1lc3Nh
Z2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
L1dlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1dlYkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1dlYkNvb2tpZU1hbmFnZXJN
ZXNzYWdlc1JlcGxpZXMuaAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdC9XZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCi0kKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1dlYkNvb2tpZU1hbmFnZXJQcm94eU1l
c3NhZ2VzLmgKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvV2Vi
Q29va2llTWFuYWdlclByb3h5TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRl
ck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlck1lc3NhZ2VzLmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvV2ViRGV2aWNlT3JpZW50
YXRpb25VcGRhdGVQcm92aWRlck1lc3NhZ2VzUmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKaW5kZXggNDM2MjRkMGM5NzkzLi5hZmNiNWM1M2RlNzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLm1ha2UKQEAgLTE3Myw3ICsxNzMsNiBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlV
SVByb2Nlc3MvQ29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5IFwKIAlVSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSBcCiAJVUlQcm9jZXNzL0NvY29hL1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSBcCi0JVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQ
cm94eSBcCiAJVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlciBcCiAJVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eSBcCiAJVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Np
b24gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dl
YkNvb2tpZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVz
L1dlYkNvb2tpZU1hbmFnZXIuY3BwCmluZGV4IDNiN2ZkMDRmZjUwMy4uZDg4MDM5ZjY5Y2E3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2ll
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dl
YkNvb2tpZU1hbmFnZXIuY3BwCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlICJOZXR3b3Jr
UHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5oIgotI2luY2x1
ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWUuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0Nvb2tpZVN0b3JhZ2UuaD4KQEAgLTYzLDE2ICs2MiwxOCBAQCB2b2lkIFdlYkNvb2tp
ZU1hbmFnZXI6OmdldEhvc3RuYW1lc1dpdGhDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgQ29tcGxldAogICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvcHlUb1ZlY3Rvcihob3N0bmFtZXMp
KTsKIH0KIAotdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpkZWxldGVDb29raWVzRm9ySG9zdG5hbWVz
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGhvc3RuYW1l
cykKK3ZvaWQgV2ViQ29va2llTWFuYWdlcjo6ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lcyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBob3N0bmFtZXMsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAo
YXV0byogc3RvcmFnZVNlc3Npb24gPSBtX3Byb2Nlc3Muc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklE
KSkKICAgICAgICAgc3RvcmFnZVNlc3Npb24tPmRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZXMoaG9z
dG5hbWVzKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQogCi12b2lkIFdlYkNvb2tpZU1h
bmFnZXI6OmRlbGV0ZUFsbENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBX
ZWJDb29raWVNYW5hZ2VyOjpkZWxldGVBbGxDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG1fcHJvY2Vzcy5zdG9yYWdlU2Vzc2lvbihzZXNz
aW9uSUQpKQogICAgICAgICBzdG9yYWdlU2Vzc2lvbi0+ZGVsZXRlQWxsQ29va2llcygpOworICAg
IGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6ZGVsZXRl
Q29va2llKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgQ29va2llJiBjb29raWUsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTEyNCw3ICsx
MjUsNyBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnNldENvb2tpZXMoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBjb25zdCBWZWN0b3I8Q29va2llPgogdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpu
b3RpZnlDb29raWVzRGlkQ2hhbmdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgIG1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpX
ZWJDb29raWVNYW5hZ2VyUHJveHk6OkNvb2tpZXNEaWRDaGFuZ2Uoc2Vzc2lvbklEKSwgMCk7Cisg
ICAgbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkNvb2tpZXNE
aWRDaGFuZ2Uoc2Vzc2lvbklEKSwgMCk7CiB9CiAKIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6c3Rh
cnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5h
Z2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFu
YWdlci5oCmluZGV4IDM1Y2U4YTllY2ZjMi4uMTk0MjhjNzcxOGM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmgK
QEAgLTcyLDggKzcyLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldEhvc3RuYW1lc1dpdGhDb29r
aWVzKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+
JiYpPiYmKTsKIAogICAgIHZvaWQgZGVsZXRlQ29va2llKFBBTDo6U2Vzc2lvbklELCBjb25zdCBX
ZWJDb3JlOjpDb29raWUmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQg
ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVmVjdG9yPFN0
cmluZz4mKTsKLSAgICB2b2lkIGRlbGV0ZUFsbENvb2tpZXMoUEFMOjpTZXNzaW9uSUQpOworICAg
IHZvaWQgZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVmVj
dG9yPFN0cmluZz4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgZGVs
ZXRlQWxsQ29va2llcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKICAgICB2b2lkIGRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZFNpbmNlKFBBTDo6U2Vzc2lvbklE
LCBXYWxsVGltZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAgIHZvaWQgc2V0
Q29va2llKFBBTDo6U2Vzc2lvbklELCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2Vz
LmluCmluZGV4IDQ2ZDk3MDhiZGI4ZS4uMjA4MTE1NGY5MGZhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFu
YWdlci5tZXNzYWdlcy5pbgpAQCAtMjUsOCArMjUsOCBAQAogIAogbWVzc2FnZXMgLT4gV2ViQ29v
a2llTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKICAgICB2b2lkIEdldEhvc3RuYW1lc1dpdGhDb29r
aWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKFZlY3RvcjxTdHJpbmc+IGhvc3RuYW1l
cykKLSAgICB2b2lkIERlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZXMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBWZWN0b3I8U3RyaW5nPiBob3N0bmFtZXMpCi0gICAgdm9pZCBEZWxldGVBbGxDb29r
aWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICB2b2lkIERlbGV0ZUNvb2tpZXNGb3JI
b3N0bmFtZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBWZWN0b3I8U3RyaW5nPiBob3N0bmFt
ZXMpIC0+ICgpCisgICAgdm9pZCBEZWxldGVBbGxDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCkgLT4gKCkKIAogICAgIHZvaWQgU2V0Q29va2llKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llKSAtPiAoKQogICAgIHZvaWQgU2V0Q29v
a2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGNv
b2tpZXMsIFVSTCB1cmwsIFVSTCBtYWluRG9jdW1lbnRVUkwpIC0+ICgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRl
eCA5NDc5YzVkMWE3YmEuLjJiZjdkMWJiYjkzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC00NDEsNyArNDQx
LDYgQEAgVUlQcm9jZXNzL1dlYkNvbnRleHRDb25uZWN0aW9uQ2xpZW50LmNwcAogVUlQcm9jZXNz
L1dlYkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAKIFVJUHJvY2Vzcy9XZWJDb250ZXh0
TWVudUxpc3RlbmVyUHJveHkuY3BwCiBVSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5jcHAK
LVVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCiBVSVByb2Nlc3MvV2ViRGF0YUxp
c3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmNwcAogVUlQcm9jZXNzL1dlYkRhdGVUaW1lUGlja2VyLmNw
cAogVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3BwCmluZGV4IDMzMTFlZWRiYjQ5
ZC4uM2NlNzBhNzAzYjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJSFRUUENvb2tpZVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJSFRUUENvb2tpZVN0b3JlLmNwcApAQCAtMjYsMTEgKzI2LDggQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJBUElIVFRQQ29va2llU3RvcmUuaCIKIAotI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCi0jaW5jbHVkZSAiRGVmYXVsdFdlYkJyb3dzZXJDaGVja3MuaCIKLSNlbmRpZgot
Ci0jaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAiTmV0d29ya1By
b2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5o
IgogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgiCkBAIC0zOSwyMCArMzYs
MjMgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgogCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyNpbmNsdWRlICJEZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5oIgorI2VuZGlmCisK
IHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIG5hbWVzcGFjZSBBUEkgewogCiBIVFRQQ29va2ll
U3RvcmU6OkhUVFBDb29raWVTdG9yZShXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmUmIHdlYnNpdGVE
YXRhU3RvcmUpCi0gICAgOiBtX293bmluZ0RhdGFTdG9yZSh3ZWJzaXRlRGF0YVN0b3JlKQorICAg
IDogbV9zZXNzaW9uSUQod2Vic2l0ZURhdGFTdG9yZS5zZXNzaW9uSUQoKSkKKyAgICAsIG1fb3du
aW5nRGF0YVN0b3JlKHdlYnNpdGVEYXRhU3RvcmUpCiB7CiB9CiAKIEhUVFBDb29raWVTdG9yZTo6
fkhUVFBDb29raWVTdG9yZSgpCiB7CiAgICAgQVNTRVJUKG1fb2JzZXJ2ZXJzLmNvbXB1dGVzRW1w
dHkoKSk7Ci0gICAgQVNTRVJUKCFtX29ic2VydmVkQ29va2llTWFuYWdlclByb3h5KTsKLSAgICBB
U1NFUlQoIW1fY29va2llTWFuYWdlclByb3h5T2JzZXJ2ZXIpOwogfQogCiB2b2lkIEhUVFBDb29r
aWVTdG9yZTo6ZmlsdGVyQXBwQm91bmRDb29raWVzKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYg
Y29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYm
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTc4LDExMSArNzgsOTMgQEAgdm9pZCBIVFRQQ29v
a2llU3RvcmU6OmZpbHRlckFwcEJvdW5kQ29va2llcyhWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYm
IGNvb2tpZXMsIEMKIAogdm9pZCBIVFRQQ29va2llU3RvcmU6OmNvb2tpZXMoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewotICAgIGlmICghbV9vd25pbmdEYXRhU3RvcmUpCi0gICAgICAgIHJldHVybiBj
b21wbGV0aW9uSGFuZGxlcih7IH0pOwotICAgIGF1dG8mIGNvb2tpZU1hbmFnZXIgPSBtX293bmlu
Z0RhdGFTdG9yZS0+bmV0d29ya1Byb2Nlc3MoKS5jb29raWVNYW5hZ2VyKCk7Ci0gICAgY29va2ll
TWFuYWdlci5nZXRBbGxDb29raWVzKG1fb3duaW5nRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSwgW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJiBjb29r
aWVzKSBtdXRhYmxlIHsKLSAgICAgICAgZmlsdGVyQXBwQm91bmRDb29raWVzKFdURk1vdmUoY29v
a2llcyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICB9KTsKKyAgICBpZiAoYXV0
byogbmV0d29ya1Byb2Nlc3MgPSBuZXR3b3JrUHJvY2Vzc0lmRXhpc3RzKCkpIHsKKyAgICAgICAg
bmV0d29ya1Byb2Nlc3MtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQ29va2llTWFu
YWdlcjo6R2V0QWxsQ29va2llcyhtX3Nlc3Npb25JRCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
UmVmIHsgKnRoaXMgfSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0gKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYgY29va2llcykgbXV0YWJsZSB7CisgICAg
ICAgICAgICBmaWx0ZXJBcHBCb3VuZENvb2tpZXMoV1RGTW92ZShjb29raWVzKSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOworICAgICAgICB9KTsKKyAgICB9IGVsc2UKKyAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoeyB9KTsKIH0KIAogdm9pZCBIVFRQQ29va2llU3RvcmU6OmNvb2tpZXNG
b3JVUkwoV1RGOjpVUkwmJiB1cmwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNv
cmU6OkNvb2tpZT4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgaWYgKCFtX293bmlu
Z0RhdGFTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7Ci0gICAg
YXV0byYgY29va2llTWFuYWdlciA9IG1fb3duaW5nRGF0YVN0b3JlLT5uZXR3b3JrUHJvY2Vzcygp
LmNvb2tpZU1hbmFnZXIoKTsKLSAgICBjb29raWVNYW5hZ2VyLmdldENvb2tpZXMobV9vd25pbmdE
YXRhU3RvcmUtPnNlc3Npb25JRCgpLCB1cmwsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsg
KnRoaXMgfSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0g
KFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYgY29va2llcykgbXV0YWJsZSB7Ci0gICAgICAgIGZp
bHRlckFwcEJvdW5kQ29va2llcyhXVEZNb3ZlKGNvb2tpZXMpLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7Ci0gICAgfSk7CisgICAgaWYgKGF1dG8qIG5ldHdvcmtQcm9jZXNzID0gbmV0d29y
a1Byb2Nlc3NJZkV4aXN0cygpKSB7CisgICAgICAgIG5ldHdvcmtQcm9jZXNzLT5zZW5kV2l0aEFz
eW5jUmVwbHkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OkdldENvb2tpZXMobV9zZXNzaW9u
SUQsIHVybCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKFZlY3RvcjxXZWJDb3JlOjpD
b29raWU+JiYgY29va2llcykgbXV0YWJsZSB7CisgICAgICAgICAgICBmaWx0ZXJBcHBCb3VuZENv
b2tpZXMoV1RGTW92ZShjb29raWVzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAg
ICAgICB9KTsKKyAgICB9IGVsc2UKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKIH0K
IAogdm9pZCBIVFRQQ29va2llU3RvcmU6OnNldENvb2tpZXMoVmVjdG9yPFdlYkNvcmU6OkNvb2tp
ZT4mJiBjb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgZmlsdGVyQXBwQm91bmRDb29raWVzKFdURk1vdmUoY29va2llcyksIFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGF1dG8mJiBhcHBCb3VuZENvb2tpZXMpIG11dGFibGUg
ewotICAgICAgICBpZiAoIW1fb3duaW5nRGF0YVN0b3JlKQotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICBhdXRvJiBjb29raWVNYW5hZ2VyID0gbV9vd25pbmdEYXRhU3RvcmUtPm5ldHdvcmtQ
cm9jZXNzKCkuY29va2llTWFuYWdlcigpOwotICAgICAgICBjb29raWVNYW5hZ2VyLnNldENvb2tp
ZXMobV9vd25pbmdEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCBhcHBCb3VuZENvb2tpZXMsIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgaWYgKGF1dG8qIG5ldHdvcmtQcm9jZXNz
ID0gbmV0d29ya1Byb2Nlc3NMYXVuY2hpbmdJZk5lY2Vzc2FyeSgpKQorICAgICAgICAgICAgbmV0
d29ya1Byb2Nlc3MtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdl
cjo6U2V0Q29va2llKG1fc2Vzc2lvbklELCBhcHBCb3VuZENvb2tpZXMpLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7CiAgICAgfSk7CiB9CiAKIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpkZWxldGVDb29raWUo
Y29uc3QgV2ViQ29yZTo6Q29va2llJiBjb29raWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBpZiAoIW1fb3duaW5nRGF0YVN0b3JlKQotICAg
ICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICBhdXRvJiBjb29raWVNYW5hZ2Vy
ID0gbV9vd25pbmdEYXRhU3RvcmUtPm5ldHdvcmtQcm9jZXNzKCkuY29va2llTWFuYWdlcigpOwot
ICAgIGNvb2tpZU1hbmFnZXIuZGVsZXRlQ29va2llKG1fb3duaW5nRGF0YVN0b3JlLT5zZXNzaW9u
SUQoKSwgY29va2llLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgaWYgKGF1dG8q
IG5ldHdvcmtQcm9jZXNzID0gbmV0d29ya1Byb2Nlc3NJZkV4aXN0cygpKQorICAgICAgICBuZXR3
b3JrUHJvY2Vzcy0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2Vy
OjpEZWxldGVDb29raWUobV9zZXNzaW9uSUQsIGNvb2tpZSksIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKKyAgICBlbHNlCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKIHZv
aWQgSFRUUENvb2tpZVN0b3JlOjpkZWxldGVBbGxDb29raWVzKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBpZiAoIW1fb3duaW5nRGF0YVN0b3Jl
KQotICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICBhdXRvJiBjb29raWVN
YW5hZ2VyID0gbV9vd25pbmdEYXRhU3RvcmUtPm5ldHdvcmtQcm9jZXNzKCkuY29va2llTWFuYWdl
cigpOwotICAgIGNvb2tpZU1hbmFnZXIuZGVsZXRlQWxsQ29va2llcyhtX293bmluZ0RhdGFTdG9y
ZS0+c2Vzc2lvbklEKCkpOwotICAgIC8vIEZJWE1FOiBUaGUgQ29tcGxldGlvbkhhbmRsZXIgc2hv
dWxkIGJlIHBhc3NlZCB0byBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUFsbENvb2tpZXMu
Ci0gICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKKyAgICBpZiAoYXV0byogbmV0d29ya1Byb2Nlc3MgPSBuZXR3b3JrUHJvY2Vzc0lmRXhpc3Rz
KCkpCisgICAgICAgIG5ldHdvcmtQcm9jZXNzLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
OldlYkNvb2tpZU1hbmFnZXI6OkRlbGV0ZUFsbENvb2tpZXMobV9zZXNzaW9uSUQpLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgZWxzZQorICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cigpOworfQorCit2b2lkIEhUVFBDb29raWVTdG9yZTo6ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1l
cyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiBob3N0bmFtZXMsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoYXV0byogbmV0d29ya1By
b2Nlc3MgPSBuZXR3b3JrUHJvY2Vzc0lmRXhpc3RzKCkpCisgICAgICAgIG5ldHdvcmtQcm9jZXNz
LT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OkRlbGV0ZUNv
b2tpZXNGb3JIb3N0bmFtZXMobV9zZXNzaW9uSUQsIGhvc3RuYW1lcyksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKKyAgICBlbHNlCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9
CiAKIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYkNv
cmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgaWYgKCFtX293bmluZ0RhdGFTdG9yZSkK
LSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgYXV0byYgY29va2llTWFu
YWdlciA9IG1fb3duaW5nRGF0YVN0b3JlLT5uZXR3b3JrUHJvY2VzcygpLmNvb2tpZU1hbmFnZXIo
KTsKLSAgICBjb29raWVNYW5hZ2VyLnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kobV9vd25pbmdE
YXRhU3RvcmUtPnNlc3Npb25JRCgpLCBwb2xpY3ksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKKyAgICBpZiAoYXV0byogbmV0d29ya1Byb2Nlc3MgPSBuZXR3b3JrUHJvY2Vzc0xhdW5jaGlu
Z0lmTmVjZXNzYXJ5KCkpCisgICAgICAgIG5ldHdvcmtQcm9jZXNzLT5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OlNldEhUVFBDb29raWVBY2NlcHRQb2xpY3ko
cG9saWN5KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIGVsc2UKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAogdm9pZCBIVFRQQ29va2llU3RvcmU6OmZsdXNoQ29v
a2llcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0g
ICAgaWYgKCFtX293bmluZ0RhdGFTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKCk7Ci0gICAgbV9vd25pbmdEYXRhU3RvcmUtPmZsdXNoQ29va2llcyhXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CisgICAgaWYgKGF1dG8qIG5ldHdvcmtQcm9jZXNzID0gbmV0d29ya1By
b2Nlc3NJZkV4aXN0cygpKQorICAgICAgICBuZXR3b3JrUHJvY2Vzcy0+c2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6Rmx1c2hDb29raWVzKG1fc2Vzc2lvbklEKSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIGVsc2UKKyAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoKTsKIH0KIAotY2xhc3MgQVBJV2ViQ29va2llTWFuYWdlclByb3h5T2JzZXJ2ZXIg
OiBwdWJsaWMgV2ViQ29va2llTWFuYWdlclByb3h5OjpPYnNlcnZlciB7Ci0gICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgQVBJV2ViQ29va2llTWFuYWdl
clByb3h5T2JzZXJ2ZXIoQVBJOjpIVFRQQ29va2llU3RvcmUmIGNvb2tpZVN0b3JlKQotICAgICAg
ICA6IG1fY29va2llU3RvcmUoY29va2llU3RvcmUpCi0gICAgewotICAgIH0KLQotcHJpdmF0ZToK
LSAgICB2b2lkIGNvb2tpZXNEaWRDaGFuZ2UoKSBmaW5hbAotICAgIHsKLSAgICAgICAgbV9jb29r
aWVTdG9yZS5jb29raWVzRGlkQ2hhbmdlKCk7Ci0gICAgfQotCi0gICAgQVBJOjpIVFRQQ29va2ll
U3RvcmUmIG1fY29va2llU3RvcmU7Ci19OwotCiB2b2lkIEhUVFBDb29raWVTdG9yZTo6cmVnaXN0
ZXJPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7CisgICAgYm9vbCB3YXNPYnNlcnZpbmcg
PSAhbV9vYnNlcnZlcnMuY29tcHV0ZXNFbXB0eSgpOwogICAgIG1fb2JzZXJ2ZXJzLmFkZChvYnNl
cnZlcik7Ci0KLSAgICBpZiAobV9jb29raWVNYW5hZ2VyUHJveHlPYnNlcnZlciB8fCAhbV9vd25p
bmdEYXRhU3RvcmUpCisgICAgaWYgKHdhc09ic2VydmluZykKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgQVNTRVJUKCFtX29ic2VydmVkQ29va2llTWFuYWdlclByb3h5KTsKLQotICAgIG1fY29va2ll
TWFuYWdlclByb3h5T2JzZXJ2ZXIgPSBtYWtlVW5pcXVlPEFQSVdlYkNvb2tpZU1hbmFnZXJQcm94
eU9ic2VydmVyPigqdGhpcyk7Ci0KLSAgICBtX29ic2VydmVkQ29va2llTWFuYWdlclByb3h5ID0g
bV9vd25pbmdEYXRhU3RvcmUtPm5ldHdvcmtQcm9jZXNzKCkuY29va2llTWFuYWdlcigpOwotICAg
IG1fb2JzZXJ2ZWRDb29raWVNYW5hZ2VyUHJveHktPnJlZ2lzdGVyT2JzZXJ2ZXIobV9vd25pbmdE
YXRhU3RvcmUtPnNlc3Npb25JRCgpLCAqbV9jb29raWVNYW5hZ2VyUHJveHlPYnNlcnZlcik7Cisg
ICAgaWYgKGF1dG8qIG5ldHdvcmtQcm9jZXNzID0gbmV0d29ya1Byb2Nlc3NMYXVuY2hpbmdJZk5l
Y2Vzc2FyeSgpKQorICAgICAgICBuZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViQ29v
a2llTWFuYWdlcjo6U3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKG1fc2Vzc2lvbklEKSwgMCk7
CiB9CiAKIHZvaWQgSFRUUENvb2tpZVN0b3JlOjp1bnJlZ2lzdGVyT2JzZXJ2ZXIoT2JzZXJ2ZXIm
IG9ic2VydmVyKQogewogICAgIG1fb2JzZXJ2ZXJzLnJlbW92ZShvYnNlcnZlcik7Ci0KICAgICBp
ZiAoIW1fb2JzZXJ2ZXJzLmNvbXB1dGVzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
aWYgKG1fb2JzZXJ2ZWRDb29raWVNYW5hZ2VyUHJveHkgJiYgbV9vd25pbmdEYXRhU3RvcmUpCi0g
ICAgICAgIG1fb2JzZXJ2ZWRDb29raWVNYW5hZ2VyUHJveHktPnVucmVnaXN0ZXJPYnNlcnZlciht
X293bmluZ0RhdGFTdG9yZS0+c2Vzc2lvbklEKCksICptX2Nvb2tpZU1hbmFnZXJQcm94eU9ic2Vy
dmVyKTsKLQotICAgIG1fb2JzZXJ2ZWRDb29raWVNYW5hZ2VyUHJveHkgPSBudWxscHRyOwotICAg
IG1fY29va2llTWFuYWdlclByb3h5T2JzZXJ2ZXIgPSBudWxscHRyOworICAgIGlmIChhdXRvKiBu
ZXR3b3JrUHJvY2VzcyA9IG5ldHdvcmtQcm9jZXNzSWZFeGlzdHMoKSkKKyAgICAgICAgbmV0d29y
a1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OlN0b3BPYnNlcnZpbmdD
b29raWVDaGFuZ2VzKG1fc2Vzc2lvbklEKSwgMCk7CiB9CiAKIHZvaWQgSFRUUENvb2tpZVN0b3Jl
Ojpjb29raWVzRGlkQ2hhbmdlKCkKQEAgLTE5MCw1ICsxNzIsMTkgQEAgdm9pZCBIVFRQQ29va2ll
U3RvcmU6OmNvb2tpZXNEaWRDaGFuZ2UoKQogICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX29i
c2VydmVycykKICAgICAgICAgb2JzZXJ2ZXIuY29va2llc0RpZENoYW5nZSgqdGhpcyk7CiB9Ci0g
ICAgCisKK1dlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eSogSFRUUENvb2tpZVN0b3JlOjpuZXR3
b3JrUHJvY2Vzc0lmRXhpc3RzKCkKK3sKKyAgICBpZiAoIW1fb3duaW5nRGF0YVN0b3JlKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gbV9vd25pbmdEYXRhU3RvcmUtPm5ldHdv
cmtQcm9jZXNzSWZFeGlzdHMoKTsKK30KKworV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5KiBI
VFRQQ29va2llU3RvcmU6Om5ldHdvcmtQcm9jZXNzTGF1bmNoaW5nSWZOZWNlc3NhcnkoKQorewor
ICAgIGlmICghbV9vd25pbmdEYXRhU3RvcmUpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IHJldHVybiAmbV9vd25pbmdEYXRhU3RvcmUtPm5ldHdvcmtQcm9jZXNzKCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SUhUVFBDb29raWVTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhUVFBD
b29raWVTdG9yZS5oCmluZGV4IGRjNDQxMWZlNmRiYi4uMzc0MWVkYmE2ZDkyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5oCkBAIC0yNyw2
ICsyNyw3IEBACiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Nv
b2tpZS5oPgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxl
dGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9X
ZWFrSGFzaFNldC5oPgpAQCAtMzgsMTQgKzM5LDEyIEBAIGVudW0gY2xhc3MgSFRUUENvb2tpZUFj
Y2VwdFBvbGljeSA6IHVpbnQ4X3Q7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotY2xhc3MgV2Vi
Q29va2llTWFuYWdlclByb3h5OworY2xhc3MgTmV0d29ya1Byb2Nlc3NQcm94eTsKIGNsYXNzIFdl
YnNpdGVEYXRhU3RvcmU7CiB9CiAKIG5hbWVzcGFjZSBBUEkgewogCi1jbGFzcyBBUElXZWJDb29r
aWVNYW5hZ2VyUHJveHlPYnNlcnZlcjsKLQogY2xhc3MgSFRUUENvb2tpZVN0b3JlIGZpbmFsIDog
cHVibGljIE9iamVjdEltcGw8T2JqZWN0OjpUeXBlOjpIVFRQQ29va2llU3RvcmU+IHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUmVmPEhUVFBDb29raWVTdG9yZT4gY3JlYXRlKFdlYktpdDo6V2Vic2l0
ZURhdGFTdG9yZSYgd2Vic2l0ZURhdGFTdG9yZSkKQEAgLTU5LDYgKzU4LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgY29va2llc0ZvclVSTChXVEY6OlVSTCYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYpPiYmKTsKICAgICB2b2lkIHNldENvb2tpZXMoVmVj
dG9yPFdlYkNvcmU6OkNvb2tpZT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAg
ICB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBXZWJDb3JlOjpDb29raWUmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lcyhjb25z
dCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAg
ICAKICAgICB2b2lkIGRlbGV0ZUFsbENvb2tpZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKICAgICB2b2lkIHNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6SFRUUENvb2tp
ZUFjY2VwdFBvbGljeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTc5LDExICs3
OSwxMiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgSFRUUENvb2tpZVN0b3JlKFdlYktpdDo6
V2Vic2l0ZURhdGFTdG9yZSYpOwotICAgIAorICAgIFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94
eSogbmV0d29ya1Byb2Nlc3NJZkV4aXN0cygpOworICAgIFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQ
cm94eSogbmV0d29ya1Byb2Nlc3NMYXVuY2hpbmdJZk5lY2Vzc2FyeSgpOworCisgICAgUEFMOjpT
ZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgV2Vha1B0cjxXZWJLaXQ6OldlYnNpdGVEYXRhU3Rv
cmU+IG1fb3duaW5nRGF0YVN0b3JlOwogICAgIFdlYWtIYXNoU2V0PE9ic2VydmVyPiBtX29ic2Vy
dmVyczsKLSAgICBXZWFrUHRyPFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5PiBtX29ic2Vy
dmVkQ29va2llTWFuYWdlclByb3h5OwotICAgIHN0ZDo6dW5pcXVlX3B0cjxBUElXZWJDb29raWVN
YW5hZ2VyUHJveHlPYnNlcnZlcj4gbV9jb29raWVNYW5hZ2VyUHJveHlPYnNlcnZlcjsKIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggY2UyZjAw
NjcwZTZhLi5lZDE5YTNmYWUxMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
QVBJQ2FzdC5oCkBAIC04Nyw3ICs4Nyw2IEBAIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdDsKIGNs
YXNzIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07CiBjbGFzcyBXZWJDb2xvclBpY2tlclJlc3VsdExp
c3RlbmVyUHJveHk7CiBjbGFzcyBXZWJDb250ZXh0TWVudUxpc3RlbmVyUHJveHk7Ci1jbGFzcyBX
ZWJDb29raWVNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJDcmVkZW50aWFsOwogY2xhc3MgV2ViRm9y
bVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5OwogY2xhc3MgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclBy
b3h5OwpAQCAtMTIxLDcgKzEyMCw2IEBAIFdLX0FERF9BUElfTUFQUElORyhXS0NvbG9yUGlja2Vy
UmVzdWx0TGlzdGVuZXJSZWYsIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQCiBXS19BRERf
QVBJX01BUFBJTkcoV0tDb250ZXh0UmVmLCBXZWJQcm9jZXNzUG9vbCkKIFdLX0FERF9BUElfTUFQ
UElORyhXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLCBBUEk6OlByb2Nlc3NQb29sQ29uZmlndXJh
dGlvbikKIFdLX0FERF9BUElfTUFQUElORyhXS0NvbnRleHRNZW51TGlzdGVuZXJSZWYsIFdlYkNv
bnRleHRNZW51TGlzdGVuZXJQcm94eSkKLVdLX0FERF9BUElfTUFQUElORyhXS0Nvb2tpZU1hbmFn
ZXJSZWYsIFdlYkNvb2tpZU1hbmFnZXJQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS0NyZWRl
bnRpYWxSZWYsIFdlYkNyZWRlbnRpYWwpCiBXS19BRERfQVBJX01BUFBJTkcoV0tEb3dubG9hZFJl
ZiwgRG93bmxvYWRQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS0Zvcm1TdWJtaXNzaW9uTGlz
dGVuZXJSZWYsIFdlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCmluZGV4IGMyOWFmODE3ZmQ4Yi4uZTc2ZmJl
NzQyMTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAK
QEAgLTUxLDcgKzUxLDYgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogLy8g
U3VwcGxlbWVudHMKLSNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRl
ICJXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eS5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NQb29sLm1tCmluZGV4IGYzZjgzY2M1NjllYy4uNTg5MjI0ZjQyNDkyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9v
bC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9v
bC5tbQpAQCAtNDAsNyArNDAsNiBAQAogI2ltcG9ydCAiV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJu
YWwuaCIKICNpbXBvcnQgIldlYkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNpbXBvcnQgIldlYkNlcnRp
ZmljYXRlSW5mby5oIgotI2ltcG9ydCAiV2ViQ29va2llTWFuYWdlclByb3h5LmgiCiAjaW1wb3J0
ICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NDYWNo
ZS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3Bw
CmluZGV4IDQwMWQwMTEzNDFkMC4uNDA0NDM5MGRlMmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNw
cApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQVBJQXJyYXkuaCIKICNpbmNsdWRlICJB
UElBdXRvbWF0aW9uU2Vzc2lvbkNsaWVudC5oIgorI2luY2x1ZGUgIkFQSUhUVFBDb29raWVTdG9y
ZS5oIgogI2luY2x1ZGUgIkFQSU5hdmlnYXRpb24uaCIKICNpbmNsdWRlICJBUElPcGVuUGFuZWxQ
YXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiQXV0b21hdGlvblByb3RvY29sT2JqZWN0cy5oIgpAQCAt
MzYsNyArMzcsNiBAQAogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmgiCiAj
aW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFn
ZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaCIKICNpbmNs
dWRlICJXZWJJbnNwZWN0b3JVSVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViT3BlblBhbmVsUmVzdWx0
TGlzdGVuZXJQcm94eS5oIgpAQCAtMTQ3MSw4ICsxNDcxLDggQEAgdm9pZCBXZWJBdXRvbWF0aW9u
U2Vzc2lvbjo6YWRkU2luZ2xlQ29va2llKGNvbnN0IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb24KIAogICAgIGNvb2tpZS5zYW1lU2l0ZSA9IHRvV2ViQ29yZVNhbWVTaXRlUG9saWN5KCpw
YXJzZWRTYW1lU2l0ZSk7CiAKLSAgICBXZWJDb29raWVNYW5hZ2VyUHJveHkmIGNvb2tpZU1hbmFn
ZXIgPSBwYWdlLT53ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5jb29raWVNYW5h
Z2VyKCk7Ci0gICAgY29va2llTWFuYWdlci5zZXRDb29raWVzKHBhZ2UtPndlYnNpdGVEYXRhU3Rv
cmUoKS5zZXNzaW9uSUQoKSwgeyBjb29raWUgfSwgW2NhbGxiYWNrXSgpIHsKKyAgICBhdXRvJiBj
b29raWVTdG9yZSA9IHBhZ2UtPndlYnNpdGVEYXRhU3RvcmUoKS5jb29raWVTdG9yZSgpOworICAg
IGNvb2tpZVN0b3JlLnNldENvb2tpZXMoeyBjb29raWUgfSwgW2NhbGxiYWNrXSgpIHsKICAgICAg
ICAgY2FsbGJhY2stPnNlbmRTdWNjZXNzKCk7CiAgICAgfSk7CiB9CkBAIC0xNDg4LDggKzE0ODgs
OCBAQCBJbnNwZWN0b3I6OlByb3RvY29sOjpFcnJvclN0cmluZ09yPHZvaWQ+IFdlYkF1dG9tYXRp
b25TZXNzaW9uOjpkZWxldGVBbGxDb29raWVzKAogCiAgICAgU3RyaW5nIGhvc3QgPSBhY3RpdmVV
UkwuaG9zdCgpLnRvU3RyaW5nKCk7CiAKLSAgICBXZWJDb29raWVNYW5hZ2VyUHJveHkmIGNvb2tp
ZU1hbmFnZXIgPSBwYWdlLT53ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5jb29r
aWVNYW5hZ2VyKCk7Ci0gICAgY29va2llTWFuYWdlci5kZWxldGVDb29raWVzRm9ySG9zdG5hbWVz
KHBhZ2UtPndlYnNpdGVEYXRhU3RvcmUoKS5zZXNzaW9uSUQoKSwgeyBob3N0LCBkb21haW5CeUFk
ZGluZ0RvdFByZWZpeElmTmVlZGVkKGhvc3QpIH0pOworICAgIGF1dG8mIGNvb2tpZVN0b3JlID0g
cGFnZS0+d2Vic2l0ZURhdGFTdG9yZSgpLmNvb2tpZVN0b3JlKCk7CisgICAgY29va2llU3RvcmUu
ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lcyh7IGhvc3QsIGRvbWFpbkJ5QWRkaW5nRG90UHJlZml4
SWZOZWVkZWQoaG9zdCkgfSwgW10geyB9KTsKIAogICAgIHJldHVybiB7IH07CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmNwcAppbmRleCBlODRmYWVjYTEwZDUuLmFjMzhmODY3YTgyNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBA
IC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQVBJQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50
LmgiCiAjaW5jbHVkZSAiQVBJRGF0YVRhc2suaCIKICNpbmNsdWRlICJBUElEYXRhVGFza0NsaWVu
dC5oIgorI2luY2x1ZGUgIkFQSUhUVFBDb29raWVTdG9yZS5oIgogI2luY2x1ZGUgIkFQSU5hdmln
YXRpb24uaCIKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmgiCiAjaW5j
bHVkZSAiQXV0aGVudGljYXRpb25NYW5hZ2VyLmgiCkBAIC00OSw3ICs1MCw2IEBACiAjaW5jbHVk
ZSAiU2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFjY2Vz
c1N0YXR1cy5oIgogI2luY2x1ZGUgIldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0LmgiCi0jaW5j
bHVkZSAiV2ViQ29va2llTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUGFnZU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
V2ViUGFnZVByb3h5LmgiCkBAIC0yMzksNyArMjM5LDYgQEAgTmV0d29ya1Byb2Nlc3NQcm94eTo6
TmV0d29ya1Byb2Nlc3NQcm94eSgpCiAgICAgLCBtX2N1c3RvbVByb3RvY29sTWFuYWdlckNsaWVu
dChtYWtlVW5pcXVlUmVmPEFQSTo6Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50PigpKQogI2Vu
ZGlmCiAgICAgLCBtX3Rocm90dGxlcigqdGhpcywgV2ViUHJvY2Vzc1Bvb2w6OmFueVByb2Nlc3NQ
b29sTmVlZHNVSUJhY2tncm91bmRBc3NlcnRpb24oKSkKLSAgICAsIG1fY29va2llTWFuYWdlciht
YWtlVW5pcXVlUmVmPFdlYkNvb2tpZU1hbmFnZXJQcm94eT4oKnRoaXMpKQogewogICAgIFJFTEVB
U0VfTE9HKFByb2Nlc3MsICIlcCAtIE5ldHdvcmtQcm9jZXNzUHJveHk6Ok5ldHdvcmtQcm9jZXNz
UHJveHkiLCB0aGlzKTsKIApAQCAtMTM4NywxMSArMTM4Niw2IEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6c2VuZFByb2Nlc3NEaWRSZXN1bWUoUmVzdW1lUmVhc29uIHJlYXNvbikKICAgICAg
ICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlByb2Nlc3NEaWRSZXN1bWUocmVhc29u
ID09IFJlc3VtZVJlYXNvbjo6Rm9yZWdyb3VuZEFjdGl2aXR5KSwgMCk7CiB9CiAKLXZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6Zmx1c2hDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIHNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkZsdXNoQ29va2llcyhz
ZXNzaW9uSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci19Ci0KIHZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6YWRkU2Vzc2lvbihXZWJzaXRlRGF0YVN0b3JlJiBzdG9yZSwgU2VuZFBh
cmFtZXRlcnNUb05ldHdvcmtQcm9jZXNzIHNlbmRQYXJhbWV0ZXJzVG9OZXR3b3JrUHJvY2VzcykK
IHsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fd2Vic2l0ZURhdGFTdG9yZXMuYWRkKHN0b3JlKTsK
QEAgLTE4MjcsNiArMTgyMSwxMiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmFwcGxpY2F0
aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpCiAgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6OkFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpLCAwKTsKIH0KIAordm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5Ojpjb29raWVzRGlkQ2hhbmdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKK3sKKyAgICBpZiAoYXV0byogd2Vic2l0ZURhdGFTdG9yZSA9IHdlYnNpdGVEYXRhU3RvcmVG
cm9tU2Vzc2lvbklEKHNlc3Npb25JRCkpCisgICAgICAgIHdlYnNpdGVEYXRhU3RvcmUtPmNvb2tp
ZVN0b3JlKCkuY29va2llc0RpZENoYW5nZSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
IAogI3VuZGVmIE1FU1NBR0VfQ0hFQ0sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggYTIyOGU0YzJhNDI4Li5hY2E4
M2EzZDcxNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC04Nyw3ICs4Nyw2IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBjbGFzcyBEb3dubG9hZFByb3h5OwogY2xhc3MgRG93bmxvYWRQcm94eU1hcDsKLWNsYXNz
IFdlYkNvb2tpZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIGNsYXNzIFdlYlVz
ZXJDb250ZW50Q29udHJvbGxlclByb3h5OwogCkBAIC0yNzQsOCArMjczLDYgQEAgcHVibGljOgog
ICAgIHZvaWQgdXBkYXRlQnVuZGxlSWRlbnRpZmllcihjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgY2xlYXJCdW5kbGVJZGVudGlmaWVyKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKLSAgICBXZWJDb29raWVNYW5hZ2VyUHJveHkmIGNv
b2tpZU1hbmFnZXIoKSB7IHJldHVybiBtX2Nvb2tpZU1hbmFnZXIuZ2V0KCk7IH0KLQogICAgIEFQ
STo6Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50JiBjdXN0b21Qcm90b2NvbE1hbmFnZXJDbGll
bnQoKSB7IHJldHVybiBtX2N1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudC5nZXQoKTsgfQogCiAj
aWYgUExBVEZPUk0oQ09DT0EpCkBAIC0zMDYsNiArMzAzLDggQEAgcHVibGljOgogCiAgICAgdm9p
ZCBuYXZpZ2F0ZVNlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgVVJMJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
Pik+JiYpOwogCisgICAgdm9pZCBjb29raWVzRGlkQ2hhbmdlKFBBTDo6U2Vzc2lvbklEKTsKKwog
cHJpdmF0ZToKICAgICBleHBsaWNpdCBOZXR3b3JrUHJvY2Vzc1Byb3h5KCk7CiAKQEAgLTQyMiw3
ICs0MjEsNiBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBXZWFrSGFzaFNldDxXZWJzaXRlRGF0
YVN0b3JlPiBtX3dlYnNpdGVEYXRhU3RvcmVzOwotICAgIFVuaXF1ZVJlZjxXZWJDb29raWVNYW5h
Z2VyUHJveHk+IG1fY29va2llTWFuYWdlcjsKICAgICBIYXNoTWFwPERhdGFUYXNrSWRlbnRpZmll
ciwgUmVmPEFQSTo6RGF0YVRhc2s+PiBtX2RhdGFUYXNrczsKIAogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMDIxZmIxYTUzMTQ0Li45
NzEzYzE2MThiNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTk0LDYgKzk0
LDggQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAK
ICAgICBPcGVuV2luZG93RnJvbVNlcnZpY2VXb3JrZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBTdHJpbmcgdXJsU3RyaW5nLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHNl
cnZpY2VXb3JrZXJPcmlnaW4pIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyPiBuZXdQYWdlKQogICAgIE5hdmlnYXRlU2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciBkb2N1bWVudElkZW50aWZpZXIsIFVSTCB1cmwpIC0+IChzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlKQorCisgICAgQ29va2llc0RpZENo
YW5nZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBhNzE5NDExYWJlNTguLjAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsMTg0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiV2ViQ29va2llTWFuYWdlclByb3h5LmgiCi0KLSNpbmNsdWRlICJBUElBcnJheS5o
IgotI2luY2x1ZGUgIkFQSVNlY3VyaXR5T3JpZ2luLmgiCi0jaW5jbHVkZSAiTmV0d29ya1Byb2Nl
c3NNZXNzYWdlcy5oIgotI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHkuaCIKLSNpbmNsdWRl
ICJXZWJDb29raWVNYW5hZ2VyTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCi0jaW5jbHVkZSA8
V2ViQ29yZS9Db29raWUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5o
PgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1XZWJD
b29raWVNYW5hZ2VyUHJveHk6OldlYkNvb2tpZU1hbmFnZXJQcm94eShOZXR3b3JrUHJvY2Vzc1By
b3h5JiBuZXR3b3JrUHJvY2VzcykKLSAgICA6IG1fbmV0d29ya1Byb2Nlc3MobmV0d29ya1Byb2Nl
c3MpCi17Ci0gICAgbmV0d29ya1Byb2Nlc3MuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpX
ZWJDb29raWVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMpOwotfQot
Ci1XZWJDb29raWVNYW5hZ2VyUHJveHk6On5XZWJDb29raWVNYW5hZ2VyUHJveHkoKQotewotICAg
IGlmIChtX25ldHdvcmtQcm9jZXNzKQotICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5yZW1vdmVN
ZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpKTsKLSAgICBBU1NFUlQobV9jb29raWVPYnNlcnZlcnMuaXNFbXB0eSgpKTsK
LX0KLQotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldEhvc3RuYW1lc1dpdGhDb29raWVz
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8
U3RyaW5nPiYmKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQotewotICAgIGlmIChtX25ldHdvcmtQcm9j
ZXNzKQotICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYkNvb2tpZU1hbmFnZXI6OkdldEhvc3RuYW1lc1dpdGhDb29raWVzKHNlc3Npb25JRCks
IFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwotICAgIGVsc2UKLSAgICAgICAgY2FsbGJhY2tG
dW5jdGlvbih7IH0pOwotfQotCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6ZGVsZXRlQ29v
a2llc0Zvckhvc3RuYW1lcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBob3N0bmFtZXMpCi17Ci0gICAgaWYgKG1fbmV0d29ya1Byb2Nlc3MpCi0gICAgICAg
IG1fbmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OkRlbGV0
ZUNvb2tpZXNGb3JIb3N0bmFtZXMoc2Vzc2lvbklELCBob3N0bmFtZXMpLCAwKTsKLX0KLQotdm9p
ZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUFsbENvb2tpZXMoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKQotewotICAgIGlmIChtX25ldHdvcmtQcm9jZXNzKQotICAgICAgICBtX25ldHdv
cmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpEZWxldGVBbGxDb29r
aWVzKHNlc3Npb25JRCksIDApOwotfQotCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6ZGVs
ZXRlQ29va2llKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgQ29va2llJiBjb29raWUs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQotewotICAgIGlm
IChtX25ldHdvcmtQcm9jZXNzKQotICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5zZW5kV2l0aEFz
eW5jUmVwbHkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OkRlbGV0ZUNvb2tpZShzZXNzaW9u
SUQsIGNvb2tpZSksIFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwotICAgIGVsc2UKLSAgICAg
ICAgY2FsbGJhY2tGdW5jdGlvbigpOwotfQotCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6
ZGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
YWxsVGltZSB0aW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2tGdW5jdGlv
bikKLXsKLSAgICBpZiAobV9uZXR3b3JrUHJvY2VzcykKLSAgICAgICAgbV9uZXR3b3JrUHJvY2Vz
cy0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpEZWxldGVB
bGxDb29raWVzTW9kaWZpZWRTaW5jZShzZXNzaW9uSUQsIHRpbWUpLCBXVEZNb3ZlKGNhbGxiYWNr
RnVuY3Rpb24pKTsKLSAgICBlbHNlCi0gICAgICAgIGNhbGxiYWNrRnVuY3Rpb24oKTsKLX0KLQot
dm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBWZWN0b3I8Q29va2llPiYgY29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCi17Ci0gICAgaWYgKG1fbmV0d29ya1Byb2Nlc3Mp
Ci0gICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
V2ViQ29va2llTWFuYWdlcjo6U2V0Q29va2llKHNlc3Npb25JRCwgY29va2llcyksIFdURk1vdmUo
Y2FsbGJhY2tGdW5jdGlvbikpOwotICAgIGVsc2UKLSAgICAgICAgY2FsbGJhY2tGdW5jdGlvbigp
OwotfQotCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6c2V0Q29va2llcyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxDb29raWU+JiBjb29raWVzLCBjb25zdCBVUkwm
IHVybCwgY29uc3QgVVJMJiBtYWluRG9jdW1lbnRVUkwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjYWxsYmFja0Z1bmN0aW9uKQotewotICAgIGlmIChtX25ldHdvcmtQcm9jZXNzKQotICAg
ICAgICBtX25ldHdvcmtQcm9jZXNzLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkNv
b2tpZU1hbmFnZXI6OlNldENvb2tpZXMoc2Vzc2lvbklELCBjb29raWVzLCB1cmwsIG1haW5Eb2N1
bWVudFVSTCksIFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwotICAgIGVsc2UKLSAgICAgICAg
Y2FsbGJhY2tGdW5jdGlvbigpOwotfQotCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6Z2V0
QWxsQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoVmVjdG9yPENvb2tpZT4mJik+JiYgY2FsbGJhY2tGdW5jdGlvbikKLXsKLSAgICBpZiAobV9u
ZXR3b3JrUHJvY2VzcykKLSAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpHZXRBbGxDb29raWVzKHNlc3Npb25JRCks
IFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwotICAgIGVsc2UKLSAgICAgICAgY2FsbGJhY2tG
dW5jdGlvbih7IH0pOwotfQotCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6Z2V0Q29va2ll
cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgdXJsLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFZlY3RvcjxDb29raWU+JiYpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCi17Ci0gICAg
aWYgKG1fbmV0d29ya1Byb2Nlc3MpCi0gICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6R2V0Q29va2llcyhzZXNzaW9u
SUQsIHVybCksIFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwotICAgIGVsc2UKLSAgICAgICAg
Y2FsbGJhY2tGdW5jdGlvbih7IH0pOwotfQotCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6
c3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKLXsK
LSAgICBpZiAobV9uZXR3b3JrUHJvY2VzcykKLSAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2Vu
ZChNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6U3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2Vz
KHNlc3Npb25JRCksIDApOwotfQotCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6c3RvcE9i
c2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQotewotICAgIGlm
IChtX25ldHdvcmtQcm9jZXNzKQotICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJDb29raWVNYW5hZ2VyOjpTdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhzZXNzaW9u
SUQpLCAwKTsKLX0KLQotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnJlZ2lzdGVyT2JzZXJ2
ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPYnNlcnZlciYgb2JzZXJ2ZXIpCi17Ci0gICAg
YXV0byByZXN1bHQgPSBtX2Nvb2tpZU9ic2VydmVycy5zZXQoc2Vzc2lvbklELCBXZWFrSGFzaFNl
dDxPYnNlcnZlcj4oKSk7Ci0gICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5hZGQob2JzZXJ2ZXIp
OwotCi0gICAgaWYgKHJlc3VsdC5pc05ld0VudHJ5KQotICAgICAgICBzdGFydE9ic2VydmluZ0Nv
b2tpZUNoYW5nZXMoc2Vzc2lvbklEKTsKLX0KLQotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6
OnVucmVnaXN0ZXJPYnNlcnZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9ic2VydmVyJiBv
YnNlcnZlcikKLXsKLSAgICBhdXRvIGl0ZXJhdG9yID0gbV9jb29raWVPYnNlcnZlcnMuZmluZChz
ZXNzaW9uSUQpOwotICAgIGlmIChpdGVyYXRvciA9PSBtX2Nvb2tpZU9ic2VydmVycy5lbmQoKSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgaXRlcmF0b3ItPnZhbHVlLnJlbW92ZShvYnNlcnZlcik7
Ci0gICAgaWYgKCFpdGVyYXRvci0+dmFsdWUuY29tcHV0ZXNFbXB0eSgpKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBtX2Nvb2tpZU9ic2VydmVycy5yZW1vdmUoaXRlcmF0b3IpOwotICAgIHN0b3BP
YnNlcnZpbmdDb29raWVDaGFuZ2VzKHNlc3Npb25JRCk7Ci19Ci0KLXZvaWQgV2ViQ29va2llTWFu
YWdlclByb3h5Ojpjb29raWVzRGlkQ2hhbmdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKLXsK
LSAgICBhdXRvIGl0ZXJhdG9yID0gbV9jb29raWVPYnNlcnZlcnMuZmluZChzZXNzaW9uSUQpOwot
ICAgIGlmIChpdGVyYXRvciA9PSBtX2Nvb2tpZU9ic2VydmVycy5lbmQoKSkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IGl0ZXJhdG9yLT52YWx1ZSkKLSAgICAg
ICAgb2JzZXJ2ZXIuY29va2llc0RpZENoYW5nZSgpOwotfQotCi12b2lkIFdlYkNvb2tpZU1hbmFn
ZXJQcm94eTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRCwgSFRUUENv
b2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxs
YmFja0Z1bmN0aW9uKQotewotICAgIGlmIChtX25ldHdvcmtQcm9jZXNzKQotICAgICAgICBtX25l
dHdvcmtQcm9jZXNzLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFn
ZXI6OlNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KSwgV1RGTW92ZShjYWxsYmFja0Z1
bmN0aW9uKSk7Ci0gICAgZWxzZQotICAgICAgICBjYWxsYmFja0Z1bmN0aW9uKCk7Ci19Ci0KLXZv
aWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIVFRQQ29va2llQWNj
ZXB0UG9saWN5KT4mJiBjYWxsYmFja0Z1bmN0aW9uKQotewotICAgIGlmIChtX25ldHdvcmtQcm9j
ZXNzKQotICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYkNvb2tpZU1hbmFnZXI6OkdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koc2Vzc2lvbklE
KSwgV1RGTW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7Ci0gICAgZWxzZQotICAgICAgICBjYWxsYmFj
a0Z1bmN0aW9uKEhUVFBDb29raWVBY2NlcHRQb2xpY3k6Ok5ldmVyKTsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29r
aWVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFn
ZXJQcm94eS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZGNmNTRhZDdjOGIuLjAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2Vy
UHJveHkuaAorKysgL2Rldi9udWxsCkBAIC0xLDEwMyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDExLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlICJHZW5l
cmljQ2FsbGJhY2suaCIKLSNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKLSNpbmNsdWRlICJX
ZWJDb250ZXh0U3VwcGxlbWVudC5oIgotI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KLSNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgotCi0jaWYgVVNFKFNP
VVApCi0jaW5jbHVkZSAiU291cENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlwZS5oIgotI2VuZGlm
Ci0KLW5hbWVzcGFjZSBBUEkgewotY2xhc3MgQXJyYXk7Ci19Ci0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLXN0cnVjdCBDb29raWU7Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJQ
cm9jZXNzUG9vbDsKLWNsYXNzIFdlYlByb2Nlc3NQcm94eTsKLQotY2xhc3MgV2ViQ29va2llTWFu
YWdlclByb3h5IDogcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKLSAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoKLSAgICBXZWJDb29raWVNYW5hZ2VyUHJveHkoTmV0d29y
a1Byb2Nlc3NQcm94eSYpOwotICAgIHZpcnR1YWwgfldlYkNvb2tpZU1hbmFnZXJQcm94eSgpOwot
Ci0gICAgdm9pZCBnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmKT4mJik7Ci0gICAgdm9pZCBkZWxldGVD
b29raWUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBkZWxldGVDb29raWVzRm9ySG9zdG5hbWVzKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwotICAgIHZvaWQgZGVsZXRlQWxs
Q29va2llcyhQQUw6OlNlc3Npb25JRCk7Ci0gICAgdm9pZCBkZWxldGVBbGxDb29raWVzTW9kaWZp
ZWRTaW5jZShQQUw6OlNlc3Npb25JRCwgV2FsbFRpbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7Ci0KLSAgICB2b2lkIHNldENvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3Rv
cjxXZWJDb3JlOjpDb29raWU+JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2
b2lkIHNldENvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb29r
aWU+JiwgY29uc3QgVVJMJiwgY29uc3QgVVJMJiBtYWluRG9jdW1lbnRVUkwsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7Ci0KLSAgICB2b2lkIGdldEFsbENvb2tpZXMoUEFMOjpTZXNzaW9u
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJik+JiYp
OwotICAgIHZvaWQgZ2V0Q29va2llcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYmKT4mJik7Ci0KLSAgICB2
b2lkIHNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OkhU
VFBDb29raWVBY2NlcHRQb2xpY3ksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAg
dm9pZCBnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kpPiYmKTsKLQotICAg
IHZvaWQgc3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEKTsKLSAgICB2
b2lkIHN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEKTsKLQotICAgIGNs
YXNzIE9ic2VydmVyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPE9ic2VydmVyPiB7Ci0gICAgcHVi
bGljOgotICAgICAgICB2aXJ0dWFsIH5PYnNlcnZlcigpIHsgfQotICAgICAgICB2aXJ0dWFsIHZv
aWQgY29va2llc0RpZENoYW5nZSgpID0gMDsKLSAgICB9OwotCi0gICAgdm9pZCByZWdpc3Rlck9i
c2VydmVyKFBBTDo6U2Vzc2lvbklELCBPYnNlcnZlciYpOwotICAgIHZvaWQgdW5yZWdpc3Rlck9i
c2VydmVyKFBBTDo6U2Vzc2lvbklELCBPYnNlcnZlciYpOwotCi0jaWYgVVNFKFNPVVApCi0gICAg
dm9pZCBzZXRDb29raWVQZXJzaXN0ZW50U3RvcmFnZShQQUw6OlNlc3Npb25JRCwgY29uc3QgU3Ry
aW5nJiBzdG9yYWdlUGF0aCwgU291cENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlwZSk7Ci0jZW5k
aWYKLQotcHJpdmF0ZToKLSAgICB2b2lkIGNvb2tpZXNEaWRDaGFuZ2UoUEFMOjpTZXNzaW9uSUQp
OwotCi0gICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwotCi0gICAgSGFz
aE1hcDxQQUw6OlNlc3Npb25JRCwgV2Vha0hhc2hTZXQ8T2JzZXJ2ZXI+PiBtX2Nvb2tpZU9ic2Vy
dmVyczsKLQotICAgIFdlYWtQdHI8TmV0d29ya1Byb2Nlc3NQcm94eT4gbV9uZXR3b3JrUHJvY2Vz
czsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MjRhZWQzMDA0MjQuLjAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4K
KysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQK
LSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotIyBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUgotIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi0jIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSCi0jIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0jIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0j
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0KLW1lc3NhZ2VzIC0+IFdlYkNvb2tpZU1hbmFnZXJQcm94eSBOb3RSZWZD
b3VudGVkIHsKLSAgICBDb29raWVzRGlkQ2hhbmdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkK
LX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCA5YWYw
ZjZkNmY1ZTEuLmI2YTgzZDdkMGVjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcApAQCAtNjIsNyArNjIsNiBAQAogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJk
TGlzdEl0ZW0uaCIKICNpbmNsdWRlICJXZWJDZXJ0aWZpY2F0ZUluZm8uaCIKICNpbmNsdWRlICJX
ZWJDb250ZXh0U3VwcGxlbWVudC5oIgotI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94eS5o
IgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkdlb2xv
Y2F0aW9uTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yVXRpbGl0aWVzLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuY3BwCmluZGV4IDE1NGEwMzg3NGNiOS4uNWM5OGRmMDcwYWQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmNwcApAQCAtMzksNyArMzksNiBAQAogI2luY2x1ZGUgIlNob3VsZEdyYW5kZmF0aGVy
U3RhdGlzdGljcy5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBY2Nlc3NTdGF0dXMuaCIKICNpbmNsdWRl
ICJXZWJCYWNrRm9yd2FyZENhY2hlLmgiCi0jaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlclByb3h5
LmgiCiAjaW5jbHVkZSAiV2ViS2l0MkluaXRpYWxpemUuaCIKICNpbmNsdWRlICJXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKQEAgLTE3Mjks
MTEgKzE3MjgsNiBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmNsZWFyUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0luV2ViUHJvY2Vzc2VzKENvbXBsZXRpb25IYW5kbAogfQogI2VuZGlmCiAKLXZvaWQg
V2Vic2l0ZURhdGFTdG9yZTo6Zmx1c2hDb29raWVzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBuZXR3b3JrUHJvY2VzcygpLmZsdXNoQ29va2ll
cyhzZXNzaW9uSUQoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotfQotCiB2b2lkIFdl
YnNpdGVEYXRhU3RvcmU6OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0KGJv
b2wgYWxsb3dzKQogewogICAgIG5ldHdvcmtQcm9jZXNzKCkuc2VuZFN5bmMoTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzOjpTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldChhbGxv
d3MpLCBNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldEFsbG93c0FueVNTTENlcnRpZmljYXRl
Rm9yV2ViU29ja2V0OjpSZXBseSgpLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU1MDM5MjEzZGJiMy4uNmE1ZTExN2Q5MWM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTc1MSwxMCArNzUxLDcgQEAKIAkJMzFGMDYwRTExNjU0MzE4NTAwRjMyODFDIC8qIE5ldHdvcmtT
b2NrZXRDaGFubmVsTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxRjA2MEREMTY1NDMxNzUwMEYzMjgxQyAvKiBOZXR3b3Jr
U29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTMzMDkzNDQ3MTMxNUI5
MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzMDkzNDQzMTMxNUI5MjIw
MDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJ
MzMwOTM0NDgxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzMwOTM0NDQxMzE1
QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5oICovOyB9OwotCQkzMzA5
MzQ0OTEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMz
MDkzNDQ1MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovOyB9OwotCQkzMzA5MzQ0QTEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2ll
TWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMzMDkzNDQ2MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oICovOyB9OwogCQkzMzA5MzQ1MDEzMTVCOTREMDA5N0E3QkMgLyogV2Vi
Q29va2llTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzMwOTM0NEQxMzE1Qjk0RDAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXIuaCAqLzsg
fTsKLQkJMzMwOTM0NTYxMzE1Qjk3NTAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzMwOTM0NTMx
MzE1Qjk3NTAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eS5oICovOyB9OwogCQkzMzA5
MzQ1QjEzMTVCOTk4MDA5N0E3QkMgLyogV0tDb29raWVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzA5MzQ1OTEzMTVCOTk4MDA5N0E3QkMg
LyogV0tDb29raWVNYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMzMzNjc2M0IxMzBDOTlEQzAwNkM5REUyIC8qIFdLUmVzb3VyY2VDYWNo
ZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDMzMzY3NjM5MTMwQzk5REMwMDZDOURFMiAvKiBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzcwRjM0QTMx
ODI5QkUxRTAwOTAyN0M4IC8qIFdLTmF2aWdhdGlvbkRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3MEYzNEExMTgyOUJFMUUwMDkwMjdDOCAvKiBX
S05hdmlnYXRpb25EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKQEAgLTQyNTQsMTQgKzQyNTEsOSBAQAogCQkzMkRCQ0Y1RTAzNzBBREVFMDBDOTE3
ODMgLyogV2ViS2l0MlByZWZpeC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJLaXQyUHJlZml4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMzMDkzNDQzMTMx
NUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1dlYkNvb2tpZU1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OwogCQkzMzA5MzQ0NDEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2Vz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkNvb2tpZU1hbmFnZXJNZXNz
YWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1dlYkNvb2tpZU1hbmFnZXJNZXNz
YWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwotCQkzMzA5MzQ0NTEz
MTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkNvb2tpZU1hbmFnZXJQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQvV2Vi
Q29va2llTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKLQkJMzMwOTM0NDYxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tp
ZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IFdlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9X
ZWJLaXQvV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKIAkJMzMwOTM0NEMxMzE1Qjk0RDAwOTdBN0JDIC8qIFdlYkNvb2tp
ZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29v
a2llTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMzMDkzNDREMTMx
NUI5NEQwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYkNvb2tpZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMzMwOTM0NEUxMzE1Qjk0RDAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXIubWVzc2Fn
ZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5p
bjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzMwOTM0NTIxMzE1Qjk3NTAwOTdBN0JD
IC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkzMzA5MzQ1MzEzMTVCOTc1MDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclBy
b3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvb2tpZU1hbmFnZXJQ
cm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMzA5MzQ1NDEzMTVCOTc1MDA5
N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFdlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMzMwOTM0NTgxMzE1Qjk5ODAwOTdBN0JDIC8qIFdLQ29va2llTWFu
YWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0Nvb2tpZU1h
bmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMzA5MzQ1OTEzMTVCOTk4
MDA5N0E3QkMgLyogV0tDb29raWVNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdLQ29va2llTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkz
MzM2NzYzODEzMEM5OURDMDA2QzlERTIgLyogV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1Jlc291cmNlQ2FjaGVNYW5hZ2Vy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ5OTMsMzcgKzQ5ODUsMTcgQEAK
IAkJNTcwREFBQzUyMzAzN0Y3RTAwRThGQzA0IC8qIFdLTkZSZWFkZXJTZXNzaW9uRGVsZWdhdGUu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS05GUmVhZGVyU2Vzc2lvbkRlbGVnYXRlLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzBEQUFDODIzMDM4NUZEMDBFOEZDMDQgLyog
Q3RhcE5mY0RyaXZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDdGFwTmZjRHJpdmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MERBQUM5MjMwMzg1RkQwMEU4RkMwNCAvKiBDdGFwTmZj
RHJpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEN0YXBOZmNEcml2ZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk1NzJFQkJCOTI1MzZBMDZFMDAwNTUyQjMgLyogSW5mby1p
T1MucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnBsaXN0OyBuYW1lID0gIkluZm8taU9TLnBsaXN0IjsgcGF0aCA9ICJXZWJBdXRoblBy
b2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkF1dGhuU2VydmljZS9JbmZvLWlP
Uy5wbGlzdCI7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKLQkJNTcyRUJCQkEyNTM2QTA2
RTAwMDU1MkIzIC8qIEluZm8tT1NYLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdDsgbmFtZSA9ICJJbmZvLU9TWC5wbGlzdCI7
IHBhdGggPSAiV2ViQXV0aG5Qcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJB
dXRoblNlcnZpY2UvSW5mby1PU1gucGxpc3QiOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07
CiAJCTU3MkVCQkJCMjUzNkE2MEEwMDA1NTJCMyAvKiBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcyRUJCQkMyNTM2QTYwQTAwMDU1MkIzIC8q
IFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2Vz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkVCQkJEMjUzNkE2MEEwMDA1NTJC
MyAvKiBXZWJBdXRoblByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcyRUJCQkUyNTM2QTYwQTAwMDU1MkIzIC8q
IFdlYkF1dGhuUHJvY2Vzc01lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYkF1dGhuUHJvY2Vzc01lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU3MkVCQkMzMjUzNkFCODQwMDA1NTJCMyAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkF1dGhu
UHJvY2Vzcy5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0LldlYkF1
dGhuUHJvY2Vzcy5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTcyRUJCQzUyNTM2
QUZENTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzc1Byb3h5LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTcyRUJCQzYyNTM2QUZENTAwMDU1MkIzIC8qIFdlYkF1dGhu
UHJvY2Vzc1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1dGhu
UHJvY2Vzc1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3MkVCQkNCMjUz
NkIwNEYwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uSW5mby5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uSW5mby5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzJFQkJEMTI1MzZDODg1MDAwNTUyQjMg
LyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJNTcyRUJCRDIyNTM2Qzg4NTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJv
Y2Vzc0Nvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0
aG5Qcm9jZXNzQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzJF
QkJEMzI1MzZDODg1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdl
cy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLm1l
c3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJFQkJEODI1MzhGNkEx
MDAwNTUyQjMgLyogQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0TGluay5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IEFwcEF0dGVzdEludGVybmFsU29mdExpbmsubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTU3MkVCQkQ5MjUzOEY2QTEwMDA1NTJCMyAvKiBBcHBBdHRlc3RJbnRlcm5hbFNv
ZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcEF0dGVzdEludGVybmFsU29mdExpbmsuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcyRUJCREMyNTM5MjE4MTAwMDU1MkIzIC8qIEFw
cEF0dGVzdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBBdHRlc3RTUEkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTcyRkQ0NDEyMjI2NUNFMjAwQTFFQ0MzIC8qIFdlYlZpZXdEaWRN
b3ZlVG9XaW5kb3dPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJWaWV3RGlkTW92ZVRvV2lu
ZG93T2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc0MjE3OTEyNDAw
RTA5ODAwMkIzMDNEIC8qIExvY2FsQXV0aGVudGljYXRpb25TUEkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TG9jYWxBdXRoZW50aWNhdGlvblNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
NzQyQTJGNzI1MzU2MTNGMDBCN0JBMTQgLyogLnhwYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBleHBsaWNpdEZpbGVUeXBlID0gIndyYXBwZXIueHBjLXNlcnZpY2UiOyBpbmNsdWRlSW5J
bmRleCA9IDA7IHBhdGggPSAueHBjOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OwotCQk1NzQyQTMwNjI1MzU4QTA0MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1dGhuUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1
NzQyQTMwNzI1MzU4QTA0MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkF1dGhuUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTU3NDJBMzBBMjUzNThFRkQwMEI3QkExNCAvKiBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aG5Db25uZWN0aW9u
VG9XZWJQcm9jZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3NDJBMzBCMjUz
NThFRkQwMEI3QkExNCAvKiBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMu
aW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzQyQTMwQzI1MzU4
RUZEMDBCN0JBMTQgLyogV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3NDJBMzEzMjUzNjQ4RTQw
MEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3MubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gV2ViQXV0aG5Qcm9jZXNzLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk1NzQyQTMxNDI1MzY0OEU0MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzcy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3NDJBMzE1MjUzNjQ4RTQwMEI3QkExNCAv
KiBXZWJBdXRoblByb2Nlc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
QXV0aG5Qcm9jZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3NDJBMzFBMjUz
Njc1RTkwMEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3NJT1MubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBXZWJBdXRoblByb2Nlc3NJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTU3NDJBMzFDMjUzNjc1RjYwMEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3NNYWMubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBXZWJBdXRoblByb2Nlc3NNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTU3NDJBMzFEMjUzNjc1RjYwMEI3QkExNCAvKiBjb20uYXBwbGUuV2ViS2l0
LldlYkF1dGhuUHJvY2Vzcy5zYi5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuUHJv
Y2Vzcy5zYi5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMUUyNTM2OTQ5
MzAwQjdCQTE0IC8qIFdlYkF1dGhuU2VydmljZUVudHJ5UG9pbnQubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXZWJBdXRoblNlcnZpY2VFbnRyeVBvaW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1NzQ3MjhDRjIzNDU2RTk4MDAxNzAwQUYgLyogX1dLV2ViQXV0aGVudGljYXRp
b25QYW5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NDcyOEQwMjM0NTZFOTgwMDE3MDBBRiAvKiBf
V0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLV2Vi
QXV0aGVudGljYXRpb25QYW5lbC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc0
NzI4RDMyMzQ1NzBBRTAwMTcwMEFGIC8qIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxJbnRlcm5h
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsSW50ZXJuYWwuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExNzMzLDkgKzExNzA1LDYgQEAKIAkJCQk1
MUE4NENFMjEyN0YzODZCMDBDQTZFQTQgLyogV2ViQ29udGV4dE1lbnVQcm94eS5jcHAgKi8sCiAJ
CQkJNTFBQ0JCODExMjdBOEJBRDAwRDIwM0I5IC8qIFdlYkNvbnRleHRNZW51UHJveHkuaCAqLywK
IAkJCQlCQ0Y0REUyNDE2OEZBNDQ4MDBDOTRBRkMgLyogV2ViQ29udGV4dFN1cHBsZW1lbnQuaCAq
LywKLQkJCQkzMzA5MzQ1MjEzMTVCOTc1MDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5
LmNwcCAqLywKLQkJCQkzMzA5MzQ1MzEzMTVCOTc1MDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdl
clByb3h5LmggKi8sCi0JCQkJMzMwOTM0NTQxMzE1Qjk3NTAwOTdBN0JDIC8qIFdlYkNvb2tpZU1h
bmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQlFNTRBMTRDRTIwRkNGQjdCMDA3RTEzRDgg
LyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmNwcCAqLywKIAkJCQlFNTY4QjkxRTIw
QTNBQjJGMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmggKi8sCiAJ
CQkJRTU1Q0QxRkQyNEQwODgwQjAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lUGlja2VyLmNwcCAqLywK
QEAgLTEyOTgzLDggKzEyOTUyLDYgQEAKIAkJCQkxQTFGRUMxQjE2MjdCNDU3MDA3MDBGNkQgLyog
V2ViQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi8sCiAJCQkJMzMwOTM0NDMxMzE1QjkyMjAwOTdBN0JD
IC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTMzMDkzNDQ0
MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZXMuaCAqLywKLQkJCQkz
MzA5MzQ0NTEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLywKLQkJCQkzMzA5MzQ0NjEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2ll
TWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLywKIAkJCQlFMzg2NkIwNjIzOTk5NzlDMDBGODhGRTkg
LyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlck1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8sCiAJCQkJRTM4NjZCMDcyMzk5OTc5RDAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9u
VXBkYXRlUHJvdmlkZXJNZXNzYWdlcy5oICovLAogCQkJCUUzODY2QjA0MjM5OTk3OUMwMEY4OEZF
OSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwICovLApAQCAtMTQ2OTAsOCArMTQ2NTcsNiBAQAogCQkJCTVDN0ZCNDcwMjFFOTdEQzUw
MDlFMzI0MSAvKiBXZWJDb29raWVKYXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTMzMDkzNDUwMTMx
NUI5NEQwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkz
MzA5MzQ0ODEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2VzLmggaW4g
SGVhZGVycyAqLywKLQkJCQkzMzA5MzQ1NjEzMTVCOTc1MDA5N0E3QkMgLyogV2ViQ29va2llTWFu
YWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKLQkJCQkzMzA5MzQ0QTEzMTVCOTIyMDA5N0E3QkMg
LyogV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
MUREN0IyMTE0REMzOTYwMDVBREFGMyAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUREQTBBMjk2MjdFNTVFNEQwMDVFMDg2RSAvKiBXZWJDb3JlU3RhdGlzdGlj
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRERBMEE0MTAyN0U2NkZCNjAwNUUwODZFIC8qIFdlYkNv
cmVUaHJlYWQuaCBpbiBIZWFkZXJzICovLApAQCAtMTU1MjgsMjggKzE1NDkzLDYgQEAKIAkJCXBy
b2R1Y3RSZWZlcmVuY2UgPSA1MTdCNUY1QjI3NUE4RDNFMDAyREMyMkQgLyogd2VicHVzaHRvb2wg
Ki87CiAJCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLnRvb2wiOwogCQl9
OwotCQk1NzQyQTJFNTI1MzU2MTNGMDBCN0JBMTQgLyogV2ViQXV0aG4gKi8gPSB7Ci0JCQlpc2Eg
PSBQQlhOYXRpdmVUYXJnZXQ7Ci0JCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gNTc0MkEyRjMy
NTM1NjEzRjAwQjdCQTE0IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZl
VGFyZ2V0ICJXZWJBdXRobiIgKi87Ci0JCQlidWlsZFBoYXNlcyA9ICgKLQkJCQk1NzQyQTJFQTI1
MzU2MTNGMDBCN0JBMTQgLyogU291cmNlcyAqLywKLQkJCQk1NzQyQTJFRDI1MzU2MTNGMDBCN0JB
MTQgLyogRnJhbWV3b3JrcyAqLywKLQkJCQk1NzQyQTJGMDI1MzU2MTNGMDBCN0JBMTQgLyogUmVz
b3VyY2VzICovLAotCQkJCTU3NDJBMkYxMjUzNTYxM0YwMEI3QkExNCAvKiBVbmxvY2sga2V5Y2hh
aW4gKi8sCi0JCQkJNTc0MkEyRjIyNTM1NjEzRjAwQjdCQTE0IC8qIFByb2Nlc3MgV2ViQXV0aGVu
dGljYXRpb24gZW50aXRsZW1lbnRzICovLAotCQkJCTY1MTc1NzIzMjdDRkMyNEEwMEQ5RkU0MCAv
KiBDb3B5IFhQQyBTZXJ2aWNlIHRvIFNlY29uZGFyeSBQYXRoICovLAotCQkJKTsKLQkJCWJ1aWxk
UnVsZXMgPSAoCi0JCQkpOwotCQkJZGVwZW5kZW5jaWVzID0gKAotCQkJCTU3NDJBMkU2MjUzNTYx
M0YwMEI3QkExNCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAotCQkJCTU3NDJBMkU4MjUzNTYx
M0YwMEI3QkExNCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAotCQkJKTsKLQkJCW5hbWUgPSBX
ZWJBdXRobjsKLQkJCXByb2R1Y3ROYW1lID0gTmV0d29ya2luZzsKLQkJCXByb2R1Y3RSZWZlcmVu
Y2UgPSA1NzQyQTJGNzI1MzU2MTNGMDBCN0JBMTQgLyogLnhwYyAqLzsKLQkJCXByb2R1Y3RUeXBl
ID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUueHBjLXNlcnZpY2UiOwotCQl9OwogCQk1QzE1NzlD
QzI3MTY1QjJGMDBFRDUyODAgLyogd2VicHVzaGQgKi8gPSB7CiAJCQlpc2EgPSBQQlhOYXRpdmVU
YXJnZXQ7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gNUMxNTc5RDYyNzE2NUIyRjAwRUQ1
MjgwIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJ3ZWJw
dXNoZCIgKi87CkBAIC0xNzEyNCw3ICsxNzA2Nyw2IEBACiAJCQkJMUMwQTE5NTMxQzhGRkRGQjAw
RkUwRUJCIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUExRkVDMUMxNjI3QjQ1NzAwNzAwRjZEIC8qIFdlYkNvbm5lY3Rp
b25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzMwOTM0NDcxMzE1Qjky
MjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMzMwOTM0NDkxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzk2MjhERTIzOTYw
Q0M2MDA2NThFQ0QgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlFMzg2NkIwQjIzOTlBMkREMDBGODhGRTkgLyogV2ViRGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlFMzg2NkFFNTIzOTc0MDA0MDBGODhGRTkgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRh
dGVQcm92aWRlclByb3h5Lm1tIGluIFNvdXJjZXMgKi8sCi0tIAoyLjMyLjAgKEFwcGxlIEdpdC0x
MzIpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459774</attachid>
            <date>2022-05-25 16:57:09 -0700</date>
            <delta_ts>2022-06-02 14:39:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240931-20220525165708.patch</filename>
            <type>text/plain</type>
            <size>57954</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">RnJvbSA2MDM1ZTlkOGMwZjBiN2E3NzY3ZmZjN2ZlYmIxNzQ2YzA0OGQ1MDgyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4IENocmlzdGVuc2VuIDxhY2hyaXN0ZW5zZW5AYXBwbGUu
Y29tPgpEYXRlOiBXZWQsIDI1IE1heSAyMDIyIDE2OjU1OjUwIC0wNzAwClN1YmplY3Q6IFtQQVRD
SF0gUmVtb3ZlIFdlYkNvb2tpZU1hbmFnZXJQcm94eSwgcmVwbGFjZWQgYnkKIEFQSTo6SFRUUENv
b2tpZVN0b3JlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDA5MzEK
ClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKQWxsIHRoZSBDIEFQSSBpbiBXS0Nvb2tpZU1h
bmFnZXJSZWYgdGhhdCB1c2VkIHRvIHVzZSBpdCBoYXMgYmVlbiBkZXByZWNhdGVkLgpJdCBpcyBu
b3cgYW4gdW5uZWVkZWQgYWJzdHJhY3Rpb24uCgoqIFNvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50
eHQ6CiogU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgoqIFNv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CiogU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy5tYWtlOgoqIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcDoKKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6
ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lcyk6CihXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6OmRl
bGV0ZUFsbENvb2tpZXMpOgooV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyOjpub3RpZnlDb29raWVz
RGlkQ2hhbmdlKToKKiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29v
a2llTWFuYWdlci5oOgoqIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJD
b29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluOgoqIFNvdXJjZS9XZWJLaXQvU291cmNlcy50eHQ6Ciog
U291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dDoKKiBTb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUu
dHh0OgoqIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3Bw
OgooQVBJOjpIVFRQQ29va2llU3RvcmU6OkhUVFBDb29raWVTdG9yZSk6CihBUEk6OkhUVFBDb29r
aWVTdG9yZTo6fkhUVFBDb29raWVTdG9yZSk6CihBUEk6OkhUVFBDb29raWVTdG9yZTo6Y29va2ll
cyk6CihBUEk6OkhUVFBDb29raWVTdG9yZTo6Y29va2llc0ZvclVSTCk6CihBUEk6OkhUVFBDb29r
aWVTdG9yZTo6c2V0Q29va2llcyk6CihBUEk6OkhUVFBDb29raWVTdG9yZTo6ZGVsZXRlQ29va2ll
KToKKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpkZWxldGVBbGxDb29raWVzKToKKEFQSTo6SFRUUENv
b2tpZVN0b3JlOjpkZWxldGVDb29raWVzRm9ySG9zdG5hbWVzKToKKEFQSTo6SFRUUENvb2tpZVN0
b3JlOjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpm
bHVzaENvb2tpZXMpOgooQVBJOjpIVFRQQ29va2llU3RvcmU6OnJlZ2lzdGVyT2JzZXJ2ZXIpOgoo
QVBJOjpIVFRQQ29va2llU3RvcmU6OnVucmVnaXN0ZXJPYnNlcnZlcik6CihBUEk6OkhUVFBDb29r
aWVTdG9yZTo6bmV0d29ya1Byb2Nlc3NJZkV4aXN0cyk6CihBUEk6OkhUVFBDb29raWVTdG9yZTo6
bmV0d29ya1Byb2Nlc3NMYXVuY2hpbmdJZk5lY2Vzc2FyeSk6CihBUEk6OkFQSVdlYkNvb2tpZU1h
bmFnZXJQcm94eU9ic2VydmVyOjpBUElXZWJDb29raWVNYW5hZ2VyUHJveHlPYnNlcnZlcik6IERl
bGV0ZWQuCigpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQ
Q29va2llU3RvcmUuaDoKKiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3Qu
aDoKKiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwOgoqIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tOgoqIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdENvb2tpZU1hbmFnZXIuY3BwOgoqIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwOgoo
V2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6YWRkU2luZ2xlQ29va2llKToKKFdlYktpdDo6
V2ViQXV0b21hdGlvblNlc3Npb246OmRlbGV0ZUFsbENvb2tpZXMpOgoqIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CihXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzUHJveHk6Ok5ldHdvcmtQcm9jZXNzUHJveHkpOgooV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzc1Byb3h5Ojpjb29raWVzRGlkQ2hhbmdlKToKKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94
eTo6Zmx1c2hDb29raWVzKTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CiogU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcDogUmVtb3ZlZC4KKiBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaDogUmVtb3ZlZC4KKiBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46IFJlbW92ZWQu
CiogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgoqIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgooV2ViS2l0
OjpXZWJzaXRlRGF0YVN0b3JlOjpmbHVzaENvb2tpZXMpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL3NvdXAvV2Vic2l0ZURhdGFTdG9yZVNvdXAuY3BwOgoq
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1Bvb2xTb3VwLmNwcDoKKiBT
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgotLS0KIFNvdXJj
ZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAgICB8ICAgMSAtCiBTb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgfCAgIDEgLQogLi4uL1dlYktp
dC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCAgIHwgICAzIC0KIFNvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMubWFrZSAgICAgICAgICAgICB8ICAgMSAtCiAuLi4vQ29va2llcy9X
ZWJDb29raWVNYW5hZ2VyLmNwcCAgICAgICAgICAgICAgfCAgIDkgKy0KIC4uLi9OZXR3b3JrUHJv
Y2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaCB8ICAgNCArLQogLi4uL0Nvb2tpZXMvV2Vi
Q29va2llTWFuYWdlci5tZXNzYWdlcy5pbiAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0ICAgICAgICAgICAgICAgICAgICAgfCAgIDEgLQogU291cmNlL1dlYktpdC9Tb3Vy
Y2VzR1RLLnR4dCAgICAgICAgICAgICAgICAgIHwgICAxIC0KIFNvdXJjZS9XZWJLaXQvU291cmNl
c1dQRS50eHQgICAgICAgICAgICAgICAgICB8ICAgMSAtCiAuLi4vVUlQcm9jZXNzL0FQSS9BUElI
VFRQQ29va2llU3RvcmUuY3BwICAgICAgfCAxNDIgKysrKysrKy0tLS0tLS0KIC4uLi9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuaCB8ICAxMyArLQogU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggICAgIHwgICAyIC0KIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAgICB8ICAgMSAtCiAuLi4vVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tICAgICAgfCAgIDEgLQogLi4uL0FQSS9nbGliL1dlYktp
dENvb2tpZU1hbmFnZXIuY3BwICAgICAgICAgIHwgICAxIC0KIC4uLi9BdXRvbWF0aW9uL1dlYkF1
dG9tYXRpb25TZXNzaW9uLmNwcCAgICAgICB8ICAxMCArLQogLi4uL1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIHwgIDE0ICstCiAuLi4vVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oICAgfCAgIDYgKy0KIC4uLi9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkubWVzc2FnZXMuaW4gICB8ICAgMiArCiAuLi4vVUlQcm9jZXNzL1dlYkNvb2tpZU1h
bmFnZXJQcm94eS5jcHAgICAgICAgfCAxODQgLS0tLS0tLS0tLS0tLS0tLS0tCiAuLi4vV2ViS2l0
L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaCAgfCAxMDMgLS0tLS0tLS0tLQogLi4u
L1dlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAgICAgICAgIHwgIDI1IC0tLQogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwICAgIHwgICAxIC0KIC4uLi9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCAgICAgICAgICB8ICAgNiAtCiAuLi4vV2Vi
c2l0ZURhdGEvc291cC9XZWJzaXRlRGF0YVN0b3JlU291cC5jcHAgfCAgIDEgLQogLi4uL1VJUHJv
Y2Vzcy9zb3VwL1dlYlByb2Nlc3NQb29sU291cC5jcHAgICAgIHwgICAxIC0KIC4uLi9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICB8ICAxNiAtLQogMjggZmlsZXMgY2hh
bmdlZCwgMTAxIGluc2VydGlvbnMoKyksIDQ1NCBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEw
MDY0NCBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCiBk
ZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdl
clByb3h5LmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJD
b29raWVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCAwNjQ3
NTFiNzM4YWEuLmViZDc1NDI3YjE4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CkBAIC0yMzEsNyArMjMx
LDYgQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIFVJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyCiAgICAgVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uU2VydmVyCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUK
LSAgICBVSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5CiAgICAgVUlQcm9jZXNzL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHkKICAgICBVSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
UHJveHkKICAgICBVSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCBjZjQ4NTRlYWJlZmYuLjZm
MDEyYWM1MGEwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdApAQCAtMTYwLDcgKzE2MCw2IEBAICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9Vc2Vy
Q29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5tZXNzYWdlcy5pbgogJChQ
Uk9KRUNUX0RJUikvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29v
cmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgotJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1dlYkNv
b2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJv
Y2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5Lm1lc3NhZ2VzLmluCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCAyNWUzNTIzMzZl
ZDUuLmY5MWE3NTVhOWZhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91
dHB1dC54Y2ZpbGVsaXN0CkBAIC01MDIsOSArNTAyLDYgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9XZWJDb25uZWN0aW9uTWVzc2FnZXNSZXBsaWVzLmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvV2ViQ29va2llTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQvV2ViQ29va2llTWFuYWdlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQvV2ViQ29va2llTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5o
Ci0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1dlYkNvb2tpZU1h
bmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQvV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZXMuaAotJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9XZWJDb29raWVNYW5hZ2VyUHJv
eHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyTWVzc2FnZVJlY2VpdmVy
LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9XZWJEZXZp
Y2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3Zp
ZGVyTWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA0MzYy
NGQwYzk3OTMuLmFmY2I1YzUzZGU3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAt
MTczLDcgKzE3Myw2IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVVJUHJvY2Vzcy9Db2NvYS9Q
bGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkgXAogCVVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5IFwKIAlVSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5IFwKLQlVSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5IFwKIAlVSVByb2Nl
c3MvVmlld0dlc3R1cmVDb250cm9sbGVyIFwKIAlVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5IFwK
IAlVSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbiBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdl
ci5jcHAKaW5kZXggM2I3ZmQwNGZmNTAzLi5kODgwMzlmNjljYTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5j
cHAKQEAgLTI4LDcgKzI4LDYgQEAKIAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCiAjaW5j
bHVkZSAiV2ViQ29va2llTWFuYWdlck1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViQ29va2llTWFu
YWdlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29va2llU3Rv
cmFnZS5oPgpAQCAtNjMsMTYgKzYyLDE4IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6Z2V0SG9z
dG5hbWVzV2l0aENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0CiAgICAg
Y29tcGxldGlvbkhhbmRsZXIoY29weVRvVmVjdG9yKGhvc3RuYW1lcykpOwogfQogCi12b2lkIFdl
YkNvb2tpZU1hbmFnZXI6OmRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZXMoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgaG9zdG5hbWVzKQordm9pZCBXZWJDb29r
aWVNYW5hZ2VyOjpkZWxldGVDb29raWVzRm9ySG9zdG5hbWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGhvc3RuYW1lcywgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vz
c2lvbiA9IG1fcHJvY2Vzcy5zdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAgICBzdG9y
YWdlU2Vzc2lvbi0+ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lcyhob3N0bmFtZXMpOworICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlcjo6ZGVsZXRlQWxs
Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6
OmRlbGV0ZUFsbENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIHN0b3Jh
Z2VTZXNzaW9uID0gbV9wcm9jZXNzLnN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAg
IHN0b3JhZ2VTZXNzaW9uLT5kZWxldGVBbGxDb29raWVzKCk7CisgICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKIH0KIAogdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpkZWxldGVDb29raWUoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBjb25zdCBDb29raWUmIGNvb2tpZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMTI0LDcgKzEyNSw3IEBAIHZvaWQgV2Vi
Q29va2llTWFuYWdlcjo6c2V0Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFZlY3RvcjxDb29raWU+CiB2b2lkIFdlYkNvb2tpZU1hbmFnZXI6Om5vdGlmeUNvb2tpZXNEaWRD
aGFuZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIEFTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7Ci0gICAgbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXJQ
cm94eTo6Q29va2llc0RpZENoYW5nZShzZXNzaW9uSUQpLCAwKTsKKyAgICBtX3Byb2Nlc3Muc2Vu
ZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6Q29va2llc0RpZENoYW5nZShzZXNzaW9u
SUQpLCAwKTsKIH0KIAogdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpzdGFydE9ic2VydmluZ0Nvb2tp
ZUNoYW5nZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmgKaW5kZXggMzVj
ZThhOWVjZmMyLi4xOTQyOGM3NzE4YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaApAQCAtNzIsOCArNzIsOCBA
QCBwcml2YXRlOgogICAgIHZvaWQgZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoUEFMOjpTZXNzaW9u
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJik+JiYpOwogCiAgICAg
dm9pZCBkZWxldGVDb29raWUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBkZWxldGVDb29raWVzRm9y
SG9zdG5hbWVzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwotICAgIHZv
aWQgZGVsZXRlQWxsQ29va2llcyhQQUw6OlNlc3Npb25JRCk7CisgICAgdm9pZCBkZWxldGVDb29r
aWVzRm9ySG9zdG5hbWVzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBkZWxldGVBbGxDb29raWVzKFBB
TDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgZGVs
ZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2UoUEFMOjpTZXNzaW9uSUQsIFdhbGxUaW1lLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAgICAgdm9pZCBzZXRDb29raWUoUEFMOjpTZXNz
aW9uSUQsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29v
a2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggNDZkOTcw
OGJkYjhlLi4yMDgxMTU0ZjkwZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmlu
CkBAIC0yNSw4ICsyNSw4IEBACiAgCiBtZXNzYWdlcyAtPiBXZWJDb29raWVNYW5hZ2VyIE5vdFJl
ZkNvdW50ZWQgewogICAgIHZvaWQgR2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKSAtPiAoVmVjdG9yPFN0cmluZz4gaG9zdG5hbWVzKQotICAgIHZvaWQgRGVs
ZXRlQ29va2llc0Zvckhvc3RuYW1lcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFZlY3RvcjxT
dHJpbmc+IGhvc3RuYW1lcykKLSAgICB2b2lkIERlbGV0ZUFsbENvb2tpZXMoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQorICAgIHZvaWQgRGVsZXRlQ29va2llc0Zvckhvc3RuYW1lcyhQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIFZlY3RvcjxTdHJpbmc+IGhvc3RuYW1lcykgLT4gKCkKKyAgICB2
b2lkIERlbGV0ZUFsbENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKQogCiAg
ICAgdm9pZCBTZXRDb29raWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBWZWN0b3I8V2ViQ29y
ZTo6Q29va2llPiBjb29raWUpIC0+ICgpCiAgICAgdm9pZCBTZXRDb29raWVzKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcywgVVJMIHVybCwg
VVJMIG1haW5Eb2N1bWVudFVSTCkgLT4gKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291
cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IDM2OGVkOGMyZjA5YS4u
MWQ2MGFkNzgxOGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTQzMyw3ICs0MzMsNiBAQCBVSVByb2Nlc3Mv
V2ViQ29udGV4dENvbm5lY3Rpb25DbGllbnQuY3BwCiBVSVByb2Nlc3MvV2ViQ29udGV4dEluamVj
dGVkQnVuZGxlQ2xpZW50LmNwcAogVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94
eS5jcHAKIFVJUHJvY2Vzcy9XZWJDb250ZXh0TWVudVByb3h5LmNwcAotVUlQcm9jZXNzL1dlYkNv
b2tpZU1hbmFnZXJQcm94eS5jcHAKIFVJUHJvY2Vzcy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJv
cGRvd24uY3BwCiBVSVByb2Nlc3MvV2ViRGF0ZVRpbWVQaWNrZXIuY3BwCiBVSVByb2Nlc3MvV2Vi
RWRpdENvbW1hbmRQcm94eS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0dU
Sy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CmluZGV4IDNiNTJkMTBhZjY4Zi4u
ODMyNDNmMGJmZjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0Cisr
KyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQKQEAgLTI4MSw3ICsyODEsNiBAQCBVSVBy
b2Nlc3MvZ3RrL1dlYlByZWZlcmVuY2VzR3RrLmNwcAogVUlQcm9jZXNzL2d0ay9XZWJUZXh0Q2hl
Y2tlci5jcHAKIFVJUHJvY2Vzcy9ndGsvV2ViVGV4dENoZWNrZXJDbGllbnQuY3BwCiAKLVVJUHJv
Y2Vzcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJQcm94eVNvdXAuY3BwCiBVSVByb2Nlc3Mvc291cC9X
ZWJQcm9jZXNzUG9vbFNvdXAuY3BwCiAKIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2dibS9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5R0JNLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzV1BFLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQKaW5kZXggYWUy
MTgxMDg4ZjgyLi5iMGVkZjc3NjBjOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNl
c1dQRS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dApAQCAtMjI2LDcgKzIy
Niw2IEBAIFVJUHJvY2Vzcy9saWJ3cGUvV2ViUGFzdGVib2FyZFByb3h5TGliV1BFLmNwcAogCiBV
SVByb2Nlc3MvbGludXgvTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcAogCi1VSVByb2Nlc3Mvc291
cC9XZWJDb29raWVNYW5hZ2VyUHJveHlTb3VwLmNwcAogVUlQcm9jZXNzL3NvdXAvV2ViUHJvY2Vz
c1Bvb2xTb3VwLmNwcAogCiBVSVByb2Nlc3Mvd3BlL1dlYlBhZ2VQcm94eVdQRS5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKaW5k
ZXggMzMxMWVlZGJiNDlkLi4zY2U3MGE3MDNiMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3BwCkBAIC0yNiwxMSArMjYsOCBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFQSUhUVFBDb29raWVTdG9yZS5oIgogCi0j
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNpbmNsdWRlICJEZWZhdWx0V2ViQnJvd3NlckNoZWNr
cy5oIgotI2VuZGlmCi0KLSNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKKyNpbmNs
dWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdl
ck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKICNpbmNsdWRlICJXZWJz
aXRlRGF0YVN0b3JlLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIK
QEAgLTM5LDIwICszNiwyMyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSFRUUENvb2tpZUFjY2VwdFBv
bGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2luY2x1ZGUgIkRlZmF1bHRXZWJCcm93c2VyQ2hlY2tz
LmgiCisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogbmFtZXNwYWNlIEFQSSB7
CiAKIEhUVFBDb29raWVTdG9yZTo6SFRUUENvb2tpZVN0b3JlKFdlYktpdDo6V2Vic2l0ZURhdGFT
dG9yZSYgd2Vic2l0ZURhdGFTdG9yZSkKLSAgICA6IG1fb3duaW5nRGF0YVN0b3JlKHdlYnNpdGVE
YXRhU3RvcmUpCisgICAgOiBtX3Nlc3Npb25JRCh3ZWJzaXRlRGF0YVN0b3JlLnNlc3Npb25JRCgp
KQorICAgICwgbV9vd25pbmdEYXRhU3RvcmUod2Vic2l0ZURhdGFTdG9yZSkKIHsKIH0KIAogSFRU
UENvb2tpZVN0b3JlOjp+SFRUUENvb2tpZVN0b3JlKCkKIHsKICAgICBBU1NFUlQobV9vYnNlcnZl
cnMuY29tcHV0ZXNFbXB0eSgpKTsKLSAgICBBU1NFUlQoIW1fb2JzZXJ2ZWRDb29raWVNYW5hZ2Vy
UHJveHkpOwotICAgIEFTU0VSVCghbV9jb29raWVNYW5hZ2VyUHJveHlPYnNlcnZlcik7CiB9CiAK
IHZvaWQgSFRUUENvb2tpZVN0b3JlOjpmaWx0ZXJBcHBCb3VuZENvb2tpZXMoVmVjdG9yPFdlYkNv
cmU6OkNvb2tpZT4mJiBjb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJD
b3JlOjpDb29raWU+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNzgsMTExICs3OCw5MyBA
QCB2b2lkIEhUVFBDb29raWVTdG9yZTo6ZmlsdGVyQXBwQm91bmRDb29raWVzKFZlY3RvcjxXZWJD
b3JlOjpDb29raWU+JiYgY29va2llcywgQwogCiB2b2lkIEhUVFBDb29raWVTdG9yZTo6Y29va2ll
cyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+Jik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgaWYgKCFtX293bmluZ0RhdGFTdG9yZSkKLSAg
ICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7Ci0gICAgYXV0byYgY29va2llTWFu
YWdlciA9IG1fb3duaW5nRGF0YVN0b3JlLT5uZXR3b3JrUHJvY2VzcygpLmNvb2tpZU1hbmFnZXIo
KTsKLSAgICBjb29raWVNYW5hZ2VyLmdldEFsbENvb2tpZXMobV9vd25pbmdEYXRhU3RvcmUtPnNl
c3Npb25JRCgpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIChWZWN0b3I8V2ViQ29yZTo6
Q29va2llPiYmIGNvb2tpZXMpIG11dGFibGUgewotICAgICAgICBmaWx0ZXJBcHBCb3VuZENvb2tp
ZXMoV1RGTW92ZShjb29raWVzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgIH0p
OworICAgIGlmIChhdXRvKiBuZXR3b3JrUHJvY2VzcyA9IG5ldHdvcmtQcm9jZXNzSWZFeGlzdHMo
KSkgeworICAgICAgICBuZXR3b3JrUHJvY2Vzcy0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpXZWJDb29raWVNYW5hZ2VyOjpHZXRBbGxDb29raWVzKG1fc2Vzc2lvbklEKSwgW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXSAoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJiBjb29raWVzKSBt
dXRhYmxlIHsKKyAgICAgICAgICAgIGZpbHRlckFwcEJvdW5kQ29va2llcyhXVEZNb3ZlKGNvb2tp
ZXMpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgIH0pOworICAgIH0gZWxz
ZQorICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOwogfQogCiB2b2lkIEhUVFBDb29raWVT
dG9yZTo6Y29va2llc0ZvclVSTChXVEY6OlVSTCYmIHVybCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAg
ICBpZiAoIW1fb3duaW5nRGF0YVN0b3JlKQotICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRs
ZXIoeyB9KTsKLSAgICBhdXRvJiBjb29raWVNYW5hZ2VyID0gbV9vd25pbmdEYXRhU3RvcmUtPm5l
dHdvcmtQcm9jZXNzKCkuY29va2llTWFuYWdlcigpOwotICAgIGNvb2tpZU1hbmFnZXIuZ2V0Q29v
a2llcyhtX293bmluZ0RhdGFTdG9yZS0+c2Vzc2lvbklEKCksIHVybCwgW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXSAoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJiBjb29raWVzKSBtdXRhYmxl
IHsKLSAgICAgICAgZmlsdGVyQXBwQm91bmRDb29raWVzKFdURk1vdmUoY29va2llcyksIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICB9KTsKKyAgICBpZiAoYXV0byogbmV0d29ya1By
b2Nlc3MgPSBuZXR3b3JrUHJvY2Vzc0lmRXhpc3RzKCkpIHsKKyAgICAgICAgbmV0d29ya1Byb2Nl
c3MtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6R2V0Q29v
a2llcyhtX3Nlc3Npb25JRCwgdXJsKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhp
cyB9LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoVmVj
dG9yPFdlYkNvcmU6OkNvb2tpZT4mJiBjb29raWVzKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGZp
bHRlckFwcEJvdW5kQ29va2llcyhXVEZNb3ZlKGNvb2tpZXMpLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CisgICAgICAgIH0pOworICAgIH0gZWxzZQorICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcih7IH0pOwogfQogCiB2b2lkIEhUVFBDb29raWVTdG9yZTo6c2V0Q29va2llcyhWZWN0b3I8
V2ViQ29yZTo6Q29va2llPiYmIGNvb2tpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBmaWx0ZXJBcHBCb3VuZENvb2tpZXMoV1RGTW92ZShj
b29raWVzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoYXV0byYmIGFwcEJvdW5kQ29v
a2llcykgbXV0YWJsZSB7Ci0gICAgICAgIGlmICghbV9vd25pbmdEYXRhU3RvcmUpCi0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIGF1dG8mIGNvb2tpZU1hbmFnZXIgPSBtX293bmluZ0RhdGFT
dG9yZS0+bmV0d29ya1Byb2Nlc3MoKS5jb29raWVNYW5hZ2VyKCk7Ci0gICAgICAgIGNvb2tpZU1h
bmFnZXIuc2V0Q29va2llcyhtX293bmluZ0RhdGFTdG9yZS0+c2Vzc2lvbklEKCksIGFwcEJvdW5k
Q29va2llcywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgICAgICBpZiAoYXV0byog
bmV0d29ya1Byb2Nlc3MgPSBuZXR3b3JrUHJvY2Vzc0xhdW5jaGluZ0lmTmVjZXNzYXJ5KCkpCisg
ICAgICAgICAgICBuZXR3b3JrUHJvY2Vzcy0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpX
ZWJDb29raWVNYW5hZ2VyOjpTZXRDb29raWUobV9zZXNzaW9uSUQsIGFwcEJvdW5kQ29va2llcyks
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoKTsKICAgICB9KTsKIH0KIAogdm9pZCBIVFRQQ29va2llU3RvcmU6
OmRlbGV0ZUNvb2tpZShjb25zdCBXZWJDb3JlOjpDb29raWUmIGNvb2tpZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGlmICghbV9vd25pbmdE
YXRhU3RvcmUpCi0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIGF1dG8m
IGNvb2tpZU1hbmFnZXIgPSBtX293bmluZ0RhdGFTdG9yZS0+bmV0d29ya1Byb2Nlc3MoKS5jb29r
aWVNYW5hZ2VyKCk7Ci0gICAgY29va2llTWFuYWdlci5kZWxldGVDb29raWUobV9vd25pbmdEYXRh
U3RvcmUtPnNlc3Npb25JRCgpLCBjb29raWUsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
KyAgICBpZiAoYXV0byogbmV0d29ya1Byb2Nlc3MgPSBuZXR3b3JrUHJvY2Vzc0lmRXhpc3RzKCkp
CisgICAgICAgIG5ldHdvcmtQcm9jZXNzLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Oldl
YkNvb2tpZU1hbmFnZXI6OkRlbGV0ZUNvb2tpZShtX3Nlc3Npb25JRCwgY29va2llKSwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIGVsc2UKKyAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKIH0KIAogdm9pZCBIVFRQQ29va2llU3RvcmU6OmRlbGV0ZUFsbENvb2tpZXMoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGlmICghbV9v
d25pbmdEYXRhU3RvcmUpCi0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigpOwotICAg
IGF1dG8mIGNvb2tpZU1hbmFnZXIgPSBtX293bmluZ0RhdGFTdG9yZS0+bmV0d29ya1Byb2Nlc3Mo
KS5jb29raWVNYW5hZ2VyKCk7Ci0gICAgY29va2llTWFuYWdlci5kZWxldGVBbGxDb29raWVzKG1f
b3duaW5nRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSk7Ci0gICAgLy8gRklYTUU6IFRoZSBDb21wbGV0
aW9uSGFuZGxlciBzaG91bGQgYmUgcGFzc2VkIHRvIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6ZGVs
ZXRlQWxsQ29va2llcy4KLSAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOworICAgIGlmIChhdXRvKiBuZXR3b3JrUHJvY2VzcyA9IG5ldHdvcmtQ
cm9jZXNzSWZFeGlzdHMoKSkKKyAgICAgICAgbmV0d29ya1Byb2Nlc3MtPnNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6RGVsZXRlQWxsQ29va2llcyhtX3Nlc3Np
b25JRCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBlbHNlCisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7Cit9CisKK3ZvaWQgSFRUUENvb2tpZVN0b3JlOjpkZWxldGVDb29r
aWVzRm9ySG9zdG5hbWVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIGhvc3RuYW1lcywgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmIChh
dXRvKiBuZXR3b3JrUHJvY2VzcyA9IG5ldHdvcmtQcm9jZXNzSWZFeGlzdHMoKSkKKyAgICAgICAg
bmV0d29ya1Byb2Nlc3MtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQ29va2llTWFu
YWdlcjo6RGVsZXRlQ29va2llc0Zvckhvc3RuYW1lcyhtX3Nlc3Npb25JRCwgaG9zdG5hbWVzKSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIGVsc2UKKyAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoKTsKIH0KIAogdm9pZCBIVFRQQ29va2llU3RvcmU6OnNldEhUVFBDb29raWVBY2Nl
cHRQb2xpY3koV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBpZiAoIW1fb3du
aW5nRGF0YVN0b3JlKQotICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICBh
dXRvJiBjb29raWVNYW5hZ2VyID0gbV9vd25pbmdEYXRhU3RvcmUtPm5ldHdvcmtQcm9jZXNzKCku
Y29va2llTWFuYWdlcigpOwotICAgIGNvb2tpZU1hbmFnZXIuc2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeShtX293bmluZ0RhdGFTdG9yZS0+c2Vzc2lvbklEKCksIHBvbGljeSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOworICAgIGlmIChhdXRvKiBuZXR3b3JrUHJvY2VzcyA9IG5ldHdvcmtQ
cm9jZXNzTGF1bmNoaW5nSWZOZWNlc3NhcnkoKSkKKyAgICAgICAgbmV0d29ya1Byb2Nlc3MtPnNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6U2V0SFRUUENvb2tp
ZUFjY2VwdFBvbGljeShwb2xpY3kpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAg
ZWxzZQorICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQogCiB2b2lkIEhUVFBDb29raWVT
dG9yZTo6Zmx1c2hDb29raWVzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKLSAgICBpZiAoIW1fb3duaW5nRGF0YVN0b3JlKQotICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICBtX293bmluZ0RhdGFTdG9yZS0+Zmx1c2hDb29raWVz
KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBpZiAoYXV0byogbmV0d29ya1Byb2Nl
c3MgPSBuZXR3b3JrUHJvY2Vzc0lmRXhpc3RzKCkpCisgICAgICAgIG5ldHdvcmtQcm9jZXNzLT5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpGbHVzaENvb2tpZXMo
bV9zZXNzaW9uSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgZWxzZQorICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQogCi1jbGFzcyBBUElXZWJDb29raWVNYW5hZ2Vy
UHJveHlPYnNlcnZlciA6IHB1YmxpYyBXZWJDb29raWVNYW5hZ2VyUHJveHk6Ok9ic2VydmVyIHsK
LSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoKLSAgICBleHBsaWNpdCBBUElX
ZWJDb29raWVNYW5hZ2VyUHJveHlPYnNlcnZlcihBUEk6OkhUVFBDb29raWVTdG9yZSYgY29va2ll
U3RvcmUpCi0gICAgICAgIDogbV9jb29raWVTdG9yZShjb29raWVTdG9yZSkKLSAgICB7Ci0gICAg
fQotCi1wcml2YXRlOgotICAgIHZvaWQgY29va2llc0RpZENoYW5nZSgpIGZpbmFsCi0gICAgewot
ICAgICAgICBtX2Nvb2tpZVN0b3JlLmNvb2tpZXNEaWRDaGFuZ2UoKTsKLSAgICB9Ci0KLSAgICBB
UEk6OkhUVFBDb29raWVTdG9yZSYgbV9jb29raWVTdG9yZTsKLX07Ci0KIHZvaWQgSFRUUENvb2tp
ZVN0b3JlOjpyZWdpc3Rlck9ic2VydmVyKE9ic2VydmVyJiBvYnNlcnZlcikKIHsKKyAgICBib29s
IHdhc09ic2VydmluZyA9ICFtX29ic2VydmVycy5jb21wdXRlc0VtcHR5KCk7CiAgICAgbV9vYnNl
cnZlcnMuYWRkKG9ic2VydmVyKTsKLQotICAgIGlmIChtX2Nvb2tpZU1hbmFnZXJQcm94eU9ic2Vy
dmVyIHx8ICFtX293bmluZ0RhdGFTdG9yZSkKKyAgICBpZiAod2FzT2JzZXJ2aW5nKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBBU1NFUlQoIW1fb2JzZXJ2ZWRDb29raWVNYW5hZ2VyUHJveHkpOwot
Ci0gICAgbV9jb29raWVNYW5hZ2VyUHJveHlPYnNlcnZlciA9IG1ha2VVbmlxdWU8QVBJV2ViQ29v
a2llTWFuYWdlclByb3h5T2JzZXJ2ZXI+KCp0aGlzKTsKLQotICAgIG1fb2JzZXJ2ZWRDb29raWVN
YW5hZ2VyUHJveHkgPSBtX293bmluZ0RhdGFTdG9yZS0+bmV0d29ya1Byb2Nlc3MoKS5jb29raWVN
YW5hZ2VyKCk7Ci0gICAgbV9vYnNlcnZlZENvb2tpZU1hbmFnZXJQcm94eS0+cmVnaXN0ZXJPYnNl
cnZlcihtX293bmluZ0RhdGFTdG9yZS0+c2Vzc2lvbklEKCksICptX2Nvb2tpZU1hbmFnZXJQcm94
eU9ic2VydmVyKTsKKyAgICBpZiAoYXV0byogbmV0d29ya1Byb2Nlc3MgPSBuZXR3b3JrUHJvY2Vz
c0xhdW5jaGluZ0lmTmVjZXNzYXJ5KCkpCisgICAgICAgIG5ldHdvcmtQcm9jZXNzLT5zZW5kKE1l
c3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpTdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMobV9z
ZXNzaW9uSUQpLCAwKTsKIH0KIAogdm9pZCBIVFRQQ29va2llU3RvcmU6OnVucmVnaXN0ZXJPYnNl
cnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7CiAgICAgbV9vYnNlcnZlcnMucmVtb3ZlKG9ic2Vy
dmVyKTsKLQogICAgIGlmICghbV9vYnNlcnZlcnMuY29tcHV0ZXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBpZiAobV9vYnNlcnZlZENvb2tpZU1hbmFnZXJQcm94eSAmJiBtX293bmlu
Z0RhdGFTdG9yZSkKLSAgICAgICAgbV9vYnNlcnZlZENvb2tpZU1hbmFnZXJQcm94eS0+dW5yZWdp
c3Rlck9ic2VydmVyKG1fb3duaW5nRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSwgKm1fY29va2llTWFu
YWdlclByb3h5T2JzZXJ2ZXIpOwotCi0gICAgbV9vYnNlcnZlZENvb2tpZU1hbmFnZXJQcm94eSA9
IG51bGxwdHI7Ci0gICAgbV9jb29raWVNYW5hZ2VyUHJveHlPYnNlcnZlciA9IG51bGxwdHI7Cisg
ICAgaWYgKGF1dG8qIG5ldHdvcmtQcm9jZXNzID0gbmV0d29ya1Byb2Nlc3NJZkV4aXN0cygpKQor
ICAgICAgICBuZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6
U3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMobV9zZXNzaW9uSUQpLCAwKTsKIH0KIAogdm9pZCBI
VFRQQ29va2llU3RvcmU6OmNvb2tpZXNEaWRDaGFuZ2UoKQpAQCAtMTkwLDUgKzE3MiwxOSBAQCB2
b2lkIEhUVFBDb29raWVTdG9yZTo6Y29va2llc0RpZENoYW5nZSgpCiAgICAgZm9yIChhdXRvJiBv
YnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQogICAgICAgICBvYnNlcnZlci5jb29raWVzRGlkQ2hhbmdl
KCp0aGlzKTsKIH0KLSAgICAKKworV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5KiBIVFRQQ29v
a2llU3RvcmU6Om5ldHdvcmtQcm9jZXNzSWZFeGlzdHMoKQoreworICAgIGlmICghbV9vd25pbmdE
YXRhU3RvcmUpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBtX293bmluZ0Rh
dGFTdG9yZS0+bmV0d29ya1Byb2Nlc3NJZkV4aXN0cygpOworfQorCitXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzUHJveHkqIEhUVFBDb29raWVTdG9yZTo6bmV0d29ya1Byb2Nlc3NMYXVuY2hpbmdJZk5l
Y2Vzc2FyeSgpCit7CisgICAgaWYgKCFtX293bmluZ0RhdGFTdG9yZSkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgcmV0dXJuICZtX293bmluZ0RhdGFTdG9yZS0+bmV0d29ya1Byb2Nlc3Mo
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmgKaW5kZXggZGM0NDExZmU2ZGJiLi4zNzQxZWRiYTZk
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2ll
U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0
b3JlLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvQ29va2llLmg+CisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1
ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAj
aW5jbHVkZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CkBAIC0zOCwxNCArMzksMTIgQEAgZW51bSBjbGFz
cyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWludDhfdDsKIH0KIAogbmFtZXNwYWNlIFdlYktp
dCB7Ci1jbGFzcyBXZWJDb29raWVNYW5hZ2VyUHJveHk7CitjbGFzcyBOZXR3b3JrUHJvY2Vzc1By
b3h5OwogY2xhc3MgV2Vic2l0ZURhdGFTdG9yZTsKIH0KIAogbmFtZXNwYWNlIEFQSSB7CiAKLWNs
YXNzIEFQSVdlYkNvb2tpZU1hbmFnZXJQcm94eU9ic2VydmVyOwotCiBjbGFzcyBIVFRQQ29va2ll
U3RvcmUgZmluYWwgOiBwdWJsaWMgT2JqZWN0SW1wbDxPYmplY3Q6OlR5cGU6OkhUVFBDb29raWVT
dG9yZT4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8SFRUUENvb2tpZVN0b3JlPiBjcmVhdGUo
V2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlJiB3ZWJzaXRlRGF0YVN0b3JlKQpAQCAtNTksNiArNTgs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb29raWVzRm9yVVJMKFdURjo6VVJMJiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJik+JiYpOwogICAgIHZvaWQg
c2V0Q29va2llcyhWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogICAgIHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBkZWxldGVDb29raWVzRm9y
SG9zdG5hbWVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogICAgIAogICAgIHZvaWQgZGVsZXRlQWxsQ29va2llcyhDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJD
b3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwpAQCAtNzksMTEgKzc5LDEyIEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBIVFRQQ29va2ll
U3RvcmUoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlJik7Ci0gICAgCisgICAgV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzc1Byb3h5KiBuZXR3b3JrUHJvY2Vzc0lmRXhpc3RzKCk7CisgICAgV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzc1Byb3h5KiBuZXR3b3JrUHJvY2Vzc0xhdW5jaGluZ0lmTmVjZXNzYXJ5KCk7
CisKKyAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICBXZWFrUHRyPFdlYktpdDo6
V2Vic2l0ZURhdGFTdG9yZT4gbV9vd25pbmdEYXRhU3RvcmU7CiAgICAgV2Vha0hhc2hTZXQ8T2Jz
ZXJ2ZXI+IG1fb2JzZXJ2ZXJzOwotICAgIFdlYWtQdHI8V2ViS2l0OjpXZWJDb29raWVNYW5hZ2Vy
UHJveHk+IG1fb2JzZXJ2ZWRDb29raWVNYW5hZ2VyUHJveHk7Ci0gICAgc3RkOjp1bmlxdWVfcHRy
PEFQSVdlYkNvb2tpZU1hbmFnZXJQcm94eU9ic2VydmVyPiBtX2Nvb2tpZU1hbmFnZXJQcm94eU9i
c2VydmVyOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3Qu
aAppbmRleCBjZTJmMDA2NzBlNmEuLmVkMTlhM2ZhZTEyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKQEAgLTg3LDcgKzg3LDYgQEAgY2xhc3MgV2ViQmFja0Zv
cndhcmRMaXN0OwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0SXRlbTsKIGNsYXNzIFdlYkNvbG9y
UGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTsKIGNsYXNzIFdlYkNvbnRleHRNZW51TGlzdGVuZXJQ
cm94eTsKLWNsYXNzIFdlYkNvb2tpZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkNyZWRlbnRpYWw7
CiBjbGFzcyBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHk7CiBjbGFzcyBXZWJGcmFtZVBv
bGljeUxpc3RlbmVyUHJveHk7CkBAIC0xMjEsNyArMTIwLDYgQEAgV0tfQUREX0FQSV9NQVBQSU5H
KFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiwgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0
ZW5lclAKIFdLX0FERF9BUElfTUFQUElORyhXS0NvbnRleHRSZWYsIFdlYlByb2Nlc3NQb29sKQog
V0tfQUREX0FQSV9NQVBQSU5HKFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYsIEFQSTo6UHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQ29udGV4dE1lbnVMaXN0
ZW5lclJlZiwgV2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5KQotV0tfQUREX0FQSV9NQVBQSU5H
KFdLQ29va2llTWFuYWdlclJlZiwgV2ViQ29va2llTWFuYWdlclByb3h5KQogV0tfQUREX0FQSV9N
QVBQSU5HKFdLQ3JlZGVudGlhbFJlZiwgV2ViQ3JlZGVudGlhbCkKIFdLX0FERF9BUElfTUFQUElO
RyhXS0Rvd25sb2FkUmVmLCBEb3dubG9hZFByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLRm9y
bVN1Ym1pc3Npb25MaXN0ZW5lclJlZiwgV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKaW5kZXggYzI5YWY4
MTdmZDhiLi5lNzZmYmU3NDIxNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tDb250ZXh0LmNwcApAQCAtNTEsNyArNTEsNiBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiAvLyBTdXBwbGVtZW50cwotI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94
eS5oIgogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAi
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KaW5kZXggZjNmODNjYzU2OWVjLi41
ODkyMjRmNDI0OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1Byb2Nlc3NQb29sLm1tCkBAIC00MCw3ICs0MCw2IEBACiAjaW1wb3J0ICJXS1dlYnNpdGVE
YXRhU3RvcmVJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViQmFja0ZvcndhcmRDYWNoZS5oIgogI2lt
cG9ydCAiV2ViQ2VydGlmaWNhdGVJbmZvLmgiCi0jaW1wb3J0ICJXZWJDb29raWVNYW5hZ2VyUHJv
eHkuaCIKICNpbXBvcnQgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIgogI2ltcG9ydCAi
V2ViUHJvY2Vzc0NhY2hlLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdENvb2tpZU1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFu
YWdlci5jcHAKaW5kZXggNTQzMDYzMzIyMmM1Li5kZTRmMzU5N2E3YjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdENvb2tpZU1hbmFnZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdENvb2tpZU1hbmFnZXIu
Y3BwCkBAIC0yMyw3ICsyMyw2IEBACiAKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5Lmgi
CiAjaW5jbHVkZSAiU291cENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlwZS5oIgotI2luY2x1ZGUg
IldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYktpdENvb2tpZU1hbmFnZXJQ
cml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RW51bVR5cGVzLmgiCiAjaW5jbHVkZSAiV2ViS2l0
V2Vic2l0ZURhdGFNYW5hZ2VyUHJpdmF0ZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcAppbmRleCA0
MDFkMDExMzQxZDAuLjQwNDQzOTBkZTJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKQEAgLTI5
LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkFQSUFycmF5LmgiCiAjaW5jbHVkZSAiQVBJQXV0b21h
dGlvblNlc3Npb25DbGllbnQuaCIKKyNpbmNsdWRlICJBUElIVFRQQ29va2llU3RvcmUuaCIKICNp
bmNsdWRlICJBUElOYXZpZ2F0aW9uLmgiCiAjaW5jbHVkZSAiQVBJT3BlblBhbmVsUGFyYW1ldGVy
cy5oIgogI2luY2x1ZGUgIkF1dG9tYXRpb25Qcm90b2NvbE9iamVjdHMuaCIKQEAgLTM2LDcgKzM3
LDYgQEAKICNpbmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hY3Jvcy5oIgogI2luY2x1ZGUg
IldlYkF1dG9tYXRpb25TZXNzaW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJBdXRvbWF0aW9u
U2Vzc2lvblByb3h5TWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHku
aCIKICNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2Vi
SW5zcGVjdG9yVUlQcm94eS5oIgogI2luY2x1ZGUgIldlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVy
UHJveHkuaCIKQEAgLTE0NzEsOCArMTQ3MSw4IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246
OmFkZFNpbmdsZUNvb2tpZShjb25zdCBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uCiAK
ICAgICBjb29raWUuc2FtZVNpdGUgPSB0b1dlYkNvcmVTYW1lU2l0ZVBvbGljeSgqcGFyc2VkU2Ft
ZVNpdGUpOwogCi0gICAgV2ViQ29va2llTWFuYWdlclByb3h5JiBjb29raWVNYW5hZ2VyID0gcGFn
ZS0+d2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNzKCkuY29va2llTWFuYWdlcigpOwot
ICAgIGNvb2tpZU1hbmFnZXIuc2V0Q29va2llcyhwYWdlLT53ZWJzaXRlRGF0YVN0b3JlKCkuc2Vz
c2lvbklEKCksIHsgY29va2llIH0sIFtjYWxsYmFja10oKSB7CisgICAgYXV0byYgY29va2llU3Rv
cmUgPSBwYWdlLT53ZWJzaXRlRGF0YVN0b3JlKCkuY29va2llU3RvcmUoKTsKKyAgICBjb29raWVT
dG9yZS5zZXRDb29raWVzKHsgY29va2llIH0sIFtjYWxsYmFja10oKSB7CiAgICAgICAgIGNhbGxi
YWNrLT5zZW5kU3VjY2VzcygpOwogICAgIH0pOwogfQpAQCAtMTQ4OCw4ICsxNDg4LDggQEAgSW5z
cGVjdG9yOjpQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiBXZWJBdXRvbWF0aW9uU2Vzc2lv
bjo6ZGVsZXRlQWxsQ29va2llcygKIAogICAgIFN0cmluZyBob3N0ID0gYWN0aXZlVVJMLmhvc3Qo
KS50b1N0cmluZygpOwogCi0gICAgV2ViQ29va2llTWFuYWdlclByb3h5JiBjb29raWVNYW5hZ2Vy
ID0gcGFnZS0+d2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNzKCkuY29va2llTWFuYWdl
cigpOwotICAgIGNvb2tpZU1hbmFnZXIuZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lcyhwYWdlLT53
ZWJzaXRlRGF0YVN0b3JlKCkuc2Vzc2lvbklEKCksIHsgaG9zdCwgZG9tYWluQnlBZGRpbmdEb3RQ
cmVmaXhJZk5lZWRlZChob3N0KSB9KTsKKyAgICBhdXRvJiBjb29raWVTdG9yZSA9IHBhZ2UtPndl
YnNpdGVEYXRhU3RvcmUoKS5jb29raWVTdG9yZSgpOworICAgIGNvb2tpZVN0b3JlLmRlbGV0ZUNv
b2tpZXNGb3JIb3N0bmFtZXMoeyBob3N0LCBkb21haW5CeUFkZGluZ0RvdFByZWZpeElmTmVlZGVk
KGhvc3QpIH0sIFtdIHsgfSk7CiAKICAgICByZXR1cm4geyB9OwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5k
ZXggYjkxMTJkZWVlMjk1Li5jMDQxYzU1OGIyZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzAsNiAr
MzAsNyBAQAogI2luY2x1ZGUgIkFQSUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudC5oIgogI2lu
Y2x1ZGUgIkFQSURhdGFUYXNrLmgiCiAjaW5jbHVkZSAiQVBJRGF0YVRhc2tDbGllbnQuaCIKKyNp
bmNsdWRlICJBUElIVFRQQ29va2llU3RvcmUuaCIKICNpbmNsdWRlICJBUElOYXZpZ2F0aW9uLmgi
CiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oIgogI2luY2x1ZGUgIkF1
dGhlbnRpY2F0aW9uTWFuYWdlci5oIgpAQCAtNDksNyArNTAsNiBAQAogI2luY2x1ZGUgIlNob3Vs
ZEdyYW5kZmF0aGVyU3RhdGlzdGljcy5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBY2Nlc3NTdGF0dXMu
aCIKICNpbmNsdWRlICJXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdC5oIgotI2luY2x1ZGUgIldl
YkNvb2tpZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eS5oIgogI2luY2x1ZGUgIldlYlBhZ2VNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlBhZ2VQ
cm94eS5oIgpAQCAtMjM5LDcgKzIzOSw2IEBAIE5ldHdvcmtQcm9jZXNzUHJveHk6Ok5ldHdvcmtQ
cm9jZXNzUHJveHkoKQogICAgICwgbV9jdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQobWFrZVVu
aXF1ZVJlZjxBUEk6OkN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudD4oKSkKICNlbmRpZgogICAg
ICwgbV90aHJvdHRsZXIoKnRoaXMsIFdlYlByb2Nlc3NQb29sOjphbnlQcm9jZXNzUG9vbE5lZWRz
VUlCYWNrZ3JvdW5kQXNzZXJ0aW9uKCkpCi0gICAgLCBtX2Nvb2tpZU1hbmFnZXIobWFrZVVuaXF1
ZVJlZjxXZWJDb29raWVNYW5hZ2VyUHJveHk+KCp0aGlzKSkKIHsKICAgICBSRUxFQVNFX0xPRyhQ
cm9jZXNzLCAiJXAgLSBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Iiwg
dGhpcyk7CiAKQEAgLTEzODksMTEgKzEzODgsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OnNlbmRQcm9jZXNzRGlkUmVzdW1lKFJlc3VtZVJlYXNvbiByZWFzb24pCiAgICAgICAgIHNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpQcm9jZXNzRGlkUmVzdW1lKHJlYXNvbiA9PSBSZXN1
bWVSZWFzb246OkZvcmVncm91bmRBY3Rpdml0eSksIDApOwogfQogCi12b2lkIE5ldHdvcmtQcm9j
ZXNzUHJveHk6OmZsdXNoQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBzZW5kV2l0aEFz
eW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpGbHVzaENvb2tpZXMoc2Vzc2lvbklE
KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotfQotCiB2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OmFkZFNlc3Npb24oV2Vic2l0ZURhdGFTdG9yZSYgc3RvcmUsIFNlbmRQYXJhbWV0ZXJz
VG9OZXR3b3JrUHJvY2VzcyBzZW5kUGFyYW1ldGVyc1RvTmV0d29ya1Byb2Nlc3MpCiB7CiAgICAg
YXV0byBhZGRSZXN1bHQgPSBtX3dlYnNpdGVEYXRhU3RvcmVzLmFkZChzdG9yZSk7CkBAIC0xODI5
LDYgKzE4MjMsMTIgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjphcHBsaWNhdGlvbldpbGxF
bnRlckZvcmVncm91bmQoKQogICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpBcHBs
aWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKSwgMCk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6Y29va2llc0RpZENoYW5nZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCit7Cisg
ICAgaWYgKGF1dG8qIHdlYnNpdGVEYXRhU3RvcmUgPSB3ZWJzaXRlRGF0YVN0b3JlRnJvbVNlc3Np
b25JRChzZXNzaW9uSUQpKQorICAgICAgICB3ZWJzaXRlRGF0YVN0b3JlLT5jb29raWVTdG9yZSgp
LmNvb2tpZXNEaWRDaGFuZ2UoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRl
ZiBNRVNTQUdFX0NIRUNLCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IDkxNDM2YTA0OTBmZi4uN2Y2MjgxNzRhNDk5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuaApAQCAtODcsNyArODcsNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xh
c3MgRG93bmxvYWRQcm94eTsKIGNsYXNzIERvd25sb2FkUHJveHlNYXA7Ci1jbGFzcyBXZWJDb29r
aWVNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJQYWdlUHJveHk7CiBjbGFzcyBXZWJVc2VyQ29udGVu
dENvbnRyb2xsZXJQcm94eTsKIApAQCAtMjcyLDggKzI3MSw2IEBAIHB1YmxpYzoKICAgICB2b2lk
IHVwZGF0ZUJ1bmRsZUlkZW50aWZpZXIoY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKICAgICB2b2lkIGNsZWFyQnVuZGxlSWRlbnRpZmllcihDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwogCi0gICAgV2ViQ29va2llTWFuYWdlclByb3h5JiBjb29raWVNYW5h
Z2VyKCkgeyByZXR1cm4gbV9jb29raWVNYW5hZ2VyLmdldCgpOyB9Ci0KICAgICBBUEk6OkN1c3Rv
bVByb3RvY29sTWFuYWdlckNsaWVudCYgY3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50KCkgeyBy
ZXR1cm4gbV9jdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQuZ2V0KCk7IH0KIAogI2lmIFBMQVRG
T1JNKENPQ09BKQpAQCAtMzA0LDYgKzMwMSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbmF2aWdh
dGVTZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFVSTCYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4pPiYmKTsK
IAorICAgIHZvaWQgY29va2llc0RpZENoYW5nZShQQUw6OlNlc3Npb25JRCk7CisKIHByaXZhdGU6
CiAgICAgZXhwbGljaXQgTmV0d29ya1Byb2Nlc3NQcm94eSgpOwogCkBAIC00MjAsNyArNDE5LDYg
QEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgV2Vha0hhc2hTZXQ8V2Vic2l0ZURhdGFTdG9yZT4g
bV93ZWJzaXRlRGF0YVN0b3JlczsKLSAgICBVbmlxdWVSZWY8V2ViQ29va2llTWFuYWdlclByb3h5
PiBtX2Nvb2tpZU1hbmFnZXI7CiAgICAgSGFzaE1hcDxEYXRhVGFza0lkZW50aWZpZXIsIFJlZjxB
UEk6OkRhdGFUYXNrPj4gbV9kYXRhVGFza3M7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDAyMWZiMWE1MzE0NC4uOTcxM2MxNjE4
YjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC05NCw2ICs5NCw4IEBAIG1l
c3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgT3Bl
bldpbmRvd0Zyb21TZXJ2aWNlV29ya2VyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3RyaW5n
IHVybFN0cmluZywgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBzZXJ2aWNlV29y
a2VyT3JpZ2luKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gbmV3
UGFnZSkKICAgICBOYXZpZ2F0ZVNlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIgZG9jdW1lbnRJZGVudGlmaWVyLCBVUkwgdXJsKSAtPiAoc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZSkKKworICAgIENvb2tpZXNEaWRDaGFuZ2UoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYTcxOTQxMWFiZTU4Li4wMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE4NCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgotCi0jaW5jbHVkZSAiQVBJQXJyYXkuaCIKLSNpbmNs
dWRlICJBUElTZWN1cml0eU9yaWdpbi5oIgotI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2Fn
ZXMuaCIKLSNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5LmgiCi0jaW5jbHVkZSAiV2ViQ29v
a2llTWFuYWdlck1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlclByb3h5TWVz
c2FnZXMuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgotI2luY2x1ZGUgPFdlYkNvcmUv
Q29va2llLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KLQotbmFt
ZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotV2ViQ29va2llTWFu
YWdlclByb3h5OjpXZWJDb29raWVNYW5hZ2VyUHJveHkoTmV0d29ya1Byb2Nlc3NQcm94eSYgbmV0
d29ya1Byb2Nlc3MpCi0gICAgOiBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQcm9jZXNzKQotewot
ICAgIG5ldHdvcmtQcm9jZXNzLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViQ29va2ll
TWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKLX0KLQotV2ViQ29v
a2llTWFuYWdlclByb3h5Ojp+V2ViQ29va2llTWFuYWdlclByb3h5KCkKLXsKLSAgICBpZiAobV9u
ZXR3b3JrUHJvY2VzcykKLSAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+cmVtb3ZlTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSk7Ci0gICAgQVNTRVJUKG1fY29va2llT2JzZXJ2ZXJzLmlzRW1wdHkoKSk7Ci19Ci0KLXZv
aWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4m
Jik+JiYgY2FsbGJhY2tGdW5jdGlvbikKLXsKLSAgICBpZiAobV9uZXR3b3JrUHJvY2VzcykKLSAg
ICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJD
b29raWVNYW5hZ2VyOjpHZXRIb3N0bmFtZXNXaXRoQ29va2llcyhzZXNzaW9uSUQpLCBXVEZNb3Zl
KGNhbGxiYWNrRnVuY3Rpb24pKTsKLSAgICBlbHNlCi0gICAgICAgIGNhbGxiYWNrRnVuY3Rpb24o
eyB9KTsKLX0KLQotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUNvb2tpZXNGb3JI
b3N0bmFtZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
aG9zdG5hbWVzKQotewotICAgIGlmIChtX25ldHdvcmtQcm9jZXNzKQotICAgICAgICBtX25ldHdv
cmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpEZWxldGVDb29raWVz
Rm9ySG9zdG5hbWVzKHNlc3Npb25JRCwgaG9zdG5hbWVzKSwgMCk7Ci19Ci0KLXZvaWQgV2ViQ29v
a2llTWFuYWdlclByb3h5OjpkZWxldGVBbGxDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKLXsKLSAgICBpZiAobV9uZXR3b3JrUHJvY2VzcykKLSAgICAgICAgbV9uZXR3b3JrUHJvY2Vz
cy0+c2VuZChNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6RGVsZXRlQWxsQ29va2llcyhzZXNz
aW9uSUQpLCAwKTsKLX0KLQotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUNvb2tp
ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IENvb2tpZSYgY29va2llLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2tGdW5jdGlvbikKLXsKLSAgICBpZiAobV9uZXR3
b3JrUHJvY2VzcykKLSAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZFdpdGhBc3luY1JlcGx5
KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpEZWxldGVDb29raWUoc2Vzc2lvbklELCBjb29r
aWUpLCBXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKLSAgICBlbHNlCi0gICAgICAgIGNhbGxi
YWNrRnVuY3Rpb24oKTsKLX0KLQotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUFs
bENvb2tpZXNNb2RpZmllZFNpbmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2FsbFRpbWUg
dGltZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCi17Ci0g
ICAgaWYgKG1fbmV0d29ya1Byb2Nlc3MpCi0gICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6RGVsZXRlQWxsQ29va2ll
c01vZGlmaWVkU2luY2Uoc2Vzc2lvbklELCB0aW1lKSwgV1RGTW92ZShjYWxsYmFja0Z1bmN0aW9u
KSk7Ci0gICAgZWxzZQotICAgICAgICBjYWxsYmFja0Z1bmN0aW9uKCk7Ci19Ci0KLXZvaWQgV2Vi
Q29va2llTWFuYWdlclByb3h5OjpzZXRDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Y29uc3QgVmVjdG9yPENvb2tpZT4mIGNvb2tpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjYWxsYmFja0Z1bmN0aW9uKQotewotICAgIGlmIChtX25ldHdvcmtQcm9jZXNzKQotICAgICAg
ICBtX25ldHdvcmtQcm9jZXNzLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkNvb2tp
ZU1hbmFnZXI6OlNldENvb2tpZShzZXNzaW9uSUQsIGNvb2tpZXMpLCBXVEZNb3ZlKGNhbGxiYWNr
RnVuY3Rpb24pKTsKLSAgICBlbHNlCi0gICAgICAgIGNhbGxiYWNrRnVuY3Rpb24oKTsKLX0KLQot
dm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBWZWN0b3I8Q29va2llPiYgY29va2llcywgY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFVSTCYgbWFpbkRvY3VtZW50VVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2Fs
bGJhY2tGdW5jdGlvbikKLXsKLSAgICBpZiAobV9uZXR3b3JrUHJvY2VzcykKLSAgICAgICAgbV9u
ZXR3b3JrUHJvY2Vzcy0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5h
Z2VyOjpTZXRDb29raWVzKHNlc3Npb25JRCwgY29va2llcywgdXJsLCBtYWluRG9jdW1lbnRVUkwp
LCBXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKLSAgICBlbHNlCi0gICAgICAgIGNhbGxiYWNr
RnVuY3Rpb24oKTsKLX0KLQotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldEFsbENvb2tp
ZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3Rv
cjxDb29raWU+JiYpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCi17Ci0gICAgaWYgKG1fbmV0d29ya1By
b2Nlc3MpCi0gICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6V2ViQ29va2llTWFuYWdlcjo6R2V0QWxsQ29va2llcyhzZXNzaW9uSUQpLCBXVEZNb3Zl
KGNhbGxiYWNrRnVuY3Rpb24pKTsKLSAgICBlbHNlCi0gICAgICAgIGNhbGxiYWNrRnVuY3Rpb24o
eyB9KTsKLX0KLQotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldENvb2tpZXMoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIHVybCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChWZWN0b3I8Q29va2llPiYmKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQotewotICAgIGlmIChtX25l
dHdvcmtQcm9jZXNzKQotICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OkdldENvb2tpZXMoc2Vzc2lvbklELCB1cmwp
LCBXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKLSAgICBlbHNlCi0gICAgICAgIGNhbGxiYWNr
RnVuY3Rpb24oeyB9KTsKLX0KLQotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnN0YXJ0T2Jz
ZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCi17Ci0gICAgaWYg
KG1fbmV0d29ya1Byb2Nlc3MpCi0gICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYkNvb2tpZU1hbmFnZXI6OlN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhzZXNzaW9u
SUQpLCAwKTsKLX0KLQotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnN0b3BPYnNlcnZpbmdD
b29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKLXsKLSAgICBpZiAobV9uZXR3
b3JrUHJvY2VzcykKLSAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2Vi
Q29va2llTWFuYWdlcjo6U3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoc2Vzc2lvbklEKSwgMCk7
Ci19Ci0KLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpyZWdpc3Rlck9ic2VydmVyKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgT2JzZXJ2ZXImIG9ic2VydmVyKQotewotICAgIGF1dG8gcmVz
dWx0ID0gbV9jb29raWVPYnNlcnZlcnMuc2V0KHNlc3Npb25JRCwgV2Vha0hhc2hTZXQ8T2JzZXJ2
ZXI+KCkpOwotICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUuYWRkKG9ic2VydmVyKTsKLQotICAg
IGlmIChyZXN1bHQuaXNOZXdFbnRyeSkKLSAgICAgICAgc3RhcnRPYnNlcnZpbmdDb29raWVDaGFu
Z2VzKHNlc3Npb25JRCk7Ci19Ci0KLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5Ojp1bnJlZ2lz
dGVyT2JzZXJ2ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPYnNlcnZlciYgb2JzZXJ2ZXIp
Ci17Ci0gICAgYXV0byBpdGVyYXRvciA9IG1fY29va2llT2JzZXJ2ZXJzLmZpbmQoc2Vzc2lvbklE
KTsKLSAgICBpZiAoaXRlcmF0b3IgPT0gbV9jb29raWVPYnNlcnZlcnMuZW5kKCkpCi0gICAgICAg
IHJldHVybjsKLQotICAgIGl0ZXJhdG9yLT52YWx1ZS5yZW1vdmUob2JzZXJ2ZXIpOwotICAgIGlm
ICghaXRlcmF0b3ItPnZhbHVlLmNvbXB1dGVzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgbV9jb29raWVPYnNlcnZlcnMucmVtb3ZlKGl0ZXJhdG9yKTsKLSAgICBzdG9wT2JzZXJ2aW5n
Q29va2llQ2hhbmdlcyhzZXNzaW9uSUQpOwotfQotCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94
eTo6Y29va2llc0RpZENoYW5nZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCi17Ci0gICAgYXV0
byBpdGVyYXRvciA9IG1fY29va2llT2JzZXJ2ZXJzLmZpbmQoc2Vzc2lvbklEKTsKLSAgICBpZiAo
aXRlcmF0b3IgPT0gbV9jb29raWVPYnNlcnZlcnMuZW5kKCkpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBpdGVyYXRvci0+dmFsdWUpCi0gICAgICAgIG9ic2Vy
dmVyLmNvb2tpZXNEaWRDaGFuZ2UoKTsKLX0KLQotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6
OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQsIEhUVFBDb29raWVBY2Nl
cHRQb2xpY3kgcG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2tGdW5j
dGlvbikKLXsKLSAgICBpZiAobV9uZXR3b3JrUHJvY2VzcykKLSAgICAgICAgbV9uZXR3b3JrUHJv
Y2Vzcy0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpTZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSksIFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbikp
OwotICAgIGVsc2UKLSAgICAgICAgY2FsbGJhY2tGdW5jdGlvbigpOwotfQotCi12b2lkIFdlYkNv
b2tpZU1hbmFnZXJQcm94eTo6Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSFRUUENvb2tpZUFjY2VwdFBvbGlj
eSk+JiYgY2FsbGJhY2tGdW5jdGlvbikKLXsKLSAgICBpZiAobV9uZXR3b3JrUHJvY2VzcykKLSAg
ICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJD
b29raWVNYW5hZ2VyOjpHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHNlc3Npb25JRCksIFdURk1v
dmUoY2FsbGJhY2tGdW5jdGlvbikpOwotICAgIGVsc2UKLSAgICAgICAgY2FsbGJhY2tGdW5jdGlv
bihIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZlcik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdl
clByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHku
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2RjZjU0YWQ3YzhiLi4wMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmgK
KysrIC9kZXYvbnVsbApAQCAtMSwxMDMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFn
bWEgb25jZQotCi0jaW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0jaW5jbHVkZSAiR2VuZXJpY0NhbGxi
YWNrLmgiCi0jaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCi0jaW5jbHVkZSAiV2ViQ29udGV4
dFN1cHBsZW1lbnQuaCIKLSNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+Ci0jaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KLSNpbmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQuaD4KLQotI2lmIFVTRShTT1VQKQotI2lu
Y2x1ZGUgIlNvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUuaCIKLSNlbmRpZgotCi1uYW1l
c3BhY2UgQVBJIHsKLWNsYXNzIEFycmF5OwotfQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1zdHJ1
Y3QgQ29va2llOwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViUHJvY2Vzc1Bv
b2w7Ci1jbGFzcyBXZWJQcm9jZXNzUHJveHk7Ci0KLWNsYXNzIFdlYkNvb2tpZU1hbmFnZXJQcm94
eSA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7Ci1wdWJsaWM6Ci0gICAgV2ViQ29va2llTWFuYWdlclByb3h5KE5ldHdvcmtQcm9jZXNz
UHJveHkmKTsKLSAgICB2aXJ0dWFsIH5XZWJDb29raWVNYW5hZ2VyUHJveHkoKTsKLQotICAgIHZv
aWQgZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJik+JiYpOwotICAgIHZvaWQgZGVsZXRlQ29va2llKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpDb29raWUmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwotICAgIHZvaWQgZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lcyhQQUw6OlNlc3Np
b25JRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKLSAgICB2b2lkIGRlbGV0ZUFsbENvb2tpZXMo
UEFMOjpTZXNzaW9uSUQpOwotICAgIHZvaWQgZGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2Uo
UEFMOjpTZXNzaW9uSUQsIFdhbGxUaW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwot
Ci0gICAgdm9pZCBzZXRDb29raWVzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBWZWN0b3I8V2ViQ29y
ZTo6Q29va2llPiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRD
b29raWVzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYsIGNv
bnN0IFVSTCYsIGNvbnN0IFVSTCYgbWFpbkRvY3VtZW50VVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwotCi0gICAgdm9pZCBnZXRBbGxDb29raWVzKFBBTDo6U2Vzc2lvbklELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYpPiYmKTsKLSAgICB2
b2lkIGdldENvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJik+JiYpOwotCi0gICAgdm9pZCBzZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpIVFRQQ29va2ll
QWNjZXB0UG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgZ2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5KT4mJik7Ci0KLSAgICB2b2lkIHN0
YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCk7Ci0gICAgdm9pZCBzdG9w
T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCk7Ci0KLSAgICBjbGFzcyBPYnNl
cnZlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxPYnNlcnZlcj4gewotICAgIHB1YmxpYzoKLSAg
ICAgICAgdmlydHVhbCB+T2JzZXJ2ZXIoKSB7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIGNvb2tp
ZXNEaWRDaGFuZ2UoKSA9IDA7Ci0gICAgfTsKLQotICAgIHZvaWQgcmVnaXN0ZXJPYnNlcnZlcihQ
QUw6OlNlc3Npb25JRCwgT2JzZXJ2ZXImKTsKLSAgICB2b2lkIHVucmVnaXN0ZXJPYnNlcnZlcihQ
QUw6OlNlc3Npb25JRCwgT2JzZXJ2ZXImKTsKLQotI2lmIFVTRShTT1VQKQotICAgIHZvaWQgc2V0
Q29va2llUGVyc2lzdGVudFN0b3JhZ2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgc3Rv
cmFnZVBhdGgsIFNvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUpOwotI2VuZGlmCi0KLXBy
aXZhdGU6Ci0gICAgdm9pZCBjb29raWVzRGlkQ2hhbmdlKFBBTDo6U2Vzc2lvbklEKTsKLQotICAg
IC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKLQotICAgIEhhc2hNYXA8UEFM
OjpTZXNzaW9uSUQsIFdlYWtIYXNoU2V0PE9ic2VydmVyPj4gbV9jb29raWVPYnNlcnZlcnM7Ci0K
LSAgICBXZWFrUHRyPE5ldHdvcmtQcm9jZXNzUHJveHk+IG1fbmV0d29ya1Byb2Nlc3M7Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNzI0YWVkMzAwNDI0Li4wMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyAvZGV2
L251bGwKQEAgLTEsMjUgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBt
ZXQ6Ci0jIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECi0jIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECi0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLSMg
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTAotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgotIyBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgot
IyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLAotIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotCi1tZXNzYWdlcyAtPiBXZWJDb29raWVNYW5hZ2VyUHJveHkgTm90UmVmQ291bnRlZCB7
Ci0gICAgQ29va2llc0RpZENoYW5nZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCi19CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggOWFmMGY2ZDZmNWUx
Li5iNmE4M2Q3ZDBlY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHAKQEAgLTYyLDcgKzYyLDYgQEAKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RJdGVt
LmgiCiAjaW5jbHVkZSAiV2ViQ2VydGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4
dFN1cHBsZW1lbnQuaCIKLSNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKICNpbmNs
dWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJHZW9sb2NhdGlvbk1h
bmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYkluc3BlY3RvclV0aWxpdGllcy5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmNwcAppbmRleCA2NjYzYzA1ZDkxMDguLjgxNGJhN2E5MDlkOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5j
cHAKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNsdWRlICJTaG91bGRHcmFuZGZhdGhlclN0YXRpc3Rp
Y3MuaCIKICNpbmNsdWRlICJTdG9yYWdlQWNjZXNzU3RhdHVzLmgiCiAjaW5jbHVkZSAiV2ViQmFj
a0ZvcndhcmRDYWNoZS5oIgotI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgogI2lu
Y2x1ZGUgIldlYktpdDJJbml0aWFsaXplLmgiCiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCkBAIC0xNzM3LDExICsxNzM2
LDYgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpjbGVhclJlc291cmNlTG9hZFN0YXRpc3RpY3NJ
bldlYlByb2Nlc3NlcyhDb21wbGV0aW9uSGFuZGwKIH0KICNlbmRpZgogCi12b2lkIFdlYnNpdGVE
YXRhU3RvcmU6OmZsdXNoQ29va2llcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCi17Ci0gICAgbmV0d29ya1Byb2Nlc3MoKS5mbHVzaENvb2tpZXMoc2Vzc2lv
bklEKCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLX0KLQogdm9pZCBXZWJzaXRlRGF0
YVN0b3JlOjpzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldChib29sIGFsbG93
cykKIHsKICAgICBuZXR3b3JrUHJvY2VzcygpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrUHJv
Y2Vzczo6U2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2NrZXQoYWxsb3dzKSwgTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNv
Y2tldDo6UmVwbHkoKSwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9zb3VwL1dlYnNpdGVEYXRhU3RvcmVTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL3NvdXAvV2Vic2l0ZURhdGFTdG9yZVNvdXAuY3BwCmluZGV4
IGJjYWViMTJkOTRmZC4uNDkyNzUxMTZiY2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9zb3VwL1dlYnNpdGVEYXRhU3RvcmVTb3VwLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9zb3VwL1dlYnNpdGVEYXRhU3RvcmVT
b3VwLmNwcApAQCAtMjgsNyArMjgsNiBAQAogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUuaCIK
IAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJDb29r
aWVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNp
bmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVQYXJh
bWV0ZXJzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9zb3VwL1dlYlBy
b2Nlc3NQb29sU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9zb3VwL1dlYlByb2Nl
c3NQb29sU291cC5jcHAKaW5kZXggM2E3NWRkZTExYzc2Li5mNDJjNDFkYTBkMzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1Bvb2xTb3VwLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NQb29sU291cC5jcHAK
QEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJNZW1vcnlQcmVzc3VyZU1vbml0b3IuaCIKICNp
bmNsdWRlICJOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIk5l
dHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHku
aCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDFlYzAzMjBkMTE0Yi4u
NDE1YTNjODhhZTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTc1MCwxMCArNzUwLDcgQEAKIAkJMzFGMDYwRTExNjU0MzE4NTAwRjMy
ODFDIC8qIE5ldHdvcmtTb2NrZXRDaGFubmVsTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxRjA2MEREMTY1NDMxNzUwMEYz
MjgxQyAvKiBOZXR3b3JrU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJ
CTMzMDkzNDQ3MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMz
MDkzNDQzMTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLzsgfTsKIAkJMzMwOTM0NDgxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFn
ZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzMwOTM0NDQxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5o
ICovOyB9OwotCQkzMzA5MzQ0OTEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMzMDkzNDQ1MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2Vy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwotCQkzMzA5MzQ0QTEzMTVCOTIyMDA5N0E3
QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzMDkzNDQ2MTMxNUI5MjIwMDk3QTdCQyAvKiBX
ZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovOyB9OwogCQkzMzA5MzQ1MDEzMTVCOTRE
MDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzMwOTM0NEQxMzE1Qjk0RDAwOTdBN0JDIC8qIFdlYkNvb2tp
ZU1hbmFnZXIuaCAqLzsgfTsKLQkJMzMwOTM0NTYxMzE1Qjk3NTAwOTdBN0JDIC8qIFdlYkNvb2tp
ZU1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzMwOTM0NTMxMzE1Qjk3NTAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eS5o
ICovOyB9OwogCQkzMzA5MzQ1QjEzMTVCOTk4MDA5N0E3QkMgLyogV0tDb29raWVNYW5hZ2VyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzA5MzQ1OTEz
MTVCOTk4MDA5N0E3QkMgLyogV0tDb29raWVNYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzMzNjc2M0IxMzBDOTlEQzAwNkM5REUyIC8q
IFdLUmVzb3VyY2VDYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDMzMzY3NjM5MTMwQzk5REMwMDZDOURFMiAvKiBXS1Jlc291cmNlQ2Fj
aGVNYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMzcwRjM0QTMxODI5QkUxRTAwOTAyN0M4IC8qIFdLTmF2aWdhdGlvbkRhdGEuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3MEYzNEExMTgyOUJF
MUUwMDkwMjdDOCAvKiBXS05hdmlnYXRpb25EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTQyNDUsMTQgKzQyNDIsOSBAQAogCQkzMkRCQ0Y1
RTAzNzBBREVFMDBDOTE3ODMgLyogV2ViS2l0MlByZWZpeC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJLaXQyUHJlZml4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTMzMDkzNDQzMTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkNvb2tp
ZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0
L1dlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OwogCQkzMzA5MzQ0NDEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2ll
TWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkNv
b2tpZU1hbmFnZXJNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1dlYkNv
b2tpZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OwotCQkzMzA5MzQ0NTEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdl
YkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291
cmNlcy9XZWJLaXQvV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKLQkJMzMwOTM0NDYxMzE1QjkyMjAwOTdB
N0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IFdlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSBE
ZXJpdmVkU291cmNlcy9XZWJLaXQvV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZXMuaDsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMzMwOTM0NEMxMzE1Qjk0RDAwOTdB
N0JDIC8qIFdlYkNvb2tpZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViQ29va2llTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTMzMDkzNDREMTMxNUI5NEQwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvb2tpZU1hbmFnZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzMwOTM0NEUxMzE1Qjk0RDAwOTdBN0JDIC8qIFdlYkNvb2tp
ZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViQ29va2llTWFu
YWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzMwOTM0NTIx
MzE1Qjk3NTAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMzA5MzQ1MzEzMTVCOTc1MDA5N0E3QkMgLyogV2Vi
Q29va2llTWFuYWdlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YkNvb2tpZU1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMzA5
MzQ1NDEzMTVCOTc1MDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzMwOTM0NTgxMzE1Qjk5ODAwOTdBN0JD
IC8qIFdLQ29va2llTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXS0Nvb2tpZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkz
MzA5MzQ1OTEzMTVCOTk4MDA5N0E3QkMgLyogV0tDb29raWVNYW5hZ2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29va2llTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkzMzM2NzYzODEzMEM5OURDMDA2QzlERTIgLyogV0tSZXNvdXJjZUNhY2hl
TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1Jlc291
cmNlQ2FjaGVNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExNjY0
LDkgKzExNjU2LDYgQEAKIAkJCQk1MUE4NENFMjEyN0YzODZCMDBDQTZFQTQgLyogV2ViQ29udGV4
dE1lbnVQcm94eS5jcHAgKi8sCiAJCQkJNTFBQ0JCODExMjdBOEJBRDAwRDIwM0I5IC8qIFdlYkNv
bnRleHRNZW51UHJveHkuaCAqLywKIAkJCQlCQ0Y0REUyNDE2OEZBNDQ4MDBDOTRBRkMgLyogV2Vi
Q29udGV4dFN1cHBsZW1lbnQuaCAqLywKLQkJCQkzMzA5MzQ1MjEzMTVCOTc1MDA5N0E3QkMgLyog
V2ViQ29va2llTWFuYWdlclByb3h5LmNwcCAqLywKLQkJCQkzMzA5MzQ1MzEzMTVCOTc1MDA5N0E3
QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5LmggKi8sCi0JCQkJMzMwOTM0NTQxMzE1Qjk3NTAw
OTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQlFNTRB
MTRDRTIwRkNGQjdCMDA3RTEzRDggLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmNw
cCAqLywKIAkJCQlFNTY4QjkxRTIwQTNBQjJGMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0
aW9uc0Ryb3Bkb3duLmggKi8sCiAJCQkJRTU1Q0QxRkQyNEQwODgwQjAwNDJEQjlDIC8qIFdlYkRh
dGVUaW1lUGlja2VyLmNwcCAqLywKQEAgLTEyOTE0LDggKzEyOTAzLDYgQEAKIAkJCQkxQTFGRUMx
QjE2MjdCNDU3MDA3MDBGNkQgLyogV2ViQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi8sCiAJCQkJMzMw
OTM0NDMxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLAogCQkJCTMzMDkzNDQ0MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2Vy
TWVzc2FnZXMuaCAqLywKLQkJCQkzMzA5MzQ0NTEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2ll
TWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKLQkJCQkzMzA5MzQ0NjEzMTVCOTIy
MDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLywKIAkJCQlFMzg2
NkIwNjIzOTk5NzlDMDBGODhGRTkgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJRTM4NjZCMDcyMzk5OTc5RDAwRjg4RkU5IC8q
IFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJNZXNzYWdlcy5oICovLAogCQkJCUUz
ODY2QjA0MjM5OTk3OUMwMEY4OEZFOSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3Zp
ZGVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtMTQ2MTQsOCArMTQ2MDEsNiBAQAog
CQkJCTVDN0ZCNDcwMjFFOTdEQzUwMDlFMzI0MSAvKiBXZWJDb29raWVKYXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTMzMDkzNDUwMTMxNUI5NEQwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkzMzA5MzQ0ODEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2ll
TWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKLQkJCQkzMzA5MzQ1NjEzMTVCOTc1MDA5
N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKLQkJCQkzMzA5
MzQ0QTEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDMUREN0IyMTE0REMzOTYwMDVBREFGMyAvKiBXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUREQTBBMjk2MjdFNTVFNEQwMDVFMDg2
RSAvKiBXZWJDb3JlU3RhdGlzdGljcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRERBMEE0MTAyN0U2
NkZCNjAwNUUwODZFIC8qIFdlYkNvcmVUaHJlYWQuaCBpbiBIZWFkZXJzICovLApAQCAtMTcwMjYs
NyArMTcwMTEsNiBAQAogCQkJCTFDMEExOTUzMUM4RkZERkIwMEZFMEVCQiAvKiBXZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFB
MUZFQzFDMTYyN0I0NTcwMDcwMEY2RCAvKiBXZWJDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTMzMDkzNDQ3MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29r
aWVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTMzMDkzNDQ5
MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTM5NjI4REUyMzk2MENDNjAwNjU4RUNEIC8qIFdlYkRl
dmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTM4
NjZCMEIyMzk5QTJERDAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlk
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTM4NjZBRTUyMzk3NDAw
NDAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eS5tbSBp
biBTb3VyY2VzICovLAotLSAKMi4zMi4wIChBcHBsZSBHaXQtMTMyKQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459974</attachid>
            <date>2022-06-02 14:40:00 -0700</date>
            <delta_ts>2022-06-07 11:58:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240931-20220602143959.patch</filename>
            <type>text/plain</type>
            <size>54908</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">RnJvbSA4ODI0MjUzNTA4YzliZjNiM2NmMzAwYWVmMmIzZmFiOGU0NDU2MjZlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4IENocmlzdGVuc2VuIDxhY2hyaXN0ZW5zZW5AYXBwbGUu
Y29tPgpEYXRlOiBUaHUsIDIgSnVuIDIwMjIgMTQ6Mzg6MTggLTA3MDAKU3ViamVjdDogW1BBVENI
XSBSZW1vdmUgV2ViQ29va2llTWFuYWdlclByb3h5LCByZXBsYWNlZCBieQogQVBJOjpIVFRQQ29v
a2llU3RvcmUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MDkzMQoK
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpBbGwgdGhlIEMgQVBJIGluIFdLQ29va2llTWFu
YWdlclJlZiB0aGF0IHVzZWQgdG8gdXNlIGl0IGhhcyBiZWVuIGRlcHJlY2F0ZWQuCkl0IGlzIG5v
dyBhbiB1bm5lZWRlZCBhYnN0cmFjdGlvbi4KCiogU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4
dDoKKiBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CiogU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKiBTb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2U6CiogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
b29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwOgooV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyOjpu
b3RpZnlDb29raWVzRGlkQ2hhbmdlKToKKiBTb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0OgoqIFNv
dXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQ6CiogU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4
dDoKKiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmNwcDoK
KEFQSTo6SFRUUENvb2tpZVN0b3JlOjpIVFRQQ29va2llU3RvcmUpOgooQVBJOjpIVFRQQ29va2ll
U3RvcmU6On5IVFRQQ29va2llU3RvcmUpOgooQVBJOjpIVFRQQ29va2llU3RvcmU6OmNvb2tpZXMp
OgooQVBJOjpIVFRQQ29va2llU3RvcmU6OmNvb2tpZXNGb3JVUkwpOgooQVBJOjpIVFRQQ29va2ll
U3RvcmU6OnNldENvb2tpZXMpOgooQVBJOjpIVFRQQ29va2llU3RvcmU6OmRlbGV0ZUNvb2tpZSk6
CihBUEk6OkhUVFBDb29raWVTdG9yZTo6ZGVsZXRlQWxsQ29va2llcyk6CihBUEk6OkhUVFBDb29r
aWVTdG9yZTo6ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lcyk6CihBUEk6OkhUVFBDb29raWVTdG9y
ZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CihBUEk6OkhUVFBDb29raWVTdG9yZTo6Zmx1
c2hDb29raWVzKToKKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpyZWdpc3Rlck9ic2VydmVyKToKKEFQ
STo6SFRUUENvb2tpZVN0b3JlOjp1bnJlZ2lzdGVyT2JzZXJ2ZXIpOgooQVBJOjpIVFRQQ29va2ll
U3RvcmU6Om5ldHdvcmtQcm9jZXNzSWZFeGlzdHMpOgooQVBJOjpIVFRQQ29va2llU3RvcmU6Om5l
dHdvcmtQcm9jZXNzTGF1bmNoaW5nSWZOZWNlc3NhcnkpOgooQVBJOjpBUElXZWJDb29raWVNYW5h
Z2VyUHJveHlPYnNlcnZlcjo6QVBJV2ViQ29va2llTWFuYWdlclByb3h5T2JzZXJ2ZXIpOiBEZWxl
dGVkLgooKTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENv
b2tpZVN0b3JlLmg6CiogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6
CiogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcDoKKiBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbToKKiBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRDb29raWVNYW5hZ2VyLmNwcDoKKiBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcDoKKFdl
YktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OmFkZFNpbmdsZUNvb2tpZSk6CihXZWJLaXQ6Oldl
YkF1dG9tYXRpb25TZXNzaW9uOjpkZWxldGVBbGxDb29raWVzKToKKiBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgooV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpOZXR3b3JrUHJvY2Vzc1Byb3h5KToKKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3NQcm94eTo6Y29va2llc0RpZENoYW5nZSk6CihXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6
OmZsdXNoQ29va2llcyk6IERlbGV0ZWQuCiogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CiogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgoqIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHA6IFJlbW92ZWQuCiogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5Lmg6IFJlbW92ZWQuCiogU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOiBSZW1vdmVkLgoq
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKiBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKFdlYktpdDo6
V2Vic2l0ZURhdGFTdG9yZTo6Zmx1c2hDb29raWVzKTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9zb3VwL1dlYnNpdGVEYXRhU3RvcmVTb3VwLmNwcDoKKiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NQb29sU291cC5jcHA6CiogU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKLS0tCiBTb3VyY2Uv
V2ViS2l0L0NNYWtlTGlzdHMudHh0ICAgICAgICAgICAgICAgICAgfCAgIDEgLQogU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IHwgICAxIC0KIC4uLi9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgICB8ICAgMyAtCiBTb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgICAgICAgICAgICAgfCAgIDEgLQogLi4uL0Nvb2tpZXMvV2Vi
Q29va2llTWFuYWdlci5jcHAgICAgICAgICAgICAgIHwgICAzICstCiBTb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0ICAgICAgICAgICAgICAgICAgICAgfCAgIDEgLQogU291cmNlL1dlYktpdC9Tb3Vy
Y2VzR1RLLnR4dCAgICAgICAgICAgICAgICAgIHwgICAxIC0KIFNvdXJjZS9XZWJLaXQvU291cmNl
c1dQRS50eHQgICAgICAgICAgICAgICAgICB8ICAgMSAtCiAuLi4vVUlQcm9jZXNzL0FQSS9BUElI
VFRQQ29va2llU3RvcmUuY3BwICAgICAgfCAxNDAgKysrKysrKy0tLS0tLQogLi4uL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5oIHwgIDEzICstCiBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCAgICAgfCAgIDIgLQogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCAgIHwgICAxIC0KIC4uLi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0gICAgICB8ICAgMSAtCiAuLi4vQVBJL2dsaWIvV2ViS2l0
Q29va2llTWFuYWdlci5jcHAgICAgICAgICAgfCAgIDEgLQogLi4uL0F1dG9tYXRpb24vV2ViQXV0
b21hdGlvblNlc3Npb24uY3BwICAgICAgIHwgIDEwICstCiAuLi4vVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgfCAgMTQgKy0KIC4uLi9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmggICB8ICAgNiArLQogLi4uL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbiAgIHwgICAyICsKIC4uLi9VSVByb2Nlc3MvV2ViQ29va2llTWFu
YWdlclByb3h5LmNwcCAgICAgICB8IDE4OSAtLS0tLS0tLS0tLS0tLS0tLS0KIC4uLi9XZWJLaXQv
VUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oICB8IDEwMyAtLS0tLS0tLS0tCiAuLi4v
V2ViQ29va2llTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICAgICAgICAgfCAgMjUgLS0tCiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgICAgfCAgIDEgLQogLi4uL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwICAgICAgICAgIHwgICA2IC0KIC4uLi9XZWJz
aXRlRGF0YS9zb3VwL1dlYnNpdGVEYXRhU3RvcmVTb3VwLmNwcCB8ICAgMSAtCiAuLi4vVUlQcm9j
ZXNzL3NvdXAvV2ViUHJvY2Vzc1Bvb2xTb3VwLmNwcCAgICAgfCAgIDEgLQogLi4uL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgIHwgIDE2IC0tCiAyNiBmaWxlcyBjaGFu
Z2VkLCA5MyBpbnNlcnRpb25zKCspLCA0NTEgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2
NDQgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcAogZGVs
ZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQ
cm94eS5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29v
a2llTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5kZXggMDY0NzUx
YjczOGFhLi5lYmQ3NTQyN2IxOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMjMxLDcgKzIzMSw2
IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBVSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcgogICAgIFVJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblNlcnZlcgogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1N0b3JlCi0g
ICAgVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eQogICAgIFVJUHJvY2Vzcy9XZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5CiAgICAgVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclBy
b3h5CiAgICAgVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggY2Y0ODU0ZWFiZWZmLi42ZjAx
MmFjNTBhMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKQEAgLTE2MCw3ICsxNjAsNiBAQCAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvVXNlckNv
bnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVD
VF9ESVIpL1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL1VJUHJvY2Vzcy9WaXNpdGVkTGlua1N0b3JlLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3Jk
aW5hdG9yUHJveHkubWVzc2FnZXMuaW4KLSQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJDb29r
aWVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJG
dWxsU2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nl
c3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIp
L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggMjVlMzUyMzM2ZWQ1
Li5mOTFhNzU1YTlmYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdApAQCAtNTAyLDkgKzUwMiw2IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQvV2ViQ29ubmVjdGlvbk1lc3NhZ2VzUmVwbGllcy5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1dlYkNvb2tpZU1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0L1dlYkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0L1dlYkNvb2tpZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaAot
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9XZWJDb29raWVNYW5h
Z2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0L1dlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgKLSQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvV2ViQ29va2llTWFuYWdlclByb3h5
TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlck1lc3NhZ2VSZWNlaXZlci5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvV2ViRGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRl
ck1lc3NhZ2VzUmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNDM2MjRk
MGM5NzkzLi5hZmNiNWM1M2RlNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE3
Myw3ICsxNzMsNiBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlVSVByb2Nlc3MvQ29jb2EvUGxh
eWJhY2tTZXNzaW9uTWFuYWdlclByb3h5IFwKIAlVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eSBcCiAJVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eSBcCi0JVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eSBcCiAJVUlQcm9jZXNz
L1ZpZXdHZXN0dXJlQ29udHJvbGxlciBcCiAJVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eSBcCiAJ
VUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24gXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIu
Y3BwCmluZGV4IDU3OWFmYTk0MzhjZC4uNzVkNzc3MWQ3NWYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3Bw
CkBAIC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1
ZGUgIldlYkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFn
ZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9Db29raWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZVN0b3Jh
Z2UuaD4KQEAgLTEzMCw3ICsxMjksNyBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnNldENvb2tp
ZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBWZWN0b3I8Q29va2llPgogdm9pZCBX
ZWJDb29raWVNYW5hZ2VyOjpub3RpZnlDb29raWVzRGlkQ2hhbmdlKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgIG1fcHJvY2Vz
cy5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OkNvb2tpZXNEaWRDaGFuZ2Uo
c2Vzc2lvbklEKSwgMCk7CisgICAgbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9j
ZXNzUHJveHk6OkNvb2tpZXNEaWRDaGFuZ2Uoc2Vzc2lvbklEKSwgMCk7CiB9CiAKIHZvaWQgV2Vi
Q29va2llTWFuYWdlcjo6c3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IDM2OGVkOGMyZjA5YS4uMWQ2MGFkNzgxOGMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQKQEAgLTQzMyw3ICs0MzMsNiBAQCBVSVByb2Nlc3MvV2ViQ29udGV4dENvbm5l
Y3Rpb25DbGllbnQuY3BwCiBVSVByb2Nlc3MvV2ViQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50
LmNwcAogVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eS5jcHAKIFVJUHJvY2Vz
cy9XZWJDb250ZXh0TWVudVByb3h5LmNwcAotVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94
eS5jcHAKIFVJUHJvY2Vzcy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uY3BwCiBVSVBy
b2Nlc3MvV2ViRGF0ZVRpbWVQaWNrZXIuY3BwCiBVSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94
eS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXNHVEsudHh0CmluZGV4IDNiNTJkMTBhZjY4Zi4uODMyNDNmMGJmZjhjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CisrKyBiL1NvdXJjZS9XZWJL
aXQvU291cmNlc0dUSy50eHQKQEAgLTI4MSw3ICsyODEsNiBAQCBVSVByb2Nlc3MvZ3RrL1dlYlBy
ZWZlcmVuY2VzR3RrLmNwcAogVUlQcm9jZXNzL2d0ay9XZWJUZXh0Q2hlY2tlci5jcHAKIFVJUHJv
Y2Vzcy9ndGsvV2ViVGV4dENoZWNrZXJDbGllbnQuY3BwCiAKLVVJUHJvY2Vzcy9zb3VwL1dlYkNv
b2tpZU1hbmFnZXJQcm94eVNvdXAuY3BwCiBVSVByb2Nlc3Mvc291cC9XZWJQcm9jZXNzUG9vbFNv
dXAuY3BwCiAKIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2dibS9SZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5R0JNLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4
dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQKaW5kZXggYWUyMTgxMDg4ZjgyLi5iMGVk
Zjc3NjBjOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQKKysrIGIv
U291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dApAQCAtMjI2LDcgKzIyNiw2IEBAIFVJUHJvY2Vz
cy9saWJ3cGUvV2ViUGFzdGVib2FyZFByb3h5TGliV1BFLmNwcAogCiBVSVByb2Nlc3MvbGludXgv
TWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcAogCi1VSVByb2Nlc3Mvc291cC9XZWJDb29raWVNYW5h
Z2VyUHJveHlTb3VwLmNwcAogVUlQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1Bvb2xTb3VwLmNwcAog
CiBVSVByb2Nlc3Mvd3BlL1dlYlBhZ2VQcm94eVdQRS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKaW5kZXggZWQzZTFhNmIwYjFj
Li4zY2U3MGE3MDNiMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElIVFRQQ29va2llU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElIVFRQQ29va2llU3RvcmUuY3BwCkBAIC0yNiwxMSArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkFQSUhUVFBDb29raWVTdG9yZS5oIgogCi0jaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKLSNpbmNsdWRlICJEZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5oIgotI2VuZGlmCi0K
LSNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJv
Y2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlck1lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlLmgi
CiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIKQEAgLTM5LDIwICszNiwy
MyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorI2luY2x1ZGUgIkRlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLmgiCisjZW5kaWYKKwog
dXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogbmFtZXNwYWNlIEFQSSB7CiAKIEhUVFBDb29raWVT
dG9yZTo6SFRUUENvb2tpZVN0b3JlKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZSYgd2Vic2l0ZURh
dGFTdG9yZSkKLSAgICA6IG1fb3duaW5nRGF0YVN0b3JlKHdlYnNpdGVEYXRhU3RvcmUpCisgICAg
OiBtX3Nlc3Npb25JRCh3ZWJzaXRlRGF0YVN0b3JlLnNlc3Npb25JRCgpKQorICAgICwgbV9vd25p
bmdEYXRhU3RvcmUod2Vic2l0ZURhdGFTdG9yZSkKIHsKIH0KIAogSFRUUENvb2tpZVN0b3JlOjp+
SFRUUENvb2tpZVN0b3JlKCkKIHsKICAgICBBU1NFUlQobV9vYnNlcnZlcnMuY29tcHV0ZXNFbXB0
eSgpKTsKLSAgICBBU1NFUlQoIW1fb2JzZXJ2ZWRDb29raWVNYW5hZ2VyUHJveHkpOwotICAgIEFT
U0VSVCghbV9jb29raWVNYW5hZ2VyUHJveHlPYnNlcnZlcik7CiB9CiAKIHZvaWQgSFRUUENvb2tp
ZVN0b3JlOjpmaWx0ZXJBcHBCb3VuZENvb2tpZXMoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJiBj
b29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNzgsMTA5ICs3OCw5MyBAQCB2b2lkIEhUVFBDb29r
aWVTdG9yZTo6ZmlsdGVyQXBwQm91bmRDb29raWVzKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYg
Y29va2llcywgQwogCiB2b2lkIEhUVFBDb29raWVTdG9yZTo6Y29va2llcyhDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+Jik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7Ci0gICAgaWYgKCFtX293bmluZ0RhdGFTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNv
bXBsZXRpb25IYW5kbGVyKHsgfSk7Ci0gICAgYXV0byYgY29va2llTWFuYWdlciA9IG1fb3duaW5n
RGF0YVN0b3JlLT5uZXR3b3JrUHJvY2VzcygpLmNvb2tpZU1hbmFnZXIoKTsKLSAgICBjb29raWVN
YW5hZ2VyLmdldEFsbENvb2tpZXMobV9vd25pbmdEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCBbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcildIChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYmIGNvb2tp
ZXMpIG11dGFibGUgewotICAgICAgICBmaWx0ZXJBcHBCb3VuZENvb2tpZXMoV1RGTW92ZShjb29r
aWVzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgIH0pOworICAgIGlmIChhdXRv
KiBuZXR3b3JrUHJvY2VzcyA9IG5ldHdvcmtQcm9jZXNzSWZFeGlzdHMoKSkgeworICAgICAgICBu
ZXR3b3JrUHJvY2Vzcy0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5h
Z2VyOjpHZXRBbGxDb29raWVzKG1fc2Vzc2lvbklEKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBS
ZWYgeyAqdGhpcyB9LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXSAoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJiBjb29raWVzKSBtdXRhYmxlIHsKKyAgICAg
ICAgICAgIGZpbHRlckFwcEJvdW5kQ29va2llcyhXVEZNb3ZlKGNvb2tpZXMpLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgIH0pOworICAgIH0gZWxzZQorICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcih7IH0pOwogfQogCiB2b2lkIEhUVFBDb29raWVTdG9yZTo6Y29va2llc0Zv
clVSTChXVEY6OlVSTCYmIHVybCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29y
ZTo6Q29va2llPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBpZiAoIW1fb3duaW5n
RGF0YVN0b3JlKQotICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKLSAgICBh
dXRvJiBjb29raWVNYW5hZ2VyID0gbV9vd25pbmdEYXRhU3RvcmUtPm5ldHdvcmtQcm9jZXNzKCku
Y29va2llTWFuYWdlcigpOwotICAgIGNvb2tpZU1hbmFnZXIuZ2V0Q29va2llcyhtX293bmluZ0Rh
dGFTdG9yZS0+c2Vzc2lvbklEKCksIHVybCwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAq
dGhpcyB9LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAo
VmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJiBjb29raWVzKSBtdXRhYmxlIHsKLSAgICAgICAgZmls
dGVyQXBwQm91bmRDb29raWVzKFdURk1vdmUoY29va2llcyksIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKLSAgICB9KTsKKyAgICBpZiAoYXV0byogbmV0d29ya1Byb2Nlc3MgPSBuZXR3b3Jr
UHJvY2Vzc0lmRXhpc3RzKCkpIHsKKyAgICAgICAgbmV0d29ya1Byb2Nlc3MtPnNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6R2V0Q29va2llcyhtX3Nlc3Npb25J
RCwgdXJsKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoVmVjdG9yPFdlYkNvcmU6OkNv
b2tpZT4mJiBjb29raWVzKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGZpbHRlckFwcEJvdW5kQ29v
a2llcyhXVEZNb3ZlKGNvb2tpZXMpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAg
ICAgIH0pOworICAgIH0gZWxzZQorICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOwogfQog
CiB2b2lkIEhUVFBDb29raWVTdG9yZTo6c2V0Q29va2llcyhWZWN0b3I8V2ViQ29yZTo6Q29va2ll
PiYmIGNvb2tpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBmaWx0ZXJBcHBCb3VuZENvb2tpZXMoV1RGTW92ZShjb29raWVzKSwgW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXSAoYXV0byYmIGFwcEJvdW5kQ29va2llcykgbXV0YWJsZSB7
Ci0gICAgICAgIGlmICghbV9vd25pbmdEYXRhU3RvcmUpCi0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIGF1dG8mIGNvb2tpZU1hbmFnZXIgPSBtX293bmluZ0RhdGFTdG9yZS0+bmV0d29ya1By
b2Nlc3MoKS5jb29raWVNYW5hZ2VyKCk7Ci0gICAgICAgIGNvb2tpZU1hbmFnZXIuc2V0Q29va2ll
cyhtX293bmluZ0RhdGFTdG9yZS0+c2Vzc2lvbklEKCksIGFwcEJvdW5kQ29va2llcywgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgICAgICBpZiAoYXV0byogbmV0d29ya1Byb2Nlc3Mg
PSBuZXR3b3JrUHJvY2Vzc0xhdW5jaGluZ0lmTmVjZXNzYXJ5KCkpCisgICAgICAgICAgICBuZXR3
b3JrUHJvY2Vzcy0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2Vy
OjpTZXRDb29raWUobV9zZXNzaW9uSUQsIGFwcEJvdW5kQ29va2llcyksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKICAgICB9KTsKIH0KIAogdm9pZCBIVFRQQ29va2llU3RvcmU6OmRlbGV0ZUNvb2tpZShj
b25zdCBXZWJDb3JlOjpDb29raWUmIGNvb2tpZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGlmICghbV9vd25pbmdEYXRhU3RvcmUpCi0gICAg
ICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIGF1dG8mIGNvb2tpZU1hbmFnZXIg
PSBtX293bmluZ0RhdGFTdG9yZS0+bmV0d29ya1Byb2Nlc3MoKS5jb29raWVNYW5hZ2VyKCk7Ci0g
ICAgY29va2llTWFuYWdlci5kZWxldGVDb29raWUobV9vd25pbmdEYXRhU3RvcmUtPnNlc3Npb25J
RCgpLCBjb29raWUsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBpZiAoYXV0byog
bmV0d29ya1Byb2Nlc3MgPSBuZXR3b3JrUHJvY2Vzc0lmRXhpc3RzKCkpCisgICAgICAgIG5ldHdv
cmtQcm9jZXNzLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6
OkRlbGV0ZUNvb2tpZShtX3Nlc3Npb25JRCwgY29va2llKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOworICAgIGVsc2UKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAogdm9p
ZCBIVFRQQ29va2llU3RvcmU6OmRlbGV0ZUFsbENvb2tpZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGlmICghbV9vd25pbmdEYXRhU3RvcmUp
Ci0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIGF1dG8mIGNvb2tpZU1h
bmFnZXIgPSBtX293bmluZ0RhdGFTdG9yZS0+bmV0d29ya1Byb2Nlc3MoKS5jb29raWVNYW5hZ2Vy
KCk7Ci0gICAgY29va2llTWFuYWdlci5kZWxldGVBbGxDb29raWVzKG1fb3duaW5nRGF0YVN0b3Jl
LT5zZXNzaW9uSUQoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIGlmIChhdXRv
KiBuZXR3b3JrUHJvY2VzcyA9IG5ldHdvcmtQcm9jZXNzSWZFeGlzdHMoKSkKKyAgICAgICAgbmV0
d29ya1Byb2Nlc3MtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdl
cjo6RGVsZXRlQWxsQ29va2llcyhtX3Nlc3Npb25JRCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKKyAgICBlbHNlCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9CisKK3ZvaWQg
SFRUUENvb2tpZVN0b3JlOjpkZWxldGVDb29raWVzRm9ySG9zdG5hbWVzKGNvbnN0IFZlY3RvcjxX
VEY6OlN0cmluZz4mIGhvc3RuYW1lcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIGlmIChhdXRvKiBuZXR3b3JrUHJvY2VzcyA9IG5ldHdvcmtQ
cm9jZXNzSWZFeGlzdHMoKSkKKyAgICAgICAgbmV0d29ya1Byb2Nlc3MtPnNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6RGVsZXRlQ29va2llc0Zvckhvc3RuYW1l
cyhtX3Nlc3Npb25JRCwgaG9zdG5hbWVzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwor
ICAgIGVsc2UKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAogdm9pZCBIVFRQQ29v
a2llU3RvcmU6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6SFRUUENvb2tpZUFj
Y2VwdFBvbGljeSBwb2xpY3ksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKLSAgICBpZiAoIW1fb3duaW5nRGF0YVN0b3JlKQotICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICBhdXRvJiBjb29raWVNYW5hZ2VyID0gbV9vd25pbmdE
YXRhU3RvcmUtPm5ldHdvcmtQcm9jZXNzKCkuY29va2llTWFuYWdlcigpOwotICAgIGNvb2tpZU1h
bmFnZXIuc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShtX293bmluZ0RhdGFTdG9yZS0+c2Vzc2lv
bklEKCksIHBvbGljeSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIGlmIChhdXRv
KiBuZXR3b3JrUHJvY2VzcyA9IG5ldHdvcmtQcm9jZXNzTGF1bmNoaW5nSWZOZWNlc3NhcnkoKSkK
KyAgICAgICAgbmV0d29ya1Byb2Nlc3MtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2Vi
Q29va2llTWFuYWdlcjo6U2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShwb2xpY3kpLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgZWxzZQorICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cigpOwogfQogCiB2b2lkIEhUVFBDb29raWVTdG9yZTo6Zmx1c2hDb29raWVzKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBpZiAoIW1fb3duaW5n
RGF0YVN0b3JlKQotICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICBtX293
bmluZ0RhdGFTdG9yZS0+Zmx1c2hDb29raWVzKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
KyAgICBpZiAoYXV0byogbmV0d29ya1Byb2Nlc3MgPSBuZXR3b3JrUHJvY2Vzc0lmRXhpc3RzKCkp
CisgICAgICAgIG5ldHdvcmtQcm9jZXNzLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzOjpGbHVzaENvb2tpZXMobV9zZXNzaW9uSUQpLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CisgICAgZWxzZQorICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQog
Ci1jbGFzcyBBUElXZWJDb29raWVNYW5hZ2VyUHJveHlPYnNlcnZlciA6IHB1YmxpYyBXZWJDb29r
aWVNYW5hZ2VyUHJveHk6Ok9ic2VydmVyIHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
LXB1YmxpYzoKLSAgICBleHBsaWNpdCBBUElXZWJDb29raWVNYW5hZ2VyUHJveHlPYnNlcnZlcihB
UEk6OkhUVFBDb29raWVTdG9yZSYgY29va2llU3RvcmUpCi0gICAgICAgIDogbV9jb29raWVTdG9y
ZShjb29raWVTdG9yZSkKLSAgICB7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIHZvaWQgY29va2ll
c0RpZENoYW5nZSgpIGZpbmFsCi0gICAgewotICAgICAgICBtX2Nvb2tpZVN0b3JlLmNvb2tpZXNE
aWRDaGFuZ2UoKTsKLSAgICB9Ci0KLSAgICBBUEk6OkhUVFBDb29raWVTdG9yZSYgbV9jb29raWVT
dG9yZTsKLX07Ci0KIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpyZWdpc3Rlck9ic2VydmVyKE9ic2Vy
dmVyJiBvYnNlcnZlcikKIHsKKyAgICBib29sIHdhc09ic2VydmluZyA9ICFtX29ic2VydmVycy5j
b21wdXRlc0VtcHR5KCk7CiAgICAgbV9vYnNlcnZlcnMuYWRkKG9ic2VydmVyKTsKLQotICAgIGlm
IChtX2Nvb2tpZU1hbmFnZXJQcm94eU9ic2VydmVyIHx8ICFtX293bmluZ0RhdGFTdG9yZSkKKyAg
ICBpZiAod2FzT2JzZXJ2aW5nKQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQoIW1fb2Jz
ZXJ2ZWRDb29raWVNYW5hZ2VyUHJveHkpOwotCi0gICAgbV9jb29raWVNYW5hZ2VyUHJveHlPYnNl
cnZlciA9IG1ha2VVbmlxdWU8QVBJV2ViQ29va2llTWFuYWdlclByb3h5T2JzZXJ2ZXI+KCp0aGlz
KTsKLQotICAgIG1fb2JzZXJ2ZWRDb29raWVNYW5hZ2VyUHJveHkgPSBtX293bmluZ0RhdGFTdG9y
ZS0+bmV0d29ya1Byb2Nlc3MoKS5jb29raWVNYW5hZ2VyKCk7Ci0gICAgbV9vYnNlcnZlZENvb2tp
ZU1hbmFnZXJQcm94eS0+cmVnaXN0ZXJPYnNlcnZlcihtX293bmluZ0RhdGFTdG9yZS0+c2Vzc2lv
bklEKCksICptX2Nvb2tpZU1hbmFnZXJQcm94eU9ic2VydmVyKTsKKyAgICBpZiAoYXV0byogbmV0
d29ya1Byb2Nlc3MgPSBuZXR3b3JrUHJvY2Vzc0xhdW5jaGluZ0lmTmVjZXNzYXJ5KCkpCisgICAg
ICAgIG5ldHdvcmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpTdGFy
dE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMobV9zZXNzaW9uSUQpLCAwKTsKIH0KIAogdm9pZCBIVFRQ
Q29va2llU3RvcmU6OnVucmVnaXN0ZXJPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7CiAg
ICAgbV9vYnNlcnZlcnMucmVtb3ZlKG9ic2VydmVyKTsKLQogICAgIGlmICghbV9vYnNlcnZlcnMu
Y29tcHV0ZXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV9vYnNlcnZlZENv
b2tpZU1hbmFnZXJQcm94eSAmJiBtX293bmluZ0RhdGFTdG9yZSkKLSAgICAgICAgbV9vYnNlcnZl
ZENvb2tpZU1hbmFnZXJQcm94eS0+dW5yZWdpc3Rlck9ic2VydmVyKG1fb3duaW5nRGF0YVN0b3Jl
LT5zZXNzaW9uSUQoKSwgKm1fY29va2llTWFuYWdlclByb3h5T2JzZXJ2ZXIpOwotCi0gICAgbV9v
YnNlcnZlZENvb2tpZU1hbmFnZXJQcm94eSA9IG51bGxwdHI7Ci0gICAgbV9jb29raWVNYW5hZ2Vy
UHJveHlPYnNlcnZlciA9IG51bGxwdHI7CisgICAgaWYgKGF1dG8qIG5ldHdvcmtQcm9jZXNzID0g
bmV0d29ya1Byb2Nlc3NJZkV4aXN0cygpKQorICAgICAgICBuZXR3b3JrUHJvY2Vzcy0+c2VuZChN
ZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6U3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMobV9z
ZXNzaW9uSUQpLCAwKTsKIH0KIAogdm9pZCBIVFRQQ29va2llU3RvcmU6OmNvb2tpZXNEaWRDaGFu
Z2UoKQpAQCAtMTg4LDUgKzE3MiwxOSBAQCB2b2lkIEhUVFBDb29raWVTdG9yZTo6Y29va2llc0Rp
ZENoYW5nZSgpCiAgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQogICAgICAg
ICBvYnNlcnZlci5jb29raWVzRGlkQ2hhbmdlKCp0aGlzKTsKIH0KLSAgICAKKworV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzc1Byb3h5KiBIVFRQQ29va2llU3RvcmU6Om5ldHdvcmtQcm9jZXNzSWZFeGlz
dHMoKQoreworICAgIGlmICghbV9vd25pbmdEYXRhU3RvcmUpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIHJldHVybiBtX293bmluZ0RhdGFTdG9yZS0+bmV0d29ya1Byb2Nlc3NJZkV4aXN0
cygpOworfQorCitXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHkqIEhUVFBDb29raWVTdG9yZTo6
bmV0d29ya1Byb2Nlc3NMYXVuY2hpbmdJZk5lY2Vzc2FyeSgpCit7CisgICAgaWYgKCFtX293bmlu
Z0RhdGFTdG9yZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuICZtX293bmlu
Z0RhdGFTdG9yZS0+bmV0d29ya1Byb2Nlc3MoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgQVBJCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3Jl
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmgKaW5k
ZXggZGM0NDExZmU2ZGJiLi4zNzQxZWRiYTZkOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lu
Y2x1ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29va2llLmg+CisjaW5jbHVk
ZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CkBA
IC0zOCwxNCArMzksMTIgQEAgZW51bSBjbGFzcyBIVFRQQ29va2llQWNjZXB0UG9saWN5IDogdWlu
dDhfdDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7Ci1jbGFzcyBXZWJDb29raWVNYW5hZ2VyUHJv
eHk7CitjbGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5OwogY2xhc3MgV2Vic2l0ZURhdGFTdG9yZTsK
IH0KIAogbmFtZXNwYWNlIEFQSSB7CiAKLWNsYXNzIEFQSVdlYkNvb2tpZU1hbmFnZXJQcm94eU9i
c2VydmVyOwotCiBjbGFzcyBIVFRQQ29va2llU3RvcmUgZmluYWwgOiBwdWJsaWMgT2JqZWN0SW1w
bDxPYmplY3Q6OlR5cGU6OkhUVFBDb29raWVTdG9yZT4gewogcHVibGljOgogICAgIHN0YXRpYyBS
ZWY8SFRUUENvb2tpZVN0b3JlPiBjcmVhdGUoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlJiB3ZWJz
aXRlRGF0YVN0b3JlKQpAQCAtNTksNiArNTgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb29raWVz
Rm9yVVJMKFdURjo6VVJMJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6
OkNvb2tpZT4mJik+JiYpOwogICAgIHZvaWQgc2V0Q29va2llcyhWZWN0b3I8V2ViQ29yZTo6Q29v
a2llPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgZGVsZXRlQ29v
a2llKGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CisgICAgdm9pZCBkZWxldGVDb29raWVzRm9ySG9zdG5hbWVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0
cmluZz4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIAogICAgIHZvaWQgZGVs
ZXRlQWxsQ29va2llcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5LCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpAQCAtNzksMTEgKzc5LDEyIEBAIHB1YmxpYzoK
IAogcHJpdmF0ZToKICAgICBIVFRQQ29va2llU3RvcmUoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3Jl
Jik7Ci0gICAgCisgICAgV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5KiBuZXR3b3JrUHJvY2Vz
c0lmRXhpc3RzKCk7CisgICAgV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5KiBuZXR3b3JrUHJv
Y2Vzc0xhdW5jaGluZ0lmTmVjZXNzYXJ5KCk7CisKKyAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Np
b25JRDsKICAgICBXZWFrUHRyPFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZT4gbV9vd25pbmdEYXRh
U3RvcmU7CiAgICAgV2Vha0hhc2hTZXQ8T2JzZXJ2ZXI+IG1fb2JzZXJ2ZXJzOwotICAgIFdlYWtQ
dHI8V2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk+IG1fb2JzZXJ2ZWRDb29raWVNYW5hZ2Vy
UHJveHk7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEFQSVdlYkNvb2tpZU1hbmFnZXJQcm94eU9ic2Vy
dmVyPiBtX2Nvb2tpZU1hbmFnZXJQcm94eU9ic2VydmVyOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCBjZTJmMDA2NzBlNmEuLmVkMTlhM2Zh
ZTEyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKQEAgLTg3
LDcgKzg3LDYgQEAgY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0OwogY2xhc3MgV2ViQmFja0Zvcndh
cmRMaXN0SXRlbTsKIGNsYXNzIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTsKIGNs
YXNzIFdlYkNvbnRleHRNZW51TGlzdGVuZXJQcm94eTsKLWNsYXNzIFdlYkNvb2tpZU1hbmFnZXJQ
cm94eTsKIGNsYXNzIFdlYkNyZWRlbnRpYWw7CiBjbGFzcyBXZWJGb3JtU3VibWlzc2lvbkxpc3Rl
bmVyUHJveHk7CiBjbGFzcyBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk7CkBAIC0xMjEsNyAr
MTIwLDYgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJl
ZiwgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclAKIFdLX0FERF9BUElfTUFQUElORyhXS0Nv
bnRleHRSZWYsIFdlYlByb2Nlc3NQb29sKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQ29udGV4dENv
bmZpZ3VyYXRpb25SZWYsIEFQSTo6UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uKQogV0tfQUREX0FQ
SV9NQVBQSU5HKFdLQ29udGV4dE1lbnVMaXN0ZW5lclJlZiwgV2ViQ29udGV4dE1lbnVMaXN0ZW5l
clByb3h5KQotV0tfQUREX0FQSV9NQVBQSU5HKFdLQ29va2llTWFuYWdlclJlZiwgV2ViQ29va2ll
TWFuYWdlclByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQ3JlZGVudGlhbFJlZiwgV2ViQ3Jl
ZGVudGlhbCkKIFdLX0FERF9BUElfTUFQUElORyhXS0Rvd25sb2FkUmVmLCBEb3dubG9hZFByb3h5
KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclJlZiwgV2ViRm9y
bVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLQ29udGV4dC5jcHAKaW5kZXggYzI5YWY4MTdmZDhiLi5lNzZmYmU3NDIxNjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcApAQCAtNTEsNyArNTEsNiBA
QAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAvLyBTdXBwbGVtZW50cwotI2lu
Y2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9u
TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lmgi
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nl
c3NQb29sLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bv
b2wubW0KaW5kZXggZjNmODNjYzU2OWVjLi41ODkyMjRmNDI0OTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBAIC00MCw3ICs0
MCw2IEBACiAjaW1wb3J0ICJXS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oIgogI2ltcG9ydCAi
V2ViQmFja0ZvcndhcmRDYWNoZS5oIgogI2ltcG9ydCAiV2ViQ2VydGlmaWNhdGVJbmZvLmgiCi0j
aW1wb3J0ICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKICNpbXBvcnQgIldlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc0NhY2hlLmgiCiAjaW1wb3J0ICJX
ZWJQcm9jZXNzTWVzc2FnZXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdENvb2tpZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKaW5kZXggNTQzMDYzMzIyMmM1Li5k
ZTRmMzU5N2E3YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdENvb2tpZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdENvb2tpZU1hbmFnZXIuY3BwCkBAIC0yMyw3ICsyMyw2IEBACiAKICNpbmNs
dWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAiU291cENvb2tpZVBlcnNpc3Rl
bnRTdG9yYWdlVHlwZS5oIgotI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgogI2lu
Y2x1ZGUgIldlYktpdENvb2tpZU1hbmFnZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RW51
bVR5cGVzLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyUHJpdmF0ZS5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0
aW9uU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1
dG9tYXRpb25TZXNzaW9uLmNwcAppbmRleCBkYTBiZDBmZGY1YjEuLjQwNDQzOTBkZTJiZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9u
U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJB
dXRvbWF0aW9uU2Vzc2lvbi5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkFQSUFy
cmF5LmgiCiAjaW5jbHVkZSAiQVBJQXV0b21hdGlvblNlc3Npb25DbGllbnQuaCIKKyNpbmNsdWRl
ICJBUElIVFRQQ29va2llU3RvcmUuaCIKICNpbmNsdWRlICJBUElOYXZpZ2F0aW9uLmgiCiAjaW5j
bHVkZSAiQVBJT3BlblBhbmVsUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIkF1dG9tYXRpb25Qcm90
b2NvbE9iamVjdHMuaCIKQEAgLTM2LDcgKzM3LDYgQEAKICNpbmNsdWRlICJXZWJBdXRvbWF0aW9u
U2Vzc2lvbk1hY3Jvcy5oIgogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5TWVzc2FnZXMuaCIKLSNpbmNs
dWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yVUlQcm94eS5oIgogI2luY2x1ZGUg
IldlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuaCIKQEAgLTE0NzEsOCArMTQ3MSw4IEBA
IHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmFkZFNpbmdsZUNvb2tpZShjb25zdCBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uCiAKICAgICBjb29raWUuc2FtZVNpdGUgPSB0b1dlYkNv
cmVTYW1lU2l0ZVBvbGljeSgqcGFyc2VkU2FtZVNpdGUpOwogCi0gICAgV2ViQ29va2llTWFuYWdl
clByb3h5JiBjb29raWVNYW5hZ2VyID0gcGFnZS0+d2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQ
cm9jZXNzKCkuY29va2llTWFuYWdlcigpOwotICAgIGNvb2tpZU1hbmFnZXIuc2V0Q29va2llcyhw
YWdlLT53ZWJzaXRlRGF0YVN0b3JlKCkuc2Vzc2lvbklEKCksIHsgY29va2llIH0sIFtjYWxsYmFj
a10oKSB7CisgICAgYXV0byYgY29va2llU3RvcmUgPSBwYWdlLT53ZWJzaXRlRGF0YVN0b3JlKCku
Y29va2llU3RvcmUoKTsKKyAgICBjb29raWVTdG9yZS5zZXRDb29raWVzKHsgY29va2llIH0sIFtj
YWxsYmFja10oKSB7CiAgICAgICAgIGNhbGxiYWNrLT5zZW5kU3VjY2VzcygpOwogICAgIH0pOwog
fQpAQCAtMTQ4OCw4ICsxNDg4LDggQEAgSW5zcGVjdG9yOjpQcm90b2NvbDo6RXJyb3JTdHJpbmdP
cjx2b2lkPiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6ZGVsZXRlQWxsQ29va2llcygKIAogICAgIFN0
cmluZyBob3N0ID0gYWN0aXZlVVJMLmhvc3QoKS50b1N0cmluZygpOwogCi0gICAgV2ViQ29va2ll
TWFuYWdlclByb3h5JiBjb29raWVNYW5hZ2VyID0gcGFnZS0+d2Vic2l0ZURhdGFTdG9yZSgpLm5l
dHdvcmtQcm9jZXNzKCkuY29va2llTWFuYWdlcigpOwotICAgIGNvb2tpZU1hbmFnZXIuZGVsZXRl
Q29va2llc0Zvckhvc3RuYW1lcyhwYWdlLT53ZWJzaXRlRGF0YVN0b3JlKCkuc2Vzc2lvbklEKCks
IHsgaG9zdCwgZG9tYWluQnlBZGRpbmdEb3RQcmVmaXhJZk5lZWRlZChob3N0KSB9LCBbXSB7IH0p
OworICAgIGF1dG8mIGNvb2tpZVN0b3JlID0gcGFnZS0+d2Vic2l0ZURhdGFTdG9yZSgpLmNvb2tp
ZVN0b3JlKCk7CisgICAgY29va2llU3RvcmUuZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lcyh7IGhv
c3QsIGRvbWFpbkJ5QWRkaW5nRG90UHJlZml4SWZOZWVkZWQoaG9zdCkgfSwgW10geyB9KTsKIAog
ICAgIHJldHVybiB7IH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBiOTExMmRlZWUyOTUuLmMwNDFj
NTU4YjJlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQVBJ
Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAiQVBJRGF0YVRhc2suaCIK
ICNpbmNsdWRlICJBUElEYXRhVGFza0NsaWVudC5oIgorI2luY2x1ZGUgIkFQSUhUVFBDb29raWVT
dG9yZS5oIgogI2luY2x1ZGUgIkFQSU5hdmlnYXRpb24uaCIKICNpbmNsdWRlICJBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZVByb3h5LmgiCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25NYW5hZ2VyLmgi
CkBAIC00OSw3ICs1MCw2IEBACiAjaW5jbHVkZSAiU2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNz
LmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFjY2Vzc1N0YXR1cy5oIgogI2luY2x1ZGUgIldlYkNvbXBp
bGVkQ29udGVudFJ1bGVMaXN0LmgiCi0jaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlclByb3h5Lmgi
CiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2Vi
UGFnZU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCkBAIC0yMzksNyArMjM5
LDYgQEAgTmV0d29ya1Byb2Nlc3NQcm94eTo6TmV0d29ya1Byb2Nlc3NQcm94eSgpCiAgICAgLCBt
X2N1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudChtYWtlVW5pcXVlUmVmPEFQSTo6Q3VzdG9tUHJv
dG9jb2xNYW5hZ2VyQ2xpZW50PigpKQogI2VuZGlmCiAgICAgLCBtX3Rocm90dGxlcigqdGhpcywg
V2ViUHJvY2Vzc1Bvb2w6OmFueVByb2Nlc3NQb29sTmVlZHNVSUJhY2tncm91bmRBc3NlcnRpb24o
KSkKLSAgICAsIG1fY29va2llTWFuYWdlcihtYWtlVW5pcXVlUmVmPFdlYkNvb2tpZU1hbmFnZXJQ
cm94eT4oKnRoaXMpKQogewogICAgIFJFTEVBU0VfTE9HKFByb2Nlc3MsICIlcCAtIE5ldHdvcmtQ
cm9jZXNzUHJveHk6Ok5ldHdvcmtQcm9jZXNzUHJveHkiLCB0aGlzKTsKIApAQCAtMTM4OSwxMSAr
MTM4OCw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZFByb2Nlc3NEaWRSZXN1bWUo
UmVzdW1lUmVhc29uIHJlYXNvbikKICAgICAgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6OlByb2Nlc3NEaWRSZXN1bWUocmVhc29uID09IFJlc3VtZVJlYXNvbjo6Rm9yZWdyb3VuZEFj
dGl2aXR5KSwgMCk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6Zmx1c2hDb29raWVz
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQotewotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0
d29ya1Byb2Nlc3M6OkZsdXNoQ29va2llcyhzZXNzaW9uSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7Ci19Ci0KIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6YWRkU2Vzc2lvbihXZWJz
aXRlRGF0YVN0b3JlJiBzdG9yZSwgU2VuZFBhcmFtZXRlcnNUb05ldHdvcmtQcm9jZXNzIHNlbmRQ
YXJhbWV0ZXJzVG9OZXR3b3JrUHJvY2VzcykKIHsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fd2Vi
c2l0ZURhdGFTdG9yZXMuYWRkKHN0b3JlKTsKQEAgLTE4MjksNiArMTgyMywxMiBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpCiAgICAg
c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdy
b3VuZCgpLCAwKTsKIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpjb29raWVzRGlkQ2hh
bmdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKK3sKKyAgICBpZiAoYXV0byogd2Vic2l0ZURh
dGFTdG9yZSA9IHdlYnNpdGVEYXRhU3RvcmVGcm9tU2Vzc2lvbklEKHNlc3Npb25JRCkpCisgICAg
ICAgIHdlYnNpdGVEYXRhU3RvcmUtPmNvb2tpZVN0b3JlKCkuY29va2llc0RpZENoYW5nZSgpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIE1FU1NBR0VfQ0hFQ0sKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmgKaW5kZXggOTE0MzZhMDQ5MGZmLi43ZjYyODE3NGE0OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC04Nyw3
ICs4Nyw2IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBEb3dubG9hZFByb3h5OwogY2xh
c3MgRG93bmxvYWRQcm94eU1hcDsKLWNsYXNzIFdlYkNvb2tpZU1hbmFnZXJQcm94eTsKIGNsYXNz
IFdlYlBhZ2VQcm94eTsKIGNsYXNzIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OwogCkBA
IC0yNzIsOCArMjcxLDYgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlQnVuZGxlSWRlbnRpZmll
cihjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQg
Y2xlYXJCdW5kbGVJZGVudGlmaWVyKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKLSAg
ICBXZWJDb29raWVNYW5hZ2VyUHJveHkmIGNvb2tpZU1hbmFnZXIoKSB7IHJldHVybiBtX2Nvb2tp
ZU1hbmFnZXIuZ2V0KCk7IH0KLQogICAgIEFQSTo6Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50
JiBjdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQoKSB7IHJldHVybiBtX2N1c3RvbVByb3RvY29s
TWFuYWdlckNsaWVudC5nZXQoKTsgfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC0zMDQsNiAr
MzAxLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBuYXZpZ2F0ZVNlcnZpY2VXb3JrZXJDbGllbnQo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllciwgY29uc3QgVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPik+JiYpOwogCisgICAgdm9pZCBjb29raWVzRGlk
Q2hhbmdlKFBBTDo6U2Vzc2lvbklEKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5KCk7CiAKQEAgLTQyMCw3ICs0MTksNiBAQCBwcml2YXRlOgogI2VuZGlmCiAK
ICAgICBXZWFrSGFzaFNldDxXZWJzaXRlRGF0YVN0b3JlPiBtX3dlYnNpdGVEYXRhU3RvcmVzOwot
ICAgIFVuaXF1ZVJlZjxXZWJDb29raWVNYW5hZ2VyUHJveHk+IG1fY29va2llTWFuYWdlcjsKICAg
ICBIYXNoTWFwPERhdGFUYXNrSWRlbnRpZmllciwgUmVmPEFQSTo6RGF0YVRhc2s+PiBtX2RhdGFU
YXNrczsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2Fn
ZXMuaW4KaW5kZXggMDIxZmIxYTUzMTQ0Li45NzEzYzE2MThiNTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkubWVzc2FnZXMuaW4KQEAgLTk0LDYgKzk0LDggQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nl
c3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBPcGVuV2luZG93RnJvbVNlcnZpY2VXb3Jr
ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgdXJsU3RyaW5nLCBzdHJ1Y3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHNlcnZpY2VXb3JrZXJPcmlnaW4pIC0+IChzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBuZXdQYWdlKQogICAgIE5hdmlnYXRlU2Vy
dmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJZGVudGlmaWVy
LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBkb2N1bWVudElkZW50
aWZpZXIsIFVSTCB1cmwpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
PiBwYWdlKQorCisgICAgQ29va2llc0RpZENoYW5nZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQp
CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1h
bmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2Vy
UHJveHkuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNTdhZDFiODA4NWYuLjAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2Vy
UHJveHkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTg5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlclByb3h5
LmgiCi0KLSNpbmNsdWRlICJBUElBcnJheS5oIgotI2luY2x1ZGUgIkFQSVNlY3VyaXR5T3JpZ2lu
LmgiCi0jaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgotI2luY2x1ZGUgIk5ldHdv
cmtQcm9jZXNzUHJveHkuaCIKLSNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyTWVzc2FnZXMuaCIK
LSNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldl
YlByb2Nlc3NQb29sLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9Db29raWUuaD4KLSNpbmNsdWRlIDxX
ZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwotCi1XZWJDb29raWVNYW5hZ2VyUHJveHk6OldlYkNvb2tpZU1h
bmFnZXJQcm94eShOZXR3b3JrUHJvY2Vzc1Byb3h5JiBuZXR3b3JrUHJvY2VzcykKLSAgICA6IG1f
bmV0d29ya1Byb2Nlc3MobmV0d29ya1Byb2Nlc3MpCi17Ci0gICAgbmV0d29ya1Byb2Nlc3MuYWRk
TWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSwgKnRoaXMpOwotfQotCi1XZWJDb29raWVNYW5hZ2VyUHJveHk6On5XZWJD
b29raWVNYW5hZ2VyUHJveHkoKQotewotICAgIGlmIChtX25ldHdvcmtQcm9jZXNzKQotICAgICAg
ICBtX25ldHdvcmtQcm9jZXNzLT5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkNv
b2tpZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKLSAgICBpZiAoIW1fY29v
a2llT2JzZXJ2ZXJzLmlzRW1wdHkoKSkKLSAgICAgICAgUkVMRUFTRV9MT0coU3RvcmFnZSwgIldl
YkNvb2tpZU1hbmFnZXJQcm94eTo6fldlYkNvb2tpZU1hbmFnZXJQcm94eSAldSBjb29raWUgb2Jz
ZXJ2ZXJzIHdpbGwgYmUgaW52YWxpZGF0ZWQiLCBtX2Nvb2tpZU9ic2VydmVycy5zaXplKCkpOwot
fQotCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXMo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxT
dHJpbmc+JiYpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCi17Ci0gICAgaWYgKG1fbmV0d29ya1Byb2Nl
c3MpCi0gICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6V2ViQ29va2llTWFuYWdlcjo6R2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoc2Vzc2lvbklEKSwg
V1RGTW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7Ci0gICAgZWxzZQotICAgICAgICBjYWxsYmFja0Z1
bmN0aW9uKHsgfSk7Ci19Ci0KLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpkZWxldGVDb29r
aWVzRm9ySG9zdG5hbWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVmVjdG9yPFN0
cmluZz4mIGhvc3RuYW1lcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQotewotICAgIGlmIChtX25ldHdvcmtQcm9jZXNzKQotICAgICAgICBtX25ldHdvcmtQ
cm9jZXNzLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OkRl
bGV0ZUNvb2tpZXNGb3JIb3N0bmFtZXMoc2Vzc2lvbklELCBob3N0bmFtZXMpLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgZWxzZQotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigp
OwotfQotCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsQ29va2llcyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKLXsKLSAgICBpZiAobV9uZXR3b3JrUHJvY2VzcykKLSAgICAgICAgbV9uZXR3
b3JrUHJvY2Vzcy0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2Vy
OjpEZWxldGVBbGxDb29raWVzKHNlc3Npb25JRCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKLSAgICBlbHNlCi0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci19Ci0KLXZvaWQgV2Vi
Q29va2llTWFuYWdlclByb3h5OjpkZWxldGVDb29raWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBjb25zdCBDb29raWUmIGNvb2tpZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxi
YWNrRnVuY3Rpb24pCi17Ci0gICAgaWYgKG1fbmV0d29ya1Byb2Nlc3MpCi0gICAgICAgIG1fbmV0
d29ya1Byb2Nlc3MtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdl
cjo6RGVsZXRlQ29va2llKHNlc3Npb25JRCwgY29va2llKSwgV1RGTW92ZShjYWxsYmFja0Z1bmN0
aW9uKSk7Ci0gICAgZWxzZQotICAgICAgICBjYWxsYmFja0Z1bmN0aW9uKCk7Ci19Ci0KLXZvaWQg
V2ViQ29va2llTWFuYWdlclByb3h5OjpkZWxldGVBbGxDb29raWVzTW9kaWZpZWRTaW5jZShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdhbGxUaW1lIHRpbWUsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQotewotICAgIGlmIChtX25ldHdvcmtQcm9jZXNzKQot
ICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Oldl
YkNvb2tpZU1hbmFnZXI6OkRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZFNpbmNlKHNlc3Npb25JRCwg
dGltZSksIFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwotICAgIGVsc2UKLSAgICAgICAgY2Fs
bGJhY2tGdW5jdGlvbigpOwotfQotCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6c2V0Q29v
a2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxDb29raWU+JiBjb29r
aWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2tGdW5jdGlvbikKLXsKLSAg
ICBpZiAobV9uZXR3b3JrUHJvY2VzcykKLSAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpTZXRDb29raWUoc2Vzc2lv
bklELCBjb29raWVzKSwgV1RGTW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7Ci0gICAgZWxzZQotICAg
ICAgICBjYWxsYmFja0Z1bmN0aW9uKCk7Ci19Ci0KLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5
OjpzZXRDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVmVjdG9yPENvb2tp
ZT4mIGNvb2tpZXMsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBVUkwmIG1haW5Eb2N1bWVudFVSTCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCi17Ci0gICAgaWYg
KG1fbmV0d29ya1Byb2Nlc3MpCi0gICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6U2V0Q29va2llcyhzZXNzaW9uSUQs
IGNvb2tpZXMsIHVybCwgbWFpbkRvY3VtZW50VVJMKSwgV1RGTW92ZShjYWxsYmFja0Z1bmN0aW9u
KSk7Ci0gICAgZWxzZQotICAgICAgICBjYWxsYmFja0Z1bmN0aW9uKCk7Ci19Ci0KLXZvaWQgV2Vi
Q29va2llTWFuYWdlclByb3h5OjpnZXRBbGxDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8Q29va2llPiYmKT4mJiBjYWxsYmFja0Z1
bmN0aW9uKQotewotICAgIGlmIChtX25ldHdvcmtQcm9jZXNzKQotICAgICAgICBtX25ldHdvcmtQ
cm9jZXNzLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6Okdl
dEFsbENvb2tpZXMoc2Vzc2lvbklEKSwgV1RGTW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7Ci0gICAg
ZWxzZQotICAgICAgICBjYWxsYmFja0Z1bmN0aW9uKHsgfSk7Ci19Ci0KLXZvaWQgV2ViQ29va2ll
TWFuYWdlclByb3h5OjpnZXRDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3Qg
VVJMJiB1cmwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPENvb2tpZT4mJik+JiYgY2Fs
bGJhY2tGdW5jdGlvbikKLXsKLSAgICBpZiAobV9uZXR3b3JrUHJvY2VzcykKLSAgICAgICAgbV9u
ZXR3b3JrUHJvY2Vzcy0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5h
Z2VyOjpHZXRDb29raWVzKHNlc3Npb25JRCwgdXJsKSwgV1RGTW92ZShjYWxsYmFja0Z1bmN0aW9u
KSk7Ci0gICAgZWxzZQotICAgICAgICBjYWxsYmFja0Z1bmN0aW9uKHsgfSk7Ci19Ci0KLXZvaWQg
V2ViQ29va2llTWFuYWdlclByb3h5OjpzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKQotewotICAgIGlmIChtX25ldHdvcmtQcm9jZXNzKQotICAgICAg
ICBtX25ldHdvcmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpTdGFy
dE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoc2Vzc2lvbklEKSwgMCk7Ci19Ci0KLXZvaWQgV2ViQ29v
a2llTWFuYWdlclByb3h5OjpzdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQpCi17Ci0gICAgaWYgKG1fbmV0d29ya1Byb2Nlc3MpCi0gICAgICAgIG1fbmV0
d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OlN0b3BPYnNlcnZp
bmdDb29raWVDaGFuZ2VzKHNlc3Npb25JRCksIDApOwotfQotCi12b2lkIFdlYkNvb2tpZU1hbmFn
ZXJQcm94eTo6cmVnaXN0ZXJPYnNlcnZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9ic2Vy
dmVyJiBvYnNlcnZlcikKLXsKLSAgICBhdXRvIHJlc3VsdCA9IG1fY29va2llT2JzZXJ2ZXJzLnNl
dChzZXNzaW9uSUQsIFdlYWtIYXNoU2V0PE9ic2VydmVyPigpKTsKLSAgICByZXN1bHQuaXRlcmF0
b3ItPnZhbHVlLmFkZChvYnNlcnZlcik7Ci0KLSAgICBpZiAocmVzdWx0LmlzTmV3RW50cnkpCi0g
ICAgICAgIHN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhzZXNzaW9uSUQpOwotfQotCi12b2lk
IFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6dW5yZWdpc3Rlck9ic2VydmVyKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgT2JzZXJ2ZXImIG9ic2VydmVyKQotewotICAgIGF1dG8gaXRlcmF0b3IgPSBt
X2Nvb2tpZU9ic2VydmVycy5maW5kKHNlc3Npb25JRCk7Ci0gICAgaWYgKGl0ZXJhdG9yID09IG1f
Y29va2llT2JzZXJ2ZXJzLmVuZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpdGVyYXRvci0+
dmFsdWUucmVtb3ZlKG9ic2VydmVyKTsKLSAgICBpZiAoIWl0ZXJhdG9yLT52YWx1ZS5jb21wdXRl
c0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fY29va2llT2JzZXJ2ZXJzLnJlbW92
ZShpdGVyYXRvcik7Ci0gICAgc3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoc2Vzc2lvbklEKTsK
LX0KLQotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmNvb2tpZXNEaWRDaGFuZ2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKQotewotICAgIGF1dG8gaXRlcmF0b3IgPSBtX2Nvb2tpZU9ic2Vy
dmVycy5maW5kKHNlc3Npb25JRCk7Ci0gICAgaWYgKGl0ZXJhdG9yID09IG1fY29va2llT2JzZXJ2
ZXJzLmVuZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDog
aXRlcmF0b3ItPnZhbHVlKQotICAgICAgICBvYnNlcnZlci5jb29raWVzRGlkQ2hhbmdlKCk7Ci19
Ci0KLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5
KFBBTDo6U2Vzc2lvbklELCBIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCi17Ci0gICAgaWYgKG1fbmV0d29y
a1Byb2Nlc3MpCi0gICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6U2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShwb2xp
Y3kpLCBXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKLSAgICBlbHNlCi0gICAgICAgIGNhbGxi
YWNrRnVuY3Rpb24oKTsKLX0KLQotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldEhUVFBD
b29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKEhUVFBDb29raWVBY2NlcHRQb2xpY3kpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCi17
Ci0gICAgaWYgKG1fbmV0d29ya1Byb2Nlc3MpCi0gICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6R2V0SFRUUENvb2tp
ZUFjY2VwdFBvbGljeShzZXNzaW9uSUQpLCBXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKLSAg
ICBlbHNlCi0gICAgICAgIGNhbGxiYWNrRnVuY3Rpb24oSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6
TmV2ZXIpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDI3NmVmMDA1ZmNlNS4uMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCisrKyAvZGV2L251bGwKQEAgLTEsMTAzICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkFQSU9i
amVjdC5oIgotI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgotI2luY2x1ZGUgIk1lc3NhZ2VS
ZWNlaXZlci5oIgotI2luY2x1ZGUgIldlYkNvbnRleHRTdXBwbGVtZW50LmgiCi0jaW5jbHVkZSA8
cGFsL1Nlc3Npb25JRC5oPgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1dlYWtI
YXNoU2V0Lmg+Ci0KLSNpZiBVU0UoU09VUCkKLSNpbmNsdWRlICJTb3VwQ29va2llUGVyc2lzdGVu
dFN0b3JhZ2VUeXBlLmgiCi0jZW5kaWYKLQotbmFtZXNwYWNlIEFQSSB7Ci1jbGFzcyBBcnJheTsK
LX0KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotc3RydWN0IENvb2tpZTsKLX0KLQotbmFtZXNwYWNl
IFdlYktpdCB7Ci0KLWNsYXNzIFdlYlByb2Nlc3NQb29sOwotY2xhc3MgV2ViUHJvY2Vzc1Byb3h5
OwotCi1jbGFzcyBXZWJDb29raWVNYW5hZ2VyUHJveHkgOiBwdWJsaWMgSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIFdlYkNv
b2tpZU1hbmFnZXJQcm94eShOZXR3b3JrUHJvY2Vzc1Byb3h5Jik7Ci0gICAgdmlydHVhbCB+V2Vi
Q29va2llTWFuYWdlclByb3h5KCk7Ci0KLSAgICB2b2lkIGdldEhvc3RuYW1lc1dpdGhDb29raWVz
KFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+JiYp
PiYmKTsKLSAgICB2b2lkIGRlbGV0ZUNvb2tpZShQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29y
ZTo6Q29va2llJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIGRlbGV0
ZUNvb2tpZXNGb3JIb3N0bmFtZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIGRlbGV0ZUFsbENvb2tp
ZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9p
ZCBkZWxldGVBbGxDb29raWVzTW9kaWZpZWRTaW5jZShQQUw6OlNlc3Npb25JRCwgV2FsbFRpbWUs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0KLSAgICB2b2lkIHNldENvb2tpZXMoUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldENvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiwgY29uc3QgVVJMJiwgY29uc3QgVVJMJiBtYWlu
RG9jdW1lbnRVUkwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0KLSAgICB2b2lkIGdl
dEFsbENvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9y
PFdlYkNvcmU6OkNvb2tpZT4mJik+JiYpOwotICAgIHZvaWQgZ2V0Q29va2llcyhQQUw6OlNlc3Np
b25JRCwgY29uc3QgVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6
Q29va2llPiYmKT4mJik7Ci0KLSAgICB2b2lkIHNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFM
OjpTZXNzaW9uSUQsIFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3ksIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBB
TDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkhUVFBDb29raWVB
Y2NlcHRQb2xpY3kpPiYmKTsKLQotICAgIHZvaWQgc3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2Vz
KFBBTDo6U2Vzc2lvbklEKTsKLSAgICB2b2lkIHN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFBB
TDo6U2Vzc2lvbklEKTsKLQotICAgIGNsYXNzIE9ic2VydmVyIDogcHVibGljIENhbk1ha2VXZWFr
UHRyPE9ic2VydmVyPiB7Ci0gICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIH5PYnNlcnZlcigp
IHsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgY29va2llc0RpZENoYW5nZSgpID0gMDsKLSAgICB9
OwotCi0gICAgdm9pZCByZWdpc3Rlck9ic2VydmVyKFBBTDo6U2Vzc2lvbklELCBPYnNlcnZlciYp
OwotICAgIHZvaWQgdW5yZWdpc3Rlck9ic2VydmVyKFBBTDo6U2Vzc2lvbklELCBPYnNlcnZlciYp
OwotCi0jaWYgVVNFKFNPVVApCi0gICAgdm9pZCBzZXRDb29raWVQZXJzaXN0ZW50U3RvcmFnZShQ
QUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBzdG9yYWdlUGF0aCwgU291cENvb2tpZVBlcnNp
c3RlbnRTdG9yYWdlVHlwZSk7Ci0jZW5kaWYKLQotcHJpdmF0ZToKLSAgICB2b2lkIGNvb2tpZXNE
aWRDaGFuZ2UoUEFMOjpTZXNzaW9uSUQpOwotCi0gICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIK
LSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2Rl
ciYpIG92ZXJyaWRlOwotCi0gICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgV2Vha0hhc2hTZXQ8
T2JzZXJ2ZXI+PiBtX2Nvb2tpZU9ic2VydmVyczsKLQotICAgIFdlYWtQdHI8TmV0d29ya1Byb2Nl
c3NQcm94eT4gbV9uZXR3b3JrUHJvY2VzczsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MjRhZWQzMDA0
MjQuLjAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVN
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi0j
IENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0j
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQotIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SCi0jIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0jIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0j
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLW1lc3NhZ2VzIC0+IFdlYkNv
b2tpZU1hbmFnZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKLSAgICBDb29raWVzRGlkQ2hhbmdlKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcAppbmRleCA1ODJkODFlN2Q3OWYuLjYyMzYxNjU0ZjM5YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNjIsNyArNjIsNiBAQAog
I2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uaCIKICNpbmNsdWRlICJXZWJDZXJ0aWZp
Y2F0ZUluZm8uaCIKICNpbmNsdWRlICJXZWJDb250ZXh0U3VwcGxlbWVudC5oIgotI2luY2x1ZGUg
IldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVy
cy5oIgogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAi
V2ViSW5zcGVjdG9yVXRpbGl0aWVzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDgxMmRmODFiZjgy
Ni4uMjkxZTE4OWFlZDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMzksNyArMzksNiBAQAogI2lu
Y2x1ZGUgIlNob3VsZEdyYW5kZmF0aGVyU3RhdGlzdGljcy5oIgogI2luY2x1ZGUgIlN0b3JhZ2VB
Y2Nlc3NTdGF0dXMuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZENhY2hlLmgiCi0jaW5jbHVk
ZSAiV2ViQ29va2llTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViS2l0MkluaXRpYWxpemUu
aCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJX
ZWJQYWdlUHJveHkuaCIKQEAgLTE3MDgsMTEgKzE3MDcsNiBAQCB2b2lkIFdlYnNpdGVEYXRhU3Rv
cmU6OmNsZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGljc0luV2ViUHJvY2Vzc2VzKENvbXBsZXRpb25I
YW5kbAogfQogI2VuZGlmCiAKLXZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6Zmx1c2hDb29raWVzKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBuZXR3
b3JrUHJvY2VzcygpLmZsdXNoQ29va2llcyhzZXNzaW9uSUQoKSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOwotfQotCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldEFsbG93c0FueVNTTENl
cnRpZmljYXRlRm9yV2ViU29ja2V0KGJvb2wgYWxsb3dzKQogewogICAgIG5ldHdvcmtQcm9jZXNz
KCkuc2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRBbGxvd3NBbnlTU0xDZXJ0
aWZpY2F0ZUZvcldlYlNvY2tldChhbGxvd3MpLCBNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNl
dEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0OjpSZXBseSgpLCAwKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL3NvdXAvV2Vic2l0ZURh
dGFTdG9yZVNvdXAuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvc291
cC9XZWJzaXRlRGF0YVN0b3JlU291cC5jcHAKaW5kZXggYmNhZWIxMmQ5NGZkLi40OTI3NTExNmJj
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL3NvdXAv
V2Vic2l0ZURhdGFTdG9yZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL3NvdXAvV2Vic2l0ZURhdGFTdG9yZVNvdXAuY3BwCkBAIC0yOCw3ICsyOCw2IEBA
CiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgogCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nl
c3NNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgogI2luY2x1
ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgi
CiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1Bvb2xTb3VwLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1Bvb2xTb3VwLmNwcAppbmRleCAzYTc1
ZGRlMTFjNzYuLmY0MmM0MWRhMGQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3Mvc291cC9XZWJQcm9jZXNzUG9vbFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL3NvdXAvV2ViUHJvY2Vzc1Bvb2xTb3VwLmNwcApAQCAtMjksNyArMjksNiBAQAogI2luY2x1
ZGUgIk1lbW9yeVByZXNzdXJlTW9uaXRvci5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgot
I2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1
bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUg
PHd0Zi9MYW5ndWFnZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggZGNmNWU5OThiZGVlLi40MTUzZDMzNzhhYzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzUwLDEwICs3
NTAsNyBAQAogCQkzMUYwNjBFMTE2NTQzMTg1MDBGMzI4MUMgLyogTmV0d29ya1NvY2tldENoYW5u
ZWxNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzFGMDYwREQxNjU0MzE3NTAwRjMyODFDIC8qIE5ldHdvcmtTb2NrZXRDaGFu
bmVsTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJMzMwOTM0NDcxMzE1QjkyMjAwOTdBN0JD
IC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzMwOTM0NDMxMzE1QjkyMjAwOTdBN0JDIC8q
IFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkzMzA5MzQ0ODEz
MTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzA5MzQ0NDEzMTVCOTIyMDA5N0E3
QkMgLyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2VzLmggKi87IH07Ci0JCTMzMDkzNDQ5MTMxNUI5
MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzMwOTM0NDUxMzE1
QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki87IH07Ci0JCTMzMDkzNDRBMTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJv
eHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzMwOTM0NDYxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3Nh
Z2VzLmggKi87IH07CiAJCTMzMDkzNDUwMTMxNUI5NEQwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5h
Z2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzA5
MzQ0RDEzMTVCOTREMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlci5oICovOyB9OwotCQkzMzA5
MzQ1NjEzMTVCOTc1MDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzA5MzQ1MzEzMTVCOTc1MDA5
N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5LmggKi87IH07CiAJCTMzMDkzNDVCMTMxNUI5
OTgwMDk3QTdCQyAvKiBXS0Nvb2tpZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzMDkzNDU5MTMxNUI5OTgwMDk3QTdCQyAvKiBXS0Nvb2tp
ZU1hbmFnZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkzMzM2NzYzQjEzMEM5OURDMDA2QzlERTIgLyogV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzMzNjc2Mzkx
MzBDOTlEQzAwNkM5REUyIC8qIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzNzBGMzRBMzE4MjlCRTFFMDA5
MDI3QzggLyogV0tOYXZpZ2F0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzcwRjM0QTExODI5QkUxRTAwOTAyN0M4IC8qIFdLTmF2aWdhdGlv
bkRhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtNDI0NywxNCArNDI0NCw5IEBACiAJCTMyREJDRjVFMDM3MEFERUUwMEM5MTc4MyAvKiBXZWJL
aXQyUHJlZml4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdDJQcmVm
aXguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzMwOTM0NDMxMzE1QjkyMjAwOTdB
N0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViQ29va2llTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQvV2ViQ29va2llTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTMzMDkz
NDQ0MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViQ29va2llTWFuYWdlck1lc3NhZ2VzLmg7IHBh
dGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQvV2ViQ29va2llTWFuYWdlck1lc3NhZ2VzLmg7IHNv
dXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07Ci0JCTMzMDkzNDQ1MTMxNUI5MjIwMDk3
QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdC9XZWJDb29raWVNYW5h
Z2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OwotCQkzMzA5MzQ0NjEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclBy
b3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViQ29va2ll
TWFuYWdlclByb3h5TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdC9XZWJD
b29raWVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OwogCQkzMzA5MzQ0QzEzMTVCOTREMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb29raWVNYW5hZ2Vy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzMwOTM0NEQxMzE1Qjk0RDAwOTdB
N0JDIC8qIFdlYkNvb2tpZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViQ29va2llTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMzA5
MzQ0RTEzMTVCOTREMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBXZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkzMzA5MzQ1MjEzMTVCOTc1MDA5N0E3QkMgLyogV2ViQ29v
a2llTWFuYWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTMzMDkzNDUzMTMxNUI5NzUwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29va2llTWFuYWdlclByb3h5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMzMDkzNDU0MTMxNUI5NzUwMDk3QTdCQyAvKiBX
ZWJDb29raWVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
V2ViQ29va2llTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkzMzA5MzQ1ODEzMTVCOTk4MDA5N0E3QkMgLyogV0tDb29raWVNYW5hZ2VyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQ29va2llTWFuYWdlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMzMDkzNDU5MTMxNUI5OTgwMDk3QTdCQyAv
KiBXS0Nvb2tpZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tD
b29raWVNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMzMzY3NjM4MTMw
Qzk5REMwMDZDOURFMiAvKiBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE2NjIsOSArMTE2NTQsNiBAQAogCQkJCTUxQTg0
Q0UyMTI3RjM4NkIwMENBNkVBNCAvKiBXZWJDb250ZXh0TWVudVByb3h5LmNwcCAqLywKIAkJCQk1
MUFDQkI4MTEyN0E4QkFEMDBEMjAzQjkgLyogV2ViQ29udGV4dE1lbnVQcm94eS5oICovLAogCQkJ
CUJDRjRERTI0MTY4RkE0NDgwMEM5NEFGQyAvKiBXZWJDb250ZXh0U3VwcGxlbWVudC5oICovLAot
CQkJCTMzMDkzNDUyMTMxNUI5NzUwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHkuY3Bw
ICovLAotCQkJCTMzMDkzNDUzMTMxNUI5NzUwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJv
eHkuaCAqLywKLQkJCQkzMzA5MzQ1NDEzMTVCOTc1MDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCUU1NEExNENFMjBGQ0ZCN0IwMDdFMTNEOCAvKiBX
ZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uY3BwICovLAogCQkJCUU1NjhCOTFFMjBBM0FC
MkYwMEUzQzg1NiAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uaCAqLywKIAkJCQlF
NTVDRDFGRDI0RDA4ODBCMDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVQaWNrZXIuY3BwICovLApAQCAt
MTI5MTIsOCArMTI5MDEsNiBAQAogCQkJCTFBMUZFQzFCMTYyN0I0NTcwMDcwMEY2RCAvKiBXZWJD
b25uZWN0aW9uTWVzc2FnZXMuaCAqLywKIAkJCQkzMzA5MzQ0MzEzMTVCOTIyMDA5N0E3QkMgLyog
V2ViQ29va2llTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMzMwOTM0NDQxMzE1
QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5oICovLAotCQkJCTMzMDkz
NDQ1MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwICovLAotCQkJCTMzMDkzNDQ2MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5h
Z2VyUHJveHlNZXNzYWdlcy5oICovLAogCQkJCUUzODY2QjA2MjM5OTk3OUMwMEY4OEZFOSAvKiBX
ZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywK
IAkJCQlFMzg2NkIwNzIzOTk5NzlEMDBGODhGRTkgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRh
dGVQcm92aWRlck1lc3NhZ2VzLmggKi8sCiAJCQkJRTM4NjZCMDQyMzk5OTc5QzAwRjg4RkU5IC8q
IFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8sCkBAIC0xNDYxNCw4ICsxNDYwMSw2IEBACiAJCQkJNUM3RkI0NzAyMUU5N0RDNTAwOUUz
MjQxIC8qIFdlYkNvb2tpZUphci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzMwOTM0NTAxMzE1Qjk0
RDAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTMzMDkz
NDQ4MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTMzMDkzNDU2MTMxNUI5NzUwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2Vy
UHJveHkuaCBpbiBIZWFkZXJzICovLAotCQkJCTMzMDkzNDRBMTMxNUI5MjIwMDk3QTdCQyAvKiBX
ZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxREQ3
QjIxMTREQzM5NjAwNUFEQUYzIC8qIFdlYkNvcmVBcmd1bWVudENvZGVycy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRERBMEEyOTYyN0U1NUU0RDAwNUUwODZFIC8qIFdlYkNvcmVTdGF0aXN0aWNzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlEREEwQTQxMDI3RTY2RkI2MDA1RTA4NkUgLyogV2ViQ29yZVRo
cmVhZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNzAwNiw3ICsxNjk5MSw2IEBACiAJCQkJMUMwQTE5
NTMxQzhGRkRGQjAwRkUwRUJCIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUExRkVDMUMxNjI3QjQ1NzAwNzAwRjZEIC8q
IFdlYkNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzMw
OTM0NDcxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMzMwOTM0NDkxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNv
b2tpZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlF
Mzk2MjhERTIzOTYwQ0M2MDA2NThFQ0QgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92
aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzg2NkIwQjIzOTlBMkREMDBGODhGRTkgLyog
V2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlFMzg2NkFFNTIzOTc0MDA0MDBGODhGRTkgLyogV2ViRGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5Lm1tIGluIFNvdXJjZXMgKi8sCi0tIAoyLjMyLjAg
KEFwcGxlIEdpdC0xMzIpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>460070</attachid>
            <date>2022-06-07 11:58:48 -0700</date>
            <delta_ts>2022-06-07 14:31:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240931-20220607115847.patch</filename>
            <type>text/plain</type>
            <size>66047</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">RnJvbSBhYTY3Y2UzMzI5NTM4OTE0NGYzMjk5ZDJiNTczMDI3MTdkZDFhY2Y5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4IENocmlzdGVuc2VuIDxhY2hyaXN0ZW5zZW5AYXBwbGUu
Y29tPgpEYXRlOiBUdWUsIDcgSnVuIDIwMjIgMTE6NTQ6NTggLTA3MDAKU3ViamVjdDogW1BBVENI
XSBSZW1vdmUgV2ViQ29va2llTWFuYWdlclByb3h5LCByZXBsYWNlZCBieQogQVBJOjpIVFRQQ29v
a2llU3RvcmUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MDkzMQoK
UmV2aWV3ZWQgYnkgQnJhZHkgRWlkc29uLgoKKiBTb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0
OgoqIFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKiBTb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgoqIFNvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMubWFrZToKKiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nv
b2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHA6CihXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6Om5v
dGlmeUNvb2tpZXNEaWRDaGFuZ2UpOgoqIFNvdXJjZS9XZWJLaXQvU291cmNlcy50eHQ6CiogU291
cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dDoKKiBTb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0
OgoqIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3BwOgoo
QVBJOjpIVFRQQ29va2llU3RvcmU6OkhUVFBDb29raWVTdG9yZSk6CihBUEk6OkhUVFBDb29raWVT
dG9yZTo6fkhUVFBDb29raWVTdG9yZSk6CihBUEk6OkhUVFBDb29raWVTdG9yZTo6Y29va2llcyk6
CihBUEk6OkhUVFBDb29raWVTdG9yZTo6Y29va2llc0ZvclVSTCk6CihBUEk6OkhUVFBDb29raWVT
dG9yZTo6c2V0Q29va2llcyk6CihBUEk6OkhUVFBDb29raWVTdG9yZTo6ZGVsZXRlQ29va2llKToK
KEFQSTo6SFRUUENvb2tpZVN0b3JlOjpkZWxldGVBbGxDb29raWVzKToKKEFQSTo6SFRUUENvb2tp
ZVN0b3JlOjpkZWxldGVDb29raWVzRm9ySG9zdG5hbWVzKToKKEFQSTo6SFRUUENvb2tpZVN0b3Jl
OjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KToKKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpnZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5KToKKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpmbHVzaENvb2tp
ZXMpOgooQVBJOjpIVFRQQ29va2llU3RvcmU6OnJlZ2lzdGVyT2JzZXJ2ZXIpOgooQVBJOjpIVFRQ
Q29va2llU3RvcmU6OnVucmVnaXN0ZXJPYnNlcnZlcik6CihBUEk6OkhUVFBDb29raWVTdG9yZTo6
bmV0d29ya1Byb2Nlc3NJZkV4aXN0cyk6CihBUEk6OkhUVFBDb29raWVTdG9yZTo6bmV0d29ya1By
b2Nlc3NMYXVuY2hpbmdJZk5lY2Vzc2FyeSk6CihBUEk6OkFQSVdlYkNvb2tpZU1hbmFnZXJQcm94
eU9ic2VydmVyOjpBUElXZWJDb29raWVNYW5hZ2VyUHJveHlPYnNlcnZlcik6IERlbGV0ZWQuCigp
OiBEZWxldGVkLgoqIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3Rv
cmUuaDoKKiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoKKiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwOgoqIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tOgoqIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdENvb2tpZU1hbmFnZXIuY3BwOgooQ29va2llU3RvcmVPYnNl
cnZlcjo6Q29va2llU3RvcmVPYnNlcnZlcik6CihfV2ViS2l0Q29va2llTWFuYWdlclByaXZhdGU6
OmNvb2tpZVN0b3JlIGNvbnN0KToKKF9XZWJLaXRDb29raWVNYW5hZ2VyUHJpdmF0ZTo6fl9XZWJL
aXRDb29raWVNYW5hZ2VyUHJpdmF0ZSk6Cih3ZWJraXRDb29raWVNYW5hZ2VyQ3JlYXRlKToKKHdl
YmtpdF9jb29raWVfbWFuYWdlcl9nZXRfYWNjZXB0X3BvbGljeSk6Cih3ZWJraXRfY29va2llX21h
bmFnZXJfYWRkX2Nvb2tpZSk6Cih3ZWJraXRfY29va2llX21hbmFnZXJfZ2V0X2Nvb2tpZXMpOgoo
d2Via2l0X2Nvb2tpZV9tYW5hZ2VyX2RlbGV0ZV9jb29raWUpOgooV2ViQ29va2llTWFuYWdlclBy
b3h5T2JzZXJ2ZXI6OldlYkNvb2tpZU1hbmFnZXJQcm94eU9ic2VydmVyKTogRGVsZXRlZC4KKF9X
ZWJLaXRDb29raWVNYW5hZ2VyUHJpdmF0ZTo6Y29va2llTWFuYWdlciBjb25zdCk6IERlbGV0ZWQu
CiogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3NvdXAvSFRUUENvb2tpZVN0b3JlU291cC5j
cHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9zb3VwL1dlYkNvb2tpZU1h
bmFnZXJQcm94eVNvdXAuY3BwLgooQVBJOjpIVFRQQ29va2llU3RvcmU6OnNldENvb2tpZVBlcnNp
c3RlbnRTdG9yYWdlKToKKiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1
dG9tYXRpb25TZXNzaW9uLmNwcDoKKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OmFkZFNp
bmdsZUNvb2tpZSk6CihXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpkZWxldGVBbGxDb29r
aWVzKToKKiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuY3BwOgooV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpOZXR3b3JrUHJvY2Vzc1Byb3h5
KToKKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6Y29va2llc0RpZENoYW5nZSk6CihXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmZsdXNoQ29va2llcyk6IERlbGV0ZWQuCiogU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CiogU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmlu
OgoqIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHA6IFJl
bW92ZWQuCiogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5Lmg6
IFJlbW92ZWQuCiogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluOiBSZW1vdmVkLgoqIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcDoKKiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmNwcDoKKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6Zmx1c2hDb29raWVzKTog
RGVsZXRlZC4KKiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9zb3VwL1dlYnNp
dGVEYXRhU3RvcmVTb3VwLmNwcDoKKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c2V0Q29va2ll
UGVyc2lzdGVudFN0b3JhZ2UpOgooV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpzZXRIVFRQQ29v
a2llQWNjZXB0UG9saWN5KToKKiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9zb3VwL1dlYlByb2Nl
c3NQb29sU291cC5jcHA6CiogU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKLS0tCiBTb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0ICAgICAgICAgICAgICAg
ICAgfCAgIDEgLQogU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
IHwgICAxIC0KIC4uLi9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgICB8
ICAgMyAtCiBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgICAgICAgICAgICAgfCAg
IDEgLQogLi4uL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAgICAgICAgICAgICAgIHwgICAz
ICstCiBTb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0ICAgICAgICAgICAgICAgICAgICAgfCAgIDEg
LQogU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dCAgICAgICAgICAgICAgICAgIHwgICAzICst
CiBTb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0ICAgICAgICAgICAgICAgICAgfCAgIDMgKy0K
IC4uLi9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAgICAgICB8IDE0OCArKysr
KysrLS0tLS0tLQogLi4uL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5o
IHwgIDIyICstCiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCAgICAg
fCAgIDIgLQogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCAgIHwg
ICAxIC0KIC4uLi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0gICAgICB8ICAg
MSAtCiAuLi4vQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAgICAgICAgICAgfCAgMjgg
Ky0tCiAuLi4vc291cC9IVFRQQ29va2llU3RvcmVTb3VwLmNwcH0gICAgICAgICAgICAgfCAgMTQg
Ky0KIC4uLi9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcCAgICAgICB8ICAxMCAr
LQogLi4uL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIHwgIDE0ICst
CiAuLi4vVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oICAgfCAgIDYgKy0K
IC4uLi9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gICB8ICAgMiArCiAu
Li4vVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAgICAgICAgfCAxODkgLS0tLS0t
LS0tLS0tLS0tLS0tCiAuLi4vV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHku
aCAgfCAxMDMgLS0tLS0tLS0tLQogLi4uL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
biAgICAgICAgIHwgIDI1IC0tLQogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwICAgIHwgICAxIC0KIC4uLi9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCAg
ICAgICAgICB8ICAgNiAtCiAuLi4vV2Vic2l0ZURhdGEvc291cC9XZWJzaXRlRGF0YVN0b3JlU291
cC5jcHAgfCAgIDYgKy0KIC4uLi9VSVByb2Nlc3Mvc291cC9XZWJQcm9jZXNzUG9vbFNvdXAuY3Bw
ICAgICB8ICAgMSAtCiAuLi4vV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
ICAgfCAgMjAgKy0KIDI3IGZpbGVzIGNoYW5nZWQsIDE0MSBpbnNlcnRpb25zKCspLCA0NzQgZGVs
ZXRpb25zKC0pCiByZW5hbWUgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mve3NvdXAvV2ViQ29va2ll
TWFuYWdlclByb3h5U291cC5jcHAgPT4gQVBJL3NvdXAvSFRUUENvb2tpZVN0b3JlU291cC5jcHB9
ICg3NSUpCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29v
a2llTWFuYWdlclByb3h5LmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01h
a2VMaXN0cy50eHQKaW5kZXggMDY0NzUxYjczOGFhLi5lYmQ3NTQyN2IxOGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxp
c3RzLnR4dApAQCAtMjMxLDcgKzIzMSw2IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMK
ICAgICBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlcgogICAgIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlcgogICAgIFVJUHJv
Y2Vzcy9WaXNpdGVkTGlua1N0b3JlCi0gICAgVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94
eQogICAgIFVJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5CiAgICAgVUlQcm9jZXNz
L1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5CiAgICAgVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3Ry
eVByb3h5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0Lnhj
ZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QK
aW5kZXggY2Y0ODU0ZWFiZWZmLi42ZjAxMmFjNTBhMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTE2MCw3ICsxNjAsNiBAQCAkKFBST0pF
Q1RfRElSKS9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJv
eHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRy
b2xsZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9WaXNpdGVkTGlua1N0
b3JlLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KLSQoUFJPSkVD
VF9ESVIpL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5t
ZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3QKaW5kZXggMjVlMzUyMzM2ZWQ1Li5mOTFhNzU1YTlmYTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtNTAyLDkgKzUwMiw2IEBA
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvV2ViQ29ubmVjdGlv
bk1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0L1dlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1dlYkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1dlYkNvb2tpZU1h
bmFnZXJNZXNzYWdlc1JlcGxpZXMuaAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdC9XZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCi0kKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1dlYkNvb2tpZU1hbmFnZXJQ
cm94eU1lc3NhZ2VzLmgKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQvV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQ
cm92aWRlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlck1lc3NhZ2Vz
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvV2ViRGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlck1lc3NhZ2VzUmVwbGllcy5oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLm1ha2UKaW5kZXggNDM2MjRkMGM5NzkzLi5hZmNiNWM1M2RlNzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE3Myw3ICsxNzMsNiBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9
IFwKIAlVSVByb2Nlc3MvQ29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5IFwKIAlVSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSBcCiAJVUlQcm9jZXNzL0Nv
Y29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSBcCi0JVUlQcm9jZXNzL1dlYkNvb2tpZU1h
bmFnZXJQcm94eSBcCiAJVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlciBcCiAJVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eSBcCiAJVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlv
blNlc3Npb24gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29r
aWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
b29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCmluZGV4IDU3OWFmYTk0MzhjZC4uNzVkNzc3MWQ3
NWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2Vi
Q29va2llTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29r
aWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlICJO
ZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5oIgot
I2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWUuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0Nvb2tpZVN0b3JhZ2UuaD4KQEAgLTEzMCw3ICsxMjksNyBAQCB2b2lkIFdl
YkNvb2tpZU1hbmFnZXI6OnNldENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25z
dCBWZWN0b3I8Q29va2llPgogdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpub3RpZnlDb29raWVzRGlk
Q2hhbmdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6
aXNNYWluKCkpOwotICAgIG1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2Vy
UHJveHk6OkNvb2tpZXNEaWRDaGFuZ2Uoc2Vzc2lvbklEKSwgMCk7CisgICAgbV9wcm9jZXNzLnNl
bmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkNvb2tpZXNEaWRDaGFuZ2Uoc2Vzc2lv
bklEKSwgMCk7CiB9CiAKIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6c3RhcnRPYnNlcnZpbmdDb29r
aWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IDg0NDli
OThkY2ExMy4uZjdlYTA0ZmEwZmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTQzNCw3ICs0MzQsNiBAQCBV
SVByb2Nlc3MvV2ViQ29udGV4dENvbm5lY3Rpb25DbGllbnQuY3BwCiBVSVByb2Nlc3MvV2ViQ29u
dGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcAogVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51TGlz
dGVuZXJQcm94eS5jcHAKIFVJUHJvY2Vzcy9XZWJDb250ZXh0TWVudVByb3h5LmNwcAotVUlQcm9j
ZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAKIFVJUHJvY2Vzcy9XZWJEYXRhTGlzdFN1Z2dl
c3Rpb25zRHJvcGRvd24uY3BwCiBVSVByb2Nlc3MvV2ViRGF0ZVRpbWVQaWNrZXIuY3BwCiBVSVBy
b2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U291cmNlc0dUSy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CmluZGV4IGJjNzcy
NmNiZTJkZC4uYWVhODY2NTJhMjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNH
VEsudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQKQEAgLTIxNSw2ICsyMTUs
OCBAQCBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAgQG5vLXVuaWZ5CiBV
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3RGlhbG9nLmNwcCBAbm8tdW5pZnkKIFVJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdHdGsuY3BwIEBuby11bmlmeQogCitVSVByb2Nlc3Mv
QVBJL3NvdXAvSFRUUENvb2tpZVN0b3JlU291cC5jcHAKKwogVUlQcm9jZXNzL0F1dG9tYXRpb24v
Y2Fpcm8vV2ViQXV0b21hdGlvblNlc3Npb25DYWlyby5jcHAKIAogVUlQcm9jZXNzL0F1dG9tYXRp
b24vZ3RrL1dlYkF1dG9tYXRpb25TZXNzaW9uR3RrLmNwcApAQCAtMjgxLDcgKzI4Myw2IEBAIFVJ
UHJvY2Vzcy9ndGsvV2ViUHJlZmVyZW5jZXNHdGsuY3BwCiBVSVByb2Nlc3MvZ3RrL1dlYlRleHRD
aGVja2VyLmNwcAogVUlQcm9jZXNzL2d0ay9XZWJUZXh0Q2hlY2tlckNsaWVudC5jcHAKIAotVUlQ
cm9jZXNzL3NvdXAvV2ViQ29va2llTWFuYWdlclByb3h5U291cC5jcHAKIFVJUHJvY2Vzcy9zb3Vw
L1dlYlByb2Nlc3NQb29sU291cC5jcHAKIAogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvZ2JtL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlHQk0uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXNXUEUudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dAppbmRleCBh
ZTIxODEwODhmODIuLmY0MTdmN2NlYTY5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzV1BFLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CkBAIC0xODMsNiAr
MTgzLDggQEAgVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYnNpdGVEYXRhTWFuYWdlci5jcHAg
QG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2luZG93UHJvcGVydGllcy5jcHAg
QG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZVBvbGljaWVzLmNwcCBA
bm8tdW5pZnkKIAorVUlQcm9jZXNzL0FQSS9zb3VwL0hUVFBDb29raWVTdG9yZVNvdXAuY3BwCisK
IFVJUHJvY2Vzcy9BUEkvd3BlL0lucHV0TWV0aG9kRmlsdGVyV1BFLmNwcCBAbm8tdW5pZnkKIFVJ
UHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9B
UEkvd3BlL1RvdWNoR2VzdHVyZUNvbnRyb2xsZXIuY3BwIEBuby11bmlmeQpAQCAtMjI2LDcgKzIy
OCw2IEBAIFVJUHJvY2Vzcy9saWJ3cGUvV2ViUGFzdGVib2FyZFByb3h5TGliV1BFLmNwcAogCiBV
SVByb2Nlc3MvbGludXgvTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcAogCi1VSVByb2Nlc3Mvc291
cC9XZWJDb29raWVNYW5hZ2VyUHJveHlTb3VwLmNwcAogVUlQcm9jZXNzL3NvdXAvV2ViUHJvY2Vz
c1Bvb2xTb3VwLmNwcAogCiBVSVByb2Nlc3Mvd3BlL1dlYlBhZ2VQcm94eVdQRS5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKaW5k
ZXggZWQzZTFhNmIwYjFjLi45ZmQ2ZDc2YzI2YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3BwCkBAIC0yNiwxMSArMjYsOCBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFQSUhUVFBDb29raWVTdG9yZS5oIgogCi0j
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNpbmNsdWRlICJEZWZhdWx0V2ViQnJvd3NlckNoZWNr
cy5oIgotI2VuZGlmCi0KLSNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKKyNpbmNs
dWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdl
ck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKICNpbmNsdWRlICJXZWJz
aXRlRGF0YVN0b3JlLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIK
QEAgLTM5LDIwICszNiwyMyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSFRUUENvb2tpZUFjY2VwdFBv
bGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2luY2x1ZGUgIkRlZmF1bHRXZWJCcm93c2VyQ2hlY2tz
LmgiCisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogbmFtZXNwYWNlIEFQSSB7
CiAKIEhUVFBDb29raWVTdG9yZTo6SFRUUENvb2tpZVN0b3JlKFdlYktpdDo6V2Vic2l0ZURhdGFT
dG9yZSYgd2Vic2l0ZURhdGFTdG9yZSkKLSAgICA6IG1fb3duaW5nRGF0YVN0b3JlKHdlYnNpdGVE
YXRhU3RvcmUpCisgICAgOiBtX3Nlc3Npb25JRCh3ZWJzaXRlRGF0YVN0b3JlLnNlc3Npb25JRCgp
KQorICAgICwgbV9vd25pbmdEYXRhU3RvcmUod2Vic2l0ZURhdGFTdG9yZSkKIHsKIH0KIAogSFRU
UENvb2tpZVN0b3JlOjp+SFRUUENvb2tpZVN0b3JlKCkKIHsKICAgICBBU1NFUlQobV9vYnNlcnZl
cnMuY29tcHV0ZXNFbXB0eSgpKTsKLSAgICBBU1NFUlQoIW1fb2JzZXJ2ZWRDb29raWVNYW5hZ2Vy
UHJveHkpOwotICAgIEFTU0VSVCghbV9jb29raWVNYW5hZ2VyUHJveHlPYnNlcnZlcik7CiB9CiAK
IHZvaWQgSFRUUENvb2tpZVN0b3JlOjpmaWx0ZXJBcHBCb3VuZENvb2tpZXMoVmVjdG9yPFdlYkNv
cmU6OkNvb2tpZT4mJiBjb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJD
b3JlOjpDb29raWU+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNzgsMTA5ICs3OCwxMDEg
QEAgdm9pZCBIVFRQQ29va2llU3RvcmU6OmZpbHRlckFwcEJvdW5kQ29va2llcyhWZWN0b3I8V2Vi
Q29yZTo6Q29va2llPiYmIGNvb2tpZXMsIEMKIAogdm9pZCBIVFRQQ29va2llU3RvcmU6OmNvb2tp
ZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGlmICghbV9vd25pbmdEYXRhU3RvcmUpCi0g
ICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih7IH0pOwotICAgIGF1dG8mIGNvb2tpZU1h
bmFnZXIgPSBtX293bmluZ0RhdGFTdG9yZS0+bmV0d29ya1Byb2Nlc3MoKS5jb29raWVNYW5hZ2Vy
KCk7Ci0gICAgY29va2llTWFuYWdlci5nZXRBbGxDb29raWVzKG1fb3duaW5nRGF0YVN0b3JlLT5z
ZXNzaW9uSUQoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoVmVjdG9yPFdlYkNvcmU6
OkNvb2tpZT4mJiBjb29raWVzKSBtdXRhYmxlIHsKLSAgICAgICAgZmlsdGVyQXBwQm91bmRDb29r
aWVzKFdURk1vdmUoY29va2llcyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICB9
KTsKKyAgICBpZiAoYXV0byogbmV0d29ya1Byb2Nlc3MgPSBuZXR3b3JrUHJvY2Vzc0lmRXhpc3Rz
KCkpIHsKKyAgICAgICAgbmV0d29ya1Byb2Nlc3MtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6V2ViQ29va2llTWFuYWdlcjo6R2V0QWxsQ29va2llcyhtX3Nlc3Npb25JRCksIFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKV0gKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYgY29va2llcykg
bXV0YWJsZSB7CisgICAgICAgICAgICBmaWx0ZXJBcHBCb3VuZENvb2tpZXMoV1RGTW92ZShjb29r
aWVzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgICAgICB9KTsKKyAgICB9IGVs
c2UKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKIH0KIAogdm9pZCBIVFRQQ29va2ll
U3RvcmU6OmNvb2tpZXNGb3JVUkwoV1RGOjpVUkwmJiB1cmwsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0g
ICAgaWYgKCFtX293bmluZ0RhdGFTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKHsgfSk7Ci0gICAgYXV0byYgY29va2llTWFuYWdlciA9IG1fb3duaW5nRGF0YVN0b3JlLT5u
ZXR3b3JrUHJvY2VzcygpLmNvb2tpZU1hbmFnZXIoKTsKLSAgICBjb29raWVNYW5hZ2VyLmdldENv
b2tpZXMobV9vd25pbmdEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCB1cmwsIFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKV0gKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYgY29va2llcykgbXV0YWJs
ZSB7Ci0gICAgICAgIGZpbHRlckFwcEJvdW5kQ29va2llcyhXVEZNb3ZlKGNvb2tpZXMpLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgfSk7CisgICAgaWYgKGF1dG8qIG5ldHdvcmtQ
cm9jZXNzID0gbmV0d29ya1Byb2Nlc3NJZkV4aXN0cygpKSB7CisgICAgICAgIG5ldHdvcmtQcm9j
ZXNzLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OkdldENv
b2tpZXMobV9zZXNzaW9uSUQsIHVybCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRo
aXMgfSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKFZl
Y3RvcjxXZWJDb3JlOjpDb29raWU+JiYgY29va2llcykgbXV0YWJsZSB7CisgICAgICAgICAgICBm
aWx0ZXJBcHBCb3VuZENvb2tpZXMoV1RGTW92ZShjb29raWVzKSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworICAgICAgICB9KTsKKyAgICB9IGVsc2UKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoeyB9KTsKIH0KIAogdm9pZCBIVFRQQ29va2llU3RvcmU6OnNldENvb2tpZXMoVmVjdG9y
PFdlYkNvcmU6OkNvb2tpZT4mJiBjb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgZmlsdGVyQXBwQm91bmRDb29raWVzKFdURk1vdmUo
Y29va2llcyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGF1dG8mJiBhcHBCb3VuZENv
b2tpZXMpIG11dGFibGUgewotICAgICAgICBpZiAoIW1fb3duaW5nRGF0YVN0b3JlKQotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICBhdXRvJiBjb29raWVNYW5hZ2VyID0gbV9vd25pbmdEYXRh
U3RvcmUtPm5ldHdvcmtQcm9jZXNzKCkuY29va2llTWFuYWdlcigpOwotICAgICAgICBjb29raWVN
YW5hZ2VyLnNldENvb2tpZXMobV9vd25pbmdEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCBhcHBCb3Vu
ZENvb2tpZXMsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgaWYgKGF1dG8q
IG5ldHdvcmtQcm9jZXNzID0gbmV0d29ya1Byb2Nlc3NMYXVuY2hpbmdJZk5lY2Vzc2FyeSgpKQor
ICAgICAgICAgICAgbmV0d29ya1Byb2Nlc3MtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
V2ViQ29va2llTWFuYWdlcjo6U2V0Q29va2llKG1fc2Vzc2lvbklELCBhcHBCb3VuZENvb2tpZXMp
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgfSk7CiB9CiAKIHZvaWQgSFRUUENvb2tpZVN0b3Jl
OjpkZWxldGVDb29raWUoY29uc3QgV2ViQ29yZTo6Q29va2llJiBjb29raWUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBpZiAoIW1fb3duaW5n
RGF0YVN0b3JlKQotICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICBhdXRv
JiBjb29raWVNYW5hZ2VyID0gbV9vd25pbmdEYXRhU3RvcmUtPm5ldHdvcmtQcm9jZXNzKCkuY29v
a2llTWFuYWdlcigpOwotICAgIGNvb2tpZU1hbmFnZXIuZGVsZXRlQ29va2llKG1fb3duaW5nRGF0
YVN0b3JlLT5zZXNzaW9uSUQoKSwgY29va2llLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
CisgICAgaWYgKGF1dG8qIG5ldHdvcmtQcm9jZXNzID0gbmV0d29ya1Byb2Nlc3NJZkV4aXN0cygp
KQorICAgICAgICBuZXR3b3JrUHJvY2Vzcy0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpX
ZWJDb29raWVNYW5hZ2VyOjpEZWxldGVDb29raWUobV9zZXNzaW9uSUQsIGNvb2tpZSksIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBlbHNlCisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7CiB9CiAKIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpkZWxldGVBbGxDb29raWVzKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBpZiAoIW1f
b3duaW5nRGF0YVN0b3JlKQotICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoKTsKLSAg
ICBhdXRvJiBjb29raWVNYW5hZ2VyID0gbV9vd25pbmdEYXRhU3RvcmUtPm5ldHdvcmtQcm9jZXNz
KCkuY29va2llTWFuYWdlcigpOwotICAgIGNvb2tpZU1hbmFnZXIuZGVsZXRlQWxsQ29va2llcyht
X293bmluZ0RhdGFTdG9yZS0+c2Vzc2lvbklEKCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKKyAgICBpZiAoYXV0byogbmV0d29ya1Byb2Nlc3MgPSBuZXR3b3JrUHJvY2Vzc0lmRXhpc3Rz
KCkpCisgICAgICAgIG5ldHdvcmtQcm9jZXNzLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
OldlYkNvb2tpZU1hbmFnZXI6OkRlbGV0ZUFsbENvb2tpZXMobV9zZXNzaW9uSUQpLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgZWxzZQorICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cigpOwogfQogCi12b2lkIEhUVFBDb29raWVTdG9yZTo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGlj
eShXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBIVFRQQ29va2llU3RvcmU6OmRl
bGV0ZUNvb2tpZXNGb3JIb3N0bmFtZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYgaG9zdG5h
bWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0g
ICAgaWYgKCFtX293bmluZ0RhdGFTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKCk7Ci0gICAgYXV0byYgY29va2llTWFuYWdlciA9IG1fb3duaW5nRGF0YVN0b3JlLT5uZXR3
b3JrUHJvY2VzcygpLmNvb2tpZU1hbmFnZXIoKTsKLSAgICBjb29raWVNYW5hZ2VyLnNldEhUVFBD
b29raWVBY2NlcHRQb2xpY3kobV9vd25pbmdEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCBwb2xpY3ks
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBpZiAoYXV0byogbmV0d29ya1Byb2Nl
c3MgPSBuZXR3b3JrUHJvY2Vzc0lmRXhpc3RzKCkpCisgICAgICAgIG5ldHdvcmtQcm9jZXNzLT5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OkRlbGV0ZUNvb2tp
ZXNGb3JIb3N0bmFtZXMobV9zZXNzaW9uSUQsIGhvc3RuYW1lcyksIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKKyAgICBlbHNlCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAK
LXZvaWQgSFRUUENvb2tpZVN0b3JlOjpmbHVzaENvb2tpZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBIVFRQQ29va2llU3RvcmU6OnNldEhUVFBD
b29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ks
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBp
ZiAoIW1fb3duaW5nRGF0YVN0b3JlKQotICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIo
KTsKLSAgICBtX293bmluZ0RhdGFTdG9yZS0+Zmx1c2hDb29raWVzKFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKKyAgICBpZiAoYXV0byogbmV0d29ya1Byb2Nlc3MgPSBuZXR3b3JrUHJvY2Vz
c0xhdW5jaGluZ0lmTmVjZXNzYXJ5KCkpCisgICAgICAgIG5ldHdvcmtQcm9jZXNzLT5zZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OlNldEhUVFBDb29raWVBY2Nl
cHRQb2xpY3kocG9saWN5KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIGVsc2UK
KyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAotY2xhc3MgQVBJV2ViQ29va2llTWFu
YWdlclByb3h5T2JzZXJ2ZXIgOiBwdWJsaWMgV2ViQ29va2llTWFuYWdlclByb3h5OjpPYnNlcnZl
ciB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQg
QVBJV2ViQ29va2llTWFuYWdlclByb3h5T2JzZXJ2ZXIoQVBJOjpIVFRQQ29va2llU3RvcmUmIGNv
b2tpZVN0b3JlKQotICAgICAgICA6IG1fY29va2llU3RvcmUoY29va2llU3RvcmUpCi0gICAgewot
ICAgIH0KLQotcHJpdmF0ZToKLSAgICB2b2lkIGNvb2tpZXNEaWRDaGFuZ2UoKSBmaW5hbAotICAg
IHsKLSAgICAgICAgbV9jb29raWVTdG9yZS5jb29raWVzRGlkQ2hhbmdlKCk7Ci0gICAgfQordm9p
ZCBIVFRQQ29va2llU3RvcmU6OmdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5Jik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKGF1dG8qIG5ldHdvcmtQcm9jZXNzID0gbmV0d29y
a1Byb2Nlc3NMYXVuY2hpbmdJZk5lY2Vzc2FyeSgpKQorICAgICAgICBuZXR3b3JrUHJvY2Vzcy0+
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpHZXRIVFRQQ29v
a2llQWNjZXB0UG9saWN5KG1fc2Vzc2lvbklEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OworICAgIGVsc2UKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKK30KIAotICAgIEFQ
STo6SFRUUENvb2tpZVN0b3JlJiBtX2Nvb2tpZVN0b3JlOwotfTsKK3ZvaWQgSFRUUENvb2tpZVN0
b3JlOjpmbHVzaENvb2tpZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIGlmIChhdXRvKiBuZXR3b3JrUHJvY2VzcyA9IG5ldHdvcmtQcm9jZXNz
SWZFeGlzdHMoKSkKKyAgICAgICAgbmV0d29ya1Byb2Nlc3MtPnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkZsdXNoQ29va2llcyhtX3Nlc3Npb25JRCksIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBlbHNlCisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7Cit9CiAKIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpyZWdpc3Rlck9ic2VydmVyKE9ic2Vy
dmVyJiBvYnNlcnZlcikKIHsKKyAgICBib29sIHdhc09ic2VydmluZyA9ICFtX29ic2VydmVycy5j
b21wdXRlc0VtcHR5KCk7CiAgICAgbV9vYnNlcnZlcnMuYWRkKG9ic2VydmVyKTsKLQotICAgIGlm
IChtX2Nvb2tpZU1hbmFnZXJQcm94eU9ic2VydmVyIHx8ICFtX293bmluZ0RhdGFTdG9yZSkKKyAg
ICBpZiAod2FzT2JzZXJ2aW5nKQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQoIW1fb2Jz
ZXJ2ZWRDb29raWVNYW5hZ2VyUHJveHkpOwotCi0gICAgbV9jb29raWVNYW5hZ2VyUHJveHlPYnNl
cnZlciA9IG1ha2VVbmlxdWU8QVBJV2ViQ29va2llTWFuYWdlclByb3h5T2JzZXJ2ZXI+KCp0aGlz
KTsKLQotICAgIG1fb2JzZXJ2ZWRDb29raWVNYW5hZ2VyUHJveHkgPSBtX293bmluZ0RhdGFTdG9y
ZS0+bmV0d29ya1Byb2Nlc3MoKS5jb29raWVNYW5hZ2VyKCk7Ci0gICAgbV9vYnNlcnZlZENvb2tp
ZU1hbmFnZXJQcm94eS0+cmVnaXN0ZXJPYnNlcnZlcihtX293bmluZ0RhdGFTdG9yZS0+c2Vzc2lv
bklEKCksICptX2Nvb2tpZU1hbmFnZXJQcm94eU9ic2VydmVyKTsKKyAgICBpZiAoYXV0byogbmV0
d29ya1Byb2Nlc3MgPSBuZXR3b3JrUHJvY2Vzc0xhdW5jaGluZ0lmTmVjZXNzYXJ5KCkpCisgICAg
ICAgIG5ldHdvcmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpTdGFy
dE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMobV9zZXNzaW9uSUQpLCAwKTsKIH0KIAogdm9pZCBIVFRQ
Q29va2llU3RvcmU6OnVucmVnaXN0ZXJPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7CiAg
ICAgbV9vYnNlcnZlcnMucmVtb3ZlKG9ic2VydmVyKTsKLQogICAgIGlmICghbV9vYnNlcnZlcnMu
Y29tcHV0ZXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV9vYnNlcnZlZENv
b2tpZU1hbmFnZXJQcm94eSAmJiBtX293bmluZ0RhdGFTdG9yZSkKLSAgICAgICAgbV9vYnNlcnZl
ZENvb2tpZU1hbmFnZXJQcm94eS0+dW5yZWdpc3Rlck9ic2VydmVyKG1fb3duaW5nRGF0YVN0b3Jl
LT5zZXNzaW9uSUQoKSwgKm1fY29va2llTWFuYWdlclByb3h5T2JzZXJ2ZXIpOwotCi0gICAgbV9v
YnNlcnZlZENvb2tpZU1hbmFnZXJQcm94eSA9IG51bGxwdHI7Ci0gICAgbV9jb29raWVNYW5hZ2Vy
UHJveHlPYnNlcnZlciA9IG51bGxwdHI7CisgICAgaWYgKGF1dG8qIG5ldHdvcmtQcm9jZXNzID0g
bmV0d29ya1Byb2Nlc3NJZkV4aXN0cygpKQorICAgICAgICBuZXR3b3JrUHJvY2Vzcy0+c2VuZChN
ZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6U3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMobV9z
ZXNzaW9uSUQpLCAwKTsKIH0KIAogdm9pZCBIVFRQQ29va2llU3RvcmU6OmNvb2tpZXNEaWRDaGFu
Z2UoKQpAQCAtMTg4LDUgKzE4MCwxOSBAQCB2b2lkIEhUVFBDb29raWVTdG9yZTo6Y29va2llc0Rp
ZENoYW5nZSgpCiAgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQogICAgICAg
ICBvYnNlcnZlci5jb29raWVzRGlkQ2hhbmdlKCp0aGlzKTsKIH0KLSAgICAKKworV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzc1Byb3h5KiBIVFRQQ29va2llU3RvcmU6Om5ldHdvcmtQcm9jZXNzSWZFeGlz
dHMoKQoreworICAgIGlmICghbV9vd25pbmdEYXRhU3RvcmUpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIHJldHVybiBtX293bmluZ0RhdGFTdG9yZS0+bmV0d29ya1Byb2Nlc3NJZkV4aXN0
cygpOworfQorCitXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHkqIEhUVFBDb29raWVTdG9yZTo6
bmV0d29ya1Byb2Nlc3NMYXVuY2hpbmdJZk5lY2Vzc2FyeSgpCit7CisgICAgaWYgKCFtX293bmlu
Z0RhdGFTdG9yZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuICZtX293bmlu
Z0RhdGFTdG9yZS0+bmV0d29ya1Byb2Nlc3MoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgQVBJCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3Jl
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmgKaW5k
ZXggZGM0NDExZmU2ZGJiLi5jMmUwNTg4N2M2ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmgKQEAgLTI3LDI1ICsyNywyOCBAQAogCiAj
aW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWUuaD4KKyNpbmNs
dWRlIDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQuaD4K
ICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCisjaWYgVVNFKFNPVVApCisjaW5jbHVkZSAiU291
cENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlwZS5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIHN0cnVjdCBDb29raWU7CiBlbnVtIGNsYXNzIEhUVFBDb29raWVBY2NlcHRQb2xpY3kg
OiB1aW50OF90OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKLWNsYXNzIFdlYkNvb2tpZU1hbmFn
ZXJQcm94eTsKK2NsYXNzIE5ldHdvcmtQcm9jZXNzUHJveHk7CiBjbGFzcyBXZWJzaXRlRGF0YVN0
b3JlOwogfQogCiBuYW1lc3BhY2UgQVBJIHsKIAotY2xhc3MgQVBJV2ViQ29va2llTWFuYWdlclBy
b3h5T2JzZXJ2ZXI7Ci0KIGNsYXNzIEhUVFBDb29raWVTdG9yZSBmaW5hbCA6IHB1YmxpYyBPYmpl
Y3RJbXBsPE9iamVjdDo6VHlwZTo6SFRUUENvb2tpZVN0b3JlPiB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIFJlZjxIVFRQQ29va2llU3RvcmU+IGNyZWF0ZShXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmUm
IHdlYnNpdGVEYXRhU3RvcmUpCkBAIC01OSw5ICs2MiwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBj
b29raWVzRm9yVVJMKFdURjo6VVJMJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdl
YkNvcmU6OkNvb2tpZT4mJik+JiYpOwogICAgIHZvaWQgc2V0Q29va2llcyhWZWN0b3I8V2ViQ29y
ZTo6Q29va2llPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgZGVs
ZXRlQ29va2llKGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CisgICAgdm9pZCBkZWxldGVDb29raWVzRm9ySG9zdG5hbWVzKGNvbnN0IFZlY3RvcjxX
VEY6OlN0cmluZz4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIAogICAgIHZv
aWQgZGVsZXRlQWxsQ29va2llcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZv
aWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9s
aWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgZ2V0SFRUUENvb2tp
ZUFjY2VwdFBvbGljeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OkhUVFBD
b29raWVBY2NlcHRQb2xpY3kmKT4mJik7CiAgICAgdm9pZCBmbHVzaENvb2tpZXMoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAgIGNsYXNzIE9ic2VydmVyIDogcHVibGljIENhbk1h
a2VXZWFrUHRyPE9ic2VydmVyPiB7CkBAIC03NywxMyArODIsMTggQEAgcHVibGljOgogCiAgICAg
dm9pZCBmaWx0ZXJBcHBCb3VuZENvb2tpZXMoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYmKT4mJik7CiAKKyNp
ZiBVU0UoU09VUCkKKyAgICB2b2lkIHNldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKGNvbnN0IFdU
Rjo6U3RyaW5nJiBzdG9yYWdlUGF0aCwgV2ViS2l0OjpTb3VwQ29va2llUGVyc2lzdGVudFN0b3Jh
Z2VUeXBlKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIEhUVFBDb29raWVTdG9yZShXZWJLaXQ6
OldlYnNpdGVEYXRhU3RvcmUmKTsKLSAgICAKKyAgICBXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJv
eHkqIG5ldHdvcmtQcm9jZXNzSWZFeGlzdHMoKTsKKyAgICBXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
UHJveHkqIG5ldHdvcmtQcm9jZXNzTGF1bmNoaW5nSWZOZWNlc3NhcnkoKTsKKworICAgIFBBTDo6
U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogICAgIFdlYWtQdHI8V2ViS2l0OjpXZWJzaXRlRGF0YVN0
b3JlPiBtX293bmluZ0RhdGFTdG9yZTsKICAgICBXZWFrSGFzaFNldDxPYnNlcnZlcj4gbV9vYnNl
cnZlcnM7Ci0gICAgV2Vha1B0cjxXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eT4gbV9vYnNl
cnZlZENvb2tpZU1hbmFnZXJQcm94eTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8QVBJV2ViQ29va2ll
TWFuYWdlclByb3h5T2JzZXJ2ZXI+IG1fY29va2llTWFuYWdlclByb3h5T2JzZXJ2ZXI7CiB9Owog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3Qu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCmluZGV4IGNlMmYw
MDY3MGU2YS4uZWQxOWEzZmFlMTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS0FQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S0FQSUNhc3QuaApAQCAtODcsNyArODcsNiBAQCBjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3Q7CiBj
bGFzcyBXZWJCYWNrRm9yd2FyZExpc3RJdGVtOwogY2xhc3MgV2ViQ29sb3JQaWNrZXJSZXN1bHRM
aXN0ZW5lclByb3h5OwogY2xhc3MgV2ViQ29udGV4dE1lbnVMaXN0ZW5lclByb3h5OwotY2xhc3Mg
V2ViQ29va2llTWFuYWdlclByb3h5OwogY2xhc3MgV2ViQ3JlZGVudGlhbDsKIGNsYXNzIFdlYkZv
cm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eTsKIGNsYXNzIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQ
cm94eTsKQEAgLTEyMSw3ICsxMjAsNiBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tDb2xvclBpY2tl
clJlc3VsdExpc3RlbmVyUmVmLCBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUAogV0tfQURE
X0FQSV9NQVBQSU5HKFdLQ29udGV4dFJlZiwgV2ViUHJvY2Vzc1Bvb2wpCiBXS19BRERfQVBJX01B
UFBJTkcoV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZiwgQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24pCiBXS19BRERfQVBJX01BUFBJTkcoV0tDb250ZXh0TWVudUxpc3RlbmVyUmVmLCBXZWJD
b250ZXh0TWVudUxpc3RlbmVyUHJveHkpCi1XS19BRERfQVBJX01BUFBJTkcoV0tDb29raWVNYW5h
Z2VyUmVmLCBXZWJDb29raWVNYW5hZ2VyUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tDcmVk
ZW50aWFsUmVmLCBXZWJDcmVkZW50aWFsKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLRG93bmxvYWRS
ZWYsIERvd25sb2FkUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tGb3JtU3VibWlzc2lvbkxp
c3RlbmVyUmVmLCBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAppbmRleCBjMjlhZjgxN2ZkOGIuLmU3NmZi
ZTc0MjE2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3Bw
CkBAIC01MSw3ICs1MSw2IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIC8v
IFN1cHBsZW1lbnRzCi0jaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlclByb3h5LmgiCiAjaW5jbHVk
ZSAiV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHkuaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcm9jZXNzUG9vbC5tbQppbmRleCBmM2Y4M2NjNTY5ZWMuLjU4OTIyNGY0MjQ5MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bv
b2wubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bv
b2wubW0KQEAgLTQwLDcgKzQwLDYgQEAKICNpbXBvcnQgIldLV2Vic2l0ZURhdGFTdG9yZUludGVy
bmFsLmgiCiAjaW1wb3J0ICJXZWJCYWNrRm9yd2FyZENhY2hlLmgiCiAjaW1wb3J0ICJXZWJDZXJ0
aWZpY2F0ZUluZm8uaCIKLSNpbXBvcnQgIldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgogI2ltcG9y
dCAiV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzQ2Fj
aGUuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRDb29raWVNYW5hZ2VyLmNwcAppbmRl
eCA1NDMwNjMzMjIyYzUuLjNmNjkxYWIzYzYxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKQEAgLTIxLDkg
KzIxLDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJLaXRDb29raWVNYW5h
Z2VyLmgiCiAKKyNpbmNsdWRlICJBUElIVFRQQ29va2llU3RvcmUuaCIKICNpbmNsdWRlICJOZXR3
b3JrUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAiU291cENvb2tpZVBlcnNpc3RlbnRTdG9yYWdl
VHlwZS5oIgotI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldl
YktpdENvb2tpZU1hbmFnZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RW51bVR5cGVzLmgi
CiAjaW5jbHVkZSAiV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyUHJpdmF0ZS5oIgpAQCAtNTYsMTMg
KzU2LDEzIEBAIGVudW0gewogICAgIExBU1RfU0lHTkFMCiB9OwogCi1jbGFzcyBXZWJDb29raWVN
YW5hZ2VyUHJveHlPYnNlcnZlciA6IHB1YmxpYyBXZWJDb29raWVNYW5hZ2VyUHJveHk6Ok9ic2Vy
dmVyIHsKK2NsYXNzIENvb2tpZVN0b3JlT2JzZXJ2ZXIgOiBwdWJsaWMgQVBJOjpIVFRQQ29va2ll
U3RvcmU6Ok9ic2VydmVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
LSAgICBXZWJDb29raWVNYW5hZ2VyUHJveHlPYnNlcnZlcihGdW5jdGlvbjx2b2lkKCk+JiYgY2Fs
bGJhY2spCisgICAgQ29va2llU3RvcmVPYnNlcnZlcihGdW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJh
Y2spCiAgICAgICAgIDogbV9jYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkgeyB9CiBwcml2YXRl
OgotICAgIHZvaWQgY29va2llc0RpZENoYW5nZSgpIGZpbmFsCisgICAgdm9pZCBjb29raWVzRGlk
Q2hhbmdlKEFQSTo6SFRUUENvb2tpZVN0b3JlJikgZmluYWwKICAgICB7CiAgICAgICAgIG1fY2Fs
bGJhY2soKTsKICAgICB9CkBAIC03MSwxMCArNzEsMTAgQEAgcHJpdmF0ZToKIH07CiAKIHN0cnVj
dCBfV2ViS2l0Q29va2llTWFuYWdlclByaXZhdGUgewotICAgIFdlYkNvb2tpZU1hbmFnZXJQcm94
eSYgY29va2llTWFuYWdlcigpIGNvbnN0CisgICAgQVBJOjpIVFRQQ29va2llU3RvcmUmIGNvb2tp
ZVN0b3JlKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChkYXRhTWFuYWdlcik7Ci0gICAg
ICAgIHJldHVybiB3ZWJraXRXZWJzaXRlRGF0YU1hbmFnZXJHZXREYXRhU3RvcmUoZGF0YU1hbmFn
ZXIpLm5ldHdvcmtQcm9jZXNzKCkuY29va2llTWFuYWdlcigpOworICAgICAgICByZXR1cm4gd2Vi
a2l0V2Vic2l0ZURhdGFNYW5hZ2VyR2V0RGF0YVN0b3JlKGRhdGFNYW5hZ2VyKS5jb29raWVTdG9y
ZSgpOwogICAgIH0KIAogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0CkBAIC04
NSwxMiArODUsMTIgQEAgc3RydWN0IF9XZWJLaXRDb29raWVNYW5hZ2VyUHJpdmF0ZSB7CiAKICAg
ICB+X1dlYktpdENvb2tpZU1hbmFnZXJQcml2YXRlKCkKICAgICB7Ci0gICAgICAgIGNvb2tpZU1h
bmFnZXIoKS51bnJlZ2lzdGVyT2JzZXJ2ZXIoc2Vzc2lvbklEKCksICptX29ic2VydmVyKTsKKyAg
ICAgICAgY29va2llU3RvcmUoKS51bnJlZ2lzdGVyT2JzZXJ2ZXIoKm1fb2JzZXJ2ZXIpOwogICAg
IH0KIAogICAgIFdlYktpdFdlYnNpdGVEYXRhTWFuYWdlciogZGF0YU1hbmFnZXI7CiAKLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29va2llTWFuYWdlclByb3h5T2JzZXJ2ZXI+IG1fb2JzZXJ2ZXI7
CisgICAgc3RkOjp1bmlxdWVfcHRyPENvb2tpZVN0b3JlT2JzZXJ2ZXI+IG1fb2JzZXJ2ZXI7CiB9
OwogCiBzdGF0aWMgZ3VpbnQgc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAsIH07CkBAIC0xNjEs
MTAgKzE2MSwxMCBAQCBXZWJLaXRDb29raWVNYW5hZ2VyKiB3ZWJraXRDb29raWVNYW5hZ2VyQ3Jl
YXRlKFdlYktpdFdlYnNpdGVEYXRhTWFuYWdlciogZGF0YU1hbgogewogICAgIFdlYktpdENvb2tp
ZU1hbmFnZXIqIG1hbmFnZXIgPSBXRUJLSVRfQ09PS0lFX01BTkFHRVIoZ19vYmplY3RfbmV3KFdF
QktJVF9UWVBFX0NPT0tJRV9NQU5BR0VSLCBudWxscHRyKSk7CiAgICAgbWFuYWdlci0+cHJpdi0+
ZGF0YU1hbmFnZXIgPSBkYXRhTWFuYWdlcjsKLSAgICBtYW5hZ2VyLT5wcml2LT5tX29ic2VydmVy
ID0gbWFrZVVuaXF1ZTxXZWJDb29raWVNYW5hZ2VyUHJveHlPYnNlcnZlcj4oW21hbmFnZXJdIHsK
KyAgICBtYW5hZ2VyLT5wcml2LT5tX29ic2VydmVyID0gbWFrZVVuaXF1ZTxDb29raWVTdG9yZU9i
c2VydmVyPihbbWFuYWdlcl0gewogICAgICAgICBnX3NpZ25hbF9lbWl0KG1hbmFnZXIsIHNpZ25h
bHNbQ0hBTkdFRF0sIDApOwogICAgIH0pOwotICAgIG1hbmFnZXItPnByaXYtPmNvb2tpZU1hbmFn
ZXIoKS5yZWdpc3Rlck9ic2VydmVyKG1hbmFnZXItPnByaXYtPnNlc3Npb25JRCgpLCAqbWFuYWdl
ci0+cHJpdi0+bV9vYnNlcnZlcik7CisgICAgbWFuYWdlci0+cHJpdi0+Y29va2llU3RvcmUoKS5y
ZWdpc3Rlck9ic2VydmVyKCptYW5hZ2VyLT5wcml2LT5tX29ic2VydmVyKTsKICAgICByZXR1cm4g
bWFuYWdlcjsKIH0KIApAQCAtMjM4LDcgKzIzOCw3IEBAIHZvaWQgd2Via2l0X2Nvb2tpZV9tYW5h
Z2VyX2dldF9hY2NlcHRfcG9saWN5KFdlYktpdENvb2tpZU1hbmFnZXIqIG1hbmFnZXIsIEdDYW5j
CiAKICAgICBHUmVmUHRyPEdUYXNrPiB0YXNrID0gYWRvcHRHUmVmKGdfdGFza19uZXcobWFuYWdl
ciwgY2FuY2VsbGFibGUsIGNhbGxiYWNrLCB1c2VyRGF0YSkpOwogCi0gICAgbWFuYWdlci0+cHJp
di0+Y29va2llTWFuYWdlcigpLmdldEhUVFBDb29raWVBY2NlcHRQb2xpY3kobWFuYWdlci0+cHJp
di0+c2Vzc2lvbklEKCksIFt0YXNrID0gV1RGTW92ZSh0YXNrKV0oV2ViQ29yZTo6SFRUUENvb2tp
ZUFjY2VwdFBvbGljeSBwb2xpY3kpIHsKKyAgICBtYW5hZ2VyLT5wcml2LT5jb29raWVTdG9yZSgp
LmdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koW3Rhc2sgPSBXVEZNb3ZlKHRhc2spXShXZWJDb3Jl
OjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkgewogICAgICAgICBnX3Rhc2tfcmV0dXJu
X2ludCh0YXNrLmdldCgpLCB0b1dlYktpdENvb2tpZUFjY2VwdFBvbGljeShwb2xpY3kpKTsKICAg
ICB9KTsKIH0KQEAgLTI4Myw3ICsyODMsNyBAQCB2b2lkIHdlYmtpdF9jb29raWVfbWFuYWdlcl9h
ZGRfY29va2llKFdlYktpdENvb2tpZU1hbmFnZXIqIG1hbmFnZXIsIFNvdXBDb29raWUqCiAgICAg
Z19yZXR1cm5faWZfZmFpbChjb29raWUpOwogCiAgICAgR1JlZlB0cjxHVGFzaz4gdGFzayA9IGFk
b3B0R1JlZihnX3Rhc2tfbmV3KG1hbmFnZXIsIGNhbmNlbGxhYmxlLCBjYWxsYmFjaywgdXNlckRh
dGEpKTsKLSAgICBtYW5hZ2VyLT5wcml2LT5jb29raWVNYW5hZ2VyKCkuc2V0Q29va2llcyhtYW5h
Z2VyLT5wcml2LT5zZXNzaW9uSUQoKSwgeyBXZWJDb3JlOjpDb29raWUoY29va2llKSB9LCBbdGFz
ayA9IFdURk1vdmUodGFzayldKCkgeworICAgIG1hbmFnZXItPnByaXYtPmNvb2tpZVN0b3JlKCku
c2V0Q29va2llcyh7IFdlYkNvcmU6OkNvb2tpZShjb29raWUpIH0sIFt0YXNrID0gV1RGTW92ZSh0
YXNrKV0oKSB7CiAgICAgICAgIGdfdGFza19yZXR1cm5fYm9vbGVhbih0YXNrLmdldCgpLCBUUlVF
KTsKICAgICB9KTsKIH0KQEAgLTMzMCw3ICszMzAsNyBAQCB2b2lkIHdlYmtpdF9jb29raWVfbWFu
YWdlcl9nZXRfY29va2llcyhXZWJLaXRDb29raWVNYW5hZ2VyKiBtYW5hZ2VyLCBjb25zdCBnY2hh
cgogICAgIGdfcmV0dXJuX2lmX2ZhaWwodXJpKTsKIAogICAgIEdSZWZQdHI8R1Rhc2s+IHRhc2sg
PSBhZG9wdEdSZWYoZ190YXNrX25ldyhtYW5hZ2VyLCBjYW5jZWxsYWJsZSwgY2FsbGJhY2ssIHVz
ZXJEYXRhKSk7Ci0gICAgbWFuYWdlci0+cHJpdi0+Y29va2llTWFuYWdlcigpLmdldENvb2tpZXMo
bWFuYWdlci0+cHJpdi0+c2Vzc2lvbklEKCksIFVSTCB7IFN0cmluZzo6ZnJvbVVURjgodXJpKSB9
LCBbdGFzayA9IFdURk1vdmUodGFzayldKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiBj
b29raWVzKSB7CisgICAgbWFuYWdlci0+cHJpdi0+Y29va2llU3RvcmUoKS5jb29raWVzRm9yVVJM
KFVSTCB7IFN0cmluZzo6ZnJvbVVURjgodXJpKSB9LCBbdGFzayA9IFdURk1vdmUodGFzayldKGNv
bnN0IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiBjb29raWVzKSB7CiAgICAgICAgIEdMaXN0KiBj
b29raWVzTGlzdCA9IG51bGxwdHI7CiAgICAgICAgIGZvciAoYXV0byYgY29va2llIDogY29va2ll
cykKICAgICAgICAgICAgIGNvb2tpZXNMaXN0ID0gZ19saXN0X3ByZXBlbmQoY29va2llc0xpc3Qs
IGNvb2tpZS50b1NvdXBDb29raWUoKSk7CkBAIC0zODQsNyArMzg0LDcgQEAgdm9pZCB3ZWJraXRf
Y29va2llX21hbmFnZXJfZGVsZXRlX2Nvb2tpZShXZWJLaXRDb29raWVNYW5hZ2VyKiBtYW5hZ2Vy
LCBTb3VwQ29va2kKICAgICBnX3JldHVybl9pZl9mYWlsKGNvb2tpZSk7CiAKICAgICBHUmVmUHRy
PEdUYXNrPiB0YXNrID0gYWRvcHRHUmVmKGdfdGFza19uZXcobWFuYWdlciwgY2FuY2VsbGFibGUs
IGNhbGxiYWNrLCB1c2VyRGF0YSkpOwotICAgIG1hbmFnZXItPnByaXYtPmNvb2tpZU1hbmFnZXIo
KS5kZWxldGVDb29raWUobWFuYWdlci0+cHJpdi0+c2Vzc2lvbklEKCksIFdlYkNvcmU6OkNvb2tp
ZShjb29raWUpLCBbdGFzayA9IFdURk1vdmUodGFzayldKCkgeworICAgIG1hbmFnZXItPnByaXYt
PmNvb2tpZVN0b3JlKCkuZGVsZXRlQ29va2llKFdlYkNvcmU6OkNvb2tpZShjb29raWUpLCBbdGFz
ayA9IFdURk1vdmUodGFzayldKCkgewogICAgICAgICBnX3Rhc2tfcmV0dXJuX2Jvb2xlYW4odGFz
ay5nZXQoKSwgVFJVRSk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJQcm94eVNvdXAuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL3NvdXAvSFRUUENvb2tpZVN0b3JlU291cC5jcHAKc2ltaWxhcml0eSBp
bmRleCA3NSUKcmVuYW1lIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvc291cC9XZWJDb29r
aWVNYW5hZ2VyUHJveHlTb3VwLmNwcApyZW5hbWUgdG8gU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL3NvdXAvSFRUUENvb2tpZVN0b3JlU291cC5jcHAKaW5kZXggZDA3YmM0MWEzMjVjLi5mM2Qx
YTNjNjhhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3NvdXAvV2ViQ29v
a2llTWFuYWdlclByb3h5U291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L3NvdXAvSFRUUENvb2tpZVN0b3JlU291cC5jcHAKQEAgLTI0LDE3ICsyNCwxOSBAQAogICovCiAK
ICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIK
KyNpbmNsdWRlICJBUElIVFRQQ29va2llU3RvcmUuaCIKIAorI2luY2x1ZGUgIk5ldHdvcmtQcm9j
ZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIlNvdXBD
b29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUuaCIKICNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2Vy
TWVzc2FnZXMuaCIKIAotbmFtZXNwYWNlIFdlYktpdCB7CituYW1lc3BhY2UgQVBJIHsKIAotdm9p
ZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBzdG9yYWdlUGF0aCwgU291cENvb2tp
ZVBlcnNpc3RlbnRTdG9yYWdlVHlwZSBzdG9yYWdlVHlwZSkKK3ZvaWQgSFRUUENvb2tpZVN0b3Jl
OjpzZXRDb29raWVQZXJzaXN0ZW50U3RvcmFnZShjb25zdCBXVEY6OlN0cmluZyYgc3RvcmFnZVBh
dGgsIFdlYktpdDo6U291cENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlwZSBzdG9yYWdlVHlwZSkK
IHsKLSAgICBpZiAobV9uZXR3b3JrUHJvY2VzcykKLSAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6U2V0Q29va2llUGVyc2lzdGVudFN0b3Jh
Z2Uoc2Vzc2lvbklELCBzdG9yYWdlUGF0aCwgc3RvcmFnZVR5cGUpLCAwKTsKKyAgICBpZiAoYXV0
byogbmV0d29ya1Byb2Nlc3MgPSBuZXR3b3JrUHJvY2Vzc0lmRXhpc3RzKCkpCisgICAgICAgIG5l
dHdvcmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpTZXRDb29raWVQ
ZXJzaXN0ZW50U3RvcmFnZShtX3Nlc3Npb25JRCwgc3RvcmFnZVBhdGgsIHN0b3JhZ2VUeXBlKSwg
MCk7CiB9CiAKLX0gLy8gbmFtZXNwYWNlIFdlYktpdAorfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25T
ZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21h
dGlvblNlc3Npb24uY3BwCmluZGV4IGRhMGJkMGZkZjViMS4uNDA0NDM5MGRlMmJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNz
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9t
YXRpb25TZXNzaW9uLmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQVBJQXJyYXku
aCIKICNpbmNsdWRlICJBUElBdXRvbWF0aW9uU2Vzc2lvbkNsaWVudC5oIgorI2luY2x1ZGUgIkFQ
SUhUVFBDb29raWVTdG9yZS5oIgogI2luY2x1ZGUgIkFQSU5hdmlnYXRpb24uaCIKICNpbmNsdWRl
ICJBUElPcGVuUGFuZWxQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiQXV0b21hdGlvblByb3RvY29s
T2JqZWN0cy5oIgpAQCAtMzYsNyArMzcsNiBAQAogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNz
aW9uTWFjcm9zLmgiCiAjaW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb25NZXNzYWdlcy5oIgog
I2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUg
IldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHkuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JVSVByb3h5LmgiCiAjaW5jbHVkZSAiV2Vi
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5oIgpAQCAtMTQ3MSw4ICsxNDcxLDggQEAgdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6YWRkU2luZ2xlQ29va2llKGNvbnN0IEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb24KIAogICAgIGNvb2tpZS5zYW1lU2l0ZSA9IHRvV2ViQ29yZVNh
bWVTaXRlUG9saWN5KCpwYXJzZWRTYW1lU2l0ZSk7CiAKLSAgICBXZWJDb29raWVNYW5hZ2VyUHJv
eHkmIGNvb2tpZU1hbmFnZXIgPSBwYWdlLT53ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nl
c3MoKS5jb29raWVNYW5hZ2VyKCk7Ci0gICAgY29va2llTWFuYWdlci5zZXRDb29raWVzKHBhZ2Ut
PndlYnNpdGVEYXRhU3RvcmUoKS5zZXNzaW9uSUQoKSwgeyBjb29raWUgfSwgW2NhbGxiYWNrXSgp
IHsKKyAgICBhdXRvJiBjb29raWVTdG9yZSA9IHBhZ2UtPndlYnNpdGVEYXRhU3RvcmUoKS5jb29r
aWVTdG9yZSgpOworICAgIGNvb2tpZVN0b3JlLnNldENvb2tpZXMoeyBjb29raWUgfSwgW2NhbGxi
YWNrXSgpIHsKICAgICAgICAgY2FsbGJhY2stPnNlbmRTdWNjZXNzKCk7CiAgICAgfSk7CiB9CkBA
IC0xNDg4LDggKzE0ODgsOCBAQCBJbnNwZWN0b3I6OlByb3RvY29sOjpFcnJvclN0cmluZ09yPHZv
aWQ+IFdlYkF1dG9tYXRpb25TZXNzaW9uOjpkZWxldGVBbGxDb29raWVzKAogCiAgICAgU3RyaW5n
IGhvc3QgPSBhY3RpdmVVUkwuaG9zdCgpLnRvU3RyaW5nKCk7CiAKLSAgICBXZWJDb29raWVNYW5h
Z2VyUHJveHkmIGNvb2tpZU1hbmFnZXIgPSBwYWdlLT53ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29y
a1Byb2Nlc3MoKS5jb29raWVNYW5hZ2VyKCk7Ci0gICAgY29va2llTWFuYWdlci5kZWxldGVDb29r
aWVzRm9ySG9zdG5hbWVzKHBhZ2UtPndlYnNpdGVEYXRhU3RvcmUoKS5zZXNzaW9uSUQoKSwgeyBo
b3N0LCBkb21haW5CeUFkZGluZ0RvdFByZWZpeElmTmVlZGVkKGhvc3QpIH0sIFtdIHsgfSk7Cisg
ICAgYXV0byYgY29va2llU3RvcmUgPSBwYWdlLT53ZWJzaXRlRGF0YVN0b3JlKCkuY29va2llU3Rv
cmUoKTsKKyAgICBjb29raWVTdG9yZS5kZWxldGVDb29raWVzRm9ySG9zdG5hbWVzKHsgaG9zdCwg
ZG9tYWluQnlBZGRpbmdEb3RQcmVmaXhJZk5lZWRlZChob3N0KSB9LCBbXSB7IH0pOwogCiAgICAg
cmV0dXJuIHsgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGI5MTEyZGVlZTI5NS4uYzA0MWM1NThi
MmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJBUElDdXN0
b21Qcm90b2NvbE1hbmFnZXJDbGllbnQuaCIKICNpbmNsdWRlICJBUElEYXRhVGFzay5oIgogI2lu
Y2x1ZGUgIkFQSURhdGFUYXNrQ2xpZW50LmgiCisjaW5jbHVkZSAiQVBJSFRUUENvb2tpZVN0b3Jl
LmgiCiAjaW5jbHVkZSAiQVBJTmF2aWdhdGlvbi5oIgogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlUHJveHkuaCIKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbk1hbmFnZXIuaCIKQEAg
LTQ5LDcgKzUwLDYgQEAKICNpbmNsdWRlICJTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3MuaCIK
ICNpbmNsdWRlICJTdG9yYWdlQWNjZXNzU3RhdHVzLmgiCiAjaW5jbHVkZSAiV2ViQ29tcGlsZWRD
b250ZW50UnVsZUxpc3QuaCIKLSNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKICNp
bmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJQYWdl
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKQEAgLTIzOSw3ICsyMzksNiBA
QCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpOZXR3b3JrUHJvY2Vzc1Byb3h5KCkKICAgICAsIG1fY3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50KG1ha2VVbmlxdWVSZWY8QVBJOjpDdXN0b21Qcm90b2Nv
bE1hbmFnZXJDbGllbnQ+KCkpCiAjZW5kaWYKICAgICAsIG1fdGhyb3R0bGVyKCp0aGlzLCBXZWJQ
cm9jZXNzUG9vbDo6YW55UHJvY2Vzc1Bvb2xOZWVkc1VJQmFja2dyb3VuZEFzc2VydGlvbigpKQot
ICAgICwgbV9jb29raWVNYW5hZ2VyKG1ha2VVbmlxdWVSZWY8V2ViQ29va2llTWFuYWdlclByb3h5
PigqdGhpcykpCiB7CiAgICAgUkVMRUFTRV9MT0coUHJvY2VzcywgIiVwIC0gTmV0d29ya1Byb2Nl
c3NQcm94eTo6TmV0d29ya1Byb2Nlc3NQcm94eSIsIHRoaXMpOwogCkBAIC0xMzg5LDExICsxMzg4
LDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1
bWVSZWFzb24gcmVhc29uKQogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6
UHJvY2Vzc0RpZFJlc3VtZShyZWFzb24gPT0gUmVzdW1lUmVhc29uOjpGb3JlZ3JvdW5kQWN0aXZp
dHkpLCAwKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpmbHVzaENvb2tpZXMoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCi17Ci0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3Jr
UHJvY2Vzczo6Rmx1c2hDb29raWVzKHNlc3Npb25JRCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKLX0KLQogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjphZGRTZXNzaW9uKFdlYnNpdGVE
YXRhU3RvcmUmIHN0b3JlLCBTZW5kUGFyYW1ldGVyc1RvTmV0d29ya1Byb2Nlc3Mgc2VuZFBhcmFt
ZXRlcnNUb05ldHdvcmtQcm9jZXNzKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV93ZWJzaXRl
RGF0YVN0b3Jlcy5hZGQoc3RvcmUpOwpAQCAtMTgyOSw2ICsxODIzLDEyIEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6YXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCkKICAgICBzZW5k
KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6QXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5k
KCksIDApOwogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmNvb2tpZXNEaWRDaGFuZ2Uo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQoreworICAgIGlmIChhdXRvKiB3ZWJzaXRlRGF0YVN0
b3JlID0gd2Vic2l0ZURhdGFTdG9yZUZyb21TZXNzaW9uSUQoc2Vzc2lvbklEKSkKKyAgICAgICAg
d2Vic2l0ZURhdGFTdG9yZS0+Y29va2llU3RvcmUoKS5jb29raWVzRGlkQ2hhbmdlKCk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgTUVTU0FHRV9DSEVDSwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApp
bmRleCA5MTQzNmEwNDkwZmYuLjdmNjI4MTc0YTQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTg3LDcgKzg3
LDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIERvd25sb2FkUHJveHk7CiBjbGFzcyBE
b3dubG9hZFByb3h5TWFwOwotY2xhc3MgV2ViQ29va2llTWFuYWdlclByb3h5OwogY2xhc3MgV2Vi
UGFnZVByb3h5OwogY2xhc3MgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk7CiAKQEAgLTI3
Miw4ICsyNzEsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVCdW5kbGVJZGVudGlmaWVyKGNv
bnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBjbGVh
ckJ1bmRsZUlkZW50aWZpZXIoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAotICAgIFdl
YkNvb2tpZU1hbmFnZXJQcm94eSYgY29va2llTWFuYWdlcigpIHsgcmV0dXJuIG1fY29va2llTWFu
YWdlci5nZXQoKTsgfQotCiAgICAgQVBJOjpDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQmIGN1
c3RvbVByb3RvY29sTWFuYWdlckNsaWVudCgpIHsgcmV0dXJuIG1fY3VzdG9tUHJvdG9jb2xNYW5h
Z2VyQ2xpZW50LmdldCgpOyB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTMwNCw2ICszMDEs
OCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIG5hdmlnYXRlU2VydmljZVdvcmtlckNsaWVudChXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyLCBjb25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+KT4mJik7CiAKKyAgICB2b2lkIGNvb2tpZXNEaWRDaGFu
Z2UoUEFMOjpTZXNzaW9uSUQpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IE5ldHdvcmtQcm9j
ZXNzUHJveHkoKTsKIApAQCAtNDIwLDcgKzQxOSw2IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAg
IFdlYWtIYXNoU2V0PFdlYnNpdGVEYXRhU3RvcmU+IG1fd2Vic2l0ZURhdGFTdG9yZXM7Ci0gICAg
VW5pcXVlUmVmPFdlYkNvb2tpZU1hbmFnZXJQcm94eT4gbV9jb29raWVNYW5hZ2VyOwogICAgIEhh
c2hNYXA8RGF0YVRhc2tJZGVudGlmaWVyLCBSZWY8QVBJOjpEYXRhVGFzaz4+IG1fZGF0YVRhc2tz
OwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5p
bgppbmRleCAwMjFmYjFhNTMxNDQuLjk3MTNjMTYxOGI1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbgpAQCAtOTQsNiArOTQsOCBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc1By
b3h5IExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIE9wZW5XaW5kb3dGcm9tU2VydmljZVdvcmtlcihQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyB1cmxTdHJpbmcsIHN0cnVjdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEgc2VydmljZVdvcmtlck9yaWdpbikgLT4gKHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG5ld1BhZ2UpCiAgICAgTmF2aWdhdGVTZXJ2aWNl
V29ya2VyQ2xpZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlkZW50aWZpZXIsIFdl
YkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGRvY3VtZW50SWRlbnRpZmll
ciwgVVJMIHVybCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBh
Z2UpCisKKyAgICBDb29raWVzRGlkQ2hhbmdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdl
clByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94
eS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE1N2FkMWI4MDg1Zi4uMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94
eS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxODkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIK
LQotI2luY2x1ZGUgIkFQSUFycmF5LmgiCi0jaW5jbHVkZSAiQVBJU2VjdXJpdHlPcmlnaW4uaCIK
LSNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiTmV0d29ya1By
b2Nlc3NQcm94eS5oIgotI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5oIgotI2lu
Y2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViUHJv
Y2Vzc1Bvb2wuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZS5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7Ci0KLVdlYkNvb2tpZU1hbmFnZXJQcm94eTo6V2ViQ29va2llTWFuYWdl
clByb3h5KE5ldHdvcmtQcm9jZXNzUHJveHkmIG5ldHdvcmtQcm9jZXNzKQotICAgIDogbV9uZXR3
b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2VzcykKLXsKLSAgICBuZXR3b3JrUHJvY2Vzcy5hZGRNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpLCAqdGhpcyk7Ci19Ci0KLVdlYkNvb2tpZU1hbmFnZXJQcm94eTo6fldlYkNvb2tp
ZU1hbmFnZXJQcm94eSgpCi17Ci0gICAgaWYgKG1fbmV0d29ya1Byb2Nlc3MpCi0gICAgICAgIG1f
bmV0d29ya1Byb2Nlc3MtPnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViQ29va2ll
TWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwotICAgIGlmICghbV9jb29raWVP
YnNlcnZlcnMuaXNFbXB0eSgpKQotICAgICAgICBSRUxFQVNFX0xPRyhTdG9yYWdlLCAiV2ViQ29v
a2llTWFuYWdlclByb3h5Ojp+V2ViQ29va2llTWFuYWdlclByb3h5ICV1IGNvb2tpZSBvYnNlcnZl
cnMgd2lsbCBiZSBpbnZhbGlkYXRlZCIsIG1fY29va2llT2JzZXJ2ZXJzLnNpemUoKSk7Ci19Ci0K
LXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmlu
Zz4mJik+JiYgY2FsbGJhY2tGdW5jdGlvbikKLXsKLSAgICBpZiAobV9uZXR3b3JrUHJvY2VzcykK
LSAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpX
ZWJDb29raWVNYW5hZ2VyOjpHZXRIb3N0bmFtZXNXaXRoQ29va2llcyhzZXNzaW9uSUQpLCBXVEZN
b3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKLSAgICBlbHNlCi0gICAgICAgIGNhbGxiYWNrRnVuY3Rp
b24oeyB9KTsKLX0KLQotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUNvb2tpZXNG
b3JIb3N0bmFtZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYgaG9zdG5hbWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCi17Ci0gICAgaWYgKG1fbmV0d29ya1Byb2Nlc3MpCi0gICAgICAgIG1fbmV0d29ya1Byb2Nl
c3MtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6RGVsZXRl
Q29va2llc0Zvckhvc3RuYW1lcyhzZXNzaW9uSUQsIGhvc3RuYW1lcyksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKLSAgICBlbHNlCi0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci19
Ci0KLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpkZWxldGVBbGxDb29raWVzKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQotewotICAgIGlmIChtX25ldHdvcmtQcm9jZXNzKQotICAgICAgICBtX25ldHdvcmtQ
cm9jZXNzLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OkRl
bGV0ZUFsbENvb2tpZXMoc2Vzc2lvbklEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwot
ICAgIGVsc2UKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLX0KLQotdm9pZCBXZWJDb29r
aWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUNvb2tpZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IENvb2tpZSYgY29va2llLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2tG
dW5jdGlvbikKLXsKLSAgICBpZiAobV9uZXR3b3JrUHJvY2VzcykKLSAgICAgICAgbV9uZXR3b3Jr
UHJvY2Vzcy0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpE
ZWxldGVDb29raWUoc2Vzc2lvbklELCBjb29raWUpLCBXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24p
KTsKLSAgICBlbHNlCi0gICAgICAgIGNhbGxiYWNrRnVuY3Rpb24oKTsKLX0KLQotdm9pZCBXZWJD
b29raWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZFNpbmNlKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgV2FsbFRpbWUgdGltZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNhbGxiYWNrRnVuY3Rpb24pCi17Ci0gICAgaWYgKG1fbmV0d29ya1Byb2Nlc3MpCi0gICAg
ICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQ29v
a2llTWFuYWdlcjo6RGVsZXRlQWxsQ29va2llc01vZGlmaWVkU2luY2Uoc2Vzc2lvbklELCB0aW1l
KSwgV1RGTW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7Ci0gICAgZWxzZQotICAgICAgICBjYWxsYmFj
a0Z1bmN0aW9uKCk7Ci19Ci0KLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpzZXRDb29raWVz
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVmVjdG9yPENvb2tpZT4mIGNvb2tpZXMs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQotewotICAgIGlm
IChtX25ldHdvcmtQcm9jZXNzKQotICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5zZW5kV2l0aEFz
eW5jUmVwbHkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OlNldENvb2tpZShzZXNzaW9uSUQs
IGNvb2tpZXMpLCBXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKLSAgICBlbHNlCi0gICAgICAg
IGNhbGxiYWNrRnVuY3Rpb24oKTsKLX0KLQotdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNl
dENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBWZWN0b3I8Q29va2llPiYg
Y29va2llcywgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgbWFpbkRvY3VtZW50VVJMLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2tGdW5jdGlvbikKLXsKLSAgICBpZiAobV9u
ZXR3b3JrUHJvY2VzcykKLSAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpTZXRDb29raWVzKHNlc3Npb25JRCwgY29v
a2llcywgdXJsLCBtYWluRG9jdW1lbnRVUkwpLCBXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsK
LSAgICBlbHNlCi0gICAgICAgIGNhbGxiYWNrRnVuY3Rpb24oKTsKLX0KLQotdm9pZCBXZWJDb29r
aWVNYW5hZ2VyUHJveHk6OmdldEFsbENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxDb29raWU+JiYpPiYmIGNhbGxiYWNrRnVuY3Rp
b24pCi17Ci0gICAgaWYgKG1fbmV0d29ya1Byb2Nlc3MpCi0gICAgICAgIG1fbmV0d29ya1Byb2Nl
c3MtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6R2V0QWxs
Q29va2llcyhzZXNzaW9uSUQpLCBXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKLSAgICBlbHNl
Ci0gICAgICAgIGNhbGxiYWNrRnVuY3Rpb24oeyB9KTsKLX0KLQotdm9pZCBXZWJDb29raWVNYW5h
Z2VyUHJveHk6OmdldENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwm
IHVybCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8Q29va2llPiYmKT4mJiBjYWxsYmFj
a0Z1bmN0aW9uKQotewotICAgIGlmIChtX25ldHdvcmtQcm9jZXNzKQotICAgICAgICBtX25ldHdv
cmtQcm9jZXNzLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6
OkdldENvb2tpZXMoc2Vzc2lvbklELCB1cmwpLCBXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsK
LSAgICBlbHNlCi0gICAgICAgIGNhbGxiYWNrRnVuY3Rpb24oeyB9KTsKLX0KLQotdm9pZCBXZWJD
b29raWVNYW5hZ2VyUHJveHk6OnN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpCi17Ci0gICAgaWYgKG1fbmV0d29ya1Byb2Nlc3MpCi0gICAgICAgIG1f
bmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OlN0YXJ0T2Jz
ZXJ2aW5nQ29va2llQ2hhbmdlcyhzZXNzaW9uSUQpLCAwKTsKLX0KLQotdm9pZCBXZWJDb29raWVN
YW5hZ2VyUHJveHk6OnN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKLXsKLSAgICBpZiAobV9uZXR3b3JrUHJvY2VzcykKLSAgICAgICAgbV9uZXR3b3Jr
UHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6U3RvcE9ic2VydmluZ0Nv
b2tpZUNoYW5nZXMoc2Vzc2lvbklEKSwgMCk7Ci19Ci0KLXZvaWQgV2ViQ29va2llTWFuYWdlclBy
b3h5OjpyZWdpc3Rlck9ic2VydmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT2JzZXJ2ZXIm
IG9ic2VydmVyKQotewotICAgIGF1dG8gcmVzdWx0ID0gbV9jb29raWVPYnNlcnZlcnMuc2V0KHNl
c3Npb25JRCwgV2Vha0hhc2hTZXQ8T2JzZXJ2ZXI+KCkpOwotICAgIHJlc3VsdC5pdGVyYXRvci0+
dmFsdWUuYWRkKG9ic2VydmVyKTsKLQotICAgIGlmIChyZXN1bHQuaXNOZXdFbnRyeSkKLSAgICAg
ICAgc3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKHNlc3Npb25JRCk7Ci19Ci0KLXZvaWQgV2Vi
Q29va2llTWFuYWdlclByb3h5Ojp1bnJlZ2lzdGVyT2JzZXJ2ZXIoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBPYnNlcnZlciYgb2JzZXJ2ZXIpCi17Ci0gICAgYXV0byBpdGVyYXRvciA9IG1fY29v
a2llT2JzZXJ2ZXJzLmZpbmQoc2Vzc2lvbklEKTsKLSAgICBpZiAoaXRlcmF0b3IgPT0gbV9jb29r
aWVPYnNlcnZlcnMuZW5kKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGl0ZXJhdG9yLT52YWx1
ZS5yZW1vdmUob2JzZXJ2ZXIpOwotICAgIGlmICghaXRlcmF0b3ItPnZhbHVlLmNvbXB1dGVzRW1w
dHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9jb29raWVPYnNlcnZlcnMucmVtb3ZlKGl0
ZXJhdG9yKTsKLSAgICBzdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhzZXNzaW9uSUQpOwotfQot
Ci12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6Y29va2llc0RpZENoYW5nZShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpCi17Ci0gICAgYXV0byBpdGVyYXRvciA9IG1fY29va2llT2JzZXJ2ZXJz
LmZpbmQoc2Vzc2lvbklEKTsKLSAgICBpZiAoaXRlcmF0b3IgPT0gbV9jb29raWVPYnNlcnZlcnMu
ZW5kKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBpdGVy
YXRvci0+dmFsdWUpCi0gICAgICAgIG9ic2VydmVyLmNvb2tpZXNEaWRDaGFuZ2UoKTsKLX0KLQot
dm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFM
OjpTZXNzaW9uSUQsIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2tGdW5jdGlvbikKLXsKLSAgICBpZiAobV9uZXR3b3JrUHJv
Y2VzcykKLSAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpXZWJDb29raWVNYW5hZ2VyOjpTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSks
IFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwotICAgIGVsc2UKLSAgICAgICAgY2FsbGJhY2tG
dW5jdGlvbigpOwotfQotCi12b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6Z2V0SFRUUENvb2tp
ZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoSFRUUENvb2tpZUFjY2VwdFBvbGljeSk+JiYgY2FsbGJhY2tGdW5jdGlvbikKLXsKLSAg
ICBpZiAobV9uZXR3b3JrUHJvY2VzcykKLSAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpHZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5KHNlc3Npb25JRCksIFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwotICAgIGVs
c2UKLSAgICAgICAgY2FsbGJhY2tGdW5jdGlvbihIVFRQQ29va2llQWNjZXB0UG9saWN5OjpOZXZl
cik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMjc2ZWYwMDVmY2U1Li4wMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQ29va2llTWFuYWdlclByb3h5LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMDMgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiQVBJT2JqZWN0
LmgiCi0jaW5jbHVkZSAiR2VuZXJpY0NhbGxiYWNrLmgiCi0jaW5jbHVkZSAiTWVzc2FnZVJlY2Vp
dmVyLmgiCi0jaW5jbHVkZSAiV2ViQ29udGV4dFN1cHBsZW1lbnQuaCIKLSNpbmNsdWRlIDxwYWwv
U2Vzc2lvbklELmg+Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvV2Vha0hhc2hT
ZXQuaD4KLQotI2lmIFVTRShTT1VQKQotI2luY2x1ZGUgIlNvdXBDb29raWVQZXJzaXN0ZW50U3Rv
cmFnZVR5cGUuaCIKLSNlbmRpZgotCi1uYW1lc3BhY2UgQVBJIHsKLWNsYXNzIEFycmF5OwotfQot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1zdHJ1Y3QgQ29va2llOwotfQotCi1uYW1lc3BhY2UgV2Vi
S2l0IHsKLQotY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7Ci1jbGFzcyBXZWJQcm9jZXNzUHJveHk7Ci0K
LWNsYXNzIFdlYkNvb2tpZU1hbmFnZXJQcm94eSA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZl
ciB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgV2ViQ29va2ll
TWFuYWdlclByb3h5KE5ldHdvcmtQcm9jZXNzUHJveHkmKTsKLSAgICB2aXJ0dWFsIH5XZWJDb29r
aWVNYW5hZ2VyUHJveHkoKTsKLQotICAgIHZvaWQgZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoUEFM
OjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJik+JiYp
OwotICAgIHZvaWQgZGVsZXRlQ29va2llKFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpD
b29raWUmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgZGVsZXRlQ29v
a2llc0Zvckhvc3RuYW1lcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgZGVsZXRlQWxsQ29va2llcyhQ
QUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIGRl
bGV0ZUFsbENvb2tpZXNNb2RpZmllZFNpbmNlKFBBTDo6U2Vzc2lvbklELCBXYWxsVGltZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLQotICAgIHZvaWQgc2V0Q29va2llcyhQQUw6OlNl
c3Npb25JRCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0Q29va2llcyhQQUw6OlNlc3Npb25JRCwgY29uc3Qg
VmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mLCBjb25zdCBVUkwmLCBjb25zdCBVUkwmIG1haW5Eb2N1
bWVudFVSTCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLQotICAgIHZvaWQgZ2V0QWxs
Q29va2llcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2Vi
Q29yZTo6Q29va2llPiYmKT4mJik7Ci0gICAgdm9pZCBnZXRDb29raWVzKFBBTDo6U2Vzc2lvbklE
LCBjb25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpDb29r
aWU+JiYpPiYmKTsKLQotICAgIHZvaWQgc2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNl
c3Npb25JRCwgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIGdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpT
ZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6SFRUUENvb2tpZUFjY2Vw
dFBvbGljeSk+JiYpOwotCi0gICAgdm9pZCBzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFM
OjpTZXNzaW9uSUQpOwotICAgIHZvaWQgc3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoUEFMOjpT
ZXNzaW9uSUQpOwotCi0gICAgY2xhc3MgT2JzZXJ2ZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
T2JzZXJ2ZXI+IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCkgeyB9
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBjb29raWVzRGlkQ2hhbmdlKCkgPSAwOwotICAgIH07Ci0K
LSAgICB2b2lkIHJlZ2lzdGVyT2JzZXJ2ZXIoUEFMOjpTZXNzaW9uSUQsIE9ic2VydmVyJik7Ci0g
ICAgdm9pZCB1bnJlZ2lzdGVyT2JzZXJ2ZXIoUEFMOjpTZXNzaW9uSUQsIE9ic2VydmVyJik7Ci0K
LSNpZiBVU0UoU09VUCkKLSAgICB2b2lkIHNldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHN0b3JhZ2VQYXRoLCBTb3VwQ29va2llUGVyc2lzdGVu
dFN0b3JhZ2VUeXBlKTsKLSNlbmRpZgotCi1wcml2YXRlOgotICAgIHZvaWQgY29va2llc0RpZENo
YW5nZShQQUw6OlNlc3Npb25JRCk7Ci0KLSAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikg
b3ZlcnJpZGU7Ci0KLSAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBXZWFrSGFzaFNldDxPYnNl
cnZlcj4+IG1fY29va2llT2JzZXJ2ZXJzOwotCi0gICAgV2Vha1B0cjxOZXR3b3JrUHJvY2Vzc1By
b3h5PiBtX25ldHdvcmtQcm9jZXNzOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcyNGFlZDMwMDQyNC4u
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbgorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLSMgQ29w
eXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwot
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORAotIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCi0jIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi0jIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSMgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IKLSMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKLSMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLSMgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotbWVzc2FnZXMgLT4gV2ViQ29va2ll
TWFuYWdlclByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIENvb2tpZXNEaWRDaGFuZ2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwCmluZGV4IDU4MmQ4MWU3ZDc5Zi4uNjIzNjE2NTRmMzlhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC02Miw3ICs2Miw2IEBACiAjaW5j
bHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIgogI2luY2x1ZGUgIldlYkNlcnRpZmljYXRl
SW5mby5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRTdXBwbGVtZW50LmgiCi0jaW5jbHVkZSAiV2Vi
Q29va2llTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgi
CiAjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJJ
bnNwZWN0b3JVdGlsaXRpZXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggODEyZGY4MWJmODI2Li4y
OTFlMTg5YWVkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0zOSw3ICszOSw2IEBACiAjaW5jbHVk
ZSAiU2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFjY2Vz
c1N0YXR1cy5oIgogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkQ2FjaGUuaCIKLSNpbmNsdWRlICJX
ZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJLaXQySW5pdGlhbGl6ZS5oIgog
I2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYlBh
Z2VQcm94eS5oIgpAQCAtMTcwOCwxMSArMTcwNyw2IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6
Y2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzSW5XZWJQcm9jZXNzZXMoQ29tcGxldGlvbkhhbmRs
CiB9CiAjZW5kaWYKIAotdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpmbHVzaENvb2tpZXMoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIG5ldHdvcmtQ
cm9jZXNzKCkuZmx1c2hDb29raWVzKHNlc3Npb25JRCgpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7Ci19Ci0KIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0QWxsb3dzQW55U1NMQ2VydGlm
aWNhdGVGb3JXZWJTb2NrZXQoYm9vbCBhbGxvd3MpCiB7CiAgICAgbmV0d29ya1Byb2Nlc3MoKS5z
ZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldEFsbG93c0FueVNTTENlcnRpZmlj
YXRlRm9yV2ViU29ja2V0KGFsbG93cyksIE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0QWxs
b3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2NrZXQ6OlJlcGx5KCksIDApOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvc291cC9XZWJzaXRlRGF0YVN0
b3JlU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9zb3VwL1dl
YnNpdGVEYXRhU3RvcmVTb3VwLmNwcAppbmRleCBiY2FlYjEyZDk0ZmQuLmJhMzIzNWNiZGMxOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvc291cC9XZWJz
aXRlRGF0YVN0b3JlU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvc291cC9XZWJzaXRlRGF0YVN0b3JlU291cC5jcHAKQEAgLTI3LDggKzI3LDggQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlLmgiCiAKKyNpbmNs
dWRlICJBUElIVFRQQ29va2llU3RvcmUuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3Nh
Z2VzLmgiCi0jaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKICNpbmNs
dWRlICJXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIgpAQCAtODAsNyArODAsNyBAQCB2b2lk
IFdlYnNpdGVEYXRhU3RvcmU6OnNldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKGNvbnN0IFN0cmlu
ZyYgc3RvcmFnZVBhdGgsIFNvdQogCiAgICAgbV9jb29raWVQZXJzaXN0ZW50U3RvcmFnZVBhdGgg
PSBzdG9yYWdlUGF0aDsKICAgICBtX2Nvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlwZSA9IHN0b3Jh
Z2VUeXBlOwotICAgIG5ldHdvcmtQcm9jZXNzKCkuY29va2llTWFuYWdlcigpLnNldENvb2tpZVBl
cnNpc3RlbnRTdG9yYWdlKG1fc2Vzc2lvbklELCBtX2Nvb2tpZVBlcnNpc3RlbnRTdG9yYWdlUGF0
aCwgbV9jb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUpOworICAgIGNvb2tpZVN0b3JlKCkuc2V0
Q29va2llUGVyc2lzdGVudFN0b3JhZ2UobV9jb29raWVQZXJzaXN0ZW50U3RvcmFnZVBhdGgsIG1f
Y29va2llUGVyc2lzdGVudFN0b3JhZ2VUeXBlKTsKIH0KIAogdm9pZCBXZWJzaXRlRGF0YVN0b3Jl
OjpzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xp
Y3kgcG9saWN5KQpAQCAtODksNyArODksNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldEhU
VFBDb29raWVBY2NlcHRQb2xpY3koV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeQogICAg
ICAgICByZXR1cm47CiAKICAgICBtX2Nvb2tpZUFjY2VwdFBvbGljeSA9IHBvbGljeTsKLSAgICBu
ZXR3b3JrUHJvY2VzcygpLmNvb2tpZU1hbmFnZXIoKS5zZXRIVFRQQ29va2llQWNjZXB0UG9saWN5
KG1fc2Vzc2lvbklELCBwb2xpY3ksIFtdIHsgfSk7CisgICAgY29va2llU3RvcmUoKS5zZXRIVFRQ
Q29va2llQWNjZXB0UG9saWN5KHBvbGljeSwgW10geyB9KTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9zb3VwL1dlYlByb2Nl
c3NQb29sU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NQ
b29sU291cC5jcHAKaW5kZXggM2E3NWRkZTExYzc2Li5mNDJjNDFkYTBkMzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1Bvb2xTb3VwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NQb29sU291cC5jcHAKQEAg
LTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJNZW1vcnlQcmVzc3VyZU1vbml0b3IuaCIKICNpbmNs
dWRlICJOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIk5ldHdv
cmtQcm9jZXNzTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIK
ICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNz
TWVzc2FnZXMuaCIKICNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDViMzA5ZGNiNWE3Yy4uODZl
NDFjMjRjZjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTc1MCwxMCArNzUwLDcgQEAKIAkJMzFGMDYwRTExNjU0MzE4NTAwRjMyODFD
IC8qIE5ldHdvcmtTb2NrZXRDaGFubmVsTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxRjA2MEREMTY1NDMxNzUwMEYzMjgx
QyAvKiBOZXR3b3JrU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTMz
MDkzNDQ3MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzMDkz
NDQzMTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLzsgfTsKIAkJMzMwOTM0NDgxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJN
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzMwOTM0NDQxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5oICov
OyB9OwotCQkzMzA5MzQ0OTEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMzMDkzNDQ1MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwotCQkzMzA5MzQ0QTEzMTVCOTIyMDA5N0E3QkMg
LyogV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzMDkzNDQ2MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJD
b29raWVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovOyB9OwogCQkzMzA5MzQ1MDEzMTVCOTREMDA5
N0E3QkMgLyogV2ViQ29va2llTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzMwOTM0NEQxMzE1Qjk0RDAwOTdBN0JDIC8qIFdlYkNvb2tpZU1h
bmFnZXIuaCAqLzsgfTsKLQkJMzMwOTM0NTYxMzE1Qjk3NTAwOTdBN0JDIC8qIFdlYkNvb2tpZU1h
bmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzMwOTM0NTMxMzE1Qjk3NTAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eS5oICov
OyB9OwogCQkzMzA5MzQ1QjEzMTVCOTk4MDA5N0E3QkMgLyogV0tDb29raWVNYW5hZ2VyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzA5MzQ1OTEzMTVC
OTk4MDA5N0E3QkMgLyogV0tDb29raWVNYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzMzNjc2M0IxMzBDOTlEQzAwNkM5REUyIC8qIFdL
UmVzb3VyY2VDYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMzMzY3NjM5MTMwQzk5REMwMDZDOURFMiAvKiBXS1Jlc291cmNlQ2FjaGVN
YW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMzcwRjM0QTMxODI5QkUxRTAwOTAyN0M4IC8qIFdLTmF2aWdhdGlvbkRhdGEuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3MEYzNEExMTgyOUJFMUUw
MDkwMjdDOCAvKiBXS05hdmlnYXRpb25EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI3NTMsOCArMjc1MCw4IEBACiAJCQlkc3RQYXRoID0g
IiI7CiAJCQlkc3RTdWJmb2xkZXJTcGVjID0gMTY7CiAJCQlmaWxlcyA9ICgKLQkJCQlEREU5OTJG
NjI3OEQwNzFGMDBGNjBEMjYgLyogbGliV2ViS2l0QWRkaXRpb25zLmEgaW4gUHJvZHVjdCBEZXBl
bmRlbmNpZXMgKi8sCiAJCQkJRERBQjM3NzYyODIzNEIzOTAwODkwNTQ2IC8qIEF1dGhlbnRpY2F0
aW9uU2VydmljZXNDb3JlLmZyYW1ld29yayBpbiBQcm9kdWN0IERlcGVuZGVuY2llcyAqLywKKwkJ
CQlEREU5OTJGNjI3OEQwNzFGMDBGNjBEMjYgLyogbGliV2ViS2l0QWRkaXRpb25zLmEgaW4gUHJv
ZHVjdCBEZXBlbmRlbmNpZXMgKi8sCiAJCQkpOwogCQkJbmFtZSA9ICJQcm9kdWN0IERlcGVuZGVu
Y2llcyI7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKQEAgLTQy
NDgsMTQgKzQyNDUsOSBAQAogCQkzMkRCQ0Y1RTAzNzBBREVFMDBDOTE3ODMgLyogV2ViS2l0MlBy
ZWZpeC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXQyUHJlZml4Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMzMDkzNDQzMTMxNUI5MjIwMDk3QTdCQyAv
KiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBw
YXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1dlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkzMzA5MzQ0NDEz
MTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5oOyBwYXRoID0g
RGVyaXZlZFNvdXJjZXMvV2ViS2l0L1dlYkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwotCQkzMzA5MzQ0NTEzMTVCOTIyMDA5N0E3QkMg
LyogV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQvV2ViQ29va2llTWFuYWdlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsg
fTsKLQkJMzMwOTM0NDYxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eU1l
c3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkNvb2tpZU1hbmFn
ZXJQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQvV2ViQ29va2ll
TWFuYWdlclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsg
fTsKIAkJMzMwOTM0NEMxMzE1Qjk0RDAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29va2llTWFuYWdlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMzMDkzNDREMTMxNUI5NEQwMDk3QTdCQyAv
KiBXZWJDb29raWVNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YkNvb2tpZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzMwOTM0NEUx
MzE1Qjk0RDAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMzMwOTM0NTIxMzE1Qjk3NTAwOTdBN0JDIC8qIFdlYkNvb2tpZU1h
bmFnZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJD
b29raWVNYW5hZ2VyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMzA5
MzQ1MzEzMTVCOTc1MDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvb2tpZU1hbmFnZXJQcm94eS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkzMzA5MzQ1NDEzMTVCOTc1MDA5N0E3QkMgLyogV2ViQ29v
a2llTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkNv
b2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMzMwOTM0NTgxMzE1Qjk5ODAwOTdBN0JDIC8qIFdLQ29va2llTWFuYWdlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0Nvb2tpZU1hbmFnZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMzA5MzQ1OTEzMTVCOTk4MDA5N0E3QkMgLyogV0tD
b29raWVNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29va2ll
TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMzM2NzYzODEzMEM5OURD
MDA2QzlERTIgLyogV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExNjY4LDkgKzExNjYwLDYgQEAKIAkJCQk1MUE4NENFMjEy
N0YzODZCMDBDQTZFQTQgLyogV2ViQ29udGV4dE1lbnVQcm94eS5jcHAgKi8sCiAJCQkJNTFBQ0JC
ODExMjdBOEJBRDAwRDIwM0I5IC8qIFdlYkNvbnRleHRNZW51UHJveHkuaCAqLywKIAkJCQlCQ0Y0
REUyNDE2OEZBNDQ4MDBDOTRBRkMgLyogV2ViQ29udGV4dFN1cHBsZW1lbnQuaCAqLywKLQkJCQkz
MzA5MzQ1MjEzMTVCOTc1MDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5LmNwcCAqLywK
LQkJCQkzMzA5MzQ1MzEzMTVCOTc1MDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5Lmgg
Ki8sCi0JCQkJMzMwOTM0NTQxMzE1Qjk3NTAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbiAqLywKIAkJCQlFNTRBMTRDRTIwRkNGQjdCMDA3RTEzRDggLyogV2ViRGF0
YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmNwcCAqLywKIAkJCQlFNTY4QjkxRTIwQTNBQjJGMDBF
M0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmggKi8sCiAJCQkJRTU1Q0Qx
RkQyNEQwODgwQjAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lUGlja2VyLmNwcCAqLywKQEAgLTEyOTE4
LDggKzEyOTA3LDYgQEAKIAkJCQkxQTFGRUMxQjE2MjdCNDU3MDA3MDBGNkQgLyogV2ViQ29ubmVj
dGlvbk1lc3NhZ2VzLmggKi8sCiAJCQkJMzMwOTM0NDMxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNv
b2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTMzMDkzNDQ0MTMxNUI5MjIw
MDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZXMuaCAqLywKLQkJCQkzMzA5MzQ0NTEz
MTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCAqLywKLQkJCQkzMzA5MzQ0NjEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclBy
b3h5TWVzc2FnZXMuaCAqLywKIAkJCQlFMzg2NkIwNjIzOTk5NzlDMDBGODhGRTkgLyogV2ViRGV2
aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJ
RTM4NjZCMDcyMzk5OTc5RDAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJv
dmlkZXJNZXNzYWdlcy5oICovLAogCQkJCUUzODY2QjA0MjM5OTk3OUMwMEY4OEZFOSAvKiBXZWJE
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICov
LApAQCAtMTQ0MzksNiArMTQ0MjYsNyBAQAogCQkJCTQ0MkU3QkVCMjdCNDU4NjkwMEM2OUFDMSAv
KiBSZXZlYWxJdGVtLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTA0ODJDRTFEREQzMjRGMDBGMDA2
RDAgLyogUlRDTmV0d29yay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDZGMzhFOEMyNDE2RTY3MzAw
NTkzNzVBIC8qIFJ1bm5pbmdCb2FyZFNlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKKwkJCQlE
RERGRTgyNzI4NDY5OUVDMDA2RjFFRTUgLyogU2FmYXJpU2VydmljZXNTUEkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBFOTdENzREMjAwRTkwMDQwMEJGNjY0MyAvKiBTYWZlQnJvd3NpbmdTUEkuaCBp
biBIZWFkZXJzICovLAogCQkJCTVDQTk4NTRBMjEwQkVCNjQwMDU3RUI2QiAvKiBTYWZlQnJvd3Np
bmdXYXJuaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzJEMDIxNzEyQUM0MUNCMDBFNzMyQTMg
LyogU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUuaCBpbiBIZWFkZXJzICovLApAQCAtMTQ2MTks
OCArMTQ2MDcsNiBAQAogCQkJCTVDN0ZCNDcwMjFFOTdEQzUwMDlFMzI0MSAvKiBXZWJDb29raWVK
YXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTMzMDkzNDUwMTMxNUI5NEQwMDk3QTdCQyAvKiBXZWJD
b29raWVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMzA5MzQ0ODEzMTVCOTIyMDA5N0E3
QkMgLyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKLQkJCQkzMzA5
MzQ1NjEzMTVCOTc1MDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5LmggaW4gSGVhZGVy
cyAqLywKLQkJCQkzMzA5MzQ0QTEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclBy
b3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMUREN0IyMTE0REMzOTYwMDVBREFG
MyAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUREQTBBMjk2
MjdFNTVFNEQwMDVFMDg2RSAvKiBXZWJDb3JlU3RhdGlzdGljcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRERBMEE0MTAyN0U2NkZCNjAwNUUwODZFIC8qIFdlYkNvcmVUaHJlYWQuaCBpbiBIZWFkZXJz
ICovLApAQCAtMTUwOTMsNyArMTUwNzksNiBAQAogCQkJCTA3QTVFQkJDMUM3QkE0M0UwMEI5Q0E2
OSAvKiBXS0ZyYW1lSGFuZGxlUmVmLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTRENjY0QzE4QTMw
MzBFMDBEODJFMjEgLyogV0tGcmFtZUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTJERjlFRUU4
MUE3ODI0NTUwMEI2Q0ZCRSAvKiBXS0ZyYW1lSW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLywK
LQkJCQlERERGRTgyNzI4NDY5OUVDMDA2RjFFRTUgLyogU2FmYXJpU2VydmljZXNTUEkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBNkZBMjFFMUJEMDQzNUIwMEFBQTY1MCAvKiBXS0ZyYW1lSW5mb1By
aXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEM0E2NUU3MUE3QzNBQTcwMENBQzYzNyAvKiBX
S0ZyYW1lSW5mb1JlZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCOUY2QTUxMTIzREQwRDAwQTEz
N0UwIC8qIFdLRnJhbWVQb2xpY3lMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNzAxMiw3
ICsxNjk5Nyw2IEBACiAJCQkJMUMwQTE5NTMxQzhGRkRGQjAwRkUwRUJCIC8qIFdlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEx
RkVDMUMxNjI3QjQ1NzAwNzAwRjZEIC8qIFdlYkNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzMwOTM0NDcxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tp
ZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMzMwOTM0NDkx
MzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzk2MjhERTIzOTYwQ0M2MDA2NThFQ0QgLyogV2ViRGV2
aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzg2
NkIwQjIzOTlBMkREMDBGODhGRTkgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzg2NkFFNTIzOTc0MDA0
MDBGODhGRTkgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5Lm1tIGlu
IFNvdXJjZXMgKi8sCi0tIAoyLjMyLjAgKEFwcGxlIEdpdC0xMzIpCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>