<?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>208690</bug_id>
          
          <creation_ts>2020-03-05 20:05:47 -0800</creation_ts>
          <short_desc>[Cocoa] Re-enable CFPrefs direct mode</short_desc>
          <delta_ts>2020-03-11 17:18:33 -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 Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=208784</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Per Arne Vollan">pvollan</reporter>
          <assigned_to name="Per Arne Vollan">pvollan</assigned_to>
          <cc>benjamin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1626474</commentid>
    <comment_count>0</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-05 20:05:47 -0800</bug_when>
    <thetext>Re-enable CFPrefs direct mode, and address performance and Accessibility issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626477</commentid>
    <comment_count>1</comment_count>
      <attachid>392664</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-05 20:22:38 -0800</bug_when>
    <thetext>Created attachment 392664
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626490</commentid>
    <comment_count>2</comment_count>
      <attachid>392670</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-05 21:12:01 -0800</bug_when>
    <thetext>Created attachment 392670
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626652</commentid>
    <comment_count>3</comment_count>
      <attachid>392720</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-06 07:43:35 -0800</bug_when>
    <thetext>Created attachment 392720
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626737</commentid>
    <comment_count>4</comment_count>
      <attachid>392742</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-06 10:39:10 -0800</bug_when>
    <thetext>Created attachment 392742
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626765</commentid>
    <comment_count>5</comment_count>
      <attachid>392748</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-06 11:29:41 -0800</bug_when>
    <thetext>Created attachment 392748
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626784</commentid>
    <comment_count>6</comment_count>
      <attachid>392751</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-06 12:10:34 -0800</bug_when>
    <thetext>Created attachment 392751
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626854</commentid>
    <comment_count>7</comment_count>
      <attachid>392769</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-06 13:49:15 -0800</bug_when>
    <thetext>Created attachment 392769
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626986</commentid>
    <comment_count>8</comment_count>
      <attachid>392813</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-06 16:56:48 -0800</bug_when>
    <thetext>Created attachment 392813
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627009</commentid>
    <comment_count>9</comment_count>
      <attachid>392813</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-03-06 17:25:15 -0800</bug_when>
    <thetext>Comment on attachment 392813
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:342
&gt; +- (void)_grantAccessToPreferenceService WK_API_AVAILABLE(ios(WK_IOS_TBA));

I think this should be macOS(WK_MAC_TBA), too, shouldn&apos;t it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627040</commentid>
    <comment_count>10</comment_count>
      <attachid>392821</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-06 17:53:18 -0800</bug_when>
    <thetext>Created attachment 392821
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627044</commentid>
    <comment_count>11</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-06 17:54:06 -0800</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #9)
&gt; Comment on attachment 392813 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=392813&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:342
&gt; &gt; +- (void)_grantAccessToPreferenceService WK_API_AVAILABLE(ios(WK_IOS_TBA));
&gt; 
&gt; I think this should be macOS(WK_MAC_TBA), too, shouldn&apos;t it?

Fixed.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627173</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-06 22:57:28 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 392821:

editing/spelling/spellcheck-async-remove-frame.html bug 160571 (authors: morrita@google.com, rniwa@webkit.org, and tony@chromium.org)
http/tests/security/contentSecurityPolicy/report-status-code-zero-when-using-https.html bug 197297 (author: dbates@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627174</commentid>
    <comment_count>13</comment_count>
      <attachid>392821</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-06 22:58:14 -0800</bug_when>
    <thetext>Comment on attachment 392821
Patch

Clearing flags on attachment: 392821

Committed r258064: &lt;https://trac.webkit.org/changeset/258064&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627205</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-07 07:25:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/60188065&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628939</commentid>
    <comment_count>15</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-11 17:15:43 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628940</commentid>
    <comment_count>16</comment_count>
      <attachid>393312</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-03-11 17:15:44 -0700</bug_when>
    <thetext>Created attachment 393312
Patch</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392664</attachid>
            <date>2020-03-05 20:22:38 -0800</date>
            <delta_ts>2020-03-05 21:12:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208690-20200305202237.patch</filename>
            <type>text/plain</type>
            <size>22615</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAzLTA1ICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFJlLWVuYWJsZSBDRlByZWZzIGRp
cmVjdCBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDg2OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZS5oOgorCiAyMDIwLTAzLTA0ICBQZXIgQXJuZSBWb2xsYW4g
IDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIEFkZCBlbmFibGUgZmxhZyB0
byBkaXNhYmxlIGRpcmVjdCBtb2RlIGZvciBwcmVmZXJlbmNlcwpJbmRleDogU291cmNlL1dURi93
dGYvUGxhdGZvcm1FbmFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUVuYWJsZS5oCShyZXZpc2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVu
YWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04NzIsNCArODcyLDQgQEAKICNlcnJvciAiRU5BQkxF
KFdFQkdMMikgcmVxdWlyZXMgRU5BQkxFKFdFQkdMKSIKICNlbmRpZgogCi0jZGVmaW5lIEVOQUJM
RV9DRlBSRUZTX0RJUkVDVF9NT0RFIDAKKyNkZWZpbmUgRU5BQkxFX0NGUFJFRlNfRElSRUNUX01P
REUgMQpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1Nzk2NSkKKysrIFNvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDcgQEAKKzIwMjAtMDMtMDUgIFBlciBB
cm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUmUtZW5h
YmxlIENGUHJlZnMgZGlyZWN0IG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwODY5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxl
LldlYktpdC5XZWJDb250ZW50LnNiOgorICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0
aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW06CisgICAgICAgIChXZWJLaXQ6
OlhQQ1NlcnZpY2VFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpYUENTZXJ2aWNlTWFp
bik6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5tbToKKyAgICAgICAg
KHJlZ2lzdGVyRGVmYXVsdHNPdmVycmlkZSk6CisgICAgICAgICgtW1dLVXNlckRlZmF1bHRzIF9u
b3RpZnlPYnNlcnZlcnNPZkNoYW5nZUZyb21WYWx1ZXNGb3JLZXlzOnRvVmFsdWVzRm9yS2V5czpd
KToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlT2JzZXJ2ZXIgaW5pdF0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OnBsYXRmb3JtUmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4dGVuc2lvbnMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpyZWdpc3Rlck5vdGlmaWNh
dGlvbk9ic2VydmVycyk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94
eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnVuYmxvY2tBY2Nl
c3NpYmlsaXR5U2VydmVySWZOZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHk6OnVuYmxvY2tQcmVmZXJlbmNlU2VydmljZUlmTmVlZGVkKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hp
bmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5Ojp1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjp1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcik6IERlbGV0ZWQuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxp
emVXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0
aWFsaXplUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVuYmxvY2tQcmVm
ZXJlbmNlU2VydmljZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVuYmxvY2tBY2Nl
c3NpYmlsaXR5U2VydmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9j
ZXNzLnNiLmluOgorCiAyMDIwLTAzLTA1ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KIAogICAgICAgICBQcmUtZmV0Y2ggZmlyc3QgcGFnZSBpbiBuZXcgUERGIGxvYWRpbmcgbW9k
ZWwuCkluZGV4OiBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2Nv
bS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVu
dC5zYgkocmV2aXNpb24gMjU3ODc5KQorKysgU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJv
eFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IJKHdvcmtpbmcgY29w
eSkKQEAgLTUzNiw3ICs1MzYsNiBAQAogKGFsbG93IG1hY2gtbG9va3VwCiAgICAgKGdsb2JhbC1u
YW1lICJjb20uYXBwbGUubG9nZCIpCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUubG9nZC5l
dmVudHMiKQotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIpCiAp
CiAKIChkZW55IG1hY2gtbG9va3VwICh3aXRoIHRlbGVtZXRyeSkKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCShy
ZXZpc2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg1LDcgKzE4NSw3IEBAIHZvaWQg
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2QKICNpZiBQTEFURk9STShDT0NPQSkK
ICAgICAvLyBGSVhNRSgyMDc3MTYpOiBUaGUgZm9sbG93aW5nIHNob3VsZCBiZSByZW1vdmVkIHdo
ZW4gdGhlIEdQVSBwcm9jZXNzIGlzIGNvbXBsZXRlLgogICAgIGVuY29kZXIgPDwgbWVkaWFFeHRl
bnNpb25IYW5kbGVzOwotI2lmICFFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKKyNpZiBFTkFC
TEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKICAgICBlbmNvZGVyIDw8IHByZWZlcmVuY2VzRXh0ZW5z
aW9uSGFuZGxlOwogI2VuZGlmCiAjZW5kaWYKQEAgLTUwNCw3ICs1MDQsNyBAQCBib29sIFdlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kCiAgICAgcGFyYW1ldGVycy5tZWRpYUV4dGVu
c2lvbkhhbmRsZXMgPSBXVEZNb3ZlKCptZWRpYUV4dGVuc2lvbkhhbmRsZXMpOwogICAgIC8vIEZJ
WE1FKDIwNzcxNik6IEVuZCByZWdpb24gdG8gcmVtb3ZlLgogCi0jaWYgIUVOQUJMRShDRlBSRUZT
X0RJUkVDVF9NT0RFKQorI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQogICAgIE9wdGlv
bmFsPE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4+IHByZWZlcmVuY2VzRXh0ZW5z
aW9uSGFuZGxlOwogICAgIGRlY29kZXIgPj4gcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGU7CiAg
ICAgaWYgKCFwcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9u
IDI1Nzg3NSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjI2LDcgKzIyNiw3IEBAIHN0cnVjdCBXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZUFycmF5IG1lZGlhRXh0ZW5zaW9uSGFuZGxlczsgLy8gRklYTUUo
MjA3NzE2KTogUmVtb3ZlIHdoZW4gR1BVIHByb2Nlc3MgaXMgY29tcGxldGUuCi0jaWYgIUVOQUJM
RShDRlBSRUZTX0RJUkVDVF9NT0RFKQorI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQog
ICAgIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gcHJlZmVyZW5jZXNFeHRlbnNp
b25IYW5kbGU7CiAjZW5kaWYKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvRW50
cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2Ev
WFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQkocmV2aXNpb24gMjU3ODc1KQorKysgU291cmNl
L1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1Nl
cnZpY2VNYWluLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMTcsMTEgKzExNyw2IEBAIGludCBYUENT
ZXJ2aWNlTWFpbihpbnQsIGNvbnN0IGNoYXIqKikKICAgICB9KTsKICNlbmRpZgogCi0jaWYgRU5B
QkxFKENGUFJFRlNfRElSRUNUX01PREUpCi0gICAgLy8gRW5hYmxlIENGIHByZWZzIGRpcmVjdCBt
b2RlIHRvIGF2b2lkIGNvbm5lY3RpbmcgdG8gdGhlIENGIHByZWZzIGRhZW1vbi4KLSAgICBfQ0ZQ
cmVmc1NldERpcmVjdE1vZGVFbmFibGVkKFlFUyk7Ci0jZW5kaWYKLQogICAgIGlmIChib290c3Ry
YXApIHsKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIGlmIChjb25zdCBjaGFyKiB3ZWJLaXRC
dW5kbGVWZXJzaW9uID0geHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyhib290c3RyYXAuZ2V0KCks
ICJXZWJLaXRCdW5kbGVWZXJzaW9uIikpIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaAkocmV2aXNpb24gMjU3ODc0KQorKysgU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkod29ya2luZyBjb3B5KQpAQCAtNzA0LDcgKzcwNCw3IEBA
IHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFBlckFjdGl2aXR5U3RhdGVDUFVVc2FnZVNh
bXBsZXI+IG1fcGVyQWN0aXZpdHlTdGF0ZUNQVVVzYWdlU2FtcGxlcjsKICNlbmRpZgogCi0jaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8
TlNPYmplY3Q+IG1fYWNjZXNzaWJpbGl0eUVuYWJsZWRPYnNlcnZlcjsKICNlbmRpZgogCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAJKHJldmlzaW9u
IDI1Nzg3NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTkyMyw3ICs5MjMsOSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6
ZGlkRmluaXNoTGF1bmNoaW5nCiAgICAgICAgIGlmICh4cGNfY29ubmVjdGlvbl90IHhwY0Nvbm5l
Y3Rpb24gPSBjb25uZWN0aW9uKCktPnhwY0Nvbm5lY3Rpb24oKSkKICAgICAgICAgICAgIG1fdGhy
b3R0bGVyLmRpZENvbm5lY3RUb1Byb2Nlc3MoeHBjX2Nvbm5lY3Rpb25fZ2V0X3BpZCh4cGNDb25u
ZWN0aW9uKSk7CiAgICAgfQorI2VuZGlmCiAKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICB1bmJs
b2NrQWNjZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKCk7CiAjZW5kaWYKIApJbmRleDogU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgJKHJldmlzaW9uIDI1Nzg3NCkKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMzMsOCArMzMzLDkgQEAgcHVibGljOgogICAgIHZvaWQgZW5hYmxlUmVtb3RlSW5zcGVj
dG9ySWZOZWVkZWQoKTsKICNlbmRpZgogICAgIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisj
aWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCB1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcklm
TmVlZGVkKCk7CisgICAgdm9pZCB1bmJsb2NrUHJlZmVyZW5jZVNlcnZpY2VJZk5lZWRlZCgpOwog
I2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtNTI4LDEwICs1MjksMTQgQEAg
cHJpdmF0ZToKICAgICBGb3JlZ3JvdW5kV2ViUHJvY2Vzc1Rva2VuIG1fZm9yZWdyb3VuZFRva2Vu
OwogICAgIEJhY2tncm91bmRXZWJQcm9jZXNzVG9rZW4gbV9iYWNrZ3JvdW5kVG9rZW47CiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBib29sIG1faGFzU2VudE1lc3NhZ2VUb1VuYmxvY2tB
Y2Nlc3NpYmlsaXR5U2VydmVyIHsgZmFsc2UgfTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6RGVmZXJyYWJsZU9uZVNob3RUaW1lcj4gbV91bmV4cGVjdGVkQWN0aXZpdHlUaW1lcjsKICNl
bmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgYm9vbCBtX2hhc1NlbnRNZXNzYWdlVG9V
bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlciB7IGZhbHNlIH07CisgICAgYm9vbCBtX2hhc1NlbnRN
ZXNzYWdlVG9VbmJsb2NrUHJlZmVyZW5jZVNlcnZpY2UgeyBmYWxzZSB9OworI2VuZGlmCisKICAg
ICBIYXNoTWFwPFN0cmluZywgdWludDY0X3Q+IG1fcGFnZVVSTFJldGFpbkNvdW50TWFwOwogCiAg
ICAgT3B0aW9uYWw8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+IG1fcmVnaXN0cmFibGVEb21h
aW47CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2
ZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUHJlZmVy
ZW5jZU9ic2VydmVyLm1tCShyZXZpc2lvbiAyNTc4NzQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTI4LDEw
ICsyOCwyNSBAQAogCiAjaW1wb3J0ICJXZWJQcm9jZXNzUG9vbC5oIgogCisjaW1wb3J0IDx3dGYv
T2JqQ1J1bnRpbWVFeHRyYXMuaD4KKworc3RhdGljIElNUCByZWdpc3RlckRlZmF1bHRzT3JpZ2lu
YWwgPSBuaWw7CitzdGF0aWMgYm9vbCByZWdpc3RlcmluZ0RlZmF1bHRzID0gZmFsc2U7CisKK3N0
YXRpYyB2b2lkIHJlZ2lzdGVyRGVmYXVsdHNPdmVycmlkZShpZCBzZWxmLCBTRUwgc2VsZWN0b3Is
IE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKmRpY3Rpb25hcnkpCit7CisgICAgcmVnaXN0
ZXJpbmdEZWZhdWx0cyA9IHRydWU7CisgICAgd3RmQ2FsbElNUDx2b2lkPihyZWdpc3RlckRlZmF1
bHRzT3JpZ2luYWwsIHNlbGYsIHNlbGVjdG9yLCBkaWN0aW9uYXJ5KTsKKyAgICByZWdpc3Rlcmlu
Z0RlZmF1bHRzID0gZmFsc2U7Cit9CisKIEBpbXBsZW1lbnRhdGlvbiBXS1VzZXJEZWZhdWx0cwog
CiAtICh2b2lkKV9ub3RpZnlPYnNlcnZlcnNPZkNoYW5nZUZyb21WYWx1ZXNGb3JLZXlzOihOU0Rp
Y3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopb2xkVmFsdWVzIHRvVmFsdWVzRm9yS2V5czooTlNE
aWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKW5ld1ZhbHVlcwogeworICAgIGlmIChyZWdpc3Rl
cmluZ0RlZmF1bHRzKQorICAgICAgICByZXR1cm47CisKICAgICBbc3VwZXIgX25vdGlmeU9ic2Vy
dmVyc09mQ2hhbmdlRnJvbVZhbHVlc0ZvcktleXM6b2xkVmFsdWVzIHRvVmFsdWVzRm9yS2V5czpu
ZXdWYWx1ZXNdOwogCiAgICAgaWYgKFtvbGRWYWx1ZXMgaXNFcXVhbFRvRGljdGlvbmFyeTpuZXdW
YWx1ZXNdKQpAQCAtODcsNiArMTAyLDkgQEAgKyAoaWQpc2hhcmVkSW5zdGFuY2UKIAogLSAoaW5z
dGFuY2V0eXBlKWluaXQKIHsKKyAgICBNZXRob2QgcmVnaXN0ZXJEZWZhdWx0c01ldGhvZCA9IGNs
YXNzX2dldEluc3RhbmNlTWV0aG9kKG9iamNfZ2V0Q2xhc3MoIk5TVXNlckRlZmF1bHRzIiksIEBz
ZWxlY3RvcihyZWdpc3RlckRlZmF1bHRzOikpOworICAgIHJlZ2lzdGVyRGVmYXVsdHNPcmlnaW5h
bCA9IG1ldGhvZF9zZXRJbXBsZW1lbnRhdGlvbihyZWdpc3RlckRlZmF1bHRzTWV0aG9kLCAoSU1Q
KXJlZ2lzdGVyRGVmYXVsdHNPdmVycmlkZSk7CisKICAgICBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8
TlNTdHJpbmcqPiBkb21haW5zID0gewogICAgICAgICBAImNvbS5hcHBsZS5BY2Nlc3NpYmlsaXR5
IiwKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCShyZXZpc2lvbiAyNTc4
NzUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29h
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC05MCw2ICs5MCw4IEBAIFNPRlRfTElOS19QUklWQVRFX0ZS
QU1FV09SSyhXZWJDb250ZW50QW4KIFNPRlRfTElOS19DTEFTUyhXZWJDb250ZW50QW5hbHlzaXMs
IFdlYkZpbHRlckV2YWx1YXRvcik7CiAjZW5kaWYKIAorZXh0ZXJuICJDIiBCb29sZWFuIF9BWFNB
cHBsaWNhdGlvbkFjY2Vzc2liaWxpdHlFbmFibGVkKCk7CisKICNpZiBQTEFURk9STShDT0NPQSkK
ICNpbXBvcnQgPFdlYkNvcmUvU3lzdGVtQmF0dGVyeS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2Nv
YS9ORUZpbHRlclNvdXJjZVNQSS5oPgpAQCAtMTczLDYgKzE3NSwxMyBAQCB2b2lkIFdlYlByb2Nl
c3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemUoCiAgICAgICAgIGluc3RhbGxNZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIoKTsKIAogICAgIHNldExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudCht
YWtlVW5pcXVlPExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudD4oKSk7CisKKyNpZiBF
TkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9n
ZXRfZ2xvYmFsX3F1ZXVlKFFPU19DTEFTU19CQUNLR1JPVU5ELCAwKSwgXnsKKyAgICAgICAgLy8g
U3RhcnQgb2JzZXJ2aW5nIHByZWZlcmVuY2UgY2hhbmdlcy4KKyAgICAgICAgW1dLUHJlZmVyZW5j
ZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXTsKKyAgICB9KTsKKyNlbmRpZgogfQogCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTE5NywxMSArMjA2LDYgQEAgdm9pZCBXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1SZXNvbHZlUGF0aAogICAgIG1fcmVzb2x2ZWRQYXRocy5jb250YWluZXJDYWNo
ZXNEaXJlY3RvcnkgPSByZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJv
eEV4dGVuc2lvbihXZWJQcm9jZXNzUG9vbDo6d2ViQ29udGVudENhY2hlc0RpcmVjdG9yeSgpKTsK
ICAgICBtX3Jlc29sdmVkUGF0aHMuY29udGFpbmVyVGVtcG9yYXJ5RGlyZWN0b3J5ID0gcmVzb2x2
ZUFuZENyZWF0ZVJlYWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24oV2ViUHJvY2Vz
c1Bvb2w6OmNvbnRhaW5lclRlbXBvcmFyeURpcmVjdG9yeSgpKTsKICNlbmRpZgotCi0jaWYgRU5B
QkxFKENGUFJFRlNfRElSRUNUX01PREUpCi0gICAgLy8gU3RhcnQgb2JzZXJ2aW5nIHByZWZlcmVu
Y2UgY2hhbmdlcy4KLSAgICBbV0tQcmVmZXJlbmNlT2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdOwot
I2VuZGlmCiB9CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC00NDIsMTAgKzQ0NiwxMyBAQCB2b2lk
IFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXCiAgICAgICAgIGZvciAoc2l6ZV90
IGkgPSAwLCBzaXplID0gc2VydmljZXMuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKQogICAgICAgICAg
ICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cChzZXJ2aWNlc1tp
XSwgV1RGOjpudWxsb3B0LCBwYXJhbWV0ZXJzLm1lZGlhRXh0ZW5zaW9uSGFuZGxlc1tpXSk7CiAg
ICAgfQotI2lmICFFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKLSAgICBTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGUgcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGU7Ci0gICAgU2FuZGJveEV4dGVu
c2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1v
biIsIFdURjo6bnVsbG9wdCwgcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGUpOwotICAgIHBhcmFt
ZXRlcnMucHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKHByZWZlcmVuY2VzRXh0
ZW5zaW9uSGFuZGxlKTsKKworI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQorICAgIGlm
IChfQVhTQXBwbGljYXRpb25BY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSBwcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZTsKKyAgICAgICAg
U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmNm
cHJlZnNkLmRhZW1vbiIsIFdURjo6bnVsbG9wdCwgcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGUp
OworICAgICAgICBwYXJhbWV0ZXJzLnByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92
ZShwcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZSk7CisgICAgfQogI2VuZGlmCiB9CiAKQEAgLTY0
NywxNSArNjU0LDE3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlZ2lzdGVyTm90aWZpY2F0aW8K
ICNlbGlmICFQTEFURk9STShNQUNDQVRBTFlTVCkKICAgICBDRk5vdGlmaWNhdGlvbkNlbnRlckFk
ZE9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2luTm90aWZ5Q2VudGVyKCksIHRo
aXMsIGJhY2tsaWdodExldmVsRGlkQ2hhbmdlQ2FsbGJhY2ssIHN0YXRpY19jYXN0PENGU3RyaW5n
UmVmPihVSUJhY2tsaWdodExldmVsQ2hhbmdlZE5vdGlmaWNhdGlvbiksIG51bGxwdHIsIENGTm90
aWZpY2F0aW9uU3VzcGVuc2lvbkJlaGF2aW9yQ29hbGVzY2UpOwogI2lmIFBMQVRGT1JNKElPUykK
LSAgICBtX2FjY2Vzc2liaWxpdHlFbmFibGVkT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9uQ2Vu
dGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTooX19icmlkZ2UgaWQpa0FYU0Fw
cGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVuYWJsZWROb3RpZmljYXRpb24gb2JqZWN0Om5pbCBxdWV1
ZTpbTlNPcGVyYXRpb25RdWV1ZSBjdXJyZW50UXVldWVdIHVzaW5nQmxvY2s6XihOU05vdGlmaWNh
dGlvbiAqKSB7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9wcm9jZXNzZXMuc2l6
ZSgpOyArK2kpCi0gICAgICAgICAgICBtX3Byb2Nlc3Nlc1tpXS0+dW5ibG9ja0FjY2Vzc2liaWxp
dHlTZXJ2ZXJJZk5lZWRlZCgpOwotICAgIH1dOwogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9S
KQogICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50
ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwgdGhpcywgcmVtb3RlV2ViSW5zcGVjdG9yRW5hYmxl
ZENhbGxiYWNrLCBzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZTVFIoV0lSU2VydmljZUVuYWJs
ZWROb3RpZmljYXRpb24pKSwgbnVsbHB0ciwgQ0ZOb3RpZmljYXRpb25TdXNwZW5zaW9uQmVoYXZp
b3JDb2FsZXNjZSk7CiAjZW5kaWYKICNlbmRpZiAvLyBQTEFURk9STShJT1MpCiAjZW5kaWYgLy8g
IVBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgbV9hY2Nlc3NpYmlsaXR5RW5hYmxlZE9ic2VydmVy
ID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5h
bWU6KF9fYnJpZGdlIGlkKWtBWFNBcHBsaWNhdGlvbkFjY2Vzc2liaWxpdHlFbmFibGVkTm90aWZp
Y2F0aW9uIG9iamVjdDpuaWwgcXVldWU6W05TT3BlcmF0aW9uUXVldWUgY3VycmVudFF1ZXVlXSB1
c2luZ0Jsb2NrOl4oTlNOb3RpZmljYXRpb24gKikgeworICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IG1fcHJvY2Vzc2VzLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBtX3Byb2Nlc3Nl
c1tpXS0+dW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlSWZOZWVkZWQoKTsKKyAgICAgICAgICAgIG1f
cHJvY2Vzc2VzW2ldLT51bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKCk7CisgICAg
ICAgIH0KKyAgICB9XTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rlck5vdGlm
aWNhdGlvbk9ic2VydmVycygpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJQcm9jZXNzUHJveHlDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQkocmV2aXNpb24gMjU3ODc0KQorKysg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0JKHdv
cmtpbmcgY29weSkKQEAgLTIyNSw0ICsyMjUsNDUgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmVu
YWJsZVJlbW90ZUluc3BlYwogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpFbmFi
bGVSZW1vdGVXZWJJbnNwZWN0b3IoaGFuZGxlKSwgMCk7CiB9CiAjZW5kaWYKKwordm9pZCBXZWJQ
cm9jZXNzUHJveHk6OnVuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVySWZOZWVkZWQoKQoreworICAg
IGlmIChtX2hhc1NlbnRNZXNzYWdlVG9VbmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcikKKyAgICAg
ICAgcmV0dXJuOworICAgIGlmICghX0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVuYWJsZWQo
KSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICghcHJvY2Vzc0lkZW50aWZpZXIoKSkKKyAgICAg
ICAgcmV0dXJuOworICAgIGlmICghY2FuU2VuZE1lc3NhZ2UoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZTsKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorICAgIGlmICghU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExv
b2t1cCgiY29tLmFwcGxlLmlwaG9uZS5heHNlcnZlci1zeXN0ZW13aWRlIiwgY29ubmVjdGlvbigp
ID8gY29ubmVjdGlvbigpLT5nZXRBdWRpdFRva2VuKCkgOiBXVEY6Om51bGxvcHQsIGhhbmRsZSkp
CisgICAgICAgIHJldHVybjsKKyNlbmRpZgorCisgICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vz
czo6VW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIoaGFuZGxlKSwgMCk7CisgICAgbV9oYXNTZW50
TWVzc2FnZVRvVW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIgPSB0cnVlOworfQorCit2b2lkIFdl
YlByb2Nlc3NQcm94eTo6dW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlSWZOZWVkZWQoKQoreworICAg
IGlmIChtX2hhc1NlbnRNZXNzYWdlVG9VbmJsb2NrUHJlZmVyZW5jZVNlcnZpY2UpCisgICAgICAg
IHJldHVybjsKKyAgICBpZiAoIV9BWFNBcHBsaWNhdGlvbkFjY2Vzc2liaWxpdHlFbmFibGVkKCkp
CisgICAgICAgIHJldHVybjsKKyAgICBpZiAoIXByb2Nlc3NJZGVudGlmaWVyKCkpCisgICAgICAg
IHJldHVybjsKKyAgICBpZiAoIWNhblNlbmRNZXNzYWdlKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGU7CisgICAgaWYgKCFTYW5kYm94RXh0
ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUuY2ZwcmVmc2QuZGFl
bW9uIiwgY29ubmVjdGlvbigpID8gY29ubmVjdGlvbigpLT5nZXRBdWRpdFRva2VuKCkgOiBXVEY6
Om51bGxvcHQsIGhhbmRsZSkpCisgICAgICAgIHJldHVybjsKKworICAgIHNlbmQoTWVzc2FnZXM6
OldlYlByb2Nlc3M6OlVuYmxvY2tQcmVmZXJlbmNlU2VydmljZShoYW5kbGUpLCAwKTsKKyAgICBt
X2hhc1NlbnRNZXNzYWdlVG9VbmJsb2NrUHJlZmVyZW5jZVNlcnZpY2UgPSB0cnVlOworfQorCiB9
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJv
eHlJT1MubW0JKHJldmlzaW9uIDI1Nzg3NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XZWJQcm9jZXNzUHJveHlJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTQzLDI1ICs0Myw2IEBA
IGJvb2wgV2ViUHJvY2Vzc1Byb3h5OjpmdWxsS2V5Ym9hcmRBY2Nlc3MKICNlbmRpZgogfQogCi12
b2lkIFdlYlByb2Nlc3NQcm94eTo6dW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXJJZk5lZWRlZCgp
Ci17Ci0gICAgaWYgKG1faGFzU2VudE1lc3NhZ2VUb1VuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVy
KQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFfQVhTQXBwbGljYXRpb25BY2Nlc3NpYmlsaXR5
RW5hYmxlZCgpKQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFwcm9jZXNzSWRlbnRpZmllcigp
KQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFjYW5TZW5kTWVzc2FnZSgpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlOwotICAgIGlmICgh
U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmlw
aG9uZS5heHNlcnZlci1zeXN0ZW13aWRlIiwgY29ubmVjdGlvbigpID8gY29ubmVjdGlvbigpLT5n
ZXRBdWRpdFRva2VuKCkgOiBXVEY6Om51bGxvcHQsIGhhbmRsZSkpCi0gICAgICAgIHJldHVybjsK
LQotICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlVuYmxvY2tBY2Nlc3NpYmlsaXR5U2Vy
dmVyKGhhbmRsZSksIDApOwotICAgIG1faGFzU2VudE1lc3NhZ2VUb1VuYmxvY2tBY2Nlc3NpYmls
aXR5U2VydmVyID0gdHJ1ZTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAv
LyBQTEFURk9STShJT1NfRkFNSUxZKQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcAkocmV2aXNpb24gMjU3ODc0KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTc0LDE0ICsxOTc0LDYgQEAgdm9p
ZCBXZWJQcm9jZXNzOjpjbGVhckN1cnJlbnRNb2RpZmllclN0YQogICAgIFBsYXRmb3JtS2V5Ym9h
cmRFdmVudDo6c2V0Q3VycmVudE1vZGlmaWVyU3RhdGUoeyB9KTsKIH0KIAotI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCi12b2lkIFdlYlByb2Nlc3M6OnVuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVy
KGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYgaGFuZGxlKQotewotICAgIGJvb2wgb2sg
PSBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkoaGFuZGxlKTsKLSAgICBBU1NF
UlRfVU5VU0VEKG9rLCBvayk7Ci19Ci0jZW5kaWYKLQogYm9vbCBXZWJQcm9jZXNzOjphcmVBbGxQ
YWdlc1Rocm90dGxlYWJsZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFdURjo6YWxsT2YobV9wYWdl
TWFwLnZhbHVlcygpLCBbXShhdXRvJiBwYWdlKSB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgJKHJldmlzaW9uIDI1Nzg3NCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5OSw4ICsyOTksNiBAQCBwdWJs
aWM6CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHZvaWQgYWNjZXNzaWJpbGl0eVBy
b2Nlc3NTdXNwZW5kZWROb3RpZmljYXRpb24oYm9vbCk7Ci0gICAgCi0gICAgdm9pZCB1bmJsb2Nr
QWNjZXNzaWJpbGl0eVNlcnZlcihjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKICNl
bmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNU
KQpAQCAtMzEzLDYgKzMxMSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGVuYWJsZVJlbW90ZVdlYklu
c3BlY3Rvcihjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKICNlbmRpZgogICAgIHZv
aWQgbm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBT
dHJpbmcmIGtleSwgY29uc3QgT3B0aW9uYWw8U3RyaW5nPiYgZW5jb2RlZFZhbHVlKTsKKyAgICB2
b2lkIHVuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVyKGNvbnN0IFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZSYpOworICAgIHZvaWQgdW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlKGNvbnN0IFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSYpOwogI2VuZGlmCiAKICAgICBib29sIGFyZUFsbFBhZ2VzVGhyb3R0
bGVhYmxlKCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjU3ODc0KQorKysgU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTE1NCwx
MCArMTU0LDYgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciBObwogICAg
IFNldEJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSh1bnNpZ25lZCBjYXBhY2l0eSk7CiAgICAgQ2xl
YXJDYWNoZWRQYWdlKHN0cnVjdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyIGJh
Y2tGb3J3YXJkSXRlbUlEKSAtPiAoKSBBc3luYwogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
LSAgICBVbmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcihXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246
OkhhbmRsZSBoYW5kbGUpCi0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0o
V1BFKQogICAgIFNlbmRNZXNzYWdlVG9XZWJFeHRlbnNpb24oc3RydWN0IFdlYktpdDo6VXNlck1l
c3NhZ2UgdXNlck1lc3NhZ2UpCiAjZW5kaWYKQEAgLTE3NCw1ICsxNzAsNyBAQCBtZXNzYWdlcyAt
PiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIE5vCiAKICNpZiBQTEFURk9STShDT0NPQSkKICAg
ICBOb3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoU3RyaW5nIGRvbWFpbiwgU3RyaW5nIGtleSwgT3B0
aW9uYWw8U3RyaW5nPiBlbmNvZGVkVmFsdWUpCisgICAgVW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2
ZXIoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlKQorICAgIFVuYmxvY2tQ
cmVmZXJlbmNlU2VydmljZShXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGUp
CiAjZW5kaWYKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2Vi
UHJvY2Vzcy5zYi5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29t
LmFwcGxlLldlYlByb2Nlc3Muc2IuaW4JKHJldmlzaW9uIDI1Nzg3OSkKKysrIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgkod29ya2luZyBjb3B5KQpA
QCAtNjQzLDcgKzY0Myw5IEBACiAgICAgKHdpdGggcmVwb3J0KSAod2l0aCB0ZWxlbWV0cnkpCiAj
ZW5kaWYKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5Qb3dlck1hbmFnZW1lbnQuY29udHJv
bCIpCisjaWYgIUVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQogICAgIChnbG9iYWwtbmFtZSAi
Y29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIpCisjZW5kaWYKICAgICAoZ2xvYmFsLW5hbWUgImNv
bS5hcHBsZS5jb3Jlc2VydmljZXMubGF1bmNoc2VydmljZXNkIikKICAgICAoZ2xvYmFsLW5hbWUg
ImNvbS5hcHBsZS5sc2QubWFwZGIiKQogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLnRjY2Qi
KQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tCShyZXZpc2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yODgsMTEgKzI4OCwx
NiBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByCiAgICAgLy8gRklY
TUUoMjA3NzE2KTogVGhlIGZvbGxvd2luZyBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIHRoZSBHUFUg
cHJvY2VzcyBpcyBjb21wbGV0ZS4KICAgICBmb3IgKHNpemVfdCBpID0gMCwgc2l6ZSA9IHBhcmFt
ZXRlcnMubWVkaWFFeHRlbnNpb25IYW5kbGVzLnNpemUoKTsgaSA8IHNpemU7ICsraSkKICAgICAg
ICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMubWVkaWFF
eHRlbnNpb25IYW5kbGVzW2ldKTsKKyNlbmRpZgogCi0jaWYgIUVOQUJMRShDRlBSRUZTX0RJUkVD
VF9NT0RFKQotICAgIGlmIChwYXJhbWV0ZXJzLnByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlKQor
I2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQorICAgIGlmIChwYXJhbWV0ZXJzLnByZWZl
cmVuY2VzRXh0ZW5zaW9uSGFuZGxlKSB7CiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1
bWVQZXJtYW5lbnRseSgqcGFyYW1ldGVycy5wcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZSk7Ci0j
ZW5kaWYKKyAgICAgICAgX0NGUHJlZnNTZXREaXJlY3RNb2RlRW5hYmxlZChmYWxzZSk7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgLy8gRW5hYmxlIENGIHByZWZzIGRpcmVjdCBtb2RlIHRvIGF2b2lk
IGNvbm5lY3RpbmcgdG8gdGhlIENGIHByZWZzIGRhZW1vbi4KKyAgICAgICAgX0NGUHJlZnNTZXRE
aXJlY3RNb2RlRW5hYmxlZCh0cnVlKTsKKyAgICB9CiAjZW5kaWYKIH0KIApAQCAtNTcyLDggKzU3
Nyw2IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplUHJvY2UKICAgICBlbHNl
CiAgICAgICAgIG1fcHJvY2Vzc1R5cGUgPSBQcm9jZXNzVHlwZTo6V2ViQ29udGVudDsKIAotICAg
IHJlZ2lzdGVyV2l0aEFjY2Vzc2liaWxpdHkoKTsKLQogI2lmIFVTRShPU19TVEFURSkKICAgICBy
ZWdpc3RlcldpdGhTdGF0ZUR1bXBlcigpOwogI2VuZGlmCkBAIC05NDUsNiArOTQ4LDcgQEAgdm9p
ZCBXZWJQcm9jZXNzOjpzZXRNZWRpYU1JTUVUeXBlcyhjb25zdAogICAgICAgICBjYWNoZS5hZGRT
dXBwb3J0ZWRUeXBlcyh0eXBlcyk7CiB9CiAKKyNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9E
RSkKIHZvaWQgV2ViUHJvY2Vzczo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKGNvbnN0IFN0cmlu
ZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgT3B0aW9uYWw8U3RyaW5nPiYgZW5j
b2RlZFZhbHVlKQogewogICAgIGF1dG8gZGVmYXVsdHMgPSBhZG9wdE5TKFtbTlNVc2VyRGVmYXVs
dHMgYWxsb2NdIGluaXRXaXRoU3VpdGVOYW1lOmRvbWFpbl0pOwpAQCAtOTYzLDYgKzk2NywxNCBA
QCB2b2lkIFdlYlByb2Nlc3M6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlCiAgICAgW2RlZmF1bHRz
IHNldE9iamVjdDpvYmplY3QuZ2V0KCkgZm9yS2V5OmtleV07CiB9CiAKK3ZvaWQgV2ViUHJvY2Vz
czo6dW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlKGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSYgaGFuZGxlKQoreworICAgIGJvb2wgb2sgPSBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVy
bWFuZW50bHkoaGFuZGxlKTsKKyAgICBBU1NFUlRfVU5VU0VEKG9rLCBvayk7CisgICAgX0NGUHJl
ZnNTZXREaXJlY3RNb2RlRW5hYmxlZChmYWxzZSk7Cit9CisjZW5kaWYKKwogI2lmIFBMQVRGT1JN
KElPUykKIHZvaWQgV2ViUHJvY2Vzczo6Z3JhbnRBY2Nlc3NUb0Fzc2V0U2VydmljZXMoV2ViS2l0
OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiBtb2JpbGVBc3NldEhhbmRsZSwgIFdlYktpdDo6
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgbW9iaWxlQXNzZXRWMkhhbmRsZSkKIHsKQEAgLTEw
MDgsNiArMTAyMCwxNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnVwZGF0ZVBhZ2VTY3JlZW5Qcm9wZXJ0
CiB9CiAjZW5kaWYKIAordm9pZCBXZWJQcm9jZXNzOjp1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZl
cihjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIGhhbmRsZSkKK3sKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQorICAgIGJvb2wgb2sgPSBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVy
bWFuZW50bHkoaGFuZGxlKTsKKyAgICBBU1NFUlRfVU5VU0VEKG9rLCBvayk7CisjZW5kaWYKKyAg
ICAKKyAgICByZWdpc3RlcldpdGhBY2Nlc3NpYmlsaXR5KCk7Cit9CisKKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKICN1bmRlZiBSRUxFQVNFX0xPR19TRVNTSU9OX0lECg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392670</attachid>
            <date>2020-03-05 21:12:01 -0800</date>
            <delta_ts>2020-03-06 07:43:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208690-20200305211201.patch</filename>
            <type>text/plain</type>
            <size>24746</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAzLTA1ICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFJlLWVuYWJsZSBDRlByZWZzIGRp
cmVjdCBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDg2OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZS5oOgorCiAyMDIwLTAzLTA0ICBQZXIgQXJuZSBWb2xsYW4g
IDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIEFkZCBlbmFibGUgZmxhZyB0
byBkaXNhYmxlIGRpcmVjdCBtb2RlIGZvciBwcmVmZXJlbmNlcwpJbmRleDogU291cmNlL1dURi93
dGYvUGxhdGZvcm1FbmFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUVuYWJsZS5oCShyZXZpc2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVu
YWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04NzIsNCArODcyLDQgQEAKICNlcnJvciAiRU5BQkxF
KFdFQkdMMikgcmVxdWlyZXMgRU5BQkxFKFdFQkdMKSIKICNlbmRpZgogCi0jZGVmaW5lIEVOQUJM
RV9DRlBSRUZTX0RJUkVDVF9NT0RFIDAKKyNkZWZpbmUgRU5BQkxFX0NGUFJFRlNfRElSRUNUX01P
REUgMQpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1Nzk2NSkKKysrIFNvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDcgQEAKKzIwMjAtMDMtMDUgIFBlciBB
cm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUmUtZW5h
YmxlIENGUHJlZnMgZGlyZWN0IG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwODY5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxl
LldlYktpdC5XZWJDb250ZW50LnNiOgorICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0
aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW06CisgICAgICAgIChXZWJLaXQ6
OlhQQ1NlcnZpY2VFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpYUENTZXJ2aWNlTWFp
bik6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5tbToKKyAgICAgICAg
KHJlZ2lzdGVyRGVmYXVsdHNPdmVycmlkZSk6CisgICAgICAgICgtW1dLVXNlckRlZmF1bHRzIF9u
b3RpZnlPYnNlcnZlcnNPZkNoYW5nZUZyb21WYWx1ZXNGb3JLZXlzOnRvVmFsdWVzRm9yS2V5czpd
KToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlT2JzZXJ2ZXIgaW5pdF0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OnBsYXRmb3JtUmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4dGVuc2lvbnMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpyZWdpc3Rlck5vdGlmaWNh
dGlvbk9ic2VydmVycyk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94
eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnVuYmxvY2tBY2Nl
c3NpYmlsaXR5U2VydmVySWZOZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHk6OnVuYmxvY2tQcmVmZXJlbmNlU2VydmljZUlmTmVlZGVkKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hp
bmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5Ojp1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjp1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcik6IERlbGV0ZWQuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxp
emVXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0
aWFsaXplUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVuYmxvY2tQcmVm
ZXJlbmNlU2VydmljZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVuYmxvY2tBY2Nl
c3NpYmlsaXR5U2VydmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9j
ZXNzLnNiLmluOgorCiAyMDIwLTAzLTA1ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KIAogICAgICAgICBQcmUtZmV0Y2ggZmlyc3QgcGFnZSBpbiBuZXcgUERGIGxvYWRpbmcgbW9k
ZWwuCkluZGV4OiBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2Nv
bS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVu
dC5zYgkocmV2aXNpb24gMjU3ODc5KQorKysgU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJv
eFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IJKHdvcmtpbmcgY29w
eSkKQEAgLTUzNiw3ICs1MzYsNiBAQAogKGFsbG93IG1hY2gtbG9va3VwCiAgICAgKGdsb2JhbC1u
YW1lICJjb20uYXBwbGUubG9nZCIpCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUubG9nZC5l
dmVudHMiKQotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIpCiAp
CiAKIChkZW55IG1hY2gtbG9va3VwICh3aXRoIHRlbGVtZXRyeSkKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCShy
ZXZpc2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg1LDcgKzE4NSw3IEBAIHZvaWQg
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2QKICNpZiBQTEFURk9STShDT0NPQSkK
ICAgICAvLyBGSVhNRSgyMDc3MTYpOiBUaGUgZm9sbG93aW5nIHNob3VsZCBiZSByZW1vdmVkIHdo
ZW4gdGhlIEdQVSBwcm9jZXNzIGlzIGNvbXBsZXRlLgogICAgIGVuY29kZXIgPDwgbWVkaWFFeHRl
bnNpb25IYW5kbGVzOwotI2lmICFFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKKyNpZiBFTkFC
TEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKICAgICBlbmNvZGVyIDw8IHByZWZlcmVuY2VzRXh0ZW5z
aW9uSGFuZGxlOwogI2VuZGlmCiAjZW5kaWYKQEAgLTUwNCw3ICs1MDQsNyBAQCBib29sIFdlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kCiAgICAgcGFyYW1ldGVycy5tZWRpYUV4dGVu
c2lvbkhhbmRsZXMgPSBXVEZNb3ZlKCptZWRpYUV4dGVuc2lvbkhhbmRsZXMpOwogICAgIC8vIEZJ
WE1FKDIwNzcxNik6IEVuZCByZWdpb24gdG8gcmVtb3ZlLgogCi0jaWYgIUVOQUJMRShDRlBSRUZT
X0RJUkVDVF9NT0RFKQorI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQogICAgIE9wdGlv
bmFsPE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4+IHByZWZlcmVuY2VzRXh0ZW5z
aW9uSGFuZGxlOwogICAgIGRlY29kZXIgPj4gcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGU7CiAg
ICAgaWYgKCFwcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9u
IDI1Nzg3NSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjI2LDcgKzIyNiw3IEBAIHN0cnVjdCBXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZUFycmF5IG1lZGlhRXh0ZW5zaW9uSGFuZGxlczsgLy8gRklYTUUo
MjA3NzE2KTogUmVtb3ZlIHdoZW4gR1BVIHByb2Nlc3MgaXMgY29tcGxldGUuCi0jaWYgIUVOQUJM
RShDRlBSRUZTX0RJUkVDVF9NT0RFKQorI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQog
ICAgIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gcHJlZmVyZW5jZXNFeHRlbnNp
b25IYW5kbGU7CiAjZW5kaWYKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvRW50
cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2Ev
WFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQkocmV2aXNpb24gMjU3ODc1KQorKysgU291cmNl
L1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1Nl
cnZpY2VNYWluLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMTcsMTEgKzExNyw2IEBAIGludCBYUENT
ZXJ2aWNlTWFpbihpbnQsIGNvbnN0IGNoYXIqKikKICAgICB9KTsKICNlbmRpZgogCi0jaWYgRU5B
QkxFKENGUFJFRlNfRElSRUNUX01PREUpCi0gICAgLy8gRW5hYmxlIENGIHByZWZzIGRpcmVjdCBt
b2RlIHRvIGF2b2lkIGNvbm5lY3RpbmcgdG8gdGhlIENGIHByZWZzIGRhZW1vbi4KLSAgICBfQ0ZQ
cmVmc1NldERpcmVjdE1vZGVFbmFibGVkKFlFUyk7Ci0jZW5kaWYKLQogICAgIGlmIChib290c3Ry
YXApIHsKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIGlmIChjb25zdCBjaGFyKiB3ZWJLaXRC
dW5kbGVWZXJzaW9uID0geHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyhib290c3RyYXAuZ2V0KCks
ICJXZWJLaXRCdW5kbGVWZXJzaW9uIikpIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCShyZXZpc2lvbiAyNTc4NzQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMTcwNSw2ICsxNzA1LDEwIEBAIHB1
YmxpYzoKICAgICB2b2lkIHJldm9rZUFjY2Vzc1RvQXNzZXRTZXJ2aWNlcygpOwogI2VuZGlmCiAK
KyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIGdyYW50QWNjZXNzVG9QcmVmZXJlbmNlU2Vy
dmljZSgpOworI2VuZGlmCisKICAgICB2b2lkIHNldElzTmF2aWdhdGluZ1RvQXBwQm91bmREb21h
aW5UZXN0aW5nKGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKIHByaXZhdGU6
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgJKHJldmlzaW9u
IDI1Nzg3NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgJKHdv
cmtpbmcgY29weSkKQEAgLTcwNCw3ICs3MDQsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVl
X3B0cjxQZXJBY3Rpdml0eVN0YXRlQ1BVVXNhZ2VTYW1wbGVyPiBtX3BlckFjdGl2aXR5U3RhdGVD
UFVVc2FnZVNhbXBsZXI7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYg
UExBVEZPUk0oQ09DT0EpCiAgICAgUmV0YWluUHRyPE5TT2JqZWN0PiBtX2FjY2Vzc2liaWxpdHlF
bmFibGVkT2JzZXJ2ZXI7CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwCShyZXZpc2lvbiAyNTc4NzQpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MjMsNyAr
OTIzLDkgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZwogICAgICAg
ICBpZiAoeHBjX2Nvbm5lY3Rpb25fdCB4cGNDb25uZWN0aW9uID0gY29ubmVjdGlvbigpLT54cGND
b25uZWN0aW9uKCkpCiAgICAgICAgICAgICBtX3Rocm90dGxlci5kaWRDb25uZWN0VG9Qcm9jZXNz
KHhwY19jb25uZWN0aW9uX2dldF9waWQoeHBjQ29ubmVjdGlvbikpOwogICAgIH0KKyNlbmRpZgog
CisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXJJZk5l
ZWRlZCgpOwogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCShyZXZpc2lvbiAyNTc4NzQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMzMzLDggKzMzMyw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGVuYWJsZVJlbW90ZUluc3BlY3RvcklmTmVlZGVkKCk7CiAjZW5kaWYKICAg
ICAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZv
aWQgdW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXJJZk5lZWRlZCgpOworICAgIHZvaWQgdW5ibG9j
a1ByZWZlcmVuY2VTZXJ2aWNlSWZOZWVkZWQoKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKQEAgLTUyOCwxMCArNTI5LDE0IEBAIHByaXZhdGU6CiAgICAgRm9yZWdyb3VuZFdl
YlByb2Nlc3NUb2tlbiBtX2ZvcmVncm91bmRUb2tlbjsKICAgICBCYWNrZ3JvdW5kV2ViUHJvY2Vz
c1Rva2VuIG1fYmFja2dyb3VuZFRva2VuOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAg
Ym9vbCBtX2hhc1NlbnRNZXNzYWdlVG9VbmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlciB7IGZhbHNl
IH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkRlZmVycmFibGVPbmVTaG90VGltZXI+
IG1fdW5leHBlY3RlZEFjdGl2aXR5VGltZXI7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKENPQ09B
KQorICAgIGJvb2wgbV9oYXNTZW50TWVzc2FnZVRvVW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIg
eyBmYWxzZSB9OworICAgIGJvb2wgbV9oYXNTZW50TWVzc2FnZVRvVW5ibG9ja1ByZWZlcmVuY2VT
ZXJ2aWNlIHsgZmFsc2UgfTsKKyNlbmRpZgorCiAgICAgSGFzaE1hcDxTdHJpbmcsIHVpbnQ2NF90
PiBtX3BhZ2VVUkxSZXRhaW5Db3VudE1hcDsKIAogICAgIE9wdGlvbmFsPFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluPiBtX3JlZ2lzdHJhYmxlRG9tYWluOwpJbmRleDogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCShyZXZpc2lvbiAyNTc4NzQpCisr
KyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0yODk5LDYgKzI4OTksMTIgQEAgLSAoQ0dGbG9hdClfbWluaW11bUVmZmVjdGl2
ZURldmljZVdpZHRoCiAjZW5kaWYKIH0KIAorLSAodm9pZClfZ3JhbnRBY2Nlc3NUb1ByZWZlcmVu
Y2VTZXJ2aWNlCit7CisgICAgaWYgKF9wYWdlKQorICAgICAgICBfcGFnZS0+Z3JhbnRBY2Nlc3NU
b1ByZWZlcmVuY2VTZXJ2aWNlKCk7Cit9CisKICNwcmFnbWEgbWFyayAtIHNjcm9sbFBlcmZvcm1h
bmNlRGF0YQogCiAtICh2b2lkKV9zZXRTY3JvbGxQZXJmb3JtYW5jZURhdGFDb2xsZWN0aW9uRW5h
YmxlZDooQk9PTCllbmFibGVkCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgJKHJldmlzaW9uIDI1Nzg3NCkKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTMzOSw2ICszMzksOCBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4KIAogLSAodm9p
ZClfc2V0SXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbjooQk9PTClpc05hdmlnYXRpbmdUb0Fw
cEJvdW5kRG9tYWluIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9u
SGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOwogCistICh2b2lkKV9ncmFudEFjY2Vzc1RvUHJlZmVyZW5jZVNlcnZpY2UgV0tfQVBJX0FW
QUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworCiBAZW5kCiAKICNpZiBUQVJHRVRfT1NfSVBIT05F
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUHJlZmVyZW5j
ZU9ic2VydmVyLm1tCShyZXZpc2lvbiAyNTc4NzQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTI4LDEwICsy
OCwyNSBAQAogCiAjaW1wb3J0ICJXZWJQcm9jZXNzUG9vbC5oIgogCisjaW1wb3J0IDx3dGYvT2Jq
Q1J1bnRpbWVFeHRyYXMuaD4KKworc3RhdGljIElNUCByZWdpc3RlckRlZmF1bHRzT3JpZ2luYWwg
PSBuaWw7CitzdGF0aWMgYm9vbCByZWdpc3RlcmluZ0RlZmF1bHRzID0gZmFsc2U7CisKK3N0YXRp
YyB2b2lkIHJlZ2lzdGVyRGVmYXVsdHNPdmVycmlkZShpZCBzZWxmLCBTRUwgc2VsZWN0b3IsIE5T
RGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKmRpY3Rpb25hcnkpCit7CisgICAgcmVnaXN0ZXJp
bmdEZWZhdWx0cyA9IHRydWU7CisgICAgd3RmQ2FsbElNUDx2b2lkPihyZWdpc3RlckRlZmF1bHRz
T3JpZ2luYWwsIHNlbGYsIHNlbGVjdG9yLCBkaWN0aW9uYXJ5KTsKKyAgICByZWdpc3RlcmluZ0Rl
ZmF1bHRzID0gZmFsc2U7Cit9CisKIEBpbXBsZW1lbnRhdGlvbiBXS1VzZXJEZWZhdWx0cwogCiAt
ICh2b2lkKV9ub3RpZnlPYnNlcnZlcnNPZkNoYW5nZUZyb21WYWx1ZXNGb3JLZXlzOihOU0RpY3Rp
b25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopb2xkVmFsdWVzIHRvVmFsdWVzRm9yS2V5czooTlNEaWN0
aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKW5ld1ZhbHVlcwogeworICAgIGlmIChyZWdpc3Rlcmlu
Z0RlZmF1bHRzKQorICAgICAgICByZXR1cm47CisKICAgICBbc3VwZXIgX25vdGlmeU9ic2VydmVy
c09mQ2hhbmdlRnJvbVZhbHVlc0ZvcktleXM6b2xkVmFsdWVzIHRvVmFsdWVzRm9yS2V5czpuZXdW
YWx1ZXNdOwogCiAgICAgaWYgKFtvbGRWYWx1ZXMgaXNFcXVhbFRvRGljdGlvbmFyeTpuZXdWYWx1
ZXNdKQpAQCAtODcsNiArMTAyLDkgQEAgKyAoaWQpc2hhcmVkSW5zdGFuY2UKIAogLSAoaW5zdGFu
Y2V0eXBlKWluaXQKIHsKKyAgICBNZXRob2QgcmVnaXN0ZXJEZWZhdWx0c01ldGhvZCA9IGNsYXNz
X2dldEluc3RhbmNlTWV0aG9kKG9iamNfZ2V0Q2xhc3MoIk5TVXNlckRlZmF1bHRzIiksIEBzZWxl
Y3RvcihyZWdpc3RlckRlZmF1bHRzOikpOworICAgIHJlZ2lzdGVyRGVmYXVsdHNPcmlnaW5hbCA9
IG1ldGhvZF9zZXRJbXBsZW1lbnRhdGlvbihyZWdpc3RlckRlZmF1bHRzTWV0aG9kLCAoSU1QKXJl
Z2lzdGVyRGVmYXVsdHNPdmVycmlkZSk7CisKICAgICBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8TlNT
dHJpbmcqPiBkb21haW5zID0gewogICAgICAgICBAImNvbS5hcHBsZS5BY2Nlc3NpYmlsaXR5IiwK
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0JKHJldmlzaW9uIDI1Nzg3NCkKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMTQsNCArMzE0LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0
ZUNvbnRleHRJbkdQVQogfQogI2VuZGlmCiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpncmFudEFjY2Vz
c1RvUHJlZmVyZW5jZVNlcnZpY2UoKQoreworICAgIHByb2Nlc3MoKS51bmJsb2NrUHJlZmVyZW5j
ZVNlcnZpY2VJZk5lZWRlZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2Nv
YS5tbQkocmV2aXNpb24gMjU3ODc1KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtOTAsNiArOTAsOSBAQCBT
T0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUksoV2ViQ29udGVudEFuCiBTT0ZUX0xJTktfQ0xBU1Mo
V2ViQ29udGVudEFuYWx5c2lzLCBXZWJGaWx0ZXJFdmFsdWF0b3IpOwogI2VuZGlmCiAKK2V4dGVy
biAiQyIgQm9vbGVhbiBfQVhTQXBwbGljYXRpb25BY2Nlc3NpYmlsaXR5RW5hYmxlZCgpOworZXh0
ZXJuIENGU3RyaW5nUmVmIGtBWFNBcHBsaWNhdGlvbkFjY2Vzc2liaWxpdHlFbmFibGVkTm90aWZp
Y2F0aW9uOworCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW1wb3J0IDxXZWJDb3JlL1N5c3RlbUJh
dHRlcnkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTkVGaWx0ZXJTb3VyY2VTUEkuaD4KQEAg
LTE3Myw2ICsxNzYsMTMgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXpl
KAogICAgICAgICBpbnN0YWxsTWVtb3J5UHJlc3N1cmVIYW5kbGVyKCk7CiAKICAgICBzZXRMZWdh
Y3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQobWFrZVVuaXF1ZTxMZWdhY3lDdXN0b21Qcm90
b2NvbE1hbmFnZXJDbGllbnQ+KCkpOworCisjaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUp
CisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X2dsb2JhbF9xdWV1ZShRT1NfQ0xBU1Nf
QkFDS0dST1VORCwgMCksIF57CisgICAgICAgIC8vIFN0YXJ0IG9ic2VydmluZyBwcmVmZXJlbmNl
IGNoYW5nZXMuCisgICAgICAgIFtXS1ByZWZlcmVuY2VPYnNlcnZlciBzaGFyZWRJbnN0YW5jZV07
CisgICAgfSk7CisjZW5kaWYKIH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0xOTcs
MTEgKzIwNyw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtUmVzb2x2ZVBhdGgKICAg
ICBtX3Jlc29sdmVkUGF0aHMuY29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5ID0gcmVzb2x2ZUFuZENy
ZWF0ZVJlYWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24oV2ViUHJvY2Vzc1Bvb2w6
OndlYkNvbnRlbnRDYWNoZXNEaXJlY3RvcnkoKSk7CiAgICAgbV9yZXNvbHZlZFBhdGhzLmNvbnRh
aW5lclRlbXBvcmFyeURpcmVjdG9yeSA9IHJlc29sdmVBbmRDcmVhdGVSZWFkV3JpdGVEaXJlY3Rv
cnlGb3JTYW5kYm94RXh0ZW5zaW9uKFdlYlByb2Nlc3NQb29sOjpjb250YWluZXJUZW1wb3JhcnlE
aXJlY3RvcnkoKSk7CiAjZW5kaWYKLQotI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQot
ICAgIC8vIFN0YXJ0IG9ic2VydmluZyBwcmVmZXJlbmNlIGNoYW5nZXMuCi0gICAgW1dLUHJlZmVy
ZW5jZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXTsKLSNlbmRpZgogfQogCiAjaWYgUExBVEZPUk0o
SU9TKQpAQCAtNDQyLDEwICs0NDcsMTMgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1J
bml0aWFsaXplVwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMCwgc2l6ZSA9IHNlcnZpY2VzLnNp
emUoKTsgaSA8IHNpemU7ICsraSkKICAgICAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0
ZUhhbmRsZUZvck1hY2hMb29rdXAoc2VydmljZXNbaV0sIFdURjo6bnVsbG9wdCwgcGFyYW1ldGVy
cy5tZWRpYUV4dGVuc2lvbkhhbmRsZXNbaV0pOwogICAgIH0KLSNpZiAhRU5BQkxFKENGUFJFRlNf
RElSRUNUX01PREUpCi0gICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHByZWZlcmVuY2VzRXh0
ZW5zaW9uSGFuZGxlOwotICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hM
b29rdXAoImNvbS5hcHBsZS5jZnByZWZzZC5kYWVtb24iLCBXVEY6Om51bGxvcHQsIHByZWZlcmVu
Y2VzRXh0ZW5zaW9uSGFuZGxlKTsKLSAgICBwYXJhbWV0ZXJzLnByZWZlcmVuY2VzRXh0ZW5zaW9u
SGFuZGxlID0gV1RGTW92ZShwcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZSk7CisKKyNpZiBFTkFC
TEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKKyAgICBpZiAoX0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkgeworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgcHJlZmVy
ZW5jZXNFeHRlbnNpb25IYW5kbGU7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhh
bmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5jZnByZWZzZC5kYWVtb24iLCBXVEY6Om51bGxv
cHQsIHByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlKTsKKyAgICAgICAgcGFyYW1ldGVycy5wcmVm
ZXJlbmNlc0V4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUocHJlZmVyZW5jZXNFeHRlbnNpb25IYW5k
bGUpOworICAgIH0KICNlbmRpZgogfQogCkBAIC02NDcsMTUgKzY1NSwxNyBAQCB2b2lkIFdlYlBy
b2Nlc3NQb29sOjpyZWdpc3Rlck5vdGlmaWNhdGlvCiAjZWxpZiAhUExBVEZPUk0oTUFDQ0FUQUxZ
U1QpCiAgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJBZGRPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNl
bnRlckdldERhcndpbk5vdGlmeUNlbnRlcigpLCB0aGlzLCBiYWNrbGlnaHRMZXZlbERpZENoYW5n
ZUNhbGxiYWNrLCBzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oVUlCYWNrbGlnaHRMZXZlbENoYW5n
ZWROb3RpZmljYXRpb24pLCBudWxscHRyLCBDRk5vdGlmaWNhdGlvblN1c3BlbnNpb25CZWhhdmlv
ckNvYWxlc2NlKTsKICNpZiBQTEFURk9STShJT1MpCi0gICAgbV9hY2Nlc3NpYmlsaXR5RW5hYmxl
ZE9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNl
cnZlckZvck5hbWU6KF9fYnJpZGdlIGlkKWtBWFNBcHBsaWNhdGlvbkFjY2Vzc2liaWxpdHlFbmFi
bGVkTm90aWZpY2F0aW9uIG9iamVjdDpuaWwgcXVldWU6W05TT3BlcmF0aW9uUXVldWUgY3VycmVu
dFF1ZXVlXSB1c2luZ0Jsb2NrOl4oTlNOb3RpZmljYXRpb24gKikgewotICAgICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IG1fcHJvY2Vzc2VzLnNpemUoKTsgKytpKQotICAgICAgICAgICAgbV9w
cm9jZXNzZXNbaV0tPnVuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVySWZOZWVkZWQoKTsKLSAgICB9
XTsKICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKICAgICBDRk5vdGlmaWNhdGlvbkNlbnRl
ckFkZE9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2luTm90aWZ5Q2VudGVyKCks
IHRoaXMsIHJlbW90ZVdlYkluc3BlY3RvckVuYWJsZWRDYWxsYmFjaywgc3RhdGljX2Nhc3Q8Q0ZT
dHJpbmdSZWY+KENGU1RSKFdJUlNlcnZpY2VFbmFibGVkTm90aWZpY2F0aW9uKSksIG51bGxwdHIs
IENGTm90aWZpY2F0aW9uU3VzcGVuc2lvbkJlaGF2aW9yQ29hbGVzY2UpOwogI2VuZGlmCiAjZW5k
aWYgLy8gUExBVEZPUk0oSU9TKQogI2VuZGlmIC8vICFQTEFURk9STShJT1NfRkFNSUxZKQorICAg
IG1fYWNjZXNzaWJpbGl0eUVuYWJsZWRPYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIg
ZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOihfX2JyaWRnZSBpZClrQVhTQXBwbGlj
YXRpb25BY2Nlc3NpYmlsaXR5RW5hYmxlZE5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsIHF1ZXVlOltO
U09wZXJhdGlvblF1ZXVlIGN1cnJlbnRRdWV1ZV0gdXNpbmdCbG9jazpeKE5TTm90aWZpY2F0aW9u
ICopIHsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3Byb2Nlc3Nlcy5zaXplKCk7
ICsraSkgeworICAgICAgICAgICAgbV9wcm9jZXNzZXNbaV0tPnVuYmxvY2tQcmVmZXJlbmNlU2Vy
dmljZUlmTmVlZGVkKCk7CisgICAgICAgICAgICBtX3Byb2Nlc3Nlc1tpXS0+dW5ibG9ja0FjY2Vz
c2liaWxpdHlTZXJ2ZXJJZk5lZWRlZCgpOworICAgICAgICB9CisgICAgfV07CiB9CiAKIHZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnVucmVnaXN0ZXJOb3RpZmljYXRpb25PYnNlcnZlcnMoKQpJbmRleDog
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5
Q29jb2EubW0JKHJldmlzaW9uIDI1Nzg3NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMjUsNCArMjI1
LDQzIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjplbmFibGVSZW1vdGVJbnNwZWMKICAgICAgICAg
c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6RW5hYmxlUmVtb3RlV2ViSW5zcGVjdG9yKGhhbmRs
ZSksIDApOwogfQogI2VuZGlmCisKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojp1bmJsb2NrQWNjZXNz
aWJpbGl0eVNlcnZlcklmTmVlZGVkKCkKK3sKKyAgICBpZiAobV9oYXNTZW50TWVzc2FnZVRvVW5i
bG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoIV9BWFNB
cHBsaWNhdGlvbkFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBp
ZiAoIXByb2Nlc3NJZGVudGlmaWVyKCkpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoIWNhblNl
bmRNZXNzYWdlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZSBoYW5kbGU7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAoIVNhbmRib3hF
eHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5pcGhvbmUuYXhz
ZXJ2ZXItc3lzdGVtd2lkZSIsIGNvbm5lY3Rpb24oKSA/IGNvbm5lY3Rpb24oKS0+Z2V0QXVkaXRU
b2tlbigpIDogV1RGOjpudWxsb3B0LCBoYW5kbGUpKQorICAgICAgICByZXR1cm47CisjZW5kaWYK
KworICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlVuYmxvY2tBY2Nlc3NpYmlsaXR5U2Vy
dmVyKGhhbmRsZSksIDApOworICAgIG1faGFzU2VudE1lc3NhZ2VUb1VuYmxvY2tBY2Nlc3NpYmls
aXR5U2VydmVyID0gdHJ1ZTsKK30KKwordm9pZCBXZWJQcm9jZXNzUHJveHk6OnVuYmxvY2tQcmVm
ZXJlbmNlU2VydmljZUlmTmVlZGVkKCkKK3sKKyAgICBpZiAobV9oYXNTZW50TWVzc2FnZVRvVW5i
bG9ja1ByZWZlcmVuY2VTZXJ2aWNlKQorICAgICAgICByZXR1cm47CisgICAgaWYgKCFwcm9jZXNz
SWRlbnRpZmllcigpKQorICAgICAgICByZXR1cm47CisgICAgaWYgKCFjYW5TZW5kTWVzc2FnZSgp
KQorICAgICAgICByZXR1cm47CisKKyAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxl
OworICAgIGlmICghU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgi
Y29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIsIGNvbm5lY3Rpb24oKSA/IGNvbm5lY3Rpb24oKS0+
Z2V0QXVkaXRUb2tlbigpIDogV1RGOjpudWxsb3B0LCBoYW5kbGUpKQorICAgICAgICByZXR1cm47
CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpVbmJsb2NrUHJlZmVyZW5jZVNlcnZp
Y2UoaGFuZGxlKSwgMCk7CisgICAgbV9oYXNTZW50TWVzc2FnZVRvVW5ibG9ja1ByZWZlcmVuY2VT
ZXJ2aWNlID0gdHJ1ZTsKK30KKwogfQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dlYlByb2Nlc3NQcm94eUlPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1tCShyZXZpc2lvbiAyNTc4NzQpCisrKyBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC00MywyNSArNDMsNiBAQCBib29sIFdlYlByb2Nlc3NQcm94eTo6ZnVsbEtleWJvYXJk
QWNjZXNzCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OnVuYmxvY2tBY2Nlc3Np
YmlsaXR5U2VydmVySWZOZWVkZWQoKQotewotICAgIGlmIChtX2hhc1NlbnRNZXNzYWdlVG9VbmJs
b2NrQWNjZXNzaWJpbGl0eVNlcnZlcikKLSAgICAgICAgcmV0dXJuOwotICAgIGlmICghX0FYU0Fw
cGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIGlm
ICghcHJvY2Vzc0lkZW50aWZpZXIoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIGlmICghY2FuU2Vu
ZE1lc3NhZ2UoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlIGhhbmRsZTsKLSAgICBpZiAoIVNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1h
Y2hMb29rdXAoImNvbS5hcHBsZS5pcGhvbmUuYXhzZXJ2ZXItc3lzdGVtd2lkZSIsIGNvbm5lY3Rp
b24oKSA/IGNvbm5lY3Rpb24oKS0+Z2V0QXVkaXRUb2tlbigpIDogV1RGOjpudWxsb3B0LCBoYW5k
bGUpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpV
bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcihoYW5kbGUpLCAwKTsKLSAgICBtX2hhc1NlbnRNZXNz
YWdlVG9VbmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlciA9IHRydWU7Ci19Ci0KIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDI1Nzg3NCkKKysrIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTk3NCwxNCArMTk3NCw2IEBAIHZvaWQgV2ViUHJvY2Vzczo6Y2xlYXJDdXJyZW50TW9kaWZpZXJT
dGEKICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNldEN1cnJlbnRNb2RpZmllclN0YXRlKHsg
fSk7CiB9CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotdm9pZCBXZWJQcm9jZXNzOjp1bmJs
b2NrQWNjZXNzaWJpbGl0eVNlcnZlcihjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIGhh
bmRsZSkKLXsKLSAgICBib29sIG9rID0gU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVu
dGx5KGhhbmRsZSk7Ci0gICAgQVNTRVJUX1VOVVNFRChvaywgb2spOwotfQotI2VuZGlmCi0KIGJv
b2wgV2ViUHJvY2Vzczo6YXJlQWxsUGFnZXNUaHJvdHRsZWFibGUoKSBjb25zdAogewogICAgIHJl
dHVybiBXVEY6OmFsbE9mKG1fcGFnZU1hcC52YWx1ZXMoKSwgW10oYXV0byYgcGFnZSkgewpJbmRl
eDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCShyZXZpc2lvbiAyNTc4NzQpCisr
KyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yOTksOCArMjk5LDYgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAg
ICB2b2lkIGFjY2Vzc2liaWxpdHlQcm9jZXNzU3VzcGVuZGVkTm90aWZpY2F0aW9uKGJvb2wpOwot
ICAgIAotICAgIHZvaWQgdW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIoY29uc3QgU2FuZGJveEV4
dGVuc2lvbjo6SGFuZGxlJik7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYm
ICFQTEFURk9STShNQUNDQVRBTFlTVCkKQEAgLTMxMyw2ICszMTEsOCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBlbmFibGVSZW1vdGVXZWJJbnNwZWN0b3IoY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlJik7CiAjZW5kaWYKICAgICB2b2lkIG5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChjb25zdCBT
dHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IE9wdGlvbmFsPFN0cmluZz4m
IGVuY29kZWRWYWx1ZSk7CisgICAgdm9pZCB1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcihjb25z
dCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKKyAgICB2b2lkIHVuYmxvY2tQcmVmZXJlbmNl
U2VydmljZShjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKICNlbmRpZgogCiAgICAg
Ym9vbCBhcmVBbGxQYWdlc1Rocm90dGxlYWJsZSgpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI1Nzg3
NCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCSh3
b3JraW5nIGNvcHkpCkBAIC0xNTQsMTAgKzE1NCw2IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3Mg
TGVnYWN5UmVjZWl2ZXIgTm8KICAgICBTZXRCYWNrRm9yd2FyZENhY2hlQ2FwYWNpdHkodW5zaWdu
ZWQgY2FwYWNpdHkpOwogICAgIENsZWFyQ2FjaGVkUGFnZShzdHJ1Y3QgV2ViQ29yZTo6QmFja0Zv
cndhcmRJdGVtSWRlbnRpZmllciBiYWNrRm9yd2FyZEl0ZW1JRCkgLT4gKCkgQXN5bmMKIAotI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgVW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIoV2Vi
S2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlKQotI2VuZGlmCi0KICNpZiBQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICBTZW5kTWVzc2FnZVRvV2ViRXh0ZW5zaW9u
KHN0cnVjdCBXZWJLaXQ6OlVzZXJNZXNzYWdlIHVzZXJNZXNzYWdlKQogI2VuZGlmCkBAIC0xNzQs
NSArMTcwLDcgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciBObwogCiAj
aWYgUExBVEZPUk0oQ09DT0EpCiAgICAgTm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKFN0cmluZyBk
b21haW4sIFN0cmluZyBrZXksIE9wdGlvbmFsPFN0cmluZz4gZW5jb2RlZFZhbHVlKQorICAgIFVu
YmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVyKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
IGhhbmRsZSkKKyAgICBVbmJsb2NrUHJlZmVyZW5jZVNlcnZpY2UoV2ViS2l0OjpTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGUgaGFuZGxlKQogI2VuZGlmCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCShyZXZpc2lvbiAy
NTc4NzkpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Mu
c2IuaW4JKHdvcmtpbmcgY29weSkKQEAgLTY0Myw3ICs2NDMsOSBAQAogICAgICh3aXRoIHJlcG9y
dCkgKHdpdGggdGVsZW1ldHJ5KQogI2VuZGlmCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUu
UG93ZXJNYW5hZ2VtZW50LmNvbnRyb2wiKQorI2lmICFFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9E
RSkKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5jZnByZWZzZC5kYWVtb24iKQorI2VuZGlm
CiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuY29yZXNlcnZpY2VzLmxhdW5jaHNlcnZpY2Vz
ZCIpCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUubHNkLm1hcGRiIikKICAgICAoZ2xvYmFs
LW5hbWUgImNvbS5hcHBsZS50Y2NkIikKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQkocmV2aXNpb24gMjU3ODc1KQorKysgU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQkod29ya2luZyBj
b3B5KQpAQCAtMjg4LDExICsyODgsMTYgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRp
YWxpemVXZWJQcgogICAgIC8vIEZJWE1FKDIwNzcxNik6IFRoZSBmb2xsb3dpbmcgc2hvdWxkIGJl
IHJlbW92ZWQgd2hlbiB0aGUgR1BVIHByb2Nlc3MgaXMgY29tcGxldGUuCiAgICAgZm9yIChzaXpl
X3QgaSA9IDAsIHNpemUgPSBwYXJhbWV0ZXJzLm1lZGlhRXh0ZW5zaW9uSGFuZGxlcy5zaXplKCk7
IGkgPCBzaXplOyArK2kpCiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5l
bnRseShwYXJhbWV0ZXJzLm1lZGlhRXh0ZW5zaW9uSGFuZGxlc1tpXSk7CisjZW5kaWYKIAotI2lm
ICFFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKLSAgICBpZiAocGFyYW1ldGVycy5wcmVmZXJl
bmNlc0V4dGVuc2lvbkhhbmRsZSkKKyNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKKyAg
ICBpZiAocGFyYW1ldGVycy5wcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZSkgewogICAgICAgICBT
YW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkoKnBhcmFtZXRlcnMucHJlZmVyZW5j
ZXNFeHRlbnNpb25IYW5kbGUpOwotI2VuZGlmCisgICAgICAgIF9DRlByZWZzU2V0RGlyZWN0TW9k
ZUVuYWJsZWQoZmFsc2UpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIEVuYWJsZSBDRiBwcmVm
cyBkaXJlY3QgbW9kZSB0byBhdm9pZCBjb25uZWN0aW5nIHRvIHRoZSBDRiBwcmVmcyBkYWVtb24u
CisgICAgICAgIF9DRlByZWZzU2V0RGlyZWN0TW9kZUVuYWJsZWQodHJ1ZSk7CisgICAgfQogI2Vu
ZGlmCiB9CiAKQEAgLTU3Miw4ICs1NzcsNiBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5p
dGlhbGl6ZVByb2NlCiAgICAgZWxzZQogICAgICAgICBtX3Byb2Nlc3NUeXBlID0gUHJvY2Vzc1R5
cGU6OldlYkNvbnRlbnQ7CiAKLSAgICByZWdpc3RlcldpdGhBY2Nlc3NpYmlsaXR5KCk7Ci0KICNp
ZiBVU0UoT1NfU1RBVEUpCiAgICAgcmVnaXN0ZXJXaXRoU3RhdGVEdW1wZXIoKTsKICNlbmRpZgpA
QCAtOTQ1LDYgKzk0OCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6c2V0TWVkaWFNSU1FVHlwZXMoY29u
c3QKICAgICAgICAgY2FjaGUuYWRkU3VwcG9ydGVkVHlwZXModHlwZXMpOwogfQogCisjaWYgRU5B
QkxFKENGUFJFRlNfRElSRUNUX01PREUpCiB2b2lkIFdlYlByb2Nlc3M6Om5vdGlmeVByZWZlcmVu
Y2VzQ2hhbmdlZChjb25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0
IE9wdGlvbmFsPFN0cmluZz4mIGVuY29kZWRWYWx1ZSkKIHsKICAgICBhdXRvIGRlZmF1bHRzID0g
YWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFsbG9jXSBpbml0V2l0aFN1aXRlTmFtZTpkb21haW5d
KTsKQEAgLTk2Myw2ICs5NjcsMTQgQEAgdm9pZCBXZWJQcm9jZXNzOjpub3RpZnlQcmVmZXJlbmNl
c0NoYW5nZQogICAgIFtkZWZhdWx0cyBzZXRPYmplY3Q6b2JqZWN0LmdldCgpIGZvcktleTprZXld
OwogfQogCit2b2lkIFdlYlByb2Nlc3M6OnVuYmxvY2tQcmVmZXJlbmNlU2VydmljZShjb25zdCBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIGhhbmRsZSkKK3sKKyAgICBib29sIG9rID0gU2FuZGJv
eEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KGhhbmRsZSk7CisgICAgQVNTRVJUX1VOVVNF
RChvaywgb2spOworICAgIF9DRlByZWZzU2V0RGlyZWN0TW9kZUVuYWJsZWQoZmFsc2UpOworfQor
I2VuZGlmCisKICNpZiBQTEFURk9STShJT1MpCiB2b2lkIFdlYlByb2Nlc3M6OmdyYW50QWNjZXNz
VG9Bc3NldFNlcnZpY2VzKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgbW9iaWxl
QXNzZXRIYW5kbGUsICBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmIG1vYmlsZUFz
c2V0VjJIYW5kbGUpCiB7CkBAIC0xMDA4LDYgKzEwMjAsMTcgQEAgdm9pZCBXZWJQcm9jZXNzOjp1
cGRhdGVQYWdlU2NyZWVuUHJvcGVydAogfQogI2VuZGlmCiAKK3ZvaWQgV2ViUHJvY2Vzczo6dW5i
bG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIoY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBo
YW5kbGUpCit7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBib29sIG9rID0gU2FuZGJv
eEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KGhhbmRsZSk7CisgICAgQVNTRVJUX1VOVVNF
RChvaywgb2spOworI2VuZGlmCisgICAgCisgICAgcmVnaXN0ZXJXaXRoQWNjZXNzaWJpbGl0eSgp
OworfQorCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgUkVMRUFTRV9MT0dfU0VT
U0lPTl9JRAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392720</attachid>
            <date>2020-03-06 07:43:35 -0800</date>
            <delta_ts>2020-03-06 10:39:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208690-20200306074334.patch</filename>
            <type>text/plain</type>
            <size>23861</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAzLTA1ICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFJlLWVuYWJsZSBDRlByZWZzIGRp
cmVjdCBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDg2OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZS5oOgorCiAyMDIwLTAzLTA0ICBQZXIgQXJuZSBWb2xsYW4g
IDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIEFkZCBlbmFibGUgZmxhZyB0
byBkaXNhYmxlIGRpcmVjdCBtb2RlIGZvciBwcmVmZXJlbmNlcwpJbmRleDogU291cmNlL1dURi93
dGYvUGxhdGZvcm1FbmFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUVuYWJsZS5oCShyZXZpc2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVu
YWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04NzIsNCArODcyLDQgQEAKICNlcnJvciAiRU5BQkxF
KFdFQkdMMikgcmVxdWlyZXMgRU5BQkxFKFdFQkdMKSIKICNlbmRpZgogCi0jZGVmaW5lIEVOQUJM
RV9DRlBSRUZTX0RJUkVDVF9NT0RFIDAKKyNkZWZpbmUgRU5BQkxFX0NGUFJFRlNfRElSRUNUX01P
REUgMQpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1Nzk2NSkKKysrIFNvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDcgQEAKKzIwMjAtMDMtMDUgIFBlciBB
cm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUmUtZW5h
YmxlIENGUHJlZnMgZGlyZWN0IG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwODY5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxl
LldlYktpdC5XZWJDb250ZW50LnNiOgorICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0
aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW06CisgICAgICAgIChXZWJLaXQ6
OlhQQ1NlcnZpY2VFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpYUENTZXJ2aWNlTWFp
bik6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5tbToKKyAgICAgICAg
KHJlZ2lzdGVyRGVmYXVsdHNPdmVycmlkZSk6CisgICAgICAgICgtW1dLVXNlckRlZmF1bHRzIF9u
b3RpZnlPYnNlcnZlcnNPZkNoYW5nZUZyb21WYWx1ZXNGb3JLZXlzOnRvVmFsdWVzRm9yS2V5czpd
KToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlT2JzZXJ2ZXIgaW5pdF0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OnBsYXRmb3JtUmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4dGVuc2lvbnMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpyZWdpc3Rlck5vdGlmaWNh
dGlvbk9ic2VydmVycyk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94
eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnVuYmxvY2tBY2Nl
c3NpYmlsaXR5U2VydmVySWZOZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHk6OnVuYmxvY2tQcmVmZXJlbmNlU2VydmljZUlmTmVlZGVkKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hp
bmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5Ojp1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjp1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcik6IERlbGV0ZWQuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxp
emVXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0
aWFsaXplUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVuYmxvY2tQcmVm
ZXJlbmNlU2VydmljZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVuYmxvY2tBY2Nl
c3NpYmlsaXR5U2VydmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9j
ZXNzLnNiLmluOgorCiAyMDIwLTAzLTA1ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KIAogICAgICAgICBQcmUtZmV0Y2ggZmlyc3QgcGFnZSBpbiBuZXcgUERGIGxvYWRpbmcgbW9k
ZWwuCkluZGV4OiBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2Nv
bS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVu
dC5zYgkocmV2aXNpb24gMjU3ODc5KQorKysgU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJv
eFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IJKHdvcmtpbmcgY29w
eSkKQEAgLTUzNiw3ICs1MzYsNiBAQAogKGFsbG93IG1hY2gtbG9va3VwCiAgICAgKGdsb2JhbC1u
YW1lICJjb20uYXBwbGUubG9nZCIpCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUubG9nZC5l
dmVudHMiKQotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIpCiAp
CiAKIChkZW55IG1hY2gtbG9va3VwICh3aXRoIHRlbGVtZXRyeSkKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCShy
ZXZpc2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg1LDcgKzE4NSw3IEBAIHZvaWQg
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2QKICNpZiBQTEFURk9STShDT0NPQSkK
ICAgICAvLyBGSVhNRSgyMDc3MTYpOiBUaGUgZm9sbG93aW5nIHNob3VsZCBiZSByZW1vdmVkIHdo
ZW4gdGhlIEdQVSBwcm9jZXNzIGlzIGNvbXBsZXRlLgogICAgIGVuY29kZXIgPDwgbWVkaWFFeHRl
bnNpb25IYW5kbGVzOwotI2lmICFFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKKyNpZiBFTkFC
TEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKICAgICBlbmNvZGVyIDw8IHByZWZlcmVuY2VzRXh0ZW5z
aW9uSGFuZGxlOwogI2VuZGlmCiAjZW5kaWYKQEAgLTUwNCw3ICs1MDQsNyBAQCBib29sIFdlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kCiAgICAgcGFyYW1ldGVycy5tZWRpYUV4dGVu
c2lvbkhhbmRsZXMgPSBXVEZNb3ZlKCptZWRpYUV4dGVuc2lvbkhhbmRsZXMpOwogICAgIC8vIEZJ
WE1FKDIwNzcxNik6IEVuZCByZWdpb24gdG8gcmVtb3ZlLgogCi0jaWYgIUVOQUJMRShDRlBSRUZT
X0RJUkVDVF9NT0RFKQorI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQogICAgIE9wdGlv
bmFsPE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4+IHByZWZlcmVuY2VzRXh0ZW5z
aW9uSGFuZGxlOwogICAgIGRlY29kZXIgPj4gcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGU7CiAg
ICAgaWYgKCFwcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9u
IDI1Nzg3NSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjI2LDcgKzIyNiw3IEBAIHN0cnVjdCBXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZUFycmF5IG1lZGlhRXh0ZW5zaW9uSGFuZGxlczsgLy8gRklYTUUo
MjA3NzE2KTogUmVtb3ZlIHdoZW4gR1BVIHByb2Nlc3MgaXMgY29tcGxldGUuCi0jaWYgIUVOQUJM
RShDRlBSRUZTX0RJUkVDVF9NT0RFKQorI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQog
ICAgIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gcHJlZmVyZW5jZXNFeHRlbnNp
b25IYW5kbGU7CiAjZW5kaWYKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgJKHJldmlzaW9uIDI1Nzg3NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzA1LDYgKzE3MDUsMTAgQEAgcHVi
bGljOgogICAgIHZvaWQgcmV2b2tlQWNjZXNzVG9Bc3NldFNlcnZpY2VzKCk7CiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgZ3JhbnRBY2Nlc3NUb1ByZWZlcmVuY2VTZXJ2
aWNlKCk7CisjZW5kaWYKKwogICAgIHZvaWQgc2V0SXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFp
blRlc3RpbmcoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogcHJpdmF0ZToK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkocmV2aXNpb24g
MjU3ODc0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkod29y
a2luZyBjb3B5KQpAQCAtNzA0LDcgKzcwNCw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVf
cHRyPFBlckFjdGl2aXR5U3RhdGVDUFVVc2FnZVNhbXBsZXI+IG1fcGVyQWN0aXZpdHlTdGF0ZUNQ
VVVzYWdlU2FtcGxlcjsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpZiBQ
TEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fYWNjZXNzaWJpbGl0eUVu
YWJsZWRPYnNlcnZlcjsKICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAJKHJldmlzaW9uIDI1Nzg3NCkKKysrIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkyMyw3ICs5
MjMsOSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nCiAgICAgICAg
IGlmICh4cGNfY29ubmVjdGlvbl90IHhwY0Nvbm5lY3Rpb24gPSBjb25uZWN0aW9uKCktPnhwY0Nv
bm5lY3Rpb24oKSkKICAgICAgICAgICAgIG1fdGhyb3R0bGVyLmRpZENvbm5lY3RUb1Byb2Nlc3Mo
eHBjX2Nvbm5lY3Rpb25fZ2V0X3BpZCh4cGNDb25uZWN0aW9uKSk7CiAgICAgfQorI2VuZGlmCiAK
KyNpZiBQTEFURk9STShDT0NPQSkKICAgICB1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcklmTmVl
ZGVkKCk7CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmgJKHJldmlzaW9uIDI1Nzg3NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMzMsOCArMzMzLDkgQEAgcHVibGlj
OgogICAgIHZvaWQgZW5hYmxlUmVtb3RlSW5zcGVjdG9ySWZOZWVkZWQoKTsKICNlbmRpZgogICAg
IAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9p
ZCB1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKCk7CisgICAgdm9pZCB1bmJsb2Nr
UHJlZmVyZW5jZVNlcnZpY2VJZk5lZWRlZCgpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQpAQCAtNTI4LDEwICs1MjksMTQgQEAgcHJpdmF0ZToKICAgICBGb3JlZ3JvdW5kV2Vi
UHJvY2Vzc1Rva2VuIG1fZm9yZWdyb3VuZFRva2VuOwogICAgIEJhY2tncm91bmRXZWJQcm9jZXNz
VG9rZW4gbV9iYWNrZ3JvdW5kVG9rZW47CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBi
b29sIG1faGFzU2VudE1lc3NhZ2VUb1VuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVyIHsgZmFsc2Ug
fTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6RGVmZXJyYWJsZU9uZVNob3RUaW1lcj4g
bV91bmV4cGVjdGVkQWN0aXZpdHlUaW1lcjsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0Ep
CisgICAgYm9vbCBtX2hhc1NlbnRNZXNzYWdlVG9VbmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlciB7
IGZhbHNlIH07CisgICAgYm9vbCBtX2hhc1NlbnRNZXNzYWdlVG9VbmJsb2NrUHJlZmVyZW5jZVNl
cnZpY2UgeyBmYWxzZSB9OworI2VuZGlmCisKICAgICBIYXNoTWFwPFN0cmluZywgdWludDY0X3Q+
IG1fcGFnZVVSTFJldGFpbkNvdW50TWFwOwogCiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4+IG1fcmVnaXN0cmFibGVEb21haW47CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0JKHJldmlzaW9uIDI1Nzg3NCkKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTI4OTksNiArMjg5OSwxMiBAQCAtIChDR0Zsb2F0KV9taW5pbXVtRWZmZWN0aXZl
RGV2aWNlV2lkdGgKICNlbmRpZgogfQogCistICh2b2lkKV9ncmFudEFjY2Vzc1RvUHJlZmVyZW5j
ZVNlcnZpY2UKK3sKKyAgICBpZiAoX3BhZ2UpCisgICAgICAgIF9wYWdlLT5ncmFudEFjY2Vzc1Rv
UHJlZmVyZW5jZVNlcnZpY2UoKTsKK30KKwogI3ByYWdtYSBtYXJrIC0gc2Nyb2xsUGVyZm9ybWFu
Y2VEYXRhCiAKIC0gKHZvaWQpX3NldFNjcm9sbFBlcmZvcm1hbmNlRGF0YUNvbGxlY3Rpb25FbmFi
bGVkOihCT09MKWVuYWJsZWQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAkocmV2aXNpb24gMjU3ODc0KQorKysgU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzM5LDYgKzMzOSw4IEBAIGZvciB0aGlzIHByb3BlcnR5LgogCiAtICh2b2lk
KV9zZXRJc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluOihCT09MKWlzTmF2aWdhdGluZ1RvQXBw
Qm91bmREb21haW4gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25I
YW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CiAKKy0gKHZvaWQpX2dyYW50QWNjZXNzVG9QcmVmZXJlbmNlU2VydmljZSBXS19BUElfQVZB
SUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CisKIEBlbmQKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNl
T2JzZXJ2ZXIubW0JKHJldmlzaW9uIDI1Nzg3NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsMTAgKzI4
LDI1IEBACiAKICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgiCiAKKyNpbXBvcnQgPHd0Zi9PYmpD
UnVudGltZUV4dHJhcy5oPgorCitzdGF0aWMgSU1QIHJlZ2lzdGVyRGVmYXVsdHNPcmlnaW5hbCA9
IG5pbDsKK3N0YXRpYyBib29sIHJlZ2lzdGVyaW5nRGVmYXVsdHMgPSBmYWxzZTsKKworc3RhdGlj
IHZvaWQgcmVnaXN0ZXJEZWZhdWx0c092ZXJyaWRlKGlkIHNlbGYsIFNFTCBzZWxlY3RvciwgTlNE
aWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqZGljdGlvbmFyeSkKK3sKKyAgICByZWdpc3Rlcmlu
Z0RlZmF1bHRzID0gdHJ1ZTsKKyAgICB3dGZDYWxsSU1QPHZvaWQ+KHJlZ2lzdGVyRGVmYXVsdHNP
cmlnaW5hbCwgc2VsZiwgc2VsZWN0b3IsIGRpY3Rpb25hcnkpOworICAgIHJlZ2lzdGVyaW5nRGVm
YXVsdHMgPSBmYWxzZTsKK30KKwogQGltcGxlbWVudGF0aW9uIFdLVXNlckRlZmF1bHRzCiAKIC0g
KHZvaWQpX25vdGlmeU9ic2VydmVyc09mQ2hhbmdlRnJvbVZhbHVlc0ZvcktleXM6KE5TRGljdGlv
bmFyeTxOU1N0cmluZyAqLCBpZD4gKilvbGRWYWx1ZXMgdG9WYWx1ZXNGb3JLZXlzOihOU0RpY3Rp
b25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopbmV3VmFsdWVzCiB7CisgICAgaWYgKHJlZ2lzdGVyaW5n
RGVmYXVsdHMpCisgICAgICAgIHJldHVybjsKKwogICAgIFtzdXBlciBfbm90aWZ5T2JzZXJ2ZXJz
T2ZDaGFuZ2VGcm9tVmFsdWVzRm9yS2V5czpvbGRWYWx1ZXMgdG9WYWx1ZXNGb3JLZXlzOm5ld1Zh
bHVlc107CiAKICAgICBpZiAoW29sZFZhbHVlcyBpc0VxdWFsVG9EaWN0aW9uYXJ5Om5ld1ZhbHVl
c10pCkBAIC04Nyw2ICsxMDIsOSBAQCArIChpZClzaGFyZWRJbnN0YW5jZQogCiAtIChpbnN0YW5j
ZXR5cGUpaW5pdAogeworICAgIE1ldGhvZCByZWdpc3RlckRlZmF1bHRzTWV0aG9kID0gY2xhc3Nf
Z2V0SW5zdGFuY2VNZXRob2Qob2JqY19nZXRDbGFzcygiTlNVc2VyRGVmYXVsdHMiKSwgQHNlbGVj
dG9yKHJlZ2lzdGVyRGVmYXVsdHM6KSk7CisgICAgcmVnaXN0ZXJEZWZhdWx0c09yaWdpbmFsID0g
bWV0aG9kX3NldEltcGxlbWVudGF0aW9uKHJlZ2lzdGVyRGVmYXVsdHNNZXRob2QsIChJTVApcmVn
aXN0ZXJEZWZhdWx0c092ZXJyaWRlKTsKKwogICAgIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxOU1N0
cmluZyo+IGRvbWFpbnMgPSB7CiAgICAgICAgIEAiY29tLmFwcGxlLkFjY2Vzc2liaWxpdHkiLAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQkocmV2aXNpb24gMjU3ODc0KQorKysg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0JKHdvcmtp
bmcgY29weSkKQEAgLTMxNCw0ICszMTQsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRl
Q29udGV4dEluR1BVCiB9CiAjZW5kaWYKIAordm9pZCBXZWJQYWdlUHJveHk6OmdyYW50QWNjZXNz
VG9QcmVmZXJlbmNlU2VydmljZSgpCit7CisgICAgcHJvY2VzcygpLnVuYmxvY2tQcmVmZXJlbmNl
U2VydmljZUlmTmVlZGVkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29h
Lm1tCShyZXZpc2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJQcm9jZXNzUG9vbENvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC05MCw2ICs5MCw5IEBAIFNP
RlRfTElOS19QUklWQVRFX0ZSQU1FV09SSyhXZWJDb250ZW50QW4KIFNPRlRfTElOS19DTEFTUyhX
ZWJDb250ZW50QW5hbHlzaXMsIFdlYkZpbHRlckV2YWx1YXRvcik7CiAjZW5kaWYKIAorZXh0ZXJu
ICJDIiBCb29sZWFuIF9BWFNBcHBsaWNhdGlvbkFjY2Vzc2liaWxpdHlFbmFibGVkKCk7CitleHRl
cm4gQ0ZTdHJpbmdSZWYga0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVuYWJsZWROb3RpZmlj
YXRpb247CisKICNpZiBQTEFURk9STShDT0NPQSkKICNpbXBvcnQgPFdlYkNvcmUvU3lzdGVtQmF0
dGVyeS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9ORUZpbHRlclNvdXJjZVNQSS5oPgpAQCAt
MTczLDYgKzE3NiwxMyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemUo
CiAgICAgICAgIGluc3RhbGxNZW1vcnlQcmVzc3VyZUhhbmRsZXIoKTsKIAogICAgIHNldExlZ2Fj
eUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudChtYWtlVW5pcXVlPExlZ2FjeUN1c3RvbVByb3Rv
Y29sTWFuYWdlckNsaWVudD4oKSk7CisKKyNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkK
KyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKFFPU19DTEFTU19C
QUNLR1JPVU5ELCAwKSwgXnsKKyAgICAgICAgLy8gU3RhcnQgb2JzZXJ2aW5nIHByZWZlcmVuY2Ug
Y2hhbmdlcy4KKyAgICAgICAgW1dLUHJlZmVyZW5jZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXTsK
KyAgICB9KTsKKyNlbmRpZgogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTE5Nywx
MSArMjA3LDYgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1SZXNvbHZlUGF0aAogICAg
IG1fcmVzb2x2ZWRQYXRocy5jb250YWluZXJDYWNoZXNEaXJlY3RvcnkgPSByZXNvbHZlQW5kQ3Jl
YXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVuc2lvbihXZWJQcm9jZXNzUG9vbDo6
d2ViQ29udGVudENhY2hlc0RpcmVjdG9yeSgpKTsKICAgICBtX3Jlc29sdmVkUGF0aHMuY29udGFp
bmVyVGVtcG9yYXJ5RGlyZWN0b3J5ID0gcmVzb2x2ZUFuZENyZWF0ZVJlYWRXcml0ZURpcmVjdG9y
eUZvclNhbmRib3hFeHRlbnNpb24oV2ViUHJvY2Vzc1Bvb2w6OmNvbnRhaW5lclRlbXBvcmFyeURp
cmVjdG9yeSgpKTsKICNlbmRpZgotCi0jaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCi0g
ICAgLy8gU3RhcnQgb2JzZXJ2aW5nIHByZWZlcmVuY2UgY2hhbmdlcy4KLSAgICBbV0tQcmVmZXJl
bmNlT2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdOwotI2VuZGlmCiB9CiAKICNpZiBQTEFURk9STShJ
T1MpCkBAIC00NDIsMTAgKzQ0NywxMyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUlu
aXRpYWxpemVXCiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwLCBzaXplID0gc2VydmljZXMuc2l6
ZSgpOyBpIDwgc2l6ZTsgKytpKQogICAgICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRl
SGFuZGxlRm9yTWFjaExvb2t1cChzZXJ2aWNlc1tpXSwgV1RGOjpudWxsb3B0LCBwYXJhbWV0ZXJz
Lm1lZGlhRXh0ZW5zaW9uSGFuZGxlc1tpXSk7CiAgICAgfQotI2lmICFFTkFCTEUoQ0ZQUkVGU19E
SVJFQ1RfTU9ERSkKLSAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgcHJlZmVyZW5jZXNFeHRl
bnNpb25IYW5kbGU7Ci0gICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExv
b2t1cCgiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIsIFdURjo6bnVsbG9wdCwgcHJlZmVyZW5j
ZXNFeHRlbnNpb25IYW5kbGUpOwotICAgIHBhcmFtZXRlcnMucHJlZmVyZW5jZXNFeHRlbnNpb25I
YW5kbGUgPSBXVEZNb3ZlKHByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlKTsKKworI2lmIEVOQUJM
RShDRlBSRUZTX0RJUkVDVF9NT0RFKQorICAgIGlmIChfQVhTQXBwbGljYXRpb25BY2Nlc3NpYmls
aXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBwcmVmZXJl
bmNlc0V4dGVuc2lvbkhhbmRsZTsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFu
ZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIsIFdURjo6bnVsbG9w
dCwgcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGUpOworICAgICAgICBwYXJhbWV0ZXJzLnByZWZl
cmVuY2VzRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZShwcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRs
ZSk7CisgICAgfQogI2VuZGlmCiB9CiAKQEAgLTY0NywxNSArNjU1LDE3IEBAIHZvaWQgV2ViUHJv
Y2Vzc1Bvb2w6OnJlZ2lzdGVyTm90aWZpY2F0aW8KICNlbGlmICFQTEFURk9STShNQUNDQVRBTFlT
VCkKICAgICBDRk5vdGlmaWNhdGlvbkNlbnRlckFkZE9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2Vu
dGVyR2V0RGFyd2luTm90aWZ5Q2VudGVyKCksIHRoaXMsIGJhY2tsaWdodExldmVsRGlkQ2hhbmdl
Q2FsbGJhY2ssIHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihVSUJhY2tsaWdodExldmVsQ2hhbmdl
ZE5vdGlmaWNhdGlvbiksIG51bGxwdHIsIENGTm90aWZpY2F0aW9uU3VzcGVuc2lvbkJlaGF2aW9y
Q29hbGVzY2UpOwogI2lmIFBMQVRGT1JNKElPUykKLSAgICBtX2FjY2Vzc2liaWxpdHlFbmFibGVk
T2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2Vy
dmVyRm9yTmFtZTooX19icmlkZ2UgaWQpa0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVuYWJs
ZWROb3RpZmljYXRpb24gb2JqZWN0Om5pbCBxdWV1ZTpbTlNPcGVyYXRpb25RdWV1ZSBjdXJyZW50
UXVldWVdIHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqKSB7Ci0gICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbV9wcm9jZXNzZXMuc2l6ZSgpOyArK2kpCi0gICAgICAgICAgICBtX3By
b2Nlc3Nlc1tpXS0+dW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXJJZk5lZWRlZCgpOwotICAgIH1d
OwogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQogICAgIENGTm90aWZpY2F0aW9uQ2VudGVy
QWRkT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwg
dGhpcywgcmVtb3RlV2ViSW5zcGVjdG9yRW5hYmxlZENhbGxiYWNrLCBzdGF0aWNfY2FzdDxDRlN0
cmluZ1JlZj4oQ0ZTVFIoV0lSU2VydmljZUVuYWJsZWROb3RpZmljYXRpb24pKSwgbnVsbHB0ciwg
Q0ZOb3RpZmljYXRpb25TdXNwZW5zaW9uQmVoYXZpb3JDb2FsZXNjZSk7CiAjZW5kaWYKICNlbmRp
ZiAvLyBQTEFURk9STShJT1MpCiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPU19GQU1JTFkpCisgICAg
bV9hY2Nlc3NpYmlsaXR5RW5hYmxlZE9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBk
ZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6KF9fYnJpZGdlIGlkKWtBWFNBcHBsaWNh
dGlvbkFjY2Vzc2liaWxpdHlFbmFibGVkTm90aWZpY2F0aW9uIG9iamVjdDpuaWwgcXVldWU6W05T
T3BlcmF0aW9uUXVldWUgY3VycmVudFF1ZXVlXSB1c2luZ0Jsb2NrOl4oTlNOb3RpZmljYXRpb24g
KikgeworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fcHJvY2Vzc2VzLnNpemUoKTsg
KytpKSB7CisgICAgICAgICAgICBtX3Byb2Nlc3Nlc1tpXS0+dW5ibG9ja1ByZWZlcmVuY2VTZXJ2
aWNlSWZOZWVkZWQoKTsKKyAgICAgICAgICAgIG1fcHJvY2Vzc2VzW2ldLT51bmJsb2NrQWNjZXNz
aWJpbGl0eVNlcnZlcklmTmVlZGVkKCk7CisgICAgICAgIH0KKyAgICB9XTsKIH0KIAogdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVycygpCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlD
b2NvYS5tbQkocmV2aXNpb24gMjU3ODc0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTIyNSw0ICsyMjUs
NDMgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmVuYWJsZVJlbW90ZUluc3BlYwogICAgICAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpFbmFibGVSZW1vdGVXZWJJbnNwZWN0b3IoaGFuZGxl
KSwgMCk7CiB9CiAjZW5kaWYKKwordm9pZCBXZWJQcm9jZXNzUHJveHk6OnVuYmxvY2tBY2Nlc3Np
YmlsaXR5U2VydmVySWZOZWVkZWQoKQoreworICAgIGlmIChtX2hhc1NlbnRNZXNzYWdlVG9VbmJs
b2NrQWNjZXNzaWJpbGl0eVNlcnZlcikKKyAgICAgICAgcmV0dXJuOworICAgIGlmICghX0FYU0Fw
cGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGlm
ICghcHJvY2Vzc0lkZW50aWZpZXIoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICghY2FuU2Vu
ZE1lc3NhZ2UoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlIGhhbmRsZTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlmICghU2FuZGJveEV4
dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmlwaG9uZS5heHNl
cnZlci1zeXN0ZW13aWRlIiwgY29ubmVjdGlvbigpID8gY29ubmVjdGlvbigpLT5nZXRBdWRpdFRv
a2VuKCkgOiBXVEY6Om51bGxvcHQsIGhhbmRsZSkpCisgICAgICAgIHJldHVybjsKKyNlbmRpZgor
CisgICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6VW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2
ZXIoaGFuZGxlKSwgMCk7CisgICAgbV9oYXNTZW50TWVzc2FnZVRvVW5ibG9ja0FjY2Vzc2liaWxp
dHlTZXJ2ZXIgPSB0cnVlOworfQorCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6dW5ibG9ja1ByZWZl
cmVuY2VTZXJ2aWNlSWZOZWVkZWQoKQoreworICAgIGlmIChtX2hhc1NlbnRNZXNzYWdlVG9VbmJs
b2NrUHJlZmVyZW5jZVNlcnZpY2UpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoIXByb2Nlc3NJ
ZGVudGlmaWVyKCkpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoIWNhblNlbmRNZXNzYWdlKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGU7
CisgICAgaWYgKCFTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJj
b20uYXBwbGUuY2ZwcmVmc2QuZGFlbW9uIiwgY29ubmVjdGlvbigpID8gY29ubmVjdGlvbigpLT5n
ZXRBdWRpdFRva2VuKCkgOiBXVEY6Om51bGxvcHQsIGhhbmRsZSkpCisgICAgICAgIHJldHVybjsK
KworICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlVuYmxvY2tQcmVmZXJlbmNlU2Vydmlj
ZShoYW5kbGUpLCAwKTsKKyAgICBtX2hhc1NlbnRNZXNzYWdlVG9VbmJsb2NrUHJlZmVyZW5jZVNl
cnZpY2UgPSB0cnVlOworfQorCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V2ViUHJvY2Vzc1Byb3h5SU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW0JKHJldmlzaW9uIDI1Nzg3NCkKKysrIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTQzLDI1ICs0Myw2IEBAIGJvb2wgV2ViUHJvY2Vzc1Byb3h5OjpmdWxsS2V5Ym9hcmRB
Y2Nlc3MKICNlbmRpZgogfQogCi12b2lkIFdlYlByb2Nlc3NQcm94eTo6dW5ibG9ja0FjY2Vzc2li
aWxpdHlTZXJ2ZXJJZk5lZWRlZCgpCi17Ci0gICAgaWYgKG1faGFzU2VudE1lc3NhZ2VUb1VuYmxv
Y2tBY2Nlc3NpYmlsaXR5U2VydmVyKQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFfQVhTQXBw
bGljYXRpb25BY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAgICAgICByZXR1cm47Ci0gICAgaWYg
KCFwcm9jZXNzSWRlbnRpZmllcigpKQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFjYW5TZW5k
TWVzc2FnZSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUgaGFuZGxlOwotICAgIGlmICghU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFj
aExvb2t1cCgiY29tLmFwcGxlLmlwaG9uZS5heHNlcnZlci1zeXN0ZW13aWRlIiwgY29ubmVjdGlv
bigpID8gY29ubmVjdGlvbigpLT5nZXRBdWRpdFRva2VuKCkgOiBXVEY6Om51bGxvcHQsIGhhbmRs
ZSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlVu
YmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVyKGhhbmRsZSksIDApOwotICAgIG1faGFzU2VudE1lc3Nh
Z2VUb1VuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVyID0gdHJ1ZTsKLX0KLQogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpJbmRleDogU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMjU3ODc0KQorKysgU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
OTc0LDE0ICsxOTc0LDYgQEAgdm9pZCBXZWJQcm9jZXNzOjpjbGVhckN1cnJlbnRNb2RpZmllclN0
YQogICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6c2V0Q3VycmVudE1vZGlmaWVyU3RhdGUoeyB9
KTsKIH0KIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi12b2lkIFdlYlByb2Nlc3M6OnVuYmxv
Y2tBY2Nlc3NpYmlsaXR5U2VydmVyKGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYgaGFu
ZGxlKQotewotICAgIGJvb2wgb2sgPSBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50
bHkoaGFuZGxlKTsKLSAgICBBU1NFUlRfVU5VU0VEKG9rLCBvayk7Ci19Ci0jZW5kaWYKLQogYm9v
bCBXZWJQcm9jZXNzOjphcmVBbGxQYWdlc1Rocm90dGxlYWJsZSgpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIFdURjo6YWxsT2YobV9wYWdlTWFwLnZhbHVlcygpLCBbXShhdXRvJiBwYWdlKSB7CkluZGV4
OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgJKHJldmlzaW9uIDI1Nzg3NCkKKysr
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI5OSw4ICsyOTksNiBAQCBwdWJsaWM6CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAg
IHZvaWQgYWNjZXNzaWJpbGl0eVByb2Nlc3NTdXNwZW5kZWROb3RpZmljYXRpb24oYm9vbCk7Ci0g
ICAgCi0gICAgdm9pZCB1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcihjb25zdCBTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGUmKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
IVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQpAQCAtMzEzLDYgKzMxMSw4IEBAIHB1YmxpYzoKICAgICB2
b2lkIGVuYWJsZVJlbW90ZVdlYkluc3BlY3Rvcihjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUmKTsKICNlbmRpZgogICAgIHZvaWQgbm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKGNvbnN0IFN0
cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgT3B0aW9uYWw8U3RyaW5nPiYg
ZW5jb2RlZFZhbHVlKTsKKyAgICB2b2lkIHVuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVyKGNvbnN0
IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYpOworICAgIHZvaWQgdW5ibG9ja1ByZWZlcmVuY2VT
ZXJ2aWNlKGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYpOwogI2VuZGlmCiAKICAgICBi
b29sIGFyZUFsbFBhZ2VzVGhyb3R0bGVhYmxlKCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjU3ODc0
KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4JKHdv
cmtpbmcgY29weSkKQEAgLTE1NCwxMCArMTU0LDYgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBM
ZWdhY3lSZWNlaXZlciBObwogICAgIFNldEJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSh1bnNpZ25l
ZCBjYXBhY2l0eSk7CiAgICAgQ2xlYXJDYWNoZWRQYWdlKHN0cnVjdCBXZWJDb3JlOjpCYWNrRm9y
d2FyZEl0ZW1JZGVudGlmaWVyIGJhY2tGb3J3YXJkSXRlbUlEKSAtPiAoKSBBc3luYwogCi0jaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBVbmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcihXZWJL
aXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGUpCi0jZW5kaWYKLQogI2lmIFBMQVRG
T1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgIFNlbmRNZXNzYWdlVG9XZWJFeHRlbnNpb24o
c3RydWN0IFdlYktpdDo6VXNlck1lc3NhZ2UgdXNlck1lc3NhZ2UpCiAjZW5kaWYKQEAgLTE3NCw1
ICsxNzAsNyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIE5vCiAKICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICBOb3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoU3RyaW5nIGRv
bWFpbiwgU3RyaW5nIGtleSwgT3B0aW9uYWw8U3RyaW5nPiBlbmNvZGVkVmFsdWUpCisgICAgVW5i
bG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUg
aGFuZGxlKQorICAgIFVuYmxvY2tQcmVmZXJlbmNlU2VydmljZShXZWJLaXQ6OlNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSBoYW5kbGUpCiAjZW5kaWYKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4JKHJldmlzaW9uIDI1
Nzg3OSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5z
Yi5pbgkod29ya2luZyBjb3B5KQpAQCAtNjQzLDcgKzY0Myw5IEBACiAgICAgKHdpdGggcmVwb3J0
KSAod2l0aCB0ZWxlbWV0cnkpCiAjZW5kaWYKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5Q
b3dlck1hbmFnZW1lbnQuY29udHJvbCIpCisjaWYgIUVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RF
KQogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIpCisjZW5kaWYK
ICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5jb3Jlc2VydmljZXMubGF1bmNoc2VydmljZXNk
IikKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5sc2QubWFwZGIiKQogICAgIChnbG9iYWwt
bmFtZSAiY29tLmFwcGxlLnRjY2QiKQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1dlYlByb2Nlc3NDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCShyZXZpc2lvbiAyNTc4NzUpCisrKyBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0yODgsMTEgKzI4OCwxMyBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlh
bGl6ZVdlYlByCiAgICAgLy8gRklYTUUoMjA3NzE2KTogVGhlIGZvbGxvd2luZyBzaG91bGQgYmUg
cmVtb3ZlZCB3aGVuIHRoZSBHUFUgcHJvY2VzcyBpcyBjb21wbGV0ZS4KICAgICBmb3IgKHNpemVf
dCBpID0gMCwgc2l6ZSA9IHBhcmFtZXRlcnMubWVkaWFFeHRlbnNpb25IYW5kbGVzLnNpemUoKTsg
aSA8IHNpemU7ICsraSkKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVu
dGx5KHBhcmFtZXRlcnMubWVkaWFFeHRlbnNpb25IYW5kbGVzW2ldKTsKKyNlbmRpZgogCi0jaWYg
IUVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQotICAgIGlmIChwYXJhbWV0ZXJzLnByZWZlcmVu
Y2VzRXh0ZW5zaW9uSGFuZGxlKQorI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQorICAg
IGlmIChwYXJhbWV0ZXJzLnByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlKSB7CiAgICAgICAgIFNh
bmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseSgqcGFyYW1ldGVycy5wcmVmZXJlbmNl
c0V4dGVuc2lvbkhhbmRsZSk7Ci0jZW5kaWYKKyAgICAgICAgX0NGUHJlZnNTZXREaXJlY3RNb2Rl
RW5hYmxlZChmYWxzZSk7CisgICAgfQogI2VuZGlmCiB9CiAKQEAgLTU3Miw4ICs1NzQsNiBAQCB2
b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVByb2NlCiAgICAgZWxzZQogICAgICAg
ICBtX3Byb2Nlc3NUeXBlID0gUHJvY2Vzc1R5cGU6OldlYkNvbnRlbnQ7CiAKLSAgICByZWdpc3Rl
cldpdGhBY2Nlc3NpYmlsaXR5KCk7Ci0KICNpZiBVU0UoT1NfU1RBVEUpCiAgICAgcmVnaXN0ZXJX
aXRoU3RhdGVEdW1wZXIoKTsKICNlbmRpZgpAQCAtOTQ1LDYgKzk0NSw3IEBAIHZvaWQgV2ViUHJv
Y2Vzczo6c2V0TWVkaWFNSU1FVHlwZXMoY29uc3QKICAgICAgICAgY2FjaGUuYWRkU3VwcG9ydGVk
VHlwZXModHlwZXMpOwogfQogCisjaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCiB2b2lk
IFdlYlByb2Nlc3M6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChjb25zdCBTdHJpbmcmIGRvbWFp
biwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IE9wdGlvbmFsPFN0cmluZz4mIGVuY29kZWRWYWx1
ZSkKIHsKICAgICBhdXRvIGRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFsbG9j
XSBpbml0V2l0aFN1aXRlTmFtZTpkb21haW5dKTsKQEAgLTk2Myw2ICs5NjQsMTQgQEAgdm9pZCBX
ZWJQcm9jZXNzOjpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZQogICAgIFtkZWZhdWx0cyBzZXRPYmpl
Y3Q6b2JqZWN0LmdldCgpIGZvcktleTprZXldOwogfQogCit2b2lkIFdlYlByb2Nlc3M6OnVuYmxv
Y2tQcmVmZXJlbmNlU2VydmljZShjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIGhhbmRs
ZSkKK3sKKyAgICBib29sIG9rID0gU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5
KGhhbmRsZSk7CisgICAgQVNTRVJUX1VOVVNFRChvaywgb2spOworICAgIF9DRlByZWZzU2V0RGly
ZWN0TW9kZUVuYWJsZWQoZmFsc2UpOworfQorI2VuZGlmCisKICNpZiBQTEFURk9STShJT1MpCiB2
b2lkIFdlYlByb2Nlc3M6OmdyYW50QWNjZXNzVG9Bc3NldFNlcnZpY2VzKFdlYktpdDo6U2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlJiYgbW9iaWxlQXNzZXRIYW5kbGUsICBXZWJLaXQ6OlNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSYmIG1vYmlsZUFzc2V0VjJIYW5kbGUpCiB7CkBAIC0xMDA4LDYgKzEw
MTcsMTcgQEAgdm9pZCBXZWJQcm9jZXNzOjp1cGRhdGVQYWdlU2NyZWVuUHJvcGVydAogfQogI2Vu
ZGlmCiAKK3ZvaWQgV2ViUHJvY2Vzczo6dW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIoY29uc3Qg
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBoYW5kbGUpCit7CisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyAgICBib29sIG9rID0gU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5
KGhhbmRsZSk7CisgICAgQVNTRVJUX1VOVVNFRChvaywgb2spOworI2VuZGlmCisgICAgCisgICAg
cmVnaXN0ZXJXaXRoQWNjZXNzaWJpbGl0eSgpOworfQorCisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAogCiAjdW5kZWYgUkVMRUFTRV9MT0dfU0VTU0lPTl9JRAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392742</attachid>
            <date>2020-03-06 10:39:10 -0800</date>
            <delta_ts>2020-03-06 11:29:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208690-20200306103910.patch</filename>
            <type>text/plain</type>
            <size>25165</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAzLTA1ICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFJlLWVuYWJsZSBDRlByZWZzIGRp
cmVjdCBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDg2OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZS5oOgorCiAyMDIwLTAzLTA0ICBQZXIgQXJuZSBWb2xsYW4g
IDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIEFkZCBlbmFibGUgZmxhZyB0
byBkaXNhYmxlIGRpcmVjdCBtb2RlIGZvciBwcmVmZXJlbmNlcwpJbmRleDogU291cmNlL1dURi93
dGYvUGxhdGZvcm1FbmFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUVuYWJsZS5oCShyZXZpc2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVu
YWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04NzIsNCArODcyLDQgQEAKICNlcnJvciAiRU5BQkxF
KFdFQkdMMikgcmVxdWlyZXMgRU5BQkxFKFdFQkdMKSIKICNlbmRpZgogCi0jZGVmaW5lIEVOQUJM
RV9DRlBSRUZTX0RJUkVDVF9NT0RFIDAKKyNkZWZpbmUgRU5BQkxFX0NGUFJFRlNfRElSRUNUX01P
REUgMQpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1Nzk2NSkKKysrIFNvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDcgQEAKKzIwMjAtMDMtMDUgIFBlciBB
cm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUmUtZW5h
YmxlIENGUHJlZnMgZGlyZWN0IG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwODY5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxl
LldlYktpdC5XZWJDb250ZW50LnNiOgorICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0
aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW06CisgICAgICAgIChXZWJLaXQ6
OlhQQ1NlcnZpY2VFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpYUENTZXJ2aWNlTWFp
bik6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5tbToKKyAgICAgICAg
KHJlZ2lzdGVyRGVmYXVsdHNPdmVycmlkZSk6CisgICAgICAgICgtW1dLVXNlckRlZmF1bHRzIF9u
b3RpZnlPYnNlcnZlcnNPZkNoYW5nZUZyb21WYWx1ZXNGb3JLZXlzOnRvVmFsdWVzRm9yS2V5czpd
KToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlT2JzZXJ2ZXIgaW5pdF0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OnBsYXRmb3JtUmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4dGVuc2lvbnMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpyZWdpc3Rlck5vdGlmaWNh
dGlvbk9ic2VydmVycyk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94
eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnVuYmxvY2tBY2Nl
c3NpYmlsaXR5U2VydmVySWZOZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHk6OnVuYmxvY2tQcmVmZXJlbmNlU2VydmljZUlmTmVlZGVkKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hp
bmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5Ojp1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjp1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcik6IERlbGV0ZWQuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxp
emVXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0
aWFsaXplUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVuYmxvY2tQcmVm
ZXJlbmNlU2VydmljZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVuYmxvY2tBY2Nl
c3NpYmlsaXR5U2VydmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9j
ZXNzLnNiLmluOgorCiAyMDIwLTAzLTA1ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KIAogICAgICAgICBQcmUtZmV0Y2ggZmlyc3QgcGFnZSBpbiBuZXcgUERGIGxvYWRpbmcgbW9k
ZWwuCkluZGV4OiBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2Nv
bS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVu
dC5zYgkocmV2aXNpb24gMjU3ODc5KQorKysgU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJv
eFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IJKHdvcmtpbmcgY29w
eSkKQEAgLTUzNiw3ICs1MzYsNiBAQAogKGFsbG93IG1hY2gtbG9va3VwCiAgICAgKGdsb2JhbC1u
YW1lICJjb20uYXBwbGUubG9nZCIpCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUubG9nZC5l
dmVudHMiKQotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIpCiAp
CiAKIChkZW55IG1hY2gtbG9va3VwICh3aXRoIHRlbGVtZXRyeSkKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCShy
ZXZpc2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg1LDcgKzE4NSw3IEBAIHZvaWQg
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2QKICNpZiBQTEFURk9STShDT0NPQSkK
ICAgICAvLyBGSVhNRSgyMDc3MTYpOiBUaGUgZm9sbG93aW5nIHNob3VsZCBiZSByZW1vdmVkIHdo
ZW4gdGhlIEdQVSBwcm9jZXNzIGlzIGNvbXBsZXRlLgogICAgIGVuY29kZXIgPDwgbWVkaWFFeHRl
bnNpb25IYW5kbGVzOwotI2lmICFFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKKyNpZiBFTkFC
TEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKICAgICBlbmNvZGVyIDw8IHByZWZlcmVuY2VzRXh0ZW5z
aW9uSGFuZGxlOwogI2VuZGlmCiAjZW5kaWYKQEAgLTUwNCw3ICs1MDQsNyBAQCBib29sIFdlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kCiAgICAgcGFyYW1ldGVycy5tZWRpYUV4dGVu
c2lvbkhhbmRsZXMgPSBXVEZNb3ZlKCptZWRpYUV4dGVuc2lvbkhhbmRsZXMpOwogICAgIC8vIEZJ
WE1FKDIwNzcxNik6IEVuZCByZWdpb24gdG8gcmVtb3ZlLgogCi0jaWYgIUVOQUJMRShDRlBSRUZT
X0RJUkVDVF9NT0RFKQorI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQogICAgIE9wdGlv
bmFsPE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4+IHByZWZlcmVuY2VzRXh0ZW5z
aW9uSGFuZGxlOwogICAgIGRlY29kZXIgPj4gcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGU7CiAg
ICAgaWYgKCFwcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9u
IDI1Nzg3NSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjI2LDcgKzIyNiw3IEBAIHN0cnVjdCBXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZUFycmF5IG1lZGlhRXh0ZW5zaW9uSGFuZGxlczsgLy8gRklYTUUo
MjA3NzE2KTogUmVtb3ZlIHdoZW4gR1BVIHByb2Nlc3MgaXMgY29tcGxldGUuCi0jaWYgIUVOQUJM
RShDRlBSRUZTX0RJUkVDVF9NT0RFKQorI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQog
ICAgIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gcHJlZmVyZW5jZXNFeHRlbnNp
b25IYW5kbGU7CiAjZW5kaWYKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgJKHJldmlzaW9uIDI1Nzg3NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzA1LDYgKzE3MDUsMTAgQEAgcHVi
bGljOgogICAgIHZvaWQgcmV2b2tlQWNjZXNzVG9Bc3NldFNlcnZpY2VzKCk7CiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgZ3JhbnRBY2Nlc3NUb1ByZWZlcmVuY2VTZXJ2
aWNlKCk7CisjZW5kaWYKKwogICAgIHZvaWQgc2V0SXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFp
blRlc3RpbmcoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogcHJpdmF0ZToK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkocmV2aXNpb24g
MjU3ODc0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkod29y
a2luZyBjb3B5KQpAQCAtNzA0LDcgKzcwNCw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVf
cHRyPFBlckFjdGl2aXR5U3RhdGVDUFVVc2FnZVNhbXBsZXI+IG1fcGVyQWN0aXZpdHlTdGF0ZUNQ
VVVzYWdlU2FtcGxlcjsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpZiBQ
TEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fYWNjZXNzaWJpbGl0eUVu
YWJsZWRPYnNlcnZlcjsKICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAJKHJldmlzaW9uIDI1Nzg3NCkKKysrIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkyMyw3ICs5
MjMsOSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nCiAgICAgICAg
IGlmICh4cGNfY29ubmVjdGlvbl90IHhwY0Nvbm5lY3Rpb24gPSBjb25uZWN0aW9uKCktPnhwY0Nv
bm5lY3Rpb24oKSkKICAgICAgICAgICAgIG1fdGhyb3R0bGVyLmRpZENvbm5lY3RUb1Byb2Nlc3Mo
eHBjX2Nvbm5lY3Rpb25fZ2V0X3BpZCh4cGNDb25uZWN0aW9uKSk7CiAgICAgfQorI2VuZGlmCiAK
KyNpZiBQTEFURk9STShDT0NPQSkKICAgICB1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcklmTmVl
ZGVkKCk7CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmgJKHJldmlzaW9uIDI1Nzg3NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMzMsOCArMzMzLDkgQEAgcHVibGlj
OgogICAgIHZvaWQgZW5hYmxlUmVtb3RlSW5zcGVjdG9ySWZOZWVkZWQoKTsKICNlbmRpZgogICAg
IAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9p
ZCB1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKCk7CisgICAgdm9pZCB1bmJsb2Nr
UHJlZmVyZW5jZVNlcnZpY2VJZk5lZWRlZCgpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQpAQCAtNTI4LDEwICs1MjksMTQgQEAgcHJpdmF0ZToKICAgICBGb3JlZ3JvdW5kV2Vi
UHJvY2Vzc1Rva2VuIG1fZm9yZWdyb3VuZFRva2VuOwogICAgIEJhY2tncm91bmRXZWJQcm9jZXNz
VG9rZW4gbV9iYWNrZ3JvdW5kVG9rZW47CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBi
b29sIG1faGFzU2VudE1lc3NhZ2VUb1VuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVyIHsgZmFsc2Ug
fTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6RGVmZXJyYWJsZU9uZVNob3RUaW1lcj4g
bV91bmV4cGVjdGVkQWN0aXZpdHlUaW1lcjsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0Ep
CisgICAgYm9vbCBtX2hhc1NlbnRNZXNzYWdlVG9VbmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlciB7
IGZhbHNlIH07CisgICAgYm9vbCBtX2hhc1NlbnRNZXNzYWdlVG9VbmJsb2NrUHJlZmVyZW5jZVNl
cnZpY2UgeyBmYWxzZSB9OworI2VuZGlmCisKICAgICBIYXNoTWFwPFN0cmluZywgdWludDY0X3Q+
IG1fcGFnZVVSTFJldGFpbkNvdW50TWFwOwogCiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4+IG1fcmVnaXN0cmFibGVEb21haW47CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0JKHJldmlzaW9uIDI1Nzg3NCkKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTI4OTksNiArMjg5OSwxMiBAQCAtIChDR0Zsb2F0KV9taW5pbXVtRWZmZWN0aXZl
RGV2aWNlV2lkdGgKICNlbmRpZgogfQogCistICh2b2lkKV9ncmFudEFjY2Vzc1RvUHJlZmVyZW5j
ZVNlcnZpY2UKK3sKKyAgICBpZiAoX3BhZ2UpCisgICAgICAgIF9wYWdlLT5ncmFudEFjY2Vzc1Rv
UHJlZmVyZW5jZVNlcnZpY2UoKTsKK30KKwogI3ByYWdtYSBtYXJrIC0gc2Nyb2xsUGVyZm9ybWFu
Y2VEYXRhCiAKIC0gKHZvaWQpX3NldFNjcm9sbFBlcmZvcm1hbmNlRGF0YUNvbGxlY3Rpb25FbmFi
bGVkOihCT09MKWVuYWJsZWQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAkocmV2aXNpb24gMjU3ODc0KQorKysgU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzM5LDYgKzMzOSw4IEBAIGZvciB0aGlzIHByb3BlcnR5LgogCiAtICh2b2lk
KV9zZXRJc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluOihCT09MKWlzTmF2aWdhdGluZ1RvQXBw
Qm91bmREb21haW4gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25I
YW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CiAKKy0gKHZvaWQpX2dyYW50QWNjZXNzVG9QcmVmZXJlbmNlU2VydmljZSBXS19BUElfQVZB
SUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CisKIEBlbmQKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNl
T2JzZXJ2ZXIubW0JKHJldmlzaW9uIDI1Nzg3NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsMTAgKzI4
LDI1IEBACiAKICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgiCiAKKyNpbXBvcnQgPHd0Zi9PYmpD
UnVudGltZUV4dHJhcy5oPgorCitzdGF0aWMgSU1QIHJlZ2lzdGVyRGVmYXVsdHNPcmlnaW5hbCA9
IG5pbDsKK3N0YXRpYyBib29sIHJlZ2lzdGVyaW5nRGVmYXVsdHMgPSBmYWxzZTsKKworc3RhdGlj
IHZvaWQgcmVnaXN0ZXJEZWZhdWx0c092ZXJyaWRlKGlkIHNlbGYsIFNFTCBzZWxlY3RvciwgTlNE
aWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqZGljdGlvbmFyeSkKK3sKKyAgICByZWdpc3Rlcmlu
Z0RlZmF1bHRzID0gdHJ1ZTsKKyAgICB3dGZDYWxsSU1QPHZvaWQ+KHJlZ2lzdGVyRGVmYXVsdHNP
cmlnaW5hbCwgc2VsZiwgc2VsZWN0b3IsIGRpY3Rpb25hcnkpOworICAgIHJlZ2lzdGVyaW5nRGVm
YXVsdHMgPSBmYWxzZTsKK30KKwogQGltcGxlbWVudGF0aW9uIFdLVXNlckRlZmF1bHRzCiAKIC0g
KHZvaWQpX25vdGlmeU9ic2VydmVyc09mQ2hhbmdlRnJvbVZhbHVlc0ZvcktleXM6KE5TRGljdGlv
bmFyeTxOU1N0cmluZyAqLCBpZD4gKilvbGRWYWx1ZXMgdG9WYWx1ZXNGb3JLZXlzOihOU0RpY3Rp
b25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopbmV3VmFsdWVzCiB7CisgICAgaWYgKHJlZ2lzdGVyaW5n
RGVmYXVsdHMpCisgICAgICAgIHJldHVybjsKKwogICAgIFtzdXBlciBfbm90aWZ5T2JzZXJ2ZXJz
T2ZDaGFuZ2VGcm9tVmFsdWVzRm9yS2V5czpvbGRWYWx1ZXMgdG9WYWx1ZXNGb3JLZXlzOm5ld1Zh
bHVlc107CiAKICAgICBpZiAoW29sZFZhbHVlcyBpc0VxdWFsVG9EaWN0aW9uYXJ5Om5ld1ZhbHVl
c10pCkBAIC04Nyw2ICsxMDIsOSBAQCArIChpZClzaGFyZWRJbnN0YW5jZQogCiAtIChpbnN0YW5j
ZXR5cGUpaW5pdAogeworICAgIE1ldGhvZCByZWdpc3RlckRlZmF1bHRzTWV0aG9kID0gY2xhc3Nf
Z2V0SW5zdGFuY2VNZXRob2Qob2JqY19nZXRDbGFzcygiTlNVc2VyRGVmYXVsdHMiKSwgQHNlbGVj
dG9yKHJlZ2lzdGVyRGVmYXVsdHM6KSk7CisgICAgcmVnaXN0ZXJEZWZhdWx0c09yaWdpbmFsID0g
bWV0aG9kX3NldEltcGxlbWVudGF0aW9uKHJlZ2lzdGVyRGVmYXVsdHNNZXRob2QsIChJTVApcmVn
aXN0ZXJEZWZhdWx0c092ZXJyaWRlKTsKKwogICAgIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxOU1N0
cmluZyo+IGRvbWFpbnMgPSB7CiAgICAgICAgIEAiY29tLmFwcGxlLkFjY2Vzc2liaWxpdHkiLAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQkocmV2aXNpb24gMjU3ODc0KQorKysg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0JKHdvcmtp
bmcgY29weSkKQEAgLTMxNCw0ICszMTQsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRl
Q29udGV4dEluR1BVCiB9CiAjZW5kaWYKIAordm9pZCBXZWJQYWdlUHJveHk6OmdyYW50QWNjZXNz
VG9QcmVmZXJlbmNlU2VydmljZSgpCit7CisgICAgcHJvY2VzcygpLnVuYmxvY2tQcmVmZXJlbmNl
U2VydmljZUlmTmVlZGVkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29h
Lm1tCShyZXZpc2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJQcm9jZXNzUG9vbENvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC05MCw2ICs5MCw5IEBAIFNP
RlRfTElOS19QUklWQVRFX0ZSQU1FV09SSyhXZWJDb250ZW50QW4KIFNPRlRfTElOS19DTEFTUyhX
ZWJDb250ZW50QW5hbHlzaXMsIFdlYkZpbHRlckV2YWx1YXRvcik7CiAjZW5kaWYKIAorZXh0ZXJu
ICJDIiBCb29sZWFuIF9BWFNBcHBsaWNhdGlvbkFjY2Vzc2liaWxpdHlFbmFibGVkKCk7CitleHRl
cm4gQ0ZTdHJpbmdSZWYga0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVuYWJsZWROb3RpZmlj
YXRpb247CisKICNpZiBQTEFURk9STShDT0NPQSkKICNpbXBvcnQgPFdlYkNvcmUvU3lzdGVtQmF0
dGVyeS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9ORUZpbHRlclNvdXJjZVNQSS5oPgpAQCAt
MTczLDYgKzE3NiwxMyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemUo
CiAgICAgICAgIGluc3RhbGxNZW1vcnlQcmVzc3VyZUhhbmRsZXIoKTsKIAogICAgIHNldExlZ2Fj
eUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudChtYWtlVW5pcXVlPExlZ2FjeUN1c3RvbVByb3Rv
Y29sTWFuYWdlckNsaWVudD4oKSk7CisKKyNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkK
KyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKFFPU19DTEFTU19C
QUNLR1JPVU5ELCAwKSwgXnsKKyAgICAgICAgLy8gU3RhcnQgb2JzZXJ2aW5nIHByZWZlcmVuY2Ug
Y2hhbmdlcy4KKyAgICAgICAgW1dLUHJlZmVyZW5jZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXTsK
KyAgICB9KTsKKyNlbmRpZgogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTE5Nywx
MSArMjA3LDYgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1SZXNvbHZlUGF0aAogICAg
IG1fcmVzb2x2ZWRQYXRocy5jb250YWluZXJDYWNoZXNEaXJlY3RvcnkgPSByZXNvbHZlQW5kQ3Jl
YXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVuc2lvbihXZWJQcm9jZXNzUG9vbDo6
d2ViQ29udGVudENhY2hlc0RpcmVjdG9yeSgpKTsKICAgICBtX3Jlc29sdmVkUGF0aHMuY29udGFp
bmVyVGVtcG9yYXJ5RGlyZWN0b3J5ID0gcmVzb2x2ZUFuZENyZWF0ZVJlYWRXcml0ZURpcmVjdG9y
eUZvclNhbmRib3hFeHRlbnNpb24oV2ViUHJvY2Vzc1Bvb2w6OmNvbnRhaW5lclRlbXBvcmFyeURp
cmVjdG9yeSgpKTsKICNlbmRpZgotCi0jaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCi0g
ICAgLy8gU3RhcnQgb2JzZXJ2aW5nIHByZWZlcmVuY2UgY2hhbmdlcy4KLSAgICBbV0tQcmVmZXJl
bmNlT2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdOwotI2VuZGlmCiB9CiAKICNpZiBQTEFURk9STShJ
T1MpCkBAIC00NDIsMTAgKzQ0NywxMyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUlu
aXRpYWxpemVXCiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwLCBzaXplID0gc2VydmljZXMuc2l6
ZSgpOyBpIDwgc2l6ZTsgKytpKQogICAgICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRl
SGFuZGxlRm9yTWFjaExvb2t1cChzZXJ2aWNlc1tpXSwgV1RGOjpudWxsb3B0LCBwYXJhbWV0ZXJz
Lm1lZGlhRXh0ZW5zaW9uSGFuZGxlc1tpXSk7CiAgICAgfQotI2lmICFFTkFCTEUoQ0ZQUkVGU19E
SVJFQ1RfTU9ERSkKLSAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgcHJlZmVyZW5jZXNFeHRl
bnNpb25IYW5kbGU7Ci0gICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExv
b2t1cCgiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIsIFdURjo6bnVsbG9wdCwgcHJlZmVyZW5j
ZXNFeHRlbnNpb25IYW5kbGUpOwotICAgIHBhcmFtZXRlcnMucHJlZmVyZW5jZXNFeHRlbnNpb25I
YW5kbGUgPSBXVEZNb3ZlKHByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlKTsKKworI2lmIEVOQUJM
RShDRlBSRUZTX0RJUkVDVF9NT0RFKQorICAgIGlmIChfQVhTQXBwbGljYXRpb25BY2Nlc3NpYmls
aXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBwcmVmZXJl
bmNlc0V4dGVuc2lvbkhhbmRsZTsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFu
ZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIsIFdURjo6bnVsbG9w
dCwgcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGUpOworICAgICAgICBwYXJhbWV0ZXJzLnByZWZl
cmVuY2VzRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZShwcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRs
ZSk7CisgICAgfQogI2VuZGlmCiB9CiAKQEAgLTY0NywxNSArNjU1LDE3IEBAIHZvaWQgV2ViUHJv
Y2Vzc1Bvb2w6OnJlZ2lzdGVyTm90aWZpY2F0aW8KICNlbGlmICFQTEFURk9STShNQUNDQVRBTFlT
VCkKICAgICBDRk5vdGlmaWNhdGlvbkNlbnRlckFkZE9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2Vu
dGVyR2V0RGFyd2luTm90aWZ5Q2VudGVyKCksIHRoaXMsIGJhY2tsaWdodExldmVsRGlkQ2hhbmdl
Q2FsbGJhY2ssIHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihVSUJhY2tsaWdodExldmVsQ2hhbmdl
ZE5vdGlmaWNhdGlvbiksIG51bGxwdHIsIENGTm90aWZpY2F0aW9uU3VzcGVuc2lvbkJlaGF2aW9y
Q29hbGVzY2UpOwogI2lmIFBMQVRGT1JNKElPUykKLSAgICBtX2FjY2Vzc2liaWxpdHlFbmFibGVk
T2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2Vy
dmVyRm9yTmFtZTooX19icmlkZ2UgaWQpa0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVuYWJs
ZWROb3RpZmljYXRpb24gb2JqZWN0Om5pbCBxdWV1ZTpbTlNPcGVyYXRpb25RdWV1ZSBjdXJyZW50
UXVldWVdIHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqKSB7Ci0gICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbV9wcm9jZXNzZXMuc2l6ZSgpOyArK2kpCi0gICAgICAgICAgICBtX3By
b2Nlc3Nlc1tpXS0+dW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXJJZk5lZWRlZCgpOwotICAgIH1d
OwogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQogICAgIENGTm90aWZpY2F0aW9uQ2VudGVy
QWRkT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwg
dGhpcywgcmVtb3RlV2ViSW5zcGVjdG9yRW5hYmxlZENhbGxiYWNrLCBzdGF0aWNfY2FzdDxDRlN0
cmluZ1JlZj4oQ0ZTVFIoV0lSU2VydmljZUVuYWJsZWROb3RpZmljYXRpb24pKSwgbnVsbHB0ciwg
Q0ZOb3RpZmljYXRpb25TdXNwZW5zaW9uQmVoYXZpb3JDb2FsZXNjZSk7CiAjZW5kaWYKICNlbmRp
ZiAvLyBQTEFURk9STShJT1MpCiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPU19GQU1JTFkpCisgICAg
bV9hY2Nlc3NpYmlsaXR5RW5hYmxlZE9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBk
ZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6KF9fYnJpZGdlIGlkKWtBWFNBcHBsaWNh
dGlvbkFjY2Vzc2liaWxpdHlFbmFibGVkTm90aWZpY2F0aW9uIG9iamVjdDpuaWwgcXVldWU6W05T
T3BlcmF0aW9uUXVldWUgY3VycmVudFF1ZXVlXSB1c2luZ0Jsb2NrOl4oTlNOb3RpZmljYXRpb24g
KikgeworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fcHJvY2Vzc2VzLnNpemUoKTsg
KytpKSB7CisgICAgICAgICAgICBtX3Byb2Nlc3Nlc1tpXS0+dW5ibG9ja1ByZWZlcmVuY2VTZXJ2
aWNlSWZOZWVkZWQoKTsKKyAgICAgICAgICAgIG1fcHJvY2Vzc2VzW2ldLT51bmJsb2NrQWNjZXNz
aWJpbGl0eVNlcnZlcklmTmVlZGVkKCk7CisgICAgICAgIH0KKyAgICB9XTsKIH0KIAogdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVycygpCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlD
b2NvYS5tbQkocmV2aXNpb24gMjU3ODc0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTIyNSw0ICsyMjUs
NDMgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmVuYWJsZVJlbW90ZUluc3BlYwogICAgICAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpFbmFibGVSZW1vdGVXZWJJbnNwZWN0b3IoaGFuZGxl
KSwgMCk7CiB9CiAjZW5kaWYKKwordm9pZCBXZWJQcm9jZXNzUHJveHk6OnVuYmxvY2tBY2Nlc3Np
YmlsaXR5U2VydmVySWZOZWVkZWQoKQoreworICAgIGlmIChtX2hhc1NlbnRNZXNzYWdlVG9VbmJs
b2NrQWNjZXNzaWJpbGl0eVNlcnZlcikKKyAgICAgICAgcmV0dXJuOworICAgIGlmICghX0FYU0Fw
cGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGlm
ICghcHJvY2Vzc0lkZW50aWZpZXIoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICghY2FuU2Vu
ZE1lc3NhZ2UoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlIGhhbmRsZTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlmICghU2FuZGJveEV4
dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmlwaG9uZS5heHNl
cnZlci1zeXN0ZW13aWRlIiwgY29ubmVjdGlvbigpID8gY29ubmVjdGlvbigpLT5nZXRBdWRpdFRv
a2VuKCkgOiBXVEY6Om51bGxvcHQsIGhhbmRsZSkpCisgICAgICAgIHJldHVybjsKKyNlbmRpZgor
CisgICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6VW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2
ZXIoaGFuZGxlKSwgMCk7CisgICAgbV9oYXNTZW50TWVzc2FnZVRvVW5ibG9ja0FjY2Vzc2liaWxp
dHlTZXJ2ZXIgPSB0cnVlOworfQorCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6dW5ibG9ja1ByZWZl
cmVuY2VTZXJ2aWNlSWZOZWVkZWQoKQoreworICAgIGlmIChtX2hhc1NlbnRNZXNzYWdlVG9VbmJs
b2NrUHJlZmVyZW5jZVNlcnZpY2UpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoIXByb2Nlc3NJ
ZGVudGlmaWVyKCkpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoIWNhblNlbmRNZXNzYWdlKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGU7
CisgICAgaWYgKCFTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJj
b20uYXBwbGUuY2ZwcmVmc2QuZGFlbW9uIiwgY29ubmVjdGlvbigpID8gY29ubmVjdGlvbigpLT5n
ZXRBdWRpdFRva2VuKCkgOiBXVEY6Om51bGxvcHQsIGhhbmRsZSkpCisgICAgICAgIHJldHVybjsK
KworICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlVuYmxvY2tQcmVmZXJlbmNlU2Vydmlj
ZShoYW5kbGUpLCAwKTsKKyAgICBtX2hhc1NlbnRNZXNzYWdlVG9VbmJsb2NrUHJlZmVyZW5jZVNl
cnZpY2UgPSB0cnVlOworfQorCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V2ViUHJvY2Vzc1Byb3h5SU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW0JKHJldmlzaW9uIDI1Nzg3NCkKKysrIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTQzLDI1ICs0Myw2IEBAIGJvb2wgV2ViUHJvY2Vzc1Byb3h5OjpmdWxsS2V5Ym9hcmRB
Y2Nlc3MKICNlbmRpZgogfQogCi12b2lkIFdlYlByb2Nlc3NQcm94eTo6dW5ibG9ja0FjY2Vzc2li
aWxpdHlTZXJ2ZXJJZk5lZWRlZCgpCi17Ci0gICAgaWYgKG1faGFzU2VudE1lc3NhZ2VUb1VuYmxv
Y2tBY2Nlc3NpYmlsaXR5U2VydmVyKQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFfQVhTQXBw
bGljYXRpb25BY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAgICAgICByZXR1cm47Ci0gICAgaWYg
KCFwcm9jZXNzSWRlbnRpZmllcigpKQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFjYW5TZW5k
TWVzc2FnZSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUgaGFuZGxlOwotICAgIGlmICghU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFj
aExvb2t1cCgiY29tLmFwcGxlLmlwaG9uZS5heHNlcnZlci1zeXN0ZW13aWRlIiwgY29ubmVjdGlv
bigpID8gY29ubmVjdGlvbigpLT5nZXRBdWRpdFRva2VuKCkgOiBXVEY6Om51bGxvcHQsIGhhbmRs
ZSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlVu
YmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVyKGhhbmRsZSksIDApOwotICAgIG1faGFzU2VudE1lc3Nh
Z2VUb1VuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVyID0gdHJ1ZTsKLX0KLQogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpJbmRleDogU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMjU3ODc0KQorKysgU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
OTc0LDE0ICsxOTc0LDYgQEAgdm9pZCBXZWJQcm9jZXNzOjpjbGVhckN1cnJlbnRNb2RpZmllclN0
YQogICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6c2V0Q3VycmVudE1vZGlmaWVyU3RhdGUoeyB9
KTsKIH0KIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi12b2lkIFdlYlByb2Nlc3M6OnVuYmxv
Y2tBY2Nlc3NpYmlsaXR5U2VydmVyKGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYgaGFu
ZGxlKQotewotICAgIGJvb2wgb2sgPSBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50
bHkoaGFuZGxlKTsKLSAgICBBU1NFUlRfVU5VU0VEKG9rLCBvayk7Ci19Ci0jZW5kaWYKLQogYm9v
bCBXZWJQcm9jZXNzOjphcmVBbGxQYWdlc1Rocm90dGxlYWJsZSgpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIFdURjo6YWxsT2YobV9wYWdlTWFwLnZhbHVlcygpLCBbXShhdXRvJiBwYWdlKSB7CkluZGV4
OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgJKHJldmlzaW9uIDI1Nzg3NCkKKysr
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI5OSw4ICsyOTksNiBAQCBwdWJsaWM6CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAg
IHZvaWQgYWNjZXNzaWJpbGl0eVByb2Nlc3NTdXNwZW5kZWROb3RpZmljYXRpb24oYm9vbCk7Ci0g
ICAgCi0gICAgdm9pZCB1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcihjb25zdCBTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGUmKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
IVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQpAQCAtMzEzLDYgKzMxMSw4IEBAIHB1YmxpYzoKICAgICB2
b2lkIGVuYWJsZVJlbW90ZVdlYkluc3BlY3Rvcihjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUmKTsKICNlbmRpZgogICAgIHZvaWQgbm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKGNvbnN0IFN0
cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgT3B0aW9uYWw8U3RyaW5nPiYg
ZW5jb2RlZFZhbHVlKTsKKyAgICB2b2lkIHVuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVyKGNvbnN0
IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYpOworICAgIHZvaWQgdW5ibG9ja1ByZWZlcmVuY2VT
ZXJ2aWNlKGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYpOwogI2VuZGlmCiAKICAgICBi
b29sIGFyZUFsbFBhZ2VzVGhyb3R0bGVhYmxlKCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjU3ODc0
KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4JKHdv
cmtpbmcgY29weSkKQEAgLTE1NCwxMCArMTU0LDYgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBM
ZWdhY3lSZWNlaXZlciBObwogICAgIFNldEJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSh1bnNpZ25l
ZCBjYXBhY2l0eSk7CiAgICAgQ2xlYXJDYWNoZWRQYWdlKHN0cnVjdCBXZWJDb3JlOjpCYWNrRm9y
d2FyZEl0ZW1JZGVudGlmaWVyIGJhY2tGb3J3YXJkSXRlbUlEKSAtPiAoKSBBc3luYwogCi0jaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBVbmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcihXZWJL
aXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGUpCi0jZW5kaWYKLQogI2lmIFBMQVRG
T1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgIFNlbmRNZXNzYWdlVG9XZWJFeHRlbnNpb24o
c3RydWN0IFdlYktpdDo6VXNlck1lc3NhZ2UgdXNlck1lc3NhZ2UpCiAjZW5kaWYKQEAgLTE3NCw1
ICsxNzAsNyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIE5vCiAKICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICBOb3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoU3RyaW5nIGRv
bWFpbiwgU3RyaW5nIGtleSwgT3B0aW9uYWw8U3RyaW5nPiBlbmNvZGVkVmFsdWUpCisgICAgVW5i
bG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUg
aGFuZGxlKQorICAgIFVuYmxvY2tQcmVmZXJlbmNlU2VydmljZShXZWJLaXQ6OlNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSBoYW5kbGUpCiAjZW5kaWYKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4JKHJldmlzaW9uIDI1
Nzg3OSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5z
Yi5pbgkod29ya2luZyBjb3B5KQpAQCAtNjQzLDcgKzY0Myw5IEBACiAgICAgKHdpdGggcmVwb3J0
KSAod2l0aCB0ZWxlbWV0cnkpCiAjZW5kaWYKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5Q
b3dlck1hbmFnZW1lbnQuY29udHJvbCIpCisjaWYgIUVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RF
KQogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIpCisjZW5kaWYK
ICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5jb3Jlc2VydmljZXMubGF1bmNoc2VydmljZXNk
IikKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5sc2QubWFwZGIiKQogICAgIChnbG9iYWwt
bmFtZSAiY29tLmFwcGxlLnRjY2QiKQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1dlYlByb2Nlc3NDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCShyZXZpc2lvbiAyNTc4NzUpCisrKyBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0yODgsMTEgKzI4OCwxMyBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlh
bGl6ZVdlYlByCiAgICAgLy8gRklYTUUoMjA3NzE2KTogVGhlIGZvbGxvd2luZyBzaG91bGQgYmUg
cmVtb3ZlZCB3aGVuIHRoZSBHUFUgcHJvY2VzcyBpcyBjb21wbGV0ZS4KICAgICBmb3IgKHNpemVf
dCBpID0gMCwgc2l6ZSA9IHBhcmFtZXRlcnMubWVkaWFFeHRlbnNpb25IYW5kbGVzLnNpemUoKTsg
aSA8IHNpemU7ICsraSkKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVu
dGx5KHBhcmFtZXRlcnMubWVkaWFFeHRlbnNpb25IYW5kbGVzW2ldKTsKKyNlbmRpZgogCi0jaWYg
IUVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQotICAgIGlmIChwYXJhbWV0ZXJzLnByZWZlcmVu
Y2VzRXh0ZW5zaW9uSGFuZGxlKQorI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQorICAg
IGlmIChwYXJhbWV0ZXJzLnByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlKSB7CiAgICAgICAgIFNh
bmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseSgqcGFyYW1ldGVycy5wcmVmZXJlbmNl
c0V4dGVuc2lvbkhhbmRsZSk7Ci0jZW5kaWYKKyAgICAgICAgX0NGUHJlZnNTZXREaXJlY3RNb2Rl
RW5hYmxlZChmYWxzZSk7CisgICAgfQogI2VuZGlmCiB9CiAKQEAgLTU3Miw4ICs1NzQsNiBAQCB2
b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVByb2NlCiAgICAgZWxzZQogICAgICAg
ICBtX3Byb2Nlc3NUeXBlID0gUHJvY2Vzc1R5cGU6OldlYkNvbnRlbnQ7CiAKLSAgICByZWdpc3Rl
cldpdGhBY2Nlc3NpYmlsaXR5KCk7Ci0KICNpZiBVU0UoT1NfU1RBVEUpCiAgICAgcmVnaXN0ZXJX
aXRoU3RhdGVEdW1wZXIoKTsKICNlbmRpZgpAQCAtOTQ1LDYgKzk0NSw3IEBAIHZvaWQgV2ViUHJv
Y2Vzczo6c2V0TWVkaWFNSU1FVHlwZXMoY29uc3QKICAgICAgICAgY2FjaGUuYWRkU3VwcG9ydGVk
VHlwZXModHlwZXMpOwogfQogCisjaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCiB2b2lk
IFdlYlByb2Nlc3M6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChjb25zdCBTdHJpbmcmIGRvbWFp
biwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IE9wdGlvbmFsPFN0cmluZz4mIGVuY29kZWRWYWx1
ZSkKIHsKICAgICBhdXRvIGRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFsbG9j
XSBpbml0V2l0aFN1aXRlTmFtZTpkb21haW5dKTsKQEAgLTk2Myw2ICs5NjQsMTQgQEAgdm9pZCBX
ZWJQcm9jZXNzOjpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZQogICAgIFtkZWZhdWx0cyBzZXRPYmpl
Y3Q6b2JqZWN0LmdldCgpIGZvcktleTprZXldOwogfQogCit2b2lkIFdlYlByb2Nlc3M6OnVuYmxv
Y2tQcmVmZXJlbmNlU2VydmljZShjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIGhhbmRs
ZSkKK3sKKyAgICBib29sIG9rID0gU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5
KGhhbmRsZSk7CisgICAgQVNTRVJUX1VOVVNFRChvaywgb2spOworICAgIF9DRlByZWZzU2V0RGly
ZWN0TW9kZUVuYWJsZWQoZmFsc2UpOworfQorI2VuZGlmCisKICNpZiBQTEFURk9STShJT1MpCiB2
b2lkIFdlYlByb2Nlc3M6OmdyYW50QWNjZXNzVG9Bc3NldFNlcnZpY2VzKFdlYktpdDo6U2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlJiYgbW9iaWxlQXNzZXRIYW5kbGUsICBXZWJLaXQ6OlNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSYmIG1vYmlsZUFzc2V0VjJIYW5kbGUpCiB7CkBAIC0xMDA4LDYgKzEw
MTcsMTcgQEAgdm9pZCBXZWJQcm9jZXNzOjp1cGRhdGVQYWdlU2NyZWVuUHJvcGVydAogfQogI2Vu
ZGlmCiAKK3ZvaWQgV2ViUHJvY2Vzczo6dW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIoY29uc3Qg
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBoYW5kbGUpCit7CisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyAgICBib29sIG9rID0gU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5
KGhhbmRsZSk7CisgICAgQVNTRVJUX1VOVVNFRChvaywgb2spOworI2VuZGlmCisgICAgCisgICAg
cmVnaXN0ZXJXaXRoQWNjZXNzaWJpbGl0eSgpOworfQorCisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAogCiAjdW5kZWYgUkVMRUFTRV9MT0dfU0VTU0lPTl9JRApJbmRleDogVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9pb3MvQWNjZXNzaWJpbGl0eVRlc3RzSU9TLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0FjY2Vzc2liaWxpdHlUZXN0c0lPUy5tbQkocmV2
aXNpb24gMjU3ODc0KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvQWNjZXNzaWJp
bGl0eVRlc3RzSU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNDYsOCArMTQ2LDE0IEBAIFRFU1Qo
QWNjZXNzaWJpbGl0eVRlc3RzLCBTdG9yZVNlbGVjdGlvbikKICNlbmRpZgogfQogCitleHRlcm4g
dm9pZCBfQVhTWm9vbVRvdWNoU2V0RW5hYmxlZChCb29sZWFuIGVuYWJsZWQpOworZXh0ZXJuIHZv
aWQgX0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eVNldEVuYWJsZWQoQm9vbGVhbiBlbmFibGVk
KTsKKwogVEVTVChBY2Nlc3NpYmlsaXR5VGVzdHMsIFdlYlByb2Nlc3NMb2FkZXJCdW5kbGVMb2Fk
ZWQpCiB7CisgICAgX0FYU1pvb21Ub3VjaFNldEVuYWJsZWQodHJ1ZSk7CisgICAgX0FYU0FwcGxp
Y2F0aW9uQWNjZXNzaWJpbGl0eVNldEVuYWJsZWQodHJ1ZSk7CisKICAgICBXS1dlYlZpZXdDb25m
aWd1cmF0aW9uICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3Rf
Y29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiQWNjZXNzaWJpbGl0eVRlc3RQ
bHVnaW4iXTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKSBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb25dKTsKICAgICBfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UgKmludGVyZmFj
ZSA9IFtfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UgcmVtb3RlT2JqZWN0SW50ZXJmYWNlV2l0aFBy
b3RvY29sOkBwcm90b2NvbChBY2Nlc3NpYmlsaXR5VGVzdFN1cHBvcnRQcm90b2NvbCldOwpAQCAt
MTcxLDYgKzE3Nyw5IEBAICAgICBpZCA8QWNjZXNzaWJpbGl0eVRlc3RTdXBwb3J0UHJvdG9jb2wK
ICAgICAgICAgaXNEb25lID0gdHJ1ZTsKICAgICB9XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmlzRG9uZSk7CisKKyAgICBfQVhTWm9vbVRvdWNoU2V0RW5hYmxlZChmYWxzZSk7Cisg
ICAgX0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eVNldEVuYWJsZWQoZmFsc2UpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392748</attachid>
            <date>2020-03-06 11:29:41 -0800</date>
            <delta_ts>2020-03-06 12:10:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208690-20200306112940.patch</filename>
            <type>text/plain</type>
            <size>25409</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAzLTA1ICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFJlLWVuYWJsZSBDRlByZWZzIGRp
cmVjdCBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDg2OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZS5oOgorCiAyMDIwLTAzLTA0ICBQZXIgQXJuZSBWb2xsYW4g
IDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIEFkZCBlbmFibGUgZmxhZyB0
byBkaXNhYmxlIGRpcmVjdCBtb2RlIGZvciBwcmVmZXJlbmNlcwpJbmRleDogU291cmNlL1dURi93
dGYvUGxhdGZvcm1FbmFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUVuYWJsZS5oCShyZXZpc2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVu
YWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04NzIsNCArODcyLDQgQEAKICNlcnJvciAiRU5BQkxF
KFdFQkdMMikgcmVxdWlyZXMgRU5BQkxFKFdFQkdMKSIKICNlbmRpZgogCi0jZGVmaW5lIEVOQUJM
RV9DRlBSRUZTX0RJUkVDVF9NT0RFIDAKKyNkZWZpbmUgRU5BQkxFX0NGUFJFRlNfRElSRUNUX01P
REUgMQpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1Nzk2NSkKKysrIFNvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDcgQEAKKzIwMjAtMDMtMDUgIFBlciBB
cm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUmUtZW5h
YmxlIENGUHJlZnMgZGlyZWN0IG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwODY5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxl
LldlYktpdC5XZWJDb250ZW50LnNiOgorICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0
aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW06CisgICAgICAgIChXZWJLaXQ6
OlhQQ1NlcnZpY2VFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpYUENTZXJ2aWNlTWFp
bik6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5tbToKKyAgICAgICAg
KHJlZ2lzdGVyRGVmYXVsdHNPdmVycmlkZSk6CisgICAgICAgICgtW1dLVXNlckRlZmF1bHRzIF9u
b3RpZnlPYnNlcnZlcnNPZkNoYW5nZUZyb21WYWx1ZXNGb3JLZXlzOnRvVmFsdWVzRm9yS2V5czpd
KToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlT2JzZXJ2ZXIgaW5pdF0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OnBsYXRmb3JtUmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4dGVuc2lvbnMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpyZWdpc3Rlck5vdGlmaWNh
dGlvbk9ic2VydmVycyk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94
eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnVuYmxvY2tBY2Nl
c3NpYmlsaXR5U2VydmVySWZOZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHk6OnVuYmxvY2tQcmVmZXJlbmNlU2VydmljZUlmTmVlZGVkKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hp
bmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5Ojp1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjp1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcik6IERlbGV0ZWQuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxp
emVXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0
aWFsaXplUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVuYmxvY2tQcmVm
ZXJlbmNlU2VydmljZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVuYmxvY2tBY2Nl
c3NpYmlsaXR5U2VydmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9j
ZXNzLnNiLmluOgorCiAyMDIwLTAzLTA1ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KIAogICAgICAgICBQcmUtZmV0Y2ggZmlyc3QgcGFnZSBpbiBuZXcgUERGIGxvYWRpbmcgbW9k
ZWwuCkluZGV4OiBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2Nv
bS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVu
dC5zYgkocmV2aXNpb24gMjU3ODc5KQorKysgU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJv
eFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IJKHdvcmtpbmcgY29w
eSkKQEAgLTUzNiw3ICs1MzYsNiBAQAogKGFsbG93IG1hY2gtbG9va3VwCiAgICAgKGdsb2JhbC1u
YW1lICJjb20uYXBwbGUubG9nZCIpCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUubG9nZC5l
dmVudHMiKQotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIpCiAp
CiAKIChkZW55IG1hY2gtbG9va3VwICh3aXRoIHRlbGVtZXRyeSkKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCShy
ZXZpc2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg1LDcgKzE4NSw3IEBAIHZvaWQg
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2QKICNpZiBQTEFURk9STShDT0NPQSkK
ICAgICAvLyBGSVhNRSgyMDc3MTYpOiBUaGUgZm9sbG93aW5nIHNob3VsZCBiZSByZW1vdmVkIHdo
ZW4gdGhlIEdQVSBwcm9jZXNzIGlzIGNvbXBsZXRlLgogICAgIGVuY29kZXIgPDwgbWVkaWFFeHRl
bnNpb25IYW5kbGVzOwotI2lmICFFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKKyNpZiBFTkFC
TEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKICAgICBlbmNvZGVyIDw8IHByZWZlcmVuY2VzRXh0ZW5z
aW9uSGFuZGxlOwogI2VuZGlmCiAjZW5kaWYKQEAgLTUwNCw3ICs1MDQsNyBAQCBib29sIFdlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kCiAgICAgcGFyYW1ldGVycy5tZWRpYUV4dGVu
c2lvbkhhbmRsZXMgPSBXVEZNb3ZlKCptZWRpYUV4dGVuc2lvbkhhbmRsZXMpOwogICAgIC8vIEZJ
WE1FKDIwNzcxNik6IEVuZCByZWdpb24gdG8gcmVtb3ZlLgogCi0jaWYgIUVOQUJMRShDRlBSRUZT
X0RJUkVDVF9NT0RFKQorI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQogICAgIE9wdGlv
bmFsPE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4+IHByZWZlcmVuY2VzRXh0ZW5z
aW9uSGFuZGxlOwogICAgIGRlY29kZXIgPj4gcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGU7CiAg
ICAgaWYgKCFwcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9u
IDI1Nzg3NSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjI2LDcgKzIyNiw3IEBAIHN0cnVjdCBXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZUFycmF5IG1lZGlhRXh0ZW5zaW9uSGFuZGxlczsgLy8gRklYTUUo
MjA3NzE2KTogUmVtb3ZlIHdoZW4gR1BVIHByb2Nlc3MgaXMgY29tcGxldGUuCi0jaWYgIUVOQUJM
RShDRlBSRUZTX0RJUkVDVF9NT0RFKQorI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQog
ICAgIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gcHJlZmVyZW5jZXNFeHRlbnNp
b25IYW5kbGU7CiAjZW5kaWYKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgJKHJldmlzaW9uIDI1Nzg3NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzA1LDYgKzE3MDUsMTAgQEAgcHVi
bGljOgogICAgIHZvaWQgcmV2b2tlQWNjZXNzVG9Bc3NldFNlcnZpY2VzKCk7CiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgZ3JhbnRBY2Nlc3NUb1ByZWZlcmVuY2VTZXJ2
aWNlKCk7CisjZW5kaWYKKwogICAgIHZvaWQgc2V0SXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFp
blRlc3RpbmcoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogcHJpdmF0ZToK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkocmV2aXNpb24g
MjU3ODc0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkod29y
a2luZyBjb3B5KQpAQCAtNzA0LDcgKzcwNCw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVf
cHRyPFBlckFjdGl2aXR5U3RhdGVDUFVVc2FnZVNhbXBsZXI+IG1fcGVyQWN0aXZpdHlTdGF0ZUNQ
VVVzYWdlU2FtcGxlcjsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpZiBQ
TEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fYWNjZXNzaWJpbGl0eUVu
YWJsZWRPYnNlcnZlcjsKICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAJKHJldmlzaW9uIDI1Nzg3NCkKKysrIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkyMyw3ICs5
MjMsOSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nCiAgICAgICAg
IGlmICh4cGNfY29ubmVjdGlvbl90IHhwY0Nvbm5lY3Rpb24gPSBjb25uZWN0aW9uKCktPnhwY0Nv
bm5lY3Rpb24oKSkKICAgICAgICAgICAgIG1fdGhyb3R0bGVyLmRpZENvbm5lY3RUb1Byb2Nlc3Mo
eHBjX2Nvbm5lY3Rpb25fZ2V0X3BpZCh4cGNDb25uZWN0aW9uKSk7CiAgICAgfQorI2VuZGlmCiAK
KyNpZiBQTEFURk9STShDT0NPQSkKICAgICB1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcklmTmVl
ZGVkKCk7CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmgJKHJldmlzaW9uIDI1Nzg3NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMzMsOCArMzMzLDkgQEAgcHVibGlj
OgogICAgIHZvaWQgZW5hYmxlUmVtb3RlSW5zcGVjdG9ySWZOZWVkZWQoKTsKICNlbmRpZgogICAg
IAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9p
ZCB1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKCk7CisgICAgdm9pZCB1bmJsb2Nr
UHJlZmVyZW5jZVNlcnZpY2VJZk5lZWRlZCgpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQpAQCAtNTI4LDEwICs1MjksMTQgQEAgcHJpdmF0ZToKICAgICBGb3JlZ3JvdW5kV2Vi
UHJvY2Vzc1Rva2VuIG1fZm9yZWdyb3VuZFRva2VuOwogICAgIEJhY2tncm91bmRXZWJQcm9jZXNz
VG9rZW4gbV9iYWNrZ3JvdW5kVG9rZW47CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBi
b29sIG1faGFzU2VudE1lc3NhZ2VUb1VuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVyIHsgZmFsc2Ug
fTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6RGVmZXJyYWJsZU9uZVNob3RUaW1lcj4g
bV91bmV4cGVjdGVkQWN0aXZpdHlUaW1lcjsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0Ep
CisgICAgYm9vbCBtX2hhc1NlbnRNZXNzYWdlVG9VbmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlciB7
IGZhbHNlIH07CisgICAgYm9vbCBtX2hhc1NlbnRNZXNzYWdlVG9VbmJsb2NrUHJlZmVyZW5jZVNl
cnZpY2UgeyBmYWxzZSB9OworI2VuZGlmCisKICAgICBIYXNoTWFwPFN0cmluZywgdWludDY0X3Q+
IG1fcGFnZVVSTFJldGFpbkNvdW50TWFwOwogCiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4+IG1fcmVnaXN0cmFibGVEb21haW47CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0JKHJldmlzaW9uIDI1Nzg3NCkKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTI4OTksNiArMjg5OSwxMiBAQCAtIChDR0Zsb2F0KV9taW5pbXVtRWZmZWN0aXZl
RGV2aWNlV2lkdGgKICNlbmRpZgogfQogCistICh2b2lkKV9ncmFudEFjY2Vzc1RvUHJlZmVyZW5j
ZVNlcnZpY2UKK3sKKyAgICBpZiAoX3BhZ2UpCisgICAgICAgIF9wYWdlLT5ncmFudEFjY2Vzc1Rv
UHJlZmVyZW5jZVNlcnZpY2UoKTsKK30KKwogI3ByYWdtYSBtYXJrIC0gc2Nyb2xsUGVyZm9ybWFu
Y2VEYXRhCiAKIC0gKHZvaWQpX3NldFNjcm9sbFBlcmZvcm1hbmNlRGF0YUNvbGxlY3Rpb25FbmFi
bGVkOihCT09MKWVuYWJsZWQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAkocmV2aXNpb24gMjU3ODc0KQorKysgU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzM5LDYgKzMzOSw4IEBAIGZvciB0aGlzIHByb3BlcnR5LgogCiAtICh2b2lk
KV9zZXRJc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluOihCT09MKWlzTmF2aWdhdGluZ1RvQXBw
Qm91bmREb21haW4gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25I
YW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CiAKKy0gKHZvaWQpX2dyYW50QWNjZXNzVG9QcmVmZXJlbmNlU2VydmljZSBXS19BUElfQVZB
SUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CisKIEBlbmQKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNl
T2JzZXJ2ZXIubW0JKHJldmlzaW9uIDI1Nzg3NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsMTAgKzI4
LDI1IEBACiAKICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgiCiAKKyNpbXBvcnQgPHd0Zi9PYmpD
UnVudGltZUV4dHJhcy5oPgorCitzdGF0aWMgSU1QIHJlZ2lzdGVyRGVmYXVsdHNPcmlnaW5hbCA9
IG5pbDsKK3N0YXRpYyBib29sIHJlZ2lzdGVyaW5nRGVmYXVsdHMgPSBmYWxzZTsKKworc3RhdGlj
IHZvaWQgcmVnaXN0ZXJEZWZhdWx0c092ZXJyaWRlKGlkIHNlbGYsIFNFTCBzZWxlY3RvciwgTlNE
aWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqZGljdGlvbmFyeSkKK3sKKyAgICByZWdpc3Rlcmlu
Z0RlZmF1bHRzID0gdHJ1ZTsKKyAgICB3dGZDYWxsSU1QPHZvaWQ+KHJlZ2lzdGVyRGVmYXVsdHNP
cmlnaW5hbCwgc2VsZiwgc2VsZWN0b3IsIGRpY3Rpb25hcnkpOworICAgIHJlZ2lzdGVyaW5nRGVm
YXVsdHMgPSBmYWxzZTsKK30KKwogQGltcGxlbWVudGF0aW9uIFdLVXNlckRlZmF1bHRzCiAKIC0g
KHZvaWQpX25vdGlmeU9ic2VydmVyc09mQ2hhbmdlRnJvbVZhbHVlc0ZvcktleXM6KE5TRGljdGlv
bmFyeTxOU1N0cmluZyAqLCBpZD4gKilvbGRWYWx1ZXMgdG9WYWx1ZXNGb3JLZXlzOihOU0RpY3Rp
b25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopbmV3VmFsdWVzCiB7CisgICAgaWYgKHJlZ2lzdGVyaW5n
RGVmYXVsdHMpCisgICAgICAgIHJldHVybjsKKwogICAgIFtzdXBlciBfbm90aWZ5T2JzZXJ2ZXJz
T2ZDaGFuZ2VGcm9tVmFsdWVzRm9yS2V5czpvbGRWYWx1ZXMgdG9WYWx1ZXNGb3JLZXlzOm5ld1Zh
bHVlc107CiAKICAgICBpZiAoW29sZFZhbHVlcyBpc0VxdWFsVG9EaWN0aW9uYXJ5Om5ld1ZhbHVl
c10pCkBAIC04Nyw2ICsxMDIsOSBAQCArIChpZClzaGFyZWRJbnN0YW5jZQogCiAtIChpbnN0YW5j
ZXR5cGUpaW5pdAogeworICAgIE1ldGhvZCByZWdpc3RlckRlZmF1bHRzTWV0aG9kID0gY2xhc3Nf
Z2V0SW5zdGFuY2VNZXRob2Qob2JqY19nZXRDbGFzcygiTlNVc2VyRGVmYXVsdHMiKSwgQHNlbGVj
dG9yKHJlZ2lzdGVyRGVmYXVsdHM6KSk7CisgICAgcmVnaXN0ZXJEZWZhdWx0c09yaWdpbmFsID0g
bWV0aG9kX3NldEltcGxlbWVudGF0aW9uKHJlZ2lzdGVyRGVmYXVsdHNNZXRob2QsIChJTVApcmVn
aXN0ZXJEZWZhdWx0c092ZXJyaWRlKTsKKwogICAgIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxOU1N0
cmluZyo+IGRvbWFpbnMgPSB7CiAgICAgICAgIEAiY29tLmFwcGxlLkFjY2Vzc2liaWxpdHkiLAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQkocmV2aXNpb24gMjU3ODc0KQorKysg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0JKHdvcmtp
bmcgY29weSkKQEAgLTMxNCw0ICszMTQsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRl
Q29udGV4dEluR1BVCiB9CiAjZW5kaWYKIAordm9pZCBXZWJQYWdlUHJveHk6OmdyYW50QWNjZXNz
VG9QcmVmZXJlbmNlU2VydmljZSgpCit7CisgICAgcHJvY2VzcygpLnVuYmxvY2tQcmVmZXJlbmNl
U2VydmljZUlmTmVlZGVkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29h
Lm1tCShyZXZpc2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJQcm9jZXNzUG9vbENvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC05MCw2ICs5MCw5IEBAIFNP
RlRfTElOS19QUklWQVRFX0ZSQU1FV09SSyhXZWJDb250ZW50QW4KIFNPRlRfTElOS19DTEFTUyhX
ZWJDb250ZW50QW5hbHlzaXMsIFdlYkZpbHRlckV2YWx1YXRvcik7CiAjZW5kaWYKIAorZXh0ZXJu
ICJDIiBCb29sZWFuIF9BWFNBcHBsaWNhdGlvbkFjY2Vzc2liaWxpdHlFbmFibGVkKCk7CitleHRl
cm4gQ0ZTdHJpbmdSZWYga0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVuYWJsZWROb3RpZmlj
YXRpb247CisKICNpZiBQTEFURk9STShDT0NPQSkKICNpbXBvcnQgPFdlYkNvcmUvU3lzdGVtQmF0
dGVyeS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9ORUZpbHRlclNvdXJjZVNQSS5oPgpAQCAt
MTczLDYgKzE3NiwxMyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemUo
CiAgICAgICAgIGluc3RhbGxNZW1vcnlQcmVzc3VyZUhhbmRsZXIoKTsKIAogICAgIHNldExlZ2Fj
eUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudChtYWtlVW5pcXVlPExlZ2FjeUN1c3RvbVByb3Rv
Y29sTWFuYWdlckNsaWVudD4oKSk7CisKKyNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkK
KyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKFFPU19DTEFTU19C
QUNLR1JPVU5ELCAwKSwgXnsKKyAgICAgICAgLy8gU3RhcnQgb2JzZXJ2aW5nIHByZWZlcmVuY2Ug
Y2hhbmdlcy4KKyAgICAgICAgW1dLUHJlZmVyZW5jZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXTsK
KyAgICB9KTsKKyNlbmRpZgogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTE5Nywx
MSArMjA3LDYgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1SZXNvbHZlUGF0aAogICAg
IG1fcmVzb2x2ZWRQYXRocy5jb250YWluZXJDYWNoZXNEaXJlY3RvcnkgPSByZXNvbHZlQW5kQ3Jl
YXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVuc2lvbihXZWJQcm9jZXNzUG9vbDo6
d2ViQ29udGVudENhY2hlc0RpcmVjdG9yeSgpKTsKICAgICBtX3Jlc29sdmVkUGF0aHMuY29udGFp
bmVyVGVtcG9yYXJ5RGlyZWN0b3J5ID0gcmVzb2x2ZUFuZENyZWF0ZVJlYWRXcml0ZURpcmVjdG9y
eUZvclNhbmRib3hFeHRlbnNpb24oV2ViUHJvY2Vzc1Bvb2w6OmNvbnRhaW5lclRlbXBvcmFyeURp
cmVjdG9yeSgpKTsKICNlbmRpZgotCi0jaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCi0g
ICAgLy8gU3RhcnQgb2JzZXJ2aW5nIHByZWZlcmVuY2UgY2hhbmdlcy4KLSAgICBbV0tQcmVmZXJl
bmNlT2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdOwotI2VuZGlmCiB9CiAKICNpZiBQTEFURk9STShJ
T1MpCkBAIC00NDIsMTAgKzQ0NywxMyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUlu
aXRpYWxpemVXCiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwLCBzaXplID0gc2VydmljZXMuc2l6
ZSgpOyBpIDwgc2l6ZTsgKytpKQogICAgICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRl
SGFuZGxlRm9yTWFjaExvb2t1cChzZXJ2aWNlc1tpXSwgV1RGOjpudWxsb3B0LCBwYXJhbWV0ZXJz
Lm1lZGlhRXh0ZW5zaW9uSGFuZGxlc1tpXSk7CiAgICAgfQotI2lmICFFTkFCTEUoQ0ZQUkVGU19E
SVJFQ1RfTU9ERSkKLSAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgcHJlZmVyZW5jZXNFeHRl
bnNpb25IYW5kbGU7Ci0gICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExv
b2t1cCgiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIsIFdURjo6bnVsbG9wdCwgcHJlZmVyZW5j
ZXNFeHRlbnNpb25IYW5kbGUpOwotICAgIHBhcmFtZXRlcnMucHJlZmVyZW5jZXNFeHRlbnNpb25I
YW5kbGUgPSBXVEZNb3ZlKHByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlKTsKKworI2lmIEVOQUJM
RShDRlBSRUZTX0RJUkVDVF9NT0RFKQorICAgIGlmIChfQVhTQXBwbGljYXRpb25BY2Nlc3NpYmls
aXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBwcmVmZXJl
bmNlc0V4dGVuc2lvbkhhbmRsZTsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFu
ZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIsIFdURjo6bnVsbG9w
dCwgcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGUpOworICAgICAgICBwYXJhbWV0ZXJzLnByZWZl
cmVuY2VzRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZShwcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRs
ZSk7CisgICAgfQogI2VuZGlmCiB9CiAKQEAgLTY0NywxNSArNjU1LDE3IEBAIHZvaWQgV2ViUHJv
Y2Vzc1Bvb2w6OnJlZ2lzdGVyTm90aWZpY2F0aW8KICNlbGlmICFQTEFURk9STShNQUNDQVRBTFlT
VCkKICAgICBDRk5vdGlmaWNhdGlvbkNlbnRlckFkZE9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2Vu
dGVyR2V0RGFyd2luTm90aWZ5Q2VudGVyKCksIHRoaXMsIGJhY2tsaWdodExldmVsRGlkQ2hhbmdl
Q2FsbGJhY2ssIHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihVSUJhY2tsaWdodExldmVsQ2hhbmdl
ZE5vdGlmaWNhdGlvbiksIG51bGxwdHIsIENGTm90aWZpY2F0aW9uU3VzcGVuc2lvbkJlaGF2aW9y
Q29hbGVzY2UpOwogI2lmIFBMQVRGT1JNKElPUykKLSAgICBtX2FjY2Vzc2liaWxpdHlFbmFibGVk
T2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2Vy
dmVyRm9yTmFtZTooX19icmlkZ2UgaWQpa0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVuYWJs
ZWROb3RpZmljYXRpb24gb2JqZWN0Om5pbCBxdWV1ZTpbTlNPcGVyYXRpb25RdWV1ZSBjdXJyZW50
UXVldWVdIHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqKSB7Ci0gICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbV9wcm9jZXNzZXMuc2l6ZSgpOyArK2kpCi0gICAgICAgICAgICBtX3By
b2Nlc3Nlc1tpXS0+dW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXJJZk5lZWRlZCgpOwotICAgIH1d
OwogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQogICAgIENGTm90aWZpY2F0aW9uQ2VudGVy
QWRkT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwg
dGhpcywgcmVtb3RlV2ViSW5zcGVjdG9yRW5hYmxlZENhbGxiYWNrLCBzdGF0aWNfY2FzdDxDRlN0
cmluZ1JlZj4oQ0ZTVFIoV0lSU2VydmljZUVuYWJsZWROb3RpZmljYXRpb24pKSwgbnVsbHB0ciwg
Q0ZOb3RpZmljYXRpb25TdXNwZW5zaW9uQmVoYXZpb3JDb2FsZXNjZSk7CiAjZW5kaWYKICNlbmRp
ZiAvLyBQTEFURk9STShJT1MpCiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPU19GQU1JTFkpCisgICAg
bV9hY2Nlc3NpYmlsaXR5RW5hYmxlZE9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBk
ZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6KF9fYnJpZGdlIGlkKWtBWFNBcHBsaWNh
dGlvbkFjY2Vzc2liaWxpdHlFbmFibGVkTm90aWZpY2F0aW9uIG9iamVjdDpuaWwgcXVldWU6W05T
T3BlcmF0aW9uUXVldWUgY3VycmVudFF1ZXVlXSB1c2luZ0Jsb2NrOl4oTlNOb3RpZmljYXRpb24g
KikgeworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fcHJvY2Vzc2VzLnNpemUoKTsg
KytpKSB7CisgICAgICAgICAgICBtX3Byb2Nlc3Nlc1tpXS0+dW5ibG9ja1ByZWZlcmVuY2VTZXJ2
aWNlSWZOZWVkZWQoKTsKKyAgICAgICAgICAgIG1fcHJvY2Vzc2VzW2ldLT51bmJsb2NrQWNjZXNz
aWJpbGl0eVNlcnZlcklmTmVlZGVkKCk7CisgICAgICAgIH0KKyAgICB9XTsKIH0KIAogdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVycygpCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlD
b2NvYS5tbQkocmV2aXNpb24gMjU3ODc0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTIyNSw0ICsyMjUs
NDMgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmVuYWJsZVJlbW90ZUluc3BlYwogICAgICAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpFbmFibGVSZW1vdGVXZWJJbnNwZWN0b3IoaGFuZGxl
KSwgMCk7CiB9CiAjZW5kaWYKKwordm9pZCBXZWJQcm9jZXNzUHJveHk6OnVuYmxvY2tBY2Nlc3Np
YmlsaXR5U2VydmVySWZOZWVkZWQoKQoreworICAgIGlmIChtX2hhc1NlbnRNZXNzYWdlVG9VbmJs
b2NrQWNjZXNzaWJpbGl0eVNlcnZlcikKKyAgICAgICAgcmV0dXJuOworICAgIGlmICghX0FYU0Fw
cGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGlm
ICghcHJvY2Vzc0lkZW50aWZpZXIoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICghY2FuU2Vu
ZE1lc3NhZ2UoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlIGhhbmRsZTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlmICghU2FuZGJveEV4
dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmlwaG9uZS5heHNl
cnZlci1zeXN0ZW13aWRlIiwgY29ubmVjdGlvbigpID8gY29ubmVjdGlvbigpLT5nZXRBdWRpdFRv
a2VuKCkgOiBXVEY6Om51bGxvcHQsIGhhbmRsZSkpCisgICAgICAgIHJldHVybjsKKyNlbmRpZgor
CisgICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6VW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2
ZXIoaGFuZGxlKSwgMCk7CisgICAgbV9oYXNTZW50TWVzc2FnZVRvVW5ibG9ja0FjY2Vzc2liaWxp
dHlTZXJ2ZXIgPSB0cnVlOworfQorCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6dW5ibG9ja1ByZWZl
cmVuY2VTZXJ2aWNlSWZOZWVkZWQoKQoreworICAgIGlmIChtX2hhc1NlbnRNZXNzYWdlVG9VbmJs
b2NrUHJlZmVyZW5jZVNlcnZpY2UpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoIXByb2Nlc3NJ
ZGVudGlmaWVyKCkpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoIWNhblNlbmRNZXNzYWdlKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGU7
CisgICAgaWYgKCFTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJj
b20uYXBwbGUuY2ZwcmVmc2QuZGFlbW9uIiwgY29ubmVjdGlvbigpID8gY29ubmVjdGlvbigpLT5n
ZXRBdWRpdFRva2VuKCkgOiBXVEY6Om51bGxvcHQsIGhhbmRsZSkpCisgICAgICAgIHJldHVybjsK
KworICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlVuYmxvY2tQcmVmZXJlbmNlU2Vydmlj
ZShoYW5kbGUpLCAwKTsKKyAgICBtX2hhc1NlbnRNZXNzYWdlVG9VbmJsb2NrUHJlZmVyZW5jZVNl
cnZpY2UgPSB0cnVlOworfQorCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V2ViUHJvY2Vzc1Byb3h5SU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW0JKHJldmlzaW9uIDI1Nzg3NCkKKysrIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTQzLDI1ICs0Myw2IEBAIGJvb2wgV2ViUHJvY2Vzc1Byb3h5OjpmdWxsS2V5Ym9hcmRB
Y2Nlc3MKICNlbmRpZgogfQogCi12b2lkIFdlYlByb2Nlc3NQcm94eTo6dW5ibG9ja0FjY2Vzc2li
aWxpdHlTZXJ2ZXJJZk5lZWRlZCgpCi17Ci0gICAgaWYgKG1faGFzU2VudE1lc3NhZ2VUb1VuYmxv
Y2tBY2Nlc3NpYmlsaXR5U2VydmVyKQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFfQVhTQXBw
bGljYXRpb25BY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAgICAgICByZXR1cm47Ci0gICAgaWYg
KCFwcm9jZXNzSWRlbnRpZmllcigpKQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFjYW5TZW5k
TWVzc2FnZSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUgaGFuZGxlOwotICAgIGlmICghU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFj
aExvb2t1cCgiY29tLmFwcGxlLmlwaG9uZS5heHNlcnZlci1zeXN0ZW13aWRlIiwgY29ubmVjdGlv
bigpID8gY29ubmVjdGlvbigpLT5nZXRBdWRpdFRva2VuKCkgOiBXVEY6Om51bGxvcHQsIGhhbmRs
ZSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlVu
YmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVyKGhhbmRsZSksIDApOwotICAgIG1faGFzU2VudE1lc3Nh
Z2VUb1VuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVyID0gdHJ1ZTsKLX0KLQogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpJbmRleDogU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMjU3ODc0KQorKysgU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
OTc0LDE0ICsxOTc0LDYgQEAgdm9pZCBXZWJQcm9jZXNzOjpjbGVhckN1cnJlbnRNb2RpZmllclN0
YQogICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6c2V0Q3VycmVudE1vZGlmaWVyU3RhdGUoeyB9
KTsKIH0KIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi12b2lkIFdlYlByb2Nlc3M6OnVuYmxv
Y2tBY2Nlc3NpYmlsaXR5U2VydmVyKGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYgaGFu
ZGxlKQotewotICAgIGJvb2wgb2sgPSBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50
bHkoaGFuZGxlKTsKLSAgICBBU1NFUlRfVU5VU0VEKG9rLCBvayk7Ci19Ci0jZW5kaWYKLQogYm9v
bCBXZWJQcm9jZXNzOjphcmVBbGxQYWdlc1Rocm90dGxlYWJsZSgpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIFdURjo6YWxsT2YobV9wYWdlTWFwLnZhbHVlcygpLCBbXShhdXRvJiBwYWdlKSB7CkluZGV4
OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgJKHJldmlzaW9uIDI1Nzg3NCkKKysr
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI5OSw4ICsyOTksNiBAQCBwdWJsaWM6CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAg
IHZvaWQgYWNjZXNzaWJpbGl0eVByb2Nlc3NTdXNwZW5kZWROb3RpZmljYXRpb24oYm9vbCk7Ci0g
ICAgCi0gICAgdm9pZCB1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcihjb25zdCBTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGUmKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
IVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQpAQCAtMzEzLDYgKzMxMSw4IEBAIHB1YmxpYzoKICAgICB2
b2lkIGVuYWJsZVJlbW90ZVdlYkluc3BlY3Rvcihjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUmKTsKICNlbmRpZgogICAgIHZvaWQgbm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKGNvbnN0IFN0
cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgT3B0aW9uYWw8U3RyaW5nPiYg
ZW5jb2RlZFZhbHVlKTsKKyAgICB2b2lkIHVuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVyKGNvbnN0
IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYpOworICAgIHZvaWQgdW5ibG9ja1ByZWZlcmVuY2VT
ZXJ2aWNlKGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYpOwogI2VuZGlmCiAKICAgICBi
b29sIGFyZUFsbFBhZ2VzVGhyb3R0bGVhYmxlKCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjU3ODc0
KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4JKHdv
cmtpbmcgY29weSkKQEAgLTE1NCwxMCArMTU0LDYgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBM
ZWdhY3lSZWNlaXZlciBObwogICAgIFNldEJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSh1bnNpZ25l
ZCBjYXBhY2l0eSk7CiAgICAgQ2xlYXJDYWNoZWRQYWdlKHN0cnVjdCBXZWJDb3JlOjpCYWNrRm9y
d2FyZEl0ZW1JZGVudGlmaWVyIGJhY2tGb3J3YXJkSXRlbUlEKSAtPiAoKSBBc3luYwogCi0jaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBVbmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcihXZWJL
aXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGUpCi0jZW5kaWYKLQogI2lmIFBMQVRG
T1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgIFNlbmRNZXNzYWdlVG9XZWJFeHRlbnNpb24o
c3RydWN0IFdlYktpdDo6VXNlck1lc3NhZ2UgdXNlck1lc3NhZ2UpCiAjZW5kaWYKQEAgLTE3NCw1
ICsxNzAsNyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIE5vCiAKICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICBOb3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoU3RyaW5nIGRv
bWFpbiwgU3RyaW5nIGtleSwgT3B0aW9uYWw8U3RyaW5nPiBlbmNvZGVkVmFsdWUpCisgICAgVW5i
bG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUg
aGFuZGxlKQorICAgIFVuYmxvY2tQcmVmZXJlbmNlU2VydmljZShXZWJLaXQ6OlNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSBoYW5kbGUpCiAjZW5kaWYKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4JKHJldmlzaW9uIDI1
Nzg3OSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5z
Yi5pbgkod29ya2luZyBjb3B5KQpAQCAtNjQzLDcgKzY0Myw5IEBACiAgICAgKHdpdGggcmVwb3J0
KSAod2l0aCB0ZWxlbWV0cnkpCiAjZW5kaWYKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5Q
b3dlck1hbmFnZW1lbnQuY29udHJvbCIpCisjaWYgIUVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RF
KQogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIpCisjZW5kaWYK
ICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5jb3Jlc2VydmljZXMubGF1bmNoc2VydmljZXNk
IikKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5sc2QubWFwZGIiKQogICAgIChnbG9iYWwt
bmFtZSAiY29tLmFwcGxlLnRjY2QiKQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1dlYlByb2Nlc3NDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCShyZXZpc2lvbiAyNTc4NzUpCisrKyBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0yODgsMTEgKzI4OCwxMyBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlh
bGl6ZVdlYlByCiAgICAgLy8gRklYTUUoMjA3NzE2KTogVGhlIGZvbGxvd2luZyBzaG91bGQgYmUg
cmVtb3ZlZCB3aGVuIHRoZSBHUFUgcHJvY2VzcyBpcyBjb21wbGV0ZS4KICAgICBmb3IgKHNpemVf
dCBpID0gMCwgc2l6ZSA9IHBhcmFtZXRlcnMubWVkaWFFeHRlbnNpb25IYW5kbGVzLnNpemUoKTsg
aSA8IHNpemU7ICsraSkKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVu
dGx5KHBhcmFtZXRlcnMubWVkaWFFeHRlbnNpb25IYW5kbGVzW2ldKTsKKyNlbmRpZgogCi0jaWYg
IUVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQotICAgIGlmIChwYXJhbWV0ZXJzLnByZWZlcmVu
Y2VzRXh0ZW5zaW9uSGFuZGxlKQorI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQorICAg
IGlmIChwYXJhbWV0ZXJzLnByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlKSB7CiAgICAgICAgIFNh
bmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseSgqcGFyYW1ldGVycy5wcmVmZXJlbmNl
c0V4dGVuc2lvbkhhbmRsZSk7Ci0jZW5kaWYKKyAgICAgICAgX0NGUHJlZnNTZXREaXJlY3RNb2Rl
RW5hYmxlZChmYWxzZSk7CisgICAgfQogI2VuZGlmCiB9CiAKQEAgLTU3Miw4ICs1NzQsNiBAQCB2
b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVByb2NlCiAgICAgZWxzZQogICAgICAg
ICBtX3Byb2Nlc3NUeXBlID0gUHJvY2Vzc1R5cGU6OldlYkNvbnRlbnQ7CiAKLSAgICByZWdpc3Rl
cldpdGhBY2Nlc3NpYmlsaXR5KCk7Ci0KICNpZiBVU0UoT1NfU1RBVEUpCiAgICAgcmVnaXN0ZXJX
aXRoU3RhdGVEdW1wZXIoKTsKICNlbmRpZgpAQCAtOTQ1LDYgKzk0NSw3IEBAIHZvaWQgV2ViUHJv
Y2Vzczo6c2V0TWVkaWFNSU1FVHlwZXMoY29uc3QKICAgICAgICAgY2FjaGUuYWRkU3VwcG9ydGVk
VHlwZXModHlwZXMpOwogfQogCisjaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCiB2b2lk
IFdlYlByb2Nlc3M6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChjb25zdCBTdHJpbmcmIGRvbWFp
biwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IE9wdGlvbmFsPFN0cmluZz4mIGVuY29kZWRWYWx1
ZSkKIHsKICAgICBhdXRvIGRlZmF1bHRzID0gYWRvcHROUyhbW05TVXNlckRlZmF1bHRzIGFsbG9j
XSBpbml0V2l0aFN1aXRlTmFtZTpkb21haW5dKTsKQEAgLTk2Myw2ICs5NjQsMTQgQEAgdm9pZCBX
ZWJQcm9jZXNzOjpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZQogICAgIFtkZWZhdWx0cyBzZXRPYmpl
Y3Q6b2JqZWN0LmdldCgpIGZvcktleTprZXldOwogfQogCit2b2lkIFdlYlByb2Nlc3M6OnVuYmxv
Y2tQcmVmZXJlbmNlU2VydmljZShjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIGhhbmRs
ZSkKK3sKKyAgICBib29sIG9rID0gU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5
KGhhbmRsZSk7CisgICAgQVNTRVJUX1VOVVNFRChvaywgb2spOworICAgIF9DRlByZWZzU2V0RGly
ZWN0TW9kZUVuYWJsZWQoZmFsc2UpOworfQorI2VuZGlmCisKICNpZiBQTEFURk9STShJT1MpCiB2
b2lkIFdlYlByb2Nlc3M6OmdyYW50QWNjZXNzVG9Bc3NldFNlcnZpY2VzKFdlYktpdDo6U2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlJiYgbW9iaWxlQXNzZXRIYW5kbGUsICBXZWJLaXQ6OlNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSYmIG1vYmlsZUFzc2V0VjJIYW5kbGUpCiB7CkBAIC0xMDA4LDYgKzEw
MTcsMTcgQEAgdm9pZCBXZWJQcm9jZXNzOjp1cGRhdGVQYWdlU2NyZWVuUHJvcGVydAogfQogI2Vu
ZGlmCiAKK3ZvaWQgV2ViUHJvY2Vzczo6dW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIoY29uc3Qg
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBoYW5kbGUpCit7CisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyAgICBib29sIG9rID0gU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5
KGhhbmRsZSk7CisgICAgQVNTRVJUX1VOVVNFRChvaywgb2spOworI2VuZGlmCisgICAgCisgICAg
cmVnaXN0ZXJXaXRoQWNjZXNzaWJpbGl0eSgpOworfQorCisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAogCiAjdW5kZWYgUkVMRUFTRV9MT0dfU0VTU0lPTl9JRApJbmRleDogVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9pb3MvQWNjZXNzaWJpbGl0eVRlc3RzSU9TLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0FjY2Vzc2liaWxpdHlUZXN0c0lPUy5tbQkocmV2
aXNpb24gMjU3ODc0KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvQWNjZXNzaWJp
bGl0eVRlc3RzSU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw5IEBACiAjaW1wb3J0
IDxXZWJLaXQvX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dL
UmVtb3RlT2JqZWN0UmVnaXN0cnkuaD4KIAorZXh0ZXJuIHZvaWQgX0FYU1pvb21Ub3VjaFNldEVu
YWJsZWQoQm9vbGVhbiBlbmFibGVkKTsKK2V4dGVybiB2b2lkIF9BWFNBcHBsaWNhdGlvbkFjY2Vz
c2liaWxpdHlTZXRFbmFibGVkKEJvb2xlYW4gZW5hYmxlZCk7CisKIEBpbXBsZW1lbnRhdGlvbiBX
S1dlYlZpZXcgKFdLQWNjZXNzaWJpbGl0eVRlc3RpbmcpCiAtIChOU0FycmF5PE5TVmFsdWUgKj4g
KilyZWN0c0F0U2VsZWN0aW9uT2Zmc2V0OihOU0ludGVnZXIpb2Zmc2V0IHdpdGhUZXh0OihOU1N0
cmluZyAqKXRleHQKIHsKQEAgLTE0OCw2ICsxNTEsOSBAQCBURVNUKEFjY2Vzc2liaWxpdHlUZXN0
cywgU3RvcmVTZWxlY3Rpb24pCiAKIFRFU1QoQWNjZXNzaWJpbGl0eVRlc3RzLCBXZWJQcm9jZXNz
TG9hZGVyQnVuZGxlTG9hZGVkKQogeworICAgIF9BWFNab29tVG91Y2hTZXRFbmFibGVkKHRydWUp
OworICAgIF9BWFNBcHBsaWNhdGlvbkFjY2Vzc2liaWxpdHlTZXRFbmFibGVkKHRydWUpOworCiAg
ICAgV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIkFj
Y2Vzc2liaWxpdHlUZXN0UGx1Z2luIl07CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUw
MCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgX1dLUmVtb3RlT2JqZWN0SW50
ZXJmYWNlICppbnRlcmZhY2UgPSBbX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlIHJlbW90ZU9iamVj
dEludGVyZmFjZVdpdGhQcm90b2NvbDpAcHJvdG9jb2woQWNjZXNzaWJpbGl0eVRlc3RTdXBwb3J0
UHJvdG9jb2wpXTsKQEAgLTE3MSw2ICsxNzcsOSBAQCAgICAgaWQgPEFjY2Vzc2liaWxpdHlUZXN0
U3VwcG9ydFByb3RvY29sCiAgICAgICAgIGlzRG9uZSA9IHRydWU7CiAgICAgfV07CiAgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworCisgICAgX0FYU1pvb21Ub3VjaFNldEVu
YWJsZWQoZmFsc2UpOworICAgIF9BWFNBcHBsaWNhdGlvbkFjY2Vzc2liaWxpdHlTZXRFbmFibGVk
KGZhbHNlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392751</attachid>
            <date>2020-03-06 12:10:34 -0800</date>
            <delta_ts>2020-03-06 13:49:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208690-20200306121034.patch</filename>
            <type>text/plain</type>
            <size>34723</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAzLTA1ICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFJlLWVuYWJsZSBDRlByZWZzIGRp
cmVjdCBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDg2OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZS5oOgorCiAyMDIwLTAzLTA0ICBQZXIgQXJuZSBWb2xsYW4g
IDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIEFkZCBlbmFibGUgZmxhZyB0
byBkaXNhYmxlIGRpcmVjdCBtb2RlIGZvciBwcmVmZXJlbmNlcwpJbmRleDogU291cmNlL1dURi93
dGYvUGxhdGZvcm1FbmFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUVuYWJsZS5oCShyZXZpc2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVu
YWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04NzIsNCArODcyLDQgQEAKICNlcnJvciAiRU5BQkxF
KFdFQkdMMikgcmVxdWlyZXMgRU5BQkxFKFdFQkdMKSIKICNlbmRpZgogCi0jZGVmaW5lIEVOQUJM
RV9DRlBSRUZTX0RJUkVDVF9NT0RFIDAKKyNkZWZpbmUgRU5BQkxFX0NGUFJFRlNfRElSRUNUX01P
REUgMQpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1ODAxMikKKysrIFNvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTcgQEAKKzIwMjAtMDMtMDYgIFBlciBB
cm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUmUtZW5h
YmxlIENGUHJlZnMgZGlyZWN0IG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwODY5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmUtZW5hYmxlZCBDRiBwcmVmcyBkaXJlY3QgbW9k
ZSBvbiBpT1MgYW5kIG1hY09TLCBhbmQgYWRkcmVzc2VzIHBlcmZvcm1hbmNlIGlzc3VlcyBhbmQg
QWNjZXNzaWJpbGl0eSBpc3N1ZXMKKyAgICAgICAgd2l0aCB0aGUgb3JpZ2luYWwgcGF0Y2guIFBl
cmZvcm1hbmNlIGlzc3VlcyBhcmUgYWRkcmVzc2VkIGJ5IGNyZWF0aW5nIHRoZSBOU1VzZXJEZWZh
dWx0cyBvYmplY3RzIGluIHRoZSBVSSBwcm9jZXNzIG9uCisgICAgICAgIGEgbm9uLW1haW4gdGhy
ZWFkLCB3aGlsZSB0aGUgQWNjZXNzaWJpbGl0eSBpc3N1ZXMgYXJlIGZpeGVkIGJ5IGlzc3Vpbmcg
YW4gZXh0ZW5zaW9uIHRvIHRoZSBwcmVmZXJlbmNlcyBzZXJ2aWNlIHdoZW4KKyAgICAgICAgQWNj
ZXNzaWJpbGl0eSBpcyBlbmFibGVkLgorCisgICAgICAgIEFQSSB0ZXN0OiBXZWJLaXQuR3JhbnRB
Y2Nlc3NQcmVmZXJlbmNlc1NlcnZpY2UKKworICAgICAgICAqIFJlc291cmNlcy9TYW5kYm94UHJv
ZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYjoKKyAgICAgICAgKiBTaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9ncmFudEFjY2Vz
c1RvUHJlZmVyZW5jZVNlcnZpY2VdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvUHJlZmVyZW5jZU9i
c2VydmVyLm1tOgorICAgICAgICAocmVnaXN0ZXJEZWZhdWx0c092ZXJyaWRlKToKKyAgICAgICAg
KC1bV0tVc2VyRGVmYXVsdHMgX25vdGlmeU9ic2VydmVyc09mQ2hhbmdlRnJvbVZhbHVlc0Zvcktl
eXM6dG9WYWx1ZXNGb3JLZXlzOl0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VPYnNlcnZlciBp
bml0XSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmdyYW50QWNjZXNzVG9QcmVmZXJlbmNlU2Vy
dmljZSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1SZXNvbHZlUGF0aHNGb3JT
YW5kYm94RXh0ZW5zaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0
Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bv
b2w6OnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQcm94eTo6dW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXJJZk5lZWRlZCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6dW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlSWZOZWVkZWQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hp
bmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5Ojp1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjp1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcik6IERlbGV0ZWQuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxp
emVXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0
aWFsaXplUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVuYmxvY2tQcmVm
ZXJlbmNlU2VydmljZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVuYmxvY2tBY2Nl
c3NpYmlsaXR5U2VydmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9j
ZXNzLnNiLmluOgorCiAyMDIwLTAzLTA2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIE1vdmUgc3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zIHRvIFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlCkluZGV4OiBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9T
YW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5h
cHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgkocmV2aXNpb24gMjU3ODc5KQorKysgU291cmNlL1dl
YktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNv
bnRlbnQuc2IJKHdvcmtpbmcgY29weSkKQEAgLTUzNiw3ICs1MzYsNiBAQAogKGFsbG93IG1hY2gt
bG9va3VwCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUubG9nZCIpCiAgICAgKGdsb2JhbC1u
YW1lICJjb20uYXBwbGUubG9nZC5ldmVudHMiKQotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxl
LmNmcHJlZnNkLmRhZW1vbiIpCiApCiAKIChkZW55IG1hY2gtbG9va3VwICh3aXRoIHRlbGVtZXRy
eSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTg1LDcgKzE4NSw3IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2QK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICAvLyBGSVhNRSgyMDc3MTYpOiBUaGUgZm9sbG93aW5n
IHNob3VsZCBiZSByZW1vdmVkIHdoZW4gdGhlIEdQVSBwcm9jZXNzIGlzIGNvbXBsZXRlLgogICAg
IGVuY29kZXIgPDwgbWVkaWFFeHRlbnNpb25IYW5kbGVzOwotI2lmICFFTkFCTEUoQ0ZQUkVGU19E
SVJFQ1RfTU9ERSkKKyNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKICAgICBlbmNvZGVy
IDw8IHByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlOwogI2VuZGlmCiAjZW5kaWYKQEAgLTUwNCw3
ICs1MDQsNyBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kCiAgICAg
cGFyYW1ldGVycy5tZWRpYUV4dGVuc2lvbkhhbmRsZXMgPSBXVEZNb3ZlKCptZWRpYUV4dGVuc2lv
bkhhbmRsZXMpOwogICAgIC8vIEZJWE1FKDIwNzcxNik6IEVuZCByZWdpb24gdG8gcmVtb3ZlLgog
Ci0jaWYgIUVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQorI2lmIEVOQUJMRShDRlBSRUZTX0RJ
UkVDVF9NT0RFKQogICAgIE9wdGlvbmFsPE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZT4+IHByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlOwogICAgIGRlY29kZXIgPj4gcHJlZmVyZW5j
ZXNFeHRlbnNpb25IYW5kbGU7CiAgICAgaWYgKCFwcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZSkK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgJKHJldmlzaW9uIDI1Nzg3NSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjI2LDcgKzIy
Niw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKIAogI2lmIFBMQVRG
T1JNKENPQ09BKQogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IG1lZGlhRXh0ZW5z
aW9uSGFuZGxlczsgLy8gRklYTUUoMjA3NzE2KTogUmVtb3ZlIHdoZW4gR1BVIHByb2Nlc3MgaXMg
Y29tcGxldGUuCi0jaWYgIUVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQorI2lmIEVOQUJMRShD
RlBSRUZTX0RJUkVDVF9NT0RFKQogICAgIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZT4gcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGU7CiAjZW5kaWYKICNlbmRpZgpJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHJldmlzaW9uIDI1Nzg3NCkKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
NzA1LDYgKzE3MDUsMTAgQEAgcHVibGljOgogICAgIHZvaWQgcmV2b2tlQWNjZXNzVG9Bc3NldFNl
cnZpY2VzKCk7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgZ3JhbnRB
Y2Nlc3NUb1ByZWZlcmVuY2VTZXJ2aWNlKCk7CisjZW5kaWYKKwogICAgIHZvaWQgc2V0SXNOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpblRlc3RpbmcoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuaAkocmV2aXNpb24gMjU3ODc0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaAkod29ya2luZyBjb3B5KQpAQCAtNzA0LDcgKzcwNCw3IEBAIHByaXZh
dGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFBlckFjdGl2aXR5U3RhdGVDUFVVc2FnZVNhbXBsZXI+
IG1fcGVyQWN0aXZpdHlTdGF0ZUNQVVVzYWdlU2FtcGxlcjsKICNlbmRpZgogCi0jaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8TlNPYmpl
Y3Q+IG1fYWNjZXNzaWJpbGl0eUVuYWJsZWRPYnNlcnZlcjsKICNlbmRpZgogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAJKHJldmlzaW9uIDI1Nzg3
NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTkyMyw3ICs5MjMsOSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRmlu
aXNoTGF1bmNoaW5nCiAgICAgICAgIGlmICh4cGNfY29ubmVjdGlvbl90IHhwY0Nvbm5lY3Rpb24g
PSBjb25uZWN0aW9uKCktPnhwY0Nvbm5lY3Rpb24oKSkKICAgICAgICAgICAgIG1fdGhyb3R0bGVy
LmRpZENvbm5lY3RUb1Byb2Nlc3MoeHBjX2Nvbm5lY3Rpb25fZ2V0X3BpZCh4cGNDb25uZWN0aW9u
KSk7CiAgICAgfQorI2VuZGlmCiAKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICB1bmJsb2NrQWNj
ZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKCk7CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgJKHJldmlzaW9uIDI1Nzg3NCkKKysrIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
MzMsOCArMzMzLDkgQEAgcHVibGljOgogICAgIHZvaWQgZW5hYmxlUmVtb3RlSW5zcGVjdG9ySWZO
ZWVkZWQoKTsKICNlbmRpZgogICAgIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYgUExB
VEZPUk0oQ09DT0EpCiAgICAgdm9pZCB1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVk
KCk7CisgICAgdm9pZCB1bmJsb2NrUHJlZmVyZW5jZVNlcnZpY2VJZk5lZWRlZCgpOwogI2VuZGlm
CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtNTI4LDEwICs1MjksMTQgQEAgcHJpdmF0
ZToKICAgICBGb3JlZ3JvdW5kV2ViUHJvY2Vzc1Rva2VuIG1fZm9yZWdyb3VuZFRva2VuOwogICAg
IEJhY2tncm91bmRXZWJQcm9jZXNzVG9rZW4gbV9iYWNrZ3JvdW5kVG9rZW47CiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICBib29sIG1faGFzU2VudE1lc3NhZ2VUb1VuYmxvY2tBY2Nlc3Np
YmlsaXR5U2VydmVyIHsgZmFsc2UgfTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6RGVm
ZXJyYWJsZU9uZVNob3RUaW1lcj4gbV91bmV4cGVjdGVkQWN0aXZpdHlUaW1lcjsKICNlbmRpZgog
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgYm9vbCBtX2hhc1NlbnRNZXNzYWdlVG9VbmJsb2Nr
QWNjZXNzaWJpbGl0eVNlcnZlciB7IGZhbHNlIH07CisgICAgYm9vbCBtX2hhc1NlbnRNZXNzYWdl
VG9VbmJsb2NrUHJlZmVyZW5jZVNlcnZpY2UgeyBmYWxzZSB9OworI2VuZGlmCisKICAgICBIYXNo
TWFwPFN0cmluZywgdWludDY0X3Q+IG1fcGFnZVVSTFJldGFpbkNvdW50TWFwOwogCiAgICAgT3B0
aW9uYWw8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+IG1fcmVnaXN0cmFibGVEb21haW47Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0J
KHJldmlzaW9uIDI1Nzg3NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTI4OTksNiArMjg5OSwxMiBAQCAtIChDR0Zs
b2F0KV9taW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgKICNlbmRpZgogfQogCistICh2b2lkKV9n
cmFudEFjY2Vzc1RvUHJlZmVyZW5jZVNlcnZpY2UKK3sKKyAgICBpZiAoX3BhZ2UpCisgICAgICAg
IF9wYWdlLT5ncmFudEFjY2Vzc1RvUHJlZmVyZW5jZVNlcnZpY2UoKTsKK30KKwogI3ByYWdtYSBt
YXJrIC0gc2Nyb2xsUGVyZm9ybWFuY2VEYXRhCiAKIC0gKHZvaWQpX3NldFNjcm9sbFBlcmZvcm1h
bmNlRGF0YUNvbGxlY3Rpb25FbmFibGVkOihCT09MKWVuYWJsZWQKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAkocmV2
aXNpb24gMjU3ODc0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzM5LDYgKzMzOSw4IEBAIGZvciB0aGlz
IHByb3BlcnR5LgogCiAtICh2b2lkKV9zZXRJc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluOihC
T09MKWlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQg
KF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKKy0gKHZvaWQpX2dyYW50QWNjZXNzVG9QcmVmZXJl
bmNlU2VydmljZSBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CisKIEBlbmQKIAog
I2lmIFRBUkdFVF9PU19JUEhPTkUKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1ByZWZlcmVuY2VPYnNlcnZlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIubW0JKHJldmlzaW9uIDI1Nzg3NCkKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMjgsMTAgKzI4LDI1IEBACiAKICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgi
CiAKKyNpbXBvcnQgPHd0Zi9PYmpDUnVudGltZUV4dHJhcy5oPgorCitzdGF0aWMgSU1QIHJlZ2lz
dGVyRGVmYXVsdHNPcmlnaW5hbCA9IG5pbDsKK3N0YXRpYyBib29sIHJlZ2lzdGVyaW5nRGVmYXVs
dHMgPSBmYWxzZTsKKworc3RhdGljIHZvaWQgcmVnaXN0ZXJEZWZhdWx0c092ZXJyaWRlKGlkIHNl
bGYsIFNFTCBzZWxlY3RvciwgTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqZGljdGlvbmFy
eSkKK3sKKyAgICByZWdpc3RlcmluZ0RlZmF1bHRzID0gdHJ1ZTsKKyAgICB3dGZDYWxsSU1QPHZv
aWQ+KHJlZ2lzdGVyRGVmYXVsdHNPcmlnaW5hbCwgc2VsZiwgc2VsZWN0b3IsIGRpY3Rpb25hcnkp
OworICAgIHJlZ2lzdGVyaW5nRGVmYXVsdHMgPSBmYWxzZTsKK30KKwogQGltcGxlbWVudGF0aW9u
IFdLVXNlckRlZmF1bHRzCiAKIC0gKHZvaWQpX25vdGlmeU9ic2VydmVyc09mQ2hhbmdlRnJvbVZh
bHVlc0ZvcktleXM6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKilvbGRWYWx1ZXMgdG9W
YWx1ZXNGb3JLZXlzOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopbmV3VmFsdWVzCiB7
CisgICAgaWYgKHJlZ2lzdGVyaW5nRGVmYXVsdHMpCisgICAgICAgIHJldHVybjsKKwogICAgIFtz
dXBlciBfbm90aWZ5T2JzZXJ2ZXJzT2ZDaGFuZ2VGcm9tVmFsdWVzRm9yS2V5czpvbGRWYWx1ZXMg
dG9WYWx1ZXNGb3JLZXlzOm5ld1ZhbHVlc107CiAKICAgICBpZiAoW29sZFZhbHVlcyBpc0VxdWFs
VG9EaWN0aW9uYXJ5Om5ld1ZhbHVlc10pCkBAIC04Nyw2ICsxMDIsOSBAQCArIChpZClzaGFyZWRJ
bnN0YW5jZQogCiAtIChpbnN0YW5jZXR5cGUpaW5pdAogeworICAgIE1ldGhvZCByZWdpc3RlckRl
ZmF1bHRzTWV0aG9kID0gY2xhc3NfZ2V0SW5zdGFuY2VNZXRob2Qob2JqY19nZXRDbGFzcygiTlNV
c2VyRGVmYXVsdHMiKSwgQHNlbGVjdG9yKHJlZ2lzdGVyRGVmYXVsdHM6KSk7CisgICAgcmVnaXN0
ZXJEZWZhdWx0c09yaWdpbmFsID0gbWV0aG9kX3NldEltcGxlbWVudGF0aW9uKHJlZ2lzdGVyRGVm
YXVsdHNNZXRob2QsIChJTVApcmVnaXN0ZXJEZWZhdWx0c092ZXJyaWRlKTsKKwogICAgIHN0ZDo6
aW5pdGlhbGl6ZXJfbGlzdDxOU1N0cmluZyo+IGRvbWFpbnMgPSB7CiAgICAgICAgIEAiY29tLmFw
cGxlLkFjY2Vzc2liaWxpdHkiLAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQko
cmV2aXNpb24gMjU3ODc0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFn
ZVByb3h5Q29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTMxNCw0ICszMTQsOSBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkQ3JlYXRlQ29udGV4dEluR1BVCiB9CiAjZW5kaWYKIAordm9pZCBXZWJQ
YWdlUHJveHk6OmdyYW50QWNjZXNzVG9QcmVmZXJlbmNlU2VydmljZSgpCit7CisgICAgcHJvY2Vz
cygpLnVuYmxvY2tQcmVmZXJlbmNlU2VydmljZUlmTmVlZGVkKCk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vz
c1Bvb2xDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCShyZXZpc2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC05MCw2ICs5MCw5IEBAIFNPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SSyhXZWJDb250ZW50
QW4KIFNPRlRfTElOS19DTEFTUyhXZWJDb250ZW50QW5hbHlzaXMsIFdlYkZpbHRlckV2YWx1YXRv
cik7CiAjZW5kaWYKIAorZXh0ZXJuICJDIiBCb29sZWFuIF9BWFNBcHBsaWNhdGlvbkFjY2Vzc2li
aWxpdHlFbmFibGVkKCk7CitleHRlcm4gQ0ZTdHJpbmdSZWYga0FYU0FwcGxpY2F0aW9uQWNjZXNz
aWJpbGl0eUVuYWJsZWROb3RpZmljYXRpb247CisKICNpZiBQTEFURk9STShDT0NPQSkKICNpbXBv
cnQgPFdlYkNvcmUvU3lzdGVtQmF0dGVyeS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9ORUZp
bHRlclNvdXJjZVNQSS5oPgpAQCAtMTczLDYgKzE3NiwxMyBAQCB2b2lkIFdlYlByb2Nlc3NQb29s
OjpwbGF0Zm9ybUluaXRpYWxpemUoCiAgICAgICAgIGluc3RhbGxNZW1vcnlQcmVzc3VyZUhhbmRs
ZXIoKTsKIAogICAgIHNldExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudChtYWtlVW5p
cXVlPExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudD4oKSk7CisKKyNpZiBFTkFCTEUo
Q0ZQUkVGU19ESVJFQ1RfTU9ERSkKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfZ2xv
YmFsX3F1ZXVlKFFPU19DTEFTU19CQUNLR1JPVU5ELCAwKSwgXnsKKyAgICAgICAgLy8gU3RhcnQg
b2JzZXJ2aW5nIHByZWZlcmVuY2UgY2hhbmdlcy4KKyAgICAgICAgW1dLUHJlZmVyZW5jZU9ic2Vy
dmVyIHNoYXJlZEluc3RhbmNlXTsKKyAgICB9KTsKKyNlbmRpZgogfQogCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKQEAgLTE5NywxMSArMjA3LDYgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxh
dGZvcm1SZXNvbHZlUGF0aAogICAgIG1fcmVzb2x2ZWRQYXRocy5jb250YWluZXJDYWNoZXNEaXJl
Y3RvcnkgPSByZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVu
c2lvbihXZWJQcm9jZXNzUG9vbDo6d2ViQ29udGVudENhY2hlc0RpcmVjdG9yeSgpKTsKICAgICBt
X3Jlc29sdmVkUGF0aHMuY29udGFpbmVyVGVtcG9yYXJ5RGlyZWN0b3J5ID0gcmVzb2x2ZUFuZENy
ZWF0ZVJlYWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24oV2ViUHJvY2Vzc1Bvb2w6
OmNvbnRhaW5lclRlbXBvcmFyeURpcmVjdG9yeSgpKTsKICNlbmRpZgotCi0jaWYgRU5BQkxFKENG
UFJFRlNfRElSRUNUX01PREUpCi0gICAgLy8gU3RhcnQgb2JzZXJ2aW5nIHByZWZlcmVuY2UgY2hh
bmdlcy4KLSAgICBbV0tQcmVmZXJlbmNlT2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdOwotI2VuZGlm
CiB9CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC00NDIsMTAgKzQ0NywxMyBAQCB2b2lkIFdlYlBy
b2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXCiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAw
LCBzaXplID0gc2VydmljZXMuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKQogICAgICAgICAgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cChzZXJ2aWNlc1tpXSwgV1RG
OjpudWxsb3B0LCBwYXJhbWV0ZXJzLm1lZGlhRXh0ZW5zaW9uSGFuZGxlc1tpXSk7CiAgICAgfQot
I2lmICFFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKLSAgICBTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGUgcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGU7Ci0gICAgU2FuZGJveEV4dGVuc2lvbjo6
Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIsIFdU
Rjo6bnVsbG9wdCwgcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGUpOwotICAgIHBhcmFtZXRlcnMu
cHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKHByZWZlcmVuY2VzRXh0ZW5zaW9u
SGFuZGxlKTsKKworI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQorICAgIGlmIChfQVhT
QXBwbGljYXRpb25BY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSBwcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZTsKKyAgICAgICAgU2FuZGJv
eEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmNmcHJlZnNk
LmRhZW1vbiIsIFdURjo6bnVsbG9wdCwgcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGUpOworICAg
ICAgICBwYXJhbWV0ZXJzLnByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZShwcmVm
ZXJlbmNlc0V4dGVuc2lvbkhhbmRsZSk7CisgICAgfQogI2VuZGlmCiB9CiAKQEAgLTY0NywxNSAr
NjU1LDE3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlZ2lzdGVyTm90aWZpY2F0aW8KICNlbGlm
ICFQTEFURk9STShNQUNDQVRBTFlTVCkKICAgICBDRk5vdGlmaWNhdGlvbkNlbnRlckFkZE9ic2Vy
dmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2luTm90aWZ5Q2VudGVyKCksIHRoaXMsIGJh
Y2tsaWdodExldmVsRGlkQ2hhbmdlQ2FsbGJhY2ssIHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihV
SUJhY2tsaWdodExldmVsQ2hhbmdlZE5vdGlmaWNhdGlvbiksIG51bGxwdHIsIENGTm90aWZpY2F0
aW9uU3VzcGVuc2lvbkJlaGF2aW9yQ29hbGVzY2UpOwogI2lmIFBMQVRGT1JNKElPUykKLSAgICBt
X2FjY2Vzc2liaWxpdHlFbmFibGVkT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRl
ZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTooX19icmlkZ2UgaWQpa0FYU0FwcGxpY2F0
aW9uQWNjZXNzaWJpbGl0eUVuYWJsZWROb3RpZmljYXRpb24gb2JqZWN0Om5pbCBxdWV1ZTpbTlNP
cGVyYXRpb25RdWV1ZSBjdXJyZW50UXVldWVdIHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAq
KSB7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9wcm9jZXNzZXMuc2l6ZSgpOyAr
K2kpCi0gICAgICAgICAgICBtX3Byb2Nlc3Nlc1tpXS0+dW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2
ZXJJZk5lZWRlZCgpOwotICAgIH1dOwogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQogICAg
IENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXRE
YXJ3aW5Ob3RpZnlDZW50ZXIoKSwgdGhpcywgcmVtb3RlV2ViSW5zcGVjdG9yRW5hYmxlZENhbGxi
YWNrLCBzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZTVFIoV0lSU2VydmljZUVuYWJsZWROb3Rp
ZmljYXRpb24pKSwgbnVsbHB0ciwgQ0ZOb3RpZmljYXRpb25TdXNwZW5zaW9uQmVoYXZpb3JDb2Fs
ZXNjZSk7CiAjZW5kaWYKICNlbmRpZiAvLyBQTEFURk9STShJT1MpCiAjZW5kaWYgLy8gIVBMQVRG
T1JNKElPU19GQU1JTFkpCisgICAgbV9hY2Nlc3NpYmlsaXR5RW5hYmxlZE9ic2VydmVyID0gW1tO
U05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6KF9f
YnJpZGdlIGlkKWtBWFNBcHBsaWNhdGlvbkFjY2Vzc2liaWxpdHlFbmFibGVkTm90aWZpY2F0aW9u
IG9iamVjdDpuaWwgcXVldWU6W05TT3BlcmF0aW9uUXVldWUgY3VycmVudFF1ZXVlXSB1c2luZ0Js
b2NrOl4oTlNOb3RpZmljYXRpb24gKikgeworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IG1fcHJvY2Vzc2VzLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBtX3Byb2Nlc3Nlc1tpXS0+
dW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlSWZOZWVkZWQoKTsKKyAgICAgICAgICAgIG1fcHJvY2Vz
c2VzW2ldLT51bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKCk7CisgICAgICAgIH0K
KyAgICB9XTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rlck5vdGlmaWNhdGlv
bk9ic2VydmVycygpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9j
ZXNzUHJveHlDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQkocmV2aXNpb24gMjU3ODc0KQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTIyNSw0ICsyMjUsNDMgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmVuYWJsZVJl
bW90ZUluc3BlYwogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpFbmFibGVSZW1v
dGVXZWJJbnNwZWN0b3IoaGFuZGxlKSwgMCk7CiB9CiAjZW5kaWYKKwordm9pZCBXZWJQcm9jZXNz
UHJveHk6OnVuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVySWZOZWVkZWQoKQoreworICAgIGlmICht
X2hhc1NlbnRNZXNzYWdlVG9VbmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcikKKyAgICAgICAgcmV0
dXJuOworICAgIGlmICghX0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAg
ICAgICAgcmV0dXJuOworICAgIGlmICghcHJvY2Vzc0lkZW50aWZpZXIoKSkKKyAgICAgICAgcmV0
dXJuOworICAgIGlmICghY2FuU2VuZE1lc3NhZ2UoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQorICAgIGlmICghU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgi
Y29tLmFwcGxlLmlwaG9uZS5heHNlcnZlci1zeXN0ZW13aWRlIiwgY29ubmVjdGlvbigpID8gY29u
bmVjdGlvbigpLT5nZXRBdWRpdFRva2VuKCkgOiBXVEY6Om51bGxvcHQsIGhhbmRsZSkpCisgICAg
ICAgIHJldHVybjsKKyNlbmRpZgorCisgICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6VW5i
bG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIoaGFuZGxlKSwgMCk7CisgICAgbV9oYXNTZW50TWVzc2Fn
ZVRvVW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIgPSB0cnVlOworfQorCit2b2lkIFdlYlByb2Nl
c3NQcm94eTo6dW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlSWZOZWVkZWQoKQoreworICAgIGlmICht
X2hhc1NlbnRNZXNzYWdlVG9VbmJsb2NrUHJlZmVyZW5jZVNlcnZpY2UpCisgICAgICAgIHJldHVy
bjsKKyAgICBpZiAoIXByb2Nlc3NJZGVudGlmaWVyKCkpCisgICAgICAgIHJldHVybjsKKyAgICBp
ZiAoIWNhblNlbmRNZXNzYWdlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSBoYW5kbGU7CisgICAgaWYgKCFTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVI
YW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUuY2ZwcmVmc2QuZGFlbW9uIiwgY29ubmVjdGlv
bigpID8gY29ubmVjdGlvbigpLT5nZXRBdWRpdFRva2VuKCkgOiBXVEY6Om51bGxvcHQsIGhhbmRs
ZSkpCisgICAgICAgIHJldHVybjsKKworICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlVu
YmxvY2tQcmVmZXJlbmNlU2VydmljZShoYW5kbGUpLCAwKTsKKyAgICBtX2hhc1NlbnRNZXNzYWdl
VG9VbmJsb2NrUHJlZmVyZW5jZVNlcnZpY2UgPSB0cnVlOworfQorCiB9CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW0JKHJldmlz
aW9uIDI1Nzg3NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJv
eHlJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTQzLDI1ICs0Myw2IEBAIGJvb2wgV2ViUHJvY2Vz
c1Byb3h5OjpmdWxsS2V5Ym9hcmRBY2Nlc3MKICNlbmRpZgogfQogCi12b2lkIFdlYlByb2Nlc3NQ
cm94eTo6dW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXJJZk5lZWRlZCgpCi17Ci0gICAgaWYgKG1f
aGFzU2VudE1lc3NhZ2VUb1VuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVyKQotICAgICAgICByZXR1
cm47Ci0gICAgaWYgKCFfQVhTQXBwbGljYXRpb25BY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAg
ICAgICByZXR1cm47Ci0gICAgaWYgKCFwcm9jZXNzSWRlbnRpZmllcigpKQotICAgICAgICByZXR1
cm47Ci0gICAgaWYgKCFjYW5TZW5kTWVzc2FnZSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlOwotICAgIGlmICghU2FuZGJveEV4dGVuc2lv
bjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmlwaG9uZS5heHNlcnZlci1z
eXN0ZW13aWRlIiwgY29ubmVjdGlvbigpID8gY29ubmVjdGlvbigpLT5nZXRBdWRpdFRva2VuKCkg
OiBXVEY6Om51bGxvcHQsIGhhbmRsZSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHNlbmQoTWVz
c2FnZXM6OldlYlByb2Nlc3M6OlVuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVyKGhhbmRsZSksIDAp
OwotICAgIG1faGFzU2VudE1lc3NhZ2VUb1VuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVyID0gdHJ1
ZTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShJT1Nf
RkFNSUxZKQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2
aXNpb24gMjU3ODc0KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xOTc0LDE0ICsxOTc0LDYgQEAgdm9pZCBXZWJQcm9jZXNzOjpj
bGVhckN1cnJlbnRNb2RpZmllclN0YQogICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6c2V0Q3Vy
cmVudE1vZGlmaWVyU3RhdGUoeyB9KTsKIH0KIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi12
b2lkIFdlYlByb2Nlc3M6OnVuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVyKGNvbnN0IFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSYgaGFuZGxlKQotewotICAgIGJvb2wgb2sgPSBTYW5kYm94RXh0ZW5z
aW9uOjpjb25zdW1lUGVybWFuZW50bHkoaGFuZGxlKTsKLSAgICBBU1NFUlRfVU5VU0VEKG9rLCBv
ayk7Ci19Ci0jZW5kaWYKLQogYm9vbCBXZWJQcm9jZXNzOjphcmVBbGxQYWdlc1Rocm90dGxlYWJs
ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFdURjo6YWxsT2YobV9wYWdlTWFwLnZhbHVlcygpLCBb
XShhdXRvJiBwYWdlKSB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgJ
KHJldmlzaW9uIDI1Nzg3NCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5OSw4ICsyOTksNiBAQCBwdWJsaWM6CiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQogICAgIHZvaWQgYWNjZXNzaWJpbGl0eVByb2Nlc3NTdXNwZW5kZWRO
b3RpZmljYXRpb24oYm9vbCk7Ci0gICAgCi0gICAgdm9pZCB1bmJsb2NrQWNjZXNzaWJpbGl0eVNl
cnZlcihjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQpAQCAtMzEzLDYgKzMx
MSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGVuYWJsZVJlbW90ZVdlYkluc3BlY3Rvcihjb25zdCBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKICNlbmRpZgogICAgIHZvaWQgbm90aWZ5UHJlZmVy
ZW5jZXNDaGFuZ2VkKGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIGtleSwgY29u
c3QgT3B0aW9uYWw8U3RyaW5nPiYgZW5jb2RlZFZhbHVlKTsKKyAgICB2b2lkIHVuYmxvY2tBY2Nl
c3NpYmlsaXR5U2VydmVyKGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYpOworICAgIHZv
aWQgdW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlKGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSYpOwogI2VuZGlmCiAKICAgICBib29sIGFyZUFsbFBhZ2VzVGhyb3R0bGVhYmxlKCkgY29uc3Q7
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdl
cy5pbgkocmV2aXNpb24gMjU3ODc0KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTE1NCwxMCArMTU0LDYgQEAgbWVz
c2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciBObwogICAgIFNldEJhY2tGb3J3YXJk
Q2FjaGVDYXBhY2l0eSh1bnNpZ25lZCBjYXBhY2l0eSk7CiAgICAgQ2xlYXJDYWNoZWRQYWdlKHN0
cnVjdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyIGJhY2tGb3J3YXJkSXRlbUlE
KSAtPiAoKSBBc3luYwogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBVbmJsb2NrQWNj
ZXNzaWJpbGl0eVNlcnZlcihXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGUp
Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgIFNlbmRN
ZXNzYWdlVG9XZWJFeHRlbnNpb24oc3RydWN0IFdlYktpdDo6VXNlck1lc3NhZ2UgdXNlck1lc3Nh
Z2UpCiAjZW5kaWYKQEAgLTE3NCw1ICsxNzAsNyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExl
Z2FjeVJlY2VpdmVyIE5vCiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBOb3RpZnlQcmVmZXJl
bmNlc0NoYW5nZWQoU3RyaW5nIGRvbWFpbiwgU3RyaW5nIGtleSwgT3B0aW9uYWw8U3RyaW5nPiBl
bmNvZGVkVmFsdWUpCisgICAgVW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIoV2ViS2l0OjpTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlKQorICAgIFVuYmxvY2tQcmVmZXJlbmNlU2Vydmlj
ZShXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGUpCiAjZW5kaWYKIH0KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nl
c3Muc2IuaW4JKHJldmlzaW9uIDI1Nzg3OSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgkod29ya2luZyBjb3B5KQpAQCAtNjQzLDcgKzY0Myw5
IEBACiAgICAgKHdpdGggcmVwb3J0KSAod2l0aCB0ZWxlbWV0cnkpCiAjZW5kaWYKICAgICAoZ2xv
YmFsLW5hbWUgImNvbS5hcHBsZS5Qb3dlck1hbmFnZW1lbnQuY29udHJvbCIpCisjaWYgIUVOQUJM
RShDRlBSRUZTX0RJUkVDVF9NT0RFKQogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNmcHJl
ZnNkLmRhZW1vbiIpCisjZW5kaWYKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5jb3Jlc2Vy
dmljZXMubGF1bmNoc2VydmljZXNkIikKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5sc2Qu
bWFwZGIiKQogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLnRjY2QiKQpJbmRleDogU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCShyZXZp
c2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yODgsMTEgKzI4OCwxMyBAQCB2b2lkIFdlYlBy
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByCiAgICAgLy8gRklYTUUoMjA3NzE2KTogVGhl
IGZvbGxvd2luZyBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIHRoZSBHUFUgcHJvY2VzcyBpcyBjb21w
bGV0ZS4KICAgICBmb3IgKHNpemVfdCBpID0gMCwgc2l6ZSA9IHBhcmFtZXRlcnMubWVkaWFFeHRl
bnNpb25IYW5kbGVzLnNpemUoKTsgaSA8IHNpemU7ICsraSkKICAgICAgICAgU2FuZGJveEV4dGVu
c2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMubWVkaWFFeHRlbnNpb25IYW5kbGVz
W2ldKTsKKyNlbmRpZgogCi0jaWYgIUVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQotICAgIGlm
IChwYXJhbWV0ZXJzLnByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlKQorI2lmIEVOQUJMRShDRlBS
RUZTX0RJUkVDVF9NT0RFKQorICAgIGlmIChwYXJhbWV0ZXJzLnByZWZlcmVuY2VzRXh0ZW5zaW9u
SGFuZGxlKSB7CiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseSgq
cGFyYW1ldGVycy5wcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZSk7Ci0jZW5kaWYKKyAgICAgICAg
X0NGUHJlZnNTZXREaXJlY3RNb2RlRW5hYmxlZChmYWxzZSk7CisgICAgfQogI2VuZGlmCiB9CiAK
QEAgLTU3Miw4ICs1NzQsNiBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVBy
b2NlCiAgICAgZWxzZQogICAgICAgICBtX3Byb2Nlc3NUeXBlID0gUHJvY2Vzc1R5cGU6OldlYkNv
bnRlbnQ7CiAKLSAgICByZWdpc3RlcldpdGhBY2Nlc3NpYmlsaXR5KCk7Ci0KICNpZiBVU0UoT1Nf
U1RBVEUpCiAgICAgcmVnaXN0ZXJXaXRoU3RhdGVEdW1wZXIoKTsKICNlbmRpZgpAQCAtOTQ1LDYg
Kzk0NSw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6c2V0TWVkaWFNSU1FVHlwZXMoY29uc3QKICAgICAg
ICAgY2FjaGUuYWRkU3VwcG9ydGVkVHlwZXModHlwZXMpOwogfQogCisjaWYgRU5BQkxFKENGUFJF
RlNfRElSRUNUX01PREUpCiB2b2lkIFdlYlByb2Nlc3M6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdl
ZChjb25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IE9wdGlvbmFs
PFN0cmluZz4mIGVuY29kZWRWYWx1ZSkKIHsKICAgICBhdXRvIGRlZmF1bHRzID0gYWRvcHROUyhb
W05TVXNlckRlZmF1bHRzIGFsbG9jXSBpbml0V2l0aFN1aXRlTmFtZTpkb21haW5dKTsKQEAgLTk2
Myw2ICs5NjQsMTQgQEAgdm9pZCBXZWJQcm9jZXNzOjpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZQog
ICAgIFtkZWZhdWx0cyBzZXRPYmplY3Q6b2JqZWN0LmdldCgpIGZvcktleTprZXldOwogfQogCit2
b2lkIFdlYlByb2Nlc3M6OnVuYmxvY2tQcmVmZXJlbmNlU2VydmljZShjb25zdCBTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGUmIGhhbmRsZSkKK3sKKyAgICBib29sIG9rID0gU2FuZGJveEV4dGVuc2lv
bjo6Y29uc3VtZVBlcm1hbmVudGx5KGhhbmRsZSk7CisgICAgQVNTRVJUX1VOVVNFRChvaywgb2sp
OworICAgIF9DRlByZWZzU2V0RGlyZWN0TW9kZUVuYWJsZWQoZmFsc2UpOworfQorI2VuZGlmCisK
ICNpZiBQTEFURk9STShJT1MpCiB2b2lkIFdlYlByb2Nlc3M6OmdyYW50QWNjZXNzVG9Bc3NldFNl
cnZpY2VzKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgbW9iaWxlQXNzZXRIYW5k
bGUsICBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmIG1vYmlsZUFzc2V0VjJIYW5k
bGUpCiB7CkBAIC0xMDA4LDYgKzEwMTcsMTcgQEAgdm9pZCBXZWJQcm9jZXNzOjp1cGRhdGVQYWdl
U2NyZWVuUHJvcGVydAogfQogI2VuZGlmCiAKK3ZvaWQgV2ViUHJvY2Vzczo6dW5ibG9ja0FjY2Vz
c2liaWxpdHlTZXJ2ZXIoY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBoYW5kbGUpCit7
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBib29sIG9rID0gU2FuZGJveEV4dGVuc2lv
bjo6Y29uc3VtZVBlcm1hbmVudGx5KGhhbmRsZSk7CisgICAgQVNTRVJUX1VOVVNFRChvaywgb2sp
OworI2VuZGlmCisgICAgCisgICAgcmVnaXN0ZXJXaXRoQWNjZXNzaWJpbGl0eSgpOworfQorCisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgUkVMRUFTRV9MT0dfU0VTU0lPTl9JRApJ
bmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2
aXNpb24gMjU4MDEyKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMjAtMDMtMDYgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29t
PgorCisgICAgICAgIFtDb2NvYV0gUmUtZW5hYmxlIENGUHJlZnMgZGlyZWN0IG1vZGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODY5MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR3JhbnRBY2Nlc3NUb1ByZWZlcmVuY2VzU2VydmljZS5t
bTogQWRkZWQuCisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L2lvcy9BY2Nlc3NpYmlsaXR5VGVzdHNJT1MubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKwogMjAyMC0wMy0wNiAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAog
ICAgICAgICBVSVByb2Nlc3MgY3Jhc2ggYWZ0ZXIgdXNpbmcgX3ByZXBhcmVGb3JNb3ZlVG9XaW5k
b3csIHRoZW4gZGVhbGxvY2F0aW5nIHRoZSBXS1dlYlZpZXcgYmVmb3JlIG1vdmluZyB0byB0aGUg
d2luZG93CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjU3ODc0KQorKysg
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHdvcmtpbmcgY29weSkKQEAgLTEwMDMsNiArMTAwMyw3IEBACiAJCUUzMjRBNkYwMjA0MUM4
MjAwMEE3NjU5MyAvKiBVbmlxdWVBcnJheS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMzk4QkMwRjIwNDFDNzYzMDAzODcxMzYgLyogVW5pcXVlQXJy
YXkuY3BwICovOyB9OwogCQlFMzI1QzkwNzIzRTM4NzAyMDBCQzdEM0IgLyogUGljdHVyZUluUGlj
dHVyZVN1cHBvcnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMzI1QzkwNjIzRTM4NzAyMDBCQzdEM0IgLyogUGljdHVyZUluUGljdHVyZVN1cHBvcnQu
bW0gKi87IH07CiAJCUUzMkI1NDkyMjI4MTBBQzQwMDhBRDcwMiAvKiBQYWNrZWQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMyQjU0OTEyMjgxMEFD
MDAwOEFENzAyIC8qIFBhY2tlZC5jcHAgKi87IH07CisJCUUzNEE2RDE5MjQxMkRFMzkwMDEyQUI2
RSAvKiBHcmFudEFjY2Vzc1RvUHJlZmVyZW5jZXNTZXJ2aWNlLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM0QTZEMTgyNDEyREUzOTAwMTJBQjZFIC8q
IEdyYW50QWNjZXNzVG9QcmVmZXJlbmNlc1NlcnZpY2UubW0gKi87IH07CiAJCUUzNUI5MDgyMjNG
NjBERDAwMDAwMTFGRiAvKiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNUI5MDgxMjNGNjBERDAwMDAwMTFGRiAv
KiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5tbSAqLzsgfTsKIAkJRTM1RkM3QjIyMkI4MkE3MzAwRjMy
Rjk4IC8qIEpTTG9ja1Rha2VzV2ViVGhyZWFkTG9jay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNUZDN0IxMjJCODJBNkQwMEYzMkY5OCAvKiBKU0xv
Y2tUYWtlc1dlYlRocmVhZExvY2subW0gKi87IH07CiAJCUUzNzNENzkxMUYyQ0YzNTIwMEM2RkFB
RiAvKiBTaWduYWxzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzOTUzRjk1MUYyQ0YzMjEwMEE3NkEyRSAvKiBTaWduYWxzLmNwcCAqLzsgfTsKQEAg
LTI1OTksNiArMjYwMCw3IEBACiAJCUUzMDJCREE5MjQwNEI5MjMwMDg2NTI3NyAvKiBDb21wYWN0
UmVmUHRyVHVwbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29t
cGFjdFJlZlB0clR1cGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMyNUM5
MDYyM0UzODcwMjAwQkM3RDNCIC8qIFBpY3R1cmVJblBpY3R1cmVTdXBwb3J0Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gUGljdHVyZUluUGljdHVyZVN1cHBvcnQubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUzMkI1NDkxMjI4MTBBQzAwMDhBRDcwMiAvKiBQYWNrZWQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUGFja2VkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTM0QTZEMTgyNDEyREUzOTAwMTJBQjZFIC8qIEdyYW50QWNjZXNzVG9QcmVmZXJlbmNlc1Nl
cnZpY2UubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBHcmFudEFjY2Vzc1RvUHJlZmVyZW5jZXNT
ZXJ2aWNlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzVCOTA4MTIzRjYwREQw
MDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBMb2NhbGl6ZWREZXZpY2VNb2RlbC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTM1RkM3QjEyMkI4MkE2RDAwRjMyRjk4IC8qIEpTTG9ja1Rha2VzV2ViVGhyZWFkTG9jay5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEpTTG9ja1Rha2VzV2ViVGhy
ZWFkTG9jay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM4ODg4NzAyMEM5MDk4
MTAwRTYzMkJDIC8qIFdvcmtlclBvb2wuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV29ya2VyUG9vbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
OTA2LDYgKzI5MDgsNyBAQAogCQkJCUMxNUNCQjJGMjNGMUZGMUEwMDMwMENDNyAvKiBCYWNrbGln
aHRMZXZlbE5vdGlmaWNhdGlvbi5tbSAqLywKIAkJCQlDMTY5MkRDOTIzRDEwREFFMDA2RTg4Rjcg
LyogQmF0dGVyeS5tbSAqLywKIAkJCQlFMzk0QUU2RTIzRjIzMDNFMDA1QjQ5MzYgLyogR3JhbnRB
Y2Nlc3NUb01vYmlsZUFzc2V0cy5tbSAqLywKKwkJCQlFMzRBNkQxODI0MTJERTM5MDAxMkFCNkUg
LyogR3JhbnRBY2Nlc3NUb1ByZWZlcmVuY2VzU2VydmljZS5tbSAqLywKIAkJCQlFMzVCOTA4MTIz
RjYwREQwMDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwubW0gKi8sCiAJCQkJQzE0NUND
MEIyM0RBNUEwRjAwM0E1RUVCIC8qIE1pbWVUeXBlcy5tbSAqLywKIAkJCQlFMzI1QzkwNjIzRTM4
NzAyMDBCQzdEM0IgLyogUGljdHVyZUluUGljdHVyZVN1cHBvcnQubW0gKi8sCkBAIC00ODQzLDYg
KzQ4NDYsNyBAQAogCQkJCTA3Q0UxQ0YzMUYwNkE3RTAwMEJGODlGNSAvKiBHZXRVc2VyTWVkaWFO
YXZpZ2F0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMDdFNDk5OTExRjlFNTZERjAwMkYxRUYz
IC8qIEdldFVzZXJNZWRpYVJlcHJvbXB0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRTM5NEFFNkYy
M0YyMzAzRTAwNUI0OTM2IC8qIEdyYW50QWNjZXNzVG9Nb2JpbGVBc3NldHMubW0gaW4gU291cmNl
cyAqLywKKwkJCQlFMzRBNkQxOTI0MTJERTM5MDAxMkFCNkUgLyogR3JhbnRBY2Nlc3NUb1ByZWZl
cmVuY2VzU2VydmljZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCThFNEE4NTM3MUUxRDFBQjIwMEY1
M0IwRiAvKiBHcmlkUG9zaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRkExQTQx
MUFFNjAwNDQ3QzRDIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTdDQ0U3RUMxMUE0MTFBN0UwMDQ0N0M0QyAvKiBIVE1MQ29sbGVjdGlvbk5hbWVkSXRl
bS5tbSBpbiBTb3VyY2VzICovLApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvR3JhbnRBY2Nlc3NUb1ByZWZlcmVuY2VzU2VydmljZS5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HcmFudEFjY2Vzc1RvUHJlZmVyZW5jZXNTZXJ2
aWNlLm1tCShub25leGlzdGVudCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L0dyYW50QWNjZXNzVG9QcmVmZXJlbmNlc1NlcnZpY2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFdLX0hB
VkVfQ19TUEkKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3RX
S1dlYlZpZXcuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CisKK1RFU1Qo
V2ViS2l0LCBHcmFudEFjY2Vzc1ByZWZlcmVuY2VzU2VydmljZSkKK3sKKyAgICBhdXRvIGNvbmZp
Z3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0p
OworICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVGVzdFdl
YktpdEFQSTo6VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiSW50ZXJu
YWxzSW5qZWN0ZWRCdW5kbGVUZXN0IikpOworICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkucHJvY2Vz
c1Bvb2wgPSAoV0tQcm9jZXNzUG9vbCAqKWNvbnRleHQuZ2V0KCk7CisgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVj
dCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIGFkZFRv
V2luZG93OllFU10pOworCisgICAgW3dlYlZpZXcgX2dyYW50QWNjZXNzVG9QcmVmZXJlbmNlU2Vy
dmljZV07CisKKyAgICBhdXRvIHNhbmRib3hBY2Nlc3MgPSBbJl0geworICAgICAgICByZXR1cm4g
W3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy5pbnRlcm5hbHMu
aGFzU2FuZGJveE1hY2hMb29rdXBBY2Nlc3NUb0dsb2JhbE5hbWUoJ2NvbS5hcHBsZS5XZWJLaXQu
V2ViQ29udGVudCcsICdjb20uYXBwbGUuY2ZwcmVmc2QuZGFlbW9uJykiXS5ib29sVmFsdWU7Cisg
ICAgfTsKKworICAgIEFTU0VSVF9UUlVFKHNhbmRib3hBY2Nlc3MpOworfQorCisjZW5kaWYKSW5k
ZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0FjY2Vzc2liaWxpdHlUZXN0c0lPUy5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9BY2Nlc3NpYmls
aXR5VGVzdHNJT1MubW0JKHJldmlzaW9uIDI1Nzg3NCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvaW9zL0FjY2Vzc2liaWxpdHlUZXN0c0lPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzYs
NiArMzYsMTIgQEAKICNpbXBvcnQgPFdlYktpdC9fV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UuaD4K
ICNpbXBvcnQgPFdlYktpdC9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5oPgogCisjaW1wb3J0IDx3
dGYvU29mdExpbmtpbmcuaD4KKworU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLKEFjY2Vzc2li
aWxpdHlGcmFtZXdvcmtzKQorU09GVF9MSU5LKEFjY2Vzc2liaWxpdHlGcmFtZXdvcmtzLCBfQVhT
Wm9vbVRvdWNoU2V0RW5hYmxlZCwgdm9pZCwgKEJvb2xlYW4gZW5hYmxlZCksIChlbmFibGVkKSk7
CitTT0ZUX0xJTksoQWNjZXNzaWJpbGl0eUZyYW1ld29ya3MsIF9BWFNBcHBsaWNhdGlvbkFjY2Vz
c2liaWxpdHlTZXRFbmFibGVkLCB2b2lkLCAoQm9vbGVhbiBlbmFibGVkKSwgKGVuYWJsZWQpKTsK
KwogQGltcGxlbWVudGF0aW9uIFdLV2ViVmlldyAoV0tBY2Nlc3NpYmlsaXR5VGVzdGluZykKIC0g
KE5TQXJyYXk8TlNWYWx1ZSAqPiAqKXJlY3RzQXRTZWxlY3Rpb25PZmZzZXQ6KE5TSW50ZWdlcilv
ZmZzZXQgd2l0aFRleHQ6KE5TU3RyaW5nICopdGV4dAogewpAQCAtMTQ4LDYgKzE1NCw5IEBAIFRF
U1QoQWNjZXNzaWJpbGl0eVRlc3RzLCBTdG9yZVNlbGVjdGlvbikKIAogVEVTVChBY2Nlc3NpYmls
aXR5VGVzdHMsIFdlYlByb2Nlc3NMb2FkZXJCdW5kbGVMb2FkZWQpCiB7CisgICAgX0FYU1pvb21U
b3VjaFNldEVuYWJsZWQodHJ1ZSk7CisgICAgX0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eVNl
dEVuYWJsZWQodHJ1ZSk7CisKICAgICBXS1dlYlZpZXdDb25maWd1cmF0aW9uICpjb25maWd1cmF0
aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0
UGx1Z0luQ2xhc3NOYW1lOkAiQWNjZXNzaWJpbGl0eVRlc3RQbHVnaW4iXTsKICAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1Jl
Y3RNYWtlKDAsIDAsIDMyMCwgNTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAg
ICBfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UgKmludGVyZmFjZSA9IFtfV0tSZW1vdGVPYmplY3RJ
bnRlcmZhY2UgcmVtb3RlT2JqZWN0SW50ZXJmYWNlV2l0aFByb3RvY29sOkBwcm90b2NvbChBY2Nl
c3NpYmlsaXR5VGVzdFN1cHBvcnRQcm90b2NvbCldOwpAQCAtMTcxLDYgKzE4MCw5IEBAICAgICBp
ZCA8QWNjZXNzaWJpbGl0eVRlc3RTdXBwb3J0UHJvdG9jb2wKICAgICAgICAgaXNEb25lID0gdHJ1
ZTsKICAgICB9XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisKKyAg
ICBfQVhTWm9vbVRvdWNoU2V0RW5hYmxlZChmYWxzZSk7CisgICAgX0FYU0FwcGxpY2F0aW9uQWNj
ZXNzaWJpbGl0eVNldEVuYWJsZWQoZmFsc2UpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJCkluZGV4OiBXZWJLaXQueGN3b3Jrc3BhY2UveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9B
bGwgU291cmNlLnhjc2NoZW1lCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC54Y3dvcmtzcGFjZS94Y3No
YXJlZGRhdGEveGNzY2hlbWVzL0FsbCBTb3VyY2UueGNzY2hlbWUJKHJldmlzaW9uIDI1Nzg3NCkK
KysrIFdlYktpdC54Y3dvcmtzcGFjZS94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL0FsbCBTb3VyY2Uu
eGNzY2hlbWUJKHdvcmtpbmcgY29weSkKQEAgLTE1Miw3ICsxNTIsNyBAQAogICAgICAgPC9UZXN0
YWJsZXM+CiAgICA8L1Rlc3RBY3Rpb24+CiAgICA8TGF1bmNoQWN0aW9uCi0gICAgICBidWlsZENv
bmZpZ3VyYXRpb24gPSAiRGVidWciCisgICAgICBidWlsZENvbmZpZ3VyYXRpb24gPSAiUmVsZWFz
ZSIKICAgICAgIHNlbGVjdGVkRGVidWdnZXJJZGVudGlmaWVyID0gIlhjb2RlLkRlYnVnZ2VyRm91
bmRhdGlvbi5EZWJ1Z2dlci5MTERCIgogICAgICAgc2VsZWN0ZWRMYXVuY2hlcklkZW50aWZpZXIg
PSAiWGNvZGUuRGVidWdnZXJGb3VuZGF0aW9uLkxhdW5jaGVyLkxMREIiCiAgICAgICBsYXVuY2hT
dHlsZSA9ICIwIgpJbmRleDogV2ViS2l0Lnhjd29ya3NwYWNlL3hjc2hhcmVkZGF0YS94Y3NjaGVt
ZXMvQWxsIFRvb2xzLnhjc2NoZW1lCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC54Y3dvcmtzcGFjZS94
Y3NoYXJlZGRhdGEveGNzY2hlbWVzL0FsbCBUb29scy54Y3NjaGVtZQkocmV2aXNpb24gMjU3ODc0
KQorKysgV2ViS2l0Lnhjd29ya3NwYWNlL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvQWxsIFRvb2xz
Lnhjc2NoZW1lCSh3b3JraW5nIGNvcHkpCkBAIC05Niw3ICs5Niw3IEBACiAgICAgICA8L1Rlc3Rh
Ymxlcz4KICAgIDwvVGVzdEFjdGlvbj4KICAgIDxMYXVuY2hBY3Rpb24KLSAgICAgIGJ1aWxkQ29u
ZmlndXJhdGlvbiA9ICJEZWJ1ZyIKKyAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJSZWxlYXNl
IgogICAgICAgc2VsZWN0ZWREZWJ1Z2dlcklkZW50aWZpZXIgPSAiWGNvZGUuRGVidWdnZXJGb3Vu
ZGF0aW9uLkRlYnVnZ2VyLkxMREIiCiAgICAgICBzZWxlY3RlZExhdW5jaGVySWRlbnRpZmllciA9
ICJYY29kZS5EZWJ1Z2dlckZvdW5kYXRpb24uTGF1bmNoZXIuTExEQiIKICAgICAgIGxhdW5jaFN0
eWxlID0gIjAiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392769</attachid>
            <date>2020-03-06 13:49:15 -0800</date>
            <delta_ts>2020-03-06 16:56:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208690-20200306134914.patch</filename>
            <type>text/plain</type>
            <size>33436</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAzLTA1ICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFJlLWVuYWJsZSBDRlByZWZzIGRp
cmVjdCBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDg2OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZS5oOgorCiAyMDIwLTAzLTA0ICBQZXIgQXJuZSBWb2xsYW4g
IDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIEFkZCBlbmFibGUgZmxhZyB0
byBkaXNhYmxlIGRpcmVjdCBtb2RlIGZvciBwcmVmZXJlbmNlcwpJbmRleDogU291cmNlL1dURi93
dGYvUGxhdGZvcm1FbmFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUVuYWJsZS5oCShyZXZpc2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVu
YWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04NzIsNCArODcyLDQgQEAKICNlcnJvciAiRU5BQkxF
KFdFQkdMMikgcmVxdWlyZXMgRU5BQkxFKFdFQkdMKSIKICNlbmRpZgogCi0jZGVmaW5lIEVOQUJM
RV9DRlBSRUZTX0RJUkVDVF9NT0RFIDAKKyNkZWZpbmUgRU5BQkxFX0NGUFJFRlNfRElSRUNUX01P
REUgMQpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1ODAxMikKKysrIFNvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTcgQEAKKzIwMjAtMDMtMDYgIFBlciBB
cm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUmUtZW5h
YmxlIENGUHJlZnMgZGlyZWN0IG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwODY5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmUtZW5hYmxlZCBDRiBwcmVmcyBkaXJlY3QgbW9k
ZSBvbiBpT1MgYW5kIG1hY09TLCBhbmQgYWRkcmVzc2VzIHBlcmZvcm1hbmNlIGlzc3VlcyBhbmQg
QWNjZXNzaWJpbGl0eSBpc3N1ZXMKKyAgICAgICAgd2l0aCB0aGUgb3JpZ2luYWwgcGF0Y2guIFBl
cmZvcm1hbmNlIGlzc3VlcyBhcmUgYWRkcmVzc2VkIGJ5IGNyZWF0aW5nIHRoZSBOU1VzZXJEZWZh
dWx0cyBvYmplY3RzIGluIHRoZSBVSSBwcm9jZXNzIG9uCisgICAgICAgIGEgbm9uLW1haW4gdGhy
ZWFkLCB3aGlsZSB0aGUgQWNjZXNzaWJpbGl0eSBpc3N1ZXMgYXJlIGZpeGVkIGJ5IGlzc3Vpbmcg
YW4gZXh0ZW5zaW9uIHRvIHRoZSBwcmVmZXJlbmNlcyBzZXJ2aWNlIHdoZW4KKyAgICAgICAgQWNj
ZXNzaWJpbGl0eSBpcyBlbmFibGVkLgorCisgICAgICAgIEFQSSB0ZXN0OiBXZWJLaXQuR3JhbnRB
Y2Nlc3NQcmVmZXJlbmNlc1NlcnZpY2UKKworICAgICAgICAqIFJlc291cmNlcy9TYW5kYm94UHJv
ZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYjoKKyAgICAgICAgKiBTaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9ncmFudEFjY2Vz
c1RvUHJlZmVyZW5jZVNlcnZpY2VdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvUHJlZmVyZW5jZU9i
c2VydmVyLm1tOgorICAgICAgICAocmVnaXN0ZXJEZWZhdWx0c092ZXJyaWRlKToKKyAgICAgICAg
KC1bV0tVc2VyRGVmYXVsdHMgX25vdGlmeU9ic2VydmVyc09mQ2hhbmdlRnJvbVZhbHVlc0Zvcktl
eXM6dG9WYWx1ZXNGb3JLZXlzOl0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VPYnNlcnZlciBp
bml0XSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmdyYW50QWNjZXNzVG9QcmVmZXJlbmNlU2Vy
dmljZSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1SZXNvbHZlUGF0aHNGb3JT
YW5kYm94RXh0ZW5zaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0
Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bv
b2w6OnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQcm94eTo6dW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXJJZk5lZWRlZCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6dW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlSWZOZWVkZWQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hp
bmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5Ojp1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjp1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcik6IERlbGV0ZWQuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxp
emVXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0
aWFsaXplUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVuYmxvY2tQcmVm
ZXJlbmNlU2VydmljZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVuYmxvY2tBY2Nl
c3NpYmlsaXR5U2VydmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9j
ZXNzLnNiLmluOgorCiAyMDIwLTAzLTA2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIE1vdmUgc3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zIHRvIFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlCkluZGV4OiBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9T
YW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5h
cHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgkocmV2aXNpb24gMjU3ODc5KQorKysgU291cmNlL1dl
YktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNv
bnRlbnQuc2IJKHdvcmtpbmcgY29weSkKQEAgLTUzNiw3ICs1MzYsNiBAQAogKGFsbG93IG1hY2gt
bG9va3VwCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUubG9nZCIpCiAgICAgKGdsb2JhbC1u
YW1lICJjb20uYXBwbGUubG9nZC5ldmVudHMiKQotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxl
LmNmcHJlZnNkLmRhZW1vbiIpCiApCiAKIChkZW55IG1hY2gtbG9va3VwICh3aXRoIHRlbGVtZXRy
eSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTg1LDcgKzE4NSw3IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2QK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICAvLyBGSVhNRSgyMDc3MTYpOiBUaGUgZm9sbG93aW5n
IHNob3VsZCBiZSByZW1vdmVkIHdoZW4gdGhlIEdQVSBwcm9jZXNzIGlzIGNvbXBsZXRlLgogICAg
IGVuY29kZXIgPDwgbWVkaWFFeHRlbnNpb25IYW5kbGVzOwotI2lmICFFTkFCTEUoQ0ZQUkVGU19E
SVJFQ1RfTU9ERSkKKyNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKICAgICBlbmNvZGVy
IDw8IHByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlOwogI2VuZGlmCiAjZW5kaWYKQEAgLTUwNCw3
ICs1MDQsNyBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kCiAgICAg
cGFyYW1ldGVycy5tZWRpYUV4dGVuc2lvbkhhbmRsZXMgPSBXVEZNb3ZlKCptZWRpYUV4dGVuc2lv
bkhhbmRsZXMpOwogICAgIC8vIEZJWE1FKDIwNzcxNik6IEVuZCByZWdpb24gdG8gcmVtb3ZlLgog
Ci0jaWYgIUVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQorI2lmIEVOQUJMRShDRlBSRUZTX0RJ
UkVDVF9NT0RFKQogICAgIE9wdGlvbmFsPE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZT4+IHByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlOwogICAgIGRlY29kZXIgPj4gcHJlZmVyZW5j
ZXNFeHRlbnNpb25IYW5kbGU7CiAgICAgaWYgKCFwcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZSkK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgJKHJldmlzaW9uIDI1Nzg3NSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjI2LDcgKzIy
Niw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKIAogI2lmIFBMQVRG
T1JNKENPQ09BKQogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IG1lZGlhRXh0ZW5z
aW9uSGFuZGxlczsgLy8gRklYTUUoMjA3NzE2KTogUmVtb3ZlIHdoZW4gR1BVIHByb2Nlc3MgaXMg
Y29tcGxldGUuCi0jaWYgIUVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQorI2lmIEVOQUJMRShD
RlBSRUZTX0RJUkVDVF9NT0RFKQogICAgIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZT4gcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGU7CiAjZW5kaWYKICNlbmRpZgpJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHJldmlzaW9uIDI1Nzg3NCkKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
NzA1LDYgKzE3MDUsMTAgQEAgcHVibGljOgogICAgIHZvaWQgcmV2b2tlQWNjZXNzVG9Bc3NldFNl
cnZpY2VzKCk7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgZ3JhbnRB
Y2Nlc3NUb1ByZWZlcmVuY2VTZXJ2aWNlKCk7CisjZW5kaWYKKwogICAgIHZvaWQgc2V0SXNOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpblRlc3RpbmcoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuaAkocmV2aXNpb24gMjU3ODc0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaAkod29ya2luZyBjb3B5KQpAQCAtNzA0LDcgKzcwNCw3IEBAIHByaXZh
dGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFBlckFjdGl2aXR5U3RhdGVDUFVVc2FnZVNhbXBsZXI+
IG1fcGVyQWN0aXZpdHlTdGF0ZUNQVVVzYWdlU2FtcGxlcjsKICNlbmRpZgogCi0jaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8TlNPYmpl
Y3Q+IG1fYWNjZXNzaWJpbGl0eUVuYWJsZWRPYnNlcnZlcjsKICNlbmRpZgogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAJKHJldmlzaW9uIDI1Nzg3
NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTkyMyw3ICs5MjMsOSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRmlu
aXNoTGF1bmNoaW5nCiAgICAgICAgIGlmICh4cGNfY29ubmVjdGlvbl90IHhwY0Nvbm5lY3Rpb24g
PSBjb25uZWN0aW9uKCktPnhwY0Nvbm5lY3Rpb24oKSkKICAgICAgICAgICAgIG1fdGhyb3R0bGVy
LmRpZENvbm5lY3RUb1Byb2Nlc3MoeHBjX2Nvbm5lY3Rpb25fZ2V0X3BpZCh4cGNDb25uZWN0aW9u
KSk7CiAgICAgfQorI2VuZGlmCiAKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICB1bmJsb2NrQWNj
ZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKCk7CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgJKHJldmlzaW9uIDI1Nzg3NCkKKysrIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
MzMsOCArMzMzLDkgQEAgcHVibGljOgogICAgIHZvaWQgZW5hYmxlUmVtb3RlSW5zcGVjdG9ySWZO
ZWVkZWQoKTsKICNlbmRpZgogICAgIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYgUExB
VEZPUk0oQ09DT0EpCiAgICAgdm9pZCB1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVk
KCk7CisgICAgdm9pZCB1bmJsb2NrUHJlZmVyZW5jZVNlcnZpY2VJZk5lZWRlZCgpOwogI2VuZGlm
CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtNTI4LDEwICs1MjksMTQgQEAgcHJpdmF0
ZToKICAgICBGb3JlZ3JvdW5kV2ViUHJvY2Vzc1Rva2VuIG1fZm9yZWdyb3VuZFRva2VuOwogICAg
IEJhY2tncm91bmRXZWJQcm9jZXNzVG9rZW4gbV9iYWNrZ3JvdW5kVG9rZW47CiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICBib29sIG1faGFzU2VudE1lc3NhZ2VUb1VuYmxvY2tBY2Nlc3Np
YmlsaXR5U2VydmVyIHsgZmFsc2UgfTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6RGVm
ZXJyYWJsZU9uZVNob3RUaW1lcj4gbV91bmV4cGVjdGVkQWN0aXZpdHlUaW1lcjsKICNlbmRpZgog
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgYm9vbCBtX2hhc1NlbnRNZXNzYWdlVG9VbmJsb2Nr
QWNjZXNzaWJpbGl0eVNlcnZlciB7IGZhbHNlIH07CisgICAgYm9vbCBtX2hhc1NlbnRNZXNzYWdl
VG9VbmJsb2NrUHJlZmVyZW5jZVNlcnZpY2UgeyBmYWxzZSB9OworI2VuZGlmCisKICAgICBIYXNo
TWFwPFN0cmluZywgdWludDY0X3Q+IG1fcGFnZVVSTFJldGFpbkNvdW50TWFwOwogCiAgICAgT3B0
aW9uYWw8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+IG1fcmVnaXN0cmFibGVEb21haW47Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0J
KHJldmlzaW9uIDI1Nzg3NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTI4OTksNiArMjg5OSwxMiBAQCAtIChDR0Zs
b2F0KV9taW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgKICNlbmRpZgogfQogCistICh2b2lkKV9n
cmFudEFjY2Vzc1RvUHJlZmVyZW5jZVNlcnZpY2UKK3sKKyAgICBpZiAoX3BhZ2UpCisgICAgICAg
IF9wYWdlLT5ncmFudEFjY2Vzc1RvUHJlZmVyZW5jZVNlcnZpY2UoKTsKK30KKwogI3ByYWdtYSBt
YXJrIC0gc2Nyb2xsUGVyZm9ybWFuY2VEYXRhCiAKIC0gKHZvaWQpX3NldFNjcm9sbFBlcmZvcm1h
bmNlRGF0YUNvbGxlY3Rpb25FbmFibGVkOihCT09MKWVuYWJsZWQKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAkocmV2
aXNpb24gMjU3ODc0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzM5LDYgKzMzOSw4IEBAIGZvciB0aGlz
IHByb3BlcnR5LgogCiAtICh2b2lkKV9zZXRJc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluOihC
T09MKWlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQg
KF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKKy0gKHZvaWQpX2dyYW50QWNjZXNzVG9QcmVmZXJl
bmNlU2VydmljZSBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CisKIEBlbmQKIAog
I2lmIFRBUkdFVF9PU19JUEhPTkUKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1ByZWZlcmVuY2VPYnNlcnZlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIubW0JKHJldmlzaW9uIDI1Nzg3NCkKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMjgsMTAgKzI4LDI1IEBACiAKICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgi
CiAKKyNpbXBvcnQgPHd0Zi9PYmpDUnVudGltZUV4dHJhcy5oPgorCitzdGF0aWMgSU1QIHJlZ2lz
dGVyRGVmYXVsdHNPcmlnaW5hbCA9IG5pbDsKK3N0YXRpYyBib29sIHJlZ2lzdGVyaW5nRGVmYXVs
dHMgPSBmYWxzZTsKKworc3RhdGljIHZvaWQgcmVnaXN0ZXJEZWZhdWx0c092ZXJyaWRlKGlkIHNl
bGYsIFNFTCBzZWxlY3RvciwgTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqZGljdGlvbmFy
eSkKK3sKKyAgICByZWdpc3RlcmluZ0RlZmF1bHRzID0gdHJ1ZTsKKyAgICB3dGZDYWxsSU1QPHZv
aWQ+KHJlZ2lzdGVyRGVmYXVsdHNPcmlnaW5hbCwgc2VsZiwgc2VsZWN0b3IsIGRpY3Rpb25hcnkp
OworICAgIHJlZ2lzdGVyaW5nRGVmYXVsdHMgPSBmYWxzZTsKK30KKwogQGltcGxlbWVudGF0aW9u
IFdLVXNlckRlZmF1bHRzCiAKIC0gKHZvaWQpX25vdGlmeU9ic2VydmVyc09mQ2hhbmdlRnJvbVZh
bHVlc0ZvcktleXM6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKilvbGRWYWx1ZXMgdG9W
YWx1ZXNGb3JLZXlzOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopbmV3VmFsdWVzCiB7
CisgICAgaWYgKHJlZ2lzdGVyaW5nRGVmYXVsdHMpCisgICAgICAgIHJldHVybjsKKwogICAgIFtz
dXBlciBfbm90aWZ5T2JzZXJ2ZXJzT2ZDaGFuZ2VGcm9tVmFsdWVzRm9yS2V5czpvbGRWYWx1ZXMg
dG9WYWx1ZXNGb3JLZXlzOm5ld1ZhbHVlc107CiAKICAgICBpZiAoW29sZFZhbHVlcyBpc0VxdWFs
VG9EaWN0aW9uYXJ5Om5ld1ZhbHVlc10pCkBAIC04Nyw2ICsxMDIsOSBAQCArIChpZClzaGFyZWRJ
bnN0YW5jZQogCiAtIChpbnN0YW5jZXR5cGUpaW5pdAogeworICAgIE1ldGhvZCByZWdpc3RlckRl
ZmF1bHRzTWV0aG9kID0gY2xhc3NfZ2V0SW5zdGFuY2VNZXRob2Qob2JqY19nZXRDbGFzcygiTlNV
c2VyRGVmYXVsdHMiKSwgQHNlbGVjdG9yKHJlZ2lzdGVyRGVmYXVsdHM6KSk7CisgICAgcmVnaXN0
ZXJEZWZhdWx0c09yaWdpbmFsID0gbWV0aG9kX3NldEltcGxlbWVudGF0aW9uKHJlZ2lzdGVyRGVm
YXVsdHNNZXRob2QsIChJTVApcmVnaXN0ZXJEZWZhdWx0c092ZXJyaWRlKTsKKwogICAgIHN0ZDo6
aW5pdGlhbGl6ZXJfbGlzdDxOU1N0cmluZyo+IGRvbWFpbnMgPSB7CiAgICAgICAgIEAiY29tLmFw
cGxlLkFjY2Vzc2liaWxpdHkiLAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQko
cmV2aXNpb24gMjU3ODc0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFn
ZVByb3h5Q29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTMxNCw0ICszMTQsOSBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkQ3JlYXRlQ29udGV4dEluR1BVCiB9CiAjZW5kaWYKIAordm9pZCBXZWJQ
YWdlUHJveHk6OmdyYW50QWNjZXNzVG9QcmVmZXJlbmNlU2VydmljZSgpCit7CisgICAgcHJvY2Vz
cygpLnVuYmxvY2tQcmVmZXJlbmNlU2VydmljZUlmTmVlZGVkKCk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vz
c1Bvb2xDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCShyZXZpc2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC05MCw2ICs5MCw5IEBAIFNPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SSyhXZWJDb250ZW50
QW4KIFNPRlRfTElOS19DTEFTUyhXZWJDb250ZW50QW5hbHlzaXMsIFdlYkZpbHRlckV2YWx1YXRv
cik7CiAjZW5kaWYKIAorZXh0ZXJuICJDIiBCb29sZWFuIF9BWFNBcHBsaWNhdGlvbkFjY2Vzc2li
aWxpdHlFbmFibGVkKCk7CitleHRlcm4gQ0ZTdHJpbmdSZWYga0FYU0FwcGxpY2F0aW9uQWNjZXNz
aWJpbGl0eUVuYWJsZWROb3RpZmljYXRpb247CisKICNpZiBQTEFURk9STShDT0NPQSkKICNpbXBv
cnQgPFdlYkNvcmUvU3lzdGVtQmF0dGVyeS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9ORUZp
bHRlclNvdXJjZVNQSS5oPgpAQCAtMTczLDYgKzE3NiwxMyBAQCB2b2lkIFdlYlByb2Nlc3NQb29s
OjpwbGF0Zm9ybUluaXRpYWxpemUoCiAgICAgICAgIGluc3RhbGxNZW1vcnlQcmVzc3VyZUhhbmRs
ZXIoKTsKIAogICAgIHNldExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudChtYWtlVW5p
cXVlPExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudD4oKSk7CisKKyNpZiBFTkFCTEUo
Q0ZQUkVGU19ESVJFQ1RfTU9ERSkKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfZ2xv
YmFsX3F1ZXVlKFFPU19DTEFTU19CQUNLR1JPVU5ELCAwKSwgXnsKKyAgICAgICAgLy8gU3RhcnQg
b2JzZXJ2aW5nIHByZWZlcmVuY2UgY2hhbmdlcy4KKyAgICAgICAgW1dLUHJlZmVyZW5jZU9ic2Vy
dmVyIHNoYXJlZEluc3RhbmNlXTsKKyAgICB9KTsKKyNlbmRpZgogfQogCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKQEAgLTE5NywxMSArMjA3LDYgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxh
dGZvcm1SZXNvbHZlUGF0aAogICAgIG1fcmVzb2x2ZWRQYXRocy5jb250YWluZXJDYWNoZXNEaXJl
Y3RvcnkgPSByZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVu
c2lvbihXZWJQcm9jZXNzUG9vbDo6d2ViQ29udGVudENhY2hlc0RpcmVjdG9yeSgpKTsKICAgICBt
X3Jlc29sdmVkUGF0aHMuY29udGFpbmVyVGVtcG9yYXJ5RGlyZWN0b3J5ID0gcmVzb2x2ZUFuZENy
ZWF0ZVJlYWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24oV2ViUHJvY2Vzc1Bvb2w6
OmNvbnRhaW5lclRlbXBvcmFyeURpcmVjdG9yeSgpKTsKICNlbmRpZgotCi0jaWYgRU5BQkxFKENG
UFJFRlNfRElSRUNUX01PREUpCi0gICAgLy8gU3RhcnQgb2JzZXJ2aW5nIHByZWZlcmVuY2UgY2hh
bmdlcy4KLSAgICBbV0tQcmVmZXJlbmNlT2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdOwotI2VuZGlm
CiB9CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC00NDIsMTAgKzQ0NywxMyBAQCB2b2lkIFdlYlBy
b2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXCiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAw
LCBzaXplID0gc2VydmljZXMuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKQogICAgICAgICAgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cChzZXJ2aWNlc1tpXSwgV1RG
OjpudWxsb3B0LCBwYXJhbWV0ZXJzLm1lZGlhRXh0ZW5zaW9uSGFuZGxlc1tpXSk7CiAgICAgfQot
I2lmICFFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKLSAgICBTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGUgcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGU7Ci0gICAgU2FuZGJveEV4dGVuc2lvbjo6
Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIsIFdU
Rjo6bnVsbG9wdCwgcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGUpOwotICAgIHBhcmFtZXRlcnMu
cHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKHByZWZlcmVuY2VzRXh0ZW5zaW9u
SGFuZGxlKTsKKworI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQorICAgIGlmIChfQVhT
QXBwbGljYXRpb25BY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSBwcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZTsKKyAgICAgICAgU2FuZGJv
eEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmNmcHJlZnNk
LmRhZW1vbiIsIFdURjo6bnVsbG9wdCwgcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGUpOworICAg
ICAgICBwYXJhbWV0ZXJzLnByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZShwcmVm
ZXJlbmNlc0V4dGVuc2lvbkhhbmRsZSk7CisgICAgfQogI2VuZGlmCiB9CiAKQEAgLTY0NywxNSAr
NjU1LDE3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlZ2lzdGVyTm90aWZpY2F0aW8KICNlbGlm
ICFQTEFURk9STShNQUNDQVRBTFlTVCkKICAgICBDRk5vdGlmaWNhdGlvbkNlbnRlckFkZE9ic2Vy
dmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2luTm90aWZ5Q2VudGVyKCksIHRoaXMsIGJh
Y2tsaWdodExldmVsRGlkQ2hhbmdlQ2FsbGJhY2ssIHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihV
SUJhY2tsaWdodExldmVsQ2hhbmdlZE5vdGlmaWNhdGlvbiksIG51bGxwdHIsIENGTm90aWZpY2F0
aW9uU3VzcGVuc2lvbkJlaGF2aW9yQ29hbGVzY2UpOwogI2lmIFBMQVRGT1JNKElPUykKLSAgICBt
X2FjY2Vzc2liaWxpdHlFbmFibGVkT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRl
ZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTooX19icmlkZ2UgaWQpa0FYU0FwcGxpY2F0
aW9uQWNjZXNzaWJpbGl0eUVuYWJsZWROb3RpZmljYXRpb24gb2JqZWN0Om5pbCBxdWV1ZTpbTlNP
cGVyYXRpb25RdWV1ZSBjdXJyZW50UXVldWVdIHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAq
KSB7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9wcm9jZXNzZXMuc2l6ZSgpOyAr
K2kpCi0gICAgICAgICAgICBtX3Byb2Nlc3Nlc1tpXS0+dW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2
ZXJJZk5lZWRlZCgpOwotICAgIH1dOwogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQogICAg
IENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXRE
YXJ3aW5Ob3RpZnlDZW50ZXIoKSwgdGhpcywgcmVtb3RlV2ViSW5zcGVjdG9yRW5hYmxlZENhbGxi
YWNrLCBzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZTVFIoV0lSU2VydmljZUVuYWJsZWROb3Rp
ZmljYXRpb24pKSwgbnVsbHB0ciwgQ0ZOb3RpZmljYXRpb25TdXNwZW5zaW9uQmVoYXZpb3JDb2Fs
ZXNjZSk7CiAjZW5kaWYKICNlbmRpZiAvLyBQTEFURk9STShJT1MpCiAjZW5kaWYgLy8gIVBMQVRG
T1JNKElPU19GQU1JTFkpCisgICAgbV9hY2Nlc3NpYmlsaXR5RW5hYmxlZE9ic2VydmVyID0gW1tO
U05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6KF9f
YnJpZGdlIGlkKWtBWFNBcHBsaWNhdGlvbkFjY2Vzc2liaWxpdHlFbmFibGVkTm90aWZpY2F0aW9u
IG9iamVjdDpuaWwgcXVldWU6W05TT3BlcmF0aW9uUXVldWUgY3VycmVudFF1ZXVlXSB1c2luZ0Js
b2NrOl4oTlNOb3RpZmljYXRpb24gKikgeworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IG1fcHJvY2Vzc2VzLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBtX3Byb2Nlc3Nlc1tpXS0+
dW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlSWZOZWVkZWQoKTsKKyAgICAgICAgICAgIG1fcHJvY2Vz
c2VzW2ldLT51bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKCk7CisgICAgICAgIH0K
KyAgICB9XTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rlck5vdGlmaWNhdGlv
bk9ic2VydmVycygpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9j
ZXNzUHJveHlDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQkocmV2aXNpb24gMjU3ODc0KQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTIyNSw0ICsyMjUsNDMgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmVuYWJsZVJl
bW90ZUluc3BlYwogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpFbmFibGVSZW1v
dGVXZWJJbnNwZWN0b3IoaGFuZGxlKSwgMCk7CiB9CiAjZW5kaWYKKwordm9pZCBXZWJQcm9jZXNz
UHJveHk6OnVuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVySWZOZWVkZWQoKQoreworICAgIGlmICht
X2hhc1NlbnRNZXNzYWdlVG9VbmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcikKKyAgICAgICAgcmV0
dXJuOworICAgIGlmICghX0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAg
ICAgICAgcmV0dXJuOworICAgIGlmICghcHJvY2Vzc0lkZW50aWZpZXIoKSkKKyAgICAgICAgcmV0
dXJuOworICAgIGlmICghY2FuU2VuZE1lc3NhZ2UoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQorICAgIGlmICghU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgi
Y29tLmFwcGxlLmlwaG9uZS5heHNlcnZlci1zeXN0ZW13aWRlIiwgY29ubmVjdGlvbigpID8gY29u
bmVjdGlvbigpLT5nZXRBdWRpdFRva2VuKCkgOiBXVEY6Om51bGxvcHQsIGhhbmRsZSkpCisgICAg
ICAgIHJldHVybjsKKyNlbmRpZgorCisgICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6VW5i
bG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIoaGFuZGxlKSwgMCk7CisgICAgbV9oYXNTZW50TWVzc2Fn
ZVRvVW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIgPSB0cnVlOworfQorCit2b2lkIFdlYlByb2Nl
c3NQcm94eTo6dW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlSWZOZWVkZWQoKQoreworICAgIGlmICht
X2hhc1NlbnRNZXNzYWdlVG9VbmJsb2NrUHJlZmVyZW5jZVNlcnZpY2UpCisgICAgICAgIHJldHVy
bjsKKyAgICBpZiAoIXByb2Nlc3NJZGVudGlmaWVyKCkpCisgICAgICAgIHJldHVybjsKKyAgICBp
ZiAoIWNhblNlbmRNZXNzYWdlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSBoYW5kbGU7CisgICAgaWYgKCFTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVI
YW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUuY2ZwcmVmc2QuZGFlbW9uIiwgY29ubmVjdGlv
bigpID8gY29ubmVjdGlvbigpLT5nZXRBdWRpdFRva2VuKCkgOiBXVEY6Om51bGxvcHQsIGhhbmRs
ZSkpCisgICAgICAgIHJldHVybjsKKworICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlVu
YmxvY2tQcmVmZXJlbmNlU2VydmljZShoYW5kbGUpLCAwKTsKKyAgICBtX2hhc1NlbnRNZXNzYWdl
VG9VbmJsb2NrUHJlZmVyZW5jZVNlcnZpY2UgPSB0cnVlOworfQorCiB9CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW0JKHJldmlz
aW9uIDI1Nzg3NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJv
eHlJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTQzLDI1ICs0Myw2IEBAIGJvb2wgV2ViUHJvY2Vz
c1Byb3h5OjpmdWxsS2V5Ym9hcmRBY2Nlc3MKICNlbmRpZgogfQogCi12b2lkIFdlYlByb2Nlc3NQ
cm94eTo6dW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXJJZk5lZWRlZCgpCi17Ci0gICAgaWYgKG1f
aGFzU2VudE1lc3NhZ2VUb1VuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVyKQotICAgICAgICByZXR1
cm47Ci0gICAgaWYgKCFfQVhTQXBwbGljYXRpb25BY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAg
ICAgICByZXR1cm47Ci0gICAgaWYgKCFwcm9jZXNzSWRlbnRpZmllcigpKQotICAgICAgICByZXR1
cm47Ci0gICAgaWYgKCFjYW5TZW5kTWVzc2FnZSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlOwotICAgIGlmICghU2FuZGJveEV4dGVuc2lv
bjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmlwaG9uZS5heHNlcnZlci1z
eXN0ZW13aWRlIiwgY29ubmVjdGlvbigpID8gY29ubmVjdGlvbigpLT5nZXRBdWRpdFRva2VuKCkg
OiBXVEY6Om51bGxvcHQsIGhhbmRsZSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHNlbmQoTWVz
c2FnZXM6OldlYlByb2Nlc3M6OlVuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVyKGhhbmRsZSksIDAp
OwotICAgIG1faGFzU2VudE1lc3NhZ2VUb1VuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVyID0gdHJ1
ZTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShJT1Nf
RkFNSUxZKQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2
aXNpb24gMjU3ODc0KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xOTc0LDE0ICsxOTc0LDYgQEAgdm9pZCBXZWJQcm9jZXNzOjpj
bGVhckN1cnJlbnRNb2RpZmllclN0YQogICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6c2V0Q3Vy
cmVudE1vZGlmaWVyU3RhdGUoeyB9KTsKIH0KIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi12
b2lkIFdlYlByb2Nlc3M6OnVuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVyKGNvbnN0IFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSYgaGFuZGxlKQotewotICAgIGJvb2wgb2sgPSBTYW5kYm94RXh0ZW5z
aW9uOjpjb25zdW1lUGVybWFuZW50bHkoaGFuZGxlKTsKLSAgICBBU1NFUlRfVU5VU0VEKG9rLCBv
ayk7Ci19Ci0jZW5kaWYKLQogYm9vbCBXZWJQcm9jZXNzOjphcmVBbGxQYWdlc1Rocm90dGxlYWJs
ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFdURjo6YWxsT2YobV9wYWdlTWFwLnZhbHVlcygpLCBb
XShhdXRvJiBwYWdlKSB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgJ
KHJldmlzaW9uIDI1Nzg3NCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5OSw4ICsyOTksNiBAQCBwdWJsaWM6CiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQogICAgIHZvaWQgYWNjZXNzaWJpbGl0eVByb2Nlc3NTdXNwZW5kZWRO
b3RpZmljYXRpb24oYm9vbCk7Ci0gICAgCi0gICAgdm9pZCB1bmJsb2NrQWNjZXNzaWJpbGl0eVNl
cnZlcihjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQpAQCAtMzEzLDYgKzMx
MSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGVuYWJsZVJlbW90ZVdlYkluc3BlY3Rvcihjb25zdCBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKICNlbmRpZgogICAgIHZvaWQgbm90aWZ5UHJlZmVy
ZW5jZXNDaGFuZ2VkKGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIGtleSwgY29u
c3QgT3B0aW9uYWw8U3RyaW5nPiYgZW5jb2RlZFZhbHVlKTsKKyAgICB2b2lkIHVuYmxvY2tBY2Nl
c3NpYmlsaXR5U2VydmVyKGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYpOworICAgIHZv
aWQgdW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlKGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSYpOwogI2VuZGlmCiAKICAgICBib29sIGFyZUFsbFBhZ2VzVGhyb3R0bGVhYmxlKCkgY29uc3Q7
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdl
cy5pbgkocmV2aXNpb24gMjU3ODc0KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTE1NCwxMCArMTU0LDYgQEAgbWVz
c2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciBObwogICAgIFNldEJhY2tGb3J3YXJk
Q2FjaGVDYXBhY2l0eSh1bnNpZ25lZCBjYXBhY2l0eSk7CiAgICAgQ2xlYXJDYWNoZWRQYWdlKHN0
cnVjdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyIGJhY2tGb3J3YXJkSXRlbUlE
KSAtPiAoKSBBc3luYwogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBVbmJsb2NrQWNj
ZXNzaWJpbGl0eVNlcnZlcihXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGUp
Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgIFNlbmRN
ZXNzYWdlVG9XZWJFeHRlbnNpb24oc3RydWN0IFdlYktpdDo6VXNlck1lc3NhZ2UgdXNlck1lc3Nh
Z2UpCiAjZW5kaWYKQEAgLTE3NCw1ICsxNzAsNyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExl
Z2FjeVJlY2VpdmVyIE5vCiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBOb3RpZnlQcmVmZXJl
bmNlc0NoYW5nZWQoU3RyaW5nIGRvbWFpbiwgU3RyaW5nIGtleSwgT3B0aW9uYWw8U3RyaW5nPiBl
bmNvZGVkVmFsdWUpCisgICAgVW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIoV2ViS2l0OjpTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlKQorICAgIFVuYmxvY2tQcmVmZXJlbmNlU2Vydmlj
ZShXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGUpCiAjZW5kaWYKIH0KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nl
c3Muc2IuaW4JKHJldmlzaW9uIDI1Nzg3OSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgkod29ya2luZyBjb3B5KQpAQCAtNjQzLDcgKzY0Myw5
IEBACiAgICAgKHdpdGggcmVwb3J0KSAod2l0aCB0ZWxlbWV0cnkpCiAjZW5kaWYKICAgICAoZ2xv
YmFsLW5hbWUgImNvbS5hcHBsZS5Qb3dlck1hbmFnZW1lbnQuY29udHJvbCIpCisjaWYgIUVOQUJM
RShDRlBSRUZTX0RJUkVDVF9NT0RFKQogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNmcHJl
ZnNkLmRhZW1vbiIpCisjZW5kaWYKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5jb3Jlc2Vy
dmljZXMubGF1bmNoc2VydmljZXNkIikKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5sc2Qu
bWFwZGIiKQogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLnRjY2QiKQpJbmRleDogU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCShyZXZp
c2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yODgsMTEgKzI4OCwxMyBAQCB2b2lkIFdlYlBy
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByCiAgICAgLy8gRklYTUUoMjA3NzE2KTogVGhl
IGZvbGxvd2luZyBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIHRoZSBHUFUgcHJvY2VzcyBpcyBjb21w
bGV0ZS4KICAgICBmb3IgKHNpemVfdCBpID0gMCwgc2l6ZSA9IHBhcmFtZXRlcnMubWVkaWFFeHRl
bnNpb25IYW5kbGVzLnNpemUoKTsgaSA8IHNpemU7ICsraSkKICAgICAgICAgU2FuZGJveEV4dGVu
c2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMubWVkaWFFeHRlbnNpb25IYW5kbGVz
W2ldKTsKKyNlbmRpZgogCi0jaWYgIUVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQotICAgIGlm
IChwYXJhbWV0ZXJzLnByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlKQorI2lmIEVOQUJMRShDRlBS
RUZTX0RJUkVDVF9NT0RFKQorICAgIGlmIChwYXJhbWV0ZXJzLnByZWZlcmVuY2VzRXh0ZW5zaW9u
SGFuZGxlKSB7CiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseSgq
cGFyYW1ldGVycy5wcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZSk7Ci0jZW5kaWYKKyAgICAgICAg
X0NGUHJlZnNTZXREaXJlY3RNb2RlRW5hYmxlZChmYWxzZSk7CisgICAgfQogI2VuZGlmCiB9CiAK
QEAgLTU3Miw4ICs1NzQsNiBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVBy
b2NlCiAgICAgZWxzZQogICAgICAgICBtX3Byb2Nlc3NUeXBlID0gUHJvY2Vzc1R5cGU6OldlYkNv
bnRlbnQ7CiAKLSAgICByZWdpc3RlcldpdGhBY2Nlc3NpYmlsaXR5KCk7Ci0KICNpZiBVU0UoT1Nf
U1RBVEUpCiAgICAgcmVnaXN0ZXJXaXRoU3RhdGVEdW1wZXIoKTsKICNlbmRpZgpAQCAtOTQ1LDYg
Kzk0NSw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6c2V0TWVkaWFNSU1FVHlwZXMoY29uc3QKICAgICAg
ICAgY2FjaGUuYWRkU3VwcG9ydGVkVHlwZXModHlwZXMpOwogfQogCisjaWYgRU5BQkxFKENGUFJF
RlNfRElSRUNUX01PREUpCiB2b2lkIFdlYlByb2Nlc3M6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdl
ZChjb25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IE9wdGlvbmFs
PFN0cmluZz4mIGVuY29kZWRWYWx1ZSkKIHsKICAgICBhdXRvIGRlZmF1bHRzID0gYWRvcHROUyhb
W05TVXNlckRlZmF1bHRzIGFsbG9jXSBpbml0V2l0aFN1aXRlTmFtZTpkb21haW5dKTsKQEAgLTk2
Myw2ICs5NjQsMTQgQEAgdm9pZCBXZWJQcm9jZXNzOjpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZQog
ICAgIFtkZWZhdWx0cyBzZXRPYmplY3Q6b2JqZWN0LmdldCgpIGZvcktleTprZXldOwogfQogCit2
b2lkIFdlYlByb2Nlc3M6OnVuYmxvY2tQcmVmZXJlbmNlU2VydmljZShjb25zdCBTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGUmIGhhbmRsZSkKK3sKKyAgICBib29sIG9rID0gU2FuZGJveEV4dGVuc2lv
bjo6Y29uc3VtZVBlcm1hbmVudGx5KGhhbmRsZSk7CisgICAgQVNTRVJUX1VOVVNFRChvaywgb2sp
OworICAgIF9DRlByZWZzU2V0RGlyZWN0TW9kZUVuYWJsZWQoZmFsc2UpOworfQorI2VuZGlmCisK
ICNpZiBQTEFURk9STShJT1MpCiB2b2lkIFdlYlByb2Nlc3M6OmdyYW50QWNjZXNzVG9Bc3NldFNl
cnZpY2VzKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgbW9iaWxlQXNzZXRIYW5k
bGUsICBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmIG1vYmlsZUFzc2V0VjJIYW5k
bGUpCiB7CkBAIC0xMDA4LDYgKzEwMTcsMTcgQEAgdm9pZCBXZWJQcm9jZXNzOjp1cGRhdGVQYWdl
U2NyZWVuUHJvcGVydAogfQogI2VuZGlmCiAKK3ZvaWQgV2ViUHJvY2Vzczo6dW5ibG9ja0FjY2Vz
c2liaWxpdHlTZXJ2ZXIoY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBoYW5kbGUpCit7
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBib29sIG9rID0gU2FuZGJveEV4dGVuc2lv
bjo6Y29uc3VtZVBlcm1hbmVudGx5KGhhbmRsZSk7CisgICAgQVNTRVJUX1VOVVNFRChvaywgb2sp
OworI2VuZGlmCisgICAgCisgICAgcmVnaXN0ZXJXaXRoQWNjZXNzaWJpbGl0eSgpOworfQorCisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgUkVMRUFTRV9MT0dfU0VTU0lPTl9JRApJ
bmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2
aXNpb24gMjU4MDEyKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMjAtMDMtMDYgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29t
PgorCisgICAgICAgIFtDb2NvYV0gUmUtZW5hYmxlIENGUHJlZnMgZGlyZWN0IG1vZGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODY5MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR3JhbnRBY2Nlc3NUb1ByZWZlcmVuY2VzU2VydmljZS5t
bTogQWRkZWQuCisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L2lvcy9BY2Nlc3NpYmlsaXR5VGVzdHNJT1MubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKwogMjAyMC0wMy0wNiAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAog
ICAgICAgICBVSVByb2Nlc3MgY3Jhc2ggYWZ0ZXIgdXNpbmcgX3ByZXBhcmVGb3JNb3ZlVG9XaW5k
b3csIHRoZW4gZGVhbGxvY2F0aW5nIHRoZSBXS1dlYlZpZXcgYmVmb3JlIG1vdmluZyB0byB0aGUg
d2luZG93CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjU3ODc0KQorKysg
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHdvcmtpbmcgY29weSkKQEAgLTEwMDMsNiArMTAwMyw3IEBACiAJCUUzMjRBNkYwMjA0MUM4
MjAwMEE3NjU5MyAvKiBVbmlxdWVBcnJheS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMzk4QkMwRjIwNDFDNzYzMDAzODcxMzYgLyogVW5pcXVlQXJy
YXkuY3BwICovOyB9OwogCQlFMzI1QzkwNzIzRTM4NzAyMDBCQzdEM0IgLyogUGljdHVyZUluUGlj
dHVyZVN1cHBvcnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMzI1QzkwNjIzRTM4NzAyMDBCQzdEM0IgLyogUGljdHVyZUluUGljdHVyZVN1cHBvcnQu
bW0gKi87IH07CiAJCUUzMkI1NDkyMjI4MTBBQzQwMDhBRDcwMiAvKiBQYWNrZWQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMyQjU0OTEyMjgxMEFD
MDAwOEFENzAyIC8qIFBhY2tlZC5jcHAgKi87IH07CisJCUUzNEE2RDE5MjQxMkRFMzkwMDEyQUI2
RSAvKiBHcmFudEFjY2Vzc1RvUHJlZmVyZW5jZXNTZXJ2aWNlLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM0QTZEMTgyNDEyREUzOTAwMTJBQjZFIC8q
IEdyYW50QWNjZXNzVG9QcmVmZXJlbmNlc1NlcnZpY2UubW0gKi87IH07CiAJCUUzNUI5MDgyMjNG
NjBERDAwMDAwMTFGRiAvKiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNUI5MDgxMjNGNjBERDAwMDAwMTFGRiAv
KiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5tbSAqLzsgfTsKIAkJRTM1RkM3QjIyMkI4MkE3MzAwRjMy
Rjk4IC8qIEpTTG9ja1Rha2VzV2ViVGhyZWFkTG9jay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNUZDN0IxMjJCODJBNkQwMEYzMkY5OCAvKiBKU0xv
Y2tUYWtlc1dlYlRocmVhZExvY2subW0gKi87IH07CiAJCUUzNzNENzkxMUYyQ0YzNTIwMEM2RkFB
RiAvKiBTaWduYWxzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzOTUzRjk1MUYyQ0YzMjEwMEE3NkEyRSAvKiBTaWduYWxzLmNwcCAqLzsgfTsKQEAg
LTI1OTksNiArMjYwMCw3IEBACiAJCUUzMDJCREE5MjQwNEI5MjMwMDg2NTI3NyAvKiBDb21wYWN0
UmVmUHRyVHVwbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29t
cGFjdFJlZlB0clR1cGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMyNUM5
MDYyM0UzODcwMjAwQkM3RDNCIC8qIFBpY3R1cmVJblBpY3R1cmVTdXBwb3J0Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gUGljdHVyZUluUGljdHVyZVN1cHBvcnQubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUzMkI1NDkxMjI4MTBBQzAwMDhBRDcwMiAvKiBQYWNrZWQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUGFja2VkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTM0QTZEMTgyNDEyREUzOTAwMTJBQjZFIC8qIEdyYW50QWNjZXNzVG9QcmVmZXJlbmNlc1Nl
cnZpY2UubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBHcmFudEFjY2Vzc1RvUHJlZmVyZW5jZXNT
ZXJ2aWNlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzVCOTA4MTIzRjYwREQw
MDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBMb2NhbGl6ZWREZXZpY2VNb2RlbC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTM1RkM3QjEyMkI4MkE2RDAwRjMyRjk4IC8qIEpTTG9ja1Rha2VzV2ViVGhyZWFkTG9jay5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEpTTG9ja1Rha2VzV2ViVGhy
ZWFkTG9jay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM4ODg4NzAyMEM5MDk4
MTAwRTYzMkJDIC8qIFdvcmtlclBvb2wuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV29ya2VyUG9vbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
OTA2LDYgKzI5MDgsNyBAQAogCQkJCUMxNUNCQjJGMjNGMUZGMUEwMDMwMENDNyAvKiBCYWNrbGln
aHRMZXZlbE5vdGlmaWNhdGlvbi5tbSAqLywKIAkJCQlDMTY5MkRDOTIzRDEwREFFMDA2RTg4Rjcg
LyogQmF0dGVyeS5tbSAqLywKIAkJCQlFMzk0QUU2RTIzRjIzMDNFMDA1QjQ5MzYgLyogR3JhbnRB
Y2Nlc3NUb01vYmlsZUFzc2V0cy5tbSAqLywKKwkJCQlFMzRBNkQxODI0MTJERTM5MDAxMkFCNkUg
LyogR3JhbnRBY2Nlc3NUb1ByZWZlcmVuY2VzU2VydmljZS5tbSAqLywKIAkJCQlFMzVCOTA4MTIz
RjYwREQwMDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwubW0gKi8sCiAJCQkJQzE0NUND
MEIyM0RBNUEwRjAwM0E1RUVCIC8qIE1pbWVUeXBlcy5tbSAqLywKIAkJCQlFMzI1QzkwNjIzRTM4
NzAyMDBCQzdEM0IgLyogUGljdHVyZUluUGljdHVyZVN1cHBvcnQubW0gKi8sCkBAIC00ODQzLDYg
KzQ4NDYsNyBAQAogCQkJCTA3Q0UxQ0YzMUYwNkE3RTAwMEJGODlGNSAvKiBHZXRVc2VyTWVkaWFO
YXZpZ2F0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMDdFNDk5OTExRjlFNTZERjAwMkYxRUYz
IC8qIEdldFVzZXJNZWRpYVJlcHJvbXB0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRTM5NEFFNkYy
M0YyMzAzRTAwNUI0OTM2IC8qIEdyYW50QWNjZXNzVG9Nb2JpbGVBc3NldHMubW0gaW4gU291cmNl
cyAqLywKKwkJCQlFMzRBNkQxOTI0MTJERTM5MDAxMkFCNkUgLyogR3JhbnRBY2Nlc3NUb1ByZWZl
cmVuY2VzU2VydmljZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCThFNEE4NTM3MUUxRDFBQjIwMEY1
M0IwRiAvKiBHcmlkUG9zaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRkExQTQx
MUFFNjAwNDQ3QzRDIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTdDQ0U3RUMxMUE0MTFBN0UwMDQ0N0M0QyAvKiBIVE1MQ29sbGVjdGlvbk5hbWVkSXRl
bS5tbSBpbiBTb3VyY2VzICovLApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvR3JhbnRBY2Nlc3NUb1ByZWZlcmVuY2VzU2VydmljZS5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HcmFudEFjY2Vzc1RvUHJlZmVyZW5jZXNTZXJ2
aWNlLm1tCShub25leGlzdGVudCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L0dyYW50QWNjZXNzVG9QcmVmZXJlbmNlc1NlcnZpY2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFdLX0hB
VkVfQ19TUEkKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3RX
S1dlYlZpZXcuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CisKK1RFU1Qo
V2ViS2l0LCBHcmFudEFjY2Vzc1ByZWZlcmVuY2VzU2VydmljZSkKK3sKKyAgICBhdXRvIGNvbmZp
Z3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0p
OworICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVGVzdFdl
YktpdEFQSTo6VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiSW50ZXJu
YWxzSW5qZWN0ZWRCdW5kbGVUZXN0IikpOworICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkucHJvY2Vz
c1Bvb2wgPSAoV0tQcm9jZXNzUG9vbCAqKWNvbnRleHQuZ2V0KCk7CisgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVj
dCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIGFkZFRv
V2luZG93OllFU10pOworCisgICAgW3dlYlZpZXcgX2dyYW50QWNjZXNzVG9QcmVmZXJlbmNlU2Vy
dmljZV07CisKKyAgICBhdXRvIHNhbmRib3hBY2Nlc3MgPSBbJl0geworICAgICAgICByZXR1cm4g
W3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy5pbnRlcm5hbHMu
aGFzU2FuZGJveE1hY2hMb29rdXBBY2Nlc3NUb0dsb2JhbE5hbWUoJ2NvbS5hcHBsZS5XZWJLaXQu
V2ViQ29udGVudCcsICdjb20uYXBwbGUuY2ZwcmVmc2QuZGFlbW9uJykiXS5ib29sVmFsdWU7Cisg
ICAgfTsKKworICAgIEFTU0VSVF9UUlVFKHNhbmRib3hBY2Nlc3MpOworfQorCisjZW5kaWYKSW5k
ZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0FjY2Vzc2liaWxpdHlUZXN0c0lPUy5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9BY2Nlc3NpYmls
aXR5VGVzdHNJT1MubW0JKHJldmlzaW9uIDI1Nzg3NCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvaW9zL0FjY2Vzc2liaWxpdHlUZXN0c0lPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzYs
NiArMzYsMTIgQEAKICNpbXBvcnQgPFdlYktpdC9fV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UuaD4K
ICNpbXBvcnQgPFdlYktpdC9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5oPgogCisjaW1wb3J0IDx3
dGYvU29mdExpbmtpbmcuaD4KKworU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLKEFjY2Vzc2li
aWxpdHkpCitTT0ZUX0xJTksoQWNjZXNzaWJpbGl0eSwgX0FYU1pvb21Ub3VjaFNldEVuYWJsZWQs
IHZvaWQsIChCb29sZWFuIGVuYWJsZWQpLCAoZW5hYmxlZCkpOworU09GVF9MSU5LKEFjY2Vzc2li
aWxpdHksIF9BWFNBcHBsaWNhdGlvbkFjY2Vzc2liaWxpdHlTZXRFbmFibGVkLCB2b2lkLCAoQm9v
bGVhbiBlbmFibGVkKSwgKGVuYWJsZWQpKTsKKwogQGltcGxlbWVudGF0aW9uIFdLV2ViVmlldyAo
V0tBY2Nlc3NpYmlsaXR5VGVzdGluZykKIC0gKE5TQXJyYXk8TlNWYWx1ZSAqPiAqKXJlY3RzQXRT
ZWxlY3Rpb25PZmZzZXQ6KE5TSW50ZWdlcilvZmZzZXQgd2l0aFRleHQ6KE5TU3RyaW5nICopdGV4
dAogewpAQCAtMTQ4LDYgKzE1NCw5IEBAIFRFU1QoQWNjZXNzaWJpbGl0eVRlc3RzLCBTdG9yZVNl
bGVjdGlvbikKIAogVEVTVChBY2Nlc3NpYmlsaXR5VGVzdHMsIFdlYlByb2Nlc3NMb2FkZXJCdW5k
bGVMb2FkZWQpCiB7CisgICAgX0FYU1pvb21Ub3VjaFNldEVuYWJsZWQodHJ1ZSk7CisgICAgX0FY
U0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eVNldEVuYWJsZWQodHJ1ZSk7CisKICAgICBXS1dlYlZp
ZXdDb25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
X3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiQWNjZXNzaWJpbGl0
eVRlc3RQbHVnaW4iXTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKSBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UgKmlu
dGVyZmFjZSA9IFtfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UgcmVtb3RlT2JqZWN0SW50ZXJmYWNl
V2l0aFByb3RvY29sOkBwcm90b2NvbChBY2Nlc3NpYmlsaXR5VGVzdFN1cHBvcnRQcm90b2NvbCld
OwpAQCAtMTcxLDYgKzE4MCw5IEBAICAgICBpZCA8QWNjZXNzaWJpbGl0eVRlc3RTdXBwb3J0UHJv
dG9jb2wKICAgICAgICAgaXNEb25lID0gdHJ1ZTsKICAgICB9XTsKICAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmlzRG9uZSk7CisKKyAgICBfQVhTWm9vbVRvdWNoU2V0RW5hYmxlZChmYWxz
ZSk7CisgICAgX0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eVNldEVuYWJsZWQoZmFsc2UpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392813</attachid>
            <date>2020-03-06 16:56:48 -0800</date>
            <delta_ts>2020-03-11 17:15:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208690-20200306165647.patch</filename>
            <type>text/plain</type>
            <size>46550</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAzLTA1ICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFJlLWVuYWJsZSBDRlByZWZzIGRp
cmVjdCBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDg2OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZS5oOgorCiAyMDIwLTAzLTA0ICBQZXIgQXJuZSBWb2xsYW4g
IDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIEFkZCBlbmFibGUgZmxhZyB0
byBkaXNhYmxlIGRpcmVjdCBtb2RlIGZvciBwcmVmZXJlbmNlcwpJbmRleDogU291cmNlL1dURi93
dGYvUGxhdGZvcm1FbmFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUVuYWJsZS5oCShyZXZpc2lvbiAyNTc4NzUpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVu
YWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04NzIsNCArODcyLDQgQEAKICNlcnJvciAiRU5BQkxF
KFdFQkdMMikgcmVxdWlyZXMgRU5BQkxFKFdFQkdMKSIKICNlbmRpZgogCi0jZGVmaW5lIEVOQUJM
RV9DRlBSRUZTX0RJUkVDVF9NT0RFIDAKKyNkZWZpbmUgRU5BQkxFX0NGUFJFRlNfRElSRUNUX01P
REUgMQpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1ODAxMikKKysrIFNvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTcgQEAKKzIwMjAtMDMtMDYgIFBlciBB
cm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUmUtZW5h
YmxlIENGUHJlZnMgZGlyZWN0IG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwODY5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmUtZW5hYmxlZCBDRiBwcmVmcyBkaXJlY3QgbW9k
ZSBvbiBpT1MgYW5kIG1hY09TLCBhbmQgYWRkcmVzc2VzIHBlcmZvcm1hbmNlIGlzc3VlcyBhbmQg
QWNjZXNzaWJpbGl0eSBpc3N1ZXMKKyAgICAgICAgd2l0aCB0aGUgb3JpZ2luYWwgcGF0Y2guIFBl
cmZvcm1hbmNlIGlzc3VlcyBhcmUgYWRkcmVzc2VkIGJ5IGNyZWF0aW5nIHRoZSBOU1VzZXJEZWZh
dWx0cyBvYmplY3RzIGluIHRoZSBVSSBwcm9jZXNzIG9uCisgICAgICAgIGEgbm9uLW1haW4gdGhy
ZWFkLCB3aGlsZSB0aGUgQWNjZXNzaWJpbGl0eSBpc3N1ZXMgYXJlIGZpeGVkIGJ5IGlzc3Vpbmcg
YW4gZXh0ZW5zaW9uIHRvIHRoZSBwcmVmZXJlbmNlcyBzZXJ2aWNlIHdoZW4KKyAgICAgICAgQWNj
ZXNzaWJpbGl0eSBpcyBlbmFibGVkLgorCisgICAgICAgIEFQSSB0ZXN0OiBXZWJLaXQuR3JhbnRB
Y2Nlc3NQcmVmZXJlbmNlc1NlcnZpY2UKKworICAgICAgICAqIFJlc291cmNlcy9TYW5kYm94UHJv
ZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYjoKKyAgICAgICAgKiBTaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9ncmFudEFjY2Vz
c1RvUHJlZmVyZW5jZVNlcnZpY2VdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvUHJlZmVyZW5jZU9i
c2VydmVyLm1tOgorICAgICAgICAocmVnaXN0ZXJEZWZhdWx0c092ZXJyaWRlKToKKyAgICAgICAg
KC1bV0tVc2VyRGVmYXVsdHMgX25vdGlmeU9ic2VydmVyc09mQ2hhbmdlRnJvbVZhbHVlc0Zvcktl
eXM6dG9WYWx1ZXNGb3JLZXlzOl0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VPYnNlcnZlciBp
bml0XSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmdyYW50QWNjZXNzVG9QcmVmZXJlbmNlU2Vy
dmljZSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1SZXNvbHZlUGF0aHNGb3JT
YW5kYm94RXh0ZW5zaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0
Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bv
b2w6OnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQcm94eTo6dW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXJJZk5lZWRlZCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6dW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlSWZOZWVkZWQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hp
bmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5Ojp1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjp1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcik6IERlbGV0ZWQuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxp
emVXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0
aWFsaXplUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVuYmxvY2tQcmVm
ZXJlbmNlU2VydmljZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVuYmxvY2tBY2Nl
c3NpYmlsaXR5U2VydmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9j
ZXNzLnNiLmluOgorCiAyMDIwLTAzLTA2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIE1vdmUgc3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zIHRvIFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlCkluZGV4OiBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3Nw
aS9Db2NvYS9BY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0FjY2Vzc2liaWxpdHlTdXBwb3J0U1BJLmgJKHJldmlz
aW9uIDI1Nzg3NCkJKGZyb20gU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0FjY2Vzc2li
aWxpdHlTdXBwb3J0U1BJLmg6MjU3ODc0KQorKysgU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkv
Q29jb2EvQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFlfU1VQUE9SVCkKKworI2lmIFVTRShB
UFBMRV9JTlRFUk5BTF9TREspCisKKy8vIEZJWE1FICg0NjQzMjAxMSk6IFdlIHNob3VsZG4ndCBu
ZWVkIHRvIHdyYXAgdGhpcyBpbmNsdWRlIGluIGV4dGVybiAiQyIuCitXVEZfRVhURVJOX0NfQkVH
SU4KKyNpbmNsdWRlIDxBY2Nlc3NpYmlsaXR5U3VwcG9ydC5oPgorV1RGX0VYVEVSTl9DX0VORAor
CisjZWxzZQorCitXVEZfRVhURVJOX0NfQkVHSU4KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CitleHRlcm4gQm9vbGVhbiBfQVhTS2V5UmVwZWF0RW5hYmxlZCgpOworZXh0ZXJuIEJvb2xlYW4g
X0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVuYWJsZWQoKTsKK2V4dGVybiBDRlN0cmluZ1Jl
ZiBrQVhTQXBwbGljYXRpb25BY2Nlc3NpYmlsaXR5RW5hYmxlZE5vdGlmaWNhdGlvbjsKKyNpZiBI
QVZFKEFDQ0VTU0lCSUxJVFlfQlVORExFU19QQVRIKQorZXh0ZXJuIENGU3RyaW5nUmVmIF9BWFND
b3B5UGF0aEZvckFjY2Vzc2liaWxpdHlCdW5kbGUoQ0ZTdHJpbmdSZWYgYnVuZGxlKTsKKyNlbmRp
ZgorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpICYmIEVOQUJMRShGVUxMX0tFWUJPQVJEX0FDQ0VTUykKK2V4dGVybiBDRlN0cmluZ1Jl
ZiBrQVhTRnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZE5vdGlmaWNhdGlvbjsKK2V4dGVybiBCb29s
ZWFuIF9BWFNGdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkKCk7CisjZW5kaWYKKworV1RGX0VYVEVS
Tl9DX0VORAorCisjZW5kaWYKKworI2VuZGlmIC8vIEhBVkUoQUNDRVNTSUJJTElUWV9TVVBQT1JU
KQpJbmRleDogU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQWNjZXNzaWJpbGl0eVN1
cHBvcnRTUEkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2Nv
YS9BY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oCShyZXZpc2lvbiAyNTc4NzQpCisrKyBTb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9BY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zOCw3ICszOCw2IEBAIFdURl9FWFRFUk5fQ19FTkQKIAogV1RGX0VYVEVS
Tl9DX0JFR0lOCiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogZXh0ZXJuIEJvb2xlYW4gX0FY
U0tleVJlcGVhdEVuYWJsZWQoKTsKIGV4dGVybiBCb29sZWFuIF9BWFNBcHBsaWNhdGlvbkFjY2Vz
c2liaWxpdHlFbmFibGVkKCk7CiBleHRlcm4gQ0ZTdHJpbmdSZWYga0FYU0FwcGxpY2F0aW9uQWNj
ZXNzaWJpbGl0eUVuYWJsZWROb3RpZmljYXRpb247CkBAIC00Niw4ICs0NSw2IEBAIGV4dGVybiBD
RlN0cmluZ1JlZiBrQVhTQXBwbGljYXRpb25BY2Nlc3MKIGV4dGVybiBDRlN0cmluZ1JlZiBfQVhT
Q29weVBhdGhGb3JBY2Nlc3NpYmlsaXR5QnVuZGxlKENGU3RyaW5nUmVmIGJ1bmRsZSk7CiAjZW5k
aWYKIAotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCi0KICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKSAmJiBFTkFCTEUoRlVMTF9LRVlCT0FSRF9BQ0NFU1MpCiBleHRlcm4gQ0ZTdHJpbmdS
ZWYga0FYU0Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWROb3RpZmljYXRpb247CiBleHRlcm4gQm9v
bGVhbiBfQVhTRnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCgpOwpJbmRleDogU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9zcGkvaW9zL0FjY2Vzc2liaWxpdHlTdXBwb3J0U1BJLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0FjY2Vzc2liaWxpdHlTdXBwb3J0U1BJ
LmgJKHJldmlzaW9uIDI1Nzg3NCkKKysrIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9B
Y2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oCShub25leGlzdGVudCkKQEAgLTEsNjAgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25j
ZQotCi0jaWYgSEFWRShBQ0NFU1NJQklMSVRZX1NVUFBPUlQpCi0KLSNpZiBVU0UoQVBQTEVfSU5U
RVJOQUxfU0RLKQotCi0vLyBGSVhNRSAoNDY0MzIwMTEpOiBXZSBzaG91bGRuJ3QgbmVlZCB0byB3
cmFwIHRoaXMgaW5jbHVkZSBpbiBleHRlcm4gIkMiLgotV1RGX0VYVEVSTl9DX0JFR0lOCi0jaW5j
bHVkZSA8QWNjZXNzaWJpbGl0eVN1cHBvcnQuaD4KLVdURl9FWFRFUk5fQ19FTkQKLQotI2Vsc2UK
LQotV1RGX0VYVEVSTl9DX0JFR0lOCi0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotZXh0ZXJu
IEJvb2xlYW4gX0FYU0tleVJlcGVhdEVuYWJsZWQoKTsKLWV4dGVybiBCb29sZWFuIF9BWFNBcHBs
aWNhdGlvbkFjY2Vzc2liaWxpdHlFbmFibGVkKCk7Ci1leHRlcm4gQ0ZTdHJpbmdSZWYga0FYU0Fw
cGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVuYWJsZWROb3RpZmljYXRpb247Ci0jaWYgSEFWRShBQ0NF
U1NJQklMSVRZX0JVTkRMRVNfUEFUSCkKLWV4dGVybiBDRlN0cmluZ1JlZiBfQVhTQ29weVBhdGhG
b3JBY2Nlc3NpYmlsaXR5QnVuZGxlKENGU3RyaW5nUmVmIGJ1bmRsZSk7Ci0jZW5kaWYKLQotI2Vu
ZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCi0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAm
JiBFTkFCTEUoRlVMTF9LRVlCT0FSRF9BQ0NFU1MpCi1leHRlcm4gQ0ZTdHJpbmdSZWYga0FYU0Z1
bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWROb3RpZmljYXRpb247Ci1leHRlcm4gQm9vbGVhbiBfQVhT
RnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCgpOwotI2VuZGlmCi0KLVdURl9FWFRFUk5fQ19FTkQK
LQotI2VuZGlmCi0KLSNlbmRpZiAvLyBIQVZFKEFDQ0VTU0lCSUxJVFlfU1VQUE9SVCkKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldl
YktpdC5XZWJDb250ZW50LnNiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvUmVzb3VyY2Vz
L1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiCShyZXZp
c2lvbiAyNTc4NzkpCisrKyBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMv
aW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgkod29ya2luZyBjb3B5KQpAQCAtNTM2
LDcgKzUzNiw2IEBACiAoYWxsb3cgbWFjaC1sb29rdXAKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5h
cHBsZS5sb2dkIikKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5sb2dkLmV2ZW50cyIpCi0g
ICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuY2ZwcmVmc2QuZGFlbW9uIikKICkKIAogKGRlbnkg
bWFjaC1sb29rdXAgKHdpdGggdGVsZW1ldHJ5KQpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHJldmlzaW9uIDI1
Nzg3NSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODUsNyArMTg1LDcgQEAgdm9pZCBXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIC8vIEZJ
WE1FKDIwNzcxNik6IFRoZSBmb2xsb3dpbmcgc2hvdWxkIGJlIHJlbW92ZWQgd2hlbiB0aGUgR1BV
IHByb2Nlc3MgaXMgY29tcGxldGUuCiAgICAgZW5jb2RlciA8PCBtZWRpYUV4dGVuc2lvbkhhbmRs
ZXM7Ci0jaWYgIUVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQorI2lmIEVOQUJMRShDRlBSRUZT
X0RJUkVDVF9NT0RFKQogICAgIGVuY29kZXIgPDwgcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGU7
CiAjZW5kaWYKICNlbmRpZgpAQCAtNTA0LDcgKzUwNCw3IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVyczo6ZGVjb2QKICAgICBwYXJhbWV0ZXJzLm1lZGlhRXh0ZW5zaW9uSGFuZGxl
cyA9IFdURk1vdmUoKm1lZGlhRXh0ZW5zaW9uSGFuZGxlcyk7CiAgICAgLy8gRklYTUUoMjA3NzE2
KTogRW5kIHJlZ2lvbiB0byByZW1vdmUuCiAKLSNpZiAhRU5BQkxFKENGUFJFRlNfRElSRUNUX01P
REUpCisjaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCiAgICAgT3B0aW9uYWw8T3B0aW9u
YWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPj4gcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGU7
CiAgICAgZGVjb2RlciA+PiBwcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZTsKICAgICBpZiAoIXBy
ZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlKQpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAkocmV2aXNpb24gMjU3ODc1KQor
KysgU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yMjYsNyArMjI2LDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMgewogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgU2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlQXJyYXkgbWVkaWFFeHRlbnNpb25IYW5kbGVzOyAvLyBGSVhNRSgyMDc3MTYpOiBS
ZW1vdmUgd2hlbiBHUFUgcHJvY2VzcyBpcyBjb21wbGV0ZS4KLSNpZiAhRU5BQkxFKENGUFJFRlNf
RElSRUNUX01PREUpCisjaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCiAgICAgT3B0aW9u
YWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBwcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZTsK
ICNlbmRpZgogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAkocmV2aXNpb24gMjU3ODc0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTE3MDUsNiArMTcwNSwxMCBAQCBwdWJsaWM6CiAgICAg
dm9pZCByZXZva2VBY2Nlc3NUb0Fzc2V0U2VydmljZXMoKTsKICNlbmRpZgogCisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgdm9pZCBncmFudEFjY2Vzc1RvUHJlZmVyZW5jZVNlcnZpY2UoKTsKKyNl
bmRpZgorCiAgICAgdm9pZCBzZXRJc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluVGVzdGluZyhi
b29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiBwcml2YXRlOgpJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCShyZXZpc2lvbiAyNTc4NzQpCisr
KyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCSh3b3JraW5nIGNvcHkp
CkBAIC03MDQsNyArNzA0LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGVyQWN0
aXZpdHlTdGF0ZUNQVVVzYWdlU2FtcGxlcj4gbV9wZXJBY3Rpdml0eVN0YXRlQ1BVVXNhZ2VTYW1w
bGVyOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgIFJldGFpblB0cjxOU09iamVjdD4gbV9hY2Nlc3NpYmlsaXR5RW5hYmxlZE9ic2Vy
dmVyOwogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcAkocmV2aXNpb24gMjU3ODc0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTIzLDcgKzkyMyw5IEBAIHZv
aWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcKICAgICAgICAgaWYgKHhwY19j
b25uZWN0aW9uX3QgeHBjQ29ubmVjdGlvbiA9IGNvbm5lY3Rpb24oKS0+eHBjQ29ubmVjdGlvbigp
KQogICAgICAgICAgICAgbV90aHJvdHRsZXIuZGlkQ29ubmVjdFRvUHJvY2Vzcyh4cGNfY29ubmVj
dGlvbl9nZXRfcGlkKHhwY0Nvbm5lY3Rpb24pKTsKICAgICB9CisjZW5kaWYKIAorI2lmIFBMQVRG
T1JNKENPQ09BKQogICAgIHVuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVySWZOZWVkZWQoKTsKICNl
bmRpZgogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAko
cmV2aXNpb24gMjU3ODc0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzMyw4ICszMzMsOSBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBlbmFibGVSZW1vdGVJbnNwZWN0b3JJZk5lZWRlZCgpOwogI2VuZGlmCiAgICAgCi0jaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIHVuYmxvY2tB
Y2Nlc3NpYmlsaXR5U2VydmVySWZOZWVkZWQoKTsKKyAgICB2b2lkIHVuYmxvY2tQcmVmZXJlbmNl
U2VydmljZUlmTmVlZGVkKCk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBA
IC01MjgsMTAgKzUyOSwxNCBAQCBwcml2YXRlOgogICAgIEZvcmVncm91bmRXZWJQcm9jZXNzVG9r
ZW4gbV9mb3JlZ3JvdW5kVG9rZW47CiAgICAgQmFja2dyb3VuZFdlYlByb2Nlc3NUb2tlbiBtX2Jh
Y2tncm91bmRUb2tlbjsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGJvb2wgbV9oYXNT
ZW50TWVzc2FnZVRvVW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIgeyBmYWxzZSB9OwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpEZWZlcnJhYmxlT25lU2hvdFRpbWVyPiBtX3VuZXhwZWN0
ZWRBY3Rpdml0eVRpbWVyOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBib29s
IG1faGFzU2VudE1lc3NhZ2VUb1VuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVyIHsgZmFsc2UgfTsK
KyAgICBib29sIG1faGFzU2VudE1lc3NhZ2VUb1VuYmxvY2tQcmVmZXJlbmNlU2VydmljZSB7IGZh
bHNlIH07CisjZW5kaWYKKwogICAgIEhhc2hNYXA8U3RyaW5nLCB1aW50NjRfdD4gbV9wYWdlVVJM
UmV0YWluQ291bnRNYXA7CiAKICAgICBPcHRpb25hbDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
bj4gbV9yZWdpc3RyYWJsZURvbWFpbjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQkocmV2aXNpb24gMjU3ODc0KQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAt
Mjg5OSw2ICsyODk5LDEyIEBAIC0gKENHRmxvYXQpX21pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0
aAogI2VuZGlmCiB9CiAKKy0gKHZvaWQpX2dyYW50QWNjZXNzVG9QcmVmZXJlbmNlU2VydmljZQor
eworICAgIGlmIChfcGFnZSkKKyAgICAgICAgX3BhZ2UtPmdyYW50QWNjZXNzVG9QcmVmZXJlbmNl
U2VydmljZSgpOworfQorCiAjcHJhZ21hIG1hcmsgLSBzY3JvbGxQZXJmb3JtYW5jZURhdGEKIAog
LSAodm9pZClfc2V0U2Nyb2xsUGVyZm9ybWFuY2VEYXRhQ29sbGVjdGlvbkVuYWJsZWQ6KEJPT0wp
ZW5hYmxlZApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3UHJpdmF0ZS5oCShyZXZpc2lvbiAyNTc4NzQpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMzksNiArMzM5LDggQEAgZm9yIHRoaXMgcHJvcGVydHkuCiAKIC0gKHZvaWQpX3NldElzTmF2
aWdhdGluZ1RvQXBwQm91bmREb21haW46KEJPT0wpaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFp
biBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAorLSAo
dm9pZClfZ3JhbnRBY2Nlc3NUb1ByZWZlcmVuY2VTZXJ2aWNlIFdLX0FQSV9BVkFJTEFCTEUoaW9z
KFdLX0lPU19UQkEpKTsKKwogQGVuZAogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQpJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUHJlZmVyZW5jZU9ic2VydmVyLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5t
bQkocmV2aXNpb24gMjU3ODc0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUHJl
ZmVyZW5jZU9ic2VydmVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxMCArMjgsMjUgQEAKIAog
I2ltcG9ydCAiV2ViUHJvY2Vzc1Bvb2wuaCIKIAorI2ltcG9ydCA8d3RmL09iakNSdW50aW1lRXh0
cmFzLmg+CisKK3N0YXRpYyBJTVAgcmVnaXN0ZXJEZWZhdWx0c09yaWdpbmFsID0gbmlsOworc3Rh
dGljIGJvb2wgcmVnaXN0ZXJpbmdEZWZhdWx0cyA9IGZhbHNlOworCitzdGF0aWMgdm9pZCByZWdp
c3RlckRlZmF1bHRzT3ZlcnJpZGUoaWQgc2VsZiwgU0VMIHNlbGVjdG9yLCBOU0RpY3Rpb25hcnk8
TlNTdHJpbmcgKiwgaWQ+ICpkaWN0aW9uYXJ5KQoreworICAgIHJlZ2lzdGVyaW5nRGVmYXVsdHMg
PSB0cnVlOworICAgIHd0ZkNhbGxJTVA8dm9pZD4ocmVnaXN0ZXJEZWZhdWx0c09yaWdpbmFsLCBz
ZWxmLCBzZWxlY3RvciwgZGljdGlvbmFyeSk7CisgICAgcmVnaXN0ZXJpbmdEZWZhdWx0cyA9IGZh
bHNlOworfQorCiBAaW1wbGVtZW50YXRpb24gV0tVc2VyRGVmYXVsdHMKIAogLSAodm9pZClfbm90
aWZ5T2JzZXJ2ZXJzT2ZDaGFuZ2VGcm9tVmFsdWVzRm9yS2V5czooTlNEaWN0aW9uYXJ5PE5TU3Ry
aW5nICosIGlkPiAqKW9sZFZhbHVlcyB0b1ZhbHVlc0ZvcktleXM6KE5TRGljdGlvbmFyeTxOU1N0
cmluZyAqLCBpZD4gKiluZXdWYWx1ZXMKIHsKKyAgICBpZiAocmVnaXN0ZXJpbmdEZWZhdWx0cykK
KyAgICAgICAgcmV0dXJuOworCiAgICAgW3N1cGVyIF9ub3RpZnlPYnNlcnZlcnNPZkNoYW5nZUZy
b21WYWx1ZXNGb3JLZXlzOm9sZFZhbHVlcyB0b1ZhbHVlc0ZvcktleXM6bmV3VmFsdWVzXTsKIAog
ICAgIGlmIChbb2xkVmFsdWVzIGlzRXF1YWxUb0RpY3Rpb25hcnk6bmV3VmFsdWVzXSkKQEAgLTg3
LDYgKzEwMiw5IEBAICsgKGlkKXNoYXJlZEluc3RhbmNlCiAKIC0gKGluc3RhbmNldHlwZSlpbml0
CiB7CisgICAgTWV0aG9kIHJlZ2lzdGVyRGVmYXVsdHNNZXRob2QgPSBjbGFzc19nZXRJbnN0YW5j
ZU1ldGhvZChvYmpjX2dldENsYXNzKCJOU1VzZXJEZWZhdWx0cyIpLCBAc2VsZWN0b3IocmVnaXN0
ZXJEZWZhdWx0czopKTsKKyAgICByZWdpc3RlckRlZmF1bHRzT3JpZ2luYWwgPSBtZXRob2Rfc2V0
SW1wbGVtZW50YXRpb24ocmVnaXN0ZXJEZWZhdWx0c01ldGhvZCwgKElNUClyZWdpc3RlckRlZmF1
bHRzT3ZlcnJpZGUpOworCiAgICAgc3RkOjppbml0aWFsaXplcl9saXN0PE5TU3RyaW5nKj4gZG9t
YWlucyA9IHsKICAgICAgICAgQCJjb20uYXBwbGUuQWNjZXNzaWJpbGl0eSIsCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBh
Z2VQcm94eUNvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCShyZXZpc2lvbiAyNTc4NzQpCisrKyBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQkod29ya2luZyBjb3B5KQpA
QCAtMzE0LDQgKzMxNCw5IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVDb250ZXh0SW5H
UFUKIH0KICNlbmRpZgogCit2b2lkIFdlYlBhZ2VQcm94eTo6Z3JhbnRBY2Nlc3NUb1ByZWZlcmVu
Y2VTZXJ2aWNlKCkKK3sKKyAgICBwcm9jZXNzKCkudW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlSWZO
ZWVkZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0JKHJldmlz
aW9uIDI1Nzg3NSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
b29sQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKICNpbXBvcnQgImNv
bmZpZy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Bvb2wuaCIKIAorI2ltcG9ydCAiQWNjZXNzaWJp
bGl0eVN1cHBvcnRTUEkuaCIKICNpbXBvcnQgIkNvb2tpZVN0b3JhZ2VVdGlsc0NGLmgiCiAjaW1w
b3J0ICJMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQuaCIKICNpbXBvcnQgIkxvZ2dp
bmcuaCIKQEAgLTc1LDcgKzc2LDYgQEAKICNpZiBQTEFURk9STShNQUMpCiAjaW1wb3J0IDxRdWFy
dHpDb3JlL0NBUmVtb3RlTGF5ZXJTZXJ2ZXIuaD4KICNlbHNlCi0jaW1wb3J0ICJBY2Nlc3NpYmls
aXR5U3VwcG9ydFNQSS5oIgogI2ltcG9ydCAiVUlLaXRTUEkuaCIKICNpbXBvcnQgPHBhbC9pb3Mv
TWFuYWdlZENvbmZpZ3VyYXRpb25Tb2Z0TGluay5oPgogI2ltcG9ydCA8cGFsL3NwaS9pb3MvTWFu
YWdlZENvbmZpZ3VyYXRpb25TUEkuaD4KQEAgLTE3Myw2ICsxNzMsMTMgQEAgdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplKAogICAgICAgICBpbnN0YWxsTWVtb3J5UHJlc3N1
cmVIYW5kbGVyKCk7CiAKICAgICBzZXRMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQo
bWFrZVVuaXF1ZTxMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQ+KCkpOworCisjaWYg
RU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hf
Z2V0X2dsb2JhbF9xdWV1ZShRT1NfQ0xBU1NfQkFDS0dST1VORCwgMCksIF57CisgICAgICAgIC8v
IFN0YXJ0IG9ic2VydmluZyBwcmVmZXJlbmNlIGNoYW5nZXMuCisgICAgICAgIFtXS1ByZWZlcmVu
Y2VPYnNlcnZlciBzaGFyZWRJbnN0YW5jZV07CisgICAgfSk7CisjZW5kaWYKIH0KIAogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCkBAIC0xOTcsMTEgKzIwNCw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OnBsYXRmb3JtUmVzb2x2ZVBhdGgKICAgICBtX3Jlc29sdmVkUGF0aHMuY29udGFpbmVyQ2Fj
aGVzRGlyZWN0b3J5ID0gcmVzb2x2ZUFuZENyZWF0ZVJlYWRXcml0ZURpcmVjdG9yeUZvclNhbmRi
b3hFeHRlbnNpb24oV2ViUHJvY2Vzc1Bvb2w6OndlYkNvbnRlbnRDYWNoZXNEaXJlY3RvcnkoKSk7
CiAgICAgbV9yZXNvbHZlZFBhdGhzLmNvbnRhaW5lclRlbXBvcmFyeURpcmVjdG9yeSA9IHJlc29s
dmVBbmRDcmVhdGVSZWFkV3JpdGVEaXJlY3RvcnlGb3JTYW5kYm94RXh0ZW5zaW9uKFdlYlByb2Nl
c3NQb29sOjpjb250YWluZXJUZW1wb3JhcnlEaXJlY3RvcnkoKSk7CiAjZW5kaWYKLQotI2lmIEVO
QUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQotICAgIC8vIFN0YXJ0IG9ic2VydmluZyBwcmVmZXJl
bmNlIGNoYW5nZXMuCi0gICAgW1dLUHJlZmVyZW5jZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXTsK
LSNlbmRpZgogfQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtNDQyLDEwICs0NDQsMTMgQEAgdm9p
ZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplVwogICAgICAgICBmb3IgKHNpemVf
dCBpID0gMCwgc2l6ZSA9IHNlcnZpY2VzLnNpemUoKTsgaSA8IHNpemU7ICsraSkKICAgICAgICAg
ICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoc2VydmljZXNb
aV0sIFdURjo6bnVsbG9wdCwgcGFyYW1ldGVycy5tZWRpYUV4dGVuc2lvbkhhbmRsZXNbaV0pOwog
ICAgIH0KLSNpZiAhRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCi0gICAgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlIHByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlOwotICAgIFNhbmRib3hFeHRl
bnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5jZnByZWZzZC5kYWVt
b24iLCBXVEY6Om51bGxvcHQsIHByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlKTsKLSAgICBwYXJh
bWV0ZXJzLnByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZShwcmVmZXJlbmNlc0V4
dGVuc2lvbkhhbmRsZSk7CisKKyNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKKyAgICBp
ZiAoX0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGUgcHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGU7CisgICAgICAg
IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5j
ZnByZWZzZC5kYWVtb24iLCBXVEY6Om51bGxvcHQsIHByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxl
KTsKKyAgICAgICAgcGFyYW1ldGVycy5wcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZSA9IFdURk1v
dmUocHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGUpOworICAgIH0KICNlbmRpZgogfQogCkBAIC02
NDcsMTUgKzY1MiwxNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpyZWdpc3Rlck5vdGlmaWNhdGlv
CiAjZWxpZiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCiAgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJB
ZGRPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNlbnRlckdldERhcndpbk5vdGlmeUNlbnRlcigpLCB0
aGlzLCBiYWNrbGlnaHRMZXZlbERpZENoYW5nZUNhbGxiYWNrLCBzdGF0aWNfY2FzdDxDRlN0cmlu
Z1JlZj4oVUlCYWNrbGlnaHRMZXZlbENoYW5nZWROb3RpZmljYXRpb24pLCBudWxscHRyLCBDRk5v
dGlmaWNhdGlvblN1c3BlbnNpb25CZWhhdmlvckNvYWxlc2NlKTsKICNpZiBQTEFURk9STShJT1Mp
Ci0gICAgbV9hY2Nlc3NpYmlsaXR5RW5hYmxlZE9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNl
bnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6KF9fYnJpZGdlIGlkKWtBWFNB
cHBsaWNhdGlvbkFjY2Vzc2liaWxpdHlFbmFibGVkTm90aWZpY2F0aW9uIG9iamVjdDpuaWwgcXVl
dWU6W05TT3BlcmF0aW9uUXVldWUgY3VycmVudFF1ZXVlXSB1c2luZ0Jsb2NrOl4oTlNOb3RpZmlj
YXRpb24gKikgewotICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fcHJvY2Vzc2VzLnNp
emUoKTsgKytpKQotICAgICAgICAgICAgbV9wcm9jZXNzZXNbaV0tPnVuYmxvY2tBY2Nlc3NpYmls
aXR5U2VydmVySWZOZWVkZWQoKTsKLSAgICB9XTsKICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RP
UikKICAgICBDRk5vdGlmaWNhdGlvbkNlbnRlckFkZE9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2Vu
dGVyR2V0RGFyd2luTm90aWZ5Q2VudGVyKCksIHRoaXMsIHJlbW90ZVdlYkluc3BlY3RvckVuYWJs
ZWRDYWxsYmFjaywgc3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KENGU1RSKFdJUlNlcnZpY2VFbmFi
bGVkTm90aWZpY2F0aW9uKSksIG51bGxwdHIsIENGTm90aWZpY2F0aW9uU3VzcGVuc2lvbkJlaGF2
aW9yQ29hbGVzY2UpOwogI2VuZGlmCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQogI2VuZGlmIC8v
ICFQTEFURk9STShJT1NfRkFNSUxZKQorICAgIG1fYWNjZXNzaWJpbGl0eUVuYWJsZWRPYnNlcnZl
ciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JO
YW1lOihfX2JyaWRnZSBpZClrQVhTQXBwbGljYXRpb25BY2Nlc3NpYmlsaXR5RW5hYmxlZE5vdGlm
aWNhdGlvbiBvYmplY3Q6bmlsIHF1ZXVlOltOU09wZXJhdGlvblF1ZXVlIGN1cnJlbnRRdWV1ZV0g
dXNpbmdCbG9jazpeKE5TTm90aWZpY2F0aW9uICopIHsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBtX3Byb2Nlc3Nlcy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgbV9wcm9jZXNz
ZXNbaV0tPnVuYmxvY2tQcmVmZXJlbmNlU2VydmljZUlmTmVlZGVkKCk7CisgICAgICAgICAgICBt
X3Byb2Nlc3Nlc1tpXS0+dW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXJJZk5lZWRlZCgpOworICAg
ICAgICB9CisgICAgfV07CiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnVucmVnaXN0ZXJOb3Rp
ZmljYXRpb25PYnNlcnZlcnMoKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0JKHJldmlzaW9uIDI1Nzg3NCkKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0yMjUsNCArMjI1LDQzIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpl
bmFibGVSZW1vdGVJbnNwZWMKICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6RW5h
YmxlUmVtb3RlV2ViSW5zcGVjdG9yKGhhbmRsZSksIDApOwogfQogI2VuZGlmCisKK3ZvaWQgV2Vi
UHJvY2Vzc1Byb3h5Ojp1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKCkKK3sKKyAg
ICBpZiAobV9oYXNTZW50TWVzc2FnZVRvVW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIpCisgICAg
ICAgIHJldHVybjsKKyAgICBpZiAoIV9BWFNBcHBsaWNhdGlvbkFjY2Vzc2liaWxpdHlFbmFibGVk
KCkpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoIXByb2Nlc3NJZGVudGlmaWVyKCkpCisgICAg
ICAgIHJldHVybjsKKyAgICBpZiAoIWNhblNlbmRNZXNzYWdlKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGU7CisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICBpZiAoIVNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hM
b29rdXAoImNvbS5hcHBsZS5pcGhvbmUuYXhzZXJ2ZXItc3lzdGVtd2lkZSIsIGNvbm5lY3Rpb24o
KSA/IGNvbm5lY3Rpb24oKS0+Z2V0QXVkaXRUb2tlbigpIDogV1RGOjpudWxsb3B0LCBoYW5kbGUp
KQorICAgICAgICByZXR1cm47CisjZW5kaWYKKworICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nl
c3M6OlVuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVyKGhhbmRsZSksIDApOworICAgIG1faGFzU2Vu
dE1lc3NhZ2VUb1VuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVyID0gdHJ1ZTsKK30KKwordm9pZCBX
ZWJQcm9jZXNzUHJveHk6OnVuYmxvY2tQcmVmZXJlbmNlU2VydmljZUlmTmVlZGVkKCkKK3sKKyAg
ICBpZiAobV9oYXNTZW50TWVzc2FnZVRvVW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlKQorICAgICAg
ICByZXR1cm47CisgICAgaWYgKCFwcm9jZXNzSWRlbnRpZmllcigpKQorICAgICAgICByZXR1cm47
CisgICAgaWYgKCFjYW5TZW5kTWVzc2FnZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlOworICAgIGlmICghU2FuZGJveEV4dGVuc2lvbjo6
Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIsIGNv
bm5lY3Rpb24oKSA/IGNvbm5lY3Rpb24oKS0+Z2V0QXVkaXRUb2tlbigpIDogV1RGOjpudWxsb3B0
LCBoYW5kbGUpKQorICAgICAgICByZXR1cm47CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzOjpVbmJsb2NrUHJlZmVyZW5jZVNlcnZpY2UoaGFuZGxlKSwgMCk7CisgICAgbV9oYXNTZW50
TWVzc2FnZVRvVW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlID0gdHJ1ZTsKK30KKwogfQpJbmRleDog
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1t
CShyZXZpc2lvbiAyNTc4NzQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUHJv
Y2Vzc1Byb3h5SU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MywyNSArNDMsNiBAQCBib29sIFdl
YlByb2Nlc3NQcm94eTo6ZnVsbEtleWJvYXJkQWNjZXNzCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OnVuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVySWZOZWVkZWQoKQotewotICAg
IGlmIChtX2hhc1NlbnRNZXNzYWdlVG9VbmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcikKLSAgICAg
ICAgcmV0dXJuOwotICAgIGlmICghX0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVuYWJsZWQo
KSkKLSAgICAgICAgcmV0dXJuOwotICAgIGlmICghcHJvY2Vzc0lkZW50aWZpZXIoKSkKLSAgICAg
ICAgcmV0dXJuOwotICAgIGlmICghY2FuU2VuZE1lc3NhZ2UoKSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZTsKLSAgICBpZiAoIVNhbmRib3hF
eHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5pcGhvbmUuYXhz
ZXJ2ZXItc3lzdGVtd2lkZSIsIGNvbm5lY3Rpb24oKSA/IGNvbm5lY3Rpb24oKS0+Z2V0QXVkaXRU
b2tlbigpIDogV1RGOjpudWxsb3B0LCBoYW5kbGUpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpVbmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcihoYW5k
bGUpLCAwKTsKLSAgICBtX2hhc1NlbnRNZXNzYWdlVG9VbmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZl
ciA9IHRydWU7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjU3ODc0KQorKysgU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNzM2LDcgKzcz
Niw2IEBACiAJCTJEQUJBNzc2MUE4MkI0MjEwMEVGMEYxQSAvKiBBUElIaXN0b3J5Q2xpZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREFCQTc3NTFB
ODJCNDIxMDBFRjBGMUEgLyogQVBJSGlzdG9yeUNsaWVudC5oICovOyB9OwogCQkyREFDRTY0RTE4
QURCRkYwMDBFNENBNzYgLyogX1dLVGh1bWJuYWlsVmlld0ludGVybmFsLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREFDRTY0RDE4QURCRkYwMDBFNENB
NzYgLyogX1dLVGh1bWJuYWlsVmlld0ludGVybmFsLmggKi87IH07CiAJCTJEQUYwNkQ2MThCRDFB
NDcwMDgxQ0VCMSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREFGMDZENDE4QkQxQTQ3MDA4MUNF
QjEgLyogU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5oICovOyB9OwotCQkyREI3NjY3MTIx
QjVFNDhBMDA0NUREQjEgLyogQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEQjc2NjcwMjFCNUU0OEEwMDQ1RERC
MSAvKiBBY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oICovOyB9OwogCQkyREI5NDI5OTIzNEU3QTdG
MDBFNzc2QUQgLyogV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREI5NDI5NzIzNEU3QTdGMDBFNzc2QUQgLyog
V0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLmggKi87IH07CiAJCTJEQjk2MDUzMjM5ODg2QzEwMDEw
Mjc5MSAvKiBjb20uYXBwbGUuV2ViS2l0LkdQVS5zYiBpbiBDb3B5RmlsZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRCOTYwNTIyMzk4ODZCOTAwMTAyNzkxIC8qIGNvbS5h
cHBsZS5XZWJLaXQuR1BVLnNiICovOyB9OwogCQkyREMxOEZBRDIxODkxMDQ5MDAyNUE4OEQgLyog
V0tEcmF3aW5nVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkRDMThGQUIyMTg5MTA0ODAwMjVBODhEIC8qIFdLRHJhd2luZ1ZpZXcuaCAqLzsgfTsK
QEAgLTE3OTQsNiArMTc5Myw3IEBACiAJCUUzOEExRkMwMjNBNTUxQkYwMEQyMzc0RiAvKiBVc2Vy
SW50ZXJmYWNlSWRpb20ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMzhBMUZCRjIzQTU1MUJGMDBEMjM3NEYgLyogVXNlckludGVyZmFjZUlkaW9tLm1t
ICovOyB9OwogCQlFMzk2MjhERDIzOTYwQ0M2MDA2NThFQ0QgLyogV2ViRGV2aWNlT3JpZW50YXRp
b25VcGRhdGVQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTM5NjI4REIyMzk2MENDNTAwNjU4RUNEIC8qIFdlYkRldmljZU9yaWVudGF0aW9u
VXBkYXRlUHJvdmlkZXIuaCAqLzsgfTsKIAkJRTM5NjI4REUyMzk2MENDNjAwNjU4RUNEIC8qIFdl
YkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5NjI4REMyMzk2MENDNjAwNjU4RUNEIC8qIFdl
YkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuY3BwICovOyB9OworCQlFM0NBQUE0NDI0
MTMyNzk5MDBDRUQyRTIgLyogQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQ0FBQTQzMjQxMzI3OEEwMENFRDJF
MiAvKiBBY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oICovOyB9OwogCQlFNDEzRjU5RDFBQzFBREM0
MDAzNDUzNjAgLyogTmV0d29ya0NhY2hlRW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MTNGNTlCMUFDMUFEQjYwMDM0NTM2MCAvKiBOZXR3b3Jr
Q2FjaGVFbnRyeS5oICovOyB9OwogCQlFNDJFMDYxMDFBQTc1MjNCMDBCMTE2OTkgLyogTmV0d29y
a0NhY2hlSU9DaGFubmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFNDJFMDYwQjFBQTc0NDBEMDBCMTE2OTkgLyogTmV0d29ya0NhY2hlSU9DaGFubmVs
LmggKi87IH07CiAJCUU0MkUwNjEyMUFBNzVBQkQwMEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVEYXRh
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDJFMDYx
MTFBQTc1QUJEMDBCMTE2OTkgLyogTmV0d29ya0NhY2hlRGF0YS5oICovOyB9OwpAQCAtMzExMCw3
ICszMTEwLDYgQEAKIAkJMkRBRjA2RDUxOEJEMUE0NzAwODFDRUIxIC8qIFNtYXJ0TWFnbmlmaWNh
dGlvbkNvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUg
PSBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLm1tOyBwYXRoID0gaW9zL1NtYXJ0TWFnbmlm
aWNhdGlvbkNvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEQUYw
NkQ4MThCRDIzQkEwMDgxQ0VCMSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLm1lc3Nh
Z2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgbmFtZSA9IFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIubWVzc2FnZXMuaW47IHBh
dGggPSBpb3MvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5tZXNzYWdlcy5pbjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRBRjRGRkExQjYzNjE4MTAwNjAxM0Q2IC8qIFZpZXdH
ZXN0dXJlQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBWaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkyREI3NjY3MDIxQjVFNDhBMDA0NUREQjEgLyogQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRCOTQyOTcyMzRFN0E3RjAwRTc3NkFE
IC8qIFdLTW91c2VHZXN0dXJlUmVjb2duaXplci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS01vdXNlR2Vz
dHVyZVJlY29nbml6ZXIuaDsgcGF0aCA9IGlvcy9XS01vdXNlR2VzdHVyZVJlY29nbml6ZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRCOTQyOTgyMzRFN0E3RjAwRTc3NkFEIC8q
IFdLTW91c2VHZXN0dXJlUmVjb2duaXplci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLTW91
c2VHZXN0dXJlUmVjb2duaXplci5tbTsgcGF0aCA9IGlvcy9XS01vdXNlR2VzdHVyZVJlY29nbml6
ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEQjk2MDUyMjM5ODg2QjkwMDEw
Mjc5MSAvKiBjb20uYXBwbGUuV2ViS2l0LkdQVS5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0LkdQ
VS5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUxOTAsNiArNTE4OSw3IEBACiAJ
CUUzOTYyOERCMjM5NjBDQzUwMDY1OEVDRCAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVBy
b3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRldmljZU9yaWVu
dGF0aW9uVXBkYXRlUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM5
NjI4REMyMzk2MENDNjAwNjU4RUNEIC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlk
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUzOTYyOEU0MjM5NzFGMzQwMDY1OEVDRCAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVBy
b3ZpZGVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkRldmljZU9yaWVu
dGF0aW9uVXBkYXRlUHJvdmlkZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUzQ0FBQTQzMjQxMzI3OEEwMENFRDJFMiAvKiBBY2Nlc3NpYmlsaXR5U3VwcG9ydFNQ
SS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5U3VwcG9y
dFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDA0OTA3MDIxREU2NUY3MDAz
N0YwREIgLyogU2Nyb2xsZXJQYWlyTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNjcm9sbGVyUGFpck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDA0
OTA3MTIxREU2NUY3MDAzN0YwREIgLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJl
bW90ZU1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTQwNDkwNzIyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGVyUGFpck1hYy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbGVyUGFpck1h
Yy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY5OTcsNiArNjk5Nyw3IEBACiAJ
CTM3NTRENTQxMUIzQTI5OTgwMDNBNEM3RiAvKiBDb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJRTNDQUFBNDMyNDEzMjc4QTAwQ0VEMkUyIC8qIEFj
Y2Vzc2liaWxpdHlTdXBwb3J0U1BJLmggKi8sCiAJCQkJMUE1NzA1MTAxQkU0MTBFNTAwODc0QUYx
IC8qIEJsb2NrU1BJLmggKi8sCiAJCQkJMzdDMjFDQUQxRTk5NEMwQzAwMjlENUY5IC8qIENvcmVQ
cmVkaWN0aW9uU1BJLmggKi8sCiAJCQkJMkRBQURBOEUyMjk4QzIxMDAwRTM2QjBDIC8qIERldmlj
ZU1hbmFnZW1lbnRTUEkuaCAqLywKQEAgLTEwMTI0LDcgKzEwMTI1LDYgQEAKIAkJQ0UxQTBCQ0Ix
QTQ4RTZDNjAwNTRFRjc0IC8qIGlvcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCi0JCQkJMkRCNzY2NzAyMUI1RTQ4QTAwNDVEREIxIC8qIEFjY2Vzc2liaWxpdHlT
dXBwb3J0U1BJLmggKi8sCiAJCQkJQ0UxQTBCQ0MxQTQ4RTZDNjAwNTRFRjc0IC8qIEFzc2VydGlv
blNlcnZpY2VzU1BJLmggKi8sCiAJCQkJQ0RBMDQxRjMxQUNFMjEwNTAwNEExM0VDIC8qIEJhY2tC
b2FyZFNlcnZpY2VzU1BJLmggKi8sCiAJCQkJMkQ0QUYwODgyMDQ0QzNDNDAwNkM4ODE3IC8qIEZy
b250Qm9hcmRTZXJ2aWNlc1NQSS5oICovLApAQCAtMTAzNzYsNyArMTAzNzYsNyBAQAogCQkJCUEx
MTVEQzcyMTkxRDgyREEwMERBODA3MiAvKiBfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUExOUREM0MwMUQwN0QxNjgwMEFDODIzQiAvKiBfV0tXZWJWaWV3UHJp
bnRGb3JtYXR0ZXJJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE4MkQ1QjUxQkU2QkQy
NTAwODdBN0NDIC8qIEFjY2Vzc2liaWxpdHlJT1MuaCBpbiBIZWFkZXJzICovLAotCQkJCTJEQjc2
NjcxMjFCNUU0OEEwMDQ1RERCMSAvKiBBY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJRTNDQUFBNDQyNDEzMjc5OTAwQ0VEMkUyIC8qIEFjY2Vzc2liaWxpdHlTdXBw
b3J0U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0Q3OTJEODE3NjdDQ0EzMDA4ODFDQkUgLyog
QWN0aXZpdHlBc3NlcnRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTZCRDA1ODY1MjIwQ0U4QzIw
MDBCRUQ1QyAvKiBBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk2MzQ4NDI1MTFGQjI2RTcxMDA5NDZFM0MgLyogQVBJQXBwbGljYXRpb25NYW5pZmVzdC5oIGlu
IEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CShyZXZpc2lvbiAyNTc4NzQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5NzQsMTQgKzE5NzQsNiBAQCB2b2lkIFdlYlByb2Nl
c3M6OmNsZWFyQ3VycmVudE1vZGlmaWVyU3RhCiAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50Ojpz
ZXRDdXJyZW50TW9kaWZpZXJTdGF0ZSh7IH0pOwogfQogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKLXZvaWQgV2ViUHJvY2Vzczo6dW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIoY29uc3QgU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBoYW5kbGUpCi17Ci0gICAgYm9vbCBvayA9IFNhbmRib3hF
eHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShoYW5kbGUpOwotICAgIEFTU0VSVF9VTlVTRUQo
b2ssIG9rKTsKLX0KLSNlbmRpZgotCiBib29sIFdlYlByb2Nlc3M6OmFyZUFsbFBhZ2VzVGhyb3R0
bGVhYmxlKCkgY29uc3QKIHsKICAgICByZXR1cm4gV1RGOjphbGxPZihtX3BhZ2VNYXAudmFsdWVz
KCksIFtdKGF1dG8mIHBhZ2UpIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaAkocmV2aXNpb24gMjU3ODc0KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaAkod29ya2luZyBjb3B5KQpAQCAtMjk5LDggKzI5OSw2IEBAIHB1YmxpYzoKIAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdm9pZCBhY2Nlc3NpYmlsaXR5UHJvY2Vzc1N1c3Bl
bmRlZE5vdGlmaWNhdGlvbihib29sKTsKLSAgICAKLSAgICB2b2lkIHVuYmxvY2tBY2Nlc3NpYmls
aXR5U2VydmVyKGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYpOwogI2VuZGlmCiAKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCkBAIC0zMTMs
NiArMzExLDggQEAgcHVibGljOgogICAgIHZvaWQgZW5hYmxlUmVtb3RlV2ViSW5zcGVjdG9yKGNv
bnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYpOwogI2VuZGlmCiAgICAgdm9pZCBub3RpZnlQ
cmVmZXJlbmNlc0NoYW5nZWQoY29uc3QgU3RyaW5nJiBkb21haW4sIGNvbnN0IFN0cmluZyYga2V5
LCBjb25zdCBPcHRpb25hbDxTdHJpbmc+JiBlbmNvZGVkVmFsdWUpOworICAgIHZvaWQgdW5ibG9j
a0FjY2Vzc2liaWxpdHlTZXJ2ZXIoY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJik7Cisg
ICAgdm9pZCB1bmJsb2NrUHJlZmVyZW5jZVNlcnZpY2UoY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlJik7CiAjZW5kaWYKIAogICAgIGJvb2wgYXJlQWxsUGFnZXNUaHJvdHRsZWFibGUoKSBj
b25zdDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1l
c3NhZ2VzLmluCShyZXZpc2lvbiAyNTc4NzQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMTU0LDEwICsxNTQsNiBA
QCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIE5vCiAgICAgU2V0QmFja0Zv
cndhcmRDYWNoZUNhcGFjaXR5KHVuc2lnbmVkIGNhcGFjaXR5KTsKICAgICBDbGVhckNhY2hlZFBh
Z2Uoc3RydWN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgYmFja0ZvcndhcmRJ
dGVtSUQpIC0+ICgpIEFzeW5jCiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIFVuYmxv
Y2tBY2Nlc3NpYmlsaXR5U2VydmVyKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhh
bmRsZSkKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAg
U2VuZE1lc3NhZ2VUb1dlYkV4dGVuc2lvbihzdHJ1Y3QgV2ViS2l0OjpVc2VyTWVzc2FnZSB1c2Vy
TWVzc2FnZSkKICNlbmRpZgpAQCAtMTc0LDUgKzE3MCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nl
c3MgTGVnYWN5UmVjZWl2ZXIgTm8KIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIE5vdGlmeVBy
ZWZlcmVuY2VzQ2hhbmdlZChTdHJpbmcgZG9tYWluLCBTdHJpbmcga2V5LCBPcHRpb25hbDxTdHJp
bmc+IGVuY29kZWRWYWx1ZSkKKyAgICBVbmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcihXZWJLaXQ6
OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGUpCisgICAgVW5ibG9ja1ByZWZlcmVuY2VT
ZXJ2aWNlKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZSkKICNlbmRpZgog
fQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNi
LmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2Vi
UHJvY2Vzcy5zYi5pbgkocmV2aXNpb24gMjU3ODc5KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCSh3b3JraW5nIGNvcHkpCkBAIC02NDMsNyAr
NjQzLDkgQEAKICAgICAod2l0aCByZXBvcnQpICh3aXRoIHRlbGVtZXRyeSkKICNlbmRpZgogICAg
IChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLlBvd2VyTWFuYWdlbWVudC5jb250cm9sIikKKyNpZiAh
RU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUu
Y2ZwcmVmc2QuZGFlbW9uIikKKyNlbmRpZgogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNv
cmVzZXJ2aWNlcy5sYXVuY2hzZXJ2aWNlc2QiKQogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxl
LmxzZC5tYXBkYiIpCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUudGNjZCIpCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0J
KHJldmlzaW9uIDI1Nzg3NSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
cm9jZXNzQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTI4OCwxMSArMjg4LDEzIEBAIHZvaWQg
V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHIKICAgICAvLyBGSVhNRSgyMDc3MTYp
OiBUaGUgZm9sbG93aW5nIHNob3VsZCBiZSByZW1vdmVkIHdoZW4gdGhlIEdQVSBwcm9jZXNzIGlz
IGNvbXBsZXRlLgogICAgIGZvciAoc2l6ZV90IGkgPSAwLCBzaXplID0gcGFyYW1ldGVycy5tZWRp
YUV4dGVuc2lvbkhhbmRsZXMuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKQogICAgICAgICBTYW5kYm94
RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5tZWRpYUV4dGVuc2lvbkhh
bmRsZXNbaV0pOworI2VuZGlmCiAKLSNpZiAhRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCi0g
ICAgaWYgKHBhcmFtZXRlcnMucHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGUpCisjaWYgRU5BQkxF
KENGUFJFRlNfRElSRUNUX01PREUpCisgICAgaWYgKHBhcmFtZXRlcnMucHJlZmVyZW5jZXNFeHRl
bnNpb25IYW5kbGUpIHsKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVu
dGx5KCpwYXJhbWV0ZXJzLnByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlKTsKLSNlbmRpZgorICAg
ICAgICBfQ0ZQcmVmc1NldERpcmVjdE1vZGVFbmFibGVkKGZhbHNlKTsKKyAgICB9CiAjZW5kaWYK
IH0KIApAQCAtNTcyLDggKzU3NCw2IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFs
aXplUHJvY2UKICAgICBlbHNlCiAgICAgICAgIG1fcHJvY2Vzc1R5cGUgPSBQcm9jZXNzVHlwZTo6
V2ViQ29udGVudDsKIAotICAgIHJlZ2lzdGVyV2l0aEFjY2Vzc2liaWxpdHkoKTsKLQogI2lmIFVT
RShPU19TVEFURSkKICAgICByZWdpc3RlcldpdGhTdGF0ZUR1bXBlcigpOwogI2VuZGlmCkBAIC05
NDUsNiArOTQ1LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpzZXRNZWRpYU1JTUVUeXBlcyhjb25zdAog
ICAgICAgICBjYWNoZS5hZGRTdXBwb3J0ZWRUeXBlcyh0eXBlcyk7CiB9CiAKKyNpZiBFTkFCTEUo
Q0ZQUkVGU19ESVJFQ1RfTU9ERSkKIHZvaWQgV2ViUHJvY2Vzczo6bm90aWZ5UHJlZmVyZW5jZXND
aGFuZ2VkKGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgT3B0
aW9uYWw8U3RyaW5nPiYgZW5jb2RlZFZhbHVlKQogewogICAgIGF1dG8gZGVmYXVsdHMgPSBhZG9w
dE5TKFtbTlNVc2VyRGVmYXVsdHMgYWxsb2NdIGluaXRXaXRoU3VpdGVOYW1lOmRvbWFpbl0pOwpA
QCAtOTYzLDYgKzk2NCwxNCBAQCB2b2lkIFdlYlByb2Nlc3M6Om5vdGlmeVByZWZlcmVuY2VzQ2hh
bmdlCiAgICAgW2RlZmF1bHRzIHNldE9iamVjdDpvYmplY3QuZ2V0KCkgZm9yS2V5OmtleV07CiB9
CiAKK3ZvaWQgV2ViUHJvY2Vzczo6dW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlKGNvbnN0IFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSYgaGFuZGxlKQoreworICAgIGJvb2wgb2sgPSBTYW5kYm94RXh0
ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkoaGFuZGxlKTsKKyAgICBBU1NFUlRfVU5VU0VEKG9r
LCBvayk7CisgICAgX0NGUHJlZnNTZXREaXJlY3RNb2RlRW5hYmxlZChmYWxzZSk7Cit9CisjZW5k
aWYKKwogI2lmIFBMQVRGT1JNKElPUykKIHZvaWQgV2ViUHJvY2Vzczo6Z3JhbnRBY2Nlc3NUb0Fz
c2V0U2VydmljZXMoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiBtb2JpbGVBc3Nl
dEhhbmRsZSwgIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgbW9iaWxlQXNzZXRW
MkhhbmRsZSkKIHsKQEAgLTEwMDgsNiArMTAxNywxNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnVwZGF0
ZVBhZ2VTY3JlZW5Qcm9wZXJ0CiB9CiAjZW5kaWYKIAordm9pZCBXZWJQcm9jZXNzOjp1bmJsb2Nr
QWNjZXNzaWJpbGl0eVNlcnZlcihjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIGhhbmRs
ZSkKK3sKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGJvb2wgb2sgPSBTYW5kYm94RXh0
ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkoaGFuZGxlKTsKKyAgICBBU1NFUlRfVU5VU0VEKG9r
LCBvayk7CisjZW5kaWYKKyAgICAKKyAgICByZWdpc3RlcldpdGhBY2Nlc3NpYmlsaXR5KCk7Cit9
CisKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBSRUxFQVNFX0xPR19TRVNTSU9O
X0lECkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNTgwMTIpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxNiBAQAorMjAyMC0wMy0wNiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBSZS1lbmFibGUgQ0ZQcmVmcyBkaXJlY3QgbW9kZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NjkwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HcmFudEFjY2Vzc1RvUHJlZmVyZW5jZXNTZXJ2
aWNlLm1tOiBBZGRlZC4KKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvaW9zL0FjY2Vzc2liaWxpdHlUZXN0c0lPUy5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorCiAyMDIwLTAzLTA2ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29t
PgogCiAgICAgICAgIFVJUHJvY2VzcyBjcmFzaCBhZnRlciB1c2luZyBfcHJlcGFyZUZvck1vdmVU
b1dpbmRvdywgdGhlbiBkZWFsbG9jYXRpbmcgdGhlIFdLV2ViVmlldyBiZWZvcmUgbW92aW5nIHRv
IHRoZSB3aW5kb3cKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNTc4NzQp
CisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTAwMyw2ICsxMDAzLDcgQEAKIAkJRTMyNEE2RjAy
MDQxQzgyMDAwQTc2NTkzIC8qIFVuaXF1ZUFycmF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOThCQzBGMjA0MUM3NjMwMDM4NzEzNiAvKiBVbmlx
dWVBcnJheS5jcHAgKi87IH07CiAJCUUzMjVDOTA3MjNFMzg3MDIwMEJDN0QzQiAvKiBQaWN0dXJl
SW5QaWN0dXJlU3VwcG9ydC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzMjVDOTA2MjNFMzg3MDIwMEJDN0QzQiAvKiBQaWN0dXJlSW5QaWN0dXJlU3Vw
cG9ydC5tbSAqLzsgfTsKIAkJRTMyQjU0OTIyMjgxMEFDNDAwOEFENzAyIC8qIFBhY2tlZC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzJCNTQ5MTIy
ODEwQUMwMDA4QUQ3MDIgLyogUGFja2VkLmNwcCAqLzsgfTsKKwkJRTM0QTZEMTkyNDEyREUzOTAw
MTJBQjZFIC8qIEdyYW50QWNjZXNzVG9QcmVmZXJlbmNlc1NlcnZpY2UubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzRBNkQxODI0MTJERTM5MDAxMkFC
NkUgLyogR3JhbnRBY2Nlc3NUb1ByZWZlcmVuY2VzU2VydmljZS5tbSAqLzsgfTsKIAkJRTM1Qjkw
ODIyM0Y2MEREMDAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1vZGVsLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1QjkwODEyM0Y2MEREMDAwMDAx
MUZGIC8qIExvY2FsaXplZERldmljZU1vZGVsLm1tICovOyB9OwogCQlFMzVGQzdCMjIyQjgyQTcz
MDBGMzJGOTggLyogSlNMb2NrVGFrZXNXZWJUaHJlYWRMb2NrLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1RkM3QjEyMkI4MkE2RDAwRjMyRjk4IC8q
IEpTTG9ja1Rha2VzV2ViVGhyZWFkTG9jay5tbSAqLzsgfTsKIAkJRTM3M0Q3OTExRjJDRjM1MjAw
QzZGQUFGIC8qIFNpZ25hbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTM5NTNGOTUxRjJDRjMyMTAwQTc2QTJFIC8qIFNpZ25hbHMuY3BwICovOyB9
OwpAQCAtMjU5OSw2ICsyNjAwLDcgQEAKIAkJRTMwMkJEQTkyNDA0QjkyMzAwODY1Mjc3IC8qIENv
bXBhY3RSZWZQdHJUdXBsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDb21wYWN0UmVmUHRyVHVwbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
MzI1QzkwNjIzRTM4NzAyMDBCQzdEM0IgLyogUGljdHVyZUluUGljdHVyZVN1cHBvcnQubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBQaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMyQjU0OTEyMjgxMEFDMDAwOEFENzAyIC8qIFBhY2tlZC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWNrZWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFMzRBNkQxODI0MTJERTM5MDAxMkFCNkUgLyogR3JhbnRBY2Nlc3NUb1ByZWZlcmVu
Y2VzU2VydmljZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdyYW50QWNjZXNzVG9QcmVmZXJl
bmNlc1NlcnZpY2UubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNUI5MDgxMjNG
NjBERDAwMDAwMTFGRiAvKiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IExvY2FsaXplZERldmljZU1vZGVsLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMzVGQzdCMTIyQjgyQTZEMDBGMzJGOTggLyogSlNMb2NrVGFrZXNXZWJUaHJlYWRMb2Nr
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSlNMb2NrVGFrZXNX
ZWJUaHJlYWRMb2NrLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzg4ODg3MDIw
QzkwOTgxMDBFNjMyQkMgLyogV29ya2VyUG9vbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXb3JrZXJQb29sLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTI5MDYsNiArMjkwOCw3IEBACiAJCQkJQzE1Q0JCMkYyM0YxRkYxQTAwMzAwQ0M3IC8qIEJh
Y2tsaWdodExldmVsTm90aWZpY2F0aW9uLm1tICovLAogCQkJCUMxNjkyREM5MjNEMTBEQUUwMDZF
ODhGNyAvKiBCYXR0ZXJ5Lm1tICovLAogCQkJCUUzOTRBRTZFMjNGMjMwM0UwMDVCNDkzNiAvKiBH
cmFudEFjY2Vzc1RvTW9iaWxlQXNzZXRzLm1tICovLAorCQkJCUUzNEE2RDE4MjQxMkRFMzkwMDEy
QUI2RSAvKiBHcmFudEFjY2Vzc1RvUHJlZmVyZW5jZXNTZXJ2aWNlLm1tICovLAogCQkJCUUzNUI5
MDgxMjNGNjBERDAwMDAwMTFGRiAvKiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5tbSAqLywKIAkJCQlD
MTQ1Q0MwQjIzREE1QTBGMDAzQTVFRUIgLyogTWltZVR5cGVzLm1tICovLAogCQkJCUUzMjVDOTA2
MjNFMzg3MDIwMEJDN0QzQiAvKiBQaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5tbSAqLywKQEAgLTQ4
NDMsNiArNDg0Niw3IEBACiAJCQkJMDdDRTFDRjMxRjA2QTdFMDAwQkY4OUY1IC8qIEdldFVzZXJN
ZWRpYU5hdmlnYXRpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQkwN0U0OTk5MTFGOUU1NkRGMDAy
RjFFRjMgLyogR2V0VXNlck1lZGlhUmVwcm9tcHQubW0gaW4gU291cmNlcyAqLywKIAkJCQlFMzk0
QUU2RjIzRjIzMDNFMDA1QjQ5MzYgLyogR3JhbnRBY2Nlc3NUb01vYmlsZUFzc2V0cy5tbSBpbiBT
b3VyY2VzICovLAorCQkJCUUzNEE2RDE5MjQxMkRFMzkwMDEyQUI2RSAvKiBHcmFudEFjY2Vzc1Rv
UHJlZmVyZW5jZXNTZXJ2aWNlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOEU0QTg1MzcxRTFEMUFC
MjAwRjUzQjBGIC8qIEdyaWRQb3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VG
QTFBNDExQUU2MDA0NDdDNEMgLyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0NDRTdFQzExQTQxMUE3RTAwNDQ3QzRDIC8qIEhUTUxDb2xsZWN0aW9uTmFt
ZWRJdGVtLm1tIGluIFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9HcmFudEFjY2Vzc1RvUHJlZmVyZW5jZXNTZXJ2aWNlLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dyYW50QWNjZXNzVG9QcmVmZXJlbmNl
c1NlcnZpY2UubW0JKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvR3JhbnRBY2Nlc3NUb1ByZWZlcmVuY2VzU2VydmljZS5tbQkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYg
V0tfSEFWRV9DX1NQSQorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAi
VGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKwor
VEVTVChXZWJLaXQsIEdyYW50QWNjZXNzUHJlZmVyZW5jZXNTZXJ2aWNlKQoreworICAgIGF1dG8g
Y29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBp
bml0XSk7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJ
bnRlcm5hbHNJbmplY3RlZEJ1bmRsZVRlc3QiKSk7CisgICAgY29uZmlndXJhdGlvbi5nZXQoKS5w
cm9jZXNzUG9vbCA9IChXS1Byb2Nlc3NQb29sICopY29udGV4dC5nZXQoKTsKKyAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01h
a2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkg
YWRkVG9XaW5kb3c6WUVTXSk7CisKKyAgICBbd2ViVmlldyBfZ3JhbnRBY2Nlc3NUb1ByZWZlcmVu
Y2VTZXJ2aWNlXTsKKworICAgIGF1dG8gc2FuZGJveEFjY2VzcyA9IFsmXSB7CisgICAgICAgIHJl
dHVybiBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAid2luZG93LmludGVy
bmFscy5oYXNTYW5kYm94TWFjaExvb2t1cEFjY2Vzc1RvR2xvYmFsTmFtZSgnY29tLmFwcGxlLldl
YktpdC5XZWJDb250ZW50JywgJ2NvbS5hcHBsZS5jZnByZWZzZC5kYWVtb24nKSJdLmJvb2xWYWx1
ZTsKKyAgICB9OworCisgICAgQVNTRVJUX1RSVUUoc2FuZGJveEFjY2Vzcyk7Cit9CisKKyNlbmRp
ZgpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvQWNjZXNzaWJpbGl0eVRlc3Rz
SU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0FjY2Vz
c2liaWxpdHlUZXN0c0lPUy5tbQkocmV2aXNpb24gMjU3ODc0KQorKysgVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9pb3MvQWNjZXNzaWJpbGl0eVRlc3RzSU9TLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0zNiw2ICszNiwxMiBAQAogI2ltcG9ydCA8V2ViS2l0L19XS1JlbW90ZU9iamVjdEludGVyZmFj
ZS5oPgogI2ltcG9ydCA8V2ViS2l0L19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lmg+CiAKKyNpbXBv
cnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgorCitTT0ZUX0xJTktfTElCUkFSWShsaWJBY2Nlc3NpYmls
aXR5KQorU09GVF9MSU5LKGxpYkFjY2Vzc2liaWxpdHksIF9BWFNab29tVG91Y2hTZXRFbmFibGVk
LCB2b2lkLCAoQm9vbGVhbiBlbmFibGVkKSwgKGVuYWJsZWQpKTsKK1NPRlRfTElOSyhsaWJBY2Nl
c3NpYmlsaXR5LCBfQVhTQXBwbGljYXRpb25BY2Nlc3NpYmlsaXR5U2V0RW5hYmxlZCwgdm9pZCwg
KEJvb2xlYW4gZW5hYmxlZCksIChlbmFibGVkKSk7CisKIEBpbXBsZW1lbnRhdGlvbiBXS1dlYlZp
ZXcgKFdLQWNjZXNzaWJpbGl0eVRlc3RpbmcpCiAtIChOU0FycmF5PE5TVmFsdWUgKj4gKilyZWN0
c0F0U2VsZWN0aW9uT2Zmc2V0OihOU0ludGVnZXIpb2Zmc2V0IHdpdGhUZXh0OihOU1N0cmluZyAq
KXRleHQKIHsKQEAgLTE0OCw2ICsxNTQsOSBAQCBURVNUKEFjY2Vzc2liaWxpdHlUZXN0cywgU3Rv
cmVTZWxlY3Rpb24pCiAKIFRFU1QoQWNjZXNzaWJpbGl0eVRlc3RzLCBXZWJQcm9jZXNzTG9hZGVy
QnVuZGxlTG9hZGVkKQogeworICAgIF9BWFNab29tVG91Y2hTZXRFbmFibGVkKHRydWUpOworICAg
IF9BWFNBcHBsaWNhdGlvbkFjY2Vzc2liaWxpdHlTZXRFbmFibGVkKHRydWUpOworCiAgICAgV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0
aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIkFjY2Vzc2li
aWxpdHlUZXN0UGx1Z2luIl07CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCkgY29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNl
ICppbnRlcmZhY2UgPSBbX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlIHJlbW90ZU9iamVjdEludGVy
ZmFjZVdpdGhQcm90b2NvbDpAcHJvdG9jb2woQWNjZXNzaWJpbGl0eVRlc3RTdXBwb3J0UHJvdG9j
b2wpXTsKQEAgLTE3MSw2ICsxODAsOSBAQCAgICAgaWQgPEFjY2Vzc2liaWxpdHlUZXN0U3VwcG9y
dFByb3RvY29sCiAgICAgICAgIGlzRG9uZSA9IHRydWU7CiAgICAgfV07CiAgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworCisgICAgX0FYU1pvb21Ub3VjaFNldEVuYWJsZWQo
ZmFsc2UpOworICAgIF9BWFNBcHBsaWNhdGlvbkFjY2Vzc2liaWxpdHlTZXRFbmFibGVkKGZhbHNl
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392821</attachid>
            <date>2020-03-06 17:53:18 -0800</date>
            <delta_ts>2020-03-11 17:15:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208690-20200306175316.patch</filename>
            <type>text/plain</type>
            <size>46558</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTgwNDQpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDIwLTAzLTA2ICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFJlLWVuYWJsZSBDRlByZWZzIGRp
cmVjdCBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDg2OTAKKworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAg
ICogd3RmL1BsYXRmb3JtRW5hYmxlLmg6CisKIDIwMjAtMDMtMDYgIFBlbmcgTGl1ICA8cGVuZy5s
aXU2QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgdGhlIGZlYXR1cmUgZmxhZ3MgbWVjaGFuaXNt
IHRvIGdpdmUgZGVmYXVsdCBmZWF0dXJlIHByZWZlcmVuY2UgdmFsdWVzCkluZGV4OiBTb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtRW5hYmxlLmgJKHJldmlzaW9uIDI1ODA0NCkKKysrIFNvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtRW5hYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTg2OCw0ICs4NjgsNCBAQAogI2Vycm9yICJF
TkFCTEUoV0VCR0wyKSByZXF1aXJlcyBFTkFCTEUoV0VCR0wpIgogI2VuZGlmCiAKLSNkZWZpbmUg
RU5BQkxFX0NGUFJFRlNfRElSRUNUX01PREUgMAorI2RlZmluZSBFTkFCTEVfQ0ZQUkVGU19ESVJF
Q1RfTU9ERSAxCkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjU4MDQ0KQorKysgU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1NyBAQAorMjAyMC0wMy0wNiAg
UGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBS
ZS1lbmFibGUgQ0ZQcmVmcyBkaXJlY3QgbW9kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NjkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQg
RnVsZ2hhbS4KKworICAgICAgICBUaGlzIHBhdGNoIHJlLWVuYWJsZWQgQ0YgcHJlZnMgZGlyZWN0
IG1vZGUgb24gaU9TIGFuZCBtYWNPUywgYW5kIGFkZHJlc3NlcyBwZXJmb3JtYW5jZSBpc3N1ZXMg
YW5kIEFjY2Vzc2liaWxpdHkgaXNzdWVzCisgICAgICAgIHdpdGggdGhlIG9yaWdpbmFsIHBhdGNo
LiBQZXJmb3JtYW5jZSBpc3N1ZXMgYXJlIGFkZHJlc3NlZCBieSBjcmVhdGluZyB0aGUgTlNVc2Vy
RGVmYXVsdHMgb2JqZWN0cyBpbiB0aGUgVUkgcHJvY2VzcyBvbgorICAgICAgICBhIG5vbi1tYWlu
IHRocmVhZCwgd2hpbGUgdGhlIEFjY2Vzc2liaWxpdHkgaXNzdWVzIGFyZSBmaXhlZCBieSBpc3N1
aW5nIGFuIGV4dGVuc2lvbiB0byB0aGUgcHJlZmVyZW5jZXMgc2VydmljZSB3aGVuCisgICAgICAg
IEFjY2Vzc2liaWxpdHkgaXMgZW5hYmxlZC4KKworICAgICAgICBBUEkgdGVzdDogV2ViS2l0Lkdy
YW50QWNjZXNzUHJlZmVyZW5jZXNTZXJ2aWNlCisKKyAgICAgICAgKiBSZXNvdXJjZXMvU2FuZGJv
eFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2I6CisgICAgICAgICog
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfZ3JhbnRB
Y2Nlc3NUb1ByZWZlcmVuY2VTZXJ2aWNlXSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1ByZWZlcmVu
Y2VPYnNlcnZlci5tbToKKyAgICAgICAgKHJlZ2lzdGVyRGVmYXVsdHNPdmVycmlkZSk6CisgICAg
ICAgICgtW1dLVXNlckRlZmF1bHRzIF9ub3RpZnlPYnNlcnZlcnNPZkNoYW5nZUZyb21WYWx1ZXNG
b3JLZXlzOnRvVmFsdWVzRm9yS2V5czpdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlT2JzZXJ2
ZXIgaW5pdF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpncmFudEFjY2Vzc1RvUHJlZmVyZW5j
ZVNlcnZpY2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29h
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXpl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtUmVzb2x2ZVBhdGhz
Rm9yU2FuZGJveEV4dGVuc2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6
cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQb29sOjpyZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVycyk6CisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzUHJveHk6OnVuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVySWZOZWVkZWQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnVuYmxvY2tQcmVmZXJlbmNlU2VydmljZUlmTmVl
ZGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1
bmNoaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQcm94eTo6dW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXJJZk5lZWRlZCk6IERl
bGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6dW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIpOiBEZWxldGVkLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlBy
b2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0
aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3Jt
SW5pdGlhbGl6ZVByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp1bmJsb2Nr
UHJlZmVyZW5jZVNlcnZpY2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp1bmJsb2Nr
QWNjZXNzaWJpbGl0eVNlcnZlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2Vi
UHJvY2Vzcy5zYi5pbjoKKwogMjAyMC0wMy0wNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBIaXQtdGVzdCBDQUxheWVycyBvbiB0aGUgc2Nyb2xsaW5n
IHRocmVhZCBmb3IgYXN5bmMgZnJhbWUvb3ZlcmZsb3cgc2Nyb2xsaW5nCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9BY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0FjY2Vzc2liaWxpdHlT
dXBwb3J0U1BJLmgJKHJldmlzaW9uIDI1ODA0NCkJKGZyb20gU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9zcGkvaW9zL0FjY2Vzc2liaWxpdHlTdXBwb3J0U1BJLmg6MjU4MDQ0KQorKysgU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFlfU1VQ
UE9SVCkKKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKy8vIEZJWE1FICg0NjQzMjAx
MSk6IFdlIHNob3VsZG4ndCBuZWVkIHRvIHdyYXAgdGhpcyBpbmNsdWRlIGluIGV4dGVybiAiQyIu
CitXVEZfRVhURVJOX0NfQkVHSU4KKyNpbmNsdWRlIDxBY2Nlc3NpYmlsaXR5U3VwcG9ydC5oPgor
V1RGX0VYVEVSTl9DX0VORAorCisjZWxzZQorCitXVEZfRVhURVJOX0NfQkVHSU4KKworI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCitleHRlcm4gQm9vbGVhbiBfQVhTS2V5UmVwZWF0RW5hYmxlZCgp
OworZXh0ZXJuIEJvb2xlYW4gX0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVuYWJsZWQoKTsK
K2V4dGVybiBDRlN0cmluZ1JlZiBrQVhTQXBwbGljYXRpb25BY2Nlc3NpYmlsaXR5RW5hYmxlZE5v
dGlmaWNhdGlvbjsKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFlfQlVORExFU19QQVRIKQorZXh0ZXJu
IENGU3RyaW5nUmVmIF9BWFNDb3B5UGF0aEZvckFjY2Vzc2liaWxpdHlCdW5kbGUoQ0ZTdHJpbmdS
ZWYgYnVuZGxlKTsKKyNlbmRpZgorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKKwor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShGVUxMX0tFWUJPQVJEX0FDQ0VTUykK
K2V4dGVybiBDRlN0cmluZ1JlZiBrQVhTRnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZE5vdGlmaWNh
dGlvbjsKK2V4dGVybiBCb29sZWFuIF9BWFNGdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkKCk7Cisj
ZW5kaWYKKworV1RGX0VYVEVSTl9DX0VORAorCisjZW5kaWYKKworI2VuZGlmIC8vIEhBVkUoQUND
RVNTSUJJTElUWV9TVVBQT1JUKQpJbmRleDogU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29j
b2EvQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL3NwaS9Db2NvYS9BY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oCShyZXZpc2lvbiAy
NTgwNDQpCisrKyBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9BY2Nlc3NpYmlsaXR5
U3VwcG9ydFNQSS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw2IEBAIFdURl9FWFRFUk5f
Q19FTkQKIAogV1RGX0VYVEVSTl9DX0JFR0lOCiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQog
ZXh0ZXJuIEJvb2xlYW4gX0FYU0tleVJlcGVhdEVuYWJsZWQoKTsKIGV4dGVybiBCb29sZWFuIF9B
WFNBcHBsaWNhdGlvbkFjY2Vzc2liaWxpdHlFbmFibGVkKCk7CiBleHRlcm4gQ0ZTdHJpbmdSZWYg
a0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVuYWJsZWROb3RpZmljYXRpb247CkBAIC00Niw4
ICs0NSw2IEBAIGV4dGVybiBDRlN0cmluZ1JlZiBrQVhTQXBwbGljYXRpb25BY2Nlc3MKIGV4dGVy
biBDRlN0cmluZ1JlZiBfQVhTQ29weVBhdGhGb3JBY2Nlc3NpYmlsaXR5QnVuZGxlKENGU3RyaW5n
UmVmIGJ1bmRsZSk7CiAjZW5kaWYKIAotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCi0K
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoRlVMTF9LRVlCT0FSRF9BQ0NFU1Mp
CiBleHRlcm4gQ0ZTdHJpbmdSZWYga0FYU0Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWROb3RpZmlj
YXRpb247CiBleHRlcm4gQm9vbGVhbiBfQVhTRnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCgpOwpJ
bmRleDogU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0FjY2Vzc2liaWxpdHlTdXBwb3J0
U1BJLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0FjY2Vz
c2liaWxpdHlTdXBwb3J0U1BJLmgJKHJldmlzaW9uIDI1ODA0NCkKKysrIFNvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vc3BpL2lvcy9BY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oCShub25leGlzdGVudCkK
QEAgLTEsNjAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgSEFWRShBQ0NFU1NJQklMSVRZX1NVUFBPUlQpCi0K
LSNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQotCi0vLyBGSVhNRSAoNDY0MzIwMTEpOiBXZSBz
aG91bGRuJ3QgbmVlZCB0byB3cmFwIHRoaXMgaW5jbHVkZSBpbiBleHRlcm4gIkMiLgotV1RGX0VY
VEVSTl9DX0JFR0lOCi0jaW5jbHVkZSA8QWNjZXNzaWJpbGl0eVN1cHBvcnQuaD4KLVdURl9FWFRF
Uk5fQ19FTkQKLQotI2Vsc2UKLQotV1RGX0VYVEVSTl9DX0JFR0lOCi0KLSNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQotZXh0ZXJuIEJvb2xlYW4gX0FYU0tleVJlcGVhdEVuYWJsZWQoKTsKLWV4dGVy
biBCb29sZWFuIF9BWFNBcHBsaWNhdGlvbkFjY2Vzc2liaWxpdHlFbmFibGVkKCk7Ci1leHRlcm4g
Q0ZTdHJpbmdSZWYga0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVuYWJsZWROb3RpZmljYXRp
b247Ci0jaWYgSEFWRShBQ0NFU1NJQklMSVRZX0JVTkRMRVNfUEFUSCkKLWV4dGVybiBDRlN0cmlu
Z1JlZiBfQVhTQ29weVBhdGhGb3JBY2Nlc3NpYmlsaXR5QnVuZGxlKENGU3RyaW5nUmVmIGJ1bmRs
ZSk7Ci0jZW5kaWYKLQotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCi0KLSNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoRlVMTF9LRVlCT0FSRF9BQ0NFU1MpCi1leHRlcm4g
Q0ZTdHJpbmdSZWYga0FYU0Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWROb3RpZmljYXRpb247Ci1l
eHRlcm4gQm9vbGVhbiBfQVhTRnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCgpOwotI2VuZGlmCi0K
LVdURl9FWFRFUk5fQ19FTkQKLQotI2VuZGlmCi0KLSNlbmRpZiAvLyBIQVZFKEFDQ0VTU0lCSUxJ
VFlfU1VQUE9SVCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxl
cy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5X
ZWJDb250ZW50LnNiCShyZXZpc2lvbiAyNTgwNDQpCisrKyBTb3VyY2UvV2ViS2l0L1Jlc291cmNl
cy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgkod29y
a2luZyBjb3B5KQpAQCAtNTM2LDcgKzUzNiw2IEBACiAoYWxsb3cgbWFjaC1sb29rdXAKICAgICAo
Z2xvYmFsLW5hbWUgImNvbS5hcHBsZS5sb2dkIikKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBs
ZS5sb2dkLmV2ZW50cyIpCi0gICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuY2ZwcmVmc2QuZGFl
bW9uIikKICkKIAogKGRlbnkgbWFjaC1sb29rdXAgKHdpdGggdGVsZW1ldHJ5KQpJbmRleDogU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHAJKHJldmlzaW9uIDI1ODA0NCkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODUsNyArMTg1LDcg
QEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZAogI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgIC8vIEZJWE1FKDIwNzcxNik6IFRoZSBmb2xsb3dpbmcgc2hvdWxkIGJlIHJl
bW92ZWQgd2hlbiB0aGUgR1BVIHByb2Nlc3MgaXMgY29tcGxldGUuCiAgICAgZW5jb2RlciA8PCBt
ZWRpYUV4dGVuc2lvbkhhbmRsZXM7Ci0jaWYgIUVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQor
I2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQogICAgIGVuY29kZXIgPDwgcHJlZmVyZW5j
ZXNFeHRlbnNpb25IYW5kbGU7CiAjZW5kaWYKICNlbmRpZgpAQCAtNTA0LDcgKzUwNCw3IEBAIGJv
b2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2QKICAgICBwYXJhbWV0ZXJzLm1l
ZGlhRXh0ZW5zaW9uSGFuZGxlcyA9IFdURk1vdmUoKm1lZGlhRXh0ZW5zaW9uSGFuZGxlcyk7CiAg
ICAgLy8gRklYTUUoMjA3NzE2KTogRW5kIHJlZ2lvbiB0byByZW1vdmUuCiAKLSNpZiAhRU5BQkxF
KENGUFJFRlNfRElSRUNUX01PREUpCisjaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCiAg
ICAgT3B0aW9uYWw8T3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPj4gcHJlZmVyZW5j
ZXNFeHRlbnNpb25IYW5kbGU7CiAgICAgZGVjb2RlciA+PiBwcmVmZXJlbmNlc0V4dGVuc2lvbkhh
bmRsZTsKICAgICBpZiAoIXByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlKQpJbmRleDogU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAko
cmV2aXNpb24gMjU4MDQ0KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMjcsNyArMjI3LDcgQEAgc3RydWN0
IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAg
ICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgbWVkaWFFeHRlbnNpb25IYW5kbGVzOyAv
LyBGSVhNRSgyMDc3MTYpOiBSZW1vdmUgd2hlbiBHUFUgcHJvY2VzcyBpcyBjb21wbGV0ZS4KLSNp
ZiAhRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCisjaWYgRU5BQkxFKENGUFJFRlNfRElSRUNU
X01PREUpCiAgICAgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBwcmVmZXJlbmNl
c0V4dGVuc2lvbkhhbmRsZTsKICNlbmRpZgogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAkocmV2aXNpb24gMjU4MDQ0KQorKysgU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTE3MDMsNiArMTcwMywx
MCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXZva2VBY2Nlc3NUb0Fzc2V0U2VydmljZXMoKTsKICNl
bmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBncmFudEFjY2Vzc1RvUHJlZmVy
ZW5jZVNlcnZpY2UoKTsKKyNlbmRpZgorCiAgICAgdm9pZCBzZXRJc05hdmlnYXRpbmdUb0FwcEJv
dW5kRG9tYWluVGVzdGluZyhib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiBw
cml2YXRlOgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCShy
ZXZpc2lvbiAyNTgwNDQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5oCSh3b3JraW5nIGNvcHkpCkBAIC03MDYsNyArNzA2LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8UGVyQWN0aXZpdHlTdGF0ZUNQVVVzYWdlU2FtcGxlcj4gbV9wZXJBY3Rpdml0
eVN0YXRlQ1BVVXNhZ2VTYW1wbGVyOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQorI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxOU09iamVjdD4gbV9hY2Nlc3Np
YmlsaXR5RW5hYmxlZE9ic2VydmVyOwogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAkocmV2aXNpb24gMjU4MDQ0KQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
OTM2LDcgKzkzNiw5IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcK
ICAgICAgICAgaWYgKHhwY19jb25uZWN0aW9uX3QgeHBjQ29ubmVjdGlvbiA9IGNvbm5lY3Rpb24o
KS0+eHBjQ29ubmVjdGlvbigpKQogICAgICAgICAgICAgbV90aHJvdHRsZXIuZGlkQ29ubmVjdFRv
UHJvY2Vzcyh4cGNfY29ubmVjdGlvbl9nZXRfcGlkKHhwY0Nvbm5lY3Rpb24pKTsKICAgICB9Cisj
ZW5kaWYKIAorI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHVuYmxvY2tBY2Nlc3NpYmlsaXR5U2Vy
dmVySWZOZWVkZWQoKTsKICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaAkocmV2aXNpb24gMjU4MDQ0KQorKysgU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzNiw4ICszMzYsOSBA
QCBwdWJsaWM6CiAgICAgdm9pZCBlbmFibGVSZW1vdGVJbnNwZWN0b3JJZk5lZWRlZCgpOwogI2Vu
ZGlmCiAgICAgCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpZiBQTEFURk9STShDT0NPQSkK
ICAgICB2b2lkIHVuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVySWZOZWVkZWQoKTsKKyAgICB2b2lk
IHVuYmxvY2tQcmVmZXJlbmNlU2VydmljZUlmTmVlZGVkKCk7CiAjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCkBAIC01MzEsMTAgKzUzMiwxNCBAQCBwcml2YXRlOgogICAgIEZvcmVn
cm91bmRXZWJQcm9jZXNzVG9rZW4gbV9mb3JlZ3JvdW5kVG9rZW47CiAgICAgQmFja2dyb3VuZFdl
YlByb2Nlc3NUb2tlbiBtX2JhY2tncm91bmRUb2tlbjsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQotICAgIGJvb2wgbV9oYXNTZW50TWVzc2FnZVRvVW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIg
eyBmYWxzZSB9OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpEZWZlcnJhYmxlT25lU2hv
dFRpbWVyPiBtX3VuZXhwZWN0ZWRBY3Rpdml0eVRpbWVyOwogI2VuZGlmCiAKKyNpZiBQTEFURk9S
TShDT0NPQSkKKyAgICBib29sIG1faGFzU2VudE1lc3NhZ2VUb1VuYmxvY2tBY2Nlc3NpYmlsaXR5
U2VydmVyIHsgZmFsc2UgfTsKKyAgICBib29sIG1faGFzU2VudE1lc3NhZ2VUb1VuYmxvY2tQcmVm
ZXJlbmNlU2VydmljZSB7IGZhbHNlIH07CisjZW5kaWYKKwogICAgIEhhc2hNYXA8U3RyaW5nLCB1
aW50NjRfdD4gbV9wYWdlVVJMUmV0YWluQ291bnRNYXA7CiAKICAgICBPcHRpb25hbDxXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbj4gbV9yZWdpc3RyYWJsZURvbWFpbjsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQkocmV2aXNpb24gMjU4
MDQ0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQko
d29ya2luZyBjb3B5KQpAQCAtMjkxNSw2ICsyOTE1LDEyIEBAIC0gKENHRmxvYXQpX21pbmltdW1F
ZmZlY3RpdmVEZXZpY2VXaWR0aAogI2VuZGlmCiB9CiAKKy0gKHZvaWQpX2dyYW50QWNjZXNzVG9Q
cmVmZXJlbmNlU2VydmljZQoreworICAgIGlmIChfcGFnZSkKKyAgICAgICAgX3BhZ2UtPmdyYW50
QWNjZXNzVG9QcmVmZXJlbmNlU2VydmljZSgpOworfQorCiAjcHJhZ21hIG1hcmsgLSBzY3JvbGxQ
ZXJmb3JtYW5jZURhdGEKIAogLSAodm9pZClfc2V0U2Nyb2xsUGVyZm9ybWFuY2VEYXRhQ29sbGVj
dGlvbkVuYWJsZWQ6KEJPT0wpZW5hYmxlZApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCShyZXZpc2lvbiAyNTgwNDQp
CisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNDIsNiArMzQyLDggQEAgZm9yIHRoaXMgcHJvcGVydHkuCiAK
IC0gKHZvaWQpX3NldElzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW46KEJPT0wpaXNOYXZpZ2F0
aW5nVG9BcHBCb3VuZERvbWFpbiBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29t
cGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKIAorLSAodm9pZClfZ3JhbnRBY2Nlc3NUb1ByZWZlcmVuY2VTZXJ2aWNlIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKIEBl
bmQKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIubW0JKHJldmlzaW9uIDI1ODA0NCkK
KysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5tbQko
d29ya2luZyBjb3B5KQpAQCAtMjgsMTAgKzI4LDI1IEBACiAKICNpbXBvcnQgIldlYlByb2Nlc3NQ
b29sLmgiCiAKKyNpbXBvcnQgPHd0Zi9PYmpDUnVudGltZUV4dHJhcy5oPgorCitzdGF0aWMgSU1Q
IHJlZ2lzdGVyRGVmYXVsdHNPcmlnaW5hbCA9IG5pbDsKK3N0YXRpYyBib29sIHJlZ2lzdGVyaW5n
RGVmYXVsdHMgPSBmYWxzZTsKKworc3RhdGljIHZvaWQgcmVnaXN0ZXJEZWZhdWx0c092ZXJyaWRl
KGlkIHNlbGYsIFNFTCBzZWxlY3RvciwgTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqZGlj
dGlvbmFyeSkKK3sKKyAgICByZWdpc3RlcmluZ0RlZmF1bHRzID0gdHJ1ZTsKKyAgICB3dGZDYWxs
SU1QPHZvaWQ+KHJlZ2lzdGVyRGVmYXVsdHNPcmlnaW5hbCwgc2VsZiwgc2VsZWN0b3IsIGRpY3Rp
b25hcnkpOworICAgIHJlZ2lzdGVyaW5nRGVmYXVsdHMgPSBmYWxzZTsKK30KKwogQGltcGxlbWVu
dGF0aW9uIFdLVXNlckRlZmF1bHRzCiAKIC0gKHZvaWQpX25vdGlmeU9ic2VydmVyc09mQ2hhbmdl
RnJvbVZhbHVlc0ZvcktleXM6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKilvbGRWYWx1
ZXMgdG9WYWx1ZXNGb3JLZXlzOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopbmV3VmFs
dWVzCiB7CisgICAgaWYgKHJlZ2lzdGVyaW5nRGVmYXVsdHMpCisgICAgICAgIHJldHVybjsKKwog
ICAgIFtzdXBlciBfbm90aWZ5T2JzZXJ2ZXJzT2ZDaGFuZ2VGcm9tVmFsdWVzRm9yS2V5czpvbGRW
YWx1ZXMgdG9WYWx1ZXNGb3JLZXlzOm5ld1ZhbHVlc107CiAKICAgICBpZiAoW29sZFZhbHVlcyBp
c0VxdWFsVG9EaWN0aW9uYXJ5Om5ld1ZhbHVlc10pCkBAIC04Nyw2ICsxMDIsOSBAQCArIChpZClz
aGFyZWRJbnN0YW5jZQogCiAtIChpbnN0YW5jZXR5cGUpaW5pdAogeworICAgIE1ldGhvZCByZWdp
c3RlckRlZmF1bHRzTWV0aG9kID0gY2xhc3NfZ2V0SW5zdGFuY2VNZXRob2Qob2JqY19nZXRDbGFz
cygiTlNVc2VyRGVmYXVsdHMiKSwgQHNlbGVjdG9yKHJlZ2lzdGVyRGVmYXVsdHM6KSk7CisgICAg
cmVnaXN0ZXJEZWZhdWx0c09yaWdpbmFsID0gbWV0aG9kX3NldEltcGxlbWVudGF0aW9uKHJlZ2lz
dGVyRGVmYXVsdHNNZXRob2QsIChJTVApcmVnaXN0ZXJEZWZhdWx0c092ZXJyaWRlKTsKKwogICAg
IHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxOU1N0cmluZyo+IGRvbWFpbnMgPSB7CiAgICAgICAgIEAi
Y29tLmFwcGxlLkFjY2Vzc2liaWxpdHkiLAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2Nv
YS5tbQkocmV2aXNpb24gMjU4MDQ0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViUGFnZVByb3h5Q29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTMxNCw0ICszMTQsOSBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRlQ29udGV4dEluR1BVCiB9CiAjZW5kaWYKIAordm9p
ZCBXZWJQYWdlUHJveHk6OmdyYW50QWNjZXNzVG9QcmVmZXJlbmNlU2VydmljZSgpCit7CisgICAg
cHJvY2VzcygpLnVuYmxvY2tQcmVmZXJlbmNlU2VydmljZUlmTmVlZGVkKCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
UHJvY2Vzc1Bvb2xDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCShyZXZpc2lvbiAyNTgwNDQpCisrKyBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIldl
YlByb2Nlc3NQb29sLmgiCiAKKyNpbXBvcnQgIkFjY2Vzc2liaWxpdHlTdXBwb3J0U1BJLmgiCiAj
aW1wb3J0ICJDb29raWVTdG9yYWdlVXRpbHNDRi5oIgogI2ltcG9ydCAiTGVnYWN5Q3VzdG9tUHJv
dG9jb2xNYW5hZ2VyQ2xpZW50LmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCkBAIC03NSw3ICs3Niw2
IEBACiAjaWYgUExBVEZPUk0oTUFDKQogI2ltcG9ydCA8UXVhcnR6Q29yZS9DQVJlbW90ZUxheWVy
U2VydmVyLmg+CiAjZWxzZQotI2ltcG9ydCAiQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaCIKICNp
bXBvcnQgIlVJS2l0U1BJLmgiCiAjaW1wb3J0IDxwYWwvaW9zL01hbmFnZWRDb25maWd1cmF0aW9u
U29mdExpbmsuaD4KICNpbXBvcnQgPHBhbC9zcGkvaW9zL01hbmFnZWRDb25maWd1cmF0aW9uU1BJ
Lmg+CkBAIC0xNzMsNiArMTczLDEzIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5p
dGlhbGl6ZSgKICAgICAgICAgaW5zdGFsbE1lbW9yeVByZXNzdXJlSGFuZGxlcigpOwogCiAgICAg
c2V0TGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50KG1ha2VVbmlxdWU8TGVnYWN5Q3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50PigpKTsKKworI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVD
VF9NT0RFKQorICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoUU9T
X0NMQVNTX0JBQ0tHUk9VTkQsIDApLCBeeworICAgICAgICAvLyBTdGFydCBvYnNlcnZpbmcgcHJl
ZmVyZW5jZSBjaGFuZ2VzLgorICAgICAgICBbV0tQcmVmZXJlbmNlT2JzZXJ2ZXIgc2hhcmVkSW5z
dGFuY2VdOworICAgIH0pOworI2VuZGlmCiB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpA
QCAtMTk3LDExICsyMDQsNiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybVJlc29sdmVQ
YXRoCiAgICAgbV9yZXNvbHZlZFBhdGhzLmNvbnRhaW5lckNhY2hlc0RpcmVjdG9yeSA9IHJlc29s
dmVBbmRDcmVhdGVSZWFkV3JpdGVEaXJlY3RvcnlGb3JTYW5kYm94RXh0ZW5zaW9uKFdlYlByb2Nl
c3NQb29sOjp3ZWJDb250ZW50Q2FjaGVzRGlyZWN0b3J5KCkpOwogICAgIG1fcmVzb2x2ZWRQYXRo
cy5jb250YWluZXJUZW1wb3JhcnlEaXJlY3RvcnkgPSByZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRl
RGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVuc2lvbihXZWJQcm9jZXNzUG9vbDo6Y29udGFpbmVyVGVt
cG9yYXJ5RGlyZWN0b3J5KCkpOwogI2VuZGlmCi0KLSNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1Rf
TU9ERSkKLSAgICAvLyBTdGFydCBvYnNlcnZpbmcgcHJlZmVyZW5jZSBjaGFuZ2VzLgotICAgIFtX
S1ByZWZlcmVuY2VPYnNlcnZlciBzaGFyZWRJbnN0YW5jZV07Ci0jZW5kaWYKIH0KIAogI2lmIFBM
QVRGT1JNKElPUykKQEAgLTQ0MiwxMCArNDQ0LDEzIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBs
YXRmb3JtSW5pdGlhbGl6ZVcKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDAsIHNpemUgPSBzZXJ2
aWNlcy5zaXplKCk7IGkgPCBzaXplOyArK2kpCiAgICAgICAgICAgICBTYW5kYm94RXh0ZW5zaW9u
OjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKHNlcnZpY2VzW2ldLCBXVEY6Om51bGxvcHQsIHBh
cmFtZXRlcnMubWVkaWFFeHRlbnNpb25IYW5kbGVzW2ldKTsKICAgICB9Ci0jaWYgIUVOQUJMRShD
RlBSRUZTX0RJUkVDVF9NT0RFKQotICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBwcmVmZXJl
bmNlc0V4dGVuc2lvbkhhbmRsZTsKLSAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVG
b3JNYWNoTG9va3VwKCJjb20uYXBwbGUuY2ZwcmVmc2QuZGFlbW9uIiwgV1RGOjpudWxsb3B0LCBw
cmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZSk7Ci0gICAgcGFyYW1ldGVycy5wcmVmZXJlbmNlc0V4
dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUocHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGUpOworCisj
aWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCisgICAgaWYgKF9BWFNBcHBsaWNhdGlvbkFj
Y2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
IHByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpj
cmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUuY2ZwcmVmc2QuZGFlbW9uIiwgV1RG
OjpudWxsb3B0LCBwcmVmZXJlbmNlc0V4dGVuc2lvbkhhbmRsZSk7CisgICAgICAgIHBhcmFtZXRl
cnMucHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKHByZWZlcmVuY2VzRXh0ZW5z
aW9uSGFuZGxlKTsKKyAgICB9CiAjZW5kaWYKIH0KIApAQCAtNjQ3LDE1ICs2NTIsMTcgQEAgdm9p
ZCBXZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJOb3RpZmljYXRpbwogI2VsaWYgIVBMQVRGT1JNKE1B
Q0NBVEFMWVNUKQogICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2ZXIoQ0ZOb3RpZmlj
YXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwgdGhpcywgYmFja2xpZ2h0TGV2ZWxE
aWRDaGFuZ2VDYWxsYmFjaywgc3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KFVJQmFja2xpZ2h0TGV2
ZWxDaGFuZ2VkTm90aWZpY2F0aW9uKSwgbnVsbHB0ciwgQ0ZOb3RpZmljYXRpb25TdXNwZW5zaW9u
QmVoYXZpb3JDb2FsZXNjZSk7CiAjaWYgUExBVEZPUk0oSU9TKQotICAgIG1fYWNjZXNzaWJpbGl0
eUVuYWJsZWRPYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0g
YWRkT2JzZXJ2ZXJGb3JOYW1lOihfX2JyaWRnZSBpZClrQVhTQXBwbGljYXRpb25BY2Nlc3NpYmls
aXR5RW5hYmxlZE5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsIHF1ZXVlOltOU09wZXJhdGlvblF1ZXVl
IGN1cnJlbnRRdWV1ZV0gdXNpbmdCbG9jazpeKE5TTm90aWZpY2F0aW9uICopIHsKLSAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3Byb2Nlc3Nlcy5zaXplKCk7ICsraSkKLSAgICAgICAg
ICAgIG1fcHJvY2Vzc2VzW2ldLT51bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKCk7
Ci0gICAgfV07CiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCiAgICAgQ0ZOb3RpZmljYXRp
b25DZW50ZXJBZGRPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNlbnRlckdldERhcndpbk5vdGlmeUNl
bnRlcigpLCB0aGlzLCByZW1vdGVXZWJJbnNwZWN0b3JFbmFibGVkQ2FsbGJhY2ssIHN0YXRpY19j
YXN0PENGU3RyaW5nUmVmPihDRlNUUihXSVJTZXJ2aWNlRW5hYmxlZE5vdGlmaWNhdGlvbikpLCBu
dWxscHRyLCBDRk5vdGlmaWNhdGlvblN1c3BlbnNpb25CZWhhdmlvckNvYWxlc2NlKTsKICNlbmRp
ZgogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyAgICBtX2FjY2Vzc2liaWxpdHlFbmFibGVkT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9u
Q2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTooX19icmlkZ2UgaWQpa0FY
U0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUVuYWJsZWROb3RpZmljYXRpb24gb2JqZWN0Om5pbCBx
dWV1ZTpbTlNPcGVyYXRpb25RdWV1ZSBjdXJyZW50UXVldWVdIHVzaW5nQmxvY2s6XihOU05vdGlm
aWNhdGlvbiAqKSB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9wcm9jZXNzZXMu
c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIG1fcHJvY2Vzc2VzW2ldLT51bmJsb2NrUHJlZmVy
ZW5jZVNlcnZpY2VJZk5lZWRlZCgpOworICAgICAgICAgICAgbV9wcm9jZXNzZXNbaV0tPnVuYmxv
Y2tBY2Nlc3NpYmlsaXR5U2VydmVySWZOZWVkZWQoKTsKKyAgICAgICAgfQorICAgIH1dOwogfQog
CiB2b2lkIFdlYlByb2Nlc3NQb29sOjp1bnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKCkK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29h
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nl
c3NQcm94eUNvY29hLm1tCShyZXZpc2lvbiAyNTgwNDQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjI1
LDQgKzIyNSw0MyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZW5hYmxlUmVtb3RlSW5zcGVjCiAg
ICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkVuYWJsZVJlbW90ZVdlYkluc3BlY3Rv
cihoYW5kbGUpLCAwKTsKIH0KICNlbmRpZgorCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6dW5ibG9j
a0FjY2Vzc2liaWxpdHlTZXJ2ZXJJZk5lZWRlZCgpCit7CisgICAgaWYgKG1faGFzU2VudE1lc3Nh
Z2VUb1VuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVyKQorICAgICAgICByZXR1cm47CisgICAgaWYg
KCFfQVhTQXBwbGljYXRpb25BY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47
CisgICAgaWYgKCFwcm9jZXNzSWRlbnRpZmllcigpKQorICAgICAgICByZXR1cm47CisgICAgaWYg
KCFjYW5TZW5kTWVzc2FnZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGUgaGFuZGxlOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKCFT
YW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUuaXBo
b25lLmF4c2VydmVyLXN5c3RlbXdpZGUiLCBjb25uZWN0aW9uKCkgPyBjb25uZWN0aW9uKCktPmdl
dEF1ZGl0VG9rZW4oKSA6IFdURjo6bnVsbG9wdCwgaGFuZGxlKSkKKyAgICAgICAgcmV0dXJuOwor
I2VuZGlmCisKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpVbmJsb2NrQWNjZXNzaWJp
bGl0eVNlcnZlcihoYW5kbGUpLCAwKTsKKyAgICBtX2hhc1NlbnRNZXNzYWdlVG9VbmJsb2NrQWNj
ZXNzaWJpbGl0eVNlcnZlciA9IHRydWU7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojp1bmJs
b2NrUHJlZmVyZW5jZVNlcnZpY2VJZk5lZWRlZCgpCit7CisgICAgaWYgKG1faGFzU2VudE1lc3Nh
Z2VUb1VuYmxvY2tQcmVmZXJlbmNlU2VydmljZSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICgh
cHJvY2Vzc0lkZW50aWZpZXIoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICghY2FuU2VuZE1l
c3NhZ2UoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
IGhhbmRsZTsKKyAgICBpZiAoIVNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hM
b29rdXAoImNvbS5hcHBsZS5jZnByZWZzZC5kYWVtb24iLCBjb25uZWN0aW9uKCkgPyBjb25uZWN0
aW9uKCktPmdldEF1ZGl0VG9rZW4oKSA6IFdURjo6bnVsbG9wdCwgaGFuZGxlKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6VW5ibG9ja1ByZWZlcmVu
Y2VTZXJ2aWNlKGhhbmRsZSksIDApOworICAgIG1faGFzU2VudE1lc3NhZ2VUb1VuYmxvY2tQcmVm
ZXJlbmNlU2VydmljZSA9IHRydWU7Cit9CisKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbQkocmV2aXNpb24gMjU4MDQ0KQor
KysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbQkod29y
a2luZyBjb3B5KQpAQCAtNDMsMjUgKzQzLDYgQEAgYm9vbCBXZWJQcm9jZXNzUHJveHk6OmZ1bGxL
ZXlib2FyZEFjY2VzcwogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojp1bmJsb2Nr
QWNjZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKCkKLXsKLSAgICBpZiAobV9oYXNTZW50TWVzc2Fn
ZVRvVW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAo
IV9BWFNBcHBsaWNhdGlvbkFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHJldHVybjsK
LSAgICBpZiAoIXByb2Nlc3NJZGVudGlmaWVyKCkpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAo
IWNhblNlbmRNZXNzYWdlKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFNhbmRib3hFeHRlbnNp
b246OkhhbmRsZSBoYW5kbGU7Ci0gICAgaWYgKCFTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5k
bGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUuaXBob25lLmF4c2VydmVyLXN5c3RlbXdpZGUiLCBj
b25uZWN0aW9uKCkgPyBjb25uZWN0aW9uKCktPmdldEF1ZGl0VG9rZW4oKSA6IFdURjo6bnVsbG9w
dCwgaGFuZGxlKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgc2VuZChNZXNzYWdlczo6V2ViUHJv
Y2Vzczo6VW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIoaGFuZGxlKSwgMCk7Ci0gICAgbV9oYXNT
ZW50TWVzc2FnZVRvVW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIgPSB0cnVlOwotfQotCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJl
dmlzaW9uIDI1ODA0NCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTczNyw3ICs3MzcsNiBAQAogCQkyREFCQTc3NjFB
ODJCNDIxMDBFRjBGMUEgLyogQVBJSGlzdG9yeUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRBQkE3NzUxQTgyQjQyMTAwRUYwRjFBIC8qIEFQ
SUhpc3RvcnlDbGllbnQuaCAqLzsgfTsKIAkJMkRBQ0U2NEUxOEFEQkZGMDAwRTRDQTc2IC8qIF9X
S1RodW1ibmFpbFZpZXdJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkRBQ0U2NEQxOEFEQkZGMDAwRTRDQTc2IC8qIF9XS1RodW1ibmFpbFZp
ZXdJbnRlcm5hbC5oICovOyB9OwogCQkyREFGMDZENjE4QkQxQTQ3MDA4MUNFQjEgLyogU21hcnRN
YWduaWZpY2F0aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkRBRjA2RDQxOEJEMUE0NzAwODFDRUIxIC8qIFNtYXJ0TWFnbmlmaWNh
dGlvbkNvbnRyb2xsZXIuaCAqLzsgfTsKLQkJMkRCNzY2NzEyMUI1RTQ4QTAwNDVEREIxIC8qIEFj
Y2Vzc2liaWxpdHlTdXBwb3J0U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyREI3NjY3MDIxQjVFNDhBMDA0NUREQjEgLyogQWNjZXNzaWJpbGl0eVN1
cHBvcnRTUEkuaCAqLzsgfTsKIAkJMkRCOTQyOTkyMzRFN0E3RjAwRTc3NkFEIC8qIFdLTW91c2VH
ZXN0dXJlUmVjb2duaXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkRCOTQyOTcyMzRFN0E3RjAwRTc3NkFEIC8qIFdLTW91c2VHZXN0dXJlUmVjb2du
aXplci5oICovOyB9OwogCQkyREI5NjA1MzIzOTg4NkMxMDAxMDI3OTEgLyogY29tLmFwcGxlLldl
YktpdC5HUFUuc2IgaW4gQ29weUZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJEQjk2MDUyMjM5ODg2QjkwMDEwMjc5MSAvKiBjb20uYXBwbGUuV2ViS2l0LkdQVS5zYiAq
LzsgfTsKIAkJMkRDMThGQUQyMTg5MTA0OTAwMjVBODhEIC8qIFdLRHJhd2luZ1ZpZXcuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEQzE4RkFCMjE4OTEw
NDgwMDI1QTg4RCAvKiBXS0RyYXdpbmdWaWV3LmggKi87IH07CkBAIC0xNzk2LDYgKzE3OTUsNyBA
QAogCQlFMzhBMUZDMDIzQTU1MUJGMDBEMjM3NEYgLyogVXNlckludGVyZmFjZUlkaW9tLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4QTFGQkYyM0E1
NTFCRjAwRDIzNzRGIC8qIFVzZXJJbnRlcmZhY2VJZGlvbS5tbSAqLzsgfTsKIAkJRTM5NjI4REQy
Mzk2MENDNjAwNjU4RUNEIC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOTYyOERCMjM5
NjBDQzUwMDY1OEVDRCAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmggKi87
IH07CiAJCUUzOTYyOERFMjM5NjBDQzYwMDY1OEVDRCAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVw
ZGF0ZVByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzOTYyOERDMjM5NjBDQzYwMDY1OEVDRCAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVw
ZGF0ZVByb3ZpZGVyLmNwcCAqLzsgfTsKKwkJRTNDQUFBNDQyNDEzMjc5OTAwQ0VEMkUyIC8qIEFj
Y2Vzc2liaWxpdHlTdXBwb3J0U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFM0NBQUE0MzI0MTMyNzhBMDBDRUQyRTIgLyogQWNjZXNzaWJpbGl0eVN1
cHBvcnRTUEkuaCAqLzsgfTsKIAkJRTQxM0Y1OUQxQUMxQURDNDAwMzQ1MzYwIC8qIE5ldHdvcmtD
YWNoZUVudHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFNDEzRjU5QjFBQzFBREI2MDAzNDUzNjAgLyogTmV0d29ya0NhY2hlRW50cnkuaCAqLzsgfTsK
IAkJRTQyRTA2MTAxQUE3NTIzQjAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQyRTA2MEIxQUE3
NDQwRDAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oICovOyB9OwogCQlFNDJFMDYx
MjFBQTc1QUJEMDBCMTE2OTkgLyogTmV0d29ya0NhY2hlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQyRTA2MTExQUE3NUFCRDAwQjExNjk5IC8q
IE5ldHdvcmtDYWNoZURhdGEuaCAqLzsgfTsKQEAgLTMxMjQsNyArMzEyNCw2IEBACiAJCTJEQUYw
NkQ1MThCRDFBNDcwMDgxQ0VCMSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gU21hcnRNYWduaWZpY2F0aW9u
Q29udHJvbGxlci5tbTsgcGF0aCA9IGlvcy9TbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREFGMDZEODE4QkQyM0JBMDA4MUNFQjEg
LyogU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTbWFydE1h
Z25pZmljYXRpb25Db250cm9sbGVyLm1lc3NhZ2VzLmluOyBwYXRoID0gaW9zL1NtYXJ0TWFnbmlm
aWNhdGlvbkNvbnRyb2xsZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTJEQUY0RkZBMUI2MzYxODEwMDYwMTNENiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlld0dlc3R1cmVDb250cm9s
bGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRCNzY2NzAyMUI1RTQ4QTAw
NDVEREIxIC8qIEFjY2Vzc2liaWxpdHlTdXBwb3J0U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlTdXBwb3J0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTJEQjk0Mjk3MjM0RTdBN0YwMEU3NzZBRCAvKiBXS01vdXNlR2VzdHVyZVJl
Y29nbml6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLmg7IHBh
dGggPSBpb3MvV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTJEQjk0Mjk4MjM0RTdBN0YwMEU3NzZBRCAvKiBXS01vdXNlR2VzdHVyZVJlY29n
bml6ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS01vdXNlR2VzdHVyZVJlY29nbml6ZXIu
bW07IHBhdGggPSBpb3MvV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyREI5NjA1MjIzOTg4NkI5MDAxMDI3OTEgLyogY29tLmFwcGxlLldl
YktpdC5HUFUuc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5HUFUuc2I7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC01MjI0LDYgKzUyMjMsNyBAQAogCQlFMzk2MjhEQjIzOTYwQ0M1MDA2
NThFQ0QgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOTYyOERDMjM5NjBDQzYwMDY1OEVD
RCAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlk
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzk2MjhFNDIzOTcxRjM0MDA2
NThFQ0QgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5tZXNzYWdlcy5pbiAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVy
Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0NBQUE0MzI0MTMy
NzhBMDBDRUQyRTIgLyogQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzAyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGVyUGFp
ck1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxlclBhaXJNYWMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzEyMURFNjVGNzAwMzdGMERC
IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZVJlbW90ZU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDQ5MDcy
MjFERTY1RjcwMDM3RjBEQiAvKiBTY3JvbGxlclBhaXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxlclBhaXJNYWMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC03MDUxLDYgKzcwNTEsNyBAQAogCQkzNzU0RDU0MTFCM0EyOTk4MDAz
QTRDN0YgLyogQ29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAorCQkJCUUzQ0FBQTQzMjQxMzI3OEEwMENFRDJFMiAvKiBBY2Nlc3NpYmlsaXR5U3VwcG9ydFNQ
SS5oICovLAogCQkJCTFBNTcwNTEwMUJFNDEwRTUwMDg3NEFGMSAvKiBCbG9ja1NQSS5oICovLAog
CQkJCTM3QzIxQ0FEMUU5OTRDMEMwMDI5RDVGOSAvKiBDb3JlUHJlZGljdGlvblNQSS5oICovLAog
CQkJCTJEQUFEQThFMjI5OEMyMTAwMEUzNkIwQyAvKiBEZXZpY2VNYW5hZ2VtZW50U1BJLmggKi8s
CkBAIC0xMDE4Nyw3ICsxMDE4OCw2IEBACiAJCUNFMUEwQkNCMUE0OEU2QzYwMDU0RUY3NCAvKiBp
b3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTJEQjc2
NjcwMjFCNUU0OEEwMDQ1RERCMSAvKiBBY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oICovLAogCQkJ
CUNFMUEwQkNDMUE0OEU2QzYwMDU0RUY3NCAvKiBBc3NlcnRpb25TZXJ2aWNlc1NQSS5oICovLAog
CQkJCUNEQTA0MUYzMUFDRTIxMDUwMDRBMTNFQyAvKiBCYWNrQm9hcmRTZXJ2aWNlc1NQSS5oICov
LAogCQkJCTJENEFGMDg4MjA0NEMzQzQwMDZDODgxNyAvKiBGcm9udEJvYXJkU2VydmljZXNTUEku
aCAqLywKQEAgLTEwNDM5LDcgKzEwNDM5LDcgQEAKIAkJCQlBMTE1REM3MjE5MUQ4MkRBMDBEQTgw
NzIgLyogX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTlE
RDNDMDFEMDdEMTY4MDBBQzgyM0IgLyogX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVySW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovLAogCQkJCUExODJENUI1MUJFNkJEMjUwMDg3QTdDQyAvKiBBY2Nlc3Np
YmlsaXR5SU9TLmggaW4gSGVhZGVycyAqLywKLQkJCQkyREI3NjY3MTIxQjVFNDhBMDA0NUREQjEg
LyogQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzQ0FBQTQ0
MjQxMzI3OTkwMENFRDJFMiAvKiBBY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTdENzkyRDgxNzY3Q0NBMzAwODgxQ0JFIC8qIEFjdGl2aXR5QXNzZXJ0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk2QkQwNTg2NTIyMENFOEMyMDAwQkVENUMgLyogQWRDbGlja0F0
dHJpYnV0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjM0ODQyNTExRkIyNkU3MTAw
OTQ2RTNDIC8qIEFQSUFwcGxpY2F0aW9uTWFuaWZlc3QuaCBpbiBIZWFkZXJzICovLApJbmRleDog
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMjU4MDQ0KQor
KysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xOTc1LDE0ICsxOTc1LDYgQEAgdm9pZCBXZWJQcm9jZXNzOjpjbGVhckN1cnJlbnRNb2Rp
ZmllclN0YQogICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6c2V0Q3VycmVudE1vZGlmaWVyU3Rh
dGUoeyB9KTsKIH0KIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi12b2lkIFdlYlByb2Nlc3M6
OnVuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVyKGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSYgaGFuZGxlKQotewotICAgIGJvb2wgb2sgPSBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVy
bWFuZW50bHkoaGFuZGxlKTsKLSAgICBBU1NFUlRfVU5VU0VEKG9rLCBvayk7Ci19Ci0jZW5kaWYK
LQogYm9vbCBXZWJQcm9jZXNzOjphcmVBbGxQYWdlc1Rocm90dGxlYWJsZSgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIFdURjo6YWxsT2YobV9wYWdlTWFwLnZhbHVlcygpLCBbXShhdXRvJiBwYWdlKSB7
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgJKHJldmlzaW9uIDI1ODA0
NCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI5OSw4ICsyOTksNiBAQCBwdWJsaWM6CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQogICAgIHZvaWQgYWNjZXNzaWJpbGl0eVByb2Nlc3NTdXNwZW5kZWROb3RpZmljYXRpb24oYm9v
bCk7Ci0gICAgCi0gICAgdm9pZCB1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcihjb25zdCBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQpAQCAtMzEzLDYgKzMxMSw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGVuYWJsZVJlbW90ZVdlYkluc3BlY3Rvcihjb25zdCBTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUmKTsKICNlbmRpZgogICAgIHZvaWQgbm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKGNv
bnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgT3B0aW9uYWw8U3Ry
aW5nPiYgZW5jb2RlZFZhbHVlKTsKKyAgICB2b2lkIHVuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVy
KGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYpOworICAgIHZvaWQgdW5ibG9ja1ByZWZl
cmVuY2VTZXJ2aWNlKGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYpOwogI2VuZGlmCiAK
ICAgICBib29sIGFyZUFsbFBhZ2VzVGhyb3R0bGVhYmxlKCkgY29uc3Q7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgkocmV2aXNpb24g
MjU4MDQ0KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMu
aW4JKHdvcmtpbmcgY29weSkKQEAgLTE1NCwxMCArMTU0LDYgQEAgbWVzc2FnZXMgLT4gV2ViUHJv
Y2VzcyBMZWdhY3lSZWNlaXZlciBObwogICAgIFNldEJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSh1
bnNpZ25lZCBjYXBhY2l0eSk7CiAgICAgQ2xlYXJDYWNoZWRQYWdlKHN0cnVjdCBXZWJDb3JlOjpC
YWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyIGJhY2tGb3J3YXJkSXRlbUlEKSAtPiAoKSBBc3luYwog
Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBVbmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZl
cihXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGUpCi0jZW5kaWYKLQogI2lm
IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgIFNlbmRNZXNzYWdlVG9XZWJFeHRl
bnNpb24oc3RydWN0IFdlYktpdDo6VXNlck1lc3NhZ2UgdXNlck1lc3NhZ2UpCiAjZW5kaWYKQEAg
LTE3NCw1ICsxNzAsNyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIE5v
CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBOb3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoU3Ry
aW5nIGRvbWFpbiwgU3RyaW5nIGtleSwgT3B0aW9uYWw8U3RyaW5nPiBlbmNvZGVkVmFsdWUpCisg
ICAgVW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGUgaGFuZGxlKQorICAgIFVuYmxvY2tQcmVmZXJlbmNlU2VydmljZShXZWJLaXQ6OlNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGUpCiAjZW5kaWYKIH0KSW5kZXg6IFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4JKHJldmlz
aW9uIDI1ODA0NCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJv
Y2Vzcy5zYi5pbgkod29ya2luZyBjb3B5KQpAQCAtNjQ0LDcgKzY0NCw5IEBACiAgICAgKHdpdGgg
cmVwb3J0KSAod2l0aCB0ZWxlbWV0cnkpCiAjZW5kaWYKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5h
cHBsZS5Qb3dlck1hbmFnZW1lbnQuY29udHJvbCIpCisjaWYgIUVOQUJMRShDRlBSRUZTX0RJUkVD
VF9NT0RFKQogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIpCisj
ZW5kaWYKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5jb3Jlc2VydmljZXMubGF1bmNoc2Vy
dmljZXNkIikKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5sc2QubWFwZGIiKQogICAgIChn
bG9iYWwtbmFtZSAiY29tLmFwcGxlLnRydXN0ZC5hZ2VudCIpCkluZGV4OiBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHJldmlzaW9uIDI1
ODA0NCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTI4OCwxMSArMjg4LDEzIEBAIHZvaWQgV2ViUHJvY2Vzczo6
cGxhdGZvcm1Jbml0aWFsaXplV2ViUHIKICAgICAvLyBGSVhNRSgyMDc3MTYpOiBUaGUgZm9sbG93
aW5nIHNob3VsZCBiZSByZW1vdmVkIHdoZW4gdGhlIEdQVSBwcm9jZXNzIGlzIGNvbXBsZXRlLgog
ICAgIGZvciAoc2l6ZV90IGkgPSAwLCBzaXplID0gcGFyYW1ldGVycy5tZWRpYUV4dGVuc2lvbkhh
bmRsZXMuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKQogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpj
b25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5tZWRpYUV4dGVuc2lvbkhhbmRsZXNbaV0pOwor
I2VuZGlmCiAKLSNpZiAhRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCi0gICAgaWYgKHBhcmFt
ZXRlcnMucHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGUpCisjaWYgRU5BQkxFKENGUFJFRlNfRElS
RUNUX01PREUpCisgICAgaWYgKHBhcmFtZXRlcnMucHJlZmVyZW5jZXNFeHRlbnNpb25IYW5kbGUp
IHsKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KCpwYXJhbWV0
ZXJzLnByZWZlcmVuY2VzRXh0ZW5zaW9uSGFuZGxlKTsKLSNlbmRpZgorICAgICAgICBfQ0ZQcmVm
c1NldERpcmVjdE1vZGVFbmFibGVkKGZhbHNlKTsKKyAgICB9CiAjZW5kaWYKIH0KIApAQCAtNTcy
LDggKzU3NCw2IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplUHJvY2UKICAg
ICBlbHNlCiAgICAgICAgIG1fcHJvY2Vzc1R5cGUgPSBQcm9jZXNzVHlwZTo6V2ViQ29udGVudDsK
IAotICAgIHJlZ2lzdGVyV2l0aEFjY2Vzc2liaWxpdHkoKTsKLQogI2lmIFVTRShPU19TVEFURSkK
ICAgICByZWdpc3RlcldpdGhTdGF0ZUR1bXBlcigpOwogI2VuZGlmCkBAIC05NDUsNiArOTQ1LDcg
QEAgdm9pZCBXZWJQcm9jZXNzOjpzZXRNZWRpYU1JTUVUeXBlcyhjb25zdAogICAgICAgICBjYWNo
ZS5hZGRTdXBwb3J0ZWRUeXBlcyh0eXBlcyk7CiB9CiAKKyNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJF
Q1RfTU9ERSkKIHZvaWQgV2ViUHJvY2Vzczo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKGNvbnN0
IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgT3B0aW9uYWw8U3RyaW5n
PiYgZW5jb2RlZFZhbHVlKQogewogICAgIGF1dG8gZGVmYXVsdHMgPSBhZG9wdE5TKFtbTlNVc2Vy
RGVmYXVsdHMgYWxsb2NdIGluaXRXaXRoU3VpdGVOYW1lOmRvbWFpbl0pOwpAQCAtOTYzLDYgKzk2
NCwxNCBAQCB2b2lkIFdlYlByb2Nlc3M6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlCiAgICAgW2Rl
ZmF1bHRzIHNldE9iamVjdDpvYmplY3QuZ2V0KCkgZm9yS2V5OmtleV07CiB9CiAKK3ZvaWQgV2Vi
UHJvY2Vzczo6dW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlKGNvbnN0IFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZSYgaGFuZGxlKQoreworICAgIGJvb2wgb2sgPSBTYW5kYm94RXh0ZW5zaW9uOjpjb25z
dW1lUGVybWFuZW50bHkoaGFuZGxlKTsKKyAgICBBU1NFUlRfVU5VU0VEKG9rLCBvayk7CisgICAg
X0NGUHJlZnNTZXREaXJlY3RNb2RlRW5hYmxlZChmYWxzZSk7Cit9CisjZW5kaWYKKwogI2lmIFBM
QVRGT1JNKElPUykKIHZvaWQgV2ViUHJvY2Vzczo6Z3JhbnRBY2Nlc3NUb0Fzc2V0U2VydmljZXMo
V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiBtb2JpbGVBc3NldEhhbmRsZSwgIFdl
YktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgbW9iaWxlQXNzZXRWMkhhbmRsZSkKIHsK
QEAgLTEwMDgsNiArMTAxNywxNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnVwZGF0ZVBhZ2VTY3JlZW5Q
cm9wZXJ0CiB9CiAjZW5kaWYKIAordm9pZCBXZWJQcm9jZXNzOjp1bmJsb2NrQWNjZXNzaWJpbGl0
eVNlcnZlcihjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIGhhbmRsZSkKK3sKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgIGJvb2wgb2sgPSBTYW5kYm94RXh0ZW5zaW9uOjpjb25z
dW1lUGVybWFuZW50bHkoaGFuZGxlKTsKKyAgICBBU1NFUlRfVU5VU0VEKG9rLCBvayk7CisjZW5k
aWYKKyAgICAKKyAgICByZWdpc3RlcldpdGhBY2Nlc3NpYmlsaXR5KCk7Cit9CisKKwogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBSRUxFQVNFX0xPR19TRVNTSU9OX0lECkluZGV4OiBU
b29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAy
NTgwNDQpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBA
QAorMjAyMC0wMy0wNiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgW0NvY29hXSBSZS1lbmFibGUgQ0ZQcmVmcyBkaXJlY3QgbW9kZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NjkwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L0dyYW50QWNjZXNzVG9QcmVmZXJlbmNlc1NlcnZpY2UubW06IEFkZGVk
LgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvQWNj
ZXNzaWJpbGl0eVRlc3RzSU9TLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisK
IDIwMjAtMDMtMDYgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBFdmFsdWF0aW5nIEphdmFTY3JpcHQgaW4gbWFpbiBmcmFtZSBiZWZvcmUgbG9h
ZGluZyBzaG91bGQgc3VjY2VlZApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9u
IDI1ODA0NCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMDA0LDYgKzEwMDQsNyBAQAogCQlF
MzI0QTZGMDIwNDFDODIwMDBBNzY1OTMgLyogVW5pcXVlQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5OEJDMEYyMDQxQzc2MzAwMzg3MTM2
IC8qIFVuaXF1ZUFycmF5LmNwcCAqLzsgfTsKIAkJRTMyNUM5MDcyM0UzODcwMjAwQkM3RDNCIC8q
IFBpY3R1cmVJblBpY3R1cmVTdXBwb3J0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTMyNUM5MDYyM0UzODcwMjAwQkM3RDNCIC8qIFBpY3R1cmVJblBp
Y3R1cmVTdXBwb3J0Lm1tICovOyB9OwogCQlFMzJCNTQ5MjIyODEwQUM0MDA4QUQ3MDIgLyogUGFj
a2VkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUz
MkI1NDkxMjI4MTBBQzAwMDhBRDcwMiAvKiBQYWNrZWQuY3BwICovOyB9OworCQlFMzRBNkQxOTI0
MTJERTM5MDAxMkFCNkUgLyogR3JhbnRBY2Nlc3NUb1ByZWZlcmVuY2VzU2VydmljZS5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNEE2RDE4MjQxMkRF
MzkwMDEyQUI2RSAvKiBHcmFudEFjY2Vzc1RvUHJlZmVyZW5jZXNTZXJ2aWNlLm1tICovOyB9Owog
CQlFMzVCOTA4MjIzRjYwREQwMDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzVCOTA4MTIzRjYw
REQwMDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwubW0gKi87IH07CiAJCUUzNUZDN0Iy
MjJCODJBNzMwMEYzMkY5OCAvKiBKU0xvY2tUYWtlc1dlYlRocmVhZExvY2subW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzVGQzdCMTIyQjgyQTZEMDBG
MzJGOTggLyogSlNMb2NrVGFrZXNXZWJUaHJlYWRMb2NrLm1tICovOyB9OwogCQlFMzczRDc5MTFG
MkNGMzUyMDBDNkZBQUYgLyogU2lnbmFscy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMzk1M0Y5NTFGMkNGMzIxMDBBNzZBMkUgLyogU2lnbmFscy5j
cHAgKi87IH07CkBAIC0yNjAxLDYgKzI2MDIsNyBAQAogCQlFMzAyQkRBOTI0MDRCOTIzMDA4NjUy
NzcgLyogQ29tcGFjdFJlZlB0clR1cGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IENvbXBhY3RSZWZQdHJUdXBsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUzMjVDOTA2MjNFMzg3MDIwMEJDN0QzQiAvKiBQaWN0dXJlSW5QaWN0dXJlU3VwcG9y
dC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBpY3R1cmVJblBpY3R1cmVTdXBwb3J0Lm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzJCNTQ5MTIyODEwQUMwMDA4QUQ3MDIgLyog
UGFja2VkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhY2tlZC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUzNEE2RDE4MjQxMkRFMzkwMDEyQUI2RSAvKiBHcmFudEFjY2Vzc1Rv
UHJlZmVyZW5jZXNTZXJ2aWNlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR3JhbnRBY2Nlc3NU
b1ByZWZlcmVuY2VzU2VydmljZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1
QjkwODEyM0Y2MEREMDAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1vZGVsLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gTG9jYWxpemVkRGV2aWNlTW9kZWwubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUzNUZDN0IxMjJCODJBNkQwMEYzMkY5OCAvKiBKU0xvY2tUYWtlc1dlYlRo
cmVhZExvY2subW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBKU0xv
Y2tUYWtlc1dlYlRocmVhZExvY2subW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUz
ODg4ODcwMjBDOTA5ODEwMEU2MzJCQyAvKiBXb3JrZXJQb29sLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdvcmtlclBvb2wuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMjkwOCw2ICsyOTEwLDcgQEAKIAkJCQlDMTVDQkIyRjIzRjFGRjFBMDAzMDBD
QzcgLyogQmFja2xpZ2h0TGV2ZWxOb3RpZmljYXRpb24ubW0gKi8sCiAJCQkJQzE2OTJEQzkyM0Qx
MERBRTAwNkU4OEY3IC8qIEJhdHRlcnkubW0gKi8sCiAJCQkJRTM5NEFFNkUyM0YyMzAzRTAwNUI0
OTM2IC8qIEdyYW50QWNjZXNzVG9Nb2JpbGVBc3NldHMubW0gKi8sCisJCQkJRTM0QTZEMTgyNDEy
REUzOTAwMTJBQjZFIC8qIEdyYW50QWNjZXNzVG9QcmVmZXJlbmNlc1NlcnZpY2UubW0gKi8sCiAJ
CQkJRTM1QjkwODEyM0Y2MEREMDAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1vZGVsLm1tICov
LAogCQkJCUMxNDVDQzBCMjNEQTVBMEYwMDNBNUVFQiAvKiBNaW1lVHlwZXMubW0gKi8sCiAJCQkJ
RTMyNUM5MDYyM0UzODcwMjAwQkM3RDNCIC8qIFBpY3R1cmVJblBpY3R1cmVTdXBwb3J0Lm1tICov
LApAQCAtNDg0Niw2ICs0ODQ5LDcgQEAKIAkJCQkwN0NFMUNGMzFGMDZBN0UwMDBCRjg5RjUgLyog
R2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA3RTQ5OTkxMUY5
RTU2REYwMDJGMUVGMyAvKiBHZXRVc2VyTWVkaWFSZXByb21wdC5tbSBpbiBTb3VyY2VzICovLAog
CQkJCUUzOTRBRTZGMjNGMjMwM0UwMDVCNDkzNiAvKiBHcmFudEFjY2Vzc1RvTW9iaWxlQXNzZXRz
Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRTM0QTZEMTkyNDEyREUzOTAwMTJBQjZFIC8qIEdyYW50
QWNjZXNzVG9QcmVmZXJlbmNlc1NlcnZpY2UubW0gaW4gU291cmNlcyAqLywKIAkJCQk4RTRBODUz
NzFFMUQxQUIyMDBGNTNCMEYgLyogR3JpZFBvc2l0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTdDQ0U3RUZBMUE0MTFBRTYwMDQ0N0M0QyAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VDMTFBNDExQTdFMDA0NDdDNEMgLyogSFRNTENvbGxl
Y3Rpb25OYW1lZEl0ZW0ubW0gaW4gU291cmNlcyAqLywKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L0dyYW50QWNjZXNzVG9QcmVmZXJlbmNlc1NlcnZpY2UubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR3JhbnRBY2Nlc3NUb1By
ZWZlcmVuY2VzU2VydmljZS5tbQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9HcmFudEFjY2Vzc1RvUHJlZmVyZW5jZXNTZXJ2aWNlLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisKKyNpZiBXS19IQVZFX0NfU1BJCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisj
aW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0
ZS5oPgorCitURVNUKFdlYktpdCwgR3JhbnRBY2Nlc3NQcmVmZXJlbmNlc1NlcnZpY2UpCit7Cisg
ICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
YWxsb2NdIGluaXRdKTsKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBh
ZG9wdFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRs
ZVRlc3QoIkludGVybmFsc0luamVjdGVkQnVuZGxlVGVzdCIpKTsKKyAgICBjb25maWd1cmF0aW9u
LmdldCgpLnByb2Nlc3NQb29sID0gKFdLUHJvY2Vzc1Bvb2wgKiljb250ZXh0LmdldCgpOworICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKKworICAgIFt3ZWJWaWV3IF9ncmFudEFjY2Vzc1Rv
UHJlZmVyZW5jZVNlcnZpY2VdOworCisgICAgYXV0byBzYW5kYm94QWNjZXNzID0gWyZdIHsKKyAg
ICAgICAgcmV0dXJuIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5k
b3cuaW50ZXJuYWxzLmhhc1NhbmRib3hNYWNoTG9va3VwQWNjZXNzVG9HbG9iYWxOYW1lKCdjb20u
YXBwbGUuV2ViS2l0LldlYkNvbnRlbnQnLCAnY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbicpIl0u
Ym9vbFZhbHVlOworICAgIH07CisKKyAgICBBU1NFUlRfVFJVRShzYW5kYm94QWNjZXNzKTsKK30K
KworI2VuZGlmCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9BY2Nlc3NpYmls
aXR5VGVzdHNJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9p
b3MvQWNjZXNzaWJpbGl0eVRlc3RzSU9TLm1tCShyZXZpc2lvbiAyNTgwNDQpCisrKyBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9BY2Nlc3NpYmlsaXR5VGVzdHNJT1MubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTM2LDYgKzM2LDEyIEBACiAjaW1wb3J0IDxXZWJLaXQvX1dLUmVtb3RlT2JqZWN0
SW50ZXJmYWNlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkuaD4K
IAorI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CisKK1NPRlRfTElOS19MSUJSQVJZKGxpYkFj
Y2Vzc2liaWxpdHkpCitTT0ZUX0xJTksobGliQWNjZXNzaWJpbGl0eSwgX0FYU1pvb21Ub3VjaFNl
dEVuYWJsZWQsIHZvaWQsIChCb29sZWFuIGVuYWJsZWQpLCAoZW5hYmxlZCkpOworU09GVF9MSU5L
KGxpYkFjY2Vzc2liaWxpdHksIF9BWFNBcHBsaWNhdGlvbkFjY2Vzc2liaWxpdHlTZXRFbmFibGVk
LCB2b2lkLCAoQm9vbGVhbiBlbmFibGVkKSwgKGVuYWJsZWQpKTsKKwogQGltcGxlbWVudGF0aW9u
IFdLV2ViVmlldyAoV0tBY2Nlc3NpYmlsaXR5VGVzdGluZykKIC0gKE5TQXJyYXk8TlNWYWx1ZSAq
PiAqKXJlY3RzQXRTZWxlY3Rpb25PZmZzZXQ6KE5TSW50ZWdlcilvZmZzZXQgd2l0aFRleHQ6KE5T
U3RyaW5nICopdGV4dAogewpAQCAtMTQ4LDYgKzE1NCw5IEBAIFRFU1QoQWNjZXNzaWJpbGl0eVRl
c3RzLCBTdG9yZVNlbGVjdGlvbikKIAogVEVTVChBY2Nlc3NpYmlsaXR5VGVzdHMsIFdlYlByb2Nl
c3NMb2FkZXJCdW5kbGVMb2FkZWQpCiB7CisgICAgX0FYU1pvb21Ub3VjaFNldEVuYWJsZWQodHJ1
ZSk7CisgICAgX0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eVNldEVuYWJsZWQodHJ1ZSk7CisK
ICAgICBXS1dlYlZpZXdDb25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAi
QWNjZXNzaWJpbGl0eVRlc3RQbHVnaW4iXTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwg
NTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBfV0tSZW1vdGVPYmplY3RJ
bnRlcmZhY2UgKmludGVyZmFjZSA9IFtfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UgcmVtb3RlT2Jq
ZWN0SW50ZXJmYWNlV2l0aFByb3RvY29sOkBwcm90b2NvbChBY2Nlc3NpYmlsaXR5VGVzdFN1cHBv
cnRQcm90b2NvbCldOwpAQCAtMTcxLDYgKzE4MCw5IEBAICAgICBpZCA8QWNjZXNzaWJpbGl0eVRl
c3RTdXBwb3J0UHJvdG9jb2wKICAgICAgICAgaXNEb25lID0gdHJ1ZTsKICAgICB9XTsKICAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisKKyAgICBfQVhTWm9vbVRvdWNoU2V0
RW5hYmxlZChmYWxzZSk7CisgICAgX0FYU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eVNldEVuYWJs
ZWQoZmFsc2UpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393312</attachid>
            <date>2020-03-11 17:15:44 -0700</date>
            <delta_ts>2020-03-11 17:18:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208690-20200311171544.patch</filename>
            <type>text/plain</type>
            <size>1955</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTgyOTgpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDIwLTAzLTExICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFJlLWVuYWJsZSBD
RlByZWZzIGRpcmVjdCBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDg2OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBXaGVuIHdlIHJlZW5hYmxlZCBDRiBwcmVmcyBkaXJlY3QgbW9kZSBpbiA8aHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODY5MD4sIHdlIHN0YXJ0ZWQg
dG8gcmVnaXN0ZXIKKyAgICAgICAgd2l0aCBhY2Nlc3NpYmlsaXR5IHdoZW4gd2UgcmVjZWl2ZWQg
YSBtZXNzYWdlIHRvIGRvIHNvIGZyb20gdGhlIFVJIHByb2Nlc3MuIFRoaXMgd291bGQgdHlwaWNh
bGx5IGhhcHBlbiB3aGVuIHRoZSB1c2VyCisgICAgICAgIGVuYWJsZWQgYWNjZXNzaWJpbGl0eS4g
T24gbWFjT1MsIHRoaXMgbm90aWZpY2F0aW9uIGRvZXMgbm90IHdvcmsgdGhlIHNhbWUgd2F5IGFz
IG9uIGlPUywgYW5kIGl0IGlzIGFzc3VtZWQgdGhhdAorICAgICAgICBhY2Nlc3NpYmlsaXR5IHNo
b3VsZCBhbHdheXMgYmUgZW5hYmxlZC4gVGhlcmVmb3JlIHdlIHNob3VsZCBnbyBiYWNrIHRvIHJl
Z2lzdGVyaW5nIHdpdGggYWNjZXNzaWJpbGl0eSBvbiBzdGFydHVwIG9mCisgICAgICAgIHRoZSBX
ZWJDb250ZW50IHByb2Nlc3Mgb24gbWFjT1MuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29h
L1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZv
cm1Jbml0aWFsaXplUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVuYmxv
Y2tBY2Nlc3NpYmlsaXR5U2VydmVyKToKKwogMjAyMC0wMy0xMSAgQ29tbWl0IFF1ZXVlICA8Y29t
bWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIy
NTgyOTQuCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0Nv
Y29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
cm9jZXNzQ29jb2EubW0JKHJldmlzaW9uIDI1ODI5OCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTUyOCw2ICs1
MjgsMTAgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVQcm9jZQogICAgIGVs
c2UKICAgICAgICAgbV9wcm9jZXNzVHlwZSA9IFByb2Nlc3NUeXBlOjpXZWJDb250ZW50OwogCisj
aWYgUExBVEZPUk0oTUFDKQorICAgIHJlZ2lzdGVyV2l0aEFjY2Vzc2liaWxpdHkoKTsKKyNlbmRp
ZgorCiAjaWYgVVNFKE9TX1NUQVRFKQogICAgIHJlZ2lzdGVyV2l0aFN0YXRlRHVtcGVyKCk7CiAj
ZW5kaWYKQEAgLTk3Niw5ICs5ODAsOSBAQCB2b2lkIFdlYlByb2Nlc3M6OnVuYmxvY2tBY2Nlc3Np
YmlsaXR5U2VyCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBib29sIG9rID0gU2FuZGJv
eEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KGhhbmRsZSk7CiAgICAgQVNTRVJUX1VOVVNF
RChvaywgb2spOwotI2VuZGlmCiAgICAgCiAgICAgcmVnaXN0ZXJXaXRoQWNjZXNzaWJpbGl0eSgp
OworI2VuZGlmCiB9CiAKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>