<?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>200583</bug_id>
          
          <creation_ts>2019-08-09 11:32:19 -0700</creation_ts>
          <short_desc>User Agent and SessionID should be given to NetworkRTCProvider to set up the correct proxy information</short_desc>
          <delta_ts>2019-09-15 21:46:19 -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>WebRTC</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=201811</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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1559957</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-09 11:32:19 -0700</bug_when>
    <thetext>User Agent and SessionID should be given to NetworkRTCProvider to set up the correct proxy information</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559959</commentid>
    <comment_count>1</comment_count>
      <attachid>375938</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-09 11:36:38 -0700</bug_when>
    <thetext>Created attachment 375938
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559961</commentid>
    <comment_count>2</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-09 11:36:58 -0700</bug_when>
    <thetext>Patch needs manual testing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559962</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-09 11:37:01 -0700</bug_when>
    <thetext>&lt;rdar://problem/54135396&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559964</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-09 11:38:47 -0700</bug_when>
    <thetext>Attachment 375938 did not pass style-queue:


ERROR: Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProvider.h:121:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 19 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560368</commentid>
    <comment_count>5</comment_count>
      <attachid>376053</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-12 01:35:51 -0700</bug_when>
    <thetext>Created attachment 376053
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560370</commentid>
    <comment_count>6</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-12 01:38:02 -0700</bug_when>
    <thetext>Attachment 376053 did not pass style-queue:


ERROR: Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProvider.h:121:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560376</commentid>
    <comment_count>7</comment_count>
      <attachid>376055</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-12 03:08:15 -0700</bug_when>
    <thetext>Created attachment 376055
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560378</commentid>
    <comment_count>8</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-12 03:12:13 -0700</bug_when>
    <thetext>Attachment 376055 did not pass style-queue:


ERROR: Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProvider.h:121:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebKit/NetworkProcess/webrtc/NetworkRTCProvider.cpp:39:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560425</commentid>
    <comment_count>9</comment_count>
      <attachid>376070</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-12 09:32:16 -0700</bug_when>
    <thetext>Created attachment 376070
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560427</commentid>
    <comment_count>10</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-12 09:37:29 -0700</bug_when>
    <thetext>Attachment 376070 did not pass style-queue:


ERROR: Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProvider.h:121:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560435</commentid>
    <comment_count>11</comment_count>
      <attachid>376072</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-12 09:55:57 -0700</bug_when>
    <thetext>Created attachment 376072
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560445</commentid>
    <comment_count>12</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-12 09:59:32 -0700</bug_when>
    <thetext>Attachment 376072 did not pass style-queue:


ERROR: Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProvider.h:121:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560468</commentid>
    <comment_count>13</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-12 10:46:31 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #11)
&gt; Created attachment 376072 [details]
&gt; Patch

Tested on Mac, not yet on iOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560537</commentid>
    <comment_count>14</comment_count>
      <attachid>376072</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-08-12 13:27:58 -0700</bug_when>
    <thetext>Comment on attachment 376072
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Use a specific socket factory that is specific to the user agent and session ID.

Nit: s/a specific socket factory/a socket factory/

&gt; Source/WebKit/ChangeLog:9
&gt; +        Use of this information to get the proxy information from NetworkSession and pass it to libwebrtc socket creation.

Nit: s/Use of this/Use this/

&gt; Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h:31
&gt; +OBJC_CLASS NSURLSessionConfiguration;

Nit: it doesn&apos;t look like this is needed (yet)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560716</commentid>
    <comment_count>15</comment_count>
      <attachid>376140</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-13 00:34:53 -0700</bug_when>
    <thetext>Created attachment 376140
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560718</commentid>
    <comment_count>16</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-13 00:36:25 -0700</bug_when>
    <thetext>Attachment 376140 did not pass style-queue:


ERROR: Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProvider.h:121:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560735</commentid>
    <comment_count>17</comment_count>
      <attachid>376140</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-13 01:54:33 -0700</bug_when>
    <thetext>Comment on attachment 376140
Patch for landing

Clearing flags on attachment: 376140

Committed r248592: &lt;https://trac.webkit.org/changeset/248592&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560736</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-13 01:54:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375938</attachid>
            <date>2019-08-09 11:36:38 -0700</date>
            <delta_ts>2019-08-12 01:35:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200583-20190809203637.patch</filename>
            <type>text/plain</type>
            <size>30860</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NDY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCAxMzQzNWFkYmU0MTUyNTFhN2ZmNjhiODYzYjJlNDkwMWUwMmM3ZjllLi5jYzYx
NDc5N2Q5YzI4OWEyZDc5ZDM0NjE1MWY4NWVlMDNjMWNmYjU0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0wOC0wOSAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlciBBZ2VudCBhbmQgU2Vzc2lv
bklEIHNob3VsZCBiZSBnaXZlbiB0byBOZXR3b3JrUlRDUHJvdmlkZXIgdG8gc2V0IHVwIHRoZSBj
b3JyZWN0IHByb3h5IGluZm9ybWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDA1ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBFeHBvcnQgb2Ygc29tZSBzeW1ib2xzLgorCisgICAgICAgICogQ29u
ZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHA6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
bGlid2VicnRjLmlPU3NpbS5leHA6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvbGlid2VicnRj
Lm1hYy5leHA6CisKIDIwMTktMDgtMDIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBidWlsZCBjaGVjayBmb3IgbGlid2VicnRjIE9iamVjdGl2ZUMgbmFt
ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCAyOWYzY2NlYmM0MTRlOTVkZTMzNGUwYTQ2MDQwNmEwOTg2MDJkMWJk
Li4wY2I3MDM0MjJjNzg1YmZmNWUwYmM3YzMzMDRiNGY0MmJmYzZkYTg2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTktMDgtMDkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgorCisgICAgICAgIFVzZXIgQWdlbnQgYW5kIFNlc3Npb25JRCBzaG91bGQgYmUgZ2l2ZW4g
dG8gTmV0d29ya1JUQ1Byb3ZpZGVyIHRvIHNldCB1cCB0aGUgY29ycmVjdCBwcm94eSBpbmZvcm1h
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAw
NTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNl
IGEgc3BlY2lmaWMgc29ja2V0IGZhY3RvcnkgdGhhdCBpcyBzcGVjaWZpYyB0byB0aGUgdXNlciBh
Z2VudCBhbmQgc2Vzc2lvbiBJRC4KKyAgICAgICAgVGhpcyBmYWN0b3J5IGlzIHN0b3JlZCBpbiB0
aGUgbWVkaWEgZW5kcG9pbnQuCisgICAgICAgIE5vdCB0ZXN0YWJsZSB3aXRob3V0IHByb3h5IGlu
ZnJhc3RydWN0dXJlLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENN
ZWRpYUVuZHBvaW50OjpzZXRDb25maWd1cmF0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50Lmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVQZWVyQ29ubmVjdGlvbik6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVy
Lmg6CisKIDIwMTktMDgtMDkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEJsb2Igc2hvdWxkIHN0b3JlIGl0cyBzZXNzaW9uIElECmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFmMWY1
YjEwODgzZjAwOGExYzA3YzU2YWFiZWYyNjc5ZGU3MGQxOWQuLjEyMGNkYmJmMWZhMjM2ZGVlYmE2
MzZmODMzMTU4NjY1MDk0ZjhiNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTktMDgt
MDkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFVzZXIgQWdl
bnQgYW5kIFNlc3Npb25JRCBzaG91bGQgYmUgZ2l2ZW4gdG8gTmV0d29ya1JUQ1Byb3ZpZGVyIHRv
IHNldCB1cCB0aGUgY29ycmVjdCBwcm94eSBpbmZvcm1hdGlvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwNTgzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFzcyBzZXNzaW9uIGlkIGFuZCB1c2VyIGFn
ZW50IHdoZW5ldmVyIGNyZWF0aW5nIGEgVENQIGNsaWVudCBzb2NrZXQuCisgICAgICAgIFVzZSBv
ZiB0aGlzIGluZm9ybWF0aW9uIHRvIGdldCB0aGUgcHJveHkgaW5mb3JtYXRpb24gZnJvbSBOZXR3
b3JrU2Vzc2lvbiBhbmQgcGFzcyBpdCB0byBsaWJ3ZWJydGMgc29ja2V0IGNyZWF0aW9uLgorCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OnByb3h5SW5mb0Zyb21TZXNzaW9uKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BTb2Nr
ZXQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlckNvbm5lY3Rp
b24pOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlU29ja2V0RmFj
dG9yeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92
aWRlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29j
a2V0RmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6
OmNyZWF0ZVNlcnZlclRjcFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tl
dEZhY3Rvcnk6OmNyZWF0ZVVkcFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1Nv
Y2tldEZhY3Rvcnk6OmNyZWF0ZUNsaWVudFRjcFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Okxp
YldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZUFzeW5jUmVzb2x2ZXIpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oOgorCiAyMDE5
LTA4LTA4ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNT
SU9OICg1MjI3OTk4Nyk6IE1vc3Qgb2YgdGhlIFdLVUlEZWxlZ2F0ZSBjb250ZXh0TWVudSBkZWxl
Z2F0ZSBtZXRob2RzIGFyZSBub3QgYmVpbmcgY2FsbGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHAgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHAK
aW5kZXggNjQ2ZDhkNGNiZGUwZTYyZmJlMjdjZjlhNDg2YjM0MzE0YzNhNzUyMS4uOTIwNTI5NmQ1
N2Y4MmRmMGI0ODA2Yzg1MTQ2MDU4ZDgwMjE3ZmEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4
cApAQCAtMjQ4LDMgKzI0OCw4IEBAIF9fWk42d2VicnRjMTZSdHBSdHhQYXJhbWV0ZXJzQzFFUktT
MF8KIF9fWk42d2VicnRjMTZSdHBSdHhQYXJhbWV0ZXJzRDFFdgogX19aTjNydGMxMExvZ01lc3Nh
Z2UxMlNldExvZ091dHB1dEVOU18xNUxvZ2dpbmdTZXZlcml0eUVQRnZTMV9QS2NFCiBfX1pONndl
YnJ0YzEzQ3J5cHRvT3B0aW9uczVOb0djbUV2CitfX1pUVk4zcnRjMjNJbnNlY3VyZUNyeXB0U3Ry
aW5nSW1wbEUKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0MxRVJLTlNfMTVDcnlwdFN0cmluZ0ltcGxF
CitfX1pOM3J0YzEzU29ja2V0QWRkcmVzc0MxRVJLTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzFf
MTFjaGFyX3RyYWl0c0ljRUVOUzFfOWFsbG9jYXRvckljRUVFRWkKK19fWk4zcnRjMTFDcnlwdFN0
cmluZ0QxRXYKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0MxRVJLUzBfCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5l
eHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRj
LmlPU3NpbS5leHAKaW5kZXggOTgwYzNmNDk1MTM5ZTlkODZkMDNhNWVjMDZjZjk4YTg5YzI3NDA3
My4uNmYxMzJjYmMwZTZmNmIzOGJhNWMxODMyZWUzNmJhMTRiMzE1ODA5NCAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1Nz
aW0uZXhwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9s
aWJ3ZWJydGMuaU9Tc2ltLmV4cApAQCAtMjQ5LDMgKzI0OSw4IEBAIF9fWk42d2VicnRjMTZSdHBS
dHhQYXJhbWV0ZXJzQzFFUktTMF8KIF9fWk42d2VicnRjMTZSdHBSdHhQYXJhbWV0ZXJzRDFFdgog
X19aTjNydGMxMExvZ01lc3NhZ2UxMlNldExvZ091dHB1dEVOU18xNUxvZ2dpbmdTZXZlcml0eUVQ
RnZTMV9QS2NFCiBfX1pONndlYnJ0YzEzQ3J5cHRvT3B0aW9uczVOb0djbUV2CitfX1pUVk4zcnRj
MjNJbnNlY3VyZUNyeXB0U3RyaW5nSW1wbEUKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0MxRVJLTlNf
MTVDcnlwdFN0cmluZ0ltcGxFCitfX1pOM3J0YzEzU29ja2V0QWRkcmVzc0MxRVJLTlN0M19fMTEy
YmFzaWNfc3RyaW5nSWNOUzFfMTFjaGFyX3RyYWl0c0ljRUVOUzFfOWFsbG9jYXRvckljRUVFRWkK
K19fWk4zcnRjMTFDcnlwdFN0cmluZ0QxRXYKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0MxRVJLUzBf
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMv
bGlid2VicnRjLm1hYy5leHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJh
dGlvbnMvbGlid2VicnRjLm1hYy5leHAKaW5kZXggOTgwYzNmNDk1MTM5ZTlkODZkMDNhNWVjMDZj
Zjk4YTg5YzI3NDA3My4uNmYxMzJjYmMwZTZmNmIzOGJhNWMxODMyZWUzNmJhMTRiMzE1ODA5NCAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xp
YndlYnJ0Yy5tYWMuZXhwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1
cmF0aW9ucy9saWJ3ZWJydGMubWFjLmV4cApAQCAtMjQ5LDMgKzI0OSw4IEBAIF9fWk42d2VicnRj
MTZSdHBSdHhQYXJhbWV0ZXJzQzFFUktTMF8KIF9fWk42d2VicnRjMTZSdHBSdHhQYXJhbWV0ZXJz
RDFFdgogX19aTjNydGMxMExvZ01lc3NhZ2UxMlNldExvZ091dHB1dEVOU18xNUxvZ2dpbmdTZXZl
cml0eUVQRnZTMV9QS2NFCiBfX1pONndlYnJ0YzEzQ3J5cHRvT3B0aW9uczVOb0djbUV2CitfX1pU
Vk4zcnRjMjNJbnNlY3VyZUNyeXB0U3RyaW5nSW1wbEUKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0Mx
RVJLTlNfMTVDcnlwdFN0cmluZ0ltcGxFCitfX1pOM3J0YzEzU29ja2V0QWRkcmVzc0MxRVJLTlN0
M19fMTEyYmFzaWNfc3RyaW5nSWNOUzFfMTFjaGFyX3RyYWl0c0ljRUVOUzFfOWFsbG9jYXRvcklj
RUVFRWkKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0QxRXYKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0Mx
RVJLUzBfCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCmluZGV4
IDQ1YmY0YTkzZDI1MDBmZTg5YTNlYmU3N2VjMWNkOGVkZTEwNWEyZjkuLmRlZjFmOTFlZWU5ZWQ2
ZWM3OGQxM2M2OWVjNDM0OGYwYWE2OGQzNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q01lZGlhRW5kcG9pbnQuY3BwCkBAIC04Niw3ICs4NiwxMSBAQCBib29sIExpYldlYlJUQ01lZGlh
RW5kcG9pbnQ6OnNldENvbmZpZ3VyYXRpb24oTGliV2ViUlRDUHJvdmlkZXImIGNsaWVudCwgd2Vi
cnRjOgogICAgICAgICBjb25maWd1cmF0aW9uLnNkcF9zZW1hbnRpY3MgPSB3ZWJydGM6OlNkcFNl
bWFudGljczo6a1VuaWZpZWRQbGFuOwogCiAgICAgaWYgKCFtX2JhY2tlbmQpIHsKLSAgICAgICAg
bV9iYWNrZW5kID0gY2xpZW50LmNyZWF0ZVBlZXJDb25uZWN0aW9uKCp0aGlzLCBXVEZNb3ZlKGNv
bmZpZ3VyYXRpb24pKTsKKyAgICAgICAgaWYgKCFtX3J0Y1NvY2tldEZhY3RvcnkpIHsKKyAgICAg
ICAgICAgIGF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX3BlZXJDb25uZWN0
aW9uQmFja2VuZC5jb25uZWN0aW9uKCkuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICAg
ICAgICAgIG1fcnRjU29ja2V0RmFjdG9yeSA9IGNsaWVudC5jcmVhdGVTb2NrZXRGYWN0b3J5KGRv
Y3VtZW50LnNlc3Npb25JRCgpLCBkb2N1bWVudC51c2VyQWdlbnQoZG9jdW1lbnQudXJsKCkpKTsK
KyAgICAgICAgfQorICAgICAgICBtX2JhY2tlbmQgPSBjbGllbnQuY3JlYXRlUGVlckNvbm5lY3Rp
b24oKnRoaXMsIG1fcnRjU29ja2V0RmFjdG9yeS5nZXQoKSwgV1RGTW92ZShjb25maWd1cmF0aW9u
KSk7CiAgICAgICAgIHJldHVybiAhIW1fYmFja2VuZDsKICAgICB9CiAgICAgYXV0byBvbGRDb25m
aWd1cmF0aW9uID0gbV9iYWNrZW5kLT5HZXRDb25maWd1cmF0aW9uKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRp
YUVuZHBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmgKaW5kZXggNjJiYjQ3NmEwZTNiMjFmNmIzOWUyZGFm
MmIyNmJiZTFmY2ZlZGY0Zi4uY2E5ZGY4NmQ3OGM3MmVlYTIyYTAyOWU5YzM5ZmIxMWEzMGUyMDg5
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuaApAQCAtMTk4LDYg
KzE5OCw3IEBAIHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFN0cmluZywgcnRjOjpzY29wZWRfcmVm
cHRyPHdlYnJ0Yzo6TWVkaWFTdHJlYW1JbnRlcmZhY2U+PiBtX2xvY2FsU3RyZWFtczsKIAorICAg
IHN0ZDo6dW5pcXVlX3B0cjxydGM6OlBhY2tldFNvY2tldEZhY3Rvcnk+IG1fcnRjU29ja2V0RmFj
dG9yeTsKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBpbnQ2NF90IG1fc3RhdHNGaXJz
dERlbGl2ZXJlZFRpbWVzdGFtcCB7IDAgfTsKICAgICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dl
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCmluZGV4IDNhYTkwY2ZhNDZh
N2VjMDBlNzU2ZGEzZmJlY2Q1MmE2NDNjNzJlY2UuLjIwN2FiNzhhOWEyYmJlNDBhMGVkNGRhNjk1
NjlhZWRiMTIyOTllMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcApA
QCAtMjgxLDcgKzI4MSw3IEBAIHZvaWQgTGliV2ViUlRDUHJvdmlkZXI6OmVuYWJsZUVudW1lcmF0
aW5nQWxsTmV0d29ya0ludGVyZmFjZXMoKQogICAgIG1fZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3
b3JrSW50ZXJmYWNlcyA9IHRydWU7CiB9CiAKLXJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBl
ZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlckNvbm5l
Y3Rpb24od2VicnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyJiBvYnNlcnZlciwgd2VicnRjOjpQ
ZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6UlRDQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24p
CitydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gTGli
V2ViUlRDUHJvdmlkZXI6OmNyZWF0ZVBlZXJDb25uZWN0aW9uKHdlYnJ0Yzo6UGVlckNvbm5lY3Rp
b25PYnNlcnZlciYgb2JzZXJ2ZXIsIHJ0Yzo6UGFja2V0U29ja2V0RmFjdG9yeSosIHdlYnJ0Yzo6
UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9u
KQogewogICAgIC8vIERlZmF1bHQgV0sxIGltcGxlbWVudGF0aW9uLgogICAgIEFTU0VSVChtX3Vz
ZU5ldHdvcmtUaHJlYWRXaXRoU29ja2V0U2VydmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1By
b3ZpZGVyLmgKaW5kZXggMjQ4NTcyZjM2Y2YxNjcyMmQ1NDg1NTJjOGU1ZWYxZTNiNDMyOGU4OC4u
YmRmMDkwMDQwYzkwNjU3ZjQ5ZjBjZTRhZTI4MDc3MzhhMWU4YmU3OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3Zp
ZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1Byb3ZpZGVyLmgKQEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgogICAgIH0KIAog
I2lmIFVTRShMSUJXRUJSVEMpCi0gICAgdmlydHVhbCBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRj
OjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gY3JlYXRlUGVlckNvbm5lY3Rpb24od2VicnRjOjpQ
ZWVyQ29ubmVjdGlvbk9ic2VydmVyJiwgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6
UlRDQ29uZmlndXJhdGlvbiYmKTsKKyAgICB2aXJ0dWFsIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJy
dGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBjcmVhdGVQZWVyQ29ubmVjdGlvbih3ZWJydGM6
OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXImLCBydGM6OlBhY2tldFNvY2tldEZhY3RvcnkqLCB3ZWJy
dGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpSVENDb25maWd1cmF0aW9uJiYpOwogCiAgICAg
d2VicnRjOjpQZWVyQ29ubmVjdGlvbkZhY3RvcnlJbnRlcmZhY2UqIGZhY3RvcnkoKTsKIApAQCAt
MTE4LDYgKzExOCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEVuYWJsZUxvZ2dpbmcoYm9vbCk7
CiAgICAgdm9pZCBzZXRFbmFibGVXZWJSVENFbmNyeXB0aW9uKGJvb2wpOwogCisgICAgdmlydHVh
bCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpQYWNrZXRTb2NrZXRGYWN0b3J5PiBjcmVhdGVTb2NrZXRG
YWN0b3J5KFBBTDo6U2Vzc2lvbklELCBTdHJpbmcmJiAvKiB1c2VyQWdlbnQgKi8pIHsgcmV0dXJu
IG51bGxwdHI7IH0KKwogcHJvdGVjdGVkOgogICAgIExpYldlYlJUQ1Byb3ZpZGVyKCkgPSBkZWZh
dWx0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtTZXNzaW9uQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
TmV0d29ya1Nlc3Npb25Db2NvYS5oCmluZGV4IDRiYWIyM2VhODUzY2U4YWE3MmUzOGRkZmE2Zjg1
OGE1MTViZDkwYjIuLjQ3NGE0NDE1N2Q0YmFjYzRjZWI3YTg4NDIyNzI2Y2YxYjlmYjUxNzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Np
b25Db2NvYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a1Nlc3Npb25Db2NvYS5oCkBAIC04MSw2ICs4MSw4IEBAIHB1YmxpYzoKICAgICBib29sIGFsbExv
YWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcoKSBjb25z
dCB7IHJldHVybiBtX2FsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9u
c0ZvclRlc3Rpbmc7IH0KICAgICBETUZXZWJzaXRlUG9saWN5TW9uaXRvciAqZGV2aWNlTWFuYWdl
bWVudFBvbGljeU1vbml0b3IoKTsKIAorICAgIENGRGljdGlvbmFyeVJlZiBwcm94eUNvbmZpZ3Vy
YXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Byb3h5Q29uZmlndXJhdGlvbi5nZXQoKTsgfQorCiBw
cml2YXRlOgogICAgIHZvaWQgaW52YWxpZGF0ZUFuZENhbmNlbCgpIG92ZXJyaWRlOwogICAgIHZv
aWQgY2xlYXJDcmVkZW50aWFscygpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKaW5kZXgg
MTZiN2ZhZTE5ZjYwYmY4MTM5ODQxMzU5YmQ2ODdjNjRlNDkzMWY0Ni4uYzQ5OTAzNzA3MzhlMjdm
MWM4Y2NhZThmMTQ2OWRlZmY2MzAzZWMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCkBAIC0xMjks
MTAgKzEyOSwyMiBAQCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlU2VydmVyVENQU29j
a2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldAogICAgIH0pOwogfQogCi12b2lk
IE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlQ2xpZW50VENQU29ja2V0KHVpbnQ2NF90IGlkZW50
aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29u
c3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgaW50IG9wdGlvbnMp
CisjaWYgIVBMQVRGT1JNKENPQ09BKQorcnRjOjpQcm94eUluZm8gTmV0d29ya1JUQ1Byb3ZpZGVy
Ojpwcm94eUluZm9Gcm9tU2Vzc2lvbihOZXR3b3JrU2Vzc2lvbiYpCiB7Ci0gICAgY2FsbE9uUlRD
TmV0d29ya1RocmVhZChbdGhpcywgaWRlbnRpZmllciwgbG9jYWxBZGRyZXNzID0gUlRDTmV0d29y
azo6aXNvbGF0ZWRDb3B5KGxvY2FsQWRkcmVzcy52YWx1ZSksIHJlbW90ZUFkZHJlc3MgPSBSVENO
ZXR3b3JrOjppc29sYXRlZENvcHkocmVtb3RlQWRkcmVzcy52YWx1ZSksIG9wdGlvbnNdKCkgewot
ICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4gc29ja2V0KG1f
cGFja2V0U29ja2V0RmFjdG9yeS0+Q3JlYXRlQ2xpZW50VGNwU29ja2V0KGxvY2FsQWRkcmVzcywg
cmVtb3RlQWRkcmVzcywgeyB9LCB7IH0sIG9wdGlvbnMpKTsKKyAgICByZXR1cm4geyB9OworfQor
I2VuZGlmCisKK3ZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BTb2NrZXQo
dWludDY0X3QgaWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgbG9j
YWxBZGRyZXNzLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNz
LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyYmIHVzZXJBZ2VudCwgaW50IG9wdGlv
bnMpCit7CisgICAgYXV0byogc2Vzc2lvbiA9IG1fY29ubmVjdGlvbi0+bmV0d29ya1Byb2Nlc3Mo
KS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpOworICAgIGlmICghc2Vzc2lvbikgeworICAgICAg
ICBtX2Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpXZWJSVENTb2NrZXQ6
OlNpZ25hbENsb3NlKDEpLCBpZGVudGlmaWVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICBjYWxsT25SVENOZXR3b3JrVGhyZWFkKFt0aGlzLCBpZGVudGlmaWVyLCBsb2NhbEFkZHJlc3Mg
PSBSVENOZXR3b3JrOjppc29sYXRlZENvcHkobG9jYWxBZGRyZXNzLnZhbHVlKSwgcmVtb3RlQWRk
cmVzcyA9IFJUQ05ldHdvcms6Omlzb2xhdGVkQ29weShyZW1vdGVBZGRyZXNzLnZhbHVlKSwgcHJv
eHlJbmZvID0gcHJveHlJbmZvRnJvbVNlc3Npb24oKnNlc3Npb24pLCB1c2VyQWdlbnQgPSBXVEZN
b3ZlKHVzZXJBZ2VudCkuaXNvbGF0ZWRDb3B5KCksIG9wdGlvbnNdKCkgeworICAgICAgICBzdGQ6
OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4gc29ja2V0KG1fcGFja2V0U29ja2V0
RmFjdG9yeS0+Q3JlYXRlQ2xpZW50VGNwU29ja2V0KGxvY2FsQWRkcmVzcywgcmVtb3RlQWRkcmVz
cywgcHJveHlJbmZvLCB1c2VyQWdlbnQudXRmOCgpLmRhdGEoKSwgb3B0aW9ucykpOwogICAgICAg
ICBjcmVhdGVTb2NrZXQoaWRlbnRpZmllciwgV1RGTW92ZShzb2NrZXQpLCBMaWJXZWJSVENTb2Nr
ZXRDbGllbnQ6OlR5cGU6OkNsaWVudFRDUCk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oCmlu
ZGV4IGM2ZTg2NzJkYmQwNzhkODczNDVmMmYwY2QyMmZjMzkzMGU3ZjE5ZGYuLjM5ZTE0NTM4MTli
YmVlMDA1M2VhYzA3MTlmYzNlNTY2ZTlhNmM4MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oCkBAIC0zMSw2
ICszMSw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1JUQ01vbml0b3IuaCIKICNpbmNsdWRlICJSVENO
ZXR3b3JrLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENNYWNyb3MuaD4KKyNpbmNsdWRl
IDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d2VicnRjL3AycC9iYXNlL2Jhc2ljcGFja2V0
c29ja2V0ZmFjdG9yeS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9ydGNfYmFzZS90aGlyZF9wYXJ0eS9z
aWdzbG90L3NpZ3Nsb3QuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNDcsNiArNDgs
NyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOwogY2xhc3MgTmV0d29ya1JUQ1Jlc29sdmVyOwogY2xhc3MgTmV0d29ya1JUQ1NvY2tldDsK
K2NsYXNzIE5ldHdvcmtTZXNzaW9uOwogCiBjbGFzcyBOZXR3b3JrUlRDUHJvdmlkZXIgOiBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8TmV0d29ya1JUQ1Byb3ZpZGVyPiwgcHVibGljIHJ0Yzo6
TWVzc2FnZUhhbmRsZXIgewogcHVibGljOgpAQCAtNzUsNyArNzcsNyBAQCBwcml2YXRlOgogICAg
IGV4cGxpY2l0IE5ldHdvcmtSVENQcm92aWRlcihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYpOwogCiAgICAgdm9pZCBjcmVhdGVVRFBTb2NrZXQodWludDY0X3QsIGNvbnN0IFJUQ05ldHdv
cms6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCwgdWludDE2X3QpOwotICAgIHZvaWQgY3JlYXRl
Q2xpZW50VENQU29ja2V0KHVpbnQ2NF90LCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNz
JiwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIGludCk7CisgICAgdm9pZCBjcmVh
dGVDbGllbnRUQ1BTb2NrZXQodWludDY0X3QsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJl
c3MmLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgUEFMOjpTZXNzaW9uSUQsIFN0
cmluZyYmIHVzZXJBZ2VudCwgaW50KTsKICAgICB2b2lkIGNyZWF0ZVNlcnZlclRDUFNvY2tldCh1
aW50NjRfdCwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90IG1pblBv
cnQsIHVpbnQxNl90IG1heFBvcnQsIGludCk7CiAgICAgdm9pZCB3cmFwTmV3VENQQ29ubmVjdGlv
bih1aW50NjRfdCBpZGVudGlmaWVyLCB1aW50NjRfdCBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRp
Zmllcik7CiAKQEAgLTg4LDYgKzkwLDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgT25NZXNzYWdl
KHJ0Yzo6TWVzc2FnZSopOwogCisgICAgc3RhdGljIHJ0Yzo6UHJveHlJbmZvIHByb3h5SW5mb0Zy
b21TZXNzaW9uKE5ldHdvcmtTZXNzaW9uJik7CisKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6
OnVuaXF1ZV9wdHI8TmV0d29ya1JUQ1Jlc29sdmVyPj4gbV9yZXNvbHZlcnM7CiAgICAgSGFzaE1h
cDx1aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ1NvY2tldENsaWVudD4+IG1fc29j
a2V0czsKICAgICBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyogbV9jb25uZWN0aW9uOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JU
Q1Byb3ZpZGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJy
dGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluCmluZGV4IDQ4OTE0YzM3ZjVlOTU1YWNm
MzFjOGE3ZjBlNjY2MjBlNTJhZmNmNTEuLmI0MTU1Mzc5ZGQ4ZjQ2ZjdlODY4ZmNjZjkzNGI1ODQ5
NGZkMTYwMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRj
L05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMuaW4KQEAgLTI1LDcg
KzI1LDcgQEAKIG1lc3NhZ2VzIC0+IE5ldHdvcmtSVENQcm92aWRlciB7CiAgICAgQ3JlYXRlVURQ
U29ja2V0KGludCBpZGVudGlmaWVyLCBXZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3Mg
bG9jYWxBZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQogICAgIENy
ZWF0ZVNlcnZlclRDUFNvY2tldChpbnQgaWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpT
b2NrZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4
UG9ydCwgaW50IG9wdGlvbnMpCi0gICAgQ3JlYXRlQ2xpZW50VENQU29ja2V0KGludCBpZGVudGlm
aWVyLCBXZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgbG9jYWxBZGRyZXNzLCBXZWJL
aXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgcmVtb3RlQWRkcmVzcywgaW50IG9wdGlvbnMp
CisgICAgQ3JlYXRlQ2xpZW50VENQU29ja2V0KGludCBpZGVudGlmaWVyLCBXZWJLaXQ6OlJUQ05l
dHdvcms6OlNvY2tldEFkZHJlc3MgbG9jYWxBZGRyZXNzLCBXZWJLaXQ6OlJUQ05ldHdvcms6OlNv
Y2tldEFkZHJlc3MgcmVtb3RlQWRkcmVzcywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJp
bmcgdXNlckFnZW50LCBpbnQgb3B0aW9ucykKICAgICBDcmVhdGVSZXNvbHZlcih1aW50NjRfdCBp
ZGVudGlmaWVyLCBTdHJpbmcgYWRkcmVzcykKICAgICBTdG9wUmVzb2x2ZXIodWludDY0X3QgaWRl
bnRpZmllcikKICAgICBXcmFwTmV3VENQQ29ubmVjdGlvbih1aW50NjRfdCBpZGVudGlmaWVyLCB1
aW50NjRfdCBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGUxNjY0MDYwY2E5MzdiNzg3
M2IzZTRlNGUwYmY0NmRlN2YxZjg3ZjguLjAxZmUwOGFhZGExN2MxOGNjMDkzOGQ2OTQwYTY4MGQ4
YWFiMzNiM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtODgzLDYgKzg4Myw3IEBACiAJCTQxNEREMzdBMjBCRjQ5QTUwMDY5NTlGQiAv
KiBjb20uY2lzY28ud2ViZXgucGx1Z2luLmdwYzY0LnNiIGluIENvcHkgUGx1Zy1pbiBTYW5kYm94
IFByb2ZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNEREMzc4MjBC
RjQzRUEwMDY5NTlGQiAvKiBjb20uY2lzY28ud2ViZXgucGx1Z2luLmdwYzY0LnNiICovOyB9Owog
CQk0MTRERURENzFGOUVEREU1MDA0N0M0MEQgLyogU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE0REVERDUx
RjlFRERERjAwNDdDNDBEIC8qIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaCAqLzsgfTsKIAkJ
NDE1N0U0QjAyMEUyRUNERjAwQTZDMEQ3IC8qIGNvbS5nb29nbGUubzFkYnJvd3NlcnBsdWdpbi5z
YiBpbiBDb3B5IFBsdWctaW4gU2FuZGJveCBQcm9maWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MTU3RTRBRjIwRTJFQzk4MDBBNkMwRDcgLyogY29tLmdvb2dsZS5vMWRi
cm93c2VycGx1Z2luLnNiICovOyB9OworCQk0MTc2OTAxNDIyRkRENDFCMDBCMTU3NkQgLyogTmV0
d29ya1JUQ1Byb3ZpZGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDE3NjkwMTMyMkZERDQxQjAwQjE1NzZEIC8qIE5ldHdvcmtSVENQcm92aWRlci5t
bSAqLzsgfTsKIAkJNDE3OTE1QUYyMjU2QkI3NTAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWwu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzkxNUFE
MjI1NkJCNzQwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsLmggKi87IH07CiAJCTQxNzkxNUIx
MjI1NkMwRDYwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsTWFuYWdlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3OTE1QjAyMjU2QzBENjAwRDZG
OTdFIC8qIFdlYlNvY2tldENoYW5uZWxNYW5hZ2VyLmggKi87IH07CiAJCTQxNzkxNUI5MjI1NzA0
NkYwMEQ2Rjk3RSAvKiBOZXR3b3JrU29ja2V0Q2hhbm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3OTE1QjYyMjU3MDQ2RTAwRDZGOTdFIC8qIE5l
dHdvcmtTb2NrZXRDaGFubmVsLmggKi87IH07CkBAIC0zMTI3LDYgKzMxMjgsNyBAQAogCQk0MTUx
RTVDMzFGQkI5MEE5MDBFNDdFMkQgLyogRm9ybURhdGFSZWZlcmVuY2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRm9ybURhdGFSZWZlcmVuY2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDE1Nzg1MzAyMTI3NkI2RjAwREQzODAwIC8qIGNvcHktd2ViY29udGVu
dC1yZXNvdXJjZXMtdG8tcHJpdmF0ZS1oZWFkZXJzLnNoICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQuc2g7IHBhdGggPSAiY29weS13
ZWJjb250ZW50LXJlc291cmNlcy10by1wcml2YXRlLWhlYWRlcnMuc2giOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTU3RTRBRjIwRTJFQzk4MDBBNkMwRDcgLyogY29tLmdvb2dsZS5v
MWRicm93c2VycGx1Z2luLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5nb29nbGUubzFk
YnJvd3NlcnBsdWdpbi5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3NjkwMTMy
MkZERDQxQjAwQjE1NzZEIC8qIE5ldHdvcmtSVENQcm92aWRlci5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdvcmtSVENQcm92aWRlci5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3OTE1QUMyMjU2QkI3NDAwRDZGOTdFIC8qIFdlYlNvY2tl
dENoYW5uZWwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViU29j
a2V0Q2hhbm5lbC5jcHA7IHBhdGggPSBOZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc5MTVBRDIyNTZCQjc0MDBENkY5N0UgLyogV2Vi
U29ja2V0Q2hhbm5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJTb2Nr
ZXRDaGFubmVsLmg7IHBhdGggPSBOZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3OTE1QjAyMjU2QzBENjAwRDZGOTdFIC8qIFdlYlNvY2tl
dENoYW5uZWxNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlNv
Y2tldENoYW5uZWxNYW5hZ2VyLmg7IHBhdGggPSBOZXR3b3JrL1dlYlNvY2tldENoYW5uZWxNYW5h
Z2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NTUwLDYgKzY1NTIsNyBAQAog
CQkJCTQxREM0NTk1MUUzRDZFMUUwMEIxMUY1MSAvKiBOZXR3b3JrUlRDUHJvdmlkZXIuY3BwICov
LAogCQkJCTQxREM0NTk0MUUzRDZFMUUwMEIxMUY1MSAvKiBOZXR3b3JrUlRDUHJvdmlkZXIuaCAq
LywKIAkJCQk0MURDNDU5ODFFM0Q2RUQ2MDBCMTFGNTEgLyogTmV0d29ya1JUQ1Byb3ZpZGVyLm1l
c3NhZ2VzLmluICovLAorCQkJCTQxNzY5MDEzMjJGREQ0MUIwMEIxNTc2RCAvKiBOZXR3b3JrUlRD
UHJvdmlkZXIubW0gKi8sCiAJCQkJNDExMkI1NDcxRjlGRDNBQjAwRTY3ODc1IC8qIE5ldHdvcmtS
VENSZXNvbHZlci5jcHAgKi8sCiAJCQkJNDExMkI1NDgxRjlGRDNBQzAwRTY3ODc1IC8qIE5ldHdv
cmtSVENSZXNvbHZlci5oICovLAogCQkJCTQxMTJCNTQ3MUY5RkQzQUIwMEU2Nzk4NiAvKiBOZXR3
b3JrUlRDUmVzb2x2ZXJDb2NvYS5jcHAgKi8sCkBAIC0xMTI5OSw2ICsxMTMwMiw3IEBACiAJCQkJ
MkQxMUI3QjgyMTI2QTI4MzAwNkY4ODc4IC8qIFVuaWZpZWRTb3VyY2U1Mi5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkyRDExQjdCNzIxMjZBMjgzMDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTUyLW1t
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQxMUI3QkEyMTI2QTI4MzAwNkY4ODc4IC8qIFVuaWZp
ZWRTb3VyY2U1My5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0MTc2OTAxNDIyRkRENDFCMDBCMTU3
NkQgLyogTmV0d29ya1JUQ1Byb3ZpZGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQxMUI3Qjky
MTI2QTI4MzAwNkY4ODc4IC8qIFVuaWZpZWRTb3VyY2U1My1tbS5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTJEMTFCN0JCMjEyNkEyODMwMDZGODg3OCAvKiBVbmlmaWVkU291cmNlNTQtbW0ubW0gaW4g
U291cmNlcyAqLywKIAkJCQkyRDExQjdCQzIxMjZBMjgzMDA2Rjg4NzggLyogVW5pZmllZFNvdXJj
ZTU0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKaW5kZXggYWZl
MjQwODg0YzNjYmFhYTZhZDIzOGJiZTIzZjk1OTMxNTkxOTIxZC4uMDk0YWM3MWY3ZTVlZmZhYjc0
ODVmY2VmY2FlNTQ4OTNkYjNlMDUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCkBAIC00
NCw5ICs0NCw5IEBAIHByaXZhdGU6CiAgICAgfQogfTsKIAotcnRjOjpzY29wZWRfcmVmcHRyPHdl
YnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U+IExpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVQ
ZWVyQ29ubmVjdGlvbih3ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXImIG9ic2VydmVyLCB3
ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpSVENDb25maWd1cmF0aW9uJiYgY29uZmln
dXJhdGlvbikKK3J0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJm
YWNlPiBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlckNvbm5lY3Rpb24od2VicnRjOjpQZWVy
Q29ubmVjdGlvbk9ic2VydmVyJiBvYnNlcnZlciwgcnRjOjpQYWNrZXRTb2NrZXRGYWN0b3J5KiBz
b2NrZXRGYWN0b3J5LCB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpSVENDb25maWd1
cmF0aW9uJiYgY29uZmlndXJhdGlvbikKIHsKLSAgICByZXR1cm4gV2ViQ29yZTo6TGliV2ViUlRD
UHJvdmlkZXI6OmNyZWF0ZVBlZXJDb25uZWN0aW9uKG9ic2VydmVyLCBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5saWJXZWJSVENOZXR3b3JrKCkubW9uaXRvcigpLCBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5saWJXZWJSVENOZXR3b3JrKCkuc29ja2V0RmFjdG9yeSgpLCBXVEZNb3ZlKGNvbmZpZ3Vy
YXRpb24pLCBzdGQ6Om1ha2VfdW5pcXVlPEFzeW5jUmVzb2x2ZXJGYWN0b3J5PigpKTsKKyAgICBy
ZXR1cm4gV2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZVBlZXJDb25uZWN0aW9uKG9i
c2VydmVyLCBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5saWJXZWJSVENOZXR3b3JrKCkubW9uaXRv
cigpLCAqc29ja2V0RmFjdG9yeSwgV1RGTW92ZShjb25maWd1cmF0aW9uKSwgc3RkOjptYWtlX3Vu
aXF1ZTxBc3luY1Jlc29sdmVyRmFjdG9yeT4oKSk7CiB9CiAKIHZvaWQgTGliV2ViUlRDUHJvdmlk
ZXI6OmRpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucygpCkBAIC02NCw2ICs2NCw0NyBAQCB2
b2lkIExpYldlYlJUQ1Byb3ZpZGVyOjpyZWdpc3Rlck1ETlNOYW1lKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgdWludDY0X3QgZG9jdQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldl
YlJUQ05ldHdvcmsoKS5tZG5zUmVnaXN0ZXIoKS5yZWdpc3Rlck1ETlNOYW1lKHNlc3Npb25JRCwg
ZG9jdW1lbnRJZGVudGlmaWVyLCBpcEFkZHJlc3MsIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAor
Y2xhc3MgUlRDU29ja2V0RmFjdG9yeSBmaW5hbCA6IHB1YmxpYyBydGM6OlBhY2tldFNvY2tldEZh
Y3RvcnkgeworcHVibGljOgorICAgIFJUQ1NvY2tldEZhY3RvcnkoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBTdHJpbmcmJiB1c2VyQWdlbnQpCisgICAgICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lv
bklEKQorICAgICAgICAsIG1fdXNlckFnZW50KFdURk1vdmUodXNlckFnZW50KSkKKyAgICB7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIENyZWF0ZVVkcFNv
Y2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQs
IHVpbnQxNl90IG1heFBvcnQpIGZpbmFsCisgICAgeworICAgICAgICByZXR1cm4gZmFjdG9yeSgp
LmNyZWF0ZVVkcFNvY2tldChhZGRyZXNzLCBtaW5Qb3J0LCBtYXhQb3J0KTsKKyAgICB9CisKKyAg
ICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBDcmVhdGVTZXJ2ZXJUY3BTb2NrZXQoY29uc3QgcnRj
OjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQ
b3J0LCBpbnQgb3B0aW9ucykgZmluYWwKKyAgICB7CisgICAgICAgIHJldHVybiBmYWN0b3J5KCku
Y3JlYXRlU2VydmVyVGNwU29ja2V0KGFkZHJlc3MsIG1pblBvcnQsIG1heFBvcnQsIG9wdGlvbnMp
OworICAgIH0KKworICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIENyZWF0ZUNsaWVudFRjcFNv
Y2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgcnRjOjpT
b2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBjb25zdCBydGM6OlByb3h5SW5mbyYsIGNvbnN0
IHN0ZDo6c3RyaW5nJiwgaW50IG9wdGlvbnMpIGZpbmFsCisgICAgeworICAgICAgICByZXR1cm4g
ZmFjdG9yeSgpLmNyZWF0ZUNsaWVudFRjcFNvY2tldChsb2NhbEFkZHJlc3MsIHJlbW90ZUFkZHJl
c3MsIG1fc2Vzc2lvbklELCBTdHJpbmcgeyBtX3VzZXJBZ2VudCB9LCBvcHRpb25zKTsKKyAgICB9
CisKKyAgICBydGM6OkFzeW5jUmVzb2x2ZXJJbnRlcmZhY2UqIENyZWF0ZUFzeW5jUmVzb2x2ZXIo
KSBmaW5hbAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZhY3RvcnkoKS5jcmVhdGVBc3luY1Jlc29s
dmVyKCk7CisgICAgfQorCisgICAgTGliV2ViUlRDU29ja2V0RmFjdG9yeSYgZmFjdG9yeSgpIHsg
cmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ05ldHdvcmsoKS5zb2NrZXRG
YWN0b3J5KCk7IH0KKworcHJpdmF0ZToKKyAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsK
KyAgICBTdHJpbmcgbV91c2VyQWdlbnQ7Cit9OworCitzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpQYWNr
ZXRTb2NrZXRGYWN0b3J5PiBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlU29ja2V0RmFjdG9yeShQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyYmIHVzZXJBZ2VudCkKK3sKKyAgICByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxSVENTb2NrZXRGYWN0b3J5PihzZXNzaW9uSUQsIFdURk1vdmUo
dXNlckFnZW50KSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gVVNF
KExJQldFQlJUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKaW5kZXggYTE0MTcwMGNlNmY0YTE4NmMy
MTY2NjI4YWRiOTBhZjRkOWZlNGU1Ni4uZjY1YTYyOTVlYzkwZTFkMmI3NmZmNDcxMjIyNmQ4NDNj
N2Q5NjRlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKQEAgLTUwLDcgKzUwLDkgQEAgcHVibGlj
OgogICAgIExpYldlYlJUQ1Byb3ZpZGVyKCkgeyBtX3VzZU5ldHdvcmtUaHJlYWRXaXRoU29ja2V0
U2VydmVyID0gZmFsc2U7IH0KIAogcHJpdmF0ZToKLSAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2Vi
cnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gY3JlYXRlUGVlckNvbm5lY3Rpb24od2VicnRj
OjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyJiwgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFj
ZTo6UlRDQ29uZmlndXJhdGlvbiYmKSBmaW5hbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpQ
YWNrZXRTb2NrZXRGYWN0b3J5PiBjcmVhdGVTb2NrZXRGYWN0b3J5KFBBTDo6U2Vzc2lvbklELCBT
dHJpbmcmJiAvKiB1c2VyQWdlbnQgKi8pIGZpbmFsOworCisgICAgcnRjOjpzY29wZWRfcmVmcHRy
PHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U+IGNyZWF0ZVBlZXJDb25uZWN0aW9uKHdl
YnJ0Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZlciYsIHJ0Yzo6UGFja2V0U29ja2V0RmFjdG9yeSos
IHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24mJikgZmlu
YWw7CiAKICAgICB2b2lkIHVucmVnaXN0ZXJNRE5TTmFtZXModWludDY0X3QgZG9jdW1lbnRJZGVu
dGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHJlZ2lzdGVyTUROU05hbWUoUEFMOjpTZXNzaW9uSUQs
IHVpbnQ2NF90IGRvY3VtZW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBpcEFkZHJlc3MsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoTUROU05hbWVPckVycm9yJiYpPiYmKSBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENT
b2NrZXRGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcAppbmRleCBkNzc4ZDU3N2VhOGVmYzFiMzU2ZGYx
ZDdjMDE3ZWNkZjMxODgxMDZhLi5mOGI3ZWQyMjljNGY2ZjJkYzAzNjEzMmNjOTZlNDExZWVjYTU3
MDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
TGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwCkBAIC00OCw3ICs0OCw3
IEBAIHN0YXRpYyBpbmxpbmUgcnRjOjpTb2NrZXRBZGRyZXNzIHByZXBhcmVTb2NrZXRBZGRyZXNz
KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1ydGM6
OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpDcmVhdGVTZXJ2ZXJU
Y3BTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Q
b3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9ucykKK3J0Yzo6QXN5bmNQYWNrZXRTb2Nr
ZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBy
dGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1h
eFBvcnQsIGludCBvcHRpb25zKQogewogICAgIGF1dG8gc29ja2V0ID0gc3RkOjptYWtlX3VuaXF1
ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCArK3NfdW5pcXVlU29ja2V0SWRlbnRpZmllciwgTGli
V2ViUlRDU29ja2V0OjpUeXBlOjpTZXJ2ZXJUQ1AsIGFkZHJlc3MsIHJ0Yzo6U29ja2V0QWRkcmVz
cygpKTsKICAgICBtX3NvY2tldHMuc2V0KHNvY2tldC0+aWRlbnRpZmllcigpLCBzb2NrZXQuZ2V0
KCkpOwpAQCAtNjQsNyArNjQsNyBAQCBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENT
b2NrZXRGYWN0b3J5OjpDcmVhdGVTZXJ2ZXJUY3BTb2NrZXQoY29uc3QgcnRjOgogICAgIHJldHVy
biBzb2NrZXQucmVsZWFzZSgpOwogfQogCi1ydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJS
VENTb2NrZXRGYWN0b3J5OjpDcmVhdGVVZHBTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNz
JiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQorcnRjOjpBc3lu
Y1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlVWRwU29ja2V0KGNv
bnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2
X3QgbWF4UG9ydCkKIHsKICAgICBhdXRvIHNvY2tldCA9IHN0ZDo6bWFrZV91bmlxdWU8TGliV2Vi
UlRDU29ja2V0PigqdGhpcywgKytzX3VuaXF1ZVNvY2tldElkZW50aWZpZXIsIExpYldlYlJUQ1Nv
Y2tldDo6VHlwZTo6VURQLCBhZGRyZXNzLCBydGM6OlNvY2tldEFkZHJlc3MoKSk7CiAgICAgbV9z
b2NrZXRzLnNldChzb2NrZXQtPmlkZW50aWZpZXIoKSwgc29ja2V0LmdldCgpKTsKQEAgLTc4LDE0
ICs3OCwxNCBAQCBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5
OjpDcmVhdGVVZHBTb2NrZXQoY29uc3QgcnRjOjpTb2NrZQogICAgIHJldHVybiBzb2NrZXQucmVs
ZWFzZSgpOwogfQogCi1ydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0
b3J5OjpDcmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2Nh
bEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgY29uc3Qg
cnRjOjpQcm94eUluZm8mLCBjb25zdCBzdGQ6OnN0cmluZyYsIGludCBvcHRpb25zKQorcnRjOjpB
c3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlQ2xpZW50VGNw
U29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6
OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
U3RyaW5nJiYgdXNlckFnZW50LCBpbnQgb3B0aW9ucykKIHsKICAgICBhdXRvIHNvY2tldCA9IHN0
ZDo6bWFrZV91bmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgKytzX3VuaXF1ZVNvY2tldElk
ZW50aWZpZXIsIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6Q2xpZW50VENQLCBsb2NhbEFkZHJlc3Ms
IHJlbW90ZUFkZHJlc3MpOwogICAgIHNvY2tldC0+c2V0U3RhdGUoTGliV2ViUlRDU29ja2V0OjpT
VEFURV9DT05ORUNUSU5HKTsKICAgICBtX3NvY2tldHMuc2V0KHNvY2tldC0+aWRlbnRpZmllcigp
LCBzb2NrZXQuZ2V0KCkpOwogCi0gICAgY2FsbE9uTWFpblRocmVhZChbaWRlbnRpZmllciA9IHNv
Y2tldC0+aWRlbnRpZmllcigpLCBsb2NhbEFkZHJlc3MgPSBwcmVwYXJlU29ja2V0QWRkcmVzcyhs
b2NhbEFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKSwgcmVtb3RlQWRk
cmVzcyA9IHByZXBhcmVTb2NrZXRBZGRyZXNzKHJlbW90ZUFkZHJlc3MsIG1fZGlzYWJsZU5vbkxv
Y2FsaG9zdENvbm5lY3Rpb25zKSwgb3B0aW9uc10oKSB7Ci0gICAgICAgIGlmICghV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlv
bigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlQ2xpZW50VENQU29j
a2V0KGlkZW50aWZpZXIsIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MobG9jYWxBZGRyZXNzKSwg
UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhyZW1vdGVBZGRyZXNzKSwgb3B0aW9ucyksIDApKSB7
CisgICAgY2FsbE9uTWFpblRocmVhZChbaWRlbnRpZmllciA9IHNvY2tldC0+aWRlbnRpZmllcigp
LCBsb2NhbEFkZHJlc3MgPSBwcmVwYXJlU29ja2V0QWRkcmVzcyhsb2NhbEFkZHJlc3MsIG1fZGlz
YWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKSwgcmVtb3RlQWRkcmVzcyA9IHByZXBhcmVTb2Nr
ZXRBZGRyZXNzKHJlbW90ZUFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25z
KSwgc2Vzc2lvbklELCB1c2VyQWdlbnQgPSBXVEZNb3ZlKHVzZXJBZ2VudCkuaXNvbGF0ZWRDb3B5
KCksIG9wdGlvbnNdKCkgeworICAgICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVu
c3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2Vz
OjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZUNsaWVudFRDUFNvY2tldChpZGVudGlmaWVyLCBS
VENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGxvY2FsQWRkcmVzcyksIFJUQ05ldHdvcms6OlNvY2tl
dEFkZHJlc3MocmVtb3RlQWRkcmVzcyksIHNlc3Npb25JRCwgdXNlckFnZW50LCBvcHRpb25zKSwg
MCkpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBTZXQgZXJyb3IgYmFjayB0byBzb2NrZXQKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMTE1LDcgKzExNSw3IEBAIHZvaWQgTGli
V2ViUlRDU29ja2V0RmFjdG9yeTo6ZGV0YWNoKExpYldlYlJUQ1NvY2tldCYgc29ja2V0KQogICAg
IG1fc29ja2V0cy5yZW1vdmUoc29ja2V0LmlkZW50aWZpZXIoKSk7CiB9CiAKLXJ0Yzo6QXN5bmNS
ZXNvbHZlckludGVyZmFjZSogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Q3JlYXRlQXN5bmNSZXNv
bHZlcigpCitydGM6OkFzeW5jUmVzb2x2ZXJJbnRlcmZhY2UqIExpYldlYlJUQ1NvY2tldEZhY3Rv
cnk6OmNyZWF0ZUFzeW5jUmVzb2x2ZXIoKQogewogICAgIGF1dG8gcmVzb2x2ZXIgPSBzdGQ6Om1h
a2VfdW5pcXVlPExpYldlYlJUQ1Jlc29sdmVyPigrK3NfdW5pcXVlUmVzb2x2ZXJJZGVudGlmaWVy
KTsKICAgICBhdXRvKiByZXNvbHZlclBvaW50ZXIgPSByZXNvbHZlci5nZXQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2Nr
ZXRGYWN0b3J5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGli
V2ViUlRDU29ja2V0RmFjdG9yeS5oCmluZGV4IGYwYjQxOTU3MTNmYjc1NWEwMDQ5NzM5YTYyNWEy
MDFjYzQ5MmVjMWIuLjI0NDY2MDRjMTUwMDE4ZWY2MTQ0NGRhNGU0YWI2YmQ1ZTdiNzQyYTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJS
VENTb2NrZXRGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaApAQCAtMzYsNyArMzYsNyBAQAogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgTGliV2ViUlRDU29ja2V0RmFjdG9yeSBmaW5hbCA6IHB1
YmxpYyBydGM6OlBhY2tldFNvY2tldEZhY3RvcnkgeworY2xhc3MgTGliV2ViUlRDU29ja2V0RmFj
dG9yeSB7CiBwdWJsaWM6CiAgICAgTGliV2ViUlRDU29ja2V0RmFjdG9yeSgpIHsgfQogCkBAIC01
MSwxMyArNTEsMTIgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaXNhYmxlTm9uTG9jYWxob3N0Q29u
bmVjdGlvbnMoKSB7IG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zID0gdHJ1ZTsgfQog
Ci0gICAgcnRjOjpBc3luY1Jlc29sdmVySW50ZXJmYWNlKiBjcmVhdGVBc3luY1Jlc29sdmVyKCkg
eyByZXR1cm4gQ3JlYXRlQXN5bmNSZXNvbHZlcigpOyB9CisgICAgcnRjOjpBc3luY1BhY2tldFNv
Y2tldCogY3JlYXRlVWRwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90
IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQpOworICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQq
IGNyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZf
dCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9ucyk7CisgICAgcnRjOjpBc3lu
Y1BhY2tldFNvY2tldCogY3JlYXRlQ2xpZW50VGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRk
cmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJl
c3MsIFBBTDo6U2Vzc2lvbklELCBTdHJpbmcmJiB1c2VyQWdlbnQsIGludCBvcHRpb25zKTsKKyAg
ICBydGM6OkFzeW5jUmVzb2x2ZXJJbnRlcmZhY2UqIGNyZWF0ZUFzeW5jUmVzb2x2ZXIoKTsKIAog
cHJpdmF0ZToKLSAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBDcmVhdGVVZHBTb2NrZXQoY29u
c3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9y
dCkgZmluYWw7Ci0gICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogQ3JlYXRlU2VydmVyVGNwU29j
a2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90IG1pbl9wb3J0LCB1aW50MTZf
dCBtYXhfcG9ydCwgaW50IG9wdGlvbnMpIGZpbmFsOwotICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2Nr
ZXQqIENyZWF0ZUNsaWVudFRjcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2Fs
QWRkcmVzcywgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBjb25zdCBy
dGM6OlByb3h5SW5mbyYsIGNvbnN0IHN0ZDo6c3RyaW5nJiwgaW50IG9wdGlvbnMpOwotICAgIHJ0
Yzo6QXN5bmNSZXNvbHZlckludGVyZmFjZSogQ3JlYXRlQXN5bmNSZXNvbHZlcigpIGZpbmFsOwog
CiAgICAgLy8gV2UgY2Fubm90IG93biBzb2NrZXRzLCBjbGllbnRzIG9mIHRoZSBmYWN0b3J5IGFy
ZSByZXNwb25zaWJsZSB0byBmcmVlIHRoZW0uCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgTGliV2Vi
UlRDU29ja2V0Kj4gbV9zb2NrZXRzOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376053</attachid>
            <date>2019-08-12 01:35:51 -0700</date>
            <delta_ts>2019-08-12 02:38:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200583-20190812103549.patch</filename>
            <type>text/plain</type>
            <size>34726</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCAxMzQzNWFkYmU0MTUyNTFhN2ZmNjhiODYzYjJlNDkwMWUwMmM3ZjllLi40NmIy
ZGRjMWM2NmYxZmFjYTRiMzYxNDkxMjk5ZmU5Njc0MGQxZmE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0wOC0xMiAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlciBBZ2VudCBhbmQgU2Vzc2lv
bklEIHNob3VsZCBiZSBnaXZlbiB0byBOZXR3b3JrUlRDUHJvdmlkZXIgdG8gc2V0IHVwIHRoZSBj
b3JyZWN0IHByb3h5IGluZm9ybWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDA1ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBFeHBvcnQgb2Ygc29tZSBzeW1ib2xzLgorCisgICAgICAgICogQ29u
ZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHA6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
bGlid2VicnRjLmlPU3NpbS5leHA6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvbGlid2VicnRj
Lm1hYy5leHA6CisKIDIwMTktMDgtMDIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBidWlsZCBjaGVjayBmb3IgbGlid2VicnRjIE9iamVjdGl2ZUMgbmFt
ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBlZWQwYmU2N2EyMGVmYzhlYjQzYTFmNjQwOGQzYWJhZDFmN2U1MDM3
Li5iNjUzYTUzMjM0MmEwZmU4YjYxZGY0YTkwY2Y5ZTk5YjcyMDcxYmU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTktMDgtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgorCisgICAgICAgIFVzZXIgQWdlbnQgYW5kIFNlc3Npb25JRCBzaG91bGQgYmUgZ2l2ZW4g
dG8gTmV0d29ya1JUQ1Byb3ZpZGVyIHRvIHNldCB1cCB0aGUgY29ycmVjdCBwcm94eSBpbmZvcm1h
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAw
NTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNl
IGEgc3BlY2lmaWMgc29ja2V0IGZhY3RvcnkgdGhhdCBpcyBzcGVjaWZpYyB0byB0aGUgdXNlciBh
Z2VudCBhbmQgc2Vzc2lvbiBJRC4KKyAgICAgICAgVGhpcyBmYWN0b3J5IGlzIHN0b3JlZCBpbiB0
aGUgbWVkaWEgZW5kcG9pbnQuCisgICAgICAgIE5vdCB0ZXN0YWJsZSB3aXRob3V0IHByb3h5IGlu
ZnJhc3RydWN0dXJlLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENN
ZWRpYUVuZHBvaW50OjpzZXRDb25maWd1cmF0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50Lmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVQZWVyQ29ubmVjdGlvbik6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVy
Lmg6CisKIDIwMTktMDgtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbW92ZSBJREItc3BlY2lmaWMgcXVvdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYjJmMDg2YzQ0NGE1
YmJiNThhZTIzY2I3NGU3ZWMwMTM1ZDkzOGE0MC4uYjQ2MzhlMzAwMzMxMjBkZTU4YjY5YTJiNDlm
ZDRjZDQ3NjU2M2Q3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxOS0wOC0xMiAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlciBBZ2VudCBhbmQg
U2Vzc2lvbklEIHNob3VsZCBiZSBnaXZlbiB0byBOZXR3b3JrUlRDUHJvdmlkZXIgdG8gc2V0IHVw
IHRoZSBjb3JyZWN0IHByb3h5IGluZm9ybWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA1ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBQYXNzIHNlc3Npb24gaWQgYW5kIHVzZXIgYWdlbnQgd2hl
bmV2ZXIgY3JlYXRpbmcgYSBUQ1AgY2xpZW50IHNvY2tldC4KKyAgICAgICAgVXNlIG9mIHRoaXMg
aW5mb3JtYXRpb24gdG8gZ2V0IHRoZSBwcm94eSBpbmZvcm1hdGlvbiBmcm9tIE5ldHdvcmtTZXNz
aW9uIGFuZCBwYXNzIGl0IHRvIGxpYndlYnJ0YyBzb2NrZXQgY3JlYXRpb24uCisKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmg6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6cHJveHlJbmZvRnJvbVNlc3Npb24pOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZUNsaWVudFRDUFNvY2tldCk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMu
aW46CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tbTogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6cHJveHlJbmZvRnJvbVNlc3Npb24p
OgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlckNvbm5l
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlU29ja2V0
RmFjdG9yeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQ
cm92aWRlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRD
U29ja2V0RmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rv
cnk6OmNyZWF0ZVNlcnZlclRjcFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1Nv
Y2tldEZhY3Rvcnk6OmNyZWF0ZVVkcFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJU
Q1NvY2tldEZhY3Rvcnk6OmNyZWF0ZUNsaWVudFRjcFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6
OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZUFzeW5jUmVzb2x2ZXIpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oOgorCiAy
MDE5LTA4LTEyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZW1vdmUgSURCLXNwZWNpZmljIHF1b3RhCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHAgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHAKaW5kZXggNjQ2
ZDhkNGNiZGUwZTYyZmJlMjdjZjlhNDg2YjM0MzE0YzNhNzUyMS4uOTIwNTI5NmQ1N2Y4MmRmMGI0
ODA2Yzg1MTQ2MDU4ZDgwMjE3ZmEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cApAQCAtMjQ4
LDMgKzI0OCw4IEBAIF9fWk42d2VicnRjMTZSdHBSdHhQYXJhbWV0ZXJzQzFFUktTMF8KIF9fWk42
d2VicnRjMTZSdHBSdHhQYXJhbWV0ZXJzRDFFdgogX19aTjNydGMxMExvZ01lc3NhZ2UxMlNldExv
Z091dHB1dEVOU18xNUxvZ2dpbmdTZXZlcml0eUVQRnZTMV9QS2NFCiBfX1pONndlYnJ0YzEzQ3J5
cHRvT3B0aW9uczVOb0djbUV2CitfX1pUVk4zcnRjMjNJbnNlY3VyZUNyeXB0U3RyaW5nSW1wbEUK
K19fWk4zcnRjMTFDcnlwdFN0cmluZ0MxRVJLTlNfMTVDcnlwdFN0cmluZ0ltcGxFCitfX1pOM3J0
YzEzU29ja2V0QWRkcmVzc0MxRVJLTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzFfMTFjaGFyX3Ry
YWl0c0ljRUVOUzFfOWFsbG9jYXRvckljRUVFRWkKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0QxRXYK
K19fWk4zcnRjMTFDcnlwdFN0cmluZ0MxRVJLUzBfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5leHAgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5l
eHAKaW5kZXggOTgwYzNmNDk1MTM5ZTlkODZkMDNhNWVjMDZjZjk4YTg5YzI3NDA3My4uNmYxMzJj
YmMwZTZmNmIzOGJhNWMxODMyZWUzNmJhMTRiMzE1ODA5NCAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1NzaW0uZXhwCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMu
aU9Tc2ltLmV4cApAQCAtMjQ5LDMgKzI0OSw4IEBAIF9fWk42d2VicnRjMTZSdHBSdHhQYXJhbWV0
ZXJzQzFFUktTMF8KIF9fWk42d2VicnRjMTZSdHBSdHhQYXJhbWV0ZXJzRDFFdgogX19aTjNydGMx
MExvZ01lc3NhZ2UxMlNldExvZ091dHB1dEVOU18xNUxvZ2dpbmdTZXZlcml0eUVQRnZTMV9QS2NF
CiBfX1pONndlYnJ0YzEzQ3J5cHRvT3B0aW9uczVOb0djbUV2CitfX1pUVk4zcnRjMjNJbnNlY3Vy
ZUNyeXB0U3RyaW5nSW1wbEUKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0MxRVJLTlNfMTVDcnlwdFN0
cmluZ0ltcGxFCitfX1pOM3J0YzEzU29ja2V0QWRkcmVzc0MxRVJLTlN0M19fMTEyYmFzaWNfc3Ry
aW5nSWNOUzFfMTFjaGFyX3RyYWl0c0ljRUVOUzFfOWFsbG9jYXRvckljRUVFRWkKK19fWk4zcnRj
MTFDcnlwdFN0cmluZ0QxRXYKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0MxRVJLUzBfCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRj
Lm1hYy5leHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGli
d2VicnRjLm1hYy5leHAKaW5kZXggOTgwYzNmNDk1MTM5ZTlkODZkMDNhNWVjMDZjZjk4YTg5YzI3
NDA3My4uNmYxMzJjYmMwZTZmNmIzOGJhNWMxODMyZWUzNmJhMTRiMzE1ODA5NCAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5t
YWMuZXhwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9s
aWJ3ZWJydGMubWFjLmV4cApAQCAtMjQ5LDMgKzI0OSw4IEBAIF9fWk42d2VicnRjMTZSdHBSdHhQ
YXJhbWV0ZXJzQzFFUktTMF8KIF9fWk42d2VicnRjMTZSdHBSdHhQYXJhbWV0ZXJzRDFFdgogX19a
TjNydGMxMExvZ01lc3NhZ2UxMlNldExvZ091dHB1dEVOU18xNUxvZ2dpbmdTZXZlcml0eUVQRnZT
MV9QS2NFCiBfX1pONndlYnJ0YzEzQ3J5cHRvT3B0aW9uczVOb0djbUV2CitfX1pUVk4zcnRjMjNJ
bnNlY3VyZUNyeXB0U3RyaW5nSW1wbEUKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0MxRVJLTlNfMTVD
cnlwdFN0cmluZ0ltcGxFCitfX1pOM3J0YzEzU29ja2V0QWRkcmVzc0MxRVJLTlN0M19fMTEyYmFz
aWNfc3RyaW5nSWNOUzFfMTFjaGFyX3RyYWl0c0ljRUVOUzFfOWFsbG9jYXRvckljRUVFRWkKK19f
Wk4zcnRjMTFDcnlwdFN0cmluZ0QxRXYKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0MxRVJLUzBfCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9M
aWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCmluZGV4IDQ1YmY0YTkz
ZDI1MDBmZTg5YTNlYmU3N2VjMWNkOGVkZTEwNWEyZjkuLmRlZjFmOTFlZWU5ZWQ2ZWM3OGQxM2M2
OWVjNDM0OGYwYWE2OGQzNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5k
cG9pbnQuY3BwCkBAIC04Niw3ICs4NiwxMSBAQCBib29sIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6
OnNldENvbmZpZ3VyYXRpb24oTGliV2ViUlRDUHJvdmlkZXImIGNsaWVudCwgd2VicnRjOgogICAg
ICAgICBjb25maWd1cmF0aW9uLnNkcF9zZW1hbnRpY3MgPSB3ZWJydGM6OlNkcFNlbWFudGljczo6
a1VuaWZpZWRQbGFuOwogCiAgICAgaWYgKCFtX2JhY2tlbmQpIHsKLSAgICAgICAgbV9iYWNrZW5k
ID0gY2xpZW50LmNyZWF0ZVBlZXJDb25uZWN0aW9uKCp0aGlzLCBXVEZNb3ZlKGNvbmZpZ3VyYXRp
b24pKTsKKyAgICAgICAgaWYgKCFtX3J0Y1NvY2tldEZhY3RvcnkpIHsKKyAgICAgICAgICAgIGF1
dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX3BlZXJDb25uZWN0aW9uQmFja2Vu
ZC5jb25uZWN0aW9uKCkuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICAgICAgICAgIG1f
cnRjU29ja2V0RmFjdG9yeSA9IGNsaWVudC5jcmVhdGVTb2NrZXRGYWN0b3J5KGRvY3VtZW50LnNl
c3Npb25JRCgpLCBkb2N1bWVudC51c2VyQWdlbnQoZG9jdW1lbnQudXJsKCkpKTsKKyAgICAgICAg
fQorICAgICAgICBtX2JhY2tlbmQgPSBjbGllbnQuY3JlYXRlUGVlckNvbm5lY3Rpb24oKnRoaXMs
IG1fcnRjU29ja2V0RmFjdG9yeS5nZXQoKSwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CiAgICAg
ICAgIHJldHVybiAhIW1fYmFja2VuZDsKICAgICB9CiAgICAgYXV0byBvbGRDb25maWd1cmF0aW9u
ID0gbV9iYWNrZW5kLT5HZXRDb25maWd1cmF0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENNZWRpYUVuZHBvaW50LmgKaW5kZXggNjJiYjQ3NmEwZTNiMjFmNmIzOWUyZGFmMmIyNmJiZTFm
Y2ZlZGY0Zi4uY2E5ZGY4NmQ3OGM3MmVlYTIyYTAyOWU5YzM5ZmIxMWEzMGUyMDg5MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDTWVkaWFFbmRwb2ludC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuaApAQCAtMTk4LDYgKzE5OCw3IEBA
IHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFN0cmluZywgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0
Yzo6TWVkaWFTdHJlYW1JbnRlcmZhY2U+PiBtX2xvY2FsU3RyZWFtczsKIAorICAgIHN0ZDo6dW5p
cXVlX3B0cjxydGM6OlBhY2tldFNvY2tldEZhY3Rvcnk+IG1fcnRjU29ja2V0RmFjdG9yeTsKICNp
ZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBpbnQ2NF90IG1fc3RhdHNGaXJzdERlbGl2ZXJl
ZFRpbWVzdGFtcCB7IDAgfTsKICAgICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCmluZGV4IDNhYTkwY2ZhNDZhN2VjMDBlNzU2
ZGEzZmJlY2Q1MmE2NDNjNzJlY2UuLjIwN2FiNzhhOWEyYmJlNDBhMGVkNGRhNjk1NjlhZWRiMTIy
OTllMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcApAQCAtMjgxLDcg
KzI4MSw3IEBAIHZvaWQgTGliV2ViUlRDUHJvdmlkZXI6OmVuYWJsZUVudW1lcmF0aW5nQWxsTmV0
d29ya0ludGVyZmFjZXMoKQogICAgIG1fZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJm
YWNlcyA9IHRydWU7CiB9CiAKLXJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0
aW9uSW50ZXJmYWNlPiBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlckNvbm5lY3Rpb24od2Vi
cnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyJiBvYnNlcnZlciwgd2VicnRjOjpQZWVyQ29ubmVj
dGlvbkludGVyZmFjZTo6UlRDQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCitydGM6OnNj
b3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gTGliV2ViUlRDUHJv
dmlkZXI6OmNyZWF0ZVBlZXJDb25uZWN0aW9uKHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZl
ciYgb2JzZXJ2ZXIsIHJ0Yzo6UGFja2V0U29ja2V0RmFjdG9yeSosIHdlYnJ0Yzo6UGVlckNvbm5l
Y3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogewogICAg
IC8vIERlZmF1bHQgV0sxIGltcGxlbWVudGF0aW9uLgogICAgIEFTU0VSVChtX3VzZU5ldHdvcmtU
aHJlYWRXaXRoU29ja2V0U2VydmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgK
aW5kZXggMjQ4NTcyZjM2Y2YxNjcyMmQ1NDg1NTJjOGU1ZWYxZTNiNDMyOGU4OC4uYmRmMDkwMDQw
YzkwNjU3ZjQ5ZjBjZTRhZTI4MDc3MzhhMWU4YmU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q1Byb3ZpZGVyLmgKQEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgogICAgIH0KIAogI2lmIFVTRShM
SUJXRUJSVEMpCi0gICAgdmlydHVhbCBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29u
bmVjdGlvbkludGVyZmFjZT4gY3JlYXRlUGVlckNvbm5lY3Rpb24od2VicnRjOjpQZWVyQ29ubmVj
dGlvbk9ic2VydmVyJiwgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6UlRDQ29uZmln
dXJhdGlvbiYmKTsKKyAgICB2aXJ0dWFsIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJD
b25uZWN0aW9uSW50ZXJmYWNlPiBjcmVhdGVQZWVyQ29ubmVjdGlvbih3ZWJydGM6OlBlZXJDb25u
ZWN0aW9uT2JzZXJ2ZXImLCBydGM6OlBhY2tldFNvY2tldEZhY3RvcnkqLCB3ZWJydGM6OlBlZXJD
b25uZWN0aW9uSW50ZXJmYWNlOjpSVENDb25maWd1cmF0aW9uJiYpOwogCiAgICAgd2VicnRjOjpQ
ZWVyQ29ubmVjdGlvbkZhY3RvcnlJbnRlcmZhY2UqIGZhY3RvcnkoKTsKIApAQCAtMTE4LDYgKzEx
OCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEVuYWJsZUxvZ2dpbmcoYm9vbCk7CiAgICAgdm9p
ZCBzZXRFbmFibGVXZWJSVENFbmNyeXB0aW9uKGJvb2wpOwogCisgICAgdmlydHVhbCBzdGQ6OnVu
aXF1ZV9wdHI8cnRjOjpQYWNrZXRTb2NrZXRGYWN0b3J5PiBjcmVhdGVTb2NrZXRGYWN0b3J5KFBB
TDo6U2Vzc2lvbklELCBTdHJpbmcmJiAvKiB1c2VyQWdlbnQgKi8pIHsgcmV0dXJuIG51bGxwdHI7
IH0KKwogcHJvdGVjdGVkOgogICAgIExpYldlYlJUQ1Byb3ZpZGVyKCkgPSBkZWZhdWx0OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNz
aW9uQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nl
c3Npb25Db2NvYS5oCmluZGV4IDRiYWIyM2VhODUzY2U4YWE3MmUzOGRkZmE2Zjg1OGE1MTViZDkw
YjIuLjQ3NGE0NDE1N2Q0YmFjYzRjZWI3YTg4NDIyNzI2Y2YxYjlmYjUxNzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25D
b2NvYS5oCkBAIC04MSw2ICs4MSw4IEBAIHB1YmxpYzoKICAgICBib29sIGFsbExvYWRzQmxvY2tl
ZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcoKSBjb25zdCB7IHJldHVy
biBtX2FsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3Rp
bmc7IH0KICAgICBETUZXZWJzaXRlUG9saWN5TW9uaXRvciAqZGV2aWNlTWFuYWdlbWVudFBvbGlj
eU1vbml0b3IoKTsKIAorICAgIENGRGljdGlvbmFyeVJlZiBwcm94eUNvbmZpZ3VyYXRpb24oKSBj
b25zdCB7IHJldHVybiBtX3Byb3h5Q29uZmlndXJhdGlvbi5nZXQoKTsgfQorCiBwcml2YXRlOgog
ICAgIHZvaWQgaW52YWxpZGF0ZUFuZENhbmNlbCgpIG92ZXJyaWRlOwogICAgIHZvaWQgY2xlYXJD
cmVkZW50aWFscygpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKaW5kZXggMTZiN2ZhZTE5
ZjYwYmY4MTM5ODQxMzU5YmQ2ODdjNjRlNDkzMWY0Ni4uYzQ5OTAzNzA3MzhlMjdmMWM4Y2NhZThm
MTQ2OWRlZmY2MzAzZWMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCkBAIC0xMjksMTAgKzEyOSwy
MiBAQCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlU2VydmVyVENQU29ja2V0KHVpbnQ2
NF90IGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldAogICAgIH0pOwogfQogCi12b2lkIE5ldHdvcmtS
VENQcm92aWRlcjo6Y3JlYXRlQ2xpZW50VENQU29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIGNv
bnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgUlRDTmV0
d29yazo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgaW50IG9wdGlvbnMpCisjaWYgIVBM
QVRGT1JNKENPQ09BKQorcnRjOjpQcm94eUluZm8gTmV0d29ya1JUQ1Byb3ZpZGVyOjpwcm94eUlu
Zm9Gcm9tU2Vzc2lvbihOZXR3b3JrU2Vzc2lvbiYpCiB7Ci0gICAgY2FsbE9uUlRDTmV0d29ya1Ro
cmVhZChbdGhpcywgaWRlbnRpZmllciwgbG9jYWxBZGRyZXNzID0gUlRDTmV0d29yazo6aXNvbGF0
ZWRDb3B5KGxvY2FsQWRkcmVzcy52YWx1ZSksIHJlbW90ZUFkZHJlc3MgPSBSVENOZXR3b3JrOjpp
c29sYXRlZENvcHkocmVtb3RlQWRkcmVzcy52YWx1ZSksIG9wdGlvbnNdKCkgewotICAgICAgICBz
dGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4gc29ja2V0KG1fcGFja2V0U29j
a2V0RmFjdG9yeS0+Q3JlYXRlQ2xpZW50VGNwU29ja2V0KGxvY2FsQWRkcmVzcywgcmVtb3RlQWRk
cmVzcywgeyB9LCB7IH0sIG9wdGlvbnMpKTsKKyAgICByZXR1cm4geyB9OworfQorI2VuZGlmCisK
K3ZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BTb2NrZXQodWludDY0X3Qg
aWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNz
LCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyYmIHVzZXJBZ2VudCwgaW50IG9wdGlvbnMpCit7Cisg
ICAgYXV0byogc2Vzc2lvbiA9IG1fY29ubmVjdGlvbi0+bmV0d29ya1Byb2Nlc3MoKS5uZXR3b3Jr
U2Vzc2lvbihzZXNzaW9uSUQpOworICAgIGlmICghc2Vzc2lvbikgeworICAgICAgICBtX2Nvbm5l
Y3Rpb24tPmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpXZWJSVENTb2NrZXQ6OlNpZ25hbENs
b3NlKDEpLCBpZGVudGlmaWVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjYWxsT25S
VENOZXR3b3JrVGhyZWFkKFt0aGlzLCBpZGVudGlmaWVyLCBsb2NhbEFkZHJlc3MgPSBSVENOZXR3
b3JrOjppc29sYXRlZENvcHkobG9jYWxBZGRyZXNzLnZhbHVlKSwgcmVtb3RlQWRkcmVzcyA9IFJU
Q05ldHdvcms6Omlzb2xhdGVkQ29weShyZW1vdGVBZGRyZXNzLnZhbHVlKSwgcHJveHlJbmZvID0g
cHJveHlJbmZvRnJvbVNlc3Npb24oKnNlc3Npb24pLCB1c2VyQWdlbnQgPSBXVEZNb3ZlKHVzZXJB
Z2VudCkuaXNvbGF0ZWRDb3B5KCksIG9wdGlvbnNdKCkgeworICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4gc29ja2V0KG1fcGFja2V0U29ja2V0RmFjdG9yeS0+
Q3JlYXRlQ2xpZW50VGNwU29ja2V0KGxvY2FsQWRkcmVzcywgcmVtb3RlQWRkcmVzcywgcHJveHlJ
bmZvLCB1c2VyQWdlbnQudXRmOCgpLmRhdGEoKSwgb3B0aW9ucykpOwogICAgICAgICBjcmVhdGVT
b2NrZXQoaWRlbnRpZmllciwgV1RGTW92ZShzb2NrZXQpLCBMaWJXZWJSVENTb2NrZXRDbGllbnQ6
OlR5cGU6OkNsaWVudFRDUCk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oCmluZGV4IGM2ZTg2
NzJkYmQwNzhkODczNDVmMmYwY2QyMmZjMzkzMGU3ZjE5ZGYuLjM5ZTE0NTM4MTliYmVlMDA1M2Vh
YzA3MTlmYzNlNTY2ZTlhNmM4MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSAiTmV0d29ya1JUQ01vbml0b3IuaCIKICNpbmNsdWRlICJSVENOZXR3b3JrLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENNYWNyb3MuaD4KKyNpbmNsdWRlIDxwYWwvU2Vz
c2lvbklELmg+CiAjaW5jbHVkZSA8d2VicnRjL3AycC9iYXNlL2Jhc2ljcGFja2V0c29ja2V0ZmFj
dG9yeS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9ydGNfYmFzZS90aGlyZF9wYXJ0eS9zaWdzbG90L3Np
Z3Nsb3QuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNDcsNiArNDgsNyBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIGNsYXNzIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogY2xh
c3MgTmV0d29ya1JUQ1Jlc29sdmVyOwogY2xhc3MgTmV0d29ya1JUQ1NvY2tldDsKK2NsYXNzIE5l
dHdvcmtTZXNzaW9uOwogCiBjbGFzcyBOZXR3b3JrUlRDUHJvdmlkZXIgOiBwdWJsaWMgVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8TmV0d29ya1JUQ1Byb3ZpZGVyPiwgcHVibGljIHJ0Yzo6TWVzc2FnZUhh
bmRsZXIgewogcHVibGljOgpAQCAtNzUsNyArNzcsNyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0
IE5ldHdvcmtSVENQcm92aWRlcihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYpOwogCiAg
ICAgdm9pZCBjcmVhdGVVRFBTb2NrZXQodWludDY0X3QsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tl
dEFkZHJlc3MmLCB1aW50MTZfdCwgdWludDE2X3QpOwotICAgIHZvaWQgY3JlYXRlQ2xpZW50VENQ
U29ja2V0KHVpbnQ2NF90LCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgY29uc3Qg
UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIGludCk7CisgICAgdm9pZCBjcmVhdGVDbGllbnRU
Q1BTb2NrZXQodWludDY0X3QsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCBjb25z
dCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgUEFMOjpTZXNzaW9uSUQsIFN0cmluZyYmIHVz
ZXJBZ2VudCwgaW50KTsKICAgICB2b2lkIGNyZWF0ZVNlcnZlclRDUFNvY2tldCh1aW50NjRfdCwg
Y29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQx
Nl90IG1heFBvcnQsIGludCk7CiAgICAgdm9pZCB3cmFwTmV3VENQQ29ubmVjdGlvbih1aW50NjRf
dCBpZGVudGlmaWVyLCB1aW50NjRfdCBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllcik7CiAK
QEAgLTg4LDYgKzkwLDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgT25NZXNzYWdlKHJ0Yzo6TWVz
c2FnZSopOwogCisgICAgc3RhdGljIHJ0Yzo6UHJveHlJbmZvIHByb3h5SW5mb0Zyb21TZXNzaW9u
KE5ldHdvcmtTZXNzaW9uJik7CisKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnVuaXF1ZV9w
dHI8TmV0d29ya1JUQ1Jlc29sdmVyPj4gbV9yZXNvbHZlcnM7CiAgICAgSGFzaE1hcDx1aW50NjRf
dCwgc3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ1NvY2tldENsaWVudD4+IG1fc29ja2V0czsKICAg
ICBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyogbV9jb25uZWN0aW9uOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVy
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29y
a1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluCmluZGV4IDQ4OTE0YzM3ZjVlOTU1YWNmMzFjOGE3ZjBl
NjY2MjBlNTJhZmNmNTEuLmI0MTU1Mzc5ZGQ4ZjQ2ZjdlODY4ZmNjZjkzNGI1ODQ5NGZkMTYwMjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtS
VENQcm92aWRlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMuaW4KQEAgLTI1LDcgKzI1LDcgQEAK
IG1lc3NhZ2VzIC0+IE5ldHdvcmtSVENQcm92aWRlciB7CiAgICAgQ3JlYXRlVURQU29ja2V0KGlu
dCBpZGVudGlmaWVyLCBXZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgbG9jYWxBZGRy
ZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQogICAgIENyZWF0ZVNlcnZl
clRDUFNvY2tldChpbnQgaWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRy
ZXNzIGxvY2FsQWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50
IG9wdGlvbnMpCi0gICAgQ3JlYXRlQ2xpZW50VENQU29ja2V0KGludCBpZGVudGlmaWVyLCBXZWJL
aXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgbG9jYWxBZGRyZXNzLCBXZWJLaXQ6OlJUQ05l
dHdvcms6OlNvY2tldEFkZHJlc3MgcmVtb3RlQWRkcmVzcywgaW50IG9wdGlvbnMpCisgICAgQ3Jl
YXRlQ2xpZW50VENQU29ja2V0KGludCBpZGVudGlmaWVyLCBXZWJLaXQ6OlJUQ05ldHdvcms6OlNv
Y2tldEFkZHJlc3MgbG9jYWxBZGRyZXNzLCBXZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJl
c3MgcmVtb3RlQWRkcmVzcywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgdXNlckFn
ZW50LCBpbnQgb3B0aW9ucykKICAgICBDcmVhdGVSZXNvbHZlcih1aW50NjRfdCBpZGVudGlmaWVy
LCBTdHJpbmcgYWRkcmVzcykKICAgICBTdG9wUmVzb2x2ZXIodWludDY0X3QgaWRlbnRpZmllcikK
ICAgICBXcmFwTmV3VENQQ29ubmVjdGlvbih1aW50NjRfdCBpZGVudGlmaWVyLCB1aW50NjRfdCBu
ZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tbSBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tbQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yNmYzODc3NDNiNzJhMDA3YzNjM2I5ODVjMzg4MDQ3MTdjZWM5MjA3Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3Zp
ZGVyLm1tCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiTmV0d29ya1JUQ1Byb3ZpZGVyLmgiCisKKyNpZiBVU0UoTElCV0VCUlRDKQor
CisjaW5jbHVkZSAiTmV0d29ya1Nlc3Npb25Db2NvYS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTGli
V2ViUlRDTWFjcm9zLmg+CisjaW5jbHVkZSA8d2VicnRjL3J0Y19iYXNlL2FzeW5jcGFja2V0c29j
a2V0Lmg+CisjaW5jbHVkZSA8d2VicnRjL3J0Y19iYXNlL2xvZ2dpbmcuaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK3J0Yzo6UHJveHlJbmZvIE5ldHdvcmtSVENQcm92aWRlcjo6cHJveHlJbmZv
RnJvbVNlc3Npb24oTmV0d29ya1Nlc3Npb24mIHNlc3Npb24pCit7CisgICAgcnRjOjpQcm94eUlu
Zm8gaW5mbzsKKworICAgIGF1dG8gcHJveHlEaWN0aW9uYXJ5ID0gc3RhdGljX2Nhc3Q8TmV0d29y
a1Nlc3Npb25Db2NvYSY+KHNlc3Npb24pLnByb3h5Q29uZmlndXJhdGlvbigpOworCisgICAgYXV0
byBwcm94eVR5cGUgPSBzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZEaWN0aW9uYXJ5R2V0VmFs
dWUocHJveHlEaWN0aW9uYXJ5LCBrQ0ZQcm94eVR5cGVLZXkpKTsKKyAgICBpZiAocHJveHlUeXBl
ID09IGtDRlByb3h5VHlwZUhUVFBTKQorICAgICAgICBpbmZvLnR5cGUgPSBydGM6OlBST1hZX0hU
VFBTOworICAgIGVsc2UgaWYgKHByb3h5VHlwZSA9PSBrQ0ZQcm94eVR5cGVTT0NLUykKKyAgICAg
ICAgaW5mby50eXBlID0gcnRjOjpQUk9YWV9TT0NLUzU7CisgICAgZWxzZQorICAgICAgICByZXR1
cm4geyB9OworCisgICAgYXV0byBwcm94eUhvc3ROYW1lID0gc3RhdGljX2Nhc3Q8Q0ZTdHJpbmdS
ZWY+KENGRGljdGlvbmFyeUdldFZhbHVlKHByb3h5RGljdGlvbmFyeSwga0NGTmV0d29ya1Byb3hp
ZXNIVFRQU1Byb3h5KSk7CisgICAgaWYgKCFwcm94eUhvc3ROYW1lKQorICAgICAgICByZXR1cm4g
eyB9OworICAgIGF1dG8gcG9ydE51bWJlciA9IHN0YXRpY19jYXN0PENGTnVtYmVyUmVmPihDRkRp
Y3Rpb25hcnlHZXRWYWx1ZShwcm94eURpY3Rpb25hcnksIGtDRk5ldHdvcmtQcm94aWVzSFRUUFNQ
b3J0KSk7CisgICAgaWYgKCFwb3J0TnVtYmVyKQorICAgICAgICByZXR1cm4geyB9OworCisgICAg
aW50IHByb3h5UG9ydDsKKyAgICBpZiAoIUNGTnVtYmVyR2V0VmFsdWUocG9ydE51bWJlciwga0NG
TnVtYmVyU0ludDMyVHlwZSwgJnByb3h5UG9ydCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAg
ICBpbmZvLmFkZHJlc3MgPSB7IHN0ZDo6c3RyaW5nKFsoX19icmlkZ2UgTlNTdHJpbmcgKilwcm94
eUhvc3ROYW1lIFVURjhTdHJpbmddKSwgcHJveHlQb3J0IH07CisgICAgaW5mby5hdXRvZGV0ZWN0
ID0gZmFsc2U7CisKKyAgICBzdGQ6OnN0cmluZyBwcm94eVVzZXJOYW1lOworICAgIGF1dG8gdXNl
cm5hbWUgPSBzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUocHJv
eHlEaWN0aW9uYXJ5LCBrQ0ZQcm94eVVzZXJuYW1lS2V5KSk7CisgICAgaWYgKHVzZXJuYW1lKQor
ICAgICAgICBpbmZvLnVzZXJuYW1lID0gWyhfX2JyaWRnZSBOU1N0cmluZyAqKXVzZXJuYW1lIFVU
RjhTdHJpbmddOworCisgICAgcnRjOjpJbnNlY3VyZUNyeXB0U3RyaW5nSW1wbCBwcm94eVBhc3N3
b3JkOworICAgIGF1dG8gcGFzc3dvcmQgPSBzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZEaWN0
aW9uYXJ5R2V0VmFsdWUocHJveHlEaWN0aW9uYXJ5LCBrQ0ZQcm94eVBhc3N3b3JkS2V5KSk7Cisg
ICAgaWYgKHBhc3N3b3JkKSB7CisgICAgICAgIHJ0Yzo6SW5zZWN1cmVDcnlwdFN0cmluZ0ltcGwg
a2V5OworICAgICAgICBrZXkucGFzc3dvcmQoKSA9IFsoX19icmlkZ2UgTlNTdHJpbmcgKilwYXNz
d29yZCBVVEY4U3RyaW5nXTsKKyAgICAgICAgaW5mby5wYXNzd29yZCA9IHJ0Yzo6Q3J5cHRTdHJp
bmcgeyBrZXkgfTsKKyAgICB9CisKKyAgICByZXR1cm4gaW5mbzsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZiAvLyBVU0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTE2NjQwNjBjYTkzN2I3ODcz
YjNlNGU0ZTBiZjQ2ZGU3ZjFmODdmOC4uYTFiOTc4YzNjMmE4YThlOTQ0ODhhOGE2ODhlNWU5Mzc0
ZjgyYWU4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC04ODMsNiArODgzLDcgQEAKIAkJNDE0REQzN0EyMEJGNDlBNTAwNjk1OUZCIC8q
IGNvbS5jaXNjby53ZWJleC5wbHVnaW4uZ3BjNjQuc2IgaW4gQ29weSBQbHVnLWluIFNhbmRib3gg
UHJvZmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE0REQzNzgyMEJG
NDNFQTAwNjk1OUZCIC8qIGNvbS5jaXNjby53ZWJleC5wbHVnaW4uZ3BjNjQuc2IgKi87IH07CiAJ
CTQxNERFREQ3MUY5RURERTUwMDQ3QzQwRCAvKiBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTRERURENTFG
OUVERERGMDA0N0M0MEQgLyogU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oICovOyB9OwogCQk0
MTU3RTRCMDIwRTJFQ0RGMDBBNkMwRDcgLyogY29tLmdvb2dsZS5vMWRicm93c2VycGx1Z2luLnNi
IGluIENvcHkgUGx1Zy1pbiBTYW5kYm94IFByb2ZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxNTdFNEFGMjBFMkVDOTgwMEE2QzBENyAvKiBjb20uZ29vZ2xlLm8xZGJy
b3dzZXJwbHVnaW4uc2IgKi87IH07CisJCTQxNzY5MDE0MjJGREQ0MUIwMEIxNTc2RCAvKiBOZXR3
b3JrUlRDUHJvdmlkZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTc2OTAxMzIyRkRENDFCMDBCMTU3NkQgLyogTmV0d29ya1JUQ1Byb3ZpZGVyLm1t
ICovOyB9OwogCQk0MTc5MTVBRjIyNTZCQjc1MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3OTE1QUQy
MjU2QkI3NDAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWwuaCAqLzsgfTsKIAkJNDE3OTE1QjEy
MjU2QzBENjAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWxNYW5hZ2VyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc5MTVCMDIyNTZDMEQ2MDBENkY5
N0UgLyogV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuaCAqLzsgfTsKIAkJNDE3OTE1QjkyMjU3MDQ2
RjAwRDZGOTdFIC8qIE5ldHdvcmtTb2NrZXRDaGFubmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc5MTVCNjIyNTcwNDZFMDBENkY5N0UgLyogTmV0
d29ya1NvY2tldENoYW5uZWwuaCAqLzsgfTsKQEAgLTMxMjcsNiArMzEyOCw3IEBACiAJCTQxNTFF
NUMzMUZCQjkwQTkwMEU0N0UyRCAvKiBGb3JtRGF0YVJlZmVyZW5jZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtRGF0YVJlZmVyZW5jZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTU3ODUzMDIxMjc2QjZGMDBERDM4MDAgLyogY29weS13ZWJjb250ZW50
LXJlc291cmNlcy10by1wcml2YXRlLWhlYWRlcnMuc2ggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5zaDsgcGF0aCA9ICJjb3B5LXdl
YmNvbnRlbnQtcmVzb3VyY2VzLXRvLXByaXZhdGUtaGVhZGVycy5zaCI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxNTdFNEFGMjBFMkVDOTgwMEE2QzBENyAvKiBjb20uZ29vZ2xlLm8x
ZGJyb3dzZXJwbHVnaW4uc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmdvb2dsZS5vMWRi
cm93c2VycGx1Z2luLnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc2OTAxMzIy
RkRENDFCMDBCMTU3NkQgLyogTmV0d29ya1JUQ1Byb3ZpZGVyLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmV0d29ya1JUQ1Byb3ZpZGVyLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTc5MTVBQzIyNTZCQjc0MDBENkY5N0UgLyogV2ViU29ja2V0
Q2hhbm5lbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJTb2Nr
ZXRDaGFubmVsLmNwcDsgcGF0aCA9IE5ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzkxNUFEMjI1NkJCNzQwMEQ2Rjk3RSAvKiBXZWJT
b2NrZXRDaGFubmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlNvY2tl
dENoYW5uZWwuaDsgcGF0aCA9IE5ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTc5MTVCMDIyNTZDMEQ2MDBENkY5N0UgLyogV2ViU29ja2V0
Q2hhbm5lbE1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViU29j
a2V0Q2hhbm5lbE1hbmFnZXIuaDsgcGF0aCA9IE5ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbE1hbmFn
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY1NTAsNiArNjU1Miw3IEBACiAJ
CQkJNDFEQzQ1OTUxRTNENkUxRTAwQjExRjUxIC8qIE5ldHdvcmtSVENQcm92aWRlci5jcHAgKi8s
CiAJCQkJNDFEQzQ1OTQxRTNENkUxRTAwQjExRjUxIC8qIE5ldHdvcmtSVENQcm92aWRlci5oICov
LAogCQkJCTQxREM0NTk4MUUzRDZFRDYwMEIxMUY1MSAvKiBOZXR3b3JrUlRDUHJvdmlkZXIubWVz
c2FnZXMuaW4gKi8sCisJCQkJNDE3NjkwMTMyMkZERDQxQjAwQjE1NzZEIC8qIE5ldHdvcmtSVENQ
cm92aWRlci5tbSAqLywKIAkJCQk0MTEyQjU0NzFGOUZEM0FCMDBFNjc4NzUgLyogTmV0d29ya1JU
Q1Jlc29sdmVyLmNwcCAqLywKIAkJCQk0MTEyQjU0ODFGOUZEM0FDMDBFNjc4NzUgLyogTmV0d29y
a1JUQ1Jlc29sdmVyLmggKi8sCiAJCQkJNDExMkI1NDcxRjlGRDNBQjAwRTY3OTg2IC8qIE5ldHdv
cmtSVENSZXNvbHZlckNvY29hLmNwcCAqLywKQEAgLTExMTQzLDYgKzExMTQ2LDcgQEAKIAkJCQk1
MTNBMTYzQzE2MzA4OEY2MDA1RDdEMjIgLyogTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTUyNTUxQTE3MDExODE5MDAzRDdBREIgLyog
TmV0d29ya1Jlc291cmNlTG9hZGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTUxRjA2MEUxMTY1NDMxODUwMEYzMjgxRSAvKiBOZXR3b3JrUlRDTW9uaXRvck1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0MTc2OTAxNDIyRkRENDFCMDBCMTU3NkQg
LyogTmV0d29ya1JUQ1Byb3ZpZGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGMDYwRTExNjU0
MzE4NTAwRjMyODJFIC8qIE5ldHdvcmtSVENQcm92aWRlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUQgLyogTmV0d29ya1JUQ1Nv
Y2tldE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUYwNjBFMTE2NTQz
MTg1MDBGMzI4MUMgLyogTmV0d29ya1NvY2tldENoYW5uZWxNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAppbmRleCBhZmUyNDA4ODRjM2Ni
YWFhNmFkMjM4YmJlMjNmOTU5MzE1OTE5MjFkLi4wOTRhYzcxZjdlNWVmZmFiNzQ4NWZjZWZjYWU1
NDg5M2RiM2UwNTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKQEAgLTQ0LDkgKzQ0LDkg
QEAgcHJpdmF0ZToKICAgICB9CiB9OwogCi1ydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVy
Q29ubmVjdGlvbkludGVyZmFjZT4gTGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZVBlZXJDb25uZWN0
aW9uKHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZlciYgb2JzZXJ2ZXIsIHdlYnJ0Yzo6UGVl
ckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQor
cnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U+IExpYldl
YlJUQ1Byb3ZpZGVyOjpjcmVhdGVQZWVyQ29ubmVjdGlvbih3ZWJydGM6OlBlZXJDb25uZWN0aW9u
T2JzZXJ2ZXImIG9ic2VydmVyLCBydGM6OlBhY2tldFNvY2tldEZhY3RvcnkqIHNvY2tldEZhY3Rv
cnksIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24mJiBj
b25maWd1cmF0aW9uKQogewotICAgIHJldHVybiBXZWJDb3JlOjpMaWJXZWJSVENQcm92aWRlcjo6
Y3JlYXRlUGVlckNvbm5lY3Rpb24ob2JzZXJ2ZXIsIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxp
YldlYlJUQ05ldHdvcmsoKS5tb25pdG9yKCksIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldl
YlJUQ05ldHdvcmsoKS5zb2NrZXRGYWN0b3J5KCksIFdURk1vdmUoY29uZmlndXJhdGlvbiksIHN0
ZDo6bWFrZV91bmlxdWU8QXN5bmNSZXNvbHZlckZhY3Rvcnk+KCkpOworICAgIHJldHVybiBXZWJD
b3JlOjpMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlckNvbm5lY3Rpb24ob2JzZXJ2ZXIsIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ05ldHdvcmsoKS5tb25pdG9yKCksICpzb2Nr
ZXRGYWN0b3J5LCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pLCBzdGQ6Om1ha2VfdW5pcXVlPEFzeW5j
UmVzb2x2ZXJGYWN0b3J5PigpKTsKIH0KIAogdm9pZCBMaWJXZWJSVENQcm92aWRlcjo6ZGlzYWJs
ZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKCkKQEAgLTY0LDYgKzY0LDQ3IEBAIHZvaWQgTGliV2Vi
UlRDUHJvdmlkZXI6OnJlZ2lzdGVyTUROU05hbWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1
aW50NjRfdCBkb2N1CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDTmV0d29y
aygpLm1kbnNSZWdpc3RlcigpLnJlZ2lzdGVyTUROU05hbWUoc2Vzc2lvbklELCBkb2N1bWVudElk
ZW50aWZpZXIsIGlwQWRkcmVzcywgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCitjbGFzcyBSVENT
b2NrZXRGYWN0b3J5IGZpbmFsIDogcHVibGljIHJ0Yzo6UGFja2V0U29ja2V0RmFjdG9yeSB7Citw
dWJsaWM6CisgICAgUlRDU29ja2V0RmFjdG9yeShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0
cmluZyYmIHVzZXJBZ2VudCkKKyAgICAgICAgOiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCisgICAg
ICAgICwgbV91c2VyQWdlbnQoV1RGTW92ZSh1c2VyQWdlbnQpKQorICAgIHsKKyAgICB9CisKK3By
aXZhdGU6CisgICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogQ3JlYXRlVWRwU29ja2V0KGNvbnN0
IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3Qg
bWF4UG9ydCkgZmluYWwKKyAgICB7CisgICAgICAgIHJldHVybiBmYWN0b3J5KCkuY3JlYXRlVWRw
U29ja2V0KGFkZHJlc3MsIG1pblBvcnQsIG1heFBvcnQpOworICAgIH0KKworICAgIHJ0Yzo6QXN5
bmNQYWNrZXRTb2NrZXQqIENyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFk
ZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCBv
cHRpb25zKSBmaW5hbAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZhY3RvcnkoKS5jcmVhdGVTZXJ2
ZXJUY3BTb2NrZXQoYWRkcmVzcywgbWluUG9ydCwgbWF4UG9ydCwgb3B0aW9ucyk7CisgICAgfQor
CisgICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogQ3JlYXRlQ2xpZW50VGNwU29ja2V0KGNvbnN0
IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJl
c3MmIHJlbW90ZUFkZHJlc3MsIGNvbnN0IHJ0Yzo6UHJveHlJbmZvJiwgY29uc3Qgc3RkOjpzdHJp
bmcmLCBpbnQgb3B0aW9ucykgZmluYWwKKyAgICB7CisgICAgICAgIHJldHVybiBmYWN0b3J5KCku
Y3JlYXRlQ2xpZW50VGNwU29ja2V0KGxvY2FsQWRkcmVzcywgcmVtb3RlQWRkcmVzcywgbV9zZXNz
aW9uSUQsIFN0cmluZyB7IG1fdXNlckFnZW50IH0sIG9wdGlvbnMpOworICAgIH0KKworICAgIHJ0
Yzo6QXN5bmNSZXNvbHZlckludGVyZmFjZSogQ3JlYXRlQXN5bmNSZXNvbHZlcigpIGZpbmFsCisg
ICAgeworICAgICAgICByZXR1cm4gZmFjdG9yeSgpLmNyZWF0ZUFzeW5jUmVzb2x2ZXIoKTsKKyAg
ICB9CisKKyAgICBMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiBmYWN0b3J5KCkgeyByZXR1cm4gV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDTmV0d29yaygpLnNvY2tldEZhY3RvcnkoKTsg
fQorCitwcml2YXRlOgorICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOworICAgIFN0cmlu
ZyBtX3VzZXJBZ2VudDsKK307CisKK3N0ZDo6dW5pcXVlX3B0cjxydGM6OlBhY2tldFNvY2tldEZh
Y3Rvcnk+IExpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVTb2NrZXRGYWN0b3J5KFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgU3RyaW5nJiYgdXNlckFnZW50KQoreworICAgIHJldHVybiBzdGQ6Om1h
a2VfdW5pcXVlPFJUQ1NvY2tldEZhY3Rvcnk+KHNlc3Npb25JRCwgV1RGTW92ZSh1c2VyQWdlbnQp
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBVU0UoTElCV0VCUlRD
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xp
YldlYlJUQ1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJy
dGMvTGliV2ViUlRDUHJvdmlkZXIuaAppbmRleCBhMTQxNzAwY2U2ZjRhMTg2YzIxNjY2MjhhZGI5
MGFmNGQ5ZmU0ZTU2Li5mNjVhNjI5NWVjOTBlMWQyYjc2ZmY0NzEyMjI2ZDg0M2M3ZDk2NGVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2Vi
UlRDUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJy
dGMvTGliV2ViUlRDUHJvdmlkZXIuaApAQCAtNTAsNyArNTAsOSBAQCBwdWJsaWM6CiAgICAgTGli
V2ViUlRDUHJvdmlkZXIoKSB7IG1fdXNlTmV0d29ya1RocmVhZFdpdGhTb2NrZXRTZXJ2ZXIgPSBm
YWxzZTsgfQogCiBwcml2YXRlOgotICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJD
b25uZWN0aW9uSW50ZXJmYWNlPiBjcmVhdGVQZWVyQ29ubmVjdGlvbih3ZWJydGM6OlBlZXJDb25u
ZWN0aW9uT2JzZXJ2ZXImLCB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpSVENDb25m
aWd1cmF0aW9uJiYpIGZpbmFsOworICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OlBhY2tldFNvY2tl
dEZhY3Rvcnk+IGNyZWF0ZVNvY2tldEZhY3RvcnkoUEFMOjpTZXNzaW9uSUQsIFN0cmluZyYmIC8q
IHVzZXJBZ2VudCAqLykgZmluYWw7CisKKyAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQ
ZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gY3JlYXRlUGVlckNvbm5lY3Rpb24od2VicnRjOjpQZWVy
Q29ubmVjdGlvbk9ic2VydmVyJiwgcnRjOjpQYWNrZXRTb2NrZXRGYWN0b3J5Kiwgd2VicnRjOjpQ
ZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6UlRDQ29uZmlndXJhdGlvbiYmKSBmaW5hbDsKIAogICAg
IHZvaWQgdW5yZWdpc3Rlck1ETlNOYW1lcyh1aW50NjRfdCBkb2N1bWVudElkZW50aWZpZXIpIGZp
bmFsOwogICAgIHZvaWQgcmVnaXN0ZXJNRE5TTmFtZShQQUw6OlNlc3Npb25JRCwgdWludDY0X3Qg
ZG9jdW1lbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGlwQWRkcmVzcywgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChNRE5TTmFtZU9yRXJyb3ImJik+JiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3Rv
cnkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJU
Q1NvY2tldEZhY3RvcnkuY3BwCmluZGV4IGQ3NzhkNTc3ZWE4ZWZjMWIzNTZkZjFkN2MwMTdlY2Rm
MzE4ODEwNmEuLmY4YjdlZDIyOWM0ZjZmMmRjMDM2MTMyY2M5NmU0MTFlZWNhNTcwMmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENT
b2NrZXRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RhdGlj
IGlubGluZSBydGM6OlNvY2tldEFkZHJlc3MgcHJlcGFyZVNvY2tldEFkZHJlc3MoY29uc3QgcnRj
OjpTb2NrZXRBZGRyZXNzJgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXJ0Yzo6QXN5bmNQYWNr
ZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZVNlcnZlclRjcFNvY2tldChj
b25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQx
Nl90IG1heFBvcnQsIGludCBvcHRpb25zKQorcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2Vi
UlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlU2VydmVyVGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0
QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50
IG9wdGlvbnMpCiB7CiAgICAgYXV0byBzb2NrZXQgPSBzdGQ6Om1ha2VfdW5pcXVlPExpYldlYlJU
Q1NvY2tldD4oKnRoaXMsICsrc191bmlxdWVTb2NrZXRJZGVudGlmaWVyLCBMaWJXZWJSVENTb2Nr
ZXQ6OlR5cGU6OlNlcnZlclRDUCwgYWRkcmVzcywgcnRjOjpTb2NrZXRBZGRyZXNzKCkpOwogICAg
IG1fc29ja2V0cy5zZXQoc29ja2V0LT5pZGVudGlmaWVyKCksIHNvY2tldC5nZXQoKSk7CkBAIC02
NCw3ICs2NCw3IEBAIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rv
cnk6OkNyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBydGM6CiAgICAgcmV0dXJuIHNvY2tldC5y
ZWxlYXNlKCk7CiB9CiAKLXJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZh
Y3Rvcnk6OkNyZWF0ZVVkcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3Ms
IHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQpCitydGM6OkFzeW5jUGFja2V0U29j
a2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVVZHBTb2NrZXQoY29uc3QgcnRjOjpT
b2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0
KQogewogICAgIGF1dG8gc29ja2V0ID0gc3RkOjptYWtlX3VuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+
KCp0aGlzLCArK3NfdW5pcXVlU29ja2V0SWRlbnRpZmllciwgTGliV2ViUlRDU29ja2V0OjpUeXBl
OjpVRFAsIGFkZHJlc3MsIHJ0Yzo6U29ja2V0QWRkcmVzcygpKTsKICAgICBtX3NvY2tldHMuc2V0
KHNvY2tldC0+aWRlbnRpZmllcigpLCBzb2NrZXQuZ2V0KCkpOwpAQCAtNzgsMTQgKzc4LDE0IEBA
IHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZVVk
cFNvY2tldChjb25zdCBydGM6OlNvY2tlCiAgICAgcmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7CiB9
CiAKLXJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0
ZUNsaWVudFRjcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywg
Y29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBjb25zdCBydGM6OlByb3h5
SW5mbyYsIGNvbnN0IHN0ZDo6c3RyaW5nJiwgaW50IG9wdGlvbnMpCitydGM6OkFzeW5jUGFja2V0
U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVDbGllbnRUY3BTb2NrZXQoY29u
c3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRk
cmVzcyYgcmVtb3RlQWRkcmVzcywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcmJiB1
c2VyQWdlbnQsIGludCBvcHRpb25zKQogewogICAgIGF1dG8gc29ja2V0ID0gc3RkOjptYWtlX3Vu
aXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCArK3NfdW5pcXVlU29ja2V0SWRlbnRpZmllciwg
TGliV2ViUlRDU29ja2V0OjpUeXBlOjpDbGllbnRUQ1AsIGxvY2FsQWRkcmVzcywgcmVtb3RlQWRk
cmVzcyk7CiAgICAgc29ja2V0LT5zZXRTdGF0ZShMaWJXZWJSVENTb2NrZXQ6OlNUQVRFX0NPTk5F
Q1RJTkcpOwogICAgIG1fc29ja2V0cy5zZXQoc29ja2V0LT5pZGVudGlmaWVyKCksIHNvY2tldC5n
ZXQoKSk7CiAKLSAgICBjYWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVu
dGlmaWVyKCksIGxvY2FsQWRkcmVzcyA9IHByZXBhcmVTb2NrZXRBZGRyZXNzKGxvY2FsQWRkcmVz
cywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpLCByZW1vdGVBZGRyZXNzID0gcHJl
cGFyZVNvY2tldEFkZHJlc3MocmVtb3RlQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29u
bmVjdGlvbnMpLCBvcHRpb25zXSgpIHsKLSAgICAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChN
ZXNzYWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpDcmVhdGVDbGllbnRUQ1BTb2NrZXQoaWRlbnRp
ZmllciwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhsb2NhbEFkZHJlc3MpLCBSVENOZXR3b3Jr
OjpTb2NrZXRBZGRyZXNzKHJlbW90ZUFkZHJlc3MpLCBvcHRpb25zKSwgMCkpIHsKKyAgICBjYWxs
T25NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlmaWVyKCksIGxvY2FsQWRk
cmVzcyA9IHByZXBhcmVTb2NrZXRBZGRyZXNzKGxvY2FsQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9j
YWxob3N0Q29ubmVjdGlvbnMpLCByZW1vdGVBZGRyZXNzID0gcHJlcGFyZVNvY2tldEFkZHJlc3Mo
cmVtb3RlQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpLCBzZXNzaW9u
SUQsIHVzZXJBZ2VudCA9IFdURk1vdmUodXNlckFnZW50KS5pc29sYXRlZENvcHkoKSwgb3B0aW9u
c10oKSB7CisgICAgICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtS
VENQcm92aWRlcjo6Q3JlYXRlQ2xpZW50VENQU29ja2V0KGlkZW50aWZpZXIsIFJUQ05ldHdvcms6
OlNvY2tldEFkZHJlc3MobG9jYWxBZGRyZXNzKSwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhy
ZW1vdGVBZGRyZXNzKSwgc2Vzc2lvbklELCB1c2VyQWdlbnQsIG9wdGlvbnMpLCAwKSkgewogICAg
ICAgICAgICAgLy8gRklYTUU6IFNldCBlcnJvciBiYWNrIHRvIHNvY2tldAogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBMaWJXZWJSVENTb2Nr
ZXRGYWN0b3J5OjpkZXRhY2goTGliV2ViUlRDU29ja2V0JiBzb2NrZXQpCiAgICAgbV9zb2NrZXRz
LnJlbW92ZShzb2NrZXQuaWRlbnRpZmllcigpKTsKIH0KIAotcnRjOjpBc3luY1Jlc29sdmVySW50
ZXJmYWNlKiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpDcmVhdGVBc3luY1Jlc29sdmVyKCkKK3J0
Yzo6QXN5bmNSZXNvbHZlckludGVyZmFjZSogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRl
QXN5bmNSZXNvbHZlcigpCiB7CiAgICAgYXV0byByZXNvbHZlciA9IHN0ZDo6bWFrZV91bmlxdWU8
TGliV2ViUlRDUmVzb2x2ZXI+KCsrc191bmlxdWVSZXNvbHZlcklkZW50aWZpZXIpOwogICAgIGF1
dG8qIHJlc29sdmVyUG9pbnRlciA9IHJlc29sdmVyLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3Rvcnku
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2Nr
ZXRGYWN0b3J5LmgKaW5kZXggZjBiNDE5NTcxM2ZiNzU1YTAwNDk3MzlhNjI1YTIwMWNjNDkyZWMx
Yi4uMjQ0NjYwNGMxNTAwMThlZjYxNDQ0ZGE0ZTRhYjZiZDVlN2I3NDJhMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZh
Y3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGli
V2ViUlRDU29ja2V0RmFjdG9yeS5oCkBAIC0zNiw3ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCi1jbGFzcyBMaWJXZWJSVENTb2NrZXRGYWN0b3J5IGZpbmFsIDogcHVibGljIHJ0Yzo6
UGFja2V0U29ja2V0RmFjdG9yeSB7CitjbGFzcyBMaWJXZWJSVENTb2NrZXRGYWN0b3J5IHsKIHB1
YmxpYzoKICAgICBMaWJXZWJSVENTb2NrZXRGYWN0b3J5KCkgeyB9CiAKQEAgLTUxLDEzICs1MSwx
MiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucygp
IHsgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMgPSB0cnVlOyB9CiAKLSAgICBydGM6
OkFzeW5jUmVzb2x2ZXJJbnRlcmZhY2UqIGNyZWF0ZUFzeW5jUmVzb2x2ZXIoKSB7IHJldHVybiBD
cmVhdGVBc3luY1Jlc29sdmVyKCk7IH0KKyAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVh
dGVVZHBTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QgbWluUG9ydCwg
dWludDE2X3QgbWF4UG9ydCk7CisgICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogY3JlYXRlU2Vy
dmVyVGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90IG1pblBvcnQs
IHVpbnQxNl90IG1heFBvcnQsIGludCBvcHRpb25zKTsKKyAgICBydGM6OkFzeW5jUGFja2V0U29j
a2V0KiBjcmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2Nh
bEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgUEFMOjpT
ZXNzaW9uSUQsIFN0cmluZyYmIHVzZXJBZ2VudCwgaW50IG9wdGlvbnMpOworICAgIHJ0Yzo6QXN5
bmNSZXNvbHZlckludGVyZmFjZSogY3JlYXRlQXN5bmNSZXNvbHZlcigpOwogCiBwcml2YXRlOgot
ICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIENyZWF0ZVVkcFNvY2tldChjb25zdCBydGM6OlNv
Y2tldEFkZHJlc3MmLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KSBmaW5hbDsK
LSAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBDcmVhdGVTZXJ2ZXJUY3BTb2NrZXQoY29uc3Qg
cnRjOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QgbWluX3BvcnQsIHVpbnQxNl90IG1heF9wb3J0
LCBpbnQgb3B0aW9ucykgZmluYWw7Ci0gICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogQ3JlYXRl
Q2xpZW50VGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBj
b25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIGNvbnN0IHJ0Yzo6UHJveHlJ
bmZvJiwgY29uc3Qgc3RkOjpzdHJpbmcmLCBpbnQgb3B0aW9ucyk7Ci0gICAgcnRjOjpBc3luY1Jl
c29sdmVySW50ZXJmYWNlKiBDcmVhdGVBc3luY1Jlc29sdmVyKCkgZmluYWw7CiAKICAgICAvLyBX
ZSBjYW5ub3Qgb3duIHNvY2tldHMsIGNsaWVudHMgb2YgdGhlIGZhY3RvcnkgYXJlIHJlc3BvbnNp
YmxlIHRvIGZyZWUgdGhlbS4KICAgICBIYXNoTWFwPHVpbnQ2NF90LCBMaWJXZWJSVENTb2NrZXQq
PiBtX3NvY2tldHM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376055</attachid>
            <date>2019-08-12 03:08:15 -0700</date>
            <delta_ts>2019-08-12 09:31:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200583-20190812120813.patch</filename>
            <type>text/plain</type>
            <size>35779</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCAxMzQzNWFkYmU0MTUyNTFhN2ZmNjhiODYzYjJlNDkwMWUwMmM3ZjllLi40NmIy
ZGRjMWM2NmYxZmFjYTRiMzYxNDkxMjk5ZmU5Njc0MGQxZmE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0wOC0xMiAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlciBBZ2VudCBhbmQgU2Vzc2lv
bklEIHNob3VsZCBiZSBnaXZlbiB0byBOZXR3b3JrUlRDUHJvdmlkZXIgdG8gc2V0IHVwIHRoZSBj
b3JyZWN0IHByb3h5IGluZm9ybWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDA1ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBFeHBvcnQgb2Ygc29tZSBzeW1ib2xzLgorCisgICAgICAgICogQ29u
ZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHA6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
bGlid2VicnRjLmlPU3NpbS5leHA6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvbGlid2VicnRj
Lm1hYy5leHA6CisKIDIwMTktMDgtMDIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBidWlsZCBjaGVjayBmb3IgbGlid2VicnRjIE9iamVjdGl2ZUMgbmFt
ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBlZWQwYmU2N2EyMGVmYzhlYjQzYTFmNjQwOGQzYWJhZDFmN2U1MDM3
Li5iNjUzYTUzMjM0MmEwZmU4YjYxZGY0YTkwY2Y5ZTk5YjcyMDcxYmU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTktMDgtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgorCisgICAgICAgIFVzZXIgQWdlbnQgYW5kIFNlc3Npb25JRCBzaG91bGQgYmUgZ2l2ZW4g
dG8gTmV0d29ya1JUQ1Byb3ZpZGVyIHRvIHNldCB1cCB0aGUgY29ycmVjdCBwcm94eSBpbmZvcm1h
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAw
NTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNl
IGEgc3BlY2lmaWMgc29ja2V0IGZhY3RvcnkgdGhhdCBpcyBzcGVjaWZpYyB0byB0aGUgdXNlciBh
Z2VudCBhbmQgc2Vzc2lvbiBJRC4KKyAgICAgICAgVGhpcyBmYWN0b3J5IGlzIHN0b3JlZCBpbiB0
aGUgbWVkaWEgZW5kcG9pbnQuCisgICAgICAgIE5vdCB0ZXN0YWJsZSB3aXRob3V0IHByb3h5IGlu
ZnJhc3RydWN0dXJlLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENN
ZWRpYUVuZHBvaW50OjpzZXRDb25maWd1cmF0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50Lmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVQZWVyQ29ubmVjdGlvbik6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVy
Lmg6CisKIDIwMTktMDgtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbW92ZSBJREItc3BlY2lmaWMgcXVvdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYjJmMDg2YzQ0NGE1
YmJiNThhZTIzY2I3NGU3ZWMwMTM1ZDkzOGE0MC4uYjQ2MzhlMzAwMzMxMjBkZTU4YjY5YTJiNDlm
ZDRjZDQ3NjU2M2Q3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxOS0wOC0xMiAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlciBBZ2VudCBhbmQg
U2Vzc2lvbklEIHNob3VsZCBiZSBnaXZlbiB0byBOZXR3b3JrUlRDUHJvdmlkZXIgdG8gc2V0IHVw
IHRoZSBjb3JyZWN0IHByb3h5IGluZm9ybWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA1ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBQYXNzIHNlc3Npb24gaWQgYW5kIHVzZXIgYWdlbnQgd2hl
bmV2ZXIgY3JlYXRpbmcgYSBUQ1AgY2xpZW50IHNvY2tldC4KKyAgICAgICAgVXNlIG9mIHRoaXMg
aW5mb3JtYXRpb24gdG8gZ2V0IHRoZSBwcm94eSBpbmZvcm1hdGlvbiBmcm9tIE5ldHdvcmtTZXNz
aW9uIGFuZCBwYXNzIGl0IHRvIGxpYndlYnJ0YyBzb2NrZXQgY3JlYXRpb24uCisKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmg6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6cHJveHlJbmZvRnJvbVNlc3Npb24pOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZUNsaWVudFRDUFNvY2tldCk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMu
aW46CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tbTogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6cHJveHlJbmZvRnJvbVNlc3Npb24p
OgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlckNvbm5l
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlU29ja2V0
RmFjdG9yeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQ
cm92aWRlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRD
U29ja2V0RmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rv
cnk6OmNyZWF0ZVNlcnZlclRjcFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1Nv
Y2tldEZhY3Rvcnk6OmNyZWF0ZVVkcFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJU
Q1NvY2tldEZhY3Rvcnk6OmNyZWF0ZUNsaWVudFRjcFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6
OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZUFzeW5jUmVzb2x2ZXIpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oOgorCiAy
MDE5LTA4LTEyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZW1vdmUgSURCLXNwZWNpZmljIHF1b3RhCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHAgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHAKaW5kZXggNjQ2
ZDhkNGNiZGUwZTYyZmJlMjdjZjlhNDg2YjM0MzE0YzNhNzUyMS4uOTIwNTI5NmQ1N2Y4MmRmMGI0
ODA2Yzg1MTQ2MDU4ZDgwMjE3ZmEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cApAQCAtMjQ4
LDMgKzI0OCw4IEBAIF9fWk42d2VicnRjMTZSdHBSdHhQYXJhbWV0ZXJzQzFFUktTMF8KIF9fWk42
d2VicnRjMTZSdHBSdHhQYXJhbWV0ZXJzRDFFdgogX19aTjNydGMxMExvZ01lc3NhZ2UxMlNldExv
Z091dHB1dEVOU18xNUxvZ2dpbmdTZXZlcml0eUVQRnZTMV9QS2NFCiBfX1pONndlYnJ0YzEzQ3J5
cHRvT3B0aW9uczVOb0djbUV2CitfX1pUVk4zcnRjMjNJbnNlY3VyZUNyeXB0U3RyaW5nSW1wbEUK
K19fWk4zcnRjMTFDcnlwdFN0cmluZ0MxRVJLTlNfMTVDcnlwdFN0cmluZ0ltcGxFCitfX1pOM3J0
YzEzU29ja2V0QWRkcmVzc0MxRVJLTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzFfMTFjaGFyX3Ry
YWl0c0ljRUVOUzFfOWFsbG9jYXRvckljRUVFRWkKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0QxRXYK
K19fWk4zcnRjMTFDcnlwdFN0cmluZ0MxRVJLUzBfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5leHAgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5l
eHAKaW5kZXggOTgwYzNmNDk1MTM5ZTlkODZkMDNhNWVjMDZjZjk4YTg5YzI3NDA3My4uNmYxMzJj
YmMwZTZmNmIzOGJhNWMxODMyZWUzNmJhMTRiMzE1ODA5NCAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1NzaW0uZXhwCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMu
aU9Tc2ltLmV4cApAQCAtMjQ5LDMgKzI0OSw4IEBAIF9fWk42d2VicnRjMTZSdHBSdHhQYXJhbWV0
ZXJzQzFFUktTMF8KIF9fWk42d2VicnRjMTZSdHBSdHhQYXJhbWV0ZXJzRDFFdgogX19aTjNydGMx
MExvZ01lc3NhZ2UxMlNldExvZ091dHB1dEVOU18xNUxvZ2dpbmdTZXZlcml0eUVQRnZTMV9QS2NF
CiBfX1pONndlYnJ0YzEzQ3J5cHRvT3B0aW9uczVOb0djbUV2CitfX1pUVk4zcnRjMjNJbnNlY3Vy
ZUNyeXB0U3RyaW5nSW1wbEUKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0MxRVJLTlNfMTVDcnlwdFN0
cmluZ0ltcGxFCitfX1pOM3J0YzEzU29ja2V0QWRkcmVzc0MxRVJLTlN0M19fMTEyYmFzaWNfc3Ry
aW5nSWNOUzFfMTFjaGFyX3RyYWl0c0ljRUVOUzFfOWFsbG9jYXRvckljRUVFRWkKK19fWk4zcnRj
MTFDcnlwdFN0cmluZ0QxRXYKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0MxRVJLUzBfCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRj
Lm1hYy5leHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGli
d2VicnRjLm1hYy5leHAKaW5kZXggOTgwYzNmNDk1MTM5ZTlkODZkMDNhNWVjMDZjZjk4YTg5YzI3
NDA3My4uNmYxMzJjYmMwZTZmNmIzOGJhNWMxODMyZWUzNmJhMTRiMzE1ODA5NCAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5t
YWMuZXhwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9s
aWJ3ZWJydGMubWFjLmV4cApAQCAtMjQ5LDMgKzI0OSw4IEBAIF9fWk42d2VicnRjMTZSdHBSdHhQ
YXJhbWV0ZXJzQzFFUktTMF8KIF9fWk42d2VicnRjMTZSdHBSdHhQYXJhbWV0ZXJzRDFFdgogX19a
TjNydGMxMExvZ01lc3NhZ2UxMlNldExvZ091dHB1dEVOU18xNUxvZ2dpbmdTZXZlcml0eUVQRnZT
MV9QS2NFCiBfX1pONndlYnJ0YzEzQ3J5cHRvT3B0aW9uczVOb0djbUV2CitfX1pUVk4zcnRjMjNJ
bnNlY3VyZUNyeXB0U3RyaW5nSW1wbEUKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0MxRVJLTlNfMTVD
cnlwdFN0cmluZ0ltcGxFCitfX1pOM3J0YzEzU29ja2V0QWRkcmVzc0MxRVJLTlN0M19fMTEyYmFz
aWNfc3RyaW5nSWNOUzFfMTFjaGFyX3RyYWl0c0ljRUVOUzFfOWFsbG9jYXRvckljRUVFRWkKK19f
Wk4zcnRjMTFDcnlwdFN0cmluZ0QxRXYKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0MxRVJLUzBfCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9M
aWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCmluZGV4IDQ1YmY0YTkz
ZDI1MDBmZTg5YTNlYmU3N2VjMWNkOGVkZTEwNWEyZjkuLmRlZjFmOTFlZWU5ZWQ2ZWM3OGQxM2M2
OWVjNDM0OGYwYWE2OGQzNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5k
cG9pbnQuY3BwCkBAIC04Niw3ICs4NiwxMSBAQCBib29sIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6
OnNldENvbmZpZ3VyYXRpb24oTGliV2ViUlRDUHJvdmlkZXImIGNsaWVudCwgd2VicnRjOgogICAg
ICAgICBjb25maWd1cmF0aW9uLnNkcF9zZW1hbnRpY3MgPSB3ZWJydGM6OlNkcFNlbWFudGljczo6
a1VuaWZpZWRQbGFuOwogCiAgICAgaWYgKCFtX2JhY2tlbmQpIHsKLSAgICAgICAgbV9iYWNrZW5k
ID0gY2xpZW50LmNyZWF0ZVBlZXJDb25uZWN0aW9uKCp0aGlzLCBXVEZNb3ZlKGNvbmZpZ3VyYXRp
b24pKTsKKyAgICAgICAgaWYgKCFtX3J0Y1NvY2tldEZhY3RvcnkpIHsKKyAgICAgICAgICAgIGF1
dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX3BlZXJDb25uZWN0aW9uQmFja2Vu
ZC5jb25uZWN0aW9uKCkuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICAgICAgICAgIG1f
cnRjU29ja2V0RmFjdG9yeSA9IGNsaWVudC5jcmVhdGVTb2NrZXRGYWN0b3J5KGRvY3VtZW50LnNl
c3Npb25JRCgpLCBkb2N1bWVudC51c2VyQWdlbnQoZG9jdW1lbnQudXJsKCkpKTsKKyAgICAgICAg
fQorICAgICAgICBtX2JhY2tlbmQgPSBjbGllbnQuY3JlYXRlUGVlckNvbm5lY3Rpb24oKnRoaXMs
IG1fcnRjU29ja2V0RmFjdG9yeS5nZXQoKSwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CiAgICAg
ICAgIHJldHVybiAhIW1fYmFja2VuZDsKICAgICB9CiAgICAgYXV0byBvbGRDb25maWd1cmF0aW9u
ID0gbV9iYWNrZW5kLT5HZXRDb25maWd1cmF0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENNZWRpYUVuZHBvaW50LmgKaW5kZXggNjJiYjQ3NmEwZTNiMjFmNmIzOWUyZGFmMmIyNmJiZTFm
Y2ZlZGY0Zi4uY2E5ZGY4NmQ3OGM3MmVlYTIyYTAyOWU5YzM5ZmIxMWEzMGUyMDg5MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDTWVkaWFFbmRwb2ludC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuaApAQCAtMTk4LDYgKzE5OCw3IEBA
IHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFN0cmluZywgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0
Yzo6TWVkaWFTdHJlYW1JbnRlcmZhY2U+PiBtX2xvY2FsU3RyZWFtczsKIAorICAgIHN0ZDo6dW5p
cXVlX3B0cjxydGM6OlBhY2tldFNvY2tldEZhY3Rvcnk+IG1fcnRjU29ja2V0RmFjdG9yeTsKICNp
ZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBpbnQ2NF90IG1fc3RhdHNGaXJzdERlbGl2ZXJl
ZFRpbWVzdGFtcCB7IDAgfTsKICAgICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCmluZGV4IDNhYTkwY2ZhNDZhN2VjMDBlNzU2
ZGEzZmJlY2Q1MmE2NDNjNzJlY2UuLjIwN2FiNzhhOWEyYmJlNDBhMGVkNGRhNjk1NjlhZWRiMTIy
OTllMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcApAQCAtMjgxLDcg
KzI4MSw3IEBAIHZvaWQgTGliV2ViUlRDUHJvdmlkZXI6OmVuYWJsZUVudW1lcmF0aW5nQWxsTmV0
d29ya0ludGVyZmFjZXMoKQogICAgIG1fZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJm
YWNlcyA9IHRydWU7CiB9CiAKLXJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0
aW9uSW50ZXJmYWNlPiBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlckNvbm5lY3Rpb24od2Vi
cnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyJiBvYnNlcnZlciwgd2VicnRjOjpQZWVyQ29ubmVj
dGlvbkludGVyZmFjZTo6UlRDQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCitydGM6OnNj
b3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gTGliV2ViUlRDUHJv
dmlkZXI6OmNyZWF0ZVBlZXJDb25uZWN0aW9uKHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZl
ciYgb2JzZXJ2ZXIsIHJ0Yzo6UGFja2V0U29ja2V0RmFjdG9yeSosIHdlYnJ0Yzo6UGVlckNvbm5l
Y3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogewogICAg
IC8vIERlZmF1bHQgV0sxIGltcGxlbWVudGF0aW9uLgogICAgIEFTU0VSVChtX3VzZU5ldHdvcmtU
aHJlYWRXaXRoU29ja2V0U2VydmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgK
aW5kZXggMjQ4NTcyZjM2Y2YxNjcyMmQ1NDg1NTJjOGU1ZWYxZTNiNDMyOGU4OC4uYmRmMDkwMDQw
YzkwNjU3ZjQ5ZjBjZTRhZTI4MDc3MzhhMWU4YmU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q1Byb3ZpZGVyLmgKQEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgogICAgIH0KIAogI2lmIFVTRShM
SUJXRUJSVEMpCi0gICAgdmlydHVhbCBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29u
bmVjdGlvbkludGVyZmFjZT4gY3JlYXRlUGVlckNvbm5lY3Rpb24od2VicnRjOjpQZWVyQ29ubmVj
dGlvbk9ic2VydmVyJiwgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6UlRDQ29uZmln
dXJhdGlvbiYmKTsKKyAgICB2aXJ0dWFsIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJD
b25uZWN0aW9uSW50ZXJmYWNlPiBjcmVhdGVQZWVyQ29ubmVjdGlvbih3ZWJydGM6OlBlZXJDb25u
ZWN0aW9uT2JzZXJ2ZXImLCBydGM6OlBhY2tldFNvY2tldEZhY3RvcnkqLCB3ZWJydGM6OlBlZXJD
b25uZWN0aW9uSW50ZXJmYWNlOjpSVENDb25maWd1cmF0aW9uJiYpOwogCiAgICAgd2VicnRjOjpQ
ZWVyQ29ubmVjdGlvbkZhY3RvcnlJbnRlcmZhY2UqIGZhY3RvcnkoKTsKIApAQCAtMTE4LDYgKzEx
OCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEVuYWJsZUxvZ2dpbmcoYm9vbCk7CiAgICAgdm9p
ZCBzZXRFbmFibGVXZWJSVENFbmNyeXB0aW9uKGJvb2wpOwogCisgICAgdmlydHVhbCBzdGQ6OnVu
aXF1ZV9wdHI8cnRjOjpQYWNrZXRTb2NrZXRGYWN0b3J5PiBjcmVhdGVTb2NrZXRGYWN0b3J5KFBB
TDo6U2Vzc2lvbklELCBTdHJpbmcmJiAvKiB1c2VyQWdlbnQgKi8pIHsgcmV0dXJuIG51bGxwdHI7
IH0KKwogcHJvdGVjdGVkOgogICAgIExpYldlYlJUQ1Byb3ZpZGVyKCkgPSBkZWZhdWx0OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNz
aW9uQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nl
c3Npb25Db2NvYS5oCmluZGV4IDRiYWIyM2VhODUzY2U4YWE3MmUzOGRkZmE2Zjg1OGE1MTViZDkw
YjIuLjJkYWFlNGQxN2ViZjAyNTM4ZThlYzljZmZhM2VhODM5ZDU0MDE3YmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25D
b2NvYS5oCkBAIC0yOCw2ICsyOCw3IEBACiBPQkpDX0NMQVNTIERNRldlYnNpdGVQb2xpY3lNb25p
dG9yOwogT0JKQ19DTEFTUyBOU0RhdGE7CiBPQkpDX0NMQVNTIE5TVVJMU2Vzc2lvbjsKK09CSkNf
Q0xBU1MgTlNVUkxTZXNzaW9uQ29uZmlndXJhdGlvbjsKIE9CSkNfQ0xBU1MgTlNVUkxTZXNzaW9u
RG93bmxvYWRUYXNrOwogT0JKQ19DTEFTUyBOU09wZXJhdGlvblF1ZXVlOwogT0JKQ19DTEFTUyBX
S05ldHdvcmtTZXNzaW9uRGVsZWdhdGU7CkBAIC04MSw2ICs4Miw4IEBAIHB1YmxpYzoKICAgICBi
b29sIGFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3Rp
bmcoKSBjb25zdCB7IHJldHVybiBtX2FsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJl
c3RyaWN0aW9uc0ZvclRlc3Rpbmc7IH0KICAgICBETUZXZWJzaXRlUG9saWN5TW9uaXRvciAqZGV2
aWNlTWFuYWdlbWVudFBvbGljeU1vbml0b3IoKTsKIAorICAgIENGRGljdGlvbmFyeVJlZiBwcm94
eUNvbmZpZ3VyYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Byb3h5Q29uZmlndXJhdGlvbi5nZXQo
KTsgfQorCiBwcml2YXRlOgogICAgIHZvaWQgaW52YWxpZGF0ZUFuZENhbmNlbCgpIG92ZXJyaWRl
OwogICAgIHZvaWQgY2xlYXJDcmVkZW50aWFscygpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5j
cHAKaW5kZXggMTZiN2ZhZTE5ZjYwYmY4MTM5ODQxMzU5YmQ2ODdjNjRlNDkzMWY0Ni4uNzg3NWFk
ODkwZjNjMTFhYjVmOWNmZmIyYzBjZDk1ZjMzMTkwMGRjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3Bw
CkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiV2ViUlRDUmVzb2x2ZXJNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIldlYlJUQ1NvY2tldE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9MaWJX
ZWJSVENNYWNyb3MuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW5j
bHVkZSA8d2VicnRjL3J0Y19iYXNlL2FzeW5jcGFja2V0c29ja2V0Lmg+CiAjaW5jbHVkZSA8d2Vi
cnRjL3J0Y19iYXNlL2xvZ2dpbmcuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgpAQCAt
MTI5LDEwICsxMzAsMjIgQEAgdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVNlcnZlclRD
UFNvY2tldCh1aW50NjRfdCBpZGVudGlmaWVyLCBjb25zdCBSVENOZXQKICAgICB9KTsKIH0KIAot
dm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZUNsaWVudFRDUFNvY2tldCh1aW50NjRfdCBp
ZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3Ms
IGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIGludCBvcHRp
b25zKQorI2lmICFQTEFURk9STShDT0NPQSkKK3J0Yzo6UHJveHlJbmZvIE5ldHdvcmtSVENQcm92
aWRlcjo6cHJveHlJbmZvRnJvbVNlc3Npb24oTmV0d29ya1Nlc3Npb24mKQogewotICAgIGNhbGxP
blJUQ05ldHdvcmtUaHJlYWQoW3RoaXMsIGlkZW50aWZpZXIsIGxvY2FsQWRkcmVzcyA9IFJUQ05l
dHdvcms6Omlzb2xhdGVkQ29weShsb2NhbEFkZHJlc3MudmFsdWUpLCByZW1vdGVBZGRyZXNzID0g
UlRDTmV0d29yazo6aXNvbGF0ZWRDb3B5KHJlbW90ZUFkZHJlc3MudmFsdWUpLCBvcHRpb25zXSgp
IHsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+IHNvY2tl
dChtX3BhY2tldFNvY2tldEZhY3RvcnktPkNyZWF0ZUNsaWVudFRjcFNvY2tldChsb2NhbEFkZHJl
c3MsIHJlbW90ZUFkZHJlc3MsIHsgfSwgeyB9LCBvcHRpb25zKSk7CisgICAgcmV0dXJuIHsgfTsK
K30KKyNlbmRpZgorCit2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlQ2xpZW50VENQU29j
a2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3Mm
IGxvY2FsQWRkcmVzcywgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRk
cmVzcywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcmJiB1c2VyQWdlbnQsIGludCBv
cHRpb25zKQoreworICAgIGF1dG8qIHNlc3Npb24gPSBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9j
ZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKTsKKyAgICBpZiAoIXNlc3Npb24pIHsKKyAg
ICAgICAgbV9jb25uZWN0aW9uLT5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6V2ViUlRDU29j
a2V0OjpTaWduYWxDbG9zZSgxKSwgaWRlbnRpZmllcik7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgY2FsbE9uUlRDTmV0d29ya1RocmVhZChbdGhpcywgaWRlbnRpZmllciwgbG9jYWxBZGRy
ZXNzID0gUlRDTmV0d29yazo6aXNvbGF0ZWRDb3B5KGxvY2FsQWRkcmVzcy52YWx1ZSksIHJlbW90
ZUFkZHJlc3MgPSBSVENOZXR3b3JrOjppc29sYXRlZENvcHkocmVtb3RlQWRkcmVzcy52YWx1ZSks
IHByb3h5SW5mbyA9IHByb3h5SW5mb0Zyb21TZXNzaW9uKHJlbW90ZUFkZHJlc3MsICpzZXNzaW9u
KSwgdXNlckFnZW50ID0gV1RGTW92ZSh1c2VyQWdlbnQpLmlzb2xhdGVkQ29weSgpLCBvcHRpb25z
XSgpIHsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+IHNv
Y2tldChtX3BhY2tldFNvY2tldEZhY3RvcnktPkNyZWF0ZUNsaWVudFRjcFNvY2tldChsb2NhbEFk
ZHJlc3MsIHJlbW90ZUFkZHJlc3MsIHByb3h5SW5mbywgdXNlckFnZW50LnV0ZjgoKS5kYXRhKCks
IG9wdGlvbnMpKTsKICAgICAgICAgY3JlYXRlU29ja2V0KGlkZW50aWZpZXIsIFdURk1vdmUoc29j
a2V0KSwgTGliV2ViUlRDU29ja2V0Q2xpZW50OjpUeXBlOjpDbGllbnRUQ1ApOwogICAgIH0pOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29y
a1JUQ1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3
b3JrUlRDUHJvdmlkZXIuaAppbmRleCBjNmU4NjcyZGJkMDc4ZDg3MzQ1ZjJmMGNkMjJmYzM5MzBl
N2YxOWRmLi4zMmNhNmMyZDJlYzRhMTNiMzA2MTQxOTU0MGI2OGY1MTRiZjc5MGJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRD
UHJvdmlkZXIuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtSVENNb25pdG9y
LmgiCiAjaW5jbHVkZSAiUlRDTmV0d29yay5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRD
TWFjcm9zLmg+CisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9w
MnAvYmFzZS9iYXNpY3BhY2tldHNvY2tldGZhY3RvcnkuaD4KICNpbmNsdWRlIDx3ZWJydGMvcnRj
X2Jhc2UvdGhpcmRfcGFydHkvc2lnc2xvdC9zaWdzbG90Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KQEAgLTQ3LDYgKzQ4LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2VzczsKIGNsYXNzIE5ldHdvcmtSVENSZXNvbHZlcjsKIGNsYXNz
IE5ldHdvcmtSVENTb2NrZXQ7CitjbGFzcyBOZXR3b3JrU2Vzc2lvbjsKIAogY2xhc3MgTmV0d29y
a1JUQ1Byb3ZpZGVyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPE5ldHdvcmtSVENQcm92
aWRlcj4sIHB1YmxpYyBydGM6Ok1lc3NhZ2VIYW5kbGVyIHsKIHB1YmxpYzoKQEAgLTc1LDcgKzc3
LDcgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBOZXR3b3JrUlRDUHJvdmlkZXIoTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKIAogICAgIHZvaWQgY3JlYXRlVURQU29ja2V0KHVpbnQ2
NF90LCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QsIHVpbnQxNl90
KTsKLSAgICB2b2lkIGNyZWF0ZUNsaWVudFRDUFNvY2tldCh1aW50NjRfdCwgY29uc3QgUlRDTmV0
d29yazo6U29ja2V0QWRkcmVzcyYsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCBp
bnQpOworICAgIHZvaWQgY3JlYXRlQ2xpZW50VENQU29ja2V0KHVpbnQ2NF90LCBjb25zdCBSVENO
ZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYs
IFBBTDo6U2Vzc2lvbklELCBTdHJpbmcmJiB1c2VyQWdlbnQsIGludCk7CiAgICAgdm9pZCBjcmVh
dGVTZXJ2ZXJUQ1BTb2NrZXQodWludDY0X3QsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJl
c3MmLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQpOwogICAgIHZvaWQg
d3JhcE5ld1RDUENvbm5lY3Rpb24odWludDY0X3QgaWRlbnRpZmllciwgdWludDY0X3QgbmV3Q29u
bmVjdGlvblNvY2tldElkZW50aWZpZXIpOwogCkBAIC04OCw2ICs5MCw4IEBAIHByaXZhdGU6CiAK
ICAgICB2b2lkIE9uTWVzc2FnZShydGM6Ok1lc3NhZ2UqKTsKIAorICAgIHN0YXRpYyBydGM6OlBy
b3h5SW5mbyBwcm94eUluZm9Gcm9tU2Vzc2lvbihjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRy
ZXNzJiwgTmV0d29ya1Nlc3Npb24mKTsKKwogICAgIEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5p
cXVlX3B0cjxOZXR3b3JrUlRDUmVzb2x2ZXI+PiBtX3Jlc29sdmVyczsKICAgICBIYXNoTWFwPHVp
bnQ2NF90LCBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDU29ja2V0Q2xpZW50Pj4gbV9zb2NrZXRz
OwogICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiBtX2Nvbm5lY3Rpb247CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJv
dmlkZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9O
ZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMuaW4KaW5kZXggNDg5MTRjMzdmNWU5NTVhY2YzMWM4
YTdmMGU2NjYyMGU1MmFmY2Y1MS4uYjQxNTUzNzlkZDhmNDZmN2U4NjhmY2NmOTM0YjU4NDk0ZmQx
NjAyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0
d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5pbgpAQCAtMjUsNyArMjUs
NyBAQAogbWVzc2FnZXMgLT4gTmV0d29ya1JUQ1Byb3ZpZGVyIHsKICAgICBDcmVhdGVVRFBTb2Nr
ZXQoaW50IGlkZW50aWZpZXIsIFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyBsb2Nh
bEFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQpCiAgICAgQ3JlYXRl
U2VydmVyVENQU29ja2V0KGludCBpZGVudGlmaWVyLCBXZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tl
dEFkZHJlc3MgbG9jYWxBZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0
LCBpbnQgb3B0aW9ucykKLSAgICBDcmVhdGVDbGllbnRUQ1BTb2NrZXQoaW50IGlkZW50aWZpZXIs
IFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIFdlYktpdDo6
UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyByZW1vdGVBZGRyZXNzLCBpbnQgb3B0aW9ucykKKyAg
ICBDcmVhdGVDbGllbnRUQ1BTb2NrZXQoaW50IGlkZW50aWZpZXIsIFdlYktpdDo6UlRDTmV0d29y
azo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0
QWRkcmVzcyByZW1vdGVBZGRyZXNzLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyB1
c2VyQWdlbnQsIGludCBvcHRpb25zKQogICAgIENyZWF0ZVJlc29sdmVyKHVpbnQ2NF90IGlkZW50
aWZpZXIsIFN0cmluZyBhZGRyZXNzKQogICAgIFN0b3BSZXNvbHZlcih1aW50NjRfdCBpZGVudGlm
aWVyKQogICAgIFdyYXBOZXdUQ1BDb25uZWN0aW9uKHVpbnQ2NF90IGlkZW50aWZpZXIsIHVpbnQ2
NF90IG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1tIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1tCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmY2NTZjYWU5MTMyM2M4ZTJhOGUyNWQ2NDExNzY1ZGMyNTRkNGMyMDUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRD
UHJvdmlkZXIubW0KQEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJOZXR3b3JrUlRDUHJvdmlkZXIuaCIKKworI2lmIFVTRShMSUJXRUJS
VEMpCisKKyNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbkNvY29hLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9MaWJXZWJSVENNYWNyb3MuaD4KKyNpbmNsdWRlIDx3ZWJydGMvcnRjX2Jhc2UvYXN5bmNwYWNr
ZXRzb2NrZXQuaD4KKyNpbmNsdWRlIDx3ZWJydGMvcnRjX2Jhc2UvbG9nZ2luZy5oPgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworc3RhdGljIGlubGluZSBib29sIGlzRW5hYmxlZChDRkRpY3Rpb25h
cnlSZWYgcHJveHksIENGU3RyaW5nUmVmIGtleSkKK3sKKyAgICBhdXRvIGVuYWJsZWQgPSBzdGF0
aWNfY2FzdDxDRk51bWJlclJlZj4oQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUocHJveHksIGtleSkpOwor
CisgICAgaWYgKCFlbmFibGVkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpbnQgcmVz
dWx0OworICAgIHJldHVybiBDRk51bWJlckdldFZhbHVlKGVuYWJsZWQsIGtDRk51bWJlckludFR5
cGUsICZyZXN1bHQpOworICAgIHJldHVybiAhIXJlc3VsdDsKK30KKworc3RhdGljIGlubGluZSBy
dGM6OlByb3h5SW5mbyBjcmVhdGVSVENQcm94eShDRkRpY3Rpb25hcnlSZWYgcHJveHksIHJ0Yzo6
UHJveHlUeXBlIHR5cGUsIENGU3RyaW5nUmVmIG5hbWVLZXksIENGU3RyaW5nUmVmIHBvcnRLZXkp
Cit7CisgICAgcnRjOjpQcm94eUluZm8gaW5mbzsKKyAgICBpbmZvLnR5cGUgPSB0eXBlOworCisg
ICAgYXV0byBwcm94eUhvc3ROYW1lID0gc3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KENGRGljdGlv
bmFyeUdldFZhbHVlKHByb3h5LCBuYW1lS2V5KSk7CisgICAgaWYgKCFwcm94eUhvc3ROYW1lKQor
ICAgICAgICByZXR1cm4geyB9OworICAgIGF1dG8gcG9ydE51bWJlciA9IHN0YXRpY19jYXN0PENG
TnVtYmVyUmVmPihDRkRpY3Rpb25hcnlHZXRWYWx1ZShwcm94eSwgcG9ydEtleSkpOworICAgIGlm
ICghcG9ydE51bWJlcikKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGludCBwcm94eVBvcnQ7
CisgICAgaWYgKCFDRk51bWJlckdldFZhbHVlKHBvcnROdW1iZXIsIGtDRk51bWJlclNJbnQzMlR5
cGUsICZwcm94eVBvcnQpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaW5mby5hZGRyZXNz
ID0geyBzdGQ6OnN0cmluZyhbKF9fYnJpZGdlIE5TU3RyaW5nICopcHJveHlIb3N0TmFtZSBVVEY4
U3RyaW5nXSksIHByb3h5UG9ydCB9OworICAgIGluZm8uYXV0b2RldGVjdCA9IGZhbHNlOworICAg
IHJldHVybiBpbmZvOworfQorCitydGM6OlByb3h5SW5mbyBOZXR3b3JrUlRDUHJvdmlkZXI6OnBy
b3h5SW5mb0Zyb21TZXNzaW9uKGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCBOZXR3
b3JrU2Vzc2lvbiYgc2Vzc2lvbikKK3sKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNoZWNrIGZv
ciBrQ0ZOZXR3b3JrUHJveGllc0V4Y2VwdGlvbnNMaXN0IHRvIGRlY2lkZSB3aGV0aGVyIHRvIHVz
ZSBwcm94eSBvciBub3QuCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBhbHNvIGdldCB1c2VybmFt
ZS9wYXNzd29yZCBmb3IgYXV0aGVudGljYXRpb24gY2FzZXMuCisgICAgYXV0byBwcm94eURpY3Rp
b25hcnkgPSBzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvbkNvY29hJj4oc2Vzc2lvbikucHJveHlD
b25maWd1cmF0aW9uKCk7CisgICAgaWYgKCFwcm94eURpY3Rpb25hcnkpCisgICAgICAgIHByb3h5
RGljdGlvbmFyeSA9IENGTmV0d29ya0NvcHlTeXN0ZW1Qcm94eVNldHRpbmdzKCk7CisjaWYgUExB
VEZPUk0oTUFDKQorICAgIGlmIChpc0VuYWJsZWQocHJveHlEaWN0aW9uYXJ5LCBrQ0ZOZXR3b3Jr
UHJveGllc0hUVFBTRW5hYmxlKSkKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJUQ1Byb3h5KHByb3h5
RGljdGlvbmFyeSwgcnRjOjpQUk9YWV9IVFRQUywga0NGTmV0d29ya1Byb3hpZXNIVFRQU1Byb3h5
LCBrQ0ZOZXR3b3JrUHJveGllc0hUVFBTUG9ydCk7CisKKyAgICBpZiAoaXNFbmFibGVkKHByb3h5
RGljdGlvbmFyeSwga0NGTmV0d29ya1Byb3hpZXNTT0NLU0VuYWJsZSkpCisgICAgICAgIHJldHVy
biBjcmVhdGVSVENQcm94eShwcm94eURpY3Rpb25hcnksIHJ0Yzo6UFJPWFlfU09DS1M1LCBrQ0ZO
ZXR3b3JrUHJveGllc1NPQ0tTUHJveHksIGtDRk5ldHdvcmtQcm94aWVzU09DS1NQb3J0KTsKKyNl
bmRpZgorI2lmIFBMQVRGT1JNKElPUykKKyAgICBpZiAoaXNFbmFibGVkKHByb3h5RGljdGlvbmFy
eSwga0NGTmV0d29ya1Byb3hpZXNIVFRQRW5hYmxlKSkKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJU
Q1Byb3h5KHByb3h5RGljdGlvbmFyeSwgcnRjOjpQUk9YWV9IVFRQUywga0NGTmV0d29ya1Byb3hp
ZXNIVFRQUHJveHksIGtDRk5ldHdvcmtQcm94aWVzSFRUUFBvcnQpOworI2VuZGlmCisgICAgcmV0
dXJuIHsgfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBVU0UoTElC
V0VCUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggZTE2NjQwNjBjYTkzN2I3ODczYjNlNGU0ZTBiZjQ2ZGU3ZjFmODdmOC4uYTFiOTc4
YzNjMmE4YThlOTQ0ODhhOGE2ODhlNWU5Mzc0ZjgyYWU4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04ODMsNiArODgzLDcgQEAKIAkJ
NDE0REQzN0EyMEJGNDlBNTAwNjk1OUZCIC8qIGNvbS5jaXNjby53ZWJleC5wbHVnaW4uZ3BjNjQu
c2IgaW4gQ29weSBQbHVnLWluIFNhbmRib3ggUHJvZmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDE0REQzNzgyMEJGNDNFQTAwNjk1OUZCIC8qIGNvbS5jaXNjby53ZWJl
eC5wbHVnaW4uZ3BjNjQuc2IgKi87IH07CiAJCTQxNERFREQ3MUY5RURERTUwMDQ3QzQwRCAvKiBT
ZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTRERURENTFGOUVERERGMDA0N0M0MEQgLyogU2VydmljZVdvcmtl
clByb2Nlc3NQcm94eS5oICovOyB9OwogCQk0MTU3RTRCMDIwRTJFQ0RGMDBBNkMwRDcgLyogY29t
Lmdvb2dsZS5vMWRicm93c2VycGx1Z2luLnNiIGluIENvcHkgUGx1Zy1pbiBTYW5kYm94IFByb2Zp
bGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNTdFNEFGMjBFMkVDOTgw
MEE2QzBENyAvKiBjb20uZ29vZ2xlLm8xZGJyb3dzZXJwbHVnaW4uc2IgKi87IH07CisJCTQxNzY5
MDE0MjJGREQ0MUIwMEIxNTc2RCAvKiBOZXR3b3JrUlRDUHJvdmlkZXIubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc2OTAxMzIyRkRENDFCMDBCMTU3
NkQgLyogTmV0d29ya1JUQ1Byb3ZpZGVyLm1tICovOyB9OwogCQk0MTc5MTVBRjIyNTZCQjc1MDBE
NkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDE3OTE1QUQyMjU2QkI3NDAwRDZGOTdFIC8qIFdlYlNvY2tldENo
YW5uZWwuaCAqLzsgfTsKIAkJNDE3OTE1QjEyMjU2QzBENjAwRDZGOTdFIC8qIFdlYlNvY2tldENo
YW5uZWxNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MTc5MTVCMDIyNTZDMEQ2MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIu
aCAqLzsgfTsKIAkJNDE3OTE1QjkyMjU3MDQ2RjAwRDZGOTdFIC8qIE5ldHdvcmtTb2NrZXRDaGFu
bmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc5
MTVCNjIyNTcwNDZFMDBENkY5N0UgLyogTmV0d29ya1NvY2tldENoYW5uZWwuaCAqLzsgfTsKQEAg
LTMxMjcsNiArMzEyOCw3IEBACiAJCTQxNTFFNUMzMUZCQjkwQTkwMEU0N0UyRCAvKiBGb3JtRGF0
YVJlZmVyZW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtRGF0YVJl
ZmVyZW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTU3ODUzMDIxMjc2QjZG
MDBERDM4MDAgLyogY29weS13ZWJjb250ZW50LXJlc291cmNlcy10by1wcml2YXRlLWhlYWRlcnMu
c2ggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
LnNjcmlwdC5zaDsgcGF0aCA9ICJjb3B5LXdlYmNvbnRlbnQtcmVzb3VyY2VzLXRvLXByaXZhdGUt
aGVhZGVycy5zaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNTdFNEFGMjBFMkVD
OTgwMEE2QzBENyAvKiBjb20uZ29vZ2xlLm8xZGJyb3dzZXJwbHVnaW4uc2IgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gY29tLmdvb2dsZS5vMWRicm93c2VycGx1Z2luLnNiOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0MTc2OTAxMzIyRkRENDFCMDBCMTU3NkQgLyogTmV0d29ya1JUQ1By
b3ZpZGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmV0d29y
a1JUQ1Byb3ZpZGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc5MTVBQzIy
NTZCQjc0MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJTb2NrZXRDaGFubmVsLmNwcDsgcGF0aCA9IE5ldHdvcmsv
V2ViU29ja2V0Q2hhbm5lbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzkx
NUFEMjI1NkJCNzQwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlNvY2tldENoYW5uZWwuaDsgcGF0aCA9IE5ldHdvcmsvV2Vi
U29ja2V0Q2hhbm5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc5MTVCMDIy
NTZDMEQ2MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuaDsgcGF0aCA9IE5l
dHdvcmsvV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTY1NTAsNiArNjU1Miw3IEBACiAJCQkJNDFEQzQ1OTUxRTNENkUxRTAwQjExRjUxIC8q
IE5ldHdvcmtSVENQcm92aWRlci5jcHAgKi8sCiAJCQkJNDFEQzQ1OTQxRTNENkUxRTAwQjExRjUx
IC8qIE5ldHdvcmtSVENQcm92aWRlci5oICovLAogCQkJCTQxREM0NTk4MUUzRDZFRDYwMEIxMUY1
MSAvKiBOZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJNDE3NjkwMTMyMkZE
RDQxQjAwQjE1NzZEIC8qIE5ldHdvcmtSVENQcm92aWRlci5tbSAqLywKIAkJCQk0MTEyQjU0NzFG
OUZEM0FCMDBFNjc4NzUgLyogTmV0d29ya1JUQ1Jlc29sdmVyLmNwcCAqLywKIAkJCQk0MTEyQjU0
ODFGOUZEM0FDMDBFNjc4NzUgLyogTmV0d29ya1JUQ1Jlc29sdmVyLmggKi8sCiAJCQkJNDExMkI1
NDcxRjlGRDNBQjAwRTY3OTg2IC8qIE5ldHdvcmtSVENSZXNvbHZlckNvY29hLmNwcCAqLywKQEAg
LTExMTQzLDYgKzExMTQ2LDcgQEAKIAkJCQk1MTNBMTYzQzE2MzA4OEY2MDA1RDdEMjIgLyogTmV0
d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlF
MTUyNTUxQTE3MDExODE5MDAzRDdBREIgLyogTmV0d29ya1Jlc291cmNlTG9hZGVyTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYzMjgxRSAv
KiBOZXR3b3JrUlRDTW9uaXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk0MTc2OTAxNDIyRkRENDFCMDBCMTU3NkQgLyogTmV0d29ya1JUQ1Byb3ZpZGVyLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTFGMDYwRTExNjU0MzE4NTAwRjMyODJFIC8qIE5ldHdvcmtSVENQcm92
aWRlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUYwNjBFMTE2NTQz
MTg1MDBGMzI4MUQgLyogTmV0d29ya1JUQ1NvY2tldE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkzMUYwNjBFMTE2NTQzMTg1MDBGMzI4MUMgLyogTmV0d29ya1NvY2tldENo
YW5uZWxNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3Zp
ZGVyLmNwcAppbmRleCBhZmUyNDA4ODRjM2NiYWFhNmFkMjM4YmJlMjNmOTU5MzE1OTE5MjFkLi4w
OTRhYzcxZjdlNWVmZmFiNzQ4NWZjZWZjYWU1NDg5M2RiM2UwNTA2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQ
cm92aWRlci5jcHAKQEAgLTQ0LDkgKzQ0LDkgQEAgcHJpdmF0ZToKICAgICB9CiB9OwogCi1ydGM6
OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gTGliV2ViUlRD
UHJvdmlkZXI6OmNyZWF0ZVBlZXJDb25uZWN0aW9uKHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25PYnNl
cnZlciYgb2JzZXJ2ZXIsIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZp
Z3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQorcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6UGVl
ckNvbm5lY3Rpb25JbnRlcmZhY2U+IExpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVQZWVyQ29ubmVj
dGlvbih3ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXImIG9ic2VydmVyLCBydGM6OlBhY2tl
dFNvY2tldEZhY3RvcnkqIHNvY2tldEZhY3RvcnksIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRl
cmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogewotICAgIHJldHVybiBX
ZWJDb3JlOjpMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlckNvbm5lY3Rpb24ob2JzZXJ2ZXIs
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ05ldHdvcmsoKS5tb25pdG9yKCksIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ05ldHdvcmsoKS5zb2NrZXRGYWN0b3J5KCks
IFdURk1vdmUoY29uZmlndXJhdGlvbiksIHN0ZDo6bWFrZV91bmlxdWU8QXN5bmNSZXNvbHZlckZh
Y3Rvcnk+KCkpOworICAgIHJldHVybiBXZWJDb3JlOjpMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRl
UGVlckNvbm5lY3Rpb24ob2JzZXJ2ZXIsIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJU
Q05ldHdvcmsoKS5tb25pdG9yKCksICpzb2NrZXRGYWN0b3J5LCBXVEZNb3ZlKGNvbmZpZ3VyYXRp
b24pLCBzdGQ6Om1ha2VfdW5pcXVlPEFzeW5jUmVzb2x2ZXJGYWN0b3J5PigpKTsKIH0KIAogdm9p
ZCBMaWJXZWJSVENQcm92aWRlcjo6ZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKCkKQEAg
LTY0LDYgKzY0LDQ3IEBAIHZvaWQgTGliV2ViUlRDUHJvdmlkZXI6OnJlZ2lzdGVyTUROU05hbWUo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBkb2N1CiAgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkubGliV2ViUlRDTmV0d29yaygpLm1kbnNSZWdpc3RlcigpLnJlZ2lzdGVyTURO
U05hbWUoc2Vzc2lvbklELCBkb2N1bWVudElkZW50aWZpZXIsIGlwQWRkcmVzcywgV1RGTW92ZShj
YWxsYmFjaykpOwogfQogCitjbGFzcyBSVENTb2NrZXRGYWN0b3J5IGZpbmFsIDogcHVibGljIHJ0
Yzo6UGFja2V0U29ja2V0RmFjdG9yeSB7CitwdWJsaWM6CisgICAgUlRDU29ja2V0RmFjdG9yeShQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyYmIHVzZXJBZ2VudCkKKyAgICAgICAgOiBt
X3Nlc3Npb25JRChzZXNzaW9uSUQpCisgICAgICAgICwgbV91c2VyQWdlbnQoV1RGTW92ZSh1c2Vy
QWdlbnQpKQorICAgIHsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgcnRjOjpBc3luY1BhY2tldFNv
Y2tldCogQ3JlYXRlVWRwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywg
dWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCkgZmluYWwKKyAgICB7CisgICAgICAg
IHJldHVybiBmYWN0b3J5KCkuY3JlYXRlVWRwU29ja2V0KGFkZHJlc3MsIG1pblBvcnQsIG1heFBv
cnQpOworICAgIH0KKworICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIENyZWF0ZVNlcnZlclRj
cFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBv
cnQsIHVpbnQxNl90IG1heFBvcnQsIGludCBvcHRpb25zKSBmaW5hbAorICAgIHsKKyAgICAgICAg
cmV0dXJuIGZhY3RvcnkoKS5jcmVhdGVTZXJ2ZXJUY3BTb2NrZXQoYWRkcmVzcywgbWluUG9ydCwg
bWF4UG9ydCwgb3B0aW9ucyk7CisgICAgfQorCisgICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCog
Q3JlYXRlQ2xpZW50VGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRy
ZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIGNvbnN0IHJ0Yzo6
UHJveHlJbmZvJiwgY29uc3Qgc3RkOjpzdHJpbmcmLCBpbnQgb3B0aW9ucykgZmluYWwKKyAgICB7
CisgICAgICAgIHJldHVybiBmYWN0b3J5KCkuY3JlYXRlQ2xpZW50VGNwU29ja2V0KGxvY2FsQWRk
cmVzcywgcmVtb3RlQWRkcmVzcywgbV9zZXNzaW9uSUQsIFN0cmluZyB7IG1fdXNlckFnZW50IH0s
IG9wdGlvbnMpOworICAgIH0KKworICAgIHJ0Yzo6QXN5bmNSZXNvbHZlckludGVyZmFjZSogQ3Jl
YXRlQXN5bmNSZXNvbHZlcigpIGZpbmFsCisgICAgeworICAgICAgICByZXR1cm4gZmFjdG9yeSgp
LmNyZWF0ZUFzeW5jUmVzb2x2ZXIoKTsKKyAgICB9CisKKyAgICBMaWJXZWJSVENTb2NrZXRGYWN0
b3J5JiBmYWN0b3J5KCkgeyByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRD
TmV0d29yaygpLnNvY2tldEZhY3RvcnkoKTsgfQorCitwcml2YXRlOgorICAgIFBBTDo6U2Vzc2lv
bklEIG1fc2Vzc2lvbklEOworICAgIFN0cmluZyBtX3VzZXJBZ2VudDsKK307CisKK3N0ZDo6dW5p
cXVlX3B0cjxydGM6OlBhY2tldFNvY2tldEZhY3Rvcnk+IExpYldlYlJUQ1Byb3ZpZGVyOjpjcmVh
dGVTb2NrZXRGYWN0b3J5KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3RyaW5nJiYgdXNlckFn
ZW50KQoreworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFJUQ1NvY2tldEZhY3Rvcnk+KHNl
c3Npb25JRCwgV1RGTW92ZSh1c2VyQWdlbnQpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CiAKICNlbmRpZiAvLyBVU0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaAppbmRleCBh
MTQxNzAwY2U2ZjRhMTg2YzIxNjY2MjhhZGI5MGFmNGQ5ZmU0ZTU2Li5mNjVhNjI5NWVjOTBlMWQy
Yjc2ZmY0NzEyMjI2ZDg0M2M3ZDk2NGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaApAQCAtNTAs
NyArNTAsOSBAQCBwdWJsaWM6CiAgICAgTGliV2ViUlRDUHJvdmlkZXIoKSB7IG1fdXNlTmV0d29y
a1RocmVhZFdpdGhTb2NrZXRTZXJ2ZXIgPSBmYWxzZTsgfQogCiBwcml2YXRlOgotICAgIHJ0Yzo6
c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBjcmVhdGVQZWVy
Q29ubmVjdGlvbih3ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXImLCB3ZWJydGM6OlBlZXJD
b25uZWN0aW9uSW50ZXJmYWNlOjpSVENDb25maWd1cmF0aW9uJiYpIGZpbmFsOworICAgIHN0ZDo6
dW5pcXVlX3B0cjxydGM6OlBhY2tldFNvY2tldEZhY3Rvcnk+IGNyZWF0ZVNvY2tldEZhY3Rvcnko
UEFMOjpTZXNzaW9uSUQsIFN0cmluZyYmIC8qIHVzZXJBZ2VudCAqLykgZmluYWw7CisKKyAgICBy
dGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gY3JlYXRl
UGVlckNvbm5lY3Rpb24od2VicnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyJiwgcnRjOjpQYWNr
ZXRTb2NrZXRGYWN0b3J5Kiwgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6UlRDQ29u
ZmlndXJhdGlvbiYmKSBmaW5hbDsKIAogICAgIHZvaWQgdW5yZWdpc3Rlck1ETlNOYW1lcyh1aW50
NjRfdCBkb2N1bWVudElkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgcmVnaXN0ZXJNRE5TTmFt
ZShQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgZG9jdW1lbnRJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIGlwQWRkcmVzcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNRE5TTmFtZU9yRXJyb3ImJik+
JiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwCmluZGV4IGQ3Nzhk
NTc3ZWE4ZWZjMWIzNTZkZjFkN2MwMTdlY2RmMzE4ODEwNmEuLmY4YjdlZDIyOWM0ZjZmMmRjMDM2
MTMyY2M5NmU0MTFlZWNhNTcwMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5j
cHAKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RhdGljIGlubGluZSBydGM6OlNvY2tldEFkZHJlc3MgcHJl
cGFyZVNvY2tldEFkZHJlc3MoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJgogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKLXJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rv
cnk6OkNyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJl
c3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCBvcHRpb25zKQorcnRj
OjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlU2VydmVy
VGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWlu
UG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpCiB7CiAgICAgYXV0byBzb2NrZXQg
PSBzdGQ6Om1ha2VfdW5pcXVlPExpYldlYlJUQ1NvY2tldD4oKnRoaXMsICsrc191bmlxdWVTb2Nr
ZXRJZGVudGlmaWVyLCBMaWJXZWJSVENTb2NrZXQ6OlR5cGU6OlNlcnZlclRDUCwgYWRkcmVzcywg
cnRjOjpTb2NrZXRBZGRyZXNzKCkpOwogICAgIG1fc29ja2V0cy5zZXQoc29ja2V0LT5pZGVudGlm
aWVyKCksIHNvY2tldC5nZXQoKSk7CkBAIC02NCw3ICs2NCw3IEBAIHJ0Yzo6QXN5bmNQYWNrZXRT
b2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZVNlcnZlclRjcFNvY2tldChjb25z
dCBydGM6CiAgICAgcmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7CiB9CiAKLXJ0Yzo6QXN5bmNQYWNr
ZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZVVkcFNvY2tldChjb25zdCBy
dGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1h
eFBvcnQpCitydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5Ojpj
cmVhdGVVZHBTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZf
dCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQogewogICAgIGF1dG8gc29ja2V0ID0gc3RkOjpt
YWtlX3VuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCArK3NfdW5pcXVlU29ja2V0SWRlbnRp
ZmllciwgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpVRFAsIGFkZHJlc3MsIHJ0Yzo6U29ja2V0QWRk
cmVzcygpKTsKICAgICBtX3NvY2tldHMuc2V0KHNvY2tldC0+aWRlbnRpZmllcigpLCBzb2NrZXQu
Z2V0KCkpOwpAQCAtNzgsMTQgKzc4LDE0IEBAIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldl
YlJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZVVkcFNvY2tldChjb25zdCBydGM6OlNvY2tlCiAgICAg
cmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7CiB9CiAKLXJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExp
YldlYlJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZUNsaWVudFRjcFNvY2tldChjb25zdCBydGM6OlNv
Y2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1v
dGVBZGRyZXNzLCBjb25zdCBydGM6OlByb3h5SW5mbyYsIGNvbnN0IHN0ZDo6c3RyaW5nJiwgaW50
IG9wdGlvbnMpCitydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5
OjpjcmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFk
ZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBTdHJpbmcmJiB1c2VyQWdlbnQsIGludCBvcHRpb25zKQogewogICAg
IGF1dG8gc29ja2V0ID0gc3RkOjptYWtlX3VuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCAr
K3NfdW5pcXVlU29ja2V0SWRlbnRpZmllciwgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpDbGllbnRU
Q1AsIGxvY2FsQWRkcmVzcywgcmVtb3RlQWRkcmVzcyk7CiAgICAgc29ja2V0LT5zZXRTdGF0ZShM
aWJXZWJSVENTb2NrZXQ6OlNUQVRFX0NPTk5FQ1RJTkcpOwogICAgIG1fc29ja2V0cy5zZXQoc29j
a2V0LT5pZGVudGlmaWVyKCksIHNvY2tldC5nZXQoKSk7CiAKLSAgICBjYWxsT25NYWluVGhyZWFk
KFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlmaWVyKCksIGxvY2FsQWRkcmVzcyA9IHByZXBh
cmVTb2NrZXRBZGRyZXNzKGxvY2FsQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVj
dGlvbnMpLCByZW1vdGVBZGRyZXNzID0gcHJlcGFyZVNvY2tldEFkZHJlc3MocmVtb3RlQWRkcmVz
cywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpLCBvcHRpb25zXSgpIHsKLSAgICAg
ICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpD
cmVhdGVDbGllbnRUQ1BTb2NrZXQoaWRlbnRpZmllciwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVz
cyhsb2NhbEFkZHJlc3MpLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKHJlbW90ZUFkZHJlc3Mp
LCBvcHRpb25zKSwgMCkpIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gc29j
a2V0LT5pZGVudGlmaWVyKCksIGxvY2FsQWRkcmVzcyA9IHByZXBhcmVTb2NrZXRBZGRyZXNzKGxv
Y2FsQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpLCByZW1vdGVBZGRy
ZXNzID0gcHJlcGFyZVNvY2tldEFkZHJlc3MocmVtb3RlQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9j
YWxob3N0Q29ubmVjdGlvbnMpLCBzZXNzaW9uSUQsIHVzZXJBZ2VudCA9IFdURk1vdmUodXNlckFn
ZW50KS5pc29sYXRlZENvcHkoKSwgb3B0aW9uc10oKSB7CisgICAgICAgIGlmICghV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlv
bigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlQ2xpZW50VENQU29j
a2V0KGlkZW50aWZpZXIsIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MobG9jYWxBZGRyZXNzKSwg
UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhyZW1vdGVBZGRyZXNzKSwgc2Vzc2lvbklELCB1c2Vy
QWdlbnQsIG9wdGlvbnMpLCAwKSkgewogICAgICAgICAgICAgLy8gRklYTUU6IFNldCBlcnJvciBi
YWNrIHRvIHNvY2tldAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xMTUsNyAr
MTE1LDcgQEAgdm9pZCBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpkZXRhY2goTGliV2ViUlRDU29j
a2V0JiBzb2NrZXQpCiAgICAgbV9zb2NrZXRzLnJlbW92ZShzb2NrZXQuaWRlbnRpZmllcigpKTsK
IH0KIAotcnRjOjpBc3luY1Jlc29sdmVySW50ZXJmYWNlKiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5
OjpDcmVhdGVBc3luY1Jlc29sdmVyKCkKK3J0Yzo6QXN5bmNSZXNvbHZlckludGVyZmFjZSogTGli
V2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlQXN5bmNSZXNvbHZlcigpCiB7CiAgICAgYXV0byBy
ZXNvbHZlciA9IHN0ZDo6bWFrZV91bmlxdWU8TGliV2ViUlRDUmVzb2x2ZXI+KCsrc191bmlxdWVS
ZXNvbHZlcklkZW50aWZpZXIpOwogICAgIGF1dG8qIHJlc29sdmVyUG9pbnRlciA9IHJlc29sdmVy
LmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmgKaW5kZXggZjBiNDE5NTcxM2Zi
NzU1YTAwNDk3MzlhNjI1YTIwMWNjNDkyZWMxYi4uMjQ0NjYwNGMxNTAwMThlZjYxNDQ0ZGE0ZTRh
YjZiZDVlN2I3NDJhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oCkBAIC0zNiw3
ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBMaWJXZWJSVENTb2NrZXRG
YWN0b3J5IGZpbmFsIDogcHVibGljIHJ0Yzo6UGFja2V0U29ja2V0RmFjdG9yeSB7CitjbGFzcyBM
aWJXZWJSVENTb2NrZXRGYWN0b3J5IHsKIHB1YmxpYzoKICAgICBMaWJXZWJSVENTb2NrZXRGYWN0
b3J5KCkgeyB9CiAKQEAgLTUxLDEzICs1MSwxMiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpc2Fi
bGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucygpIHsgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVj
dGlvbnMgPSB0cnVlOyB9CiAKLSAgICBydGM6OkFzeW5jUmVzb2x2ZXJJbnRlcmZhY2UqIGNyZWF0
ZUFzeW5jUmVzb2x2ZXIoKSB7IHJldHVybiBDcmVhdGVBc3luY1Jlc29sdmVyKCk7IH0KKyAgICBy
dGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVVZHBTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRB
ZGRyZXNzJiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCk7CisgICAgcnRjOjpB
c3luY1BhY2tldFNvY2tldCogY3JlYXRlU2VydmVyVGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0
QWRkcmVzcyYsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCBvcHRpb25z
KTsKKyAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVDbGllbnRUY3BTb2NrZXQoY29u
c3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRk
cmVzcyYgcmVtb3RlQWRkcmVzcywgUEFMOjpTZXNzaW9uSUQsIFN0cmluZyYmIHVzZXJBZ2VudCwg
aW50IG9wdGlvbnMpOworICAgIHJ0Yzo6QXN5bmNSZXNvbHZlckludGVyZmFjZSogY3JlYXRlQXN5
bmNSZXNvbHZlcigpOwogCiBwcml2YXRlOgotICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIENy
ZWF0ZVVkcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCBtaW5Qb3J0
LCB1aW50MTZfdCBtYXhQb3J0KSBmaW5hbDsKLSAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBD
cmVhdGVTZXJ2ZXJUY3BTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3Qg
bWluX3BvcnQsIHVpbnQxNl90IG1heF9wb3J0LCBpbnQgb3B0aW9ucykgZmluYWw7Ci0gICAgcnRj
OjpBc3luY1BhY2tldFNvY2tldCogQ3JlYXRlQ2xpZW50VGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29j
a2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90
ZUFkZHJlc3MsIGNvbnN0IHJ0Yzo6UHJveHlJbmZvJiwgY29uc3Qgc3RkOjpzdHJpbmcmLCBpbnQg
b3B0aW9ucyk7Ci0gICAgcnRjOjpBc3luY1Jlc29sdmVySW50ZXJmYWNlKiBDcmVhdGVBc3luY1Jl
c29sdmVyKCkgZmluYWw7CiAKICAgICAvLyBXZSBjYW5ub3Qgb3duIHNvY2tldHMsIGNsaWVudHMg
b2YgdGhlIGZhY3RvcnkgYXJlIHJlc3BvbnNpYmxlIHRvIGZyZWUgdGhlbS4KICAgICBIYXNoTWFw
PHVpbnQ2NF90LCBMaWJXZWJSVENTb2NrZXQqPiBtX3NvY2tldHM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376070</attachid>
            <date>2019-08-12 09:32:16 -0700</date>
            <delta_ts>2019-08-12 09:55:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200583-20190812183155.patch</filename>
            <type>text/plain</type>
            <size>35541</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCAxMzQzNWFkYmU0MTUyNTFhN2ZmNjhiODYzYjJlNDkwMWUwMmM3ZjllLi40NmIy
ZGRjMWM2NmYxZmFjYTRiMzYxNDkxMjk5ZmU5Njc0MGQxZmE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0wOC0xMiAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlciBBZ2VudCBhbmQgU2Vzc2lv
bklEIHNob3VsZCBiZSBnaXZlbiB0byBOZXR3b3JrUlRDUHJvdmlkZXIgdG8gc2V0IHVwIHRoZSBj
b3JyZWN0IHByb3h5IGluZm9ybWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDA1ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBFeHBvcnQgb2Ygc29tZSBzeW1ib2xzLgorCisgICAgICAgICogQ29u
ZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHA6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
bGlid2VicnRjLmlPU3NpbS5leHA6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvbGlid2VicnRj
Lm1hYy5leHA6CisKIDIwMTktMDgtMDIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBidWlsZCBjaGVjayBmb3IgbGlid2VicnRjIE9iamVjdGl2ZUMgbmFt
ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCAzN2RhNTA2Y2I3NDIxOWNjOWQyZWY0N2UzOTM0MGFkYTRmNDMxMzcz
Li5lN2JjMGFkYzRhMjM2MGZlYjNiYTM0NDE5ODJlZWQ3MzZmMWUxNGEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTktMDgtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgorCisgICAgICAgIFVzZXIgQWdlbnQgYW5kIFNlc3Npb25JRCBzaG91bGQgYmUgZ2l2ZW4g
dG8gTmV0d29ya1JUQ1Byb3ZpZGVyIHRvIHNldCB1cCB0aGUgY29ycmVjdCBwcm94eSBpbmZvcm1h
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAw
NTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNl
IGEgc3BlY2lmaWMgc29ja2V0IGZhY3RvcnkgdGhhdCBpcyBzcGVjaWZpYyB0byB0aGUgdXNlciBh
Z2VudCBhbmQgc2Vzc2lvbiBJRC4KKyAgICAgICAgVGhpcyBmYWN0b3J5IGlzIHN0b3JlZCBpbiB0
aGUgbWVkaWEgZW5kcG9pbnQuCisgICAgICAgIE5vdCB0ZXN0YWJsZSB3aXRob3V0IHByb3h5IGlu
ZnJhc3RydWN0dXJlLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENN
ZWRpYUVuZHBvaW50OjpzZXRDb25maWd1cmF0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50Lmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVQZWVyQ29ubmVjdGlvbik6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVy
Lmg6CisKIDIwMTktMDgtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEJsb2IgcmVnaXN0cmllcyBzaG91bGQgYmUga2V5ZWQgYnkgc2Vzc2lvbiBJRHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggOTEwMzc4ODlmODA5ZDJiMzI4MDkxODM5NTQ0OGYzYTY1Nzc1MDZkYi4uNWQxNmYx
MzgzMmJlZTFmMjJkYjBhZjZjNDVlYTJmNzExNzQ2NGQxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
MyBAQAorMjAxOS0wOC0xMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAg
ICAgICAgVXNlciBBZ2VudCBhbmQgU2Vzc2lvbklEIHNob3VsZCBiZSBnaXZlbiB0byBOZXR3b3Jr
UlRDUHJvdmlkZXIgdG8gc2V0IHVwIHRoZSBjb3JyZWN0IHByb3h5IGluZm9ybWF0aW9uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA1ODMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXNzIHNlc3Npb24g
aWQgYW5kIHVzZXIgYWdlbnQgd2hlbmV2ZXIgY3JlYXRpbmcgYSBUQ1AgY2xpZW50IHNvY2tldC4K
KyAgICAgICAgVXNlIG9mIHRoaXMgaW5mb3JtYXRpb24gdG8gZ2V0IHRoZSBwcm94eSBpbmZvcm1h
dGlvbiBmcm9tIE5ldHdvcmtTZXNzaW9uIGFuZCBwYXNzIGl0IHRvIGxpYndlYnJ0YyBzb2NrZXQg
Y3JlYXRpb24uCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lv
bkNvY29hLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92
aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6cHJveHlJbmZv
RnJvbVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0
ZUNsaWVudFRDUFNvY2tldCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdv
cmtSVENQcm92aWRlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3Jr
UlRDUHJvdmlkZXIubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQ
cm92aWRlci5tbTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6
cHJveHlJbmZvRnJvbVNlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJy
dGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENQcm92
aWRlcjo6Y3JlYXRlUGVlckNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENQ
cm92aWRlcjo6Y3JlYXRlU29ja2V0RmFjdG9yeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVNlcnZlclRjcFNvY2tldCk6CisgICAgICAg
IChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVVkcFNvY2tldCk6CisgICAg
ICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZUNsaWVudFRjcFNvY2tl
dCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZUFzeW5j
UmVzb2x2ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRD
U29ja2V0RmFjdG9yeS5oOgorCiAyMDE5LTA4LTEyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBCbG9iIHJlZ2lzdHJpZXMgc2hvdWxkIGJlIGtleWVkIGJ5IHNl
c3Npb24gSURzCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmln
dXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
Q29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHAKaW5kZXggNjQ2ZDhkNGNiZGUwZTYyZmJl
MjdjZjlhNDg2YjM0MzE0YzNhNzUyMS4uOTIwNTI5NmQ1N2Y4MmRmMGI0ODA2Yzg1MTQ2MDU4ZDgw
MjE3ZmEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3Vy
YXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cApAQCAtMjQ4LDMgKzI0OCw4IEBAIF9f
Wk42d2VicnRjMTZSdHBSdHhQYXJhbWV0ZXJzQzFFUktTMF8KIF9fWk42d2VicnRjMTZSdHBSdHhQ
YXJhbWV0ZXJzRDFFdgogX19aTjNydGMxMExvZ01lc3NhZ2UxMlNldExvZ091dHB1dEVOU18xNUxv
Z2dpbmdTZXZlcml0eUVQRnZTMV9QS2NFCiBfX1pONndlYnJ0YzEzQ3J5cHRvT3B0aW9uczVOb0dj
bUV2CitfX1pUVk4zcnRjMjNJbnNlY3VyZUNyeXB0U3RyaW5nSW1wbEUKK19fWk4zcnRjMTFDcnlw
dFN0cmluZ0MxRVJLTlNfMTVDcnlwdFN0cmluZ0ltcGxFCitfX1pOM3J0YzEzU29ja2V0QWRkcmVz
c0MxRVJLTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzFfMTFjaGFyX3RyYWl0c0ljRUVOUzFfOWFs
bG9jYXRvckljRUVFRWkKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0QxRXYKK19fWk4zcnRjMTFDcnlw
dFN0cmluZ0MxRVJLUzBfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
Q29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5leHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5leHAKaW5kZXggOTgwYzNm
NDk1MTM5ZTlkODZkMDNhNWVjMDZjZjk4YTg5YzI3NDA3My4uNmYxMzJjYmMwZTZmNmIzOGJhNWMx
ODMyZWUzNmJhMTRiMzE1ODA5NCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1NzaW0uZXhwCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2ltLmV4cApAQCAt
MjQ5LDMgKzI0OSw4IEBAIF9fWk42d2VicnRjMTZSdHBSdHhQYXJhbWV0ZXJzQzFFUktTMF8KIF9f
Wk42d2VicnRjMTZSdHBSdHhQYXJhbWV0ZXJzRDFFdgogX19aTjNydGMxMExvZ01lc3NhZ2UxMlNl
dExvZ091dHB1dEVOU18xNUxvZ2dpbmdTZXZlcml0eUVQRnZTMV9QS2NFCiBfX1pONndlYnJ0YzEz
Q3J5cHRvT3B0aW9uczVOb0djbUV2CitfX1pUVk4zcnRjMjNJbnNlY3VyZUNyeXB0U3RyaW5nSW1w
bEUKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0MxRVJLTlNfMTVDcnlwdFN0cmluZ0ltcGxFCitfX1pO
M3J0YzEzU29ja2V0QWRkcmVzc0MxRVJLTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzFfMTFjaGFy
X3RyYWl0c0ljRUVOUzFfOWFsbG9jYXRvckljRUVFRWkKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0Qx
RXYKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0MxRVJLUzBfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLm1hYy5leHAgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLm1hYy5leHAK
aW5kZXggOTgwYzNmNDk1MTM5ZTlkODZkMDNhNWVjMDZjZjk4YTg5YzI3NDA3My4uNmYxMzJjYmMw
ZTZmNmIzOGJhNWMxODMyZWUzNmJhMTRiMzE1ODA5NCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5tYWMuZXhwCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMubWFjLmV4
cApAQCAtMjQ5LDMgKzI0OSw4IEBAIF9fWk42d2VicnRjMTZSdHBSdHhQYXJhbWV0ZXJzQzFFUktT
MF8KIF9fWk42d2VicnRjMTZSdHBSdHhQYXJhbWV0ZXJzRDFFdgogX19aTjNydGMxMExvZ01lc3Nh
Z2UxMlNldExvZ091dHB1dEVOU18xNUxvZ2dpbmdTZXZlcml0eUVQRnZTMV9QS2NFCiBfX1pONndl
YnJ0YzEzQ3J5cHRvT3B0aW9uczVOb0djbUV2CitfX1pUVk4zcnRjMjNJbnNlY3VyZUNyeXB0U3Ry
aW5nSW1wbEUKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0MxRVJLTlNfMTVDcnlwdFN0cmluZ0ltcGxF
CitfX1pOM3J0YzEzU29ja2V0QWRkcmVzc0MxRVJLTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzFf
MTFjaGFyX3RyYWl0c0ljRUVOUzFfOWFsbG9jYXRvckljRUVFRWkKK19fWk4zcnRjMTFDcnlwdFN0
cmluZ0QxRXYKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0MxRVJLUzBfCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVu
ZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCmluZGV4IDQ1YmY0YTkzZDI1MDBmZTg5YTNlYmU3
N2VjMWNkOGVkZTEwNWEyZjkuLmRlZjFmOTFlZWU5ZWQ2ZWM3OGQxM2M2OWVjNDM0OGYwYWE2OGQz
NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCkBAIC04
Niw3ICs4NiwxMSBAQCBib29sIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OnNldENvbmZpZ3VyYXRp
b24oTGliV2ViUlRDUHJvdmlkZXImIGNsaWVudCwgd2VicnRjOgogICAgICAgICBjb25maWd1cmF0
aW9uLnNkcF9zZW1hbnRpY3MgPSB3ZWJydGM6OlNkcFNlbWFudGljczo6a1VuaWZpZWRQbGFuOwog
CiAgICAgaWYgKCFtX2JhY2tlbmQpIHsKLSAgICAgICAgbV9iYWNrZW5kID0gY2xpZW50LmNyZWF0
ZVBlZXJDb25uZWN0aW9uKCp0aGlzLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKKyAgICAgICAg
aWYgKCFtX3J0Y1NvY2tldEZhY3RvcnkpIHsKKyAgICAgICAgICAgIGF1dG8mIGRvY3VtZW50ID0g
ZG93bmNhc3Q8RG9jdW1lbnQ+KCptX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jb25uZWN0aW9uKCku
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICAgICAgICAgIG1fcnRjU29ja2V0RmFjdG9y
eSA9IGNsaWVudC5jcmVhdGVTb2NrZXRGYWN0b3J5KGRvY3VtZW50LnNlc3Npb25JRCgpLCBkb2N1
bWVudC51c2VyQWdlbnQoZG9jdW1lbnQudXJsKCkpKTsKKyAgICAgICAgfQorICAgICAgICBtX2Jh
Y2tlbmQgPSBjbGllbnQuY3JlYXRlUGVlckNvbm5lY3Rpb24oKnRoaXMsIG1fcnRjU29ja2V0RmFj
dG9yeS5nZXQoKSwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CiAgICAgICAgIHJldHVybiAhIW1f
YmFja2VuZDsKICAgICB9CiAgICAgYXV0byBvbGRDb25maWd1cmF0aW9uID0gbV9iYWNrZW5kLT5H
ZXRDb25maWd1cmF0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50
LmgKaW5kZXggNjJiYjQ3NmEwZTNiMjFmNmIzOWUyZGFmMmIyNmJiZTFmY2ZlZGY0Zi4uY2E5ZGY4
NmQ3OGM3MmVlYTIyYTAyOWU5YzM5ZmIxMWEzMGUyMDg5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2lu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ01lZGlhRW5kcG9pbnQuaApAQCAtMTk4LDYgKzE5OCw3IEBAIHByaXZhdGU6CiAKICAg
ICBIYXNoTWFwPFN0cmluZywgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6TWVkaWFTdHJlYW1J
bnRlcmZhY2U+PiBtX2xvY2FsU3RyZWFtczsKIAorICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OlBh
Y2tldFNvY2tldEZhY3Rvcnk+IG1fcnRjU29ja2V0RmFjdG9yeTsKICNpZiAhUkVMRUFTRV9MT0df
RElTQUJMRUQKICAgICBpbnQ2NF90IG1fc3RhdHNGaXJzdERlbGl2ZXJlZFRpbWVzdGFtcCB7IDAg
fTsKICAgICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUHJvdmlkZXIuY3BwCmluZGV4IDNhYTkwY2ZhNDZhN2VjMDBlNzU2ZGEzZmJlY2Q1MmE2NDNj
NzJlY2UuLjIwN2FiNzhhOWEyYmJlNDBhMGVkNGRhNjk1NjlhZWRiMTIyOTllMjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcApAQCAtMjgxLDcgKzI4MSw3IEBAIHZvaWQg
TGliV2ViUlRDUHJvdmlkZXI6OmVuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMo
KQogICAgIG1fZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcyA9IHRydWU7CiB9
CiAKLXJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBM
aWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlckNvbm5lY3Rpb24od2VicnRjOjpQZWVyQ29ubmVj
dGlvbk9ic2VydmVyJiBvYnNlcnZlciwgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6
UlRDQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCitydGM6OnNjb3BlZF9yZWZwdHI8d2Vi
cnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gTGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZVBl
ZXJDb25uZWN0aW9uKHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZlciYgb2JzZXJ2ZXIsIHJ0
Yzo6UGFja2V0U29ja2V0RmFjdG9yeSosIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6
OlJUQ0NvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogewogICAgIC8vIERlZmF1bHQgV0sx
IGltcGxlbWVudGF0aW9uLgogICAgIEFTU0VSVChtX3VzZU5ldHdvcmtUaHJlYWRXaXRoU29ja2V0
U2VydmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKaW5kZXggMjQ4NTcyZjM2
Y2YxNjcyMmQ1NDg1NTJjOGU1ZWYxZTNiNDMyOGU4OC4uYmRmMDkwMDQwYzkwNjU3ZjQ5ZjBjZTRh
ZTI4MDc3MzhhMWU4YmU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKQEAg
LTkxLDcgKzkxLDcgQEAgcHVibGljOgogICAgIH0KIAogI2lmIFVTRShMSUJXRUJSVEMpCi0gICAg
dmlydHVhbCBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFj
ZT4gY3JlYXRlUGVlckNvbm5lY3Rpb24od2VicnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyJiwg
d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6UlRDQ29uZmlndXJhdGlvbiYmKTsKKyAg
ICB2aXJ0dWFsIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJm
YWNlPiBjcmVhdGVQZWVyQ29ubmVjdGlvbih3ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXIm
LCBydGM6OlBhY2tldFNvY2tldEZhY3RvcnkqLCB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJm
YWNlOjpSVENDb25maWd1cmF0aW9uJiYpOwogCiAgICAgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkZh
Y3RvcnlJbnRlcmZhY2UqIGZhY3RvcnkoKTsKIApAQCAtMTE4LDYgKzExOCw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldEVuYWJsZUxvZ2dpbmcoYm9vbCk7CiAgICAgdm9pZCBzZXRFbmFibGVXZWJS
VENFbmNyeXB0aW9uKGJvb2wpOwogCisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpQ
YWNrZXRTb2NrZXRGYWN0b3J5PiBjcmVhdGVTb2NrZXRGYWN0b3J5KFBBTDo6U2Vzc2lvbklELCBT
dHJpbmcmJiAvKiB1c2VyQWdlbnQgKi8pIHsgcmV0dXJuIG51bGxwdHI7IH0KKwogcHJvdGVjdGVk
OgogICAgIExpYldlYlJUQ1Byb3ZpZGVyKCkgPSBkZWZhdWx0OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oCmlu
ZGV4IDRiYWIyM2VhODUzY2U4YWE3MmUzOGRkZmE2Zjg1OGE1MTViZDkwYjIuLjJkYWFlNGQxN2Vi
ZjAyNTM4ZThlYzljZmZhM2VhODM5ZDU0MDE3YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oCkBAIC0yOCw2
ICsyOCw3IEBACiBPQkpDX0NMQVNTIERNRldlYnNpdGVQb2xpY3lNb25pdG9yOwogT0JKQ19DTEFT
UyBOU0RhdGE7CiBPQkpDX0NMQVNTIE5TVVJMU2Vzc2lvbjsKK09CSkNfQ0xBU1MgTlNVUkxTZXNz
aW9uQ29uZmlndXJhdGlvbjsKIE9CSkNfQ0xBU1MgTlNVUkxTZXNzaW9uRG93bmxvYWRUYXNrOwog
T0JKQ19DTEFTUyBOU09wZXJhdGlvblF1ZXVlOwogT0JKQ19DTEFTUyBXS05ldHdvcmtTZXNzaW9u
RGVsZWdhdGU7CkBAIC04MSw2ICs4Miw4IEBAIHB1YmxpYzoKICAgICBib29sIGFsbExvYWRzQmxv
Y2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcoKSBjb25zdCB7IHJl
dHVybiBtX2FsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRl
c3Rpbmc7IH0KICAgICBETUZXZWJzaXRlUG9saWN5TW9uaXRvciAqZGV2aWNlTWFuYWdlbWVudFBv
bGljeU1vbml0b3IoKTsKIAorICAgIENGRGljdGlvbmFyeVJlZiBwcm94eUNvbmZpZ3VyYXRpb24o
KSBjb25zdCB7IHJldHVybiBtX3Byb3h5Q29uZmlndXJhdGlvbi5nZXQoKTsgfQorCiBwcml2YXRl
OgogICAgIHZvaWQgaW52YWxpZGF0ZUFuZENhbmNlbCgpIG92ZXJyaWRlOwogICAgIHZvaWQgY2xl
YXJDcmVkZW50aWFscygpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKaW5kZXggMTZiN2Zh
ZTE5ZjYwYmY4MTM5ODQxMzU5YmQ2ODdjNjRlNDkzMWY0Ni4uYzY1ZGIwOGE5ZTQ2NzAyODc0OGE0
OWNiMDVjMmEyYTUyZjg5OThkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCkBAIC0xMjksMTAgKzEy
OSwyMiBAQCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlU2VydmVyVENQU29ja2V0KHVp
bnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldAogICAgIH0pOwogfQogCi12b2lkIE5ldHdv
cmtSVENQcm92aWRlcjo6Y3JlYXRlQ2xpZW50VENQU29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIs
IGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgUlRD
TmV0d29yazo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgaW50IG9wdGlvbnMpCisjaWYg
IVBMQVRGT1JNKENPQ09BKQorcnRjOjpQcm94eUluZm8gTmV0d29ya1JUQ1Byb3ZpZGVyOjpwcm94
eUluZm9Gcm9tU2Vzc2lvbihOZXR3b3JrU2Vzc2lvbiYpCiB7Ci0gICAgY2FsbE9uUlRDTmV0d29y
a1RocmVhZChbdGhpcywgaWRlbnRpZmllciwgbG9jYWxBZGRyZXNzID0gUlRDTmV0d29yazo6aXNv
bGF0ZWRDb3B5KGxvY2FsQWRkcmVzcy52YWx1ZSksIHJlbW90ZUFkZHJlc3MgPSBSVENOZXR3b3Jr
Ojppc29sYXRlZENvcHkocmVtb3RlQWRkcmVzcy52YWx1ZSksIG9wdGlvbnNdKCkgewotICAgICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4gc29ja2V0KG1fcGFja2V0
U29ja2V0RmFjdG9yeS0+Q3JlYXRlQ2xpZW50VGNwU29ja2V0KGxvY2FsQWRkcmVzcywgcmVtb3Rl
QWRkcmVzcywgeyB9LCB7IH0sIG9wdGlvbnMpKTsKKyAgICByZXR1cm4geyB9OworfQorI2VuZGlm
CisKK3ZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BTb2NrZXQodWludDY0
X3QgaWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRy
ZXNzLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyYmIHVzZXJBZ2VudCwgaW50IG9wdGlvbnMpCit7
CisgICAgYXV0byogc2Vzc2lvbiA9IG1fY29ubmVjdGlvbi0+bmV0d29ya1Byb2Nlc3MoKS5uZXR3
b3JrU2Vzc2lvbihzZXNzaW9uSUQpOworICAgIGlmICghc2Vzc2lvbikgeworICAgICAgICBtX2Nv
bm5lY3Rpb24tPmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpXZWJSVENTb2NrZXQ6OlNpZ25h
bENsb3NlKDEpLCBpZGVudGlmaWVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjYWxs
T25SVENOZXR3b3JrVGhyZWFkKFt0aGlzLCBpZGVudGlmaWVyLCBsb2NhbEFkZHJlc3MgPSBSVENO
ZXR3b3JrOjppc29sYXRlZENvcHkobG9jYWxBZGRyZXNzLnZhbHVlKSwgcmVtb3RlQWRkcmVzcyA9
IFJUQ05ldHdvcms6Omlzb2xhdGVkQ29weShyZW1vdGVBZGRyZXNzLnZhbHVlKSwgcHJveHlJbmZv
ID0gcHJveHlJbmZvRnJvbVNlc3Npb24ocmVtb3RlQWRkcmVzcywgKnNlc3Npb24pLCB1c2VyQWdl
bnQgPSBXVEZNb3ZlKHVzZXJBZ2VudCkuaXNvbGF0ZWRDb3B5KCksIG9wdGlvbnNdKCkgeworICAg
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4gc29ja2V0KG1fcGFj
a2V0U29ja2V0RmFjdG9yeS0+Q3JlYXRlQ2xpZW50VGNwU29ja2V0KGxvY2FsQWRkcmVzcywgcmVt
b3RlQWRkcmVzcywgcHJveHlJbmZvLCB1c2VyQWdlbnQudXRmOCgpLmRhdGEoKSwgb3B0aW9ucykp
OwogICAgICAgICBjcmVhdGVTb2NrZXQoaWRlbnRpZmllciwgV1RGTW92ZShzb2NrZXQpLCBMaWJX
ZWJSVENTb2NrZXRDbGllbnQ6OlR5cGU6OkNsaWVudFRDUCk7CiAgICAgfSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlk
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92
aWRlci5oCmluZGV4IGM2ZTg2NzJkYmQwNzhkODczNDVmMmYwY2QyMmZjMzkzMGU3ZjE5ZGYuLjMy
Y2E2YzJkMmVjNGExM2IzMDYxNDE5NTQwYjY4ZjUxNGJmNzkwYmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5o
CkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1JUQ01vbml0b3IuaCIKICNpbmNs
dWRlICJSVENOZXR3b3JrLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENNYWNyb3MuaD4K
KyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d2VicnRjL3AycC9iYXNlL2Jh
c2ljcGFja2V0c29ja2V0ZmFjdG9yeS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9ydGNfYmFzZS90aGly
ZF9wYXJ0eS9zaWdzbG90L3NpZ3Nsb3QuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAt
NDcsNiArNDgsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOwogY2xhc3MgTmV0d29ya1JUQ1Jlc29sdmVyOwogY2xhc3MgTmV0d29ya1JU
Q1NvY2tldDsKK2NsYXNzIE5ldHdvcmtTZXNzaW9uOwogCiBjbGFzcyBOZXR3b3JrUlRDUHJvdmlk
ZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8TmV0d29ya1JUQ1Byb3ZpZGVyPiwgcHVi
bGljIHJ0Yzo6TWVzc2FnZUhhbmRsZXIgewogcHVibGljOgpAQCAtNzUsNyArNzcsNyBAQCBwcml2
YXRlOgogICAgIGV4cGxpY2l0IE5ldHdvcmtSVENQcm92aWRlcihOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyYpOwogCiAgICAgdm9pZCBjcmVhdGVVRFBTb2NrZXQodWludDY0X3QsIGNvbnN0
IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCwgdWludDE2X3QpOwotICAgIHZv
aWQgY3JlYXRlQ2xpZW50VENQU29ja2V0KHVpbnQ2NF90LCBjb25zdCBSVENOZXR3b3JrOjpTb2Nr
ZXRBZGRyZXNzJiwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIGludCk7CisgICAg
dm9pZCBjcmVhdGVDbGllbnRUQ1BTb2NrZXQodWludDY0X3QsIGNvbnN0IFJUQ05ldHdvcms6OlNv
Y2tldEFkZHJlc3MmLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgUEFMOjpTZXNz
aW9uSUQsIFN0cmluZyYmIHVzZXJBZ2VudCwgaW50KTsKICAgICB2b2lkIGNyZWF0ZVNlcnZlclRD
UFNvY2tldCh1aW50NjRfdCwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIHVpbnQx
Nl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCk7CiAgICAgdm9pZCB3cmFwTmV3VENQ
Q29ubmVjdGlvbih1aW50NjRfdCBpZGVudGlmaWVyLCB1aW50NjRfdCBuZXdDb25uZWN0aW9uU29j
a2V0SWRlbnRpZmllcik7CiAKQEAgLTg4LDYgKzkwLDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
T25NZXNzYWdlKHJ0Yzo6TWVzc2FnZSopOwogCisgICAgc3RhdGljIHJ0Yzo6UHJveHlJbmZvIHBy
b3h5SW5mb0Zyb21TZXNzaW9uKGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCBOZXR3
b3JrU2Vzc2lvbiYpOworCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRyPE5l
dHdvcmtSVENSZXNvbHZlcj4+IG1fcmVzb2x2ZXJzOwogICAgIEhhc2hNYXA8dWludDY0X3QsIHN0
ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENTb2NrZXRDbGllbnQ+PiBtX3NvY2tldHM7CiAgICAgTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIG1fY29ubmVjdGlvbjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQ
cm92aWRlci5tZXNzYWdlcy5pbgppbmRleCA0ODkxNGMzN2Y1ZTk1NWFjZjMxYzhhN2YwZTY2NjIw
ZTUyYWZjZjUxLi5iNDE1NTM3OWRkOGY0NmY3ZTg2OGZjY2Y5MzRiNTg0OTRmZDE2MDI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJv
dmlkZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJy
dGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluCkBAIC0yNSw3ICsyNSw3IEBACiBtZXNz
YWdlcyAtPiBOZXR3b3JrUlRDUHJvdmlkZXIgewogICAgIENyZWF0ZVVEUFNvY2tldChpbnQgaWRl
bnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywg
dWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCkKICAgICBDcmVhdGVTZXJ2ZXJUQ1BT
b2NrZXQoaW50IGlkZW50aWZpZXIsIFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyBs
b2NhbEFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCBvcHRp
b25zKQotICAgIENyZWF0ZUNsaWVudFRDUFNvY2tldChpbnQgaWRlbnRpZmllciwgV2ViS2l0OjpS
VENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgV2ViS2l0OjpSVENOZXR3b3Jr
OjpTb2NrZXRBZGRyZXNzIHJlbW90ZUFkZHJlc3MsIGludCBvcHRpb25zKQorICAgIENyZWF0ZUNs
aWVudFRDUFNvY2tldChpbnQgaWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRB
ZGRyZXNzIGxvY2FsQWRkcmVzcywgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIHJl
bW90ZUFkZHJlc3MsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3RyaW5nIHVzZXJBZ2VudCwg
aW50IG9wdGlvbnMpCiAgICAgQ3JlYXRlUmVzb2x2ZXIodWludDY0X3QgaWRlbnRpZmllciwgU3Ry
aW5nIGFkZHJlc3MpCiAgICAgU3RvcFJlc29sdmVyKHVpbnQ2NF90IGlkZW50aWZpZXIpCiAgICAg
V3JhcE5ld1RDUENvbm5lY3Rpb24odWludDY0X3QgaWRlbnRpZmllciwgdWludDY0X3QgbmV3Q29u
bmVjdGlvblNvY2tldElkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubW0gYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubW0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjY1
NmNhZTkxMzIzYzhlMmE4ZTI1ZDY0MTE3NjVkYzI1NGQ0YzIwNQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5t
bQpAQCAtMCwwICsxLDk0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIk5ldHdvcmtSVENQcm92aWRlci5oIgorCisjaWYgVVNFKExJQldFQlJUQykKKworI2lu
Y2x1ZGUgIk5ldHdvcmtTZXNzaW9uQ29jb2EuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJU
Q01hY3Jvcy5oPgorI2luY2x1ZGUgPHdlYnJ0Yy9ydGNfYmFzZS9hc3luY3BhY2tldHNvY2tldC5o
PgorI2luY2x1ZGUgPHdlYnJ0Yy9ydGNfYmFzZS9sb2dnaW5nLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitzdGF0aWMgaW5saW5lIGJvb2wgaXNFbmFibGVkKENGRGljdGlvbmFyeVJlZiBwcm94
eSwgQ0ZTdHJpbmdSZWYga2V5KQoreworICAgIGF1dG8gZW5hYmxlZCA9IHN0YXRpY19jYXN0PENG
TnVtYmVyUmVmPihDRkRpY3Rpb25hcnlHZXRWYWx1ZShwcm94eSwga2V5KSk7CisKKyAgICBpZiAo
IWVuYWJsZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGludCByZXN1bHQ7CisgICAg
cmV0dXJuIENGTnVtYmVyR2V0VmFsdWUoZW5hYmxlZCwga0NGTnVtYmVySW50VHlwZSwgJnJlc3Vs
dCk7CisgICAgcmV0dXJuICEhcmVzdWx0OworfQorCitzdGF0aWMgaW5saW5lIHJ0Yzo6UHJveHlJ
bmZvIGNyZWF0ZVJUQ1Byb3h5KENGRGljdGlvbmFyeVJlZiBwcm94eSwgcnRjOjpQcm94eVR5cGUg
dHlwZSwgQ0ZTdHJpbmdSZWYgbmFtZUtleSwgQ0ZTdHJpbmdSZWYgcG9ydEtleSkKK3sKKyAgICBy
dGM6OlByb3h5SW5mbyBpbmZvOworICAgIGluZm8udHlwZSA9IHR5cGU7CisKKyAgICBhdXRvIHBy
b3h5SG9zdE5hbWUgPSBzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZEaWN0aW9uYXJ5R2V0VmFs
dWUocHJveHksIG5hbWVLZXkpKTsKKyAgICBpZiAoIXByb3h5SG9zdE5hbWUpCisgICAgICAgIHJl
dHVybiB7IH07CisgICAgYXV0byBwb3J0TnVtYmVyID0gc3RhdGljX2Nhc3Q8Q0ZOdW1iZXJSZWY+
KENGRGljdGlvbmFyeUdldFZhbHVlKHByb3h5LCBwb3J0S2V5KSk7CisgICAgaWYgKCFwb3J0TnVt
YmVyKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaW50IHByb3h5UG9ydDsKKyAgICBpZiAo
IUNGTnVtYmVyR2V0VmFsdWUocG9ydE51bWJlciwga0NGTnVtYmVyU0ludDMyVHlwZSwgJnByb3h5
UG9ydCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpbmZvLmFkZHJlc3MgPSB7IHN0ZDo6
c3RyaW5nKFsoX19icmlkZ2UgTlNTdHJpbmcgKilwcm94eUhvc3ROYW1lIFVURjhTdHJpbmddKSwg
cHJveHlQb3J0IH07CisgICAgaW5mby5hdXRvZGV0ZWN0ID0gZmFsc2U7CisgICAgcmV0dXJuIGlu
Zm87Cit9CisKK3J0Yzo6UHJveHlJbmZvIE5ldHdvcmtSVENQcm92aWRlcjo6cHJveHlJbmZvRnJv
bVNlc3Npb24oY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIE5ldHdvcmtTZXNzaW9u
JiBzZXNzaW9uKQoreworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgY2hlY2sgZm9yIGtDRk5ldHdv
cmtQcm94aWVzRXhjZXB0aW9uc0xpc3QgdG8gZGVjaWRlIHdoZXRoZXIgdG8gdXNlIHByb3h5IG9y
IG5vdC4KKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGFsc28gZ2V0IHVzZXJuYW1lL3Bhc3N3b3Jk
IGZvciBhdXRoZW50aWNhdGlvbiBjYXNlcy4KKyAgICBhdXRvIHByb3h5RGljdGlvbmFyeSA9IHN0
YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uQ29jb2EmPihzZXNzaW9uKS5wcm94eUNvbmZpZ3VyYXRp
b24oKTsKKyAgICBpZiAoIXByb3h5RGljdGlvbmFyeSkKKyAgICAgICAgcHJveHlEaWN0aW9uYXJ5
ID0gQ0ZOZXR3b3JrQ29weVN5c3RlbVByb3h5U2V0dGluZ3MoKTsKKyNpZiBQTEFURk9STShNQUMp
CisgICAgaWYgKGlzRW5hYmxlZChwcm94eURpY3Rpb25hcnksIGtDRk5ldHdvcmtQcm94aWVzSFRU
UFNFbmFibGUpKQorICAgICAgICByZXR1cm4gY3JlYXRlUlRDUHJveHkocHJveHlEaWN0aW9uYXJ5
LCBydGM6OlBST1hZX0hUVFBTLCBrQ0ZOZXR3b3JrUHJveGllc0hUVFBTUHJveHksIGtDRk5ldHdv
cmtQcm94aWVzSFRUUFNQb3J0KTsKKworICAgIGlmIChpc0VuYWJsZWQocHJveHlEaWN0aW9uYXJ5
LCBrQ0ZOZXR3b3JrUHJveGllc1NPQ0tTRW5hYmxlKSkKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJU
Q1Byb3h5KHByb3h5RGljdGlvbmFyeSwgcnRjOjpQUk9YWV9TT0NLUzUsIGtDRk5ldHdvcmtQcm94
aWVzU09DS1NQcm94eSwga0NGTmV0d29ya1Byb3hpZXNTT0NLU1BvcnQpOworI2VuZGlmCisjaWYg
UExBVEZPUk0oSU9TKQorICAgIGlmIChpc0VuYWJsZWQocHJveHlEaWN0aW9uYXJ5LCBrQ0ZOZXR3
b3JrUHJveGllc0hUVFBFbmFibGUpKQorICAgICAgICByZXR1cm4gY3JlYXRlUlRDUHJveHkocHJv
eHlEaWN0aW9uYXJ5LCBydGM6OlBST1hZX0hUVFBTLCBrQ0ZOZXR3b3JrUHJveGllc0hUVFBQcm94
eSwga0NGTmV0d29ya1Byb3hpZXNIVFRQUG9ydCk7CisjZW5kaWYKKyAgICByZXR1cm4geyB9Owor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFVTRShMSUJXRUJSVEMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1
ZDU2YTJhMTc5OGVkMWEzYmQ5NDk5ZmE4ZTA5NWFlNDZjOWNiYTMxLi5hNjVjN2Y5NjczMzM3OTM2
MDVlNGEyZmZhNTg1MjFiYzNlMjA4YWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg4Myw2ICs4ODMsNyBAQAogCQk0MTRERDM3QTIw
QkY0OUE1MDA2OTU5RkIgLyogY29tLmNpc2NvLndlYmV4LnBsdWdpbi5ncGM2NC5zYiBpbiBDb3B5
IFBsdWctaW4gU2FuZGJveCBQcm9maWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MTRERDM3ODIwQkY0M0VBMDA2OTU5RkIgLyogY29tLmNpc2NvLndlYmV4LnBsdWdpbi5n
cGM2NC5zYiAqLzsgfTsKIAkJNDE0REVERDcxRjlFRERFNTAwNDdDNDBEIC8qIFNlcnZpY2VXb3Jr
ZXJQcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxNERFREQ1MUY5RUREREYwMDQ3QzQwRCAvKiBTZXJ2aWNlV29ya2VyUHJvY2Vzc1By
b3h5LmggKi87IH07CiAJCTQxNTdFNEIwMjBFMkVDREYwMEE2QzBENyAvKiBjb20uZ29vZ2xlLm8x
ZGJyb3dzZXJwbHVnaW4uc2IgaW4gQ29weSBQbHVnLWluIFNhbmRib3ggUHJvZmlsZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE1N0U0QUYyMEUyRUM5ODAwQTZDMEQ3IC8q
IGNvbS5nb29nbGUubzFkYnJvd3NlcnBsdWdpbi5zYiAqLzsgfTsKKwkJNDE3NjkwMTQyMkZERDQx
QjAwQjE1NzZEIC8qIE5ldHdvcmtSVENQcm92aWRlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzY5MDEzMjJGREQ0MUIwMEIxNTc2RCAvKiBOZXR3
b3JrUlRDUHJvdmlkZXIubW0gKi87IH07CiAJCTQxNzkxNUFGMjI1NkJCNzUwMEQ2Rjk3RSAvKiBX
ZWJTb2NrZXRDaGFubmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTc5MTVBRDIyNTZCQjc0MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbC5oICov
OyB9OwogCQk0MTc5MTVCMTIyNTZDMEQ2MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbE1hbmFn
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzkx
NUIwMjI1NkMwRDYwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsTWFuYWdlci5oICovOyB9Owog
CQk0MTc5MTVCOTIyNTcwNDZGMDBENkY5N0UgLyogTmV0d29ya1NvY2tldENoYW5uZWwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzkxNUI2MjI1NzA0
NkUwMEQ2Rjk3RSAvKiBOZXR3b3JrU29ja2V0Q2hhbm5lbC5oICovOyB9OwpAQCAtMzEyNiw2ICsz
MTI3LDcgQEAKIAkJNDE1MUU1QzMxRkJCOTBBOTAwRTQ3RTJEIC8qIEZvcm1EYXRhUmVmZXJlbmNl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvcm1EYXRhUmVmZXJlbmNlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNTc4NTMwMjEyNzZCNkYwMEREMzgwMCAv
KiBjb3B5LXdlYmNvbnRlbnQtcmVzb3VyY2VzLXRvLXByaXZhdGUtaGVhZGVycy5zaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnNo
OyBwYXRoID0gImNvcHktd2ViY29udGVudC1yZXNvdXJjZXMtdG8tcHJpdmF0ZS1oZWFkZXJzLnNo
Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE1N0U0QUYyMEUyRUM5ODAwQTZDMEQ3
IC8qIGNvbS5nb29nbGUubzFkYnJvd3NlcnBsdWdpbi5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBjb20uZ29vZ2xlLm8xZGJyb3dzZXJwbHVnaW4uc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQxNzY5MDEzMjJGREQ0MUIwMEIxNTc2RCAvKiBOZXR3b3JrUlRDUHJvdmlkZXIubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOZXR3b3JrUlRDUHJvdmlk
ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzkxNUFDMjI1NkJCNzQwMEQ2
Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IFdlYlNvY2tldENoYW5uZWwuY3BwOyBwYXRoID0gTmV0d29yay9XZWJTb2NrZXRD
aGFubmVsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3OTE1QUQyMjU2QkI3
NDAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gV2ViU29ja2V0Q2hhbm5lbC5oOyBwYXRoID0gTmV0d29yay9XZWJTb2NrZXRDaGFu
bmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzkxNUIwMjI1NkMwRDYwMEQ2
Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBXZWJTb2NrZXRDaGFubmVsTWFuYWdlci5oOyBwYXRoID0gTmV0d29yay9XZWJT
b2NrZXRDaGFubmVsTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjU0
Nyw2ICs2NTQ5LDcgQEAKIAkJCQk0MURDNDU5NTFFM0Q2RTFFMDBCMTFGNTEgLyogTmV0d29ya1JU
Q1Byb3ZpZGVyLmNwcCAqLywKIAkJCQk0MURDNDU5NDFFM0Q2RTFFMDBCMTFGNTEgLyogTmV0d29y
a1JUQ1Byb3ZpZGVyLmggKi8sCiAJCQkJNDFEQzQ1OTgxRTNENkVENjAwQjExRjUxIC8qIE5ldHdv
cmtSVENQcm92aWRlci5tZXNzYWdlcy5pbiAqLywKKwkJCQk0MTc2OTAxMzIyRkRENDFCMDBCMTU3
NkQgLyogTmV0d29ya1JUQ1Byb3ZpZGVyLm1tICovLAogCQkJCTQxMTJCNTQ3MUY5RkQzQUIwMEU2
Nzg3NSAvKiBOZXR3b3JrUlRDUmVzb2x2ZXIuY3BwICovLAogCQkJCTQxMTJCNTQ4MUY5RkQzQUMw
MEU2Nzg3NSAvKiBOZXR3b3JrUlRDUmVzb2x2ZXIuaCAqLywKIAkJCQk0MTEyQjU0NzFGOUZEM0FC
MDBFNjc5ODYgLyogTmV0d29ya1JUQ1Jlc29sdmVyQ29jb2EuY3BwICovLApAQCAtMTExMjksNiAr
MTExMzIsNyBAQAogCQkJCTUxM0ExNjNDMTYzMDg4RjYwMDVEN0QyMiAvKiBOZXR3b3JrUHJvY2Vz
c1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxNTI1NTFBMTcw
MTE4MTkwMDNEN0FEQiAvKiBOZXR3b3JrUmVzb3VyY2VMb2FkZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGMDYwRTExNjU0MzE4NTAwRjMyODFFIC8qIE5ldHdvcmtS
VENNb25pdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQxNzY5MDE0
MjJGREQ0MUIwMEIxNTc2RCAvKiBOZXR3b3JrUlRDUHJvdmlkZXIubW0gaW4gU291cmNlcyAqLywK
IAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MkUgLyogTmV0d29ya1JUQ1Byb3ZpZGVyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYzMjgx
RCAvKiBOZXR3b3JrUlRDU29ja2V0TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTMxRjA2MEUxMTY1NDMxODUwMEYzMjgxQyAvKiBOZXR3b3JrU29ja2V0Q2hhbm5lbE1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCmlu
ZGV4IGFmZTI0MDg4NGMzY2JhYWE2YWQyMzhiYmUyM2Y5NTkzMTU5MTkyMWQuLjA5NGFjNzFmN2U1
ZWZmYWI3NDg1ZmNlZmNhZTU0ODkzZGIzZTA1MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNw
cApAQCAtNDQsOSArNDQsOSBAQCBwcml2YXRlOgogICAgIH0KIH07CiAKLXJ0Yzo6c2NvcGVkX3Jl
ZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBMaWJXZWJSVENQcm92aWRlcjo6
Y3JlYXRlUGVlckNvbm5lY3Rpb24od2VicnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyJiBvYnNl
cnZlciwgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6UlRDQ29uZmlndXJhdGlvbiYm
IGNvbmZpZ3VyYXRpb24pCitydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlv
bkludGVyZmFjZT4gTGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZVBlZXJDb25uZWN0aW9uKHdlYnJ0
Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZlciYgb2JzZXJ2ZXIsIHJ0Yzo6UGFja2V0U29ja2V0RmFj
dG9yeSogc29ja2V0RmFjdG9yeSwgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6UlRD
Q29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiB7Ci0gICAgcmV0dXJuIFdlYkNvcmU6Okxp
YldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVQZWVyQ29ubmVjdGlvbihvYnNlcnZlciwgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkubGliV2ViUlRDTmV0d29yaygpLm1vbml0b3IoKSwgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkubGliV2ViUlRDTmV0d29yaygpLnNvY2tldEZhY3RvcnkoKSwgV1RGTW92ZShj
b25maWd1cmF0aW9uKSwgc3RkOjptYWtlX3VuaXF1ZTxBc3luY1Jlc29sdmVyRmFjdG9yeT4oKSk7
CisgICAgcmV0dXJuIFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVQZWVyQ29ubmVj
dGlvbihvYnNlcnZlciwgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDTmV0d29yaygp
Lm1vbml0b3IoKSwgKnNvY2tldEZhY3RvcnksIFdURk1vdmUoY29uZmlndXJhdGlvbiksIHN0ZDo6
bWFrZV91bmlxdWU8QXN5bmNSZXNvbHZlckZhY3Rvcnk+KCkpOwogfQogCiB2b2lkIExpYldlYlJU
Q1Byb3ZpZGVyOjpkaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMoKQpAQCAtNjQsNiArNjQs
NDcgQEAgdm9pZCBMaWJXZWJSVENQcm92aWRlcjo6cmVnaXN0ZXJNRE5TTmFtZShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IGRvY3UKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5saWJXZWJSVENOZXR3b3JrKCkubWRuc1JlZ2lzdGVyKCkucmVnaXN0ZXJNRE5TTmFtZShzZXNz
aW9uSUQsIGRvY3VtZW50SWRlbnRpZmllciwgaXBBZGRyZXNzLCBXVEZNb3ZlKGNhbGxiYWNrKSk7
CiB9CiAKK2NsYXNzIFJUQ1NvY2tldEZhY3RvcnkgZmluYWwgOiBwdWJsaWMgcnRjOjpQYWNrZXRT
b2NrZXRGYWN0b3J5IHsKK3B1YmxpYzoKKyAgICBSVENTb2NrZXRGYWN0b3J5KFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgU3RyaW5nJiYgdXNlckFnZW50KQorICAgICAgICA6IG1fc2Vzc2lvbklE
KHNlc3Npb25JRCkKKyAgICAgICAgLCBtX3VzZXJBZ2VudChXVEZNb3ZlKHVzZXJBZ2VudCkpCisg
ICAgeworICAgIH0KKworcHJpdmF0ZToKKyAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBDcmVh
dGVVZHBTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBt
aW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KSBmaW5hbAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZh
Y3RvcnkoKS5jcmVhdGVVZHBTb2NrZXQoYWRkcmVzcywgbWluUG9ydCwgbWF4UG9ydCk7CisgICAg
fQorCisgICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogQ3JlYXRlU2VydmVyVGNwU29ja2V0KGNv
bnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2
X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpIGZpbmFsCisgICAgeworICAgICAgICByZXR1cm4gZmFj
dG9yeSgpLmNyZWF0ZVNlcnZlclRjcFNvY2tldChhZGRyZXNzLCBtaW5Qb3J0LCBtYXhQb3J0LCBv
cHRpb25zKTsKKyAgICB9CisKKyAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBDcmVhdGVDbGll
bnRUY3BTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0
IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgY29uc3QgcnRjOjpQcm94eUluZm8m
LCBjb25zdCBzdGQ6OnN0cmluZyYsIGludCBvcHRpb25zKSBmaW5hbAorICAgIHsKKyAgICAgICAg
cmV0dXJuIGZhY3RvcnkoKS5jcmVhdGVDbGllbnRUY3BTb2NrZXQobG9jYWxBZGRyZXNzLCByZW1v
dGVBZGRyZXNzLCBtX3Nlc3Npb25JRCwgU3RyaW5nIHsgbV91c2VyQWdlbnQgfSwgb3B0aW9ucyk7
CisgICAgfQorCisgICAgcnRjOjpBc3luY1Jlc29sdmVySW50ZXJmYWNlKiBDcmVhdGVBc3luY1Jl
c29sdmVyKCkgZmluYWwKKyAgICB7CisgICAgICAgIHJldHVybiBmYWN0b3J5KCkuY3JlYXRlQXN5
bmNSZXNvbHZlcigpOworICAgIH0KKworICAgIExpYldlYlJUQ1NvY2tldEZhY3RvcnkmIGZhY3Rv
cnkoKSB7IHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5saWJXZWJSVENOZXR3b3JrKCku
c29ja2V0RmFjdG9yeSgpOyB9CisKK3ByaXZhdGU6CisgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNz
aW9uSUQ7CisgICAgU3RyaW5nIG1fdXNlckFnZW50OworfTsKKworc3RkOjp1bmlxdWVfcHRyPHJ0
Yzo6UGFja2V0U29ja2V0RmFjdG9yeT4gTGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZVNvY2tldEZh
Y3RvcnkoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcmJiB1c2VyQWdlbnQpCit7Cisg
ICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UlRDU29ja2V0RmFjdG9yeT4oc2Vzc2lvbklELCBX
VEZNb3ZlKHVzZXJBZ2VudCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlm
IC8vIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCmluZGV4IGExNDE3MDBjZTZm
NGExODZjMjE2NjYyOGFkYjkwYWY0ZDlmZTRlNTYuLmY2NWE2Mjk1ZWM5MGUxZDJiNzZmZjQ3MTIy
MjZkODQzYzdkOTY0ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCkBAIC01MCw3ICs1MCw5IEBA
IHB1YmxpYzoKICAgICBMaWJXZWJSVENQcm92aWRlcigpIHsgbV91c2VOZXR3b3JrVGhyZWFkV2l0
aFNvY2tldFNlcnZlciA9IGZhbHNlOyB9CiAKIHByaXZhdGU6Ci0gICAgcnRjOjpzY29wZWRfcmVm
cHRyPHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U+IGNyZWF0ZVBlZXJDb25uZWN0aW9u
KHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZlciYsIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25J
bnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24mJikgZmluYWw7CisgICAgc3RkOjp1bmlxdWVfcHRy
PHJ0Yzo6UGFja2V0U29ja2V0RmFjdG9yeT4gY3JlYXRlU29ja2V0RmFjdG9yeShQQUw6OlNlc3Np
b25JRCwgU3RyaW5nJiYgLyogdXNlckFnZW50ICovKSBmaW5hbDsKKworICAgIHJ0Yzo6c2NvcGVk
X3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBjcmVhdGVQZWVyQ29ubmVj
dGlvbih3ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXImLCBydGM6OlBhY2tldFNvY2tldEZh
Y3RvcnkqLCB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpSVENDb25maWd1cmF0aW9u
JiYpIGZpbmFsOwogCiAgICAgdm9pZCB1bnJlZ2lzdGVyTUROU05hbWVzKHVpbnQ2NF90IGRvY3Vt
ZW50SWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCByZWdpc3Rlck1ETlNOYW1lKFBBTDo6U2Vz
c2lvbklELCB1aW50NjRfdCBkb2N1bWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgaXBBZGRy
ZXNzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE1ETlNOYW1lT3JFcnJvciYmKT4mJikgZmluYWw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGli
V2ViUlRDU29ja2V0RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAKaW5kZXggZDc3OGQ1NzdlYThlZmMx
YjM1NmRmMWQ3YzAxN2VjZGYzMTg4MTA2YS4uZjhiN2VkMjI5YzRmNmYyZGMwMzYxMzJjYzk2ZTQx
MWVlY2E1NzAyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcApAQCAtNDgs
NyArNDgsNyBAQCBzdGF0aWMgaW5saW5lIHJ0Yzo6U29ja2V0QWRkcmVzcyBwcmVwYXJlU29ja2V0
QWRkcmVzcyhjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IAotcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Q3JlYXRl
U2VydmVyVGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2
X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpCitydGM6OkFzeW5jUGFj
a2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVTZXJ2ZXJUY3BTb2NrZXQo
Y29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50
MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9ucykKIHsKICAgICBhdXRvIHNvY2tldCA9IHN0ZDo6bWFr
ZV91bmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgKytzX3VuaXF1ZVNvY2tldElkZW50aWZp
ZXIsIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6U2VydmVyVENQLCBhZGRyZXNzLCBydGM6OlNvY2tl
dEFkZHJlc3MoKSk7CiAgICAgbV9zb2NrZXRzLnNldChzb2NrZXQtPmlkZW50aWZpZXIoKSwgc29j
a2V0LmdldCgpKTsKQEAgLTY0LDcgKzY0LDcgQEAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGli
V2ViUlRDU29ja2V0RmFjdG9yeTo6Q3JlYXRlU2VydmVyVGNwU29ja2V0KGNvbnN0IHJ0YzoKICAg
ICByZXR1cm4gc29ja2V0LnJlbGVhc2UoKTsKIH0KIAotcnRjOjpBc3luY1BhY2tldFNvY2tldCog
TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Q3JlYXRlVWRwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0
QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCkKK3J0
Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVVkcFNv
Y2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQs
IHVpbnQxNl90IG1heFBvcnQpCiB7CiAgICAgYXV0byBzb2NrZXQgPSBzdGQ6Om1ha2VfdW5pcXVl
PExpYldlYlJUQ1NvY2tldD4oKnRoaXMsICsrc191bmlxdWVTb2NrZXRJZGVudGlmaWVyLCBMaWJX
ZWJSVENTb2NrZXQ6OlR5cGU6OlVEUCwgYWRkcmVzcywgcnRjOjpTb2NrZXRBZGRyZXNzKCkpOwog
ICAgIG1fc29ja2V0cy5zZXQoc29ja2V0LT5pZGVudGlmaWVyKCksIHNvY2tldC5nZXQoKSk7CkBA
IC03OCwxNCArNzgsMTQgQEAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0
RmFjdG9yeTo6Q3JlYXRlVWRwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2UKICAgICByZXR1cm4gc29j
a2V0LnJlbGVhc2UoKTsKIH0KIAotcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29j
a2V0RmFjdG9yeTo6Q3JlYXRlQ2xpZW50VGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVz
cyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3Ms
IGNvbnN0IHJ0Yzo6UHJveHlJbmZvJiwgY29uc3Qgc3RkOjpzdHJpbmcmLCBpbnQgb3B0aW9ucykK
K3J0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZUNs
aWVudFRjcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29u
c3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIFN0cmluZyYmIHVzZXJBZ2VudCwgaW50IG9wdGlvbnMpCiB7CiAgICAgYXV0byBzb2Nr
ZXQgPSBzdGQ6Om1ha2VfdW5pcXVlPExpYldlYlJUQ1NvY2tldD4oKnRoaXMsICsrc191bmlxdWVT
b2NrZXRJZGVudGlmaWVyLCBMaWJXZWJSVENTb2NrZXQ6OlR5cGU6OkNsaWVudFRDUCwgbG9jYWxB
ZGRyZXNzLCByZW1vdGVBZGRyZXNzKTsKICAgICBzb2NrZXQtPnNldFN0YXRlKExpYldlYlJUQ1Nv
Y2tldDo6U1RBVEVfQ09OTkVDVElORyk7CiAgICAgbV9zb2NrZXRzLnNldChzb2NrZXQtPmlkZW50
aWZpZXIoKSwgc29ja2V0LmdldCgpKTsKIAotICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZp
ZXIgPSBzb2NrZXQtPmlkZW50aWZpZXIoKSwgbG9jYWxBZGRyZXNzID0gcHJlcGFyZVNvY2tldEFk
ZHJlc3MobG9jYWxBZGRyZXNzLCBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucyksIHJl
bW90ZUFkZHJlc3MgPSBwcmVwYXJlU29ja2V0QWRkcmVzcyhyZW1vdGVBZGRyZXNzLCBtX2Rpc2Fi
bGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucyksIG9wdGlvbnNdKCkgewotICAgICAgICBpZiAoIVdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNv
bm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6OkNyZWF0ZUNsaWVu
dFRDUFNvY2tldChpZGVudGlmaWVyLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKGxvY2FsQWRk
cmVzcyksIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MocmVtb3RlQWRkcmVzcyksIG9wdGlvbnMp
LCAwKSkgeworICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50
aWZpZXIoKSwgbG9jYWxBZGRyZXNzID0gcHJlcGFyZVNvY2tldEFkZHJlc3MobG9jYWxBZGRyZXNz
LCBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucyksIHJlbW90ZUFkZHJlc3MgPSBwcmVw
YXJlU29ja2V0QWRkcmVzcyhyZW1vdGVBZGRyZXNzLCBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25u
ZWN0aW9ucyksIHNlc3Npb25JRCwgdXNlckFnZW50ID0gV1RGTW92ZSh1c2VyQWdlbnQpLmlzb2xh
dGVkQ29weSgpLCBvcHRpb25zXSgpIHsKKyAgICAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChN
ZXNzYWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpDcmVhdGVDbGllbnRUQ1BTb2NrZXQoaWRlbnRp
ZmllciwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhsb2NhbEFkZHJlc3MpLCBSVENOZXR3b3Jr
OjpTb2NrZXRBZGRyZXNzKHJlbW90ZUFkZHJlc3MpLCBzZXNzaW9uSUQsIHVzZXJBZ2VudCwgb3B0
aW9ucyksIDApKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogU2V0IGVycm9yIGJhY2sgdG8gc29j
a2V0CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTExNSw3ICsxMTUsNyBAQCB2
b2lkIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmRldGFjaChMaWJXZWJSVENTb2NrZXQmIHNvY2tl
dCkKICAgICBtX3NvY2tldHMucmVtb3ZlKHNvY2tldC5pZGVudGlmaWVyKCkpOwogfQogCi1ydGM6
OkFzeW5jUmVzb2x2ZXJJbnRlcmZhY2UqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZUFz
eW5jUmVzb2x2ZXIoKQorcnRjOjpBc3luY1Jlc29sdmVySW50ZXJmYWNlKiBMaWJXZWJSVENTb2Nr
ZXRGYWN0b3J5OjpjcmVhdGVBc3luY1Jlc29sdmVyKCkKIHsKICAgICBhdXRvIHJlc29sdmVyID0g
c3RkOjptYWtlX3VuaXF1ZTxMaWJXZWJSVENSZXNvbHZlcj4oKytzX3VuaXF1ZVJlc29sdmVySWRl
bnRpZmllcik7CiAgICAgYXV0byogcmVzb2x2ZXJQb2ludGVyID0gcmVzb2x2ZXIuZ2V0KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2Vi
UlRDU29ja2V0RmFjdG9yeS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaAppbmRleCBmMGI0MTk1NzEzZmI3NTVhMDA0OTcz
OWE2MjVhMjAxY2M0OTJlYzFiLi4yNDQ2NjA0YzE1MDAxOGVmNjE0NDRkYTRlNGFiNmJkNWU3Yjc0
MmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
TGliV2ViUlRDU29ja2V0RmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmgKQEAgLTM2LDcgKzM2LDcgQEAK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIExpYldlYlJUQ1NvY2tldEZhY3RvcnkgZmlu
YWwgOiBwdWJsaWMgcnRjOjpQYWNrZXRTb2NrZXRGYWN0b3J5IHsKK2NsYXNzIExpYldlYlJUQ1Nv
Y2tldEZhY3RvcnkgewogcHVibGljOgogICAgIExpYldlYlJUQ1NvY2tldEZhY3RvcnkoKSB7IH0K
IApAQCAtNTEsMTMgKzUxLDEyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlzYWJsZU5vbkxvY2Fs
aG9zdENvbm5lY3Rpb25zKCkgeyBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucyA9IHRy
dWU7IH0KIAotICAgIHJ0Yzo6QXN5bmNSZXNvbHZlckludGVyZmFjZSogY3JlYXRlQXN5bmNSZXNv
bHZlcigpIHsgcmV0dXJuIENyZWF0ZUFzeW5jUmVzb2x2ZXIoKTsgfQorICAgIHJ0Yzo6QXN5bmNQ
YWNrZXRTb2NrZXQqIGNyZWF0ZVVkcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCB1
aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KTsKKyAgICBydGM6OkFzeW5jUGFja2V0
U29ja2V0KiBjcmVhdGVTZXJ2ZXJUY3BTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwg
dWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpOworICAgIHJ0
Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZUNsaWVudFRjcFNvY2tldChjb25zdCBydGM6OlNv
Y2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1v
dGVBZGRyZXNzLCBQQUw6OlNlc3Npb25JRCwgU3RyaW5nJiYgdXNlckFnZW50LCBpbnQgb3B0aW9u
cyk7CisgICAgcnRjOjpBc3luY1Jlc29sdmVySW50ZXJmYWNlKiBjcmVhdGVBc3luY1Jlc29sdmVy
KCk7CiAKIHByaXZhdGU6Ci0gICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogQ3JlYXRlVWRwU29j
a2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90
IG1heFBvcnQpIGZpbmFsOwotICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIENyZWF0ZVNlcnZl
clRjcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCBtaW5fcG9ydCwg
dWludDE2X3QgbWF4X3BvcnQsIGludCBvcHRpb25zKSBmaW5hbDsKLSAgICBydGM6OkFzeW5jUGFj
a2V0U29ja2V0KiBDcmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNz
JiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywg
Y29uc3QgcnRjOjpQcm94eUluZm8mLCBjb25zdCBzdGQ6OnN0cmluZyYsIGludCBvcHRpb25zKTsK
LSAgICBydGM6OkFzeW5jUmVzb2x2ZXJJbnRlcmZhY2UqIENyZWF0ZUFzeW5jUmVzb2x2ZXIoKSBm
aW5hbDsKIAogICAgIC8vIFdlIGNhbm5vdCBvd24gc29ja2V0cywgY2xpZW50cyBvZiB0aGUgZmFj
dG9yeSBhcmUgcmVzcG9uc2libGUgdG8gZnJlZSB0aGVtLgogICAgIEhhc2hNYXA8dWludDY0X3Qs
IExpYldlYlJUQ1NvY2tldCo+IG1fc29ja2V0czsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376072</attachid>
            <date>2019-08-12 09:55:57 -0700</date>
            <delta_ts>2019-08-13 00:34:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200583-20190812185554.patch</filename>
            <type>text/plain</type>
            <size>35575</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCAxMzQzNWFkYmU0MTUyNTFhN2ZmNjhiODYzYjJlNDkwMWUwMmM3ZjllLi40NmIy
ZGRjMWM2NmYxZmFjYTRiMzYxNDkxMjk5ZmU5Njc0MGQxZmE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0wOC0xMiAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlciBBZ2VudCBhbmQgU2Vzc2lv
bklEIHNob3VsZCBiZSBnaXZlbiB0byBOZXR3b3JrUlRDUHJvdmlkZXIgdG8gc2V0IHVwIHRoZSBj
b3JyZWN0IHByb3h5IGluZm9ybWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDA1ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBFeHBvcnQgb2Ygc29tZSBzeW1ib2xzLgorCisgICAgICAgICogQ29u
ZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHA6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
bGlid2VicnRjLmlPU3NpbS5leHA6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvbGlid2VicnRj
Lm1hYy5leHA6CisKIDIwMTktMDgtMDIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBidWlsZCBjaGVjayBmb3IgbGlid2VicnRjIE9iamVjdGl2ZUMgbmFt
ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCA1MGVkZjRhNzdiNzFjZGZmYzYyYjIwNzYzZDczZGY1Nzg3OWVlM2M2
Li4xNDg1YzE0YmIwNzQwZjkxYjExNzIwYWZmODI3MGQ2NzYwZjkwYWJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTktMDgtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgorCisgICAgICAgIFVzZXIgQWdlbnQgYW5kIFNlc3Npb25JRCBzaG91bGQgYmUgZ2l2ZW4g
dG8gTmV0d29ya1JUQ1Byb3ZpZGVyIHRvIHNldCB1cCB0aGUgY29ycmVjdCBwcm94eSBpbmZvcm1h
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAw
NTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNl
IGEgc3BlY2lmaWMgc29ja2V0IGZhY3RvcnkgdGhhdCBpcyBzcGVjaWZpYyB0byB0aGUgdXNlciBh
Z2VudCBhbmQgc2Vzc2lvbiBJRC4KKyAgICAgICAgVGhpcyBmYWN0b3J5IGlzIHN0b3JlZCBpbiB0
aGUgbWVkaWEgZW5kcG9pbnQuCisgICAgICAgIE5vdCB0ZXN0YWJsZSB3aXRob3V0IHByb3h5IGlu
ZnJhc3RydWN0dXJlLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENN
ZWRpYUVuZHBvaW50OjpzZXRDb25maWd1cmF0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50Lmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVQZWVyQ29ubmVjdGlvbik6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVy
Lmg6CisKIDIwMTktMDgtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEJsb2IgcmVnaXN0cmllcyBzaG91bGQgYmUga2V5ZWQgYnkgc2Vzc2lvbiBJRHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggNDY0MjhjY2JkMzY0Y2U2MzllZjljNjQ0NmY2YjRjOTkzZGEwNzM2OC4uZmIzNGYw
YmZmYmE4MmZmMDdhNzA2YWY3MWVkZmYxNGY3YTBmZjVlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
MyBAQAorMjAxOS0wOC0xMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAg
ICAgICAgVXNlciBBZ2VudCBhbmQgU2Vzc2lvbklEIHNob3VsZCBiZSBnaXZlbiB0byBOZXR3b3Jr
UlRDUHJvdmlkZXIgdG8gc2V0IHVwIHRoZSBjb3JyZWN0IHByb3h5IGluZm9ybWF0aW9uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA1ODMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXNzIHNlc3Npb24g
aWQgYW5kIHVzZXIgYWdlbnQgd2hlbmV2ZXIgY3JlYXRpbmcgYSBUQ1AgY2xpZW50IHNvY2tldC4K
KyAgICAgICAgVXNlIG9mIHRoaXMgaW5mb3JtYXRpb24gdG8gZ2V0IHRoZSBwcm94eSBpbmZvcm1h
dGlvbiBmcm9tIE5ldHdvcmtTZXNzaW9uIGFuZCBwYXNzIGl0IHRvIGxpYndlYnJ0YyBzb2NrZXQg
Y3JlYXRpb24uCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lv
bkNvY29hLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92
aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6cHJveHlJbmZv
RnJvbVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0
ZUNsaWVudFRDUFNvY2tldCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdv
cmtSVENQcm92aWRlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3Jr
UlRDUHJvdmlkZXIubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQ
cm92aWRlci5tbTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6
cHJveHlJbmZvRnJvbVNlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJy
dGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENQcm92
aWRlcjo6Y3JlYXRlUGVlckNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENQ
cm92aWRlcjo6Y3JlYXRlU29ja2V0RmFjdG9yeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVNlcnZlclRjcFNvY2tldCk6CisgICAgICAg
IChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVVkcFNvY2tldCk6CisgICAg
ICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZUNsaWVudFRjcFNvY2tl
dCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZUFzeW5j
UmVzb2x2ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRD
U29ja2V0RmFjdG9yeS5oOgorCiAyMDE5LTA4LTEyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBCbG9iIHJlZ2lzdHJpZXMgc2hvdWxkIGJlIGtleWVkIGJ5IHNl
c3Npb24gSURzCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmln
dXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
Q29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHAKaW5kZXggNjQ2ZDhkNGNiZGUwZTYyZmJl
MjdjZjlhNDg2YjM0MzE0YzNhNzUyMS4uOTIwNTI5NmQ1N2Y4MmRmMGI0ODA2Yzg1MTQ2MDU4ZDgw
MjE3ZmEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3Vy
YXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cApAQCAtMjQ4LDMgKzI0OCw4IEBAIF9f
Wk42d2VicnRjMTZSdHBSdHhQYXJhbWV0ZXJzQzFFUktTMF8KIF9fWk42d2VicnRjMTZSdHBSdHhQ
YXJhbWV0ZXJzRDFFdgogX19aTjNydGMxMExvZ01lc3NhZ2UxMlNldExvZ091dHB1dEVOU18xNUxv
Z2dpbmdTZXZlcml0eUVQRnZTMV9QS2NFCiBfX1pONndlYnJ0YzEzQ3J5cHRvT3B0aW9uczVOb0dj
bUV2CitfX1pUVk4zcnRjMjNJbnNlY3VyZUNyeXB0U3RyaW5nSW1wbEUKK19fWk4zcnRjMTFDcnlw
dFN0cmluZ0MxRVJLTlNfMTVDcnlwdFN0cmluZ0ltcGxFCitfX1pOM3J0YzEzU29ja2V0QWRkcmVz
c0MxRVJLTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzFfMTFjaGFyX3RyYWl0c0ljRUVOUzFfOWFs
bG9jYXRvckljRUVFRWkKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0QxRXYKK19fWk4zcnRjMTFDcnlw
dFN0cmluZ0MxRVJLUzBfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
Q29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5leHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5leHAKaW5kZXggOTgwYzNm
NDk1MTM5ZTlkODZkMDNhNWVjMDZjZjk4YTg5YzI3NDA3My4uNmYxMzJjYmMwZTZmNmIzOGJhNWMx
ODMyZWUzNmJhMTRiMzE1ODA5NCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1NzaW0uZXhwCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2ltLmV4cApAQCAt
MjQ5LDMgKzI0OSw4IEBAIF9fWk42d2VicnRjMTZSdHBSdHhQYXJhbWV0ZXJzQzFFUktTMF8KIF9f
Wk42d2VicnRjMTZSdHBSdHhQYXJhbWV0ZXJzRDFFdgogX19aTjNydGMxMExvZ01lc3NhZ2UxMlNl
dExvZ091dHB1dEVOU18xNUxvZ2dpbmdTZXZlcml0eUVQRnZTMV9QS2NFCiBfX1pONndlYnJ0YzEz
Q3J5cHRvT3B0aW9uczVOb0djbUV2CitfX1pUVk4zcnRjMjNJbnNlY3VyZUNyeXB0U3RyaW5nSW1w
bEUKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0MxRVJLTlNfMTVDcnlwdFN0cmluZ0ltcGxFCitfX1pO
M3J0YzEzU29ja2V0QWRkcmVzc0MxRVJLTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzFfMTFjaGFy
X3RyYWl0c0ljRUVOUzFfOWFsbG9jYXRvckljRUVFRWkKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0Qx
RXYKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0MxRVJLUzBfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLm1hYy5leHAgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLm1hYy5leHAK
aW5kZXggOTgwYzNmNDk1MTM5ZTlkODZkMDNhNWVjMDZjZjk4YTg5YzI3NDA3My4uNmYxMzJjYmMw
ZTZmNmIzOGJhNWMxODMyZWUzNmJhMTRiMzE1ODA5NCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5tYWMuZXhwCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMubWFjLmV4
cApAQCAtMjQ5LDMgKzI0OSw4IEBAIF9fWk42d2VicnRjMTZSdHBSdHhQYXJhbWV0ZXJzQzFFUktT
MF8KIF9fWk42d2VicnRjMTZSdHBSdHhQYXJhbWV0ZXJzRDFFdgogX19aTjNydGMxMExvZ01lc3Nh
Z2UxMlNldExvZ091dHB1dEVOU18xNUxvZ2dpbmdTZXZlcml0eUVQRnZTMV9QS2NFCiBfX1pONndl
YnJ0YzEzQ3J5cHRvT3B0aW9uczVOb0djbUV2CitfX1pUVk4zcnRjMjNJbnNlY3VyZUNyeXB0U3Ry
aW5nSW1wbEUKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0MxRVJLTlNfMTVDcnlwdFN0cmluZ0ltcGxF
CitfX1pOM3J0YzEzU29ja2V0QWRkcmVzc0MxRVJLTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzFf
MTFjaGFyX3RyYWl0c0ljRUVOUzFfOWFsbG9jYXRvckljRUVFRWkKK19fWk4zcnRjMTFDcnlwdFN0
cmluZ0QxRXYKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0MxRVJLUzBfCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVu
ZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCmluZGV4IDQ1YmY0YTkzZDI1MDBmZTg5YTNlYmU3
N2VjMWNkOGVkZTEwNWEyZjkuLmRlZjFmOTFlZWU5ZWQ2ZWM3OGQxM2M2OWVjNDM0OGYwYWE2OGQz
NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCkBAIC04
Niw3ICs4NiwxMSBAQCBib29sIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OnNldENvbmZpZ3VyYXRp
b24oTGliV2ViUlRDUHJvdmlkZXImIGNsaWVudCwgd2VicnRjOgogICAgICAgICBjb25maWd1cmF0
aW9uLnNkcF9zZW1hbnRpY3MgPSB3ZWJydGM6OlNkcFNlbWFudGljczo6a1VuaWZpZWRQbGFuOwog
CiAgICAgaWYgKCFtX2JhY2tlbmQpIHsKLSAgICAgICAgbV9iYWNrZW5kID0gY2xpZW50LmNyZWF0
ZVBlZXJDb25uZWN0aW9uKCp0aGlzLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKKyAgICAgICAg
aWYgKCFtX3J0Y1NvY2tldEZhY3RvcnkpIHsKKyAgICAgICAgICAgIGF1dG8mIGRvY3VtZW50ID0g
ZG93bmNhc3Q8RG9jdW1lbnQ+KCptX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jb25uZWN0aW9uKCku
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICAgICAgICAgIG1fcnRjU29ja2V0RmFjdG9y
eSA9IGNsaWVudC5jcmVhdGVTb2NrZXRGYWN0b3J5KGRvY3VtZW50LnNlc3Npb25JRCgpLCBkb2N1
bWVudC51c2VyQWdlbnQoZG9jdW1lbnQudXJsKCkpKTsKKyAgICAgICAgfQorICAgICAgICBtX2Jh
Y2tlbmQgPSBjbGllbnQuY3JlYXRlUGVlckNvbm5lY3Rpb24oKnRoaXMsIG1fcnRjU29ja2V0RmFj
dG9yeS5nZXQoKSwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CiAgICAgICAgIHJldHVybiAhIW1f
YmFja2VuZDsKICAgICB9CiAgICAgYXV0byBvbGRDb25maWd1cmF0aW9uID0gbV9iYWNrZW5kLT5H
ZXRDb25maWd1cmF0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50
LmgKaW5kZXggNjJiYjQ3NmEwZTNiMjFmNmIzOWUyZGFmMmIyNmJiZTFmY2ZlZGY0Zi4uY2E5ZGY4
NmQ3OGM3MmVlYTIyYTAyOWU5YzM5ZmIxMWEzMGUyMDg5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2lu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ01lZGlhRW5kcG9pbnQuaApAQCAtMTk4LDYgKzE5OCw3IEBAIHByaXZhdGU6CiAKICAg
ICBIYXNoTWFwPFN0cmluZywgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6TWVkaWFTdHJlYW1J
bnRlcmZhY2U+PiBtX2xvY2FsU3RyZWFtczsKIAorICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OlBh
Y2tldFNvY2tldEZhY3Rvcnk+IG1fcnRjU29ja2V0RmFjdG9yeTsKICNpZiAhUkVMRUFTRV9MT0df
RElTQUJMRUQKICAgICBpbnQ2NF90IG1fc3RhdHNGaXJzdERlbGl2ZXJlZFRpbWVzdGFtcCB7IDAg
fTsKICAgICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUHJvdmlkZXIuY3BwCmluZGV4IDNhYTkwY2ZhNDZhN2VjMDBlNzU2ZGEzZmJlY2Q1MmE2NDNj
NzJlY2UuLjIwN2FiNzhhOWEyYmJlNDBhMGVkNGRhNjk1NjlhZWRiMTIyOTllMjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcApAQCAtMjgxLDcgKzI4MSw3IEBAIHZvaWQg
TGliV2ViUlRDUHJvdmlkZXI6OmVuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMo
KQogICAgIG1fZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcyA9IHRydWU7CiB9
CiAKLXJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBM
aWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlckNvbm5lY3Rpb24od2VicnRjOjpQZWVyQ29ubmVj
dGlvbk9ic2VydmVyJiBvYnNlcnZlciwgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6
UlRDQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCitydGM6OnNjb3BlZF9yZWZwdHI8d2Vi
cnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gTGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZVBl
ZXJDb25uZWN0aW9uKHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZlciYgb2JzZXJ2ZXIsIHJ0
Yzo6UGFja2V0U29ja2V0RmFjdG9yeSosIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6
OlJUQ0NvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogewogICAgIC8vIERlZmF1bHQgV0sx
IGltcGxlbWVudGF0aW9uLgogICAgIEFTU0VSVChtX3VzZU5ldHdvcmtUaHJlYWRXaXRoU29ja2V0
U2VydmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKaW5kZXggMjQ4NTcyZjM2
Y2YxNjcyMmQ1NDg1NTJjOGU1ZWYxZTNiNDMyOGU4OC4uYmRmMDkwMDQwYzkwNjU3ZjQ5ZjBjZTRh
ZTI4MDc3MzhhMWU4YmU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKQEAg
LTkxLDcgKzkxLDcgQEAgcHVibGljOgogICAgIH0KIAogI2lmIFVTRShMSUJXRUJSVEMpCi0gICAg
dmlydHVhbCBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFj
ZT4gY3JlYXRlUGVlckNvbm5lY3Rpb24od2VicnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyJiwg
d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6UlRDQ29uZmlndXJhdGlvbiYmKTsKKyAg
ICB2aXJ0dWFsIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJm
YWNlPiBjcmVhdGVQZWVyQ29ubmVjdGlvbih3ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXIm
LCBydGM6OlBhY2tldFNvY2tldEZhY3RvcnkqLCB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJm
YWNlOjpSVENDb25maWd1cmF0aW9uJiYpOwogCiAgICAgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkZh
Y3RvcnlJbnRlcmZhY2UqIGZhY3RvcnkoKTsKIApAQCAtMTE4LDYgKzExOCw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldEVuYWJsZUxvZ2dpbmcoYm9vbCk7CiAgICAgdm9pZCBzZXRFbmFibGVXZWJS
VENFbmNyeXB0aW9uKGJvb2wpOwogCisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpQ
YWNrZXRTb2NrZXRGYWN0b3J5PiBjcmVhdGVTb2NrZXRGYWN0b3J5KFBBTDo6U2Vzc2lvbklELCBT
dHJpbmcmJiAvKiB1c2VyQWdlbnQgKi8pIHsgcmV0dXJuIG51bGxwdHI7IH0KKwogcHJvdGVjdGVk
OgogICAgIExpYldlYlJUQ1Byb3ZpZGVyKCkgPSBkZWZhdWx0OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oCmlu
ZGV4IDRiYWIyM2VhODUzY2U4YWE3MmUzOGRkZmE2Zjg1OGE1MTViZDkwYjIuLjJkYWFlNGQxN2Vi
ZjAyNTM4ZThlYzljZmZhM2VhODM5ZDU0MDE3YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oCkBAIC0yOCw2
ICsyOCw3IEBACiBPQkpDX0NMQVNTIERNRldlYnNpdGVQb2xpY3lNb25pdG9yOwogT0JKQ19DTEFT
UyBOU0RhdGE7CiBPQkpDX0NMQVNTIE5TVVJMU2Vzc2lvbjsKK09CSkNfQ0xBU1MgTlNVUkxTZXNz
aW9uQ29uZmlndXJhdGlvbjsKIE9CSkNfQ0xBU1MgTlNVUkxTZXNzaW9uRG93bmxvYWRUYXNrOwog
T0JKQ19DTEFTUyBOU09wZXJhdGlvblF1ZXVlOwogT0JKQ19DTEFTUyBXS05ldHdvcmtTZXNzaW9u
RGVsZWdhdGU7CkBAIC04MSw2ICs4Miw4IEBAIHB1YmxpYzoKICAgICBib29sIGFsbExvYWRzQmxv
Y2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcoKSBjb25zdCB7IHJl
dHVybiBtX2FsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRl
c3Rpbmc7IH0KICAgICBETUZXZWJzaXRlUG9saWN5TW9uaXRvciAqZGV2aWNlTWFuYWdlbWVudFBv
bGljeU1vbml0b3IoKTsKIAorICAgIENGRGljdGlvbmFyeVJlZiBwcm94eUNvbmZpZ3VyYXRpb24o
KSBjb25zdCB7IHJldHVybiBtX3Byb3h5Q29uZmlndXJhdGlvbi5nZXQoKTsgfQorCiBwcml2YXRl
OgogICAgIHZvaWQgaW52YWxpZGF0ZUFuZENhbmNlbCgpIG92ZXJyaWRlOwogICAgIHZvaWQgY2xl
YXJDcmVkZW50aWFscygpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKaW5kZXggMTZiN2Zh
ZTE5ZjYwYmY4MTM5ODQxMzU5YmQ2ODdjNjRlNDkzMWY0Ni4uYTVhYzU3MjEzNzlkYjNkMWIyNTg3
NTU4NjEwMzBiYmE0ZGI5ZWI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCkBAIC0xMjksMTAgKzEy
OSwyMiBAQCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlU2VydmVyVENQU29ja2V0KHVp
bnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldAogICAgIH0pOwogfQogCi12b2lkIE5ldHdv
cmtSVENQcm92aWRlcjo6Y3JlYXRlQ2xpZW50VENQU29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIs
IGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgUlRD
TmV0d29yazo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgaW50IG9wdGlvbnMpCisjaWYg
IVBMQVRGT1JNKENPQ09BKQorcnRjOjpQcm94eUluZm8gTmV0d29ya1JUQ1Byb3ZpZGVyOjpwcm94
eUluZm9Gcm9tU2Vzc2lvbihjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgTmV0d29y
a1Nlc3Npb24mKQogewotICAgIGNhbGxPblJUQ05ldHdvcmtUaHJlYWQoW3RoaXMsIGlkZW50aWZp
ZXIsIGxvY2FsQWRkcmVzcyA9IFJUQ05ldHdvcms6Omlzb2xhdGVkQ29weShsb2NhbEFkZHJlc3Mu
dmFsdWUpLCByZW1vdGVBZGRyZXNzID0gUlRDTmV0d29yazo6aXNvbGF0ZWRDb3B5KHJlbW90ZUFk
ZHJlc3MudmFsdWUpLCBvcHRpb25zXSgpIHsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6
QXN5bmNQYWNrZXRTb2NrZXQ+IHNvY2tldChtX3BhY2tldFNvY2tldEZhY3RvcnktPkNyZWF0ZUNs
aWVudFRjcFNvY2tldChsb2NhbEFkZHJlc3MsIHJlbW90ZUFkZHJlc3MsIHsgfSwgeyB9LCBvcHRp
b25zKSk7CisgICAgcmV0dXJuIHsgfTsKK30KKyNlbmRpZgorCit2b2lkIE5ldHdvcmtSVENQcm92
aWRlcjo6Y3JlYXRlQ2xpZW50VENQU29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFJU
Q05ldHdvcms6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgUlRDTmV0d29yazo6
U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBT
dHJpbmcmJiB1c2VyQWdlbnQsIGludCBvcHRpb25zKQoreworICAgIGF1dG8qIHNlc3Npb24gPSBt
X2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKTsK
KyAgICBpZiAoIXNlc3Npb24pIHsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5jb25uZWN0aW9uKCku
c2VuZChNZXNzYWdlczo6V2ViUlRDU29ja2V0OjpTaWduYWxDbG9zZSgxKSwgaWRlbnRpZmllcik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY2FsbE9uUlRDTmV0d29ya1RocmVhZChbdGhp
cywgaWRlbnRpZmllciwgbG9jYWxBZGRyZXNzID0gUlRDTmV0d29yazo6aXNvbGF0ZWRDb3B5KGxv
Y2FsQWRkcmVzcy52YWx1ZSksIHJlbW90ZUFkZHJlc3MgPSBSVENOZXR3b3JrOjppc29sYXRlZENv
cHkocmVtb3RlQWRkcmVzcy52YWx1ZSksIHByb3h5SW5mbyA9IHByb3h5SW5mb0Zyb21TZXNzaW9u
KHJlbW90ZUFkZHJlc3MsICpzZXNzaW9uKSwgdXNlckFnZW50ID0gV1RGTW92ZSh1c2VyQWdlbnQp
Lmlzb2xhdGVkQ29weSgpLCBvcHRpb25zXSgpIHsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPHJ0
Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+IHNvY2tldChtX3BhY2tldFNvY2tldEZhY3RvcnktPkNyZWF0
ZUNsaWVudFRjcFNvY2tldChsb2NhbEFkZHJlc3MsIHJlbW90ZUFkZHJlc3MsIHByb3h5SW5mbywg
dXNlckFnZW50LnV0ZjgoKS5kYXRhKCksIG9wdGlvbnMpKTsKICAgICAgICAgY3JlYXRlU29ja2V0
KGlkZW50aWZpZXIsIFdURk1vdmUoc29ja2V0KSwgTGliV2ViUlRDU29ja2V0Q2xpZW50OjpUeXBl
OjpDbGllbnRUQ1ApOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaAppbmRleCBjNmU4NjcyZGJk
MDc4ZDg3MzQ1ZjJmMGNkMjJmYzM5MzBlN2YxOWRmLi4zMmNhNmMyZDJlYzRhMTNiMzA2MTQxOTU0
MGI2OGY1MTRiZjc5MGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaApAQCAtMzEsNiArMzEsNyBAQAogI2lu
Y2x1ZGUgIk5ldHdvcmtSVENNb25pdG9yLmgiCiAjaW5jbHVkZSAiUlRDTmV0d29yay5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDTWFjcm9zLmg+CisjaW5jbHVkZSA8cGFsL1Nlc3Npb25J
RC5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9wMnAvYmFzZS9iYXNpY3BhY2tldHNvY2tldGZhY3Rvcnku
aD4KICNpbmNsdWRlIDx3ZWJydGMvcnRjX2Jhc2UvdGhpcmRfcGFydHkvc2lnc2xvdC9zaWdzbG90
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTQ3LDYgKzQ4LDcgQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiBjbGFzcyBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKIGNsYXNzIE5l
dHdvcmtSVENSZXNvbHZlcjsKIGNsYXNzIE5ldHdvcmtSVENTb2NrZXQ7CitjbGFzcyBOZXR3b3Jr
U2Vzc2lvbjsKIAogY2xhc3MgTmV0d29ya1JUQ1Byb3ZpZGVyIDogcHVibGljIFRocmVhZFNhZmVS
ZWZDb3VudGVkPE5ldHdvcmtSVENQcm92aWRlcj4sIHB1YmxpYyBydGM6Ok1lc3NhZ2VIYW5kbGVy
IHsKIHB1YmxpYzoKQEAgLTc1LDcgKzc3LDcgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBOZXR3
b3JrUlRDUHJvdmlkZXIoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKIAogICAgIHZv
aWQgY3JlYXRlVURQU29ja2V0KHVpbnQ2NF90LCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRy
ZXNzJiwgdWludDE2X3QsIHVpbnQxNl90KTsKLSAgICB2b2lkIGNyZWF0ZUNsaWVudFRDUFNvY2tl
dCh1aW50NjRfdCwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIGNvbnN0IFJUQ05l
dHdvcms6OlNvY2tldEFkZHJlc3MmLCBpbnQpOworICAgIHZvaWQgY3JlYXRlQ2xpZW50VENQU29j
a2V0KHVpbnQ2NF90LCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgY29uc3QgUlRD
TmV0d29yazo6U29ja2V0QWRkcmVzcyYsIFBBTDo6U2Vzc2lvbklELCBTdHJpbmcmJiB1c2VyQWdl
bnQsIGludCk7CiAgICAgdm9pZCBjcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQodWludDY0X3QsIGNvbnN0
IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBt
YXhQb3J0LCBpbnQpOwogICAgIHZvaWQgd3JhcE5ld1RDUENvbm5lY3Rpb24odWludDY0X3QgaWRl
bnRpZmllciwgdWludDY0X3QgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIpOwogCkBAIC04
OCw2ICs5MCw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIE9uTWVzc2FnZShydGM6Ok1lc3NhZ2Uq
KTsKIAorICAgIHN0YXRpYyBydGM6OlByb3h5SW5mbyBwcm94eUluZm9Gcm9tU2Vzc2lvbihjb25z
dCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgTmV0d29ya1Nlc3Npb24mKTsKKwogICAgIEhh
c2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrUlRDUmVzb2x2ZXI+PiBtX3Jl
c29sdmVyczsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRD
U29ja2V0Q2xpZW50Pj4gbV9zb2NrZXRzOwogICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzKiBtX2Nvbm5lY3Rpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMuaW4KaW5k
ZXggNDg5MTRjMzdmNWU5NTVhY2YzMWM4YTdmMGU2NjYyMGU1MmFmY2Y1MS4uYjQxNTUzNzlkZDhm
NDZmN2U4NjhmY2NmOTM0YjU4NDk0ZmQxNjAyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5t
ZXNzYWdlcy5pbgpAQCAtMjUsNyArMjUsNyBAQAogbWVzc2FnZXMgLT4gTmV0d29ya1JUQ1Byb3Zp
ZGVyIHsKICAgICBDcmVhdGVVRFBTb2NrZXQoaW50IGlkZW50aWZpZXIsIFdlYktpdDo6UlRDTmV0
d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQx
Nl90IG1heFBvcnQpCiAgICAgQ3JlYXRlU2VydmVyVENQU29ja2V0KGludCBpZGVudGlmaWVyLCBX
ZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgbG9jYWxBZGRyZXNzLCB1aW50MTZfdCBt
aW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9ucykKLSAgICBDcmVhdGVDbGllbnRU
Q1BTb2NrZXQoaW50IGlkZW50aWZpZXIsIFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0QWRkcmVz
cyBsb2NhbEFkZHJlc3MsIFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyByZW1vdGVB
ZGRyZXNzLCBpbnQgb3B0aW9ucykKKyAgICBDcmVhdGVDbGllbnRUQ1BTb2NrZXQoaW50IGlkZW50
aWZpZXIsIFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIFdl
YktpdDo6UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyByZW1vdGVBZGRyZXNzLCBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFN0cmluZyB1c2VyQWdlbnQsIGludCBvcHRpb25zKQogICAgIENyZWF0
ZVJlc29sdmVyKHVpbnQ2NF90IGlkZW50aWZpZXIsIFN0cmluZyBhZGRyZXNzKQogICAgIFN0b3BS
ZXNvbHZlcih1aW50NjRfdCBpZGVudGlmaWVyKQogICAgIFdyYXBOZXdUQ1BDb25uZWN0aW9uKHVp
bnQ2NF90IGlkZW50aWZpZXIsIHVpbnQ2NF90IG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29y
a1JUQ1Byb3ZpZGVyLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0
d29ya1JUQ1Byb3ZpZGVyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2NTZjYWU5MTMyM2M4ZTJhOGUyNWQ2NDEx
NzY1ZGMyNTRkNGMyMDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubW0KQEAgLTAsMCArMSw5NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOZXR3b3JrUlRDUHJvdmlk
ZXIuaCIKKworI2lmIFVTRShMSUJXRUJSVEMpCisKKyNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbkNv
Y29hLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENNYWNyb3MuaD4KKyNpbmNsdWRlIDx3
ZWJydGMvcnRjX2Jhc2UvYXN5bmNwYWNrZXRzb2NrZXQuaD4KKyNpbmNsdWRlIDx3ZWJydGMvcnRj
X2Jhc2UvbG9nZ2luZy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIGlubGluZSBi
b29sIGlzRW5hYmxlZChDRkRpY3Rpb25hcnlSZWYgcHJveHksIENGU3RyaW5nUmVmIGtleSkKK3sK
KyAgICBhdXRvIGVuYWJsZWQgPSBzdGF0aWNfY2FzdDxDRk51bWJlclJlZj4oQ0ZEaWN0aW9uYXJ5
R2V0VmFsdWUocHJveHksIGtleSkpOworCisgICAgaWYgKCFlbmFibGVkKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBpbnQgcmVzdWx0OworICAgIHJldHVybiBDRk51bWJlckdldFZhbHVl
KGVuYWJsZWQsIGtDRk51bWJlckludFR5cGUsICZyZXN1bHQpOworICAgIHJldHVybiAhIXJlc3Vs
dDsKK30KKworc3RhdGljIGlubGluZSBydGM6OlByb3h5SW5mbyBjcmVhdGVSVENQcm94eShDRkRp
Y3Rpb25hcnlSZWYgcHJveHksIHJ0Yzo6UHJveHlUeXBlIHR5cGUsIENGU3RyaW5nUmVmIG5hbWVL
ZXksIENGU3RyaW5nUmVmIHBvcnRLZXkpCit7CisgICAgcnRjOjpQcm94eUluZm8gaW5mbzsKKyAg
ICBpbmZvLnR5cGUgPSB0eXBlOworCisgICAgYXV0byBwcm94eUhvc3ROYW1lID0gc3RhdGljX2Nh
c3Q8Q0ZTdHJpbmdSZWY+KENGRGljdGlvbmFyeUdldFZhbHVlKHByb3h5LCBuYW1lS2V5KSk7Cisg
ICAgaWYgKCFwcm94eUhvc3ROYW1lKQorICAgICAgICByZXR1cm4geyB9OworICAgIGF1dG8gcG9y
dE51bWJlciA9IHN0YXRpY19jYXN0PENGTnVtYmVyUmVmPihDRkRpY3Rpb25hcnlHZXRWYWx1ZShw
cm94eSwgcG9ydEtleSkpOworICAgIGlmICghcG9ydE51bWJlcikKKyAgICAgICAgcmV0dXJuIHsg
fTsKKworICAgIGludCBwcm94eVBvcnQ7CisgICAgaWYgKCFDRk51bWJlckdldFZhbHVlKHBvcnRO
dW1iZXIsIGtDRk51bWJlclNJbnQzMlR5cGUsICZwcm94eVBvcnQpKQorICAgICAgICByZXR1cm4g
eyB9OworCisgICAgaW5mby5hZGRyZXNzID0geyBzdGQ6OnN0cmluZyhbKF9fYnJpZGdlIE5TU3Ry
aW5nICopcHJveHlIb3N0TmFtZSBVVEY4U3RyaW5nXSksIHByb3h5UG9ydCB9OworICAgIGluZm8u
YXV0b2RldGVjdCA9IGZhbHNlOworICAgIHJldHVybiBpbmZvOworfQorCitydGM6OlByb3h5SW5m
byBOZXR3b3JrUlRDUHJvdmlkZXI6OnByb3h5SW5mb0Zyb21TZXNzaW9uKGNvbnN0IFJUQ05ldHdv
cms6OlNvY2tldEFkZHJlc3MmLCBOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbikKK3sKKyAgICAvLyBG
SVhNRTogV2Ugc2hvdWxkIGNoZWNrIGZvciBrQ0ZOZXR3b3JrUHJveGllc0V4Y2VwdGlvbnNMaXN0
IHRvIGRlY2lkZSB3aGV0aGVyIHRvIHVzZSBwcm94eSBvciBub3QuCisgICAgLy8gRklYTUU6IFdl
IHNob3VsZCBhbHNvIGdldCB1c2VybmFtZS9wYXNzd29yZCBmb3IgYXV0aGVudGljYXRpb24gY2Fz
ZXMuCisgICAgYXV0byBwcm94eURpY3Rpb25hcnkgPSBzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lv
bkNvY29hJj4oc2Vzc2lvbikucHJveHlDb25maWd1cmF0aW9uKCk7CisgICAgaWYgKCFwcm94eURp
Y3Rpb25hcnkpCisgICAgICAgIHByb3h5RGljdGlvbmFyeSA9IENGTmV0d29ya0NvcHlTeXN0ZW1Q
cm94eVNldHRpbmdzKCk7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIGlmIChpc0VuYWJsZWQocHJv
eHlEaWN0aW9uYXJ5LCBrQ0ZOZXR3b3JrUHJveGllc0hUVFBTRW5hYmxlKSkKKyAgICAgICAgcmV0
dXJuIGNyZWF0ZVJUQ1Byb3h5KHByb3h5RGljdGlvbmFyeSwgcnRjOjpQUk9YWV9IVFRQUywga0NG
TmV0d29ya1Byb3hpZXNIVFRQU1Byb3h5LCBrQ0ZOZXR3b3JrUHJveGllc0hUVFBTUG9ydCk7CisK
KyAgICBpZiAoaXNFbmFibGVkKHByb3h5RGljdGlvbmFyeSwga0NGTmV0d29ya1Byb3hpZXNTT0NL
U0VuYWJsZSkpCisgICAgICAgIHJldHVybiBjcmVhdGVSVENQcm94eShwcm94eURpY3Rpb25hcnks
IHJ0Yzo6UFJPWFlfU09DS1M1LCBrQ0ZOZXR3b3JrUHJveGllc1NPQ0tTUHJveHksIGtDRk5ldHdv
cmtQcm94aWVzU09DS1NQb3J0KTsKKyNlbmRpZgorI2lmIFBMQVRGT1JNKElPUykKKyAgICBpZiAo
aXNFbmFibGVkKHByb3h5RGljdGlvbmFyeSwga0NGTmV0d29ya1Byb3hpZXNIVFRQRW5hYmxlKSkK
KyAgICAgICAgcmV0dXJuIGNyZWF0ZVJUQ1Byb3h5KHByb3h5RGljdGlvbmFyeSwgcnRjOjpQUk9Y
WV9IVFRQUywga0NGTmV0d29ya1Byb3hpZXNIVFRQUHJveHksIGtDRk5ldHdvcmtQcm94aWVzSFRU
UFBvcnQpOworI2VuZGlmCisgICAgcmV0dXJuIHsgfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBVU0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWQ1NmEyYTE3OThlZDFhM2JkOTQ5OWZh
OGUwOTVhZTQ2YzljYmEzMS4uYTY1YzdmOTY3MzMzNzkzNjA1ZTRhMmZmYTU4NTIxYmMzZTIwOGFi
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC04ODMsNiArODgzLDcgQEAKIAkJNDE0REQzN0EyMEJGNDlBNTAwNjk1OUZCIC8qIGNvbS5j
aXNjby53ZWJleC5wbHVnaW4uZ3BjNjQuc2IgaW4gQ29weSBQbHVnLWluIFNhbmRib3ggUHJvZmls
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE0REQzNzgyMEJGNDNFQTAw
Njk1OUZCIC8qIGNvbS5jaXNjby53ZWJleC5wbHVnaW4uZ3BjNjQuc2IgKi87IH07CiAJCTQxNERF
REQ3MUY5RURERTUwMDQ3QzQwRCAvKiBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTRERURENTFGOUVERERG
MDA0N0M0MEQgLyogU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oICovOyB9OwogCQk0MTU3RTRC
MDIwRTJFQ0RGMDBBNkMwRDcgLyogY29tLmdvb2dsZS5vMWRicm93c2VycGx1Z2luLnNiIGluIENv
cHkgUGx1Zy1pbiBTYW5kYm94IFByb2ZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxNTdFNEFGMjBFMkVDOTgwMEE2QzBENyAvKiBjb20uZ29vZ2xlLm8xZGJyb3dzZXJw
bHVnaW4uc2IgKi87IH07CisJCTQxNzY5MDE0MjJGREQ0MUIwMEIxNTc2RCAvKiBOZXR3b3JrUlRD
UHJvdmlkZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MTc2OTAxMzIyRkRENDFCMDBCMTU3NkQgLyogTmV0d29ya1JUQ1Byb3ZpZGVyLm1tICovOyB9
OwogCQk0MTc5MTVBRjIyNTZCQjc1MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3OTE1QUQyMjU2QkI3
NDAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWwuaCAqLzsgfTsKIAkJNDE3OTE1QjEyMjU2QzBE
NjAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWxNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc5MTVCMDIyNTZDMEQ2MDBENkY5N0UgLyog
V2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuaCAqLzsgfTsKIAkJNDE3OTE1QjkyMjU3MDQ2RjAwRDZG
OTdFIC8qIE5ldHdvcmtTb2NrZXRDaGFubmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc5MTVCNjIyNTcwNDZFMDBENkY5N0UgLyogTmV0d29ya1Nv
Y2tldENoYW5uZWwuaCAqLzsgfTsKQEAgLTMxMjYsNiArMzEyNyw3IEBACiAJCTQxNTFFNUMzMUZC
QjkwQTkwMEU0N0UyRCAvKiBGb3JtRGF0YVJlZmVyZW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBGb3JtRGF0YVJlZmVyZW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTU3ODUzMDIxMjc2QjZGMDBERDM4MDAgLyogY29weS13ZWJjb250ZW50LXJlc291
cmNlcy10by1wcml2YXRlLWhlYWRlcnMuc2ggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5zaDsgcGF0aCA9ICJjb3B5LXdlYmNvbnRl
bnQtcmVzb3VyY2VzLXRvLXByaXZhdGUtaGVhZGVycy5zaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxNTdFNEFGMjBFMkVDOTgwMEE2QzBENyAvKiBjb20uZ29vZ2xlLm8xZGJyb3dz
ZXJwbHVnaW4uc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmdvb2dsZS5vMWRicm93c2Vy
cGx1Z2luLnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc2OTAxMzIyRkRENDFC
MDBCMTU3NkQgLyogTmV0d29ya1JUQ1Byb3ZpZGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gTmV0d29ya1JUQ1Byb3ZpZGVyLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTc5MTVBQzIyNTZCQjc0MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5l
bC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJTb2NrZXRDaGFu
bmVsLmNwcDsgcGF0aCA9IE5ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxNzkxNUFEMjI1NkJCNzQwMEQ2Rjk3RSAvKiBXZWJTb2NrZXRD
aGFubmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlNvY2tldENoYW5u
ZWwuaDsgcGF0aCA9IE5ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTc5MTVCMDIyNTZDMEQ2MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5l
bE1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViU29ja2V0Q2hh
bm5lbE1hbmFnZXIuaDsgcGF0aCA9IE5ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY1NDcsNiArNjU0OSw3IEBACiAJCQkJNDFE
QzQ1OTUxRTNENkUxRTAwQjExRjUxIC8qIE5ldHdvcmtSVENQcm92aWRlci5jcHAgKi8sCiAJCQkJ
NDFEQzQ1OTQxRTNENkUxRTAwQjExRjUxIC8qIE5ldHdvcmtSVENQcm92aWRlci5oICovLAogCQkJ
CTQxREM0NTk4MUUzRDZFRDYwMEIxMUY1MSAvKiBOZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMu
aW4gKi8sCisJCQkJNDE3NjkwMTMyMkZERDQxQjAwQjE1NzZEIC8qIE5ldHdvcmtSVENQcm92aWRl
ci5tbSAqLywKIAkJCQk0MTEyQjU0NzFGOUZEM0FCMDBFNjc4NzUgLyogTmV0d29ya1JUQ1Jlc29s
dmVyLmNwcCAqLywKIAkJCQk0MTEyQjU0ODFGOUZEM0FDMDBFNjc4NzUgLyogTmV0d29ya1JUQ1Jl
c29sdmVyLmggKi8sCiAJCQkJNDExMkI1NDcxRjlGRDNBQjAwRTY3OTg2IC8qIE5ldHdvcmtSVENS
ZXNvbHZlckNvY29hLmNwcCAqLywKQEAgLTExMTI5LDYgKzExMTMyLDcgQEAKIAkJCQk1MTNBMTYz
QzE2MzA4OEY2MDA1RDdEMjIgLyogTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTUyNTUxQTE3MDExODE5MDAzRDdBREIgLyogTmV0d29y
a1Jlc291cmNlTG9hZGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUx
RjA2MEUxMTY1NDMxODUwMEYzMjgxRSAvKiBOZXR3b3JrUlRDTW9uaXRvck1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0MTc2OTAxNDIyRkRENDFCMDBCMTU3NkQgLyogTmV0
d29ya1JUQ1Byb3ZpZGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGMDYwRTExNjU0MzE4NTAw
RjMyODJFIC8qIE5ldHdvcmtSVENQcm92aWRlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUQgLyogTmV0d29ya1JUQ1NvY2tldE1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUYwNjBFMTE2NTQzMTg1MDBG
MzI4MUMgLyogTmV0d29ya1NvY2tldENoYW5uZWxNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJy
dGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAppbmRleCBhZmUyNDA4ODRjM2NiYWFhNmFk
MjM4YmJlMjNmOTU5MzE1OTE5MjFkLi4wOTRhYzcxZjdlNWVmZmFiNzQ4NWZjZWZjYWU1NDg5M2Ri
M2UwNTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJy
dGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKQEAgLTQ0LDkgKzQ0LDkgQEAgcHJp
dmF0ZToKICAgICB9CiB9OwogCi1ydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVj
dGlvbkludGVyZmFjZT4gTGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZVBlZXJDb25uZWN0aW9uKHdl
YnJ0Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZlciYgb2JzZXJ2ZXIsIHdlYnJ0Yzo6UGVlckNvbm5l
Y3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQorcnRjOjpz
Y29wZWRfcmVmcHRyPHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U+IExpYldlYlJUQ1By
b3ZpZGVyOjpjcmVhdGVQZWVyQ29ubmVjdGlvbih3ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2
ZXImIG9ic2VydmVyLCBydGM6OlBhY2tldFNvY2tldEZhY3RvcnkqIHNvY2tldEZhY3RvcnksIHdl
YnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24mJiBjb25maWd1
cmF0aW9uKQogewotICAgIHJldHVybiBXZWJDb3JlOjpMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRl
UGVlckNvbm5lY3Rpb24ob2JzZXJ2ZXIsIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJU
Q05ldHdvcmsoKS5tb25pdG9yKCksIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ05l
dHdvcmsoKS5zb2NrZXRGYWN0b3J5KCksIFdURk1vdmUoY29uZmlndXJhdGlvbiksIHN0ZDo6bWFr
ZV91bmlxdWU8QXN5bmNSZXNvbHZlckZhY3Rvcnk+KCkpOworICAgIHJldHVybiBXZWJDb3JlOjpM
aWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlckNvbm5lY3Rpb24ob2JzZXJ2ZXIsIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ05ldHdvcmsoKS5tb25pdG9yKCksICpzb2NrZXRGYWN0
b3J5LCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pLCBzdGQ6Om1ha2VfdW5pcXVlPEFzeW5jUmVzb2x2
ZXJGYWN0b3J5PigpKTsKIH0KIAogdm9pZCBMaWJXZWJSVENQcm92aWRlcjo6ZGlzYWJsZU5vbkxv
Y2FsaG9zdENvbm5lY3Rpb25zKCkKQEAgLTY0LDYgKzY0LDQ3IEBAIHZvaWQgTGliV2ViUlRDUHJv
dmlkZXI6OnJlZ2lzdGVyTUROU05hbWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRf
dCBkb2N1CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDTmV0d29yaygpLm1k
bnNSZWdpc3RlcigpLnJlZ2lzdGVyTUROU05hbWUoc2Vzc2lvbklELCBkb2N1bWVudElkZW50aWZp
ZXIsIGlwQWRkcmVzcywgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCitjbGFzcyBSVENTb2NrZXRG
YWN0b3J5IGZpbmFsIDogcHVibGljIHJ0Yzo6UGFja2V0U29ja2V0RmFjdG9yeSB7CitwdWJsaWM6
CisgICAgUlRDU29ja2V0RmFjdG9yeShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyYm
IHVzZXJBZ2VudCkKKyAgICAgICAgOiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCisgICAgICAgICwg
bV91c2VyQWdlbnQoV1RGTW92ZSh1c2VyQWdlbnQpKQorICAgIHsKKyAgICB9CisKK3ByaXZhdGU6
CisgICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogQ3JlYXRlVWRwU29ja2V0KGNvbnN0IHJ0Yzo6
U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9y
dCkgZmluYWwKKyAgICB7CisgICAgICAgIHJldHVybiBmYWN0b3J5KCkuY3JlYXRlVWRwU29ja2V0
KGFkZHJlc3MsIG1pblBvcnQsIG1heFBvcnQpOworICAgIH0KKworICAgIHJ0Yzo6QXN5bmNQYWNr
ZXRTb2NrZXQqIENyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3Mm
IGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCBvcHRpb25z
KSBmaW5hbAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZhY3RvcnkoKS5jcmVhdGVTZXJ2ZXJUY3BT
b2NrZXQoYWRkcmVzcywgbWluUG9ydCwgbWF4UG9ydCwgb3B0aW9ucyk7CisgICAgfQorCisgICAg
cnRjOjpBc3luY1BhY2tldFNvY2tldCogQ3JlYXRlQ2xpZW50VGNwU29ja2V0KGNvbnN0IHJ0Yzo6
U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJl
bW90ZUFkZHJlc3MsIGNvbnN0IHJ0Yzo6UHJveHlJbmZvJiwgY29uc3Qgc3RkOjpzdHJpbmcmLCBp
bnQgb3B0aW9ucykgZmluYWwKKyAgICB7CisgICAgICAgIHJldHVybiBmYWN0b3J5KCkuY3JlYXRl
Q2xpZW50VGNwU29ja2V0KGxvY2FsQWRkcmVzcywgcmVtb3RlQWRkcmVzcywgbV9zZXNzaW9uSUQs
IFN0cmluZyB7IG1fdXNlckFnZW50IH0sIG9wdGlvbnMpOworICAgIH0KKworICAgIHJ0Yzo6QXN5
bmNSZXNvbHZlckludGVyZmFjZSogQ3JlYXRlQXN5bmNSZXNvbHZlcigpIGZpbmFsCisgICAgewor
ICAgICAgICByZXR1cm4gZmFjdG9yeSgpLmNyZWF0ZUFzeW5jUmVzb2x2ZXIoKTsKKyAgICB9CisK
KyAgICBMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiBmYWN0b3J5KCkgeyByZXR1cm4gV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkubGliV2ViUlRDTmV0d29yaygpLnNvY2tldEZhY3RvcnkoKTsgfQorCitw
cml2YXRlOgorICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOworICAgIFN0cmluZyBtX3Vz
ZXJBZ2VudDsKK307CisKK3N0ZDo6dW5pcXVlX3B0cjxydGM6OlBhY2tldFNvY2tldEZhY3Rvcnk+
IExpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVTb2NrZXRGYWN0b3J5KFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgU3RyaW5nJiYgdXNlckFnZW50KQoreworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5p
cXVlPFJUQ1NvY2tldEZhY3Rvcnk+KHNlc3Npb25JRCwgV1RGTW92ZSh1c2VyQWdlbnQpKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBVU0UoTElCV0VCUlRDKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJU
Q1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGli
V2ViUlRDUHJvdmlkZXIuaAppbmRleCBhMTQxNzAwY2U2ZjRhMTg2YzIxNjY2MjhhZGI5MGFmNGQ5
ZmU0ZTU2Li5mNjVhNjI5NWVjOTBlMWQyYjc2ZmY0NzEyMjI2ZDg0M2M3ZDk2NGVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJv
dmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGli
V2ViUlRDUHJvdmlkZXIuaApAQCAtNTAsNyArNTAsOSBAQCBwdWJsaWM6CiAgICAgTGliV2ViUlRD
UHJvdmlkZXIoKSB7IG1fdXNlTmV0d29ya1RocmVhZFdpdGhTb2NrZXRTZXJ2ZXIgPSBmYWxzZTsg
fQogCiBwcml2YXRlOgotICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0
aW9uSW50ZXJmYWNlPiBjcmVhdGVQZWVyQ29ubmVjdGlvbih3ZWJydGM6OlBlZXJDb25uZWN0aW9u
T2JzZXJ2ZXImLCB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpSVENDb25maWd1cmF0
aW9uJiYpIGZpbmFsOworICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OlBhY2tldFNvY2tldEZhY3Rv
cnk+IGNyZWF0ZVNvY2tldEZhY3RvcnkoUEFMOjpTZXNzaW9uSUQsIFN0cmluZyYmIC8qIHVzZXJB
Z2VudCAqLykgZmluYWw7CisKKyAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29u
bmVjdGlvbkludGVyZmFjZT4gY3JlYXRlUGVlckNvbm5lY3Rpb24od2VicnRjOjpQZWVyQ29ubmVj
dGlvbk9ic2VydmVyJiwgcnRjOjpQYWNrZXRTb2NrZXRGYWN0b3J5Kiwgd2VicnRjOjpQZWVyQ29u
bmVjdGlvbkludGVyZmFjZTo6UlRDQ29uZmlndXJhdGlvbiYmKSBmaW5hbDsKIAogICAgIHZvaWQg
dW5yZWdpc3Rlck1ETlNOYW1lcyh1aW50NjRfdCBkb2N1bWVudElkZW50aWZpZXIpIGZpbmFsOwog
ICAgIHZvaWQgcmVnaXN0ZXJNRE5TTmFtZShQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgZG9jdW1l
bnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGlwQWRkcmVzcywgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChNRE5TTmFtZU9yRXJyb3ImJik+JiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tl
dEZhY3RvcnkuY3BwCmluZGV4IGQ3NzhkNTc3ZWE4ZWZjMWIzNTZkZjFkN2MwMTdlY2RmMzE4ODEw
NmEuLmY4YjdlZDIyOWM0ZjZmMmRjMDM2MTMyY2M5NmU0MTFlZWNhNTcwMmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRG
YWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
TGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RhdGljIGlubGlu
ZSBydGM6OlNvY2tldEFkZHJlc3MgcHJlcGFyZVNvY2tldEFkZHJlc3MoY29uc3QgcnRjOjpTb2Nr
ZXRBZGRyZXNzJgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXJ0Yzo6QXN5bmNQYWNrZXRTb2Nr
ZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBy
dGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1h
eFBvcnQsIGludCBvcHRpb25zKQorcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29j
a2V0RmFjdG9yeTo6Y3JlYXRlU2VydmVyVGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVz
cyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlv
bnMpCiB7CiAgICAgYXV0byBzb2NrZXQgPSBzdGQ6Om1ha2VfdW5pcXVlPExpYldlYlJUQ1NvY2tl
dD4oKnRoaXMsICsrc191bmlxdWVTb2NrZXRJZGVudGlmaWVyLCBMaWJXZWJSVENTb2NrZXQ6OlR5
cGU6OlNlcnZlclRDUCwgYWRkcmVzcywgcnRjOjpTb2NrZXRBZGRyZXNzKCkpOwogICAgIG1fc29j
a2V0cy5zZXQoc29ja2V0LT5pZGVudGlmaWVyKCksIHNvY2tldC5nZXQoKSk7CkBAIC02NCw3ICs2
NCw3IEBAIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OkNy
ZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBydGM6CiAgICAgcmV0dXJuIHNvY2tldC5yZWxlYXNl
KCk7CiB9CiAKLXJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6
OkNyZWF0ZVVkcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQx
Nl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQpCitydGM6OkFzeW5jUGFja2V0U29ja2V0KiBM
aWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVVZHBTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRB
ZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQogewog
ICAgIGF1dG8gc29ja2V0ID0gc3RkOjptYWtlX3VuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlz
LCArK3NfdW5pcXVlU29ja2V0SWRlbnRpZmllciwgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpVRFAs
IGFkZHJlc3MsIHJ0Yzo6U29ja2V0QWRkcmVzcygpKTsKICAgICBtX3NvY2tldHMuc2V0KHNvY2tl
dC0+aWRlbnRpZmllcigpLCBzb2NrZXQuZ2V0KCkpOwpAQCAtNzgsMTQgKzc4LDE0IEBAIHJ0Yzo6
QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZVVkcFNvY2tl
dChjb25zdCBydGM6OlNvY2tlCiAgICAgcmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7CiB9CiAKLXJ0
Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZUNsaWVu
dFRjcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3Qg
cnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBjb25zdCBydGM6OlByb3h5SW5mbyYs
IGNvbnN0IHN0ZDo6c3RyaW5nJiwgaW50IG9wdGlvbnMpCitydGM6OkFzeW5jUGFja2V0U29ja2V0
KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3QgcnRj
OjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYg
cmVtb3RlQWRkcmVzcywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcmJiB1c2VyQWdl
bnQsIGludCBvcHRpb25zKQogewogICAgIGF1dG8gc29ja2V0ID0gc3RkOjptYWtlX3VuaXF1ZTxM
aWJXZWJSVENTb2NrZXQ+KCp0aGlzLCArK3NfdW5pcXVlU29ja2V0SWRlbnRpZmllciwgTGliV2Vi
UlRDU29ja2V0OjpUeXBlOjpDbGllbnRUQ1AsIGxvY2FsQWRkcmVzcywgcmVtb3RlQWRkcmVzcyk7
CiAgICAgc29ja2V0LT5zZXRTdGF0ZShMaWJXZWJSVENTb2NrZXQ6OlNUQVRFX0NPTk5FQ1RJTkcp
OwogICAgIG1fc29ja2V0cy5zZXQoc29ja2V0LT5pZGVudGlmaWVyKCksIHNvY2tldC5nZXQoKSk7
CiAKLSAgICBjYWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlmaWVy
KCksIGxvY2FsQWRkcmVzcyA9IHByZXBhcmVTb2NrZXRBZGRyZXNzKGxvY2FsQWRkcmVzcywgbV9k
aXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpLCByZW1vdGVBZGRyZXNzID0gcHJlcGFyZVNv
Y2tldEFkZHJlc3MocmVtb3RlQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlv
bnMpLCBvcHRpb25zXSgpIHsKLSAgICAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5l
bnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdl
czo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpDcmVhdGVDbGllbnRUQ1BTb2NrZXQoaWRlbnRpZmllciwg
UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhsb2NhbEFkZHJlc3MpLCBSVENOZXR3b3JrOjpTb2Nr
ZXRBZGRyZXNzKHJlbW90ZUFkZHJlc3MpLCBvcHRpb25zKSwgMCkpIHsKKyAgICBjYWxsT25NYWlu
VGhyZWFkKFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlmaWVyKCksIGxvY2FsQWRkcmVzcyA9
IHByZXBhcmVTb2NrZXRBZGRyZXNzKGxvY2FsQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0
Q29ubmVjdGlvbnMpLCByZW1vdGVBZGRyZXNzID0gcHJlcGFyZVNvY2tldEFkZHJlc3MocmVtb3Rl
QWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpLCBzZXNzaW9uSUQsIHVz
ZXJBZ2VudCA9IFdURk1vdmUodXNlckFnZW50KS5pc29sYXRlZENvcHkoKSwgb3B0aW9uc10oKSB7
CisgICAgICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92
aWRlcjo6Q3JlYXRlQ2xpZW50VENQU29ja2V0KGlkZW50aWZpZXIsIFJUQ05ldHdvcms6OlNvY2tl
dEFkZHJlc3MobG9jYWxBZGRyZXNzKSwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhyZW1vdGVB
ZGRyZXNzKSwgc2Vzc2lvbklELCB1c2VyQWdlbnQsIG9wdGlvbnMpLCAwKSkgewogICAgICAgICAg
ICAgLy8gRklYTUU6IFNldCBlcnJvciBiYWNrIHRvIHNvY2tldAogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBMaWJXZWJSVENTb2NrZXRGYWN0
b3J5OjpkZXRhY2goTGliV2ViUlRDU29ja2V0JiBzb2NrZXQpCiAgICAgbV9zb2NrZXRzLnJlbW92
ZShzb2NrZXQuaWRlbnRpZmllcigpKTsKIH0KIAotcnRjOjpBc3luY1Jlc29sdmVySW50ZXJmYWNl
KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpDcmVhdGVBc3luY1Jlc29sdmVyKCkKK3J0Yzo6QXN5
bmNSZXNvbHZlckludGVyZmFjZSogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlQXN5bmNS
ZXNvbHZlcigpCiB7CiAgICAgYXV0byByZXNvbHZlciA9IHN0ZDo6bWFrZV91bmlxdWU8TGliV2Vi
UlRDUmVzb2x2ZXI+KCsrc191bmlxdWVSZXNvbHZlcklkZW50aWZpZXIpOwogICAgIGF1dG8qIHJl
c29sdmVyUG9pbnRlciA9IHJlc29sdmVyLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0
b3J5LmgKaW5kZXggZjBiNDE5NTcxM2ZiNzU1YTAwNDk3MzlhNjI1YTIwMWNjNDkyZWMxYi4uMjQ0
NjYwNGMxNTAwMThlZjYxNDQ0ZGE0ZTRhYjZiZDVlN2I3NDJhMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3Rvcnku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRD
U29ja2V0RmFjdG9yeS5oCkBAIC0zNiw3ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
Ci1jbGFzcyBMaWJXZWJSVENTb2NrZXRGYWN0b3J5IGZpbmFsIDogcHVibGljIHJ0Yzo6UGFja2V0
U29ja2V0RmFjdG9yeSB7CitjbGFzcyBMaWJXZWJSVENTb2NrZXRGYWN0b3J5IHsKIHB1YmxpYzoK
ICAgICBMaWJXZWJSVENTb2NrZXRGYWN0b3J5KCkgeyB9CiAKQEAgLTUxLDEzICs1MSwxMiBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIGRpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucygpIHsgbV9k
aXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMgPSB0cnVlOyB9CiAKLSAgICBydGM6OkFzeW5j
UmVzb2x2ZXJJbnRlcmZhY2UqIGNyZWF0ZUFzeW5jUmVzb2x2ZXIoKSB7IHJldHVybiBDcmVhdGVB
c3luY1Jlc29sdmVyKCk7IH0KKyAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVVZHBT
b2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2
X3QgbWF4UG9ydCk7CisgICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogY3JlYXRlU2VydmVyVGNw
U29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQx
Nl90IG1heFBvcnQsIGludCBvcHRpb25zKTsKKyAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBj
cmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJl
c3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgUEFMOjpTZXNzaW9u
SUQsIFN0cmluZyYmIHVzZXJBZ2VudCwgaW50IG9wdGlvbnMpOworICAgIHJ0Yzo6QXN5bmNSZXNv
bHZlckludGVyZmFjZSogY3JlYXRlQXN5bmNSZXNvbHZlcigpOwogCiBwcml2YXRlOgotICAgIHJ0
Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIENyZWF0ZVVkcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFk
ZHJlc3MmLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KSBmaW5hbDsKLSAgICBy
dGM6OkFzeW5jUGFja2V0U29ja2V0KiBDcmVhdGVTZXJ2ZXJUY3BTb2NrZXQoY29uc3QgcnRjOjpT
b2NrZXRBZGRyZXNzJiwgdWludDE2X3QgbWluX3BvcnQsIHVpbnQxNl90IG1heF9wb3J0LCBpbnQg
b3B0aW9ucykgZmluYWw7Ci0gICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogQ3JlYXRlQ2xpZW50
VGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBy
dGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIGNvbnN0IHJ0Yzo6UHJveHlJbmZvJiwg
Y29uc3Qgc3RkOjpzdHJpbmcmLCBpbnQgb3B0aW9ucyk7Ci0gICAgcnRjOjpBc3luY1Jlc29sdmVy
SW50ZXJmYWNlKiBDcmVhdGVBc3luY1Jlc29sdmVyKCkgZmluYWw7CiAKICAgICAvLyBXZSBjYW5u
b3Qgb3duIHNvY2tldHMsIGNsaWVudHMgb2YgdGhlIGZhY3RvcnkgYXJlIHJlc3BvbnNpYmxlIHRv
IGZyZWUgdGhlbS4KICAgICBIYXNoTWFwPHVpbnQ2NF90LCBMaWJXZWJSVENTb2NrZXQqPiBtX3Nv
Y2tldHM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376140</attachid>
            <date>2019-08-13 00:34:53 -0700</date>
            <delta_ts>2019-08-13 01:54:33 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-200583-20190813093451.patch</filename>
            <type>text/plain</type>
            <size>35311</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCAxMzQzNWFkYmU0MTUyNTFhN2ZmNjhiODYzYjJlNDkwMWUwMmM3ZjllLi45ZTI1
OTlhOWI4M2JkODE1OGJhOGVhYjliODlkMTgxMGQ2NTBmZjc1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0wOC0xMiAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlciBBZ2VudCBhbmQgU2Vzc2lv
bklEIHNob3VsZCBiZSBnaXZlbiB0byBOZXR3b3JrUlRDUHJvdmlkZXIgdG8gc2V0IHVwIHRoZSBj
b3JyZWN0IHByb3h5IGluZm9ybWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDA1ODMKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxz
b24uCisKKyAgICAgICAgRXhwb3J0IG9mIHNvbWUgc3ltYm9scy4KKworICAgICAgICAqIENvbmZp
Z3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwOgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL2xp
YndlYnJ0Yy5pT1NzaW0uZXhwOgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5t
YWMuZXhwOgorCiAyMDE5LTA4LTAyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBBZGQgYnVpbGQgY2hlY2sgZm9yIGxpYndlYnJ0YyBPYmplY3RpdmVDIG5hbWVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggNTBlZGY0YTc3YjcxY2RmZmM2MmIyMDc2M2Q3M2RmNTc4NzllZTNjNi4u
YzI3NTI2NDgyMTFhNDA2MzQzY2I5NGI1NDhmNGYxMDFjZGM1NzdhNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIxIEBACisyMDE5LTA4LTEyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KKworICAgICAgICBVc2VyIEFnZW50IGFuZCBTZXNzaW9uSUQgc2hvdWxkIGJlIGdpdmVuIHRv
IE5ldHdvcmtSVENQcm92aWRlciB0byBzZXQgdXAgdGhlIGNvcnJlY3QgcHJveHkgaW5mb3JtYXRp
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDU4
MworCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBVc2UgYSBz
b2NrZXQgZmFjdG9yeSB0aGF0IGlzIHNwZWNpZmljIHRvIHRoZSB1c2VyIGFnZW50IGFuZCBzZXNz
aW9uIElELgorICAgICAgICBUaGlzIGZhY3RvcnkgaXMgc3RvcmVkIGluIHRoZSBtZWRpYSBlbmRw
b2ludC4KKyAgICAgICAgTm90IHRlc3RhYmxlIHdpdGhvdXQgcHJveHkgaW5mcmFzdHJ1Y3R1cmUu
CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRp
YUVuZHBvaW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ01lZGlhRW5kcG9pbnQ6
OnNldENvbmZpZ3VyYXRpb24pOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZVBlZXJDb25uZWN0aW9uKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaDoKKwogMjAxOS0w
OC0xMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQmxvYiBy
ZWdpc3RyaWVzIHNob3VsZCBiZSBrZXllZCBieSBzZXNzaW9uIElEcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0NjQy
OGNjYmQzNjRjZTYzOWVmOWM2NDQ2ZjZiNGM5OTNkYTA3MzY4Li5iZjAwNDYxYTQ0NjA4ZGJjMjI1
MzBiNjM4NTg5OTZjMjFlMzYwMDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE5LTA4
LTEyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVc2VyIEFn
ZW50IGFuZCBTZXNzaW9uSUQgc2hvdWxkIGJlIGdpdmVuIHRvIE5ldHdvcmtSVENQcm92aWRlciB0
byBzZXQgdXAgdGhlIGNvcnJlY3QgcHJveHkgaW5mb3JtYXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDU4MworCisgICAgICAgIFJldmlld2Vk
IGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBQYXNzIHNlc3Npb24gaWQgYW5kIHVzZXIgYWdl
bnQgd2hlbmV2ZXIgY3JlYXRpbmcgYSBUQ1AgY2xpZW50IHNvY2tldC4KKyAgICAgICAgVXNlIHRo
aXMgaW5mb3JtYXRpb24gdG8gZ2V0IHRoZSBwcm94eSBpbmZvcm1hdGlvbiBmcm9tIE5ldHdvcmtT
ZXNzaW9uIGFuZCBwYXNzIGl0IHRvIGxpYndlYnJ0YyBzb2NrZXQgY3JlYXRpb24uCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmg6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6cHJveHlJbmZvRnJvbVNlc3Npb24pOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZUNsaWVudFRDUFNvY2tldCk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVzc2Fn
ZXMuaW46CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tbTogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6cHJveHlJbmZvRnJvbVNlc3Np
b24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlk
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlckNv
bm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlU29j
a2V0RmFjdG9yeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJS
VENQcm92aWRlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2Vi
UlRDU29ja2V0RmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZh
Y3Rvcnk6OmNyZWF0ZVNlcnZlclRjcFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJU
Q1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVVkcFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6OkxpYldl
YlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZUNsaWVudFRjcFNvY2tldCk6CisgICAgICAgIChXZWJL
aXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZUFzeW5jUmVzb2x2ZXIpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oOgor
CiAyMDE5LTA4LTEyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBCbG9iIHJlZ2lzdHJpZXMgc2hvdWxkIGJlIGtleWVkIGJ5IHNlc3Npb24gSURzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRj
LmlPUy5leHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGli
d2VicnRjLmlPUy5leHAKaW5kZXggNjQ2ZDhkNGNiZGUwZTYyZmJlMjdjZjlhNDg2YjM0MzE0YzNh
NzUyMS4uOTIwNTI5NmQ1N2Y4MmRmMGI0ODA2Yzg1MTQ2MDU4ZDgwMjE3ZmEzNyAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5p
T1MuZXhwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9s
aWJ3ZWJydGMuaU9TLmV4cApAQCAtMjQ4LDMgKzI0OCw4IEBAIF9fWk42d2VicnRjMTZSdHBSdHhQ
YXJhbWV0ZXJzQzFFUktTMF8KIF9fWk42d2VicnRjMTZSdHBSdHhQYXJhbWV0ZXJzRDFFdgogX19a
TjNydGMxMExvZ01lc3NhZ2UxMlNldExvZ091dHB1dEVOU18xNUxvZ2dpbmdTZXZlcml0eUVQRnZT
MV9QS2NFCiBfX1pONndlYnJ0YzEzQ3J5cHRvT3B0aW9uczVOb0djbUV2CitfX1pUVk4zcnRjMjNJ
bnNlY3VyZUNyeXB0U3RyaW5nSW1wbEUKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0MxRVJLTlNfMTVD
cnlwdFN0cmluZ0ltcGxFCitfX1pOM3J0YzEzU29ja2V0QWRkcmVzc0MxRVJLTlN0M19fMTEyYmFz
aWNfc3RyaW5nSWNOUzFfMTFjaGFyX3RyYWl0c0ljRUVOUzFfOWFsbG9jYXRvckljRUVFRWkKK19f
Wk4zcnRjMTFDcnlwdFN0cmluZ0QxRXYKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0MxRVJLUzBfCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGli
d2VicnRjLmlPU3NpbS5leHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJh
dGlvbnMvbGlid2VicnRjLmlPU3NpbS5leHAKaW5kZXggOTgwYzNmNDk1MTM5ZTlkODZkMDNhNWVj
MDZjZjk4YTg5YzI3NDA3My4uNmYxMzJjYmMwZTZmNmIzOGJhNWMxODMyZWUzNmJhMTRiMzE1ODA5
NCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25z
L2xpYndlYnJ0Yy5pT1NzaW0uZXhwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9D
b25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2ltLmV4cApAQCAtMjQ5LDMgKzI0OSw4IEBAIF9f
Wk42d2VicnRjMTZSdHBSdHhQYXJhbWV0ZXJzQzFFUktTMF8KIF9fWk42d2VicnRjMTZSdHBSdHhQ
YXJhbWV0ZXJzRDFFdgogX19aTjNydGMxMExvZ01lc3NhZ2UxMlNldExvZ091dHB1dEVOU18xNUxv
Z2dpbmdTZXZlcml0eUVQRnZTMV9QS2NFCiBfX1pONndlYnJ0YzEzQ3J5cHRvT3B0aW9uczVOb0dj
bUV2CitfX1pUVk4zcnRjMjNJbnNlY3VyZUNyeXB0U3RyaW5nSW1wbEUKK19fWk4zcnRjMTFDcnlw
dFN0cmluZ0MxRVJLTlNfMTVDcnlwdFN0cmluZ0ltcGxFCitfX1pOM3J0YzEzU29ja2V0QWRkcmVz
c0MxRVJLTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzFfMTFjaGFyX3RyYWl0c0ljRUVOUzFfOWFs
bG9jYXRvckljRUVFRWkKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0QxRXYKK19fWk4zcnRjMTFDcnlw
dFN0cmluZ0MxRVJLUzBfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
Q29uZmlndXJhdGlvbnMvbGlid2VicnRjLm1hYy5leHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLm1hYy5leHAKaW5kZXggOTgwYzNmNDk1MTM5
ZTlkODZkMDNhNWVjMDZjZjk4YTg5YzI3NDA3My4uNmYxMzJjYmMwZTZmNmIzOGJhNWMxODMyZWUz
NmJhMTRiMzE1ODA5NCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0Nv
bmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5tYWMuZXhwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMubWFjLmV4cApAQCAtMjQ5LDMgKzI0OSw4
IEBAIF9fWk42d2VicnRjMTZSdHBSdHhQYXJhbWV0ZXJzQzFFUktTMF8KIF9fWk42d2VicnRjMTZS
dHBSdHhQYXJhbWV0ZXJzRDFFdgogX19aTjNydGMxMExvZ01lc3NhZ2UxMlNldExvZ091dHB1dEVO
U18xNUxvZ2dpbmdTZXZlcml0eUVQRnZTMV9QS2NFCiBfX1pONndlYnJ0YzEzQ3J5cHRvT3B0aW9u
czVOb0djbUV2CitfX1pUVk4zcnRjMjNJbnNlY3VyZUNyeXB0U3RyaW5nSW1wbEUKK19fWk4zcnRj
MTFDcnlwdFN0cmluZ0MxRVJLTlNfMTVDcnlwdFN0cmluZ0ltcGxFCitfX1pOM3J0YzEzU29ja2V0
QWRkcmVzc0MxRVJLTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzFfMTFjaGFyX3RyYWl0c0ljRUVO
UzFfOWFsbG9jYXRvckljRUVFRWkKK19fWk4zcnRjMTFDcnlwdFN0cmluZ0QxRXYKK19fWk4zcnRj
MTFDcnlwdFN0cmluZ0MxRVJLUzBfCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5k
cG9pbnQuY3BwCmluZGV4IDQ1YmY0YTkzZDI1MDBmZTg5YTNlYmU3N2VjMWNkOGVkZTEwNWEyZjku
LmRlZjFmOTFlZWU5ZWQ2ZWM3OGQxM2M2OWVjNDM0OGYwYWE2OGQzNjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlh
RW5kcG9pbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGli
d2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCkBAIC04Niw3ICs4NiwxMSBAQCBib29s
IExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OnNldENvbmZpZ3VyYXRpb24oTGliV2ViUlRDUHJvdmlk
ZXImIGNsaWVudCwgd2VicnRjOgogICAgICAgICBjb25maWd1cmF0aW9uLnNkcF9zZW1hbnRpY3Mg
PSB3ZWJydGM6OlNkcFNlbWFudGljczo6a1VuaWZpZWRQbGFuOwogCiAgICAgaWYgKCFtX2JhY2tl
bmQpIHsKLSAgICAgICAgbV9iYWNrZW5kID0gY2xpZW50LmNyZWF0ZVBlZXJDb25uZWN0aW9uKCp0
aGlzLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKKyAgICAgICAgaWYgKCFtX3J0Y1NvY2tldEZh
Y3RvcnkpIHsKKyAgICAgICAgICAgIGF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+
KCptX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jb25uZWN0aW9uKCkuc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKTsKKyAgICAgICAgICAgIG1fcnRjU29ja2V0RmFjdG9yeSA9IGNsaWVudC5jcmVhdGVT
b2NrZXRGYWN0b3J5KGRvY3VtZW50LnNlc3Npb25JRCgpLCBkb2N1bWVudC51c2VyQWdlbnQoZG9j
dW1lbnQudXJsKCkpKTsKKyAgICAgICAgfQorICAgICAgICBtX2JhY2tlbmQgPSBjbGllbnQuY3Jl
YXRlUGVlckNvbm5lY3Rpb24oKnRoaXMsIG1fcnRjU29ja2V0RmFjdG9yeS5nZXQoKSwgV1RGTW92
ZShjb25maWd1cmF0aW9uKSk7CiAgICAgICAgIHJldHVybiAhIW1fYmFja2VuZDsKICAgICB9CiAg
ICAgYXV0byBvbGRDb25maWd1cmF0aW9uID0gbV9iYWNrZW5kLT5HZXRDb25maWd1cmF0aW9uKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmgKaW5kZXggNjJiYjQ3NmEw
ZTNiMjFmNmIzOWUyZGFmMmIyNmJiZTFmY2ZlZGY0Zi4uY2E5ZGY4NmQ3OGM3MmVlYTIyYTAyOWU5
YzM5ZmIxMWEzMGUyMDg5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9p
bnQuaApAQCAtMTk4LDYgKzE5OCw3IEBAIHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFN0cmluZywg
cnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6TWVkaWFTdHJlYW1JbnRlcmZhY2U+PiBtX2xvY2Fs
U3RyZWFtczsKIAorICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OlBhY2tldFNvY2tldEZhY3Rvcnk+
IG1fcnRjU29ja2V0RmFjdG9yeTsKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBpbnQ2
NF90IG1fc3RhdHNGaXJzdERlbGl2ZXJlZFRpbWVzdGFtcCB7IDAgfTsKICAgICBSZWY8Y29uc3Qg
TG9nZ2VyPiBtX2xvZ2dlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCmlu
ZGV4IDNhYTkwY2ZhNDZhN2VjMDBlNzU2ZGEzZmJlY2Q1MmE2NDNjNzJlY2UuLjIwN2FiNzhhOWEy
YmJlNDBhMGVkNGRhNjk1NjlhZWRiMTIyOTllMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q1Byb3ZpZGVyLmNwcApAQCAtMjgxLDcgKzI4MSw3IEBAIHZvaWQgTGliV2ViUlRDUHJvdmlkZXI6
OmVuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMoKQogICAgIG1fZW5hYmxlRW51
bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcyA9IHRydWU7CiB9CiAKLXJ0Yzo6c2NvcGVkX3Jl
ZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBMaWJXZWJSVENQcm92aWRlcjo6
Y3JlYXRlUGVlckNvbm5lY3Rpb24od2VicnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyJiBvYnNl
cnZlciwgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6UlRDQ29uZmlndXJhdGlvbiYm
IGNvbmZpZ3VyYXRpb24pCitydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlv
bkludGVyZmFjZT4gTGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZVBlZXJDb25uZWN0aW9uKHdlYnJ0
Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZlciYgb2JzZXJ2ZXIsIHJ0Yzo6UGFja2V0U29ja2V0RmFj
dG9yeSosIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24m
JiBjb25maWd1cmF0aW9uKQogewogICAgIC8vIERlZmF1bHQgV0sxIGltcGxlbWVudGF0aW9uLgog
ICAgIEFTU0VSVChtX3VzZU5ldHdvcmtUaHJlYWRXaXRoU29ja2V0U2VydmVyKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKaW5kZXggMjQ4NTcyZjM2Y2YxNjcyMmQ1NDg1NTJjOGU1
ZWYxZTNiNDMyOGU4OC4uYmRmMDkwMDQwYzkwNjU3ZjQ5ZjBjZTRhZTI4MDc3MzhhMWU4YmU3OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKQEAgLTkxLDcgKzkxLDcgQEAgcHVi
bGljOgogICAgIH0KIAogI2lmIFVTRShMSUJXRUJSVEMpCi0gICAgdmlydHVhbCBydGM6OnNjb3Bl
ZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gY3JlYXRlUGVlckNvbm5l
Y3Rpb24od2VicnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyJiwgd2VicnRjOjpQZWVyQ29ubmVj
dGlvbkludGVyZmFjZTo6UlRDQ29uZmlndXJhdGlvbiYmKTsKKyAgICB2aXJ0dWFsIHJ0Yzo6c2Nv
cGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBjcmVhdGVQZWVyQ29u
bmVjdGlvbih3ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXImLCBydGM6OlBhY2tldFNvY2tl
dEZhY3RvcnkqLCB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpSVENDb25maWd1cmF0
aW9uJiYpOwogCiAgICAgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkZhY3RvcnlJbnRlcmZhY2UqIGZh
Y3RvcnkoKTsKIApAQCAtMTE4LDYgKzExOCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEVuYWJs
ZUxvZ2dpbmcoYm9vbCk7CiAgICAgdm9pZCBzZXRFbmFibGVXZWJSVENFbmNyeXB0aW9uKGJvb2wp
OwogCisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpQYWNrZXRTb2NrZXRGYWN0b3J5
PiBjcmVhdGVTb2NrZXRGYWN0b3J5KFBBTDo6U2Vzc2lvbklELCBTdHJpbmcmJiAvKiB1c2VyQWdl
bnQgKi8pIHsgcmV0dXJuIG51bGxwdHI7IH0KKwogcHJvdGVjdGVkOgogICAgIExpYldlYlJUQ1By
b3ZpZGVyKCkgPSBkZWZhdWx0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oCmluZGV4IDRiYWIyM2VhODUzY2U4
YWE3MmUzOGRkZmE2Zjg1OGE1MTViZDkwYjIuLjQ3NGE0NDE1N2Q0YmFjYzRjZWI3YTg4NDIyNzI2
Y2YxYjlmYjUxNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oCkBAIC04MSw2ICs4MSw4IEBAIHB1YmxpYzoK
ICAgICBib29sIGFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0Zv
clRlc3RpbmcoKSBjb25zdCB7IHJldHVybiBtX2FsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdl
bWVudFJlc3RyaWN0aW9uc0ZvclRlc3Rpbmc7IH0KICAgICBETUZXZWJzaXRlUG9saWN5TW9uaXRv
ciAqZGV2aWNlTWFuYWdlbWVudFBvbGljeU1vbml0b3IoKTsKIAorICAgIENGRGljdGlvbmFyeVJl
ZiBwcm94eUNvbmZpZ3VyYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Byb3h5Q29uZmlndXJhdGlv
bi5nZXQoKTsgfQorCiBwcml2YXRlOgogICAgIHZvaWQgaW52YWxpZGF0ZUFuZENhbmNlbCgpIG92
ZXJyaWRlOwogICAgIHZvaWQgY2xlYXJDcmVkZW50aWFscygpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92
aWRlci5jcHAKaW5kZXggMTZiN2ZhZTE5ZjYwYmY4MTM5ODQxMzU5YmQ2ODdjNjRlNDkzMWY0Ni4u
YTVhYzU3MjEzNzlkYjNkMWIyNTg3NTU4NjEwMzBiYmE0ZGI5ZWI4ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlk
ZXIuY3BwCkBAIC0xMjksMTAgKzEyOSwyMiBAQCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3Jl
YXRlU2VydmVyVENQU29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldAogICAg
IH0pOwogfQogCi12b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlQ2xpZW50VENQU29ja2V0
KHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIGxv
Y2FsQWRkcmVzcywgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVz
cywgaW50IG9wdGlvbnMpCisjaWYgIVBMQVRGT1JNKENPQ09BKQorcnRjOjpQcm94eUluZm8gTmV0
d29ya1JUQ1Byb3ZpZGVyOjpwcm94eUluZm9Gcm9tU2Vzc2lvbihjb25zdCBSVENOZXR3b3JrOjpT
b2NrZXRBZGRyZXNzJiwgTmV0d29ya1Nlc3Npb24mKQogewotICAgIGNhbGxPblJUQ05ldHdvcmtU
aHJlYWQoW3RoaXMsIGlkZW50aWZpZXIsIGxvY2FsQWRkcmVzcyA9IFJUQ05ldHdvcms6Omlzb2xh
dGVkQ29weShsb2NhbEFkZHJlc3MudmFsdWUpLCByZW1vdGVBZGRyZXNzID0gUlRDTmV0d29yazo6
aXNvbGF0ZWRDb3B5KHJlbW90ZUFkZHJlc3MudmFsdWUpLCBvcHRpb25zXSgpIHsKLSAgICAgICAg
c3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+IHNvY2tldChtX3BhY2tldFNv
Y2tldEZhY3RvcnktPkNyZWF0ZUNsaWVudFRjcFNvY2tldChsb2NhbEFkZHJlc3MsIHJlbW90ZUFk
ZHJlc3MsIHsgfSwgeyB9LCBvcHRpb25zKSk7CisgICAgcmV0dXJuIHsgfTsKK30KKyNlbmRpZgor
Cit2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlQ2xpZW50VENQU29ja2V0KHVpbnQ2NF90
IGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVz
cywgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcmJiB1c2VyQWdlbnQsIGludCBvcHRpb25zKQorewor
ICAgIGF1dG8qIHNlc3Npb24gPSBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9jZXNzKCkubmV0d29y
a1Nlc3Npb24oc2Vzc2lvbklEKTsKKyAgICBpZiAoIXNlc3Npb24pIHsKKyAgICAgICAgbV9jb25u
ZWN0aW9uLT5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6V2ViUlRDU29ja2V0OjpTaWduYWxD
bG9zZSgxKSwgaWRlbnRpZmllcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY2FsbE9u
UlRDTmV0d29ya1RocmVhZChbdGhpcywgaWRlbnRpZmllciwgbG9jYWxBZGRyZXNzID0gUlRDTmV0
d29yazo6aXNvbGF0ZWRDb3B5KGxvY2FsQWRkcmVzcy52YWx1ZSksIHJlbW90ZUFkZHJlc3MgPSBS
VENOZXR3b3JrOjppc29sYXRlZENvcHkocmVtb3RlQWRkcmVzcy52YWx1ZSksIHByb3h5SW5mbyA9
IHByb3h5SW5mb0Zyb21TZXNzaW9uKHJlbW90ZUFkZHJlc3MsICpzZXNzaW9uKSwgdXNlckFnZW50
ID0gV1RGTW92ZSh1c2VyQWdlbnQpLmlzb2xhdGVkQ29weSgpLCBvcHRpb25zXSgpIHsKKyAgICAg
ICAgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+IHNvY2tldChtX3BhY2tl
dFNvY2tldEZhY3RvcnktPkNyZWF0ZUNsaWVudFRjcFNvY2tldChsb2NhbEFkZHJlc3MsIHJlbW90
ZUFkZHJlc3MsIHByb3h5SW5mbywgdXNlckFnZW50LnV0ZjgoKS5kYXRhKCksIG9wdGlvbnMpKTsK
ICAgICAgICAgY3JlYXRlU29ja2V0KGlkZW50aWZpZXIsIFdURk1vdmUoc29ja2V0KSwgTGliV2Vi
UlRDU29ja2V0Q2xpZW50OjpUeXBlOjpDbGllbnRUQ1ApOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVy
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlk
ZXIuaAppbmRleCBjNmU4NjcyZGJkMDc4ZDg3MzQ1ZjJmMGNkMjJmYzM5MzBlN2YxOWRmLi4zMmNh
NmMyZDJlYzRhMTNiMzA2MTQxOTU0MGI2OGY1MTRiZjc5MGJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaApA
QCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtSVENNb25pdG9yLmgiCiAjaW5jbHVk
ZSAiUlRDTmV0d29yay5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDTWFjcm9zLmg+Cisj
aW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9wMnAvYmFzZS9iYXNp
Y3BhY2tldHNvY2tldGZhY3RvcnkuaD4KICNpbmNsdWRlIDx3ZWJydGMvcnRjX2Jhc2UvdGhpcmRf
cGFydHkvc2lnc2xvdC9zaWdzbG90Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTQ3
LDYgKzQ4LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2VzczsKIGNsYXNzIE5ldHdvcmtSVENSZXNvbHZlcjsKIGNsYXNzIE5ldHdvcmtSVENT
b2NrZXQ7CitjbGFzcyBOZXR3b3JrU2Vzc2lvbjsKIAogY2xhc3MgTmV0d29ya1JUQ1Byb3ZpZGVy
IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPE5ldHdvcmtSVENQcm92aWRlcj4sIHB1Ymxp
YyBydGM6Ok1lc3NhZ2VIYW5kbGVyIHsKIHB1YmxpYzoKQEAgLTc1LDcgKzc3LDcgQEAgcHJpdmF0
ZToKICAgICBleHBsaWNpdCBOZXR3b3JrUlRDUHJvdmlkZXIoTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MmKTsKIAogICAgIHZvaWQgY3JlYXRlVURQU29ja2V0KHVpbnQ2NF90LCBjb25zdCBS
VENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QsIHVpbnQxNl90KTsKLSAgICB2b2lk
IGNyZWF0ZUNsaWVudFRDUFNvY2tldCh1aW50NjRfdCwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0
QWRkcmVzcyYsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCBpbnQpOworICAgIHZv
aWQgY3JlYXRlQ2xpZW50VENQU29ja2V0KHVpbnQ2NF90LCBjb25zdCBSVENOZXR3b3JrOjpTb2Nr
ZXRBZGRyZXNzJiwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIFBBTDo6U2Vzc2lv
bklELCBTdHJpbmcmJiB1c2VyQWdlbnQsIGludCk7CiAgICAgdm9pZCBjcmVhdGVTZXJ2ZXJUQ1BT
b2NrZXQodWludDY0X3QsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZf
dCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQpOwogICAgIHZvaWQgd3JhcE5ld1RDUENv
bm5lY3Rpb24odWludDY0X3QgaWRlbnRpZmllciwgdWludDY0X3QgbmV3Q29ubmVjdGlvblNvY2tl
dElkZW50aWZpZXIpOwogCkBAIC04OCw2ICs5MCw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIE9u
TWVzc2FnZShydGM6Ok1lc3NhZ2UqKTsKIAorICAgIHN0YXRpYyBydGM6OlByb3h5SW5mbyBwcm94
eUluZm9Gcm9tU2Vzc2lvbihjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgTmV0d29y
a1Nlc3Npb24mKTsKKwogICAgIEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3
b3JrUlRDUmVzb2x2ZXI+PiBtX3Jlc29sdmVyczsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6
OnVuaXF1ZV9wdHI8TGliV2ViUlRDU29ja2V0Q2xpZW50Pj4gbV9zb2NrZXRzOwogICAgIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiBtX2Nvbm5lY3Rpb247CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJv
dmlkZXIubWVzc2FnZXMuaW4KaW5kZXggNDg5MTRjMzdmNWU5NTVhY2YzMWM4YTdmMGU2NjYyMGU1
MmFmY2Y1MS4uYjQxNTUzNzlkZDhmNDZmN2U4NjhmY2NmOTM0YjU4NDk0ZmQxNjAyNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3Zp
ZGVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRj
L05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5pbgpAQCAtMjUsNyArMjUsNyBAQAogbWVzc2Fn
ZXMgLT4gTmV0d29ya1JUQ1Byb3ZpZGVyIHsKICAgICBDcmVhdGVVRFBTb2NrZXQoaW50IGlkZW50
aWZpZXIsIFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIHVp
bnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQpCiAgICAgQ3JlYXRlU2VydmVyVENQU29j
a2V0KGludCBpZGVudGlmaWVyLCBXZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgbG9j
YWxBZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9u
cykKLSAgICBDcmVhdGVDbGllbnRUQ1BTb2NrZXQoaW50IGlkZW50aWZpZXIsIFdlYktpdDo6UlRD
TmV0d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIFdlYktpdDo6UlRDTmV0d29yazo6
U29ja2V0QWRkcmVzcyByZW1vdGVBZGRyZXNzLCBpbnQgb3B0aW9ucykKKyAgICBDcmVhdGVDbGll
bnRUQ1BTb2NrZXQoaW50IGlkZW50aWZpZXIsIFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0QWRk
cmVzcyBsb2NhbEFkZHJlc3MsIFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyByZW1v
dGVBZGRyZXNzLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyB1c2VyQWdlbnQsIGlu
dCBvcHRpb25zKQogICAgIENyZWF0ZVJlc29sdmVyKHVpbnQ2NF90IGlkZW50aWZpZXIsIFN0cmlu
ZyBhZGRyZXNzKQogICAgIFN0b3BSZXNvbHZlcih1aW50NjRfdCBpZGVudGlmaWVyKQogICAgIFdy
YXBOZXdUQ1BDb25uZWN0aW9uKHVpbnQ2NF90IGlkZW50aWZpZXIsIHVpbnQ2NF90IG5ld0Nvbm5l
Y3Rpb25Tb2NrZXRJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1tIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1tCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2NTZj
YWU5MTMyM2M4ZTJhOGUyNWQ2NDExNzY1ZGMyNTRkNGMyMDUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubW0K
QEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJOZXR3b3JrUlRDUHJvdmlkZXIuaCIKKworI2lmIFVTRShMSUJXRUJSVEMpCisKKyNpbmNs
dWRlICJOZXR3b3JrU2Vzc2lvbkNvY29hLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENN
YWNyb3MuaD4KKyNpbmNsdWRlIDx3ZWJydGMvcnRjX2Jhc2UvYXN5bmNwYWNrZXRzb2NrZXQuaD4K
KyNpbmNsdWRlIDx3ZWJydGMvcnRjX2Jhc2UvbG9nZ2luZy5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworc3RhdGljIGlubGluZSBib29sIGlzRW5hYmxlZChDRkRpY3Rpb25hcnlSZWYgcHJveHks
IENGU3RyaW5nUmVmIGtleSkKK3sKKyAgICBhdXRvIGVuYWJsZWQgPSBzdGF0aWNfY2FzdDxDRk51
bWJlclJlZj4oQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUocHJveHksIGtleSkpOworCisgICAgaWYgKCFl
bmFibGVkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpbnQgcmVzdWx0OworICAgIHJl
dHVybiBDRk51bWJlckdldFZhbHVlKGVuYWJsZWQsIGtDRk51bWJlckludFR5cGUsICZyZXN1bHQp
OworICAgIHJldHVybiAhIXJlc3VsdDsKK30KKworc3RhdGljIGlubGluZSBydGM6OlByb3h5SW5m
byBjcmVhdGVSVENQcm94eShDRkRpY3Rpb25hcnlSZWYgcHJveHksIHJ0Yzo6UHJveHlUeXBlIHR5
cGUsIENGU3RyaW5nUmVmIG5hbWVLZXksIENGU3RyaW5nUmVmIHBvcnRLZXkpCit7CisgICAgcnRj
OjpQcm94eUluZm8gaW5mbzsKKyAgICBpbmZvLnR5cGUgPSB0eXBlOworCisgICAgYXV0byBwcm94
eUhvc3ROYW1lID0gc3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KENGRGljdGlvbmFyeUdldFZhbHVl
KHByb3h5LCBuYW1lS2V5KSk7CisgICAgaWYgKCFwcm94eUhvc3ROYW1lKQorICAgICAgICByZXR1
cm4geyB9OworICAgIGF1dG8gcG9ydE51bWJlciA9IHN0YXRpY19jYXN0PENGTnVtYmVyUmVmPihD
RkRpY3Rpb25hcnlHZXRWYWx1ZShwcm94eSwgcG9ydEtleSkpOworICAgIGlmICghcG9ydE51bWJl
cikKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGludCBwcm94eVBvcnQ7CisgICAgaWYgKCFD
Rk51bWJlckdldFZhbHVlKHBvcnROdW1iZXIsIGtDRk51bWJlclNJbnQzMlR5cGUsICZwcm94eVBv
cnQpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaW5mby5hZGRyZXNzID0geyBzdGQ6OnN0
cmluZyhbKF9fYnJpZGdlIE5TU3RyaW5nICopcHJveHlIb3N0TmFtZSBVVEY4U3RyaW5nXSksIHBy
b3h5UG9ydCB9OworICAgIGluZm8uYXV0b2RldGVjdCA9IGZhbHNlOworICAgIHJldHVybiBpbmZv
OworfQorCitydGM6OlByb3h5SW5mbyBOZXR3b3JrUlRDUHJvdmlkZXI6OnByb3h5SW5mb0Zyb21T
ZXNzaW9uKGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCBOZXR3b3JrU2Vzc2lvbiYg
c2Vzc2lvbikKK3sKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNoZWNrIGZvciBrQ0ZOZXR3b3Jr
UHJveGllc0V4Y2VwdGlvbnNMaXN0IHRvIGRlY2lkZSB3aGV0aGVyIHRvIHVzZSBwcm94eSBvciBu
b3QuCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBhbHNvIGdldCB1c2VybmFtZS9wYXNzd29yZCBm
b3IgYXV0aGVudGljYXRpb24gY2FzZXMuCisgICAgYXV0byBwcm94eURpY3Rpb25hcnkgPSBzdGF0
aWNfY2FzdDxOZXR3b3JrU2Vzc2lvbkNvY29hJj4oc2Vzc2lvbikucHJveHlDb25maWd1cmF0aW9u
KCk7CisgICAgaWYgKCFwcm94eURpY3Rpb25hcnkpCisgICAgICAgIHByb3h5RGljdGlvbmFyeSA9
IENGTmV0d29ya0NvcHlTeXN0ZW1Qcm94eVNldHRpbmdzKCk7CisjaWYgUExBVEZPUk0oTUFDKQor
ICAgIGlmIChpc0VuYWJsZWQocHJveHlEaWN0aW9uYXJ5LCBrQ0ZOZXR3b3JrUHJveGllc0hUVFBT
RW5hYmxlKSkKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJUQ1Byb3h5KHByb3h5RGljdGlvbmFyeSwg
cnRjOjpQUk9YWV9IVFRQUywga0NGTmV0d29ya1Byb3hpZXNIVFRQU1Byb3h5LCBrQ0ZOZXR3b3Jr
UHJveGllc0hUVFBTUG9ydCk7CisKKyAgICBpZiAoaXNFbmFibGVkKHByb3h5RGljdGlvbmFyeSwg
a0NGTmV0d29ya1Byb3hpZXNTT0NLU0VuYWJsZSkpCisgICAgICAgIHJldHVybiBjcmVhdGVSVENQ
cm94eShwcm94eURpY3Rpb25hcnksIHJ0Yzo6UFJPWFlfU09DS1M1LCBrQ0ZOZXR3b3JrUHJveGll
c1NPQ0tTUHJveHksIGtDRk5ldHdvcmtQcm94aWVzU09DS1NQb3J0KTsKKyNlbmRpZgorI2lmIFBM
QVRGT1JNKElPUykKKyAgICBpZiAoaXNFbmFibGVkKHByb3h5RGljdGlvbmFyeSwga0NGTmV0d29y
a1Byb3hpZXNIVFRQRW5hYmxlKSkKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVJUQ1Byb3h5KHByb3h5
RGljdGlvbmFyeSwgcnRjOjpQUk9YWV9IVFRQUywga0NGTmV0d29ya1Byb3hpZXNIVFRQUHJveHks
IGtDRk5ldHdvcmtQcm94aWVzSFRUUFBvcnQpOworI2VuZGlmCisgICAgcmV0dXJuIHsgfTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBVU0UoTElCV0VCUlRDKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWQ1
NmEyYTE3OThlZDFhM2JkOTQ5OWZhOGUwOTVhZTQ2YzljYmEzMS4uYTY1YzdmOTY3MzMzNzkzNjA1
ZTRhMmZmYTU4NTIxYmMzZTIwOGFiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04ODMsNiArODgzLDcgQEAKIAkJNDE0REQzN0EyMEJG
NDlBNTAwNjk1OUZCIC8qIGNvbS5jaXNjby53ZWJleC5wbHVnaW4uZ3BjNjQuc2IgaW4gQ29weSBQ
bHVnLWluIFNhbmRib3ggUHJvZmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDE0REQzNzgyMEJGNDNFQTAwNjk1OUZCIC8qIGNvbS5jaXNjby53ZWJleC5wbHVnaW4uZ3Bj
NjQuc2IgKi87IH07CiAJCTQxNERFREQ3MUY5RURERTUwMDQ3QzQwRCAvKiBTZXJ2aWNlV29ya2Vy
UHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MTRERURENTFGOUVERERGMDA0N0M0MEQgLyogU2VydmljZVdvcmtlclByb2Nlc3NQcm94
eS5oICovOyB9OwogCQk0MTU3RTRCMDIwRTJFQ0RGMDBBNkMwRDcgLyogY29tLmdvb2dsZS5vMWRi
cm93c2VycGx1Z2luLnNiIGluIENvcHkgUGx1Zy1pbiBTYW5kYm94IFByb2ZpbGVzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNTdFNEFGMjBFMkVDOTgwMEE2QzBENyAvKiBj
b20uZ29vZ2xlLm8xZGJyb3dzZXJwbHVnaW4uc2IgKi87IH07CisJCTQxNzY5MDE0MjJGREQ0MUIw
MEIxNTc2RCAvKiBOZXR3b3JrUlRDUHJvdmlkZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc2OTAxMzIyRkRENDFCMDBCMTU3NkQgLyogTmV0d29y
a1JUQ1Byb3ZpZGVyLm1tICovOyB9OwogCQk0MTc5MTVBRjIyNTZCQjc1MDBENkY5N0UgLyogV2Vi
U29ja2V0Q2hhbm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDE3OTE1QUQyMjU2QkI3NDAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWwuaCAqLzsg
fTsKIAkJNDE3OTE1QjEyMjU2QzBENjAwRDZGOTdFIC8qIFdlYlNvY2tldENoYW5uZWxNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc5MTVC
MDIyNTZDMEQ2MDBENkY5N0UgLyogV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuaCAqLzsgfTsKIAkJ
NDE3OTE1QjkyMjU3MDQ2RjAwRDZGOTdFIC8qIE5ldHdvcmtTb2NrZXRDaGFubmVsLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc5MTVCNjIyNTcwNDZF
MDBENkY5N0UgLyogTmV0d29ya1NvY2tldENoYW5uZWwuaCAqLzsgfTsKQEAgLTMxMjYsNiArMzEy
Nyw3IEBACiAJCTQxNTFFNUMzMUZCQjkwQTkwMEU0N0UyRCAvKiBGb3JtRGF0YVJlZmVyZW5jZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtRGF0YVJlZmVyZW5jZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTU3ODUzMDIxMjc2QjZGMDBERDM4MDAgLyog
Y29weS13ZWJjb250ZW50LXJlc291cmNlcy10by1wcml2YXRlLWhlYWRlcnMuc2ggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5zaDsg
cGF0aCA9ICJjb3B5LXdlYmNvbnRlbnQtcmVzb3VyY2VzLXRvLXByaXZhdGUtaGVhZGVycy5zaCI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNTdFNEFGMjBFMkVDOTgwMEE2QzBENyAv
KiBjb20uZ29vZ2xlLm8xZGJyb3dzZXJwbHVnaW4uc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
Y29tLmdvb2dsZS5vMWRicm93c2VycGx1Z2luLnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0MTc2OTAxMzIyRkRENDFCMDBCMTU3NkQgLyogTmV0d29ya1JUQ1Byb3ZpZGVyLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmV0d29ya1JUQ1Byb3ZpZGVy
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc5MTVBQzIyNTZCQjc0MDBENkY5
N0UgLyogV2ViU29ja2V0Q2hhbm5lbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBXZWJTb2NrZXRDaGFubmVsLmNwcDsgcGF0aCA9IE5ldHdvcmsvV2ViU29ja2V0Q2hh
bm5lbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNzkxNUFEMjI1NkJCNzQw
MEQ2Rjk3RSAvKiBXZWJTb2NrZXRDaGFubmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IFdlYlNvY2tldENoYW5uZWwuaDsgcGF0aCA9IE5ldHdvcmsvV2ViU29ja2V0Q2hhbm5l
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc5MTVCMDIyNTZDMEQ2MDBENkY5
N0UgLyogV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuaDsgcGF0aCA9IE5ldHdvcmsvV2ViU29j
a2V0Q2hhbm5lbE1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY1NDcs
NiArNjU0OSw3IEBACiAJCQkJNDFEQzQ1OTUxRTNENkUxRTAwQjExRjUxIC8qIE5ldHdvcmtSVENQ
cm92aWRlci5jcHAgKi8sCiAJCQkJNDFEQzQ1OTQxRTNENkUxRTAwQjExRjUxIC8qIE5ldHdvcmtS
VENQcm92aWRlci5oICovLAogCQkJCTQxREM0NTk4MUUzRDZFRDYwMEIxMUY1MSAvKiBOZXR3b3Jr
UlRDUHJvdmlkZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJNDE3NjkwMTMyMkZERDQxQjAwQjE1NzZE
IC8qIE5ldHdvcmtSVENQcm92aWRlci5tbSAqLywKIAkJCQk0MTEyQjU0NzFGOUZEM0FCMDBFNjc4
NzUgLyogTmV0d29ya1JUQ1Jlc29sdmVyLmNwcCAqLywKIAkJCQk0MTEyQjU0ODFGOUZEM0FDMDBF
Njc4NzUgLyogTmV0d29ya1JUQ1Jlc29sdmVyLmggKi8sCiAJCQkJNDExMkI1NDcxRjlGRDNBQjAw
RTY3OTg2IC8qIE5ldHdvcmtSVENSZXNvbHZlckNvY29hLmNwcCAqLywKQEAgLTExMTI5LDYgKzEx
MTMyLDcgQEAKIAkJCQk1MTNBMTYzQzE2MzA4OEY2MDA1RDdEMjIgLyogTmV0d29ya1Byb2Nlc3NQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTUyNTUxQTE3MDEx
ODE5MDAzRDdBREIgLyogTmV0d29ya1Jlc291cmNlTG9hZGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYzMjgxRSAvKiBOZXR3b3JrUlRD
TW9uaXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0MTc2OTAxNDIy
RkRENDFCMDBCMTU3NkQgLyogTmV0d29ya1JUQ1Byb3ZpZGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTFGMDYwRTExNjU0MzE4NTAwRjMyODJFIC8qIE5ldHdvcmtSVENQcm92aWRlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUQg
LyogTmV0d29ya1JUQ1NvY2tldE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkzMUYwNjBFMTE2NTQzMTg1MDBGMzI4MUMgLyogTmV0d29ya1NvY2tldENoYW5uZWxNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAppbmRl
eCBhZmUyNDA4ODRjM2NiYWFhNmFkMjM4YmJlMjNmOTU5MzE1OTE5MjFkLi4wOTRhYzcxZjdlNWVm
ZmFiNzQ4NWZjZWZjYWU1NDg5M2RiM2UwNTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAK
QEAgLTQ0LDkgKzQ0LDkgQEAgcHJpdmF0ZToKICAgICB9CiB9OwogCi1ydGM6OnNjb3BlZF9yZWZw
dHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gTGliV2ViUlRDUHJvdmlkZXI6OmNy
ZWF0ZVBlZXJDb25uZWN0aW9uKHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZlciYgb2JzZXJ2
ZXIsIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24mJiBj
b25maWd1cmF0aW9uKQorcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25J
bnRlcmZhY2U+IExpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVQZWVyQ29ubmVjdGlvbih3ZWJydGM6
OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXImIG9ic2VydmVyLCBydGM6OlBhY2tldFNvY2tldEZhY3Rv
cnkqIHNvY2tldEZhY3RvcnksIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJUQ0Nv
bmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogewotICAgIHJldHVybiBXZWJDb3JlOjpMaWJX
ZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlckNvbm5lY3Rpb24ob2JzZXJ2ZXIsIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmxpYldlYlJUQ05ldHdvcmsoKS5tb25pdG9yKCksIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmxpYldlYlJUQ05ldHdvcmsoKS5zb2NrZXRGYWN0b3J5KCksIFdURk1vdmUoY29u
ZmlndXJhdGlvbiksIHN0ZDo6bWFrZV91bmlxdWU8QXN5bmNSZXNvbHZlckZhY3Rvcnk+KCkpOwor
ICAgIHJldHVybiBXZWJDb3JlOjpMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlckNvbm5lY3Rp
b24ob2JzZXJ2ZXIsIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ05ldHdvcmsoKS5t
b25pdG9yKCksICpzb2NrZXRGYWN0b3J5LCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pLCBzdGQ6Om1h
a2VfdW5pcXVlPEFzeW5jUmVzb2x2ZXJGYWN0b3J5PigpKTsKIH0KIAogdm9pZCBMaWJXZWJSVENQ
cm92aWRlcjo6ZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKCkKQEAgLTY0LDYgKzY0LDQ3
IEBAIHZvaWQgTGliV2ViUlRDUHJvdmlkZXI6OnJlZ2lzdGVyTUROU05hbWUoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCB1aW50NjRfdCBkb2N1CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
bGliV2ViUlRDTmV0d29yaygpLm1kbnNSZWdpc3RlcigpLnJlZ2lzdGVyTUROU05hbWUoc2Vzc2lv
bklELCBkb2N1bWVudElkZW50aWZpZXIsIGlwQWRkcmVzcywgV1RGTW92ZShjYWxsYmFjaykpOwog
fQogCitjbGFzcyBSVENTb2NrZXRGYWN0b3J5IGZpbmFsIDogcHVibGljIHJ0Yzo6UGFja2V0U29j
a2V0RmFjdG9yeSB7CitwdWJsaWM6CisgICAgUlRDU29ja2V0RmFjdG9yeShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFN0cmluZyYmIHVzZXJBZ2VudCkKKyAgICAgICAgOiBtX3Nlc3Npb25JRChz
ZXNzaW9uSUQpCisgICAgICAgICwgbV91c2VyQWdlbnQoV1RGTW92ZSh1c2VyQWdlbnQpKQorICAg
IHsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogQ3JlYXRl
VWRwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWlu
UG9ydCwgdWludDE2X3QgbWF4UG9ydCkgZmluYWwKKyAgICB7CisgICAgICAgIHJldHVybiBmYWN0
b3J5KCkuY3JlYXRlVWRwU29ja2V0KGFkZHJlc3MsIG1pblBvcnQsIG1heFBvcnQpOworICAgIH0K
KworICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIENyZWF0ZVNlcnZlclRjcFNvY2tldChjb25z
dCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90
IG1heFBvcnQsIGludCBvcHRpb25zKSBmaW5hbAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZhY3Rv
cnkoKS5jcmVhdGVTZXJ2ZXJUY3BTb2NrZXQoYWRkcmVzcywgbWluUG9ydCwgbWF4UG9ydCwgb3B0
aW9ucyk7CisgICAgfQorCisgICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogQ3JlYXRlQ2xpZW50
VGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBy
dGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIGNvbnN0IHJ0Yzo6UHJveHlJbmZvJiwg
Y29uc3Qgc3RkOjpzdHJpbmcmLCBpbnQgb3B0aW9ucykgZmluYWwKKyAgICB7CisgICAgICAgIHJl
dHVybiBmYWN0b3J5KCkuY3JlYXRlQ2xpZW50VGNwU29ja2V0KGxvY2FsQWRkcmVzcywgcmVtb3Rl
QWRkcmVzcywgbV9zZXNzaW9uSUQsIFN0cmluZyB7IG1fdXNlckFnZW50IH0sIG9wdGlvbnMpOwor
ICAgIH0KKworICAgIHJ0Yzo6QXN5bmNSZXNvbHZlckludGVyZmFjZSogQ3JlYXRlQXN5bmNSZXNv
bHZlcigpIGZpbmFsCisgICAgeworICAgICAgICByZXR1cm4gZmFjdG9yeSgpLmNyZWF0ZUFzeW5j
UmVzb2x2ZXIoKTsKKyAgICB9CisKKyAgICBMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiBmYWN0b3J5
KCkgeyByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDTmV0d29yaygpLnNv
Y2tldEZhY3RvcnkoKTsgfQorCitwcml2YXRlOgorICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lv
bklEOworICAgIFN0cmluZyBtX3VzZXJBZ2VudDsKK307CisKK3N0ZDo6dW5pcXVlX3B0cjxydGM6
OlBhY2tldFNvY2tldEZhY3Rvcnk+IExpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVTb2NrZXRGYWN0
b3J5KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3RyaW5nJiYgdXNlckFnZW50KQoreworICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFJUQ1NvY2tldEZhY3Rvcnk+KHNlc3Npb25JRCwgV1RG
TW92ZSh1c2VyQWdlbnQpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAv
LyBVU0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaAppbmRleCBhMTQxNzAwY2U2ZjRh
MTg2YzIxNjY2MjhhZGI5MGFmNGQ5ZmU0ZTU2Li5mNjVhNjI5NWVjOTBlMWQyYjc2ZmY0NzEyMjI2
ZDg0M2M3ZDk2NGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaApAQCAtNTAsNyArNTAsOSBAQCBw
dWJsaWM6CiAgICAgTGliV2ViUlRDUHJvdmlkZXIoKSB7IG1fdXNlTmV0d29ya1RocmVhZFdpdGhT
b2NrZXRTZXJ2ZXIgPSBmYWxzZTsgfQogCiBwcml2YXRlOgotICAgIHJ0Yzo6c2NvcGVkX3JlZnB0
cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBjcmVhdGVQZWVyQ29ubmVjdGlvbih3
ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXImLCB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50
ZXJmYWNlOjpSVENDb25maWd1cmF0aW9uJiYpIGZpbmFsOworICAgIHN0ZDo6dW5pcXVlX3B0cjxy
dGM6OlBhY2tldFNvY2tldEZhY3Rvcnk+IGNyZWF0ZVNvY2tldEZhY3RvcnkoUEFMOjpTZXNzaW9u
SUQsIFN0cmluZyYmIC8qIHVzZXJBZ2VudCAqLykgZmluYWw7CisKKyAgICBydGM6OnNjb3BlZF9y
ZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gY3JlYXRlUGVlckNvbm5lY3Rp
b24od2VicnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyJiwgcnRjOjpQYWNrZXRTb2NrZXRGYWN0
b3J5Kiwgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6UlRDQ29uZmlndXJhdGlvbiYm
KSBmaW5hbDsKIAogICAgIHZvaWQgdW5yZWdpc3Rlck1ETlNOYW1lcyh1aW50NjRfdCBkb2N1bWVu
dElkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgcmVnaXN0ZXJNRE5TTmFtZShQQUw6OlNlc3Np
b25JRCwgdWludDY0X3QgZG9jdW1lbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGlwQWRkcmVz
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNRE5TTmFtZU9yRXJyb3ImJik+JiYpIGZpbmFsOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldl
YlJUQ1NvY2tldEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwCmluZGV4IGQ3NzhkNTc3ZWE4ZWZjMWIz
NTZkZjFkN2MwMTdlY2RmMzE4ODEwNmEuLmY4YjdlZDIyOWM0ZjZmMmRjMDM2MTMyY2M5NmU0MTFl
ZWNhNTcwMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAKQEAgLTQ4LDcg
KzQ4LDcgQEAgc3RhdGljIGlubGluZSBydGM6OlNvY2tldEFkZHJlc3MgcHJlcGFyZVNvY2tldEFk
ZHJlc3MoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
LXJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZVNl
cnZlclRjcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90
IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCBvcHRpb25zKQorcnRjOjpBc3luY1BhY2tl
dFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlU2VydmVyVGNwU29ja2V0KGNv
bnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2
X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpCiB7CiAgICAgYXV0byBzb2NrZXQgPSBzdGQ6Om1ha2Vf
dW5pcXVlPExpYldlYlJUQ1NvY2tldD4oKnRoaXMsICsrc191bmlxdWVTb2NrZXRJZGVudGlmaWVy
LCBMaWJXZWJSVENTb2NrZXQ6OlR5cGU6OlNlcnZlclRDUCwgYWRkcmVzcywgcnRjOjpTb2NrZXRB
ZGRyZXNzKCkpOwogICAgIG1fc29ja2V0cy5zZXQoc29ja2V0LT5pZGVudGlmaWVyKCksIHNvY2tl
dC5nZXQoKSk7CkBAIC02NCw3ICs2NCw3IEBAIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldl
YlJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBydGM6CiAgICAg
cmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7CiB9CiAKLXJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExp
YldlYlJUQ1NvY2tldEZhY3Rvcnk6OkNyZWF0ZVVkcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFk
ZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQpCitydGM6
OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVVZHBTb2Nr
ZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1
aW50MTZfdCBtYXhQb3J0KQogewogICAgIGF1dG8gc29ja2V0ID0gc3RkOjptYWtlX3VuaXF1ZTxM
aWJXZWJSVENTb2NrZXQ+KCp0aGlzLCArK3NfdW5pcXVlU29ja2V0SWRlbnRpZmllciwgTGliV2Vi
UlRDU29ja2V0OjpUeXBlOjpVRFAsIGFkZHJlc3MsIHJ0Yzo6U29ja2V0QWRkcmVzcygpKTsKICAg
ICBtX3NvY2tldHMuc2V0KHNvY2tldC0+aWRlbnRpZmllcigpLCBzb2NrZXQuZ2V0KCkpOwpAQCAt
NzgsMTQgKzc4LDE0IEBAIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZh
Y3Rvcnk6OkNyZWF0ZVVkcFNvY2tldChjb25zdCBydGM6OlNvY2tlCiAgICAgcmV0dXJuIHNvY2tl
dC5yZWxlYXNlKCk7CiB9CiAKLXJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tl
dEZhY3Rvcnk6OkNyZWF0ZUNsaWVudFRjcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3Mm
IGxvY2FsQWRkcmVzcywgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBj
b25zdCBydGM6OlByb3h5SW5mbyYsIGNvbnN0IHN0ZDo6c3RyaW5nJiwgaW50IG9wdGlvbnMpCity
dGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVDbGll
bnRUY3BTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0
IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBTdHJpbmcmJiB1c2VyQWdlbnQsIGludCBvcHRpb25zKQogewogICAgIGF1dG8gc29ja2V0
ID0gc3RkOjptYWtlX3VuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCArK3NfdW5pcXVlU29j
a2V0SWRlbnRpZmllciwgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpDbGllbnRUQ1AsIGxvY2FsQWRk
cmVzcywgcmVtb3RlQWRkcmVzcyk7CiAgICAgc29ja2V0LT5zZXRTdGF0ZShMaWJXZWJSVENTb2Nr
ZXQ6OlNUQVRFX0NPTk5FQ1RJTkcpOwogICAgIG1fc29ja2V0cy5zZXQoc29ja2V0LT5pZGVudGlm
aWVyKCksIHNvY2tldC5nZXQoKSk7CiAKLSAgICBjYWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVy
ID0gc29ja2V0LT5pZGVudGlmaWVyKCksIGxvY2FsQWRkcmVzcyA9IHByZXBhcmVTb2NrZXRBZGRy
ZXNzKGxvY2FsQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpLCByZW1v
dGVBZGRyZXNzID0gcHJlcGFyZVNvY2tldEFkZHJlc3MocmVtb3RlQWRkcmVzcywgbV9kaXNhYmxl
Tm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpLCBvcHRpb25zXSgpIHsKLSAgICAgICAgaWYgKCFXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25u
ZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpDcmVhdGVDbGllbnRU
Q1BTb2NrZXQoaWRlbnRpZmllciwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhsb2NhbEFkZHJl
c3MpLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKHJlbW90ZUFkZHJlc3MpLCBvcHRpb25zKSwg
MCkpIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlm
aWVyKCksIGxvY2FsQWRkcmVzcyA9IHByZXBhcmVTb2NrZXRBZGRyZXNzKGxvY2FsQWRkcmVzcywg
bV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpLCByZW1vdGVBZGRyZXNzID0gcHJlcGFy
ZVNvY2tldEFkZHJlc3MocmVtb3RlQWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVj
dGlvbnMpLCBzZXNzaW9uSUQsIHVzZXJBZ2VudCA9IFdURk1vdmUodXNlckFnZW50KS5pc29sYXRl
ZENvcHkoKSwgb3B0aW9uc10oKSB7CisgICAgICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3JlYXRlQ2xpZW50VENQU29ja2V0KGlkZW50aWZp
ZXIsIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MobG9jYWxBZGRyZXNzKSwgUlRDTmV0d29yazo6
U29ja2V0QWRkcmVzcyhyZW1vdGVBZGRyZXNzKSwgc2Vzc2lvbklELCB1c2VyQWdlbnQsIG9wdGlv
bnMpLCAwKSkgewogICAgICAgICAgICAgLy8gRklYTUU6IFNldCBlcnJvciBiYWNrIHRvIHNvY2tl
dAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xMTUsNyArMTE1LDcgQEAgdm9p
ZCBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpkZXRhY2goTGliV2ViUlRDU29ja2V0JiBzb2NrZXQp
CiAgICAgbV9zb2NrZXRzLnJlbW92ZShzb2NrZXQuaWRlbnRpZmllcigpKTsKIH0KIAotcnRjOjpB
c3luY1Jlc29sdmVySW50ZXJmYWNlKiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpDcmVhdGVBc3lu
Y1Jlc29sdmVyKCkKK3J0Yzo6QXN5bmNSZXNvbHZlckludGVyZmFjZSogTGliV2ViUlRDU29ja2V0
RmFjdG9yeTo6Y3JlYXRlQXN5bmNSZXNvbHZlcigpCiB7CiAgICAgYXV0byByZXNvbHZlciA9IHN0
ZDo6bWFrZV91bmlxdWU8TGliV2ViUlRDUmVzb2x2ZXI+KCsrc191bmlxdWVSZXNvbHZlcklkZW50
aWZpZXIpOwogICAgIGF1dG8qIHJlc29sdmVyUG9pbnRlciA9IHJlc29sdmVyLmdldCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJU
Q1NvY2tldEZhY3RvcnkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmgKaW5kZXggZjBiNDE5NTcxM2ZiNzU1YTAwNDk3Mzlh
NjI1YTIwMWNjNDkyZWMxYi4uMjQ0NjYwNGMxNTAwMThlZjYxNDQ0ZGE0ZTRhYjZiZDVlN2I3NDJh
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xp
YldlYlJUQ1NvY2tldEZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oCkBAIC0zNiw3ICszNiw3IEBACiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBMaWJXZWJSVENTb2NrZXRGYWN0b3J5IGZpbmFs
IDogcHVibGljIHJ0Yzo6UGFja2V0U29ja2V0RmFjdG9yeSB7CitjbGFzcyBMaWJXZWJSVENTb2Nr
ZXRGYWN0b3J5IHsKIHB1YmxpYzoKICAgICBMaWJXZWJSVENTb2NrZXRGYWN0b3J5KCkgeyB9CiAK
QEAgLTUxLDEzICs1MSwxMiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpc2FibGVOb25Mb2NhbGhv
c3RDb25uZWN0aW9ucygpIHsgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMgPSB0cnVl
OyB9CiAKLSAgICBydGM6OkFzeW5jUmVzb2x2ZXJJbnRlcmZhY2UqIGNyZWF0ZUFzeW5jUmVzb2x2
ZXIoKSB7IHJldHVybiBDcmVhdGVBc3luY1Jlc29sdmVyKCk7IH0KKyAgICBydGM6OkFzeW5jUGFj
a2V0U29ja2V0KiBjcmVhdGVVZHBTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgdWlu
dDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCk7CisgICAgcnRjOjpBc3luY1BhY2tldFNv
Y2tldCogY3JlYXRlU2VydmVyVGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIHVp
bnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCBvcHRpb25zKTsKKyAgICBydGM6
OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3QgcnRjOjpTb2Nr
ZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3Rl
QWRkcmVzcywgUEFMOjpTZXNzaW9uSUQsIFN0cmluZyYmIHVzZXJBZ2VudCwgaW50IG9wdGlvbnMp
OworICAgIHJ0Yzo6QXN5bmNSZXNvbHZlckludGVyZmFjZSogY3JlYXRlQXN5bmNSZXNvbHZlcigp
OwogCiBwcml2YXRlOgotICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIENyZWF0ZVVkcFNvY2tl
dChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBt
YXhQb3J0KSBmaW5hbDsKLSAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBDcmVhdGVTZXJ2ZXJU
Y3BTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QgbWluX3BvcnQsIHVp
bnQxNl90IG1heF9wb3J0LCBpbnQgb3B0aW9ucykgZmluYWw7Ci0gICAgcnRjOjpBc3luY1BhY2tl
dFNvY2tldCogQ3JlYXRlQ2xpZW50VGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYg
bG9jYWxBZGRyZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIGNv
bnN0IHJ0Yzo6UHJveHlJbmZvJiwgY29uc3Qgc3RkOjpzdHJpbmcmLCBpbnQgb3B0aW9ucyk7Ci0g
ICAgcnRjOjpBc3luY1Jlc29sdmVySW50ZXJmYWNlKiBDcmVhdGVBc3luY1Jlc29sdmVyKCkgZmlu
YWw7CiAKICAgICAvLyBXZSBjYW5ub3Qgb3duIHNvY2tldHMsIGNsaWVudHMgb2YgdGhlIGZhY3Rv
cnkgYXJlIHJlc3BvbnNpYmxlIHRvIGZyZWUgdGhlbS4KICAgICBIYXNoTWFwPHVpbnQ2NF90LCBM
aWJXZWJSVENTb2NrZXQqPiBtX3NvY2tldHM7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>