<?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>230137</bug_id>
          
          <creation_ts>2021-09-09 16:57:24 -0700</creation_ts>
          <short_desc>Add infrastructure to allow TLS during PCM tests</short_desc>
          <delta_ts>2021-09-13 09:06:34 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>berto</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1792164</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-09 16:57:24 -0700</bug_when>
    <thetext>Add infrastructure to allow TLS during PCM tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792169</commentid>
    <comment_count>1</comment_count>
      <attachid>437809</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-09 17:00:57 -0700</bug_when>
    <thetext>Created attachment 437809
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792170</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-09-09 17:01:39 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792173</commentid>
    <comment_count>3</comment_count>
      <attachid>437810</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-09 17:05:45 -0700</bug_when>
    <thetext>Created attachment 437810
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792215</commentid>
    <comment_count>4</comment_count>
      <attachid>437829</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-09 19:54:29 -0700</bug_when>
    <thetext>Created attachment 437829
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792233</commentid>
    <comment_count>5</comment_count>
      <attachid>437832</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-09 20:52:11 -0700</bug_when>
    <thetext>Created attachment 437832
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792243</commentid>
    <comment_count>6</comment_count>
      <attachid>437836</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-09 22:54:18 -0700</bug_when>
    <thetext>Created attachment 437836
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792250</commentid>
    <comment_count>7</comment_count>
      <attachid>437841</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-09 23:33:55 -0700</bug_when>
    <thetext>Created attachment 437841
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792255</commentid>
    <comment_count>8</comment_count>
      <attachid>437844</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-09 23:51:20 -0700</bug_when>
    <thetext>Created attachment 437844
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792341</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-10 08:19:54 -0700</bug_when>
    <thetext>Committed r282269 (241547@main): &lt;https://commits.webkit.org/241547@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 437844.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792366</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-10 09:14:03 -0700</bug_when>
    <thetext>&lt;rdar://problem/82975108&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792588</commentid>
    <comment_count>11</comment_count>
      <attachid>437844</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-09-10 16:21:32 -0700</bug_when>
    <thetext>Comment on attachment 437844
Patch

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

&gt; Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDecoder.cpp:52
&gt; +const uint8_t* Decoder::decodeFixedLengthReference(size_t size, size_t)

Is this just testing infrastructure? If so, should we name it as such?

&gt; Source/WebKit/NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementNetworkLoaderCocoa.mm:43
&gt; +    if (![challenge.protectionSpace.host isEqualToString:@&quot;127.0.0.1&quot;]

I know we&apos;ve talked several times about having these known local test server hosts statically available somewhere so we don&apos;t have to spread these stings out.

&gt; Source/WebKit/NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementNetworkLoaderCocoa.mm:113
&gt; +    if (allowedLocalTestServerTrust() &amp;&amp; url.host() != &quot;127.0.0.1&quot;)

Ditto on the host.

&gt; Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:-1646
&gt; -

Accidental?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792970</commentid>
    <comment_count>12</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-13 08:59:38 -0700</bug_when>
    <thetext>(In reply to John Wilander from comment #11)
&gt; Comment on attachment 437844 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=437844&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDecoder.cpp:52
&gt; &gt; +const uint8_t* Decoder::decodeFixedLengthReference(size_t size, size_t)
This is used by many types to decode a DataReference.  Right now it&apos;s only used for CertificateInfo decoding in testing stuff, but its signature needs to look just like this.  It will likely be used for other things in the future.

&gt; &gt; Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:-1646
&gt; &gt; -
&gt; 
&gt; Accidental?
Kind of.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792972</commentid>
    <comment_count>13</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-09-13 09:06:34 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #12)
&gt; (In reply to John Wilander from comment #11)
&gt; &gt; Comment on attachment 437844 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=437844&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDecoder.cpp:52
&gt; &gt; &gt; +const uint8_t* Decoder::decodeFixedLengthReference(size_t size, size_t)
&gt; This is used by many types to decode a DataReference.  Right now it&apos;s only
&gt; used for CertificateInfo decoding in testing stuff, but its signature needs
&gt; to look just like this.  It will likely be used for other things in the
&gt; future.

Yeah, that code made more sense not labeled as testing when I got to the rest of the patch. In the beginning it looked like complex, risky code added just for testing and I was worried others wouldn&apos;t know it was for testing. But then I realized it&apos;s just general encode/decode.

&gt; &gt; &gt; Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:-1646
&gt; &gt; &gt; -
&gt; &gt; 
&gt; &gt; Accidental?
&gt; Kind of.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437809</attachid>
            <date>2021-09-09 17:00:57 -0700</date>
            <delta_ts>2021-09-09 17:05:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230137-20210909170056.patch</filename>
            <type>text/plain</type>
            <size>37896</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFmMGM5NzIwMmIwOWVjYzky
NjhjNjdjZjZhNjFmOWFkYjc1Mjc5YTMuLmUwZWFmODEyYTA3OWZjNGQ1NTUyNDQ3MGEyYjE0Y2Yy
YjBiYjNjZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMjEtMDktMDkgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgaW5mcmFz
dHJ1Y3R1cmUgdG8gYWxsb3cgVExTIGR1cmluZyBQQ00gdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDEzNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHdlcmUgdXNpbmcgTmV0d29ya1Nlc3Np
b25Db2NvYTo6YWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdCBidXQgdGhhdCBk
b2Vzbid0IHdvcmsgd2hlbiB3ZSBhcmUgaW4gYSBkYWVtb24sCisgICAgICAgIHdoZXJlIHRoZXJl
IGlzIG5vIE5ldHdvcmtTZXNzaW9uIG9yIE5ldHdvcmtTZXNzaW9uQ29jb2EuICBXZSBuZWVkZWQg
YSBuZXcgU1BJIGZvciBzZXR0aW5nIHRoZSB0ZXN0IFRMUyBjZXJ0aWZpY2F0ZXMgd2hlcmV2ZXIK
KyAgICAgICAgdGhlIG5ldHdvcmtpbmcgaXMgYmVpbmcgZG9uZS4KKworICAgICAgICBJIGFsc28g
Zm91bmQgdGhhdCB3ZSB3ZXJlIHVubmVjZXNzYXJpbHkgcGluZ2luZyBleGFtcGxlLmNvbSB3aGVu
IHJ1bm5pbmcgdGhlc2UgdW5pdCB0ZXN0cy4gIEkgYWRkZWQgYW4gZWFybHkgcmV0dXJuIHRvIHBy
ZXZlbnQgdGhhdAorICAgICAgICB3aGVuIHJ1bm5pbmcgdGVzdHMgd2l0aCBhIGxvY2FsIHNlcnZl
ci4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9y
V2ViU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFsbG93VExTQ2Vy
dGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lv
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjphbGxvd1RMU0NlcnRpZmlj
YXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtTZXNzaW9uLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjphbGxvd1RMU0NlcnRpZmljYXRl
Q2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6
bWVzc2FnZVR5cGVTZW5kc1JlcGx5KToKKyAgICAgICAgKFdlYktpdDo6UENNOjpkZWNvZGVNZXNz
YWdlQW5kU2VuZFRvTWFuYWdlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmg6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpQQ006
Ok1hbmFnZXJQcm94eTo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5n
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29y
a0xvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6TmV0d29ya0xvYWRlcjo6YWxsb3dU
TFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5l
dHdvcmtMb2FkZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJDb2NvYS5t
bToKKyAgICAgICAgKGFsbG93ZWRMb2NhbFRlc3RDZXJ0aWZpY2F0ZUNoYWluKToKKyAgICAgICAg
KGhhc0FsbG93ZWRMb2NhbFRlc3RDZXJ0aWZpY2F0ZUNoYWluKToKKyAgICAgICAgKC1bV0tOZXR3
b3JrU2Vzc2lvbkRlbGVnYXRlQWxsb3dpbmdPbmx5Tm9uUmVkaXJlY3RlZEpTT04gVVJMU2Vzc2lv
bjp0YXNrOmRpZFJlY2VpdmVDaGFsbGVuZ2U6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAg
IChXZWJLaXQ6OlBDTTo6TmV0d29ya0xvYWRlcjo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9y
TG9jYWxQQ01UZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6UENNOjpOZXR3b3JrTG9hZGVyOjpz
dGFydCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2Nv
YS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFsbG93U3BlY2lmaWNIVFRQ
U0NlcnRpZmljYXRlRm9ySG9zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjph
bGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW06
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0
aWZpY2F0ZUZvckhvc3QpOiBEZWxldGVkLgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVu
dENvZGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0
b3JlLm1tOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2FsbG93VExTQ2VydGlmaWNh
dGVDaGFpbjpmb3JIb3N0Ol0pOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2FsbG93
VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZzpdKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHA6CisgICAgICAgICh3ZWJraXRf
d2ViX2NvbnRleHRfYWxsb3dfdGxzX2NlcnRpZmljYXRlX2Zvcl9ob3N0KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYnNpdGVEYXRhU3RvcmU6OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9z
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OmFsbG93VExTQ2VydGlmaWNh
dGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKwogMjAyMS0wOS0wOSAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCBkYWVtb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHAKaW5kZXggODY1YWQzMGM1OTcwZGQ2ZTE4Mjc2YWY0N2E4MzhkYjk2Nzk1MzYx
YS4uZTViZjU1ZmZiMjNiN2EzNTkxZjc5YjhjYTU0YTJjNDgyYmUwMDdhOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTIxNjgsMTAg
KzIxNjgsMTggQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVs
IGNhY2hlTW9kZWwpCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldEFsbG93c0FueVNTTENlcnRp
ZmljYXRlRm9yV2ViU29ja2V0KGJvb2wgYWxsb3dzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisgICAgLy8gRklYTUU6IFN0b3AgdXNpbmcgdGhpcyB3
aGVuIEhBVkUoTlNVUkxTRVNTSU9OX1dFQlNPQ0tFVCkgaXMgdHJ1ZS4KICAgICBEZXByZWNhdGVk
R2xvYmFsU2V0dGluZ3M6OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGFsbG93cyk7CiAgICAg
Y29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAorI2lmICFQTEFURk9STShDT0NPQSkKK3ZvaWQgTmV0
d29ya1Byb2Nlc3M6OmFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhQ
QUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJikKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpCit9CisjZW5kaWYKKwogdm9pZCBOZXR3b3JrUHJvY2Vzczo6bG9nRGlh
Z25vc3RpY01lc3NhZ2UoV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBTaG91bGRTYW1w
bGUgc2hvdWxkU2FtcGxlKQogewogICAgIGlmICghRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OnNo
b3VsZExvZ0FmdGVyU2FtcGxpbmcoc2hvdWxkU2FtcGxlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCAzNDU1NjQ3NjIxNWY2OWRkNmJhZjQ2
NzhiZDc0OTQ0OWZhZWJiM2VjLi4yOGNiZmY1ZDQxMDM4ZWE3ZmRmYjgwZDQ3YjY0YzYyY2MwMWRl
NGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5o
CkBAIC00NTAsOCArNDUwLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldENhY2hlTW9kZWwoQ2Fj
aGVNb2RlbCk7CiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsU3luY2hyb25vdXNseUZvclRlc3Rpbmco
Q2FjaGVNb2RlbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGFsbG93
U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0
ZUluZm8mLCBjb25zdCBTdHJpbmcmIGhvc3QpOworICAgIHZvaWQgYWxsb3dUTFNDZXJ0aWZpY2F0
ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpD
ZXJ0aWZpY2F0ZUluZm8mKTsKICAgICB2b2lkIHNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9y
V2ViU29ja2V0KGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgCisKICAg
ICB2b2lkIGZsdXNoQ29va2llcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKIAogICAgIHZvaWQgYWRkV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzKFBBTDo6U2Vz
c2lvbklELCBXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMm
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbgppbmRleCA5YjYyMTMzYjA1ZjgzNDdjMjU4MzA1ZjQxZmJiNzc3NzQ5
MGE0MGY5Li41MTgwYzgyOTY1MGFkNTZlMGIxZWZkM2JjNDUyMGNiZjMxYTI5NzMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVz
c2FnZXMuaW4KQEAgLTY2LDYgKzY2LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVn
YWN5UmVjZWl2ZXIgewogICAgIEZsdXNoQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQp
IC0+ICgpIEFzeW5jCiAKICAgICBBbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3Qo
V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvIGNlcnRpZmljYXRlLCBTdHJpbmcgaG9zdCkKKyAgICBB
bGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGUpCiAKICAgICBT
ZXRDYWNoZU1vZGVsKGVudW06dWludDhfdCBXZWJLaXQ6OkNhY2hlTW9kZWwgY2FjaGVNb2RlbCkK
ICAgICBTZXRDYWNoZU1vZGVsU3luY2hyb25vdXNseUZvclRlc3RpbmcoZW51bTp1aW50OF90IFdl
YktpdDo6Q2FjaGVNb2RlbCBjYWNoZU1vZGVsKSAtPiAoKSBTeW5jaHJvbm91cwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAppbmRleCBkZmRlNzhk
YTYxZDliZmE4YTNjNWE0YzFjOGNhOTdhMDJlMzUzZmI4Li43M2I4NjQ4NzczY2I3MjIwOGE3ZDBi
ZWM4YzI1ZTdhOWFiNzM5NDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtTZXNzaW9uLmNwcApAQCAtMzkwLDYgKzM5MCwxMSBAQCB2b2lkIE5ldHdvcmtTZXNz
aW9uOjpmaXJlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUaW1lckltbWVkaWF0ZWx5Rm9yVGVzdGlu
ZygpCiAgICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKS5zdGFydFRpbWVySW1tZWRpYXRlbHlG
b3JUZXN0aW5nKCk7CiB9CiAKK3ZvaWQgTmV0d29ya1Nlc3Npb246OmFsbG93VExTQ2VydGlmaWNh
dGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhWZWN0b3I8dWludDhfdD4mJiBlbmNvZGVkQ2VydGlm
aWNhdGUpCit7CisgICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKS5hbGxvd1RMU0NlcnRpZmlj
YXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoV1RGTW92ZShlbmNvZGVkQ2VydGlmaWNhdGUpKTsK
K30KKwogdm9pZCBOZXR3b3JrU2Vzc2lvbjo6YWRkS2VwdEFsaXZlTG9hZChSZWY8TmV0d29ya1Jl
c291cmNlTG9hZGVyPiYmIGxvYWRlcikKIHsKICAgICBBU1NFUlQobV9zZXNzaW9uSUQgPT0gbG9h
ZGVyLT5zZXNzaW9uSUQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uLmgKaW5kZXggZDhhYWIzZGJhNDliNzY3ZjNlZjA5OTRiZjJjYmU5NTFmYTQxNjcy
OC4uYjU3YTdhOTRkZWZhZWZlMjk0MDFkYTQ3ODNkNjlhYTEyOWM4Y2JhOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaApAQCAtMTM3LDYgKzEzNyw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RXBoZW1lcmFs
TWVhc3VyZW1lbnRGb3JUZXN0aW5nKGJvb2wpOwogICAgIHZvaWQgc2V0UENNRnJhdWRQcmV2ZW50
aW9uVmFsdWVzRm9yVGVzdGluZyhTdHJpbmcmJiB1bmxpbmthYmxlVG9rZW4sIFN0cmluZyYmIHNl
Y3JldFRva2VuLCBTdHJpbmcmJiBzaWduYXR1cmUsIFN0cmluZyYmIGtleUlEKTsKICAgICB2b2lk
IGZpcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nKCk7
CisgICAgdm9pZCBhbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoVmVj
dG9yPHVpbnQ4X3Q+JiYpOwogCiAgICAgdm9pZCBhZGRLZXB0QWxpdmVMb2FkKFJlZjxOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI+JiYpOwogICAgIHZvaWQgcmVtb3ZlS2VwdEFsaXZlTG9hZChOZXR3b3Jr
UmVzb3VyY2VMb2FkZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcAppbmRleCA1YjE1OTlmMDM3OGNl
NjM1ZTNkZmNjYmU4ZjJjNmNjYmMxYzViYjhlLi5kMGZmZmNjZjBhMmY3NjAyN2FkYzU0YTE3ZGMw
MzY3OGY4Y2ViNjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1By
aXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwCkBAIC01NDgsNCArNTQ4LDkgQEAg
dm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmRlc3Ryb3lTdG9yZUZvclRlc3Rp
bmcoQ29tcGxldGlvbkhhbmRsZXI8dm8KICAgICB9KTsKIH0KIAordm9pZCBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXI6OmFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVz
dGluZyhWZWN0b3I8dWludDhfdD4mJiBlbmNvZGVkQ2VydGlmaWNhdGUpCit7CisgICAgUENNOjpO
ZXR3b3JrTG9hZGVyOjphbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3Rpbmco
V1RGTW92ZShlbmNvZGVkQ2VydGlmaWNhdGUpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXIuaAppbmRleCAyNmU3YzU1OTE0NDdmZWJmNTc4NTFlYWU1ZDJlMGY0NmQ5
YmVlMDFmLi5mMTQwYmUyNGY0MjBkYWYzOWJiMTc3Mjg3YjdjNDZkZDE4MTkwYWYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VyLmgKQEAgLTYyLDYgKzYyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UENNRnJh
dWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhTdHJpbmcmJiB1bmxpbmthYmxlVG9rZW4sIFN0
cmluZyYmIHNlY3JldFRva2VuLCBTdHJpbmcmJiBzaWduYXR1cmUsIFN0cmluZyYmIGtleUlEKSBm
aW5hbDsKICAgICB2b2lkIHN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcoKSBmaW5hbDsK
ICAgICB2b2lkIGRlc3Ryb3lTdG9yZUZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKSBmaW5hbDsKKyAgICB2b2lkIGFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENN
VGVzdGluZyhWZWN0b3I8dWludDhfdD4mJikgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgUENNOjpT
dG9yZSYgc3RvcmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50
ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcAppbmRl
eCBkNzJhZmQ5ZTQ1MGY4NWE3ZmE0MTQ5YWE2ODNhOGMzMzkyOGU3OTQwLi43ZGZjOWVkMWQyMTEx
ZjU0OGExM2M2NDgzMzk0YTk4MTFkMzFjZDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlckludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJ
bnRlcmZhY2UuY3BwCkBAIC0xMTQsNiArMTE0LDEwIEBAIEFSR1VNRU5UUygpCiBSRVBMWSgpCiBF
TkQKIAorRlVOQ1RJT04oYWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5n
KQorQVJHVU1FTlRTKFZlY3Rvcjx1aW50OF90PikKK0VORAorCiAjdW5kZWYgRlVOQ1RJT04KICN1
bmRlZiBBUkdVTUVOVFMKICN1bmRlZiBSRVBMWQpAQCAtMTQ5LDYgKzE1Myw3IEBAIGJvb2wgbWVz
c2FnZVR5cGVTZW5kc1JlcGx5KE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlKQogICAgIGNhc2UgTWVz
c2FnZVR5cGU6OlNldEVwaGVtZXJhbE1lYXN1cmVtZW50Rm9yVGVzdGluZzoKICAgICBjYXNlIE1l
c3NhZ2VUeXBlOjpTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nOgogICAgIGNh
c2UgTWVzc2FnZVR5cGU6OlN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3Rpbmc6CisgICAgY2Fz
ZSBNZXNzYWdlVHlwZTo6QWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5n
OgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgY2FzZSBNZXNzYWdlVHlwZTo6TWFya0F0dHJp
YnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nOgogICAgIGNh
c2UgTWVzc2FnZVR5cGU6OkRlc3Ryb3lTdG9yZUZvclRlc3Rpbmc6CkBAIC0yNTAsNiArMjU1LDkg
QEAgdm9pZCBkZWNvZGVNZXNzYWdlQW5kU2VuZFRvTWFuYWdlcihNZXNzYWdlVHlwZSBtZXNzYWdl
VHlwZSwgVmVjdG9yPHVpbnQ4X3Q+JiYgZW4KICAgICBjYXNlIFBDTTo6TWVzc2FnZVR5cGU6OkRl
c3Ryb3lTdG9yZUZvclRlc3Rpbmc6CiAgICAgICAgIGhhbmRsZVBDTU1lc3NhZ2VXaXRoUmVwbHk8
TWVzc2FnZUluZm86OmRlc3Ryb3lTdG9yZUZvclRlc3Rpbmc+KFdURk1vdmUoZW5jb2RlZE1lc3Nh
Z2UpLCBXVEZNb3ZlKHJlcGx5U2VuZGVyKSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUENN
OjpNZXNzYWdlVHlwZTo6QWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5n
OgorICAgICAgICBoYW5kbGVQQ01NZXNzYWdlPE1lc3NhZ2VJbmZvOjphbGxvd1RMU0NlcnRpZmlj
YXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3Rpbmc+KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpKTsKKyAg
ICAgICAgYnJlYWs7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlckludGVyZmFjZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2Uu
aAppbmRleCBhMjkyZmE5ZjA5NTViM2UwMjI0NDY1MDM3MWVkYjQ5MzljMDcxZmFlLi41ZGI2NGI4
MzI2NTlhZWI4N2VjMjA2Yjg2ZGMzYWY0ZWRhNDc3ZGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VySW50ZXJmYWNlLmgKQEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKFN0cmluZyYmIHVubGlua2Fi
bGVUb2tlbiwgU3RyaW5nJiYgc2VjcmV0VG9rZW4sIFN0cmluZyYmIHNpZ25hdHVyZSwgU3RyaW5n
JiYga2V5SUQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRUaW1lckltbWVkaWF0ZWx5Rm9y
VGVzdGluZygpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveVN0b3JlRm9yVGVzdGluZyhD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWxsb3dU
TFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKFZlY3Rvcjx1aW50OF90PiYmKSA9
IDA7CiB9OwogCiBjb25zdGV4cHIgY29uc3QgY2hhciogcHJvdG9jb2xWZXJzaW9uS2V5IHsgInZl
cnNpb24iIH07CkBAIC04Nyw2ICs4OCw3IEBAIGVudW0gY2xhc3MgTWVzc2FnZVR5cGUgOiB1aW50
OF90IHsKICAgICBTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nLAogICAgIFN0
YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcsCiAgICAgRGVzdHJveVN0b3JlRm9yVGVzdGlu
ZywKKyAgICBBbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcKIH07CiAK
IGNvbnN0ZXhwciBjb25zdCBjaGFyKiBwcm90b2NvbEVuY29kZWRNZXNzYWdlS2V5IHsgImVuY29k
ZWQgbWVzc2FnZSIgfTsKQEAgLTExOSw3ICsxMjEsOCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVt
VHJhaXRzPFdlYktpdDo6UENNOjpNZXNzYWdlVHlwZT4gewogICAgICAgICBXZWJLaXQ6OlBDTTo6
TWVzc2FnZVR5cGU6OlNldEVwaGVtZXJhbE1lYXN1cmVtZW50Rm9yVGVzdGluZywKICAgICAgICAg
V2ViS2l0OjpQQ006Ok1lc3NhZ2VUeXBlOjpTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JU
ZXN0aW5nLAogICAgICAgICBXZWJLaXQ6OlBDTTo6TWVzc2FnZVR5cGU6OlN0YXJ0VGltZXJJbW1l
ZGlhdGVseUZvclRlc3RpbmcsCi0gICAgICAgIFdlYktpdDo6UENNOjpNZXNzYWdlVHlwZTo6RGVz
dHJveVN0b3JlRm9yVGVzdGluZworICAgICAgICBXZWJLaXQ6OlBDTTo6TWVzc2FnZVR5cGU6OkRl
c3Ryb3lTdG9yZUZvclRlc3RpbmcsCisgICAgICAgIFdlYktpdDo6UENNOjpNZXNzYWdlVHlwZTo6
QWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nCiAgICAgPjsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAKaW5kZXggM2NhZTRlNGZmNThjYjYxZjU1ZjVi
NTE5NWJhNWUzZDBiYThkYmRkMy4uZWExNmMyZTZjYWNkMDQ4ODgwNzc2NjY2OGYyYTQxYzQ4YzM3
NzJjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAKQEAgLTE1MSw2ICsxNTEsMTEg
QEAgdm9pZCBNYW5hZ2VyUHJveHk6OmRlc3Ryb3lTdG9yZUZvclRlc3RpbmcoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb24KICAgICBzZW5kTWVzc2FnZVdpdGhSZXBseTxNZXNz
YWdlVHlwZTo6RGVzdHJveVN0b3JlRm9yVGVzdGluZz4oV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwogfQogCit2b2lkIE1hbmFnZXJQcm94eTo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9y
TG9jYWxQQ01UZXN0aW5nKFZlY3Rvcjx1aW50OF90PiYmIGVuY29kZWRDZXJ0aWZpY2F0ZSkKK3sK
KyAgICBzZW5kTWVzc2FnZTxNZXNzYWdlVHlwZTo6QWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9y
TG9jYWxQQ01UZXN0aW5nPihXVEZNb3ZlKGVuY29kZWRDZXJ0aWZpY2F0ZSkpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBQQ00KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
clByb3h5LmgKaW5kZXggOGNkNDExOTk0YjRiMDZmMGY2YjVkOTkxNWYyZjJjZGZhY2E5NmU2Zi4u
MDg2NzMzODIwMTFkNGZlMmQ5ZGZhYjk3NGRjZDUzMTVlNDIyZmNjYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YW5hZ2VyUHJveHkuaApAQCAtNTIsNiArNTIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQQ01G
cmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKFN0cmluZyYmIHVubGlua2FibGVUb2tlbiwg
U3RyaW5nJiYgc2VjcmV0VG9rZW4sIFN0cmluZyYmIHNpZ25hdHVyZSwgU3RyaW5nJiYga2V5SUQp
IGZpbmFsOwogICAgIHZvaWQgc3RhcnRUaW1lckltbWVkaWF0ZWx5Rm9yVGVzdGluZygpIGZpbmFs
OwogICAgIHZvaWQgZGVzdHJveVN0b3JlRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpIGZpbmFsOworICAgIHZvaWQgYWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQ
Q01UZXN0aW5nKFZlY3Rvcjx1aW50OF90PiYmKSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFBDTQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuY3BwCmluZGV4IDQ1YTA1ZWUxYWIzNmVl
MWE3ZDg0NDc3ZmZhMTE2NDRiNTk4OGY5OGEuLjJkMzQwMjU2OTNhOGY0MWE3OGRiZjA1MWM2NmVk
NWQ2NDVhZmY5YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlci5jcHAKQEAgLTM4LDYg
KzM4LDEyIEBAIHZvaWQgTmV0d29ya0xvYWRlcjo6c3RhcnQoVVJMJiYsIFJlZlB0cjxKU09OOjpP
YmplY3Q+JiYsIFByaXZhdGVDbGlja01lYXN1cmVtZW50CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
ICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0sIHsgfSwgeyB9KTsKIH0KKwordm9pZCBOZXR3b3Jr
TG9hZGVyOjphbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoVmVjdG9y
PHVpbnQ4X3Q+JiYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogI2VuZGlmCiAKIH0g
Ly8gbmFtZXNwYWNlIFBDTQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtM
b2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyLmgKaW5kZXggMzAzMzA3
N2E1Zjk0M2M0NjZlNjRhYjE2NzQyNTE3M2RiMDU0MWVjZC4uNTM1ZTI2ZWI5YTQ0N2FhNzM1NGVm
MzZlNzVmMzU2YjdhNDQyNjQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdv
cmtMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlci5oCkBAIC00
Miw2ICs0Miw3IEBAIGNsYXNzIE5ldHdvcmtMb2FkZXIgewogcHVibGljOgogICAgIHVzaW5nIENh
bGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlZlB0cjxKU09O
OjpPYmplY3Q+Jik+OwogICAgIHN0YXRpYyB2b2lkIHN0YXJ0KFVSTCYmLCBSZWZQdHI8SlNPTjo6
T2JqZWN0PiYmLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UGNtRGF0YUNhcnJp
ZWQsIENhbGxiYWNrJiYpOworICAgIHN0YXRpYyB2b2lkIGFsbG93VExTQ2VydGlmaWNhdGVDaGFp
bkZvckxvY2FsUENNVGVzdGluZyhWZWN0b3I8dWludDhfdD4mJik7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBQQ00KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9h
ZGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlckNvY29h
Lm1tCmluZGV4IDdlYTBlODFiYzE5ZDlhNTA1NjA2NDBmMWRhY2UyNTQwYjIxZjVmNmYuLjQxNTY5
YWI0ZmVmMmI0YmFmZTQ4MTE3NzU4NDliNjdiYzJjMDhiNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJDb2NvYS5tbQpAQCAtMjcsMTIgKzI3LDMxIEBACiAj
aW1wb3J0ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuaCIKIAogI2ltcG9y
dCAiTmV0d29ya0RhdGFUYXNrQ29jb2EuaCIKLSNpbXBvcnQgIk5ldHdvcmtTZXNzaW9uQ29jb2Eu
aCIKICNpbXBvcnQgPFdlYkNvcmUvSFRUUEhlYWRlclZhbHVlcy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5o
PgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKK3N0YXRpYyBSZXRhaW5QdHI8Q0ZB
cnJheVJlZj4mIGFsbG93ZWRMb2NhbFRlc3RDZXJ0aWZpY2F0ZUNoYWluKCkKK3sKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8UmV0YWluUHRyPENGQXJyYXlSZWY+PiBjZXJ0aWZpY2F0ZTsKKyAg
ICByZXR1cm4gY2VydGlmaWNhdGUuZ2V0KCk7Cit9CisKK3N0YXRpYyBib29sIGhhc0FsbG93ZWRM
b2NhbFRlc3RDZXJ0aWZpY2F0ZUNoYWluKE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKmNo
YWxsZW5nZSkKK3sKKyAgICBpZiAoIVtjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlLmhvc3QgaXNF
cXVhbFRvU3RyaW5nOkAiMTI3LjAuMC4xIl0KKyAgICAgICAgfHwgIWFsbG93ZWRMb2NhbFRlc3RD
ZXJ0aWZpY2F0ZUNoYWluKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBTZWNU
cnVzdFJlZiB0cnVzdFJlZiA9IG51bGxwdHI7CisgICAgaWYgKFNlY1RydXN0Q3JlYXRlV2l0aENl
cnRpZmljYXRlcyhhbGxvd2VkTG9jYWxUZXN0Q2VydGlmaWNhdGVDaGFpbigpLmdldCgpLCBudWxs
cHRyLCAmdHJ1c3RSZWYpICE9IG5vRXJyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgUmV0
YWluUHRyPFNlY1RydXN0UmVmPiB0cnVzdCA9IGFkb3B0Q0YodHJ1c3RSZWYpOworCisgICAgcmV0
dXJuIFdlYkNvcmU6OmNlcnRpZmljYXRlc01hdGNoKHRydXN0LmdldCgpLCBjaGFsbGVuZ2UucHJv
dGVjdGlvblNwYWNlLnNlcnZlclRydXN0KTsKK30KKwogQGludGVyZmFjZSBXS05ldHdvcmtTZXNz
aW9uRGVsZWdhdGVBbGxvd2luZ09ubHlOb25SZWRpcmVjdGVkSlNPTiA6IE5TT2JqZWN0IDxOU1VS
TFNlc3Npb25EYXRhRGVsZWdhdGU+CiBAZW5kCiAKQEAgLTUyLDkgKzcxLDggQEAKIAogLSAodm9p
ZClVUkxTZXNzaW9uOihOU1VSTFNlc3Npb24gKilzZXNzaW9uIHRhc2s6KE5TVVJMU2Vzc2lvblRh
c2sgKil0YXNrIGRpZFJlY2VpdmVDaGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UgKiljaGFsbGVuZ2UgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TVVJMU2Vzc2lvbkF1
dGhDaGFsbGVuZ2VEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgTlNVUkxDcmVkZW50aWFsICpjcmVk
ZW50aWFsKSljb21wbGV0aW9uSGFuZGxlcgogewotICAgIC8vIEZJWE1FOiBBZGQgcGx1Ym1pbmcg
c28gdGhhdCB3ZSBjYW4gdGVsbCB0aGUgZGFlbW9uIHdoaWNoIGNlcnRpZmljYXRlcyB0byBhY2Nl
cHQgd2l0aG91dCB1c2luZyBOZXR3b3JrU2Vzc2lvbkNvY29hLgogICAgIGlmIChbY2hhbGxlbmdl
LnByb3RlY3Rpb25TcGFjZS5hdXRoZW50aWNhdGlvbk1ldGhvZCBpc0VxdWFsVG9TdHJpbmc6TlNV
UkxBdXRoZW50aWNhdGlvbk1ldGhvZFNlcnZlclRydXN0XQotICAgICAgICAmJiBOZXR3b3JrU2Vz
c2lvbkNvY29hOjphbGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNoYWxsZW5n
ZSkpCisgICAgICAgICYmIGhhc0FsbG93ZWRMb2NhbFRlc3RDZXJ0aWZpY2F0ZUNoYWluKGNoYWxs
ZW5nZSkpCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihOU1VSTFNlc3Npb25BdXRo
Q2hhbGxlbmdlVXNlQ3JlZGVudGlhbCwgW05TVVJMQ3JlZGVudGlhbCBjcmVkZW50aWFsRm9yVHJ1
c3Q6Y2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZS5zZXJ2ZXJUcnVzdF0pOwogICAgIGNvbXBsZXRp
b25IYW5kbGVyKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VQZXJmb3JtRGVmYXVsdEhhbmRsaW5n
LCBuaWwpOwogfQpAQCAtODgsOCArMTA2LDE4IEBAIHN0YXRpYyBOU1VSTFNlc3Npb24gKnN0YXRl
bGVzc1Nlc3Npb25XaXRob3V0UmVkaXJlY3RzKCkKICAgICByZXR1cm4gc2Vzc2lvbi5nZXQoKS5n
ZXQoKTsKIH0KIAordm9pZCBOZXR3b3JrTG9hZGVyOjphbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5G
b3JMb2NhbFBDTVRlc3RpbmcoVmVjdG9yPHVpbnQ4X3Q+JiYgZW5jb2RlZENlcnRpZmljYXRlKQor
eworICAgIGF1dG8gY2VydGlmaWNhdGUgPSBhZG9wdENGKFNlY0NlcnRpZmljYXRlQ3JlYXRlV2l0
aERhdGEobnVsbHB0ciwgYWRvcHRDRihDRkRhdGFDcmVhdGUobnVsbHB0ciwgZW5jb2RlZENlcnRp
ZmljYXRlLmRhdGEoKSwgZW5jb2RlZENlcnRpZmljYXRlLnNpemUoKSkpLmdldCgpKSk7CisgICAg
YWxsb3dlZExvY2FsVGVzdENlcnRpZmljYXRlQ2hhaW4oKSA9IChfX2JyaWRnZSBDRkFycmF5UmVm
KUBbIChfX2JyaWRnZSBpZCljZXJ0aWZpY2F0ZS5nZXQoKSBdOworfQorCiB2b2lkIE5ldHdvcmtM
b2FkZXI6OnN0YXJ0KFVSTCYmIHVybCwgUmVmUHRyPEpTT046Ok9iamVjdD4mJiBqc29uUGF5bG9h
ZCwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlBjbURhdGFDYXJyaWVkIHBjbURh
dGFDYXJyaWVkLCBDYWxsYmFjayYmIGNhbGxiYWNrKQogeworICAgIC8vIFByZXZlbnQgY29udGFj
dGluZyBub24tbG9jYWwgc2VydmVycyB3aGVuIGEgdGVzdCBjZXJ0aWZpY2F0ZSBjaGFpbiBpcyB1
c2VkIGZvciAxMjcuMC4wLjEuCisgICAgaWYgKGFsbG93ZWRMb2NhbFRlc3RDZXJ0aWZpY2F0ZUNo
YWluKCkgJiYgdXJsLmhvc3QoKSAhPSAiMTI3LjAuMC4xIikKKyAgICAgICAgcmV0dXJuIGNhbGxi
YWNrKHsgfSwgeyB9LCB7IH0pOworCiAgICAgYXV0byByZXF1ZXN0ID0gYWRvcHROUyhbW05TTXV0
YWJsZVVSTFJlcXVlc3QgYWxsb2NdIGluaXRXaXRoVVJMOnVybF0pOwogICAgIFtyZXF1ZXN0IHNl
dFZhbHVlOldlYkNvcmU6OkhUVFBIZWFkZXJWYWx1ZXM6Om1heEFnZTAoKSBmb3JIVFRQSGVhZGVy
RmllbGQ6QCJDYWNoZS1Db250cm9sIl07CiAgICAgaWYgKGpzb25QYXlsb2FkKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29j
b2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNz
Q29jb2EubW0KaW5kZXggMzE5YzVjMDc1MjcwYTQ3MzRiMjRiZWM4YzNiMmQwMDQwNmI5ZmE4Mi4u
MGZiZTk4OTUxNGVjNDNiZWM1Yzc4YTAwOWY1ODQ0ZTZhMGRmM2UxNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2Nv
YS5tbQpAQCAtMTgzLDYgKzE4MywyOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkZWxldGVIU1RT
Q2FjaGVGb3JIb3N0TmFtZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdAogI2VuZGlm
CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRl
Rm9ySG9zdChjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywg
Y29uc3QgU3RyaW5nJiBob3N0KQoreworICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBvbmNlIHJk
YXI6Ly8zMDY1NTc0MCBpcyBmaXhlZC4KKyAgICBbTlNVUkxSZXF1ZXN0IHNldEFsbG93c1NwZWNp
ZmljSFRUUFNDZXJ0aWZpY2F0ZTooTlNBcnJheSAqKWNlcnRpZmljYXRlSW5mby5jZXJ0aWZpY2F0
ZUNoYWluKCkgZm9ySG9zdDpob3N0XTsKK30KKwordm9pZCBOZXR3b3JrUHJvY2Vzczo6YWxsb3dU
TFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8pCit7
CisgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gbV9uZXR3b3JrU2Vzc2lvbnMuZ2V0KHNl
c3Npb25JRCkpIHsKKyAgICAgICAgLy8gRklYTUU6IHNlcmlhbGl6ZSB0aGUgd2hvbGUgY2VydGlm
aWNhdGUgY2hhaW4gd2hlbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjMwMTI1IGlzIGZpeGVkLgorICAgICAgICBhdXRvIGNoYWluID0gY2VydGlmaWNhdGVJbmZvLmNl
cnRpZmljYXRlQ2hhaW4oKTsKKyAgICAgICAgaWYgKCFDRkFycmF5R2V0Q291bnQoY2hhaW4pKSB7
CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorICAgICAgICBXVEZMb2dBbHdheXMoIk5ldHdvcmtQcm9jZXNzOjphbGxvd1RM
U0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcgTEVOR1RIICVkIiwgKGludClDRkFy
cmF5R2V0Q291bnQoY2hhaW4pKTsKKyAgICAgICAgYXV0byBkYXRhID0gYWRvcHRDRihTZWNDZXJ0
aWZpY2F0ZUNvcHlEYXRhKGNoZWNrZWRfY2ZfY2FzdDxTZWNDZXJ0aWZpY2F0ZVJlZj4oQ0ZBcnJh
eUdldFZhbHVlQXRJbmRleChjaGFpbiwgMCkpKSk7CisgICAgICAgIFZlY3Rvcjx1aW50OF90PiBl
bmNvZGVkQ2VydGlmaWNhdGUoQ0ZEYXRhR2V0Qnl0ZVB0cihkYXRhLmdldCgpKSwgQ0ZEYXRhR2V0
TGVuZ3RoKGRhdGEuZ2V0KCkpKTsKKyAgICAgICAgbmV0d29ya1Nlc3Npb24tPmFsbG93VExTQ2Vy
dGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhXVEZNb3ZlKGVuY29kZWRDZXJ0aWZpY2F0
ZSkpOworICAgIH0KK30KKwogdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y2xlYXJIU1RTQ2FjaGUoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXYWxsVGltZSBtb2RpZmllZFNpbmNlKQogewogICAgIE5T
VGltZUludGVydmFsIHRpbWVJbnRlcnZhbCA9IG1vZGlmaWVkU2luY2Uuc2Vjb25kc1NpbmNlRXBv
Y2goKS5zZWNvbmRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXggMTM4YzRlOTI5MWQ1MzNlODdl
YmY0MmJjZDViMzZlZjA1ODZkMjI5OC4uZjNjNjZmOWNmOTc0ZjVlODJiYWE2MjVhMjc4NDYyNTM3
ZWJkYmMzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtMTY0Myw3ICsxNjQzLDYgQEAgYm9vbCBO
ZXR3b3JrU2Vzc2lvbkNvY29hOjphbGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0
KGNvbnN0IFdlYkNvcmU6OkEKICAgICByZXR1cm4gV2ViQ29yZTo6Y2VydGlmaWNhdGVzTWF0Y2go
dHJ1c3QuZ2V0KCksIGNoYWxsZW5nZS5uc1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCkucHJv
dGVjdGlvblNwYWNlLnNlcnZlclRydXN0KTsKIH0KIAotCiBzdGF0aWMgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24gZGlzcG9z
aXRpb24sIGNvbnN0IFdlYkNvcmU6OkNyZWRlbnRpYWwmIGNyZWRlbnRpYWwpPiBjcmVhdGVDaGFs
bGVuZ2VDb21wbGV0aW9uSGFuZGxlcihSZWY8TmV0d29ya1Byb2Nlc3M+JiYgbmV0d29ya1Byb2Nl
c3MsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UsIGNvbnN0IFN0cmluZyYgcGFydGl0aW9uLCB1aW50NjRf
dCB0YXNrSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJLaXQ6OkF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkNyZWRlbnRpYWwmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKICB7CiAgICAgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFs
bGVuZ2UgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UgeyBjaGFsbGVuZ2UgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nlc3NJT1MubW0KaW5k
ZXggYTFlMDkxNDJiOGIzYTM0YTI3MGYzYmY1MGY5NjBhMTZkZTcxNTc5Yy4uOGYxY2ZkZmU1NzFk
NzQ5YTE5Nzg0MGZhOWIwNTAwMjI1MjIzYmIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nlc3NJT1MubW0KKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nlc3NJT1MubW0KQEAgLTU3LDExICs1Nyw2
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KGNvbnN0IEF1eGlsaWFy
eVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtCiB7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6
OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBXZWJDb3JlOjpDZXJ0
aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgY29uc3QgU3RyaW5nJiBob3N0KQotewotICAg
IFtOU1VSTFJlcXVlc3Qgc2V0QWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlOihOU0FycmF5
ICopY2VydGlmaWNhdGVJbmZvLmNlcnRpZmljYXRlQ2hhaW4oKSBmb3JIb3N0Omhvc3RdOwotfQot
CiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhj
b25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICNp
ZiBFTkFCTEUoU0VDX0lURU1fU0hJTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW0KaW5kZXggMDdiYmUzMjZhZWM0YTY2ODA0
OTI4ZjkwZWU4NGM3OTdkNjYxMTMxMi4uYWMxZjdiNDBlMjBlZjZhNWI4ZGVkNzY1MWQzNDBkNzUw
ZDkwZDUzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0
d29ya1Byb2Nlc3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9tYWMv
TmV0d29ya1Byb2Nlc3NNYWMubW0KQEAgLTc4LDExICs3OCw2IEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0IE5ldHdvcmtQcm9jZXNz
Q3JlYXRpCiAjZW5kaWYKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6YWxsb3dTcGVjaWZpY0hU
VFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2Vy
dGlmaWNhdGVJbmZvLCBjb25zdCBTdHJpbmcmIGhvc3QpCi17Ci0gICAgW05TVVJMUmVxdWVzdCBz
ZXRBbGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGU6KF9fYnJpZGdlIE5TQXJyYXkgKiljZXJ0
aWZpY2F0ZUluZm8uY2VydGlmaWNhdGVDaGFpbigpIGZvckhvc3Q6KE5TU3RyaW5nICopaG9zdF07
Ci19Ci0KIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KGNvbnN0IEF1eGls
aWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIFNhbmRib3hJ
bml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHNhbmRib3hQYXJhbWV0ZXJzKQogewogICAgIC8vIE5l
ZWQgdG8gb3ZlcmlkZSB0aGUgZGVmYXVsdCwgYmVjYXVzZSBzZXJ2aWNlIGhhcyBhIGRpZmZlcmVu
dCBidW5kbGUgSUQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1
bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMu
aAppbmRleCBiMTgyYzU0ZWI3ODhkM2Q2OTgxNGFhODA3M2U0ZmYxYWE5ZjM5MmJkLi4xYTE3MDk5
M2FlNmI1MWQ3YWFjZWNiMTJiOTdlOWY5ODFlNjMwMDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKQEAgLTQwNCwxNCArNDA0LDE2IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5k
bGVyLCBzaXplX3QgbWluCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBs
YXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFQs
IGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5Pj4gZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCiAgICAgewotICAgICAgICB1aW50NjRfdCBzaXplOwotICAgICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHNpemUpKQorICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90
PiBzaXplOworICAgICAgICBkZWNvZGVyID4+IHNpemU7CisgICAgICAgIGlmICghc2l6ZSkKICAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICAgICAgVmVjdG9yPFQsIGlubGlu
ZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5PiB2ZWN0b3I7Ci0gICAgICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgKnNpemU7ICsraSkgewogICAgICAgICAgICAgc3RkOjpvcHRpb25hbDxUPiBl
bGVtZW50OwogICAgICAgICAgICAgZGVjb2RlciA+PiBlbGVtZW50OwogICAgICAgICAgICAgaWYg
KCFlbGVtZW50KQpAQCAtNDU4LDIxICs0NjAsMjMgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6
ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4K
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1l
IERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFQsIGlubGluZUNhcGFj
aXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5Pj4gZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCiAgICAgewotICAgICAgICB1aW50NjRfdCBkZWNvZGVkU2l6ZTsKLSAgICAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShkZWNvZGVkU2l6ZSkpCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0
X3Q+IGRlY29kZWRTaXplOworICAgICAgICBkZWNvZGVyID4+IGRlY29kZWRTaXplOworICAgICAg
ICBpZiAoIWRlY29kZWRTaXplKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAog
ICAgICAgICBpZiAoIWlzSW5Cb3VuZHM8c2l6ZV90PihkZWNvZGVkU2l6ZSkpCiAgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgICAgIGF1dG8gc2l6ZSA9IHN0YXRpY19jYXN0
PHNpemVfdD4oZGVjb2RlZFNpemUpOworICAgICAgICBhdXRvIHNpemUgPSBzdGF0aWNfY2FzdDxz
aXplX3Q+KCpkZWNvZGVkU2l6ZSk7CiAKICAgICAgICAgLy8gU2luY2Ugd2Uga25vdyB0aGUgdG90
YWwgc2l6ZSBvZiB0aGUgZWxlbWVudHMsIHdlIGNhbiBhbGxvY2F0ZSB0aGUgdmVjdG9yIGluCiAg
ICAgICAgIC8vIG9uZSBmZWxsIHN3b29wLiBCZWZvcmUgYWxsb2NhdGluZyB3ZSBtdXN0IGhvd2V2
ZXIgbWFrZSBzdXJlIHRoYXQgdGhlIGRlY29kZXIgYnVmZmVyCiAgICAgICAgIC8vIGlzIGJpZyBl
bm91Z2guCi0gICAgICAgIGlmICghZGVjb2Rlci5idWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWlu
PFQ+KHNpemUpKQorICAgICAgICBpZiAoIWRlY29kZXIudGVtcGxhdGUgYnVmZmVySXNMYXJnZUVu
b3VnaFRvQ29udGFpbjxUPihzaXplKSkKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAgICAgICAgIAogICAgICAgICBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFu
ZGxlciwgbWluQ2FwYWNpdHk+IHZlY3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IDMyNTMwZWYzYzAy
NDQ0OTc5YWZjMjY4ZGRkMGE5MTFiN2I4Y2MxODcuLmU3MmVmNjVmZTgxZmI3ZDA1YzA2N2JiNjg4
ZTk1MjFhNGRjMzJjNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtNjUwLDcgKzY1MCwxMiBAQCBzdGF0
aWMgVmVjdG9yPFdlYktpdDo6V2Vic2l0ZURhdGFSZWNvcmQ+IHRvV2Vic2l0ZURhdGFSZWNvcmRz
KE5TQXJyYXkgKmRhdGFSZWNvcgogCiAtICh2b2lkKV9hbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW46
KE5TQXJyYXkgKiljZXJ0aWZpY2F0ZUNoYWluIGZvckhvc3Q6KE5TU3RyaW5nICopaG9zdAogewot
ICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5hbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhv
c3QoV2ViS2l0OjpXZWJDZXJ0aWZpY2F0ZUluZm86OmNyZWF0ZShXZWJDb3JlOjpDZXJ0aWZpY2F0
ZUluZm8oKF9fYnJpZGdlIENGQXJyYXlSZWYpY2VydGlmaWNhdGVDaGFpbikpLnB0cigpLCBob3N0
KTsKKyAgICBfd2Vic2l0ZURhdGFTdG9yZS0+YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVG
b3JIb3N0KFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbygoX19icmlkZ2UgQ0ZBcnJheVJlZiljZXJ0
aWZpY2F0ZUNoYWluKSwgaG9zdCk7Cit9CisKKy0gKHZvaWQpX2FsbG93VExTQ2VydGlmaWNhdGVD
aGFpbkZvckxvY2FsUENNVGVzdGluZzooTlNBcnJheSAqKWNlcnRpZmljYXRlQ2hhaW4KK3sKKyAg
ICBfd2Vic2l0ZURhdGFTdG9yZS0+YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01U
ZXN0aW5nKFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbygoX19icmlkZ2UgQ0ZBcnJheVJlZiljZXJ0
aWZpY2F0ZUNoYWluKSk7CiB9CiAKIC0gKHZvaWQpX2FwcEJvdW5kRG9tYWluczoodm9pZCAoXiko
TlNBcnJheTxOU1N0cmluZyAqPiAqKSljb21wbGV0aW9uSGFuZGxlcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQ
cml2YXRlLmgKaW5kZXggZWNjNjBmNzUxN2UzZDEwOGFkNzYyNWJiN2JkOGZmYjNjMjRiM2Q1Ny4u
MTAwMDU5M2I3NThmYWY4NTFjMmYxMjY3M2M4NjMzNmIyNjdhNjI2NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0
b3JlUHJpdmF0ZS5oCkBAIC04NCw2ICs4NCw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRl
Z2VyLCBfV0tXZWJzaXRlRGF0YVN0b3JlRmV0Y2hPcHRpb25zKSB7CiArICh2b2lkKV9zZXRDYWNo
ZWRQcm9jZXNzU3VzcGVuc2lvbkRlbGF5Rm9yVGVzdGluZzooZG91YmxlKWRlbGF5SW5TZWNvbmRz
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAK
IC0gKHZvaWQpX2FsbG93VExTQ2VydGlmaWNhdGVDaGFpbjooTlNBcnJheSAqKWNlcnRpZmljYXRl
Q2hhaW4gZm9ySG9zdDooTlNTdHJpbmcgKilob3N0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIu
MCksIGlvcygxNS4wKSk7CistICh2b2lkKV9hbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2Nh
bFBDTVRlc3Rpbmc6KE5TQXJyYXkgKiljZXJ0aWZpY2F0ZUNoYWluIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC0gKHZvaWQpX3JlbmFtZU9y
aWdpbjooTlNVUkwgKilvbGROYW1lIHRvOihOU1VSTCAqKW5ld05hbWUgZm9yRGF0YU9mVHlwZXM6
KE5TU2V0PE5TU3RyaW5nICo+ICopZGF0YVR5cGVzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkIChe
KSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcAppbmRleCBiZDJkNGQyMDIwNmY4
Yjg2ZmU0Y2QxYWM5MGQ5MGI3OWMzNDhlZDlkLi4xYmM1MWRkMWVkM2IxMTg1ZWQ3MjY1NTU5YmIx
ZDNhZWQ5NzkwMjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRXZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtMTYyMyw5ICsxNjIzLDkgQEAgdm9pZCB3ZWJr
aXRfd2ViX2NvbnRleHRfYWxsb3dfdGxzX2NlcnRpZmljYXRlX2Zvcl9ob3N0KFdlYktpdFdlYkNv
bnRleHQqIGNvbnRleHQKICAgICBnX3JldHVybl9pZl9mYWlsKEdfSVNfVExTX0NFUlRJRklDQVRF
KGNlcnRpZmljYXRlKSk7CiAgICAgZ19yZXR1cm5faWZfZmFpbChob3N0KTsKIAotICAgIGF1dG8g
d2ViQ2VydGlmaWNhdGVJbmZvID0gV2ViQ2VydGlmaWNhdGVJbmZvOjpjcmVhdGUoV2ViQ29yZTo6
Q2VydGlmaWNhdGVJbmZvKGNlcnRpZmljYXRlLCBzdGF0aWNfY2FzdDxHVGxzQ2VydGlmaWNhdGVG
bGFncz4oMCkpKTsKKyAgICBhdXRvIGNlcnRpZmljYXRlSW5mbyA9IFdlYkNvcmU6OkNlcnRpZmlj
YXRlSW5mbyhjZXJ0aWZpY2F0ZSwgc3RhdGljX2Nhc3Q8R1Rsc0NlcnRpZmljYXRlRmxhZ3M+KDAp
KTsKICAgICBhdXRvJiB3ZWJzaXRlRGF0YVN0b3JlID0gd2Via2l0V2Vic2l0ZURhdGFNYW5hZ2Vy
R2V0RGF0YVN0b3JlKGNvbnRleHQtPnByaXYtPndlYnNpdGVEYXRhTWFuYWdlci5nZXQoKSk7Ci0g
ICAgd2Vic2l0ZURhdGFTdG9yZS5hbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3Qo
d2ViQ2VydGlmaWNhdGVJbmZvLnB0cigpLCBTdHJpbmc6OmZyb21VVEY4KGhvc3QpKTsKKyAgICB3
ZWJzaXRlRGF0YVN0b3JlLmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjZXJ0
aWZpY2F0ZUluZm8sIFN0cmluZzo6ZnJvbVVURjgoaG9zdCkpOwogfQogCiAvKioKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAKaW5kZXggMzUzMmUwZDc2OGFkNGI4M2ZiZjViMTAxYTc0MWQ3ZjViMDQwMWI1Ny4uM2Rh
NmMxMTZiOTM2ODhkMWJhYzczZDdlNmQ5ZDQ5OWUwNDQxMmFmZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAK
QEAgLTE2NzIsOSArMTY3MiwxNCBAQCBzdGF0aWMgU3RyaW5nIGNvbXB1dGVNZWRpYUtleUZpbGUo
Y29uc3QgU3RyaW5nJiBtZWRpYUtleURpcmVjdG9yeSkKICAgICByZXR1cm4gRmlsZVN5c3RlbTo6
cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG1lZGlhS2V5RGlyZWN0b3J5LCAiU2VjdXJlU3RvcC5w
bGlzdCIpOwogfQogCi12b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmFsbG93U3BlY2lmaWNIVFRQU0Nl
cnRpZmljYXRlRm9ySG9zdChjb25zdCBXZWJDZXJ0aWZpY2F0ZUluZm8qIGNlcnRpZmljYXRlLCBj
b25zdCBTdHJpbmcmIGhvc3QpCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmFsbG93U3BlY2lmaWNI
VFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNl
cnRpZmljYXRlLCBjb25zdCBTdHJpbmcmIGhvc3QpCiB7Ci0gICAgbmV0d29ya1Byb2Nlc3MoKS5z
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6QWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNh
dGVGb3JIb3N0KGNlcnRpZmljYXRlLT5jZXJ0aWZpY2F0ZUluZm8oKSwgaG9zdCksIDApOworICAg
IG5ldHdvcmtQcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkFsbG93U3Bl
Y2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjZXJ0aWZpY2F0ZSwgaG9zdCksIDApOworfQor
Cit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2Fs
UENNVGVzdGluZyhjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlKQor
eworICAgIG5ldHdvcmtQcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkFs
bG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhzZXNzaW9uSUQoKSwgY2Vy
dGlmaWNhdGUpLCAwKTsKIH0KIAogVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4g
V2Vic2l0ZURhdGFTdG9yZTo6bWVkaWFLZXlPcmlnaW5zKGNvbnN0IFN0cmluZyYgbWVkaWFLZXlz
U3RvcmFnZURpcmVjdG9yeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCAwMjY4NzMxNWI2Yjk1MzAwMjYyM2Uw
MTk1Nzc0MmU5NTZjZWRmZjQwLi4xNjFjZGU2YTE3MWJjYjMwMWVkZDhiOWUzY2Q0YWUyNmJhZDUx
ZmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5oCkBAIC03Miw2ICs3Miw3IEBAIGNsYXNzIEhUVFBDb29raWVTdG9y
ZTsKIH0KIAogbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ2VydGlmaWNhdGVJbmZvOwogY2xh
c3MgUmVnaXN0cmFibGVEb21haW47CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIApAQCAtODUsNyAr
ODYsNiBAQCBjbGFzcyBTZWNLZXlQcm94eVN0b3JlOwogY2xhc3MgRGV2aWNlSWRIYXNoU2FsdFN0
b3JhZ2U7CiBjbGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5OwogY2xhc3MgU09BdXRob3JpemF0aW9u
Q29vcmRpbmF0b3I7Ci1jbGFzcyBXZWJDZXJ0aWZpY2F0ZUluZm87CiBjbGFzcyBXZWJQYWdlUHJv
eHk7CiBjbGFzcyBXZWJQcm9jZXNzUG9vbDsKIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKQEAgLTI2
Miw3ICsyNjIsOCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCBzZXRDYWNoZWRQcm9jZXNz
U3VzcGVuc2lvbkRlbGF5Rm9yVGVzdGluZyhTZWNvbmRzKTsKIAotICAgIHZvaWQgYWxsb3dTcGVj
aWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFdlYkNlcnRpZmljYXRlSW5mbyosIGNv
bnN0IFN0cmluZyYgaG9zdCk7CisgICAgdm9pZCBhbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0
ZUZvckhvc3QoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiwgY29uc3QgU3RyaW5nJiBo
b3N0KTsKKyAgICB2b2lkIGFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGlu
Zyhjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mKTsKIAogICAgIERldmljZUlkSGFzaFNh
bHRTdG9yYWdlJiBkZXZpY2VJZEhhc2hTYWx0U3RvcmFnZSgpIHsgcmV0dXJuIG1fZGV2aWNlSWRI
YXNoU2FsdFN0b3JhZ2UuZ2V0KCk7IH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGJjMTljM2U2OTk1OGZlYTc2NTU0MmU1N2U4ZTMwN2FkMzgz
NTFhY2QuLjliZGY2NzA1MTcyNDViNTkzY2YzNGE4MTZjZjA1MzQyYjJkY2EwNGQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBA
QAorMjAyMS0wOS0wOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3Jn
PgorCisgICAgICAgIEFkZCBpbmZyYXN0cnVjdHVyZSB0byBhbGxvdyBUTFMgZHVyaW5nIFBDTSB0
ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMw
MTM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW06CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpkZWxlZ2F0ZUFsbG93aW5nQWxsVExTKToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OnJ1bkJhc2ljRXZlbnRBdHRyaWJ1dGlvblRlc3QpOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjEtMDktMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgYSBXZWJQcm9jZXNzIGNhcApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9u
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0
aW9uLm1tCmluZGV4IGI2YmJhYTUyMTUyYmYxMmFiZTg5Mjg1NTQ1ZGI1MjI1NWUwNzJiMTEuLjg5
ZmY3MjA4OTE4ZmU2NTJlMzc5NzhkOTIxMzUwMjM3YjIxOTBiNzEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24u
bW0KQEAgLTc1LDYgKzc1LDE4IEBACiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAorc3Rh
dGljIFRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgKmRlbGVnYXRlQWxsb3dpbmdBbGxUTFMoKQorewor
ICAgIHN0YXRpYyBSZXRhaW5QdHI8VGVzdE5hdmlnYXRpb25EZWxlZ2F0ZT4gZGVsZWdhdGUgPSBb
XSB7CisgICAgICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtUZXN0TmF2aWdhdGlvbkRlbGVn
YXRlIG5ld10pOworICAgICAgICBkZWxlZ2F0ZS5nZXQoKS5kaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UgPSBeKFdLV2ViVmlldyAqLCBOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
ICpjaGFsbGVuZ2UsIHZvaWQgKF5jb21wbGV0aW9uSGFuZGxlcikoTlNVUkxTZXNzaW9uQXV0aENo
YWxsZW5nZURpc3Bvc2l0aW9uLCBOU1VSTENyZWRlbnRpYWwgKikpIHsKKyAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VVc2VDcmVkZW50aWFsLCBb
TlNVUkxDcmVkZW50aWFsIGNyZWRlbnRpYWxGb3JUcnVzdDpjaGFsbGVuZ2UucHJvdGVjdGlvblNw
YWNlLnNlcnZlclRydXN0XSk7CisgICAgICAgIH07CisgICAgICAgIHJldHVybiBkZWxlZ2F0ZTsK
KyAgICB9KCk7CisgICAgcmV0dXJuIGRlbGVnYXRlLmdldCgpOworfQorCiBzdGF0aWMgTlNVUkwg
KmV4YW1wbGVVUkwoKQogewogICAgIHJldHVybiBbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHBz
Oi8vZXhhbXBsZS5jb20vIl07CkBAIC0xMjIsOSArMTM0LDEwIEBAIHZvaWQgcnVuQmFzaWNFdmVu
dEF0dHJpYnV0aW9uVGVzdChXS1dlYlZpZXdDb25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uLCBG
dW5jdGlvCiAgICAgTlNVUkwgKnNlcnZlclVSTCA9IHNlcnZlci5yZXF1ZXN0KCkuVVJMOwogCiAg
ICAgYXV0byB3ZWJWaWV3ID0gY29uZmlndXJhdGlvbiA/IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0WmVybyBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25d
KSA6IGFkb3B0TlMoW1dLV2ViVmlldyBuZXddKTsKKyAgICB3ZWJWaWV3LmdldCgpLm5hdmlnYXRp
b25EZWxlZ2F0ZSA9IGRlbGVnYXRlQWxsb3dpbmdBbGxUTFMoKTsKICAgICBhZGRBdHRyaWJ1dGlv
blRvV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBzZXJ2ZXIpOwogICAgIFtbd2ViVmlldyBjb25maWd1
cmF0aW9uXS53ZWJzaXRlRGF0YVN0b3JlIF9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxl
ZDpZRVNdOwotICAgIFtbd2ViVmlldyBjb25maWd1cmF0aW9uXS53ZWJzaXRlRGF0YVN0b3JlIF9h
bGxvd1RMU0NlcnRpZmljYXRlQ2hhaW46QFsoaWQpdGVzdENlcnRpZmljYXRlKCkuZ2V0KCldIGZv
ckhvc3Q6c2VydmVyVVJMLmhvc3RdOworICAgIFtbd2ViVmlldyBjb25maWd1cmF0aW9uXS53ZWJz
aXRlRGF0YVN0b3JlIF9hbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3Rpbmc6
QFsoaWQpdGVzdENlcnRpZmljYXRlKCkuZ2V0KCldXTsKICAgICBbd2ViVmlldyBfc2V0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5nOnNlcnZlclVS
TCBkZXN0aW5hdGlvblVSTDpleGFtcGxlVVJMKCkgY29tcGxldGlvbkhhbmRsZXI6XnsKICAgICAg
ICAgW3dlYlZpZXcgX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRl
c3Rpbmc6WUVTIGNvbXBsZXRpb25IYW5kbGVyOl57CiAgICAgICAgICAgICBOU1N0cmluZyAqaHRt
bCA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiPHNjcmlwdD5mZXRjaCgnJUBjb252ZXJz
aW9uUmVxdWVzdEJlZm9yZVJlZGlyZWN0Jyx7bW9kZTonbm8tY29ycyd9KTwvc2NyaXB0PiIsIHNl
cnZlclVSTF07CkBAIC0yNzAsOSArMjgzLDEwIEBAIFRFU1QoRXZlbnRBdHRyaWJ1dGlvbiwgRnJh
dWRQcmV2ZW50aW9uKQogICAgIE5TVVJMICpzZXJ2ZXJVUkwgPSBzZXJ2ZXIucmVxdWVzdCgpLlVS
TDsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1dLV2ViVmlldyBuZXddKTsKKyAgICB3
ZWJWaWV3LmdldCgpLm5hdmlnYXRpb25EZWxlZ2F0ZSA9IGRlbGVnYXRlQWxsb3dpbmdBbGxUTFMo
KTsKICAgICBbd2ViVmlldyBfYWRkRXZlbnRBdHRyaWJ1dGlvbldpdGhTb3VyY2VJRDo0MiBkZXN0
aW5hdGlvblVSTDpleGFtcGxlVVJMKCkgc291cmNlRGVzY3JpcHRpb246QCJ0ZXN0IHNvdXJjZSBk
ZXNjcmlwdGlvbiIgcHVyY2hhc2VyOkAidGVzdCBwdXJjaGFzZXIiIHJlcG9ydEVuZHBvaW50OnNl
cnZlclVSTCBvcHRpb25hbE5vbmNlOkAiQUJDREVGYWJjZGVmMDEyMzQ1Njc4OSJdOwogICAgIFtb
d2ViVmlldyBjb25maWd1cmF0aW9uXS53ZWJzaXRlRGF0YVN0b3JlIF9zZXRSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRW5hYmxlZDpZRVNdOwotICAgIFtbd2ViVmlldyBjb25maWd1cmF0aW9uXS53ZWJz
aXRlRGF0YVN0b3JlIF9hbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW46QFsoaWQpdGVzdENlcnRpZmlj
YXRlKCkuZ2V0KCldIGZvckhvc3Q6c2VydmVyVVJMLmhvc3RdOworICAgIFtbd2ViVmlldyBjb25m
aWd1cmF0aW9uXS53ZWJzaXRlRGF0YVN0b3JlIF9hbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JM
b2NhbFBDTVRlc3Rpbmc6QFsoaWQpdGVzdENlcnRpZmljYXRlKCkuZ2V0KCldXTsKIAogICAgIFt3
ZWJWaWV3IF9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMc0Zv
clRlc3Rpbmc6c2VydmVyVVJMIGRlc3RpbmF0aW9uVVJMOmV4YW1wbGVVUkwoKSBjb21wbGV0aW9u
SGFuZGxlcjpeewogICAgICAgICBbd2ViVmlldyBfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRP
dmVycmlkZVRpbWVyRm9yVGVzdGluZzpZRVMgY29tcGxldGlvbkhhbmRsZXI6XnsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437810</attachid>
            <date>2021-09-09 17:05:45 -0700</date>
            <delta_ts>2021-09-09 19:54:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230137-20210909170543.patch</filename>
            <type>text/plain</type>
            <size>37772</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFmMGM5NzIwMmIwOWVjYzky
NjhjNjdjZjZhNjFmOWFkYjc1Mjc5YTMuLmUwZWFmODEyYTA3OWZjNGQ1NTUyNDQ3MGEyYjE0Y2Yy
YjBiYjNjZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMjEtMDktMDkgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgaW5mcmFz
dHJ1Y3R1cmUgdG8gYWxsb3cgVExTIGR1cmluZyBQQ00gdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDEzNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHdlcmUgdXNpbmcgTmV0d29ya1Nlc3Np
b25Db2NvYTo6YWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdCBidXQgdGhhdCBk
b2Vzbid0IHdvcmsgd2hlbiB3ZSBhcmUgaW4gYSBkYWVtb24sCisgICAgICAgIHdoZXJlIHRoZXJl
IGlzIG5vIE5ldHdvcmtTZXNzaW9uIG9yIE5ldHdvcmtTZXNzaW9uQ29jb2EuICBXZSBuZWVkZWQg
YSBuZXcgU1BJIGZvciBzZXR0aW5nIHRoZSB0ZXN0IFRMUyBjZXJ0aWZpY2F0ZXMgd2hlcmV2ZXIK
KyAgICAgICAgdGhlIG5ldHdvcmtpbmcgaXMgYmVpbmcgZG9uZS4KKworICAgICAgICBJIGFsc28g
Zm91bmQgdGhhdCB3ZSB3ZXJlIHVubmVjZXNzYXJpbHkgcGluZ2luZyBleGFtcGxlLmNvbSB3aGVu
IHJ1bm5pbmcgdGhlc2UgdW5pdCB0ZXN0cy4gIEkgYWRkZWQgYW4gZWFybHkgcmV0dXJuIHRvIHBy
ZXZlbnQgdGhhdAorICAgICAgICB3aGVuIHJ1bm5pbmcgdGVzdHMgd2l0aCBhIGxvY2FsIHNlcnZl
ci4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9y
V2ViU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFsbG93VExTQ2Vy
dGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lv
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjphbGxvd1RMU0NlcnRpZmlj
YXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtTZXNzaW9uLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjphbGxvd1RMU0NlcnRpZmljYXRl
Q2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6
bWVzc2FnZVR5cGVTZW5kc1JlcGx5KToKKyAgICAgICAgKFdlYktpdDo6UENNOjpkZWNvZGVNZXNz
YWdlQW5kU2VuZFRvTWFuYWdlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmg6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpQQ006
Ok1hbmFnZXJQcm94eTo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5n
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29y
a0xvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6TmV0d29ya0xvYWRlcjo6YWxsb3dU
TFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5l
dHdvcmtMb2FkZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJDb2NvYS5t
bToKKyAgICAgICAgKGFsbG93ZWRMb2NhbFRlc3RDZXJ0aWZpY2F0ZUNoYWluKToKKyAgICAgICAg
KGhhc0FsbG93ZWRMb2NhbFRlc3RDZXJ0aWZpY2F0ZUNoYWluKToKKyAgICAgICAgKC1bV0tOZXR3
b3JrU2Vzc2lvbkRlbGVnYXRlQWxsb3dpbmdPbmx5Tm9uUmVkaXJlY3RlZEpTT04gVVJMU2Vzc2lv
bjp0YXNrOmRpZFJlY2VpdmVDaGFsbGVuZ2U6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAg
IChXZWJLaXQ6OlBDTTo6TmV0d29ya0xvYWRlcjo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9y
TG9jYWxQQ01UZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6UENNOjpOZXR3b3JrTG9hZGVyOjpz
dGFydCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2Nv
YS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFsbG93U3BlY2lmaWNIVFRQ
U0NlcnRpZmljYXRlRm9ySG9zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjph
bGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW06
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0
aWZpY2F0ZUZvckhvc3QpOiBEZWxldGVkLgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVu
dENvZGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0
b3JlLm1tOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2FsbG93VExTQ2VydGlmaWNh
dGVDaGFpbjpmb3JIb3N0Ol0pOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2FsbG93
VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZzpdKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHA6CisgICAgICAgICh3ZWJraXRf
d2ViX2NvbnRleHRfYWxsb3dfdGxzX2NlcnRpZmljYXRlX2Zvcl9ob3N0KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYnNpdGVEYXRhU3RvcmU6OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9z
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OmFsbG93VExTQ2VydGlmaWNh
dGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKwogMjAyMS0wOS0wOSAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCBkYWVtb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHAKaW5kZXggODY1YWQzMGM1OTcwZGQ2ZTE4Mjc2YWY0N2E4MzhkYjk2Nzk1MzYx
YS4uZTViZjU1ZmZiMjNiN2EzNTkxZjc5YjhjYTU0YTJjNDgyYmUwMDdhOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTIxNjgsMTAg
KzIxNjgsMTggQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVs
IGNhY2hlTW9kZWwpCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldEFsbG93c0FueVNTTENlcnRp
ZmljYXRlRm9yV2ViU29ja2V0KGJvb2wgYWxsb3dzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisgICAgLy8gRklYTUU6IFN0b3AgdXNpbmcgdGhpcyB3
aGVuIEhBVkUoTlNVUkxTRVNTSU9OX1dFQlNPQ0tFVCkgaXMgdHJ1ZS4KICAgICBEZXByZWNhdGVk
R2xvYmFsU2V0dGluZ3M6OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGFsbG93cyk7CiAgICAg
Y29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAorI2lmICFQTEFURk9STShDT0NPQSkKK3ZvaWQgTmV0
d29ya1Byb2Nlc3M6OmFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhQ
QUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJikKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpCit9CisjZW5kaWYKKwogdm9pZCBOZXR3b3JrUHJvY2Vzczo6bG9nRGlh
Z25vc3RpY01lc3NhZ2UoV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBTaG91bGRTYW1w
bGUgc2hvdWxkU2FtcGxlKQogewogICAgIGlmICghRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OnNo
b3VsZExvZ0FmdGVyU2FtcGxpbmcoc2hvdWxkU2FtcGxlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCAzNDU1NjQ3NjIxNWY2OWRkNmJhZjQ2
NzhiZDc0OTQ0OWZhZWJiM2VjLi4yOGNiZmY1ZDQxMDM4ZWE3ZmRmYjgwZDQ3YjY0YzYyY2MwMWRl
NGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5o
CkBAIC00NTAsOCArNDUwLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldENhY2hlTW9kZWwoQ2Fj
aGVNb2RlbCk7CiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsU3luY2hyb25vdXNseUZvclRlc3Rpbmco
Q2FjaGVNb2RlbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGFsbG93
U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0
ZUluZm8mLCBjb25zdCBTdHJpbmcmIGhvc3QpOworICAgIHZvaWQgYWxsb3dUTFNDZXJ0aWZpY2F0
ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpD
ZXJ0aWZpY2F0ZUluZm8mKTsKICAgICB2b2lkIHNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9y
V2ViU29ja2V0KGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgCisKICAg
ICB2b2lkIGZsdXNoQ29va2llcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKIAogICAgIHZvaWQgYWRkV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzKFBBTDo6U2Vz
c2lvbklELCBXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMm
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbgppbmRleCA5YjYyMTMzYjA1ZjgzNDdjMjU4MzA1ZjQxZmJiNzc3NzQ5
MGE0MGY5Li41MTgwYzgyOTY1MGFkNTZlMGIxZWZkM2JjNDUyMGNiZjMxYTI5NzMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVz
c2FnZXMuaW4KQEAgLTY2LDYgKzY2LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVn
YWN5UmVjZWl2ZXIgewogICAgIEZsdXNoQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQp
IC0+ICgpIEFzeW5jCiAKICAgICBBbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3Qo
V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvIGNlcnRpZmljYXRlLCBTdHJpbmcgaG9zdCkKKyAgICBB
bGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGUpCiAKICAgICBT
ZXRDYWNoZU1vZGVsKGVudW06dWludDhfdCBXZWJLaXQ6OkNhY2hlTW9kZWwgY2FjaGVNb2RlbCkK
ICAgICBTZXRDYWNoZU1vZGVsU3luY2hyb25vdXNseUZvclRlc3RpbmcoZW51bTp1aW50OF90IFdl
YktpdDo6Q2FjaGVNb2RlbCBjYWNoZU1vZGVsKSAtPiAoKSBTeW5jaHJvbm91cwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAppbmRleCBkZmRlNzhk
YTYxZDliZmE4YTNjNWE0YzFjOGNhOTdhMDJlMzUzZmI4Li43M2I4NjQ4NzczY2I3MjIwOGE3ZDBi
ZWM4YzI1ZTdhOWFiNzM5NDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtTZXNzaW9uLmNwcApAQCAtMzkwLDYgKzM5MCwxMSBAQCB2b2lkIE5ldHdvcmtTZXNz
aW9uOjpmaXJlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUaW1lckltbWVkaWF0ZWx5Rm9yVGVzdGlu
ZygpCiAgICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKS5zdGFydFRpbWVySW1tZWRpYXRlbHlG
b3JUZXN0aW5nKCk7CiB9CiAKK3ZvaWQgTmV0d29ya1Nlc3Npb246OmFsbG93VExTQ2VydGlmaWNh
dGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhWZWN0b3I8dWludDhfdD4mJiBlbmNvZGVkQ2VydGlm
aWNhdGUpCit7CisgICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKS5hbGxvd1RMU0NlcnRpZmlj
YXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoV1RGTW92ZShlbmNvZGVkQ2VydGlmaWNhdGUpKTsK
K30KKwogdm9pZCBOZXR3b3JrU2Vzc2lvbjo6YWRkS2VwdEFsaXZlTG9hZChSZWY8TmV0d29ya1Jl
c291cmNlTG9hZGVyPiYmIGxvYWRlcikKIHsKICAgICBBU1NFUlQobV9zZXNzaW9uSUQgPT0gbG9h
ZGVyLT5zZXNzaW9uSUQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uLmgKaW5kZXggZDhhYWIzZGJhNDliNzY3ZjNlZjA5OTRiZjJjYmU5NTFmYTQxNjcy
OC4uYjU3YTdhOTRkZWZhZWZlMjk0MDFkYTQ3ODNkNjlhYTEyOWM4Y2JhOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaApAQCAtMTM3LDYgKzEzNyw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RXBoZW1lcmFs
TWVhc3VyZW1lbnRGb3JUZXN0aW5nKGJvb2wpOwogICAgIHZvaWQgc2V0UENNRnJhdWRQcmV2ZW50
aW9uVmFsdWVzRm9yVGVzdGluZyhTdHJpbmcmJiB1bmxpbmthYmxlVG9rZW4sIFN0cmluZyYmIHNl
Y3JldFRva2VuLCBTdHJpbmcmJiBzaWduYXR1cmUsIFN0cmluZyYmIGtleUlEKTsKICAgICB2b2lk
IGZpcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nKCk7
CisgICAgdm9pZCBhbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoVmVj
dG9yPHVpbnQ4X3Q+JiYpOwogCiAgICAgdm9pZCBhZGRLZXB0QWxpdmVMb2FkKFJlZjxOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI+JiYpOwogICAgIHZvaWQgcmVtb3ZlS2VwdEFsaXZlTG9hZChOZXR3b3Jr
UmVzb3VyY2VMb2FkZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcAppbmRleCA1YjE1OTlmMDM3OGNl
NjM1ZTNkZmNjYmU4ZjJjNmNjYmMxYzViYjhlLi5kMGZmZmNjZjBhMmY3NjAyN2FkYzU0YTE3ZGMw
MzY3OGY4Y2ViNjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1By
aXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwCkBAIC01NDgsNCArNTQ4LDkgQEAg
dm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmRlc3Ryb3lTdG9yZUZvclRlc3Rp
bmcoQ29tcGxldGlvbkhhbmRsZXI8dm8KICAgICB9KTsKIH0KIAordm9pZCBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXI6OmFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVz
dGluZyhWZWN0b3I8dWludDhfdD4mJiBlbmNvZGVkQ2VydGlmaWNhdGUpCit7CisgICAgUENNOjpO
ZXR3b3JrTG9hZGVyOjphbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3Rpbmco
V1RGTW92ZShlbmNvZGVkQ2VydGlmaWNhdGUpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXIuaAppbmRleCAyNmU3YzU1OTE0NDdmZWJmNTc4NTFlYWU1ZDJlMGY0NmQ5
YmVlMDFmLi5mMTQwYmUyNGY0MjBkYWYzOWJiMTc3Mjg3YjdjNDZkZDE4MTkwYWYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VyLmgKQEAgLTYyLDYgKzYyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UENNRnJh
dWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhTdHJpbmcmJiB1bmxpbmthYmxlVG9rZW4sIFN0
cmluZyYmIHNlY3JldFRva2VuLCBTdHJpbmcmJiBzaWduYXR1cmUsIFN0cmluZyYmIGtleUlEKSBm
aW5hbDsKICAgICB2b2lkIHN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcoKSBmaW5hbDsK
ICAgICB2b2lkIGRlc3Ryb3lTdG9yZUZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKSBmaW5hbDsKKyAgICB2b2lkIGFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENN
VGVzdGluZyhWZWN0b3I8dWludDhfdD4mJikgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgUENNOjpT
dG9yZSYgc3RvcmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50
ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcAppbmRl
eCBkNzJhZmQ5ZTQ1MGY4NWE3ZmE0MTQ5YWE2ODNhOGMzMzkyOGU3OTQwLi43ZGZjOWVkMWQyMTEx
ZjU0OGExM2M2NDgzMzk0YTk4MTFkMzFjZDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlckludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJ
bnRlcmZhY2UuY3BwCkBAIC0xMTQsNiArMTE0LDEwIEBAIEFSR1VNRU5UUygpCiBSRVBMWSgpCiBF
TkQKIAorRlVOQ1RJT04oYWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5n
KQorQVJHVU1FTlRTKFZlY3Rvcjx1aW50OF90PikKK0VORAorCiAjdW5kZWYgRlVOQ1RJT04KICN1
bmRlZiBBUkdVTUVOVFMKICN1bmRlZiBSRVBMWQpAQCAtMTQ5LDYgKzE1Myw3IEBAIGJvb2wgbWVz
c2FnZVR5cGVTZW5kc1JlcGx5KE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlKQogICAgIGNhc2UgTWVz
c2FnZVR5cGU6OlNldEVwaGVtZXJhbE1lYXN1cmVtZW50Rm9yVGVzdGluZzoKICAgICBjYXNlIE1l
c3NhZ2VUeXBlOjpTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nOgogICAgIGNh
c2UgTWVzc2FnZVR5cGU6OlN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3Rpbmc6CisgICAgY2Fz
ZSBNZXNzYWdlVHlwZTo6QWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5n
OgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgY2FzZSBNZXNzYWdlVHlwZTo6TWFya0F0dHJp
YnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nOgogICAgIGNh
c2UgTWVzc2FnZVR5cGU6OkRlc3Ryb3lTdG9yZUZvclRlc3Rpbmc6CkBAIC0yNTAsNiArMjU1LDkg
QEAgdm9pZCBkZWNvZGVNZXNzYWdlQW5kU2VuZFRvTWFuYWdlcihNZXNzYWdlVHlwZSBtZXNzYWdl
VHlwZSwgVmVjdG9yPHVpbnQ4X3Q+JiYgZW4KICAgICBjYXNlIFBDTTo6TWVzc2FnZVR5cGU6OkRl
c3Ryb3lTdG9yZUZvclRlc3Rpbmc6CiAgICAgICAgIGhhbmRsZVBDTU1lc3NhZ2VXaXRoUmVwbHk8
TWVzc2FnZUluZm86OmRlc3Ryb3lTdG9yZUZvclRlc3Rpbmc+KFdURk1vdmUoZW5jb2RlZE1lc3Nh
Z2UpLCBXVEZNb3ZlKHJlcGx5U2VuZGVyKSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUENN
OjpNZXNzYWdlVHlwZTo6QWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5n
OgorICAgICAgICBoYW5kbGVQQ01NZXNzYWdlPE1lc3NhZ2VJbmZvOjphbGxvd1RMU0NlcnRpZmlj
YXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3Rpbmc+KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpKTsKKyAg
ICAgICAgYnJlYWs7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlckludGVyZmFjZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2Uu
aAppbmRleCBhMjkyZmE5ZjA5NTViM2UwMjI0NDY1MDM3MWVkYjQ5MzljMDcxZmFlLi41ZGI2NGI4
MzI2NTlhZWI4N2VjMjA2Yjg2ZGMzYWY0ZWRhNDc3ZGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01l
YXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VySW50ZXJmYWNlLmgKQEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKFN0cmluZyYmIHVubGlua2Fi
bGVUb2tlbiwgU3RyaW5nJiYgc2VjcmV0VG9rZW4sIFN0cmluZyYmIHNpZ25hdHVyZSwgU3RyaW5n
JiYga2V5SUQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRUaW1lckltbWVkaWF0ZWx5Rm9y
VGVzdGluZygpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveVN0b3JlRm9yVGVzdGluZyhD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWxsb3dU
TFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKFZlY3Rvcjx1aW50OF90PiYmKSA9
IDA7CiB9OwogCiBjb25zdGV4cHIgY29uc3QgY2hhciogcHJvdG9jb2xWZXJzaW9uS2V5IHsgInZl
cnNpb24iIH07CkBAIC04Nyw2ICs4OCw3IEBAIGVudW0gY2xhc3MgTWVzc2FnZVR5cGUgOiB1aW50
OF90IHsKICAgICBTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nLAogICAgIFN0
YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcsCiAgICAgRGVzdHJveVN0b3JlRm9yVGVzdGlu
ZywKKyAgICBBbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcKIH07CiAK
IGNvbnN0ZXhwciBjb25zdCBjaGFyKiBwcm90b2NvbEVuY29kZWRNZXNzYWdlS2V5IHsgImVuY29k
ZWQgbWVzc2FnZSIgfTsKQEAgLTExOSw3ICsxMjEsOCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVt
VHJhaXRzPFdlYktpdDo6UENNOjpNZXNzYWdlVHlwZT4gewogICAgICAgICBXZWJLaXQ6OlBDTTo6
TWVzc2FnZVR5cGU6OlNldEVwaGVtZXJhbE1lYXN1cmVtZW50Rm9yVGVzdGluZywKICAgICAgICAg
V2ViS2l0OjpQQ006Ok1lc3NhZ2VUeXBlOjpTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JU
ZXN0aW5nLAogICAgICAgICBXZWJLaXQ6OlBDTTo6TWVzc2FnZVR5cGU6OlN0YXJ0VGltZXJJbW1l
ZGlhdGVseUZvclRlc3RpbmcsCi0gICAgICAgIFdlYktpdDo6UENNOjpNZXNzYWdlVHlwZTo6RGVz
dHJveVN0b3JlRm9yVGVzdGluZworICAgICAgICBXZWJLaXQ6OlBDTTo6TWVzc2FnZVR5cGU6OkRl
c3Ryb3lTdG9yZUZvclRlc3RpbmcsCisgICAgICAgIFdlYktpdDo6UENNOjpNZXNzYWdlVHlwZTo6
QWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nCiAgICAgPjsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAKaW5kZXggM2NhZTRlNGZmNThjYjYxZjU1ZjVi
NTE5NWJhNWUzZDBiYThkYmRkMy4uZWExNmMyZTZjYWNkMDQ4ODgwNzc2NjY2OGYyYTQxYzQ4YzM3
NzJjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAKQEAgLTE1MSw2ICsxNTEsMTEg
QEAgdm9pZCBNYW5hZ2VyUHJveHk6OmRlc3Ryb3lTdG9yZUZvclRlc3RpbmcoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb24KICAgICBzZW5kTWVzc2FnZVdpdGhSZXBseTxNZXNz
YWdlVHlwZTo6RGVzdHJveVN0b3JlRm9yVGVzdGluZz4oV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwogfQogCit2b2lkIE1hbmFnZXJQcm94eTo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9y
TG9jYWxQQ01UZXN0aW5nKFZlY3Rvcjx1aW50OF90PiYmIGVuY29kZWRDZXJ0aWZpY2F0ZSkKK3sK
KyAgICBzZW5kTWVzc2FnZTxNZXNzYWdlVHlwZTo6QWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9y
TG9jYWxQQ01UZXN0aW5nPihXVEZNb3ZlKGVuY29kZWRDZXJ0aWZpY2F0ZSkpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBQQ00KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
clByb3h5LmgKaW5kZXggOGNkNDExOTk0YjRiMDZmMGY2YjVkOTkxNWYyZjJjZGZhY2E5NmU2Zi4u
MDg2NzMzODIwMTFkNGZlMmQ5ZGZhYjk3NGRjZDUzMTVlNDIyZmNjYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YW5hZ2VyUHJveHkuaApAQCAtNTIsNiArNTIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQQ01G
cmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKFN0cmluZyYmIHVubGlua2FibGVUb2tlbiwg
U3RyaW5nJiYgc2VjcmV0VG9rZW4sIFN0cmluZyYmIHNpZ25hdHVyZSwgU3RyaW5nJiYga2V5SUQp
IGZpbmFsOwogICAgIHZvaWQgc3RhcnRUaW1lckltbWVkaWF0ZWx5Rm9yVGVzdGluZygpIGZpbmFs
OwogICAgIHZvaWQgZGVzdHJveVN0b3JlRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpIGZpbmFsOworICAgIHZvaWQgYWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQ
Q01UZXN0aW5nKFZlY3Rvcjx1aW50OF90PiYmKSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFBDTQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuY3BwCmluZGV4IDQ1YTA1ZWUxYWIzNmVl
MWE3ZDg0NDc3ZmZhMTE2NDRiNTk4OGY5OGEuLjJkMzQwMjU2OTNhOGY0MWE3OGRiZjA1MWM2NmVk
NWQ2NDVhZmY5YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlci5jcHAKQEAgLTM4LDYg
KzM4LDEyIEBAIHZvaWQgTmV0d29ya0xvYWRlcjo6c3RhcnQoVVJMJiYsIFJlZlB0cjxKU09OOjpP
YmplY3Q+JiYsIFByaXZhdGVDbGlja01lYXN1cmVtZW50CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
ICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0sIHsgfSwgeyB9KTsKIH0KKwordm9pZCBOZXR3b3Jr
TG9hZGVyOjphbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoVmVjdG9y
PHVpbnQ4X3Q+JiYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogI2VuZGlmCiAKIH0g
Ly8gbmFtZXNwYWNlIFBDTQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtM
b2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyLmgKaW5kZXggMzAzMzA3
N2E1Zjk0M2M0NjZlNjRhYjE2NzQyNTE3M2RiMDU0MWVjZC4uNTM1ZTI2ZWI5YTQ0N2FhNzM1NGVm
MzZlNzVmMzU2YjdhNDQyNjQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdv
cmtMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlci5oCkBAIC00
Miw2ICs0Miw3IEBAIGNsYXNzIE5ldHdvcmtMb2FkZXIgewogcHVibGljOgogICAgIHVzaW5nIENh
bGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlZlB0cjxKU09O
OjpPYmplY3Q+Jik+OwogICAgIHN0YXRpYyB2b2lkIHN0YXJ0KFVSTCYmLCBSZWZQdHI8SlNPTjo6
T2JqZWN0PiYmLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UGNtRGF0YUNhcnJp
ZWQsIENhbGxiYWNrJiYpOworICAgIHN0YXRpYyB2b2lkIGFsbG93VExTQ2VydGlmaWNhdGVDaGFp
bkZvckxvY2FsUENNVGVzdGluZyhWZWN0b3I8dWludDhfdD4mJik7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBQQ00KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9h
ZGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlckNvY29h
Lm1tCmluZGV4IDdlYTBlODFiYzE5ZDlhNTA1NjA2NDBmMWRhY2UyNTQwYjIxZjVmNmYuLjQxNTY5
YWI0ZmVmMmI0YmFmZTQ4MTE3NzU4NDliNjdiYzJjMDhiNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJDb2NvYS5tbQpAQCAtMjcsMTIgKzI3LDMxIEBACiAj
aW1wb3J0ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuaCIKIAogI2ltcG9y
dCAiTmV0d29ya0RhdGFUYXNrQ29jb2EuaCIKLSNpbXBvcnQgIk5ldHdvcmtTZXNzaW9uQ29jb2Eu
aCIKICNpbXBvcnQgPFdlYkNvcmUvSFRUUEhlYWRlclZhbHVlcy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5o
PgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKK3N0YXRpYyBSZXRhaW5QdHI8Q0ZB
cnJheVJlZj4mIGFsbG93ZWRMb2NhbFRlc3RDZXJ0aWZpY2F0ZUNoYWluKCkKK3sKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8UmV0YWluUHRyPENGQXJyYXlSZWY+PiBjZXJ0aWZpY2F0ZTsKKyAg
ICByZXR1cm4gY2VydGlmaWNhdGUuZ2V0KCk7Cit9CisKK3N0YXRpYyBib29sIGhhc0FsbG93ZWRM
b2NhbFRlc3RDZXJ0aWZpY2F0ZUNoYWluKE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKmNo
YWxsZW5nZSkKK3sKKyAgICBpZiAoIVtjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlLmhvc3QgaXNF
cXVhbFRvU3RyaW5nOkAiMTI3LjAuMC4xIl0KKyAgICAgICAgfHwgIWFsbG93ZWRMb2NhbFRlc3RD
ZXJ0aWZpY2F0ZUNoYWluKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBTZWNU
cnVzdFJlZiB0cnVzdFJlZiA9IG51bGxwdHI7CisgICAgaWYgKFNlY1RydXN0Q3JlYXRlV2l0aENl
cnRpZmljYXRlcyhhbGxvd2VkTG9jYWxUZXN0Q2VydGlmaWNhdGVDaGFpbigpLmdldCgpLCBudWxs
cHRyLCAmdHJ1c3RSZWYpICE9IG5vRXJyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgUmV0
YWluUHRyPFNlY1RydXN0UmVmPiB0cnVzdCA9IGFkb3B0Q0YodHJ1c3RSZWYpOworCisgICAgcmV0
dXJuIFdlYkNvcmU6OmNlcnRpZmljYXRlc01hdGNoKHRydXN0LmdldCgpLCBjaGFsbGVuZ2UucHJv
dGVjdGlvblNwYWNlLnNlcnZlclRydXN0KTsKK30KKwogQGludGVyZmFjZSBXS05ldHdvcmtTZXNz
aW9uRGVsZWdhdGVBbGxvd2luZ09ubHlOb25SZWRpcmVjdGVkSlNPTiA6IE5TT2JqZWN0IDxOU1VS
TFNlc3Npb25EYXRhRGVsZWdhdGU+CiBAZW5kCiAKQEAgLTUyLDkgKzcxLDggQEAKIAogLSAodm9p
ZClVUkxTZXNzaW9uOihOU1VSTFNlc3Npb24gKilzZXNzaW9uIHRhc2s6KE5TVVJMU2Vzc2lvblRh
c2sgKil0YXNrIGRpZFJlY2VpdmVDaGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UgKiljaGFsbGVuZ2UgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TVVJMU2Vzc2lvbkF1
dGhDaGFsbGVuZ2VEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgTlNVUkxDcmVkZW50aWFsICpjcmVk
ZW50aWFsKSljb21wbGV0aW9uSGFuZGxlcgogewotICAgIC8vIEZJWE1FOiBBZGQgcGx1Ym1pbmcg
c28gdGhhdCB3ZSBjYW4gdGVsbCB0aGUgZGFlbW9uIHdoaWNoIGNlcnRpZmljYXRlcyB0byBhY2Nl
cHQgd2l0aG91dCB1c2luZyBOZXR3b3JrU2Vzc2lvbkNvY29hLgogICAgIGlmIChbY2hhbGxlbmdl
LnByb3RlY3Rpb25TcGFjZS5hdXRoZW50aWNhdGlvbk1ldGhvZCBpc0VxdWFsVG9TdHJpbmc6TlNV
UkxBdXRoZW50aWNhdGlvbk1ldGhvZFNlcnZlclRydXN0XQotICAgICAgICAmJiBOZXR3b3JrU2Vz
c2lvbkNvY29hOjphbGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNoYWxsZW5n
ZSkpCisgICAgICAgICYmIGhhc0FsbG93ZWRMb2NhbFRlc3RDZXJ0aWZpY2F0ZUNoYWluKGNoYWxs
ZW5nZSkpCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihOU1VSTFNlc3Npb25BdXRo
Q2hhbGxlbmdlVXNlQ3JlZGVudGlhbCwgW05TVVJMQ3JlZGVudGlhbCBjcmVkZW50aWFsRm9yVHJ1
c3Q6Y2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZS5zZXJ2ZXJUcnVzdF0pOwogICAgIGNvbXBsZXRp
b25IYW5kbGVyKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VQZXJmb3JtRGVmYXVsdEhhbmRsaW5n
LCBuaWwpOwogfQpAQCAtODgsOCArMTA2LDE4IEBAIHN0YXRpYyBOU1VSTFNlc3Npb24gKnN0YXRl
bGVzc1Nlc3Npb25XaXRob3V0UmVkaXJlY3RzKCkKICAgICByZXR1cm4gc2Vzc2lvbi5nZXQoKS5n
ZXQoKTsKIH0KIAordm9pZCBOZXR3b3JrTG9hZGVyOjphbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5G
b3JMb2NhbFBDTVRlc3RpbmcoVmVjdG9yPHVpbnQ4X3Q+JiYgZW5jb2RlZENlcnRpZmljYXRlKQor
eworICAgIGF1dG8gY2VydGlmaWNhdGUgPSBhZG9wdENGKFNlY0NlcnRpZmljYXRlQ3JlYXRlV2l0
aERhdGEobnVsbHB0ciwgYWRvcHRDRihDRkRhdGFDcmVhdGUobnVsbHB0ciwgZW5jb2RlZENlcnRp
ZmljYXRlLmRhdGEoKSwgZW5jb2RlZENlcnRpZmljYXRlLnNpemUoKSkpLmdldCgpKSk7CisgICAg
YWxsb3dlZExvY2FsVGVzdENlcnRpZmljYXRlQ2hhaW4oKSA9IChfX2JyaWRnZSBDRkFycmF5UmVm
KUBbIChfX2JyaWRnZSBpZCljZXJ0aWZpY2F0ZS5nZXQoKSBdOworfQorCiB2b2lkIE5ldHdvcmtM
b2FkZXI6OnN0YXJ0KFVSTCYmIHVybCwgUmVmUHRyPEpTT046Ok9iamVjdD4mJiBqc29uUGF5bG9h
ZCwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlBjbURhdGFDYXJyaWVkIHBjbURh
dGFDYXJyaWVkLCBDYWxsYmFjayYmIGNhbGxiYWNrKQogeworICAgIC8vIFByZXZlbnQgY29udGFj
dGluZyBub24tbG9jYWwgc2VydmVycyB3aGVuIGEgdGVzdCBjZXJ0aWZpY2F0ZSBjaGFpbiBpcyB1
c2VkIGZvciAxMjcuMC4wLjEuCisgICAgaWYgKGFsbG93ZWRMb2NhbFRlc3RDZXJ0aWZpY2F0ZUNo
YWluKCkgJiYgdXJsLmhvc3QoKSAhPSAiMTI3LjAuMC4xIikKKyAgICAgICAgcmV0dXJuIGNhbGxi
YWNrKHsgfSwgeyB9LCB7IH0pOworCiAgICAgYXV0byByZXF1ZXN0ID0gYWRvcHROUyhbW05TTXV0
YWJsZVVSTFJlcXVlc3QgYWxsb2NdIGluaXRXaXRoVVJMOnVybF0pOwogICAgIFtyZXF1ZXN0IHNl
dFZhbHVlOldlYkNvcmU6OkhUVFBIZWFkZXJWYWx1ZXM6Om1heEFnZTAoKSBmb3JIVFRQSGVhZGVy
RmllbGQ6QCJDYWNoZS1Db250cm9sIl07CiAgICAgaWYgKGpzb25QYXlsb2FkKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29j
b2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNz
Q29jb2EubW0KaW5kZXggMzE5YzVjMDc1MjcwYTQ3MzRiMjRiZWM4YzNiMmQwMDQwNmI5ZmE4Mi4u
ODAzYzg3ZTk3OTVlZmMxMjdlOTg1NjI0YjA1MTY0ZDUwMDAxZmQwYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2Nv
YS5tbQpAQCAtMTgzLDYgKzE4MywyNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkZWxldGVIU1RT
Q2FjaGVGb3JIb3N0TmFtZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdAogI2VuZGlm
CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRl
Rm9ySG9zdChjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywg
Y29uc3QgU3RyaW5nJiBob3N0KQoreworICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBvbmNlIHJk
YXI6Ly8zMDY1NTc0MCBpcyBmaXhlZC4KKyAgICBbTlNVUkxSZXF1ZXN0IHNldEFsbG93c1NwZWNp
ZmljSFRUUFNDZXJ0aWZpY2F0ZTooTlNBcnJheSAqKWNlcnRpZmljYXRlSW5mby5jZXJ0aWZpY2F0
ZUNoYWluKCkgZm9ySG9zdDpob3N0XTsKK30KKwordm9pZCBOZXR3b3JrUHJvY2Vzczo6YWxsb3dU
TFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8pCit7
CisgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gbV9uZXR3b3JrU2Vzc2lvbnMuZ2V0KHNl
c3Npb25JRCkpIHsKKyAgICAgICAgLy8gRklYTUU6IHNlcmlhbGl6ZSB0aGUgd2hvbGUgY2VydGlm
aWNhdGUgY2hhaW4gd2hlbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjMwMTI1IGlzIGZpeGVkLgorICAgICAgICBhdXRvIGNoYWluID0gY2VydGlmaWNhdGVJbmZvLmNl
cnRpZmljYXRlQ2hhaW4oKTsKKyAgICAgICAgaWYgKCFDRkFycmF5R2V0Q291bnQoY2hhaW4pKSB7
CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorICAgICAgICBhdXRvIGRhdGEgPSBhZG9wdENGKFNlY0NlcnRpZmljYXRlQ29w
eURhdGEoY2hlY2tlZF9jZl9jYXN0PFNlY0NlcnRpZmljYXRlUmVmPihDRkFycmF5R2V0VmFsdWVB
dEluZGV4KGNoYWluLCAwKSkpKTsKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZWRDZXJ0
aWZpY2F0ZShDRkRhdGFHZXRCeXRlUHRyKGRhdGEuZ2V0KCkpLCBDRkRhdGFHZXRMZW5ndGgoZGF0
YS5nZXQoKSkpOworICAgICAgICBuZXR3b3JrU2Vzc2lvbi0+YWxsb3dUTFNDZXJ0aWZpY2F0ZUNo
YWluRm9yTG9jYWxQQ01UZXN0aW5nKFdURk1vdmUoZW5jb2RlZENlcnRpZmljYXRlKSk7CisgICAg
fQorfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpjbGVhckhTVFNDYWNoZShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFdhbGxUaW1lIG1vZGlmaWVkU2luY2UpCiB7CiAgICAgTlNUaW1lSW50ZXJ2
YWwgdGltZUludGVydmFsID0gbW9kaWZpZWRTaW5jZS5zZWNvbmRzU2luY2VFcG9jaCgpLnNlY29u
ZHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya1Nlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
TmV0d29ya1Nlc3Npb25Db2NvYS5tbQppbmRleCAxMzhjNGU5MjkxZDUzM2U4N2ViZjQyYmNkNWIz
NmVmMDU4NmQyMjk4Li5mM2M2NmY5Y2Y5NzRmNWU4MmJhYTYyNWEyNzg0NjI1MzdlYmRiYzM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNz
aW9uQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrU2Vzc2lvbkNvY29hLm1tCkBAIC0xNjQzLDcgKzE2NDMsNiBAQCBib29sIE5ldHdvcmtTZXNz
aW9uQ29jb2E6OmFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgV2Vi
Q29yZTo6QQogICAgIHJldHVybiBXZWJDb3JlOjpjZXJ0aWZpY2F0ZXNNYXRjaCh0cnVzdC5nZXQo
KSwgY2hhbGxlbmdlLm5zVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKS5wcm90ZWN0aW9uU3Bh
Y2Uuc2VydmVyVHJ1c3QpOwogfQogCi0KIHN0YXRpYyBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YktpdDo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgY29u
c3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYgY3JlZGVudGlhbCk+IGNyZWF0ZUNoYWxsZW5nZUNvbXBs
ZXRpb25IYW5kbGVyKFJlZjxOZXR3b3JrUHJvY2Vzcz4mJiBuZXR3b3JrUHJvY2VzcywgUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCAgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmIGNoYWxsZW5nZSwgY29uc3QgU3RyaW5nJiBwYXJ0aXRpb24sIHVpbnQ2NF90IHRhc2tJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYktpdDo6QXV0aGVudGljYXRpb25DaGFs
bGVuZ2VEaXNwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogIHsKICAgICBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBhdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSB7IGNoYWxsZW5nZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nlc3NJT1MubW0gYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbQppbmRleCBhMWUwOTE0
MmI4YjNhMzRhMjcwZjNiZjUwZjk2MGExNmRlNzE1NzljLi44ZjFjZmRmZTU3MWQ3NDlhMTk3ODQw
ZmE5YjA1MDAyMjUyMjNiYjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbQpAQCAtNTcsMTEgKzU3LDYgQEAgdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQXV4aWxpYXJ5UHJvY2Vzc0lu
aXRpYWxpemF0aW9uUGFyYW0KIHsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6YWxsb3dTcGVj
aWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5m
byYgY2VydGlmaWNhdGVJbmZvLCBjb25zdCBTdHJpbmcmIGhvc3QpCi17Ci0gICAgW05TVVJMUmVx
dWVzdCBzZXRBbGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGU6KE5TQXJyYXkgKiljZXJ0aWZp
Y2F0ZUluZm8uY2VydGlmaWNhdGVDaGFpbigpIGZvckhvc3Q6aG9zdF07Ci19Ci0KIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0IE5ldHdv
cmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogI2lmIEVOQUJMRShT
RUNfSVRFTV9TSElNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9t
YWMvTmV0d29ya1Byb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL21h
Yy9OZXR3b3JrUHJvY2Vzc01hYy5tbQppbmRleCAwN2JiZTMyNmFlYzRhNjY4MDQ5MjhmOTBlZTg0
Yzc5N2Q2NjExMzEyLi5hYzFmN2I0MGUyMGVmNmE1YjhkZWQ3NjUxZDM0MGQ3NTBkOTBkNTM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrUHJvY2Vz
c01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrUHJv
Y2Vzc01hYy5tbQpAQCAtNzgsMTEgKzc4LDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZv
cm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoY29uc3QgTmV0d29ya1Byb2Nlc3NDcmVhdGkKICNl
bmRpZgogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZp
Y2F0ZUZvckhvc3QoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUlu
Zm8sIGNvbnN0IFN0cmluZyYgaG9zdCkKLXsKLSAgICBbTlNVUkxSZXF1ZXN0IHNldEFsbG93c1Nw
ZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZTooX19icmlkZ2UgTlNBcnJheSAqKWNlcnRpZmljYXRlSW5m
by5jZXJ0aWZpY2F0ZUNoYWluKCkgZm9ySG9zdDooTlNTdHJpbmcgKilob3N0XTsKLX0KLQogdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQXV4aWxpYXJ5UHJvY2Vz
c0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycywgU2FuZGJveEluaXRpYWxpemF0
aW9uUGFyYW1ldGVycyYgc2FuZGJveFBhcmFtZXRlcnMpCiB7CiAgICAgLy8gTmVlZCB0byBvdmVy
aWRlIHRoZSBkZWZhdWx0LCBiZWNhdXNlIHNlcnZpY2UgaGFzIGEgZGlmZmVyZW50IGJ1bmRsZSBJ
RC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJz
LmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCmluZGV4IGIx
ODJjNTRlYjc4OGQzZDY5ODE0YWE4MDczZTRmZjFhYTlmMzkyYmQuLjFhMTcwOTkzYWU2YjUxZDdh
YWNlY2IxMmI5N2U5Zjk4MWU2MzAwMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMv
QXJndW1lbnRDb2RlcnMuaApAQCAtNDA0LDE0ICs0MDQsMTYgQEAgdGVtcGxhdGU8dHlwZW5hbWUg
VCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVf
dCBtaW4KICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8VCwgaW5saW5lQ2Fw
YWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+PiBkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKICAgICB7Ci0gICAgICAgIHVpbnQ2NF90IHNpemU7Ci0gICAgICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoc2l6ZSkpCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHNpemU7Cisg
ICAgICAgIGRlY29kZXIgPj4gc2l6ZTsKKyAgICAgICAgaWYgKCFzaXplKQogICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgICAgICBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHks
IE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+IHZlY3RvcjsKLSAgICAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCAqc2l6ZTsgKytpKSB7CiAgICAgICAgICAgICBzdGQ6Om9wdGlvbmFsPFQ+IGVsZW1lbnQ7CiAg
ICAgICAgICAgICBkZWNvZGVyID4+IGVsZW1lbnQ7CiAgICAgICAgICAgICBpZiAoIWVsZW1lbnQp
CkBAIC00NTgsMjEgKzQ2MCwyMyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5l
Q2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlciwgc2l6ZV90IG1pbgogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4K
ICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJm
bG93SGFuZGxlciwgbWluQ2FwYWNpdHk+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7
Ci0gICAgICAgIHVpbnQ2NF90IGRlY29kZWRTaXplOwotICAgICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGRlY29kZWRTaXplKSkKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZGVjb2Rl
ZFNpemU7CisgICAgICAgIGRlY29kZXIgPj4gZGVjb2RlZFNpemU7CisgICAgICAgIGlmICghZGVj
b2RlZFNpemUpCiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgICAgIGlm
ICghaXNJbkJvdW5kczxzaXplX3Q+KGRlY29kZWRTaXplKSkKICAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAKLSAgICAgICAgYXV0byBzaXplID0gc3RhdGljX2Nhc3Q8c2l6ZV90Pihk
ZWNvZGVkU2l6ZSk7CisgICAgICAgIGF1dG8gc2l6ZSA9IHN0YXRpY19jYXN0PHNpemVfdD4oKmRl
Y29kZWRTaXplKTsKIAogICAgICAgICAvLyBTaW5jZSB3ZSBrbm93IHRoZSB0b3RhbCBzaXplIG9m
IHRoZSBlbGVtZW50cywgd2UgY2FuIGFsbG9jYXRlIHRoZSB2ZWN0b3IgaW4KICAgICAgICAgLy8g
b25lIGZlbGwgc3dvb3AuIEJlZm9yZSBhbGxvY2F0aW5nIHdlIG11c3QgaG93ZXZlciBtYWtlIHN1
cmUgdGhhdCB0aGUgZGVjb2RlciBidWZmZXIKICAgICAgICAgLy8gaXMgYmlnIGVub3VnaC4KLSAg
ICAgICAgaWYgKCFkZWNvZGVyLmJ1ZmZlcklzTGFyZ2VFbm91Z2hUb0NvbnRhaW48VD4oc2l6ZSkp
CisgICAgICAgIGlmICghZGVjb2Rlci50ZW1wbGF0ZSBidWZmZXJJc0xhcmdlRW5vdWdoVG9Db250
YWluPFQ+KHNpemUpKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAg
CiAgICAgICAgIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5D
YXBhY2l0eT4gdmVjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXggMzI1MzBlZjNjMDI0NDQ5NzlhZmMy
NjhkZGQwYTkxMWI3YjhjYzE4Ny4uZTcyZWY2NWZlODFmYjdkMDVjMDY3YmI2ODhlOTUyMWE0ZGMz
MmM2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC02NTAsNyArNjUwLDEyIEBAIHN0YXRpYyBWZWN0b3I8
V2ViS2l0OjpXZWJzaXRlRGF0YVJlY29yZD4gdG9XZWJzaXRlRGF0YVJlY29yZHMoTlNBcnJheSAq
ZGF0YVJlY29yCiAKIC0gKHZvaWQpX2FsbG93VExTQ2VydGlmaWNhdGVDaGFpbjooTlNBcnJheSAq
KWNlcnRpZmljYXRlQ2hhaW4gZm9ySG9zdDooTlNTdHJpbmcgKilob3N0CiB7Ci0gICAgX3dlYnNp
dGVEYXRhU3RvcmUtPmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChXZWJLaXQ6
OldlYkNlcnRpZmljYXRlSW5mbzo6Y3JlYXRlKFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbygoX19i
cmlkZ2UgQ0ZBcnJheVJlZiljZXJ0aWZpY2F0ZUNoYWluKSkucHRyKCksIGhvc3QpOworICAgIF93
ZWJzaXRlRGF0YVN0b3JlLT5hbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoV2Vi
Q29yZTo6Q2VydGlmaWNhdGVJbmZvKChfX2JyaWRnZSBDRkFycmF5UmVmKWNlcnRpZmljYXRlQ2hh
aW4pLCBob3N0KTsKK30KKworLSAodm9pZClfYWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9j
YWxQQ01UZXN0aW5nOihOU0FycmF5ICopY2VydGlmaWNhdGVDaGFpbgoreworICAgIF93ZWJzaXRl
RGF0YVN0b3JlLT5hbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoV2Vi
Q29yZTo6Q2VydGlmaWNhdGVJbmZvKChfX2JyaWRnZSBDRkFycmF5UmVmKWNlcnRpZmljYXRlQ2hh
aW4pKTsKIH0KIAogLSAodm9pZClfYXBwQm91bmREb21haW5zOih2b2lkICheKShOU0FycmF5PE5T
U3RyaW5nICo+ICopKWNvbXBsZXRpb25IYW5kbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaApp
bmRleCBlY2M2MGY3NTE3ZTNkMTA4YWQ3NjI1YmI3YmQ4ZmZiM2MyNGIzZDU3Li4xMDAwNTkzYjc1
OGZhZjg1MWMyZjEyNjczYzg2MzM2YjI2N2E2MjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRl
LmgKQEAgLTg0LDYgKzg0LDcgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dl
YnNpdGVEYXRhU3RvcmVGZXRjaE9wdGlvbnMpIHsKICsgKHZvaWQpX3NldENhY2hlZFByb2Nlc3NT
dXNwZW5zaW9uRGVsYXlGb3JUZXN0aW5nOihkb3VibGUpZGVsYXlJblNlY29uZHMgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLSAodm9pZClf
YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluOihOU0FycmF5ICopY2VydGlmaWNhdGVDaGFpbiBmb3JI
b3N0OihOU1N0cmluZyAqKWhvc3QgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1
LjApKTsKKy0gKHZvaWQpX2FsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGlu
ZzooTlNBcnJheSAqKWNlcnRpZmljYXRlQ2hhaW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLSAodm9pZClfcmVuYW1lT3JpZ2luOihOU1VS
TCAqKW9sZE5hbWUgdG86KE5TVVJMICopbmV3TmFtZSBmb3JEYXRhT2ZUeXBlczooTlNTZXQ8TlNT
dHJpbmcgKj4gKilkYXRhVHlwZXMgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNv
bXBsZXRpb25IYW5kbGVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IGJkMmQ0ZDIwMjA2ZjhiODZmZTRjZDFh
YzkwZDkwYjc5YzM0OGVkOWQuLjFiYzUxZGQxZWQzYjExODVlZDcyNjU1NTliYjFkM2FlZDk3OTAy
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdl
YkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFdlYkNvbnRleHQuY3BwCkBAIC0xNjIzLDkgKzE2MjMsOSBAQCB2b2lkIHdlYmtpdF93ZWJfY29u
dGV4dF9hbGxvd190bHNfY2VydGlmaWNhdGVfZm9yX2hvc3QoV2ViS2l0V2ViQ29udGV4dCogY29u
dGV4dAogICAgIGdfcmV0dXJuX2lmX2ZhaWwoR19JU19UTFNfQ0VSVElGSUNBVEUoY2VydGlmaWNh
dGUpKTsKICAgICBnX3JldHVybl9pZl9mYWlsKGhvc3QpOwogCi0gICAgYXV0byB3ZWJDZXJ0aWZp
Y2F0ZUluZm8gPSBXZWJDZXJ0aWZpY2F0ZUluZm86OmNyZWF0ZShXZWJDb3JlOjpDZXJ0aWZpY2F0
ZUluZm8oY2VydGlmaWNhdGUsIHN0YXRpY19jYXN0PEdUbHNDZXJ0aWZpY2F0ZUZsYWdzPigwKSkp
OworICAgIGF1dG8gY2VydGlmaWNhdGVJbmZvID0gV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvKGNl
cnRpZmljYXRlLCBzdGF0aWNfY2FzdDxHVGxzQ2VydGlmaWNhdGVGbGFncz4oMCkpOwogICAgIGF1
dG8mIHdlYnNpdGVEYXRhU3RvcmUgPSB3ZWJraXRXZWJzaXRlRGF0YU1hbmFnZXJHZXREYXRhU3Rv
cmUoY29udGV4dC0+cHJpdi0+d2Vic2l0ZURhdGFNYW5hZ2VyLmdldCgpKTsKLSAgICB3ZWJzaXRl
RGF0YVN0b3JlLmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdCh3ZWJDZXJ0aWZp
Y2F0ZUluZm8ucHRyKCksIFN0cmluZzo6ZnJvbVVURjgoaG9zdCkpOworICAgIHdlYnNpdGVEYXRh
U3RvcmUuYWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNlcnRpZmljYXRlSW5m
bywgU3RyaW5nOjpmcm9tVVRGOChob3N0KSk7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRl
eCAzNTMyZTBkNzY4YWQ0YjgzZmJmNWIxMDFhNzQxZDdmNWIwNDAxYjU3Li4zZGE2YzExNmI5MzY4
OGQxYmFjNzNkN2U2ZDlkNDk5ZTA0NDEyYWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMTY3Miw5
ICsxNjcyLDE0IEBAIHN0YXRpYyBTdHJpbmcgY29tcHV0ZU1lZGlhS2V5RmlsZShjb25zdCBTdHJp
bmcmIG1lZGlhS2V5RGlyZWN0b3J5KQogICAgIHJldHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBl
bmRpbmdDb21wb25lbnQobWVkaWFLZXlEaXJlY3RvcnksICJTZWN1cmVTdG9wLnBsaXN0Iik7CiB9
CiAKLXZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVG
b3JIb3N0KGNvbnN0IFdlYkNlcnRpZmljYXRlSW5mbyogY2VydGlmaWNhdGUsIGNvbnN0IFN0cmlu
ZyYgaG9zdCkKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlm
aWNhdGVGb3JIb3N0KGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGUs
IGNvbnN0IFN0cmluZyYgaG9zdCkKIHsKLSAgICBuZXR3b3JrUHJvY2VzcygpLnNlbmQoTWVzc2Fn
ZXM6Ok5ldHdvcmtQcm9jZXNzOjpBbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3Qo
Y2VydGlmaWNhdGUtPmNlcnRpZmljYXRlSW5mbygpLCBob3N0KSwgMCk7CisgICAgbmV0d29ya1By
b2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6QWxsb3dTcGVjaWZpY0hUVFBT
Q2VydGlmaWNhdGVGb3JIb3N0KGNlcnRpZmljYXRlLCBob3N0KSwgMCk7Cit9CisKK3ZvaWQgV2Vi
c2l0ZURhdGFTdG9yZTo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5n
KGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGUpCit7CisgICAgbmV0
d29ya1Byb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6QWxsb3dUTFNDZXJ0
aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKHNlc3Npb25JRCgpLCBjZXJ0aWZpY2F0ZSks
IDApOwogfQogCiBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBXZWJzaXRlRGF0
YVN0b3JlOjptZWRpYUtleU9yaWdpbnMoY29uc3QgU3RyaW5nJiBtZWRpYUtleXNTdG9yYWdlRGly
ZWN0b3J5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDAyNjg3MzE1YjZiOTUzMDAyNjIzZTAxOTU3NzQyZTk1
NmNlZGZmNDAuLjE2MWNkZTZhMTcxYmNiMzAxZWRkOGI5ZTNjZDRhZTI2YmFkNTFmYjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmgKQEAgLTcyLDYgKzcyLDcgQEAgY2xhc3MgSFRUUENvb2tpZVN0b3JlOwogfQogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDZXJ0aWZpY2F0ZUluZm87CiBjbGFzcyBSZWdpc3Ry
YWJsZURvbWFpbjsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogCkBAIC04NSw3ICs4Niw2IEBAIGNs
YXNzIFNlY0tleVByb3h5U3RvcmU7CiBjbGFzcyBEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZTsKIGNs
YXNzIE5ldHdvcmtQcm9jZXNzUHJveHk7CiBjbGFzcyBTT0F1dGhvcml6YXRpb25Db29yZGluYXRv
cjsKLWNsYXNzIFdlYkNlcnRpZmljYXRlSW5mbzsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIGNsYXNz
IFdlYlByb2Nlc3NQb29sOwogY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OwpAQCAtMjYyLDcgKzI2Miw4
IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyB2b2lkIHNldENhY2hlZFByb2Nlc3NTdXNwZW5zaW9u
RGVsYXlGb3JUZXN0aW5nKFNlY29uZHMpOwogCi0gICAgdm9pZCBhbGxvd1NwZWNpZmljSFRUUFND
ZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgV2ViQ2VydGlmaWNhdGVJbmZvKiwgY29uc3QgU3RyaW5n
JiBob3N0KTsKKyAgICB2b2lkIGFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChj
b25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mLCBjb25zdCBTdHJpbmcmIGhvc3QpOworICAg
IHZvaWQgYWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKGNvbnN0IFdl
YkNvcmU6OkNlcnRpZmljYXRlSW5mbyYpOwogCiAgICAgRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2Um
IGRldmljZUlkSGFzaFNhbHRTdG9yYWdlKCkgeyByZXR1cm4gbV9kZXZpY2VJZEhhc2hTYWx0U3Rv
cmFnZS5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggYmMxOWMzZTY5OTU4ZmVhNzY1NTQyZTU3ZThlMzA3YWQzODM1MWFjZC4uOWJk
ZjY3MDUxNzI0NWI1OTNjZjM0YTgxNmNmMDUzNDJiMmRjYTA0ZCAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA5
LTA5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgQWRkIGluZnJhc3RydWN0dXJlIHRvIGFsbG93IFRMUyBkdXJpbmcgUENNIHRlc3RzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAxMzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OmRlbGVnYXRlQWxsb3dpbmdBbGxUTFMpOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6cnVuQmFzaWNFdmVudEF0dHJpYnV0aW9uVGVzdCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKwogMjAyMS0wOS0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CiAgICAgICAgIEltcGxlbWVudCBhIFdlYlByb2Nlc3MgY2FwCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KaW5k
ZXggYjZiYmFhNTIxNTJiZjEyYWJlODkyODU1NDVkYjUyMjU1ZTA3MmIxMS4uODlmZjcyMDg5MThm
ZTY1MmUzNzk3OGQ5MjEzNTAyMzdiMjE5MGI3MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQpAQCAtNzUs
NiArNzUsMTggQEAKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCitzdGF0aWMgVGVzdE5h
dmlnYXRpb25EZWxlZ2F0ZSAqZGVsZWdhdGVBbGxvd2luZ0FsbFRMUygpCit7CisgICAgc3RhdGlj
IFJldGFpblB0cjxUZXN0TmF2aWdhdGlvbkRlbGVnYXRlPiBkZWxlZ2F0ZSA9IFtdIHsKKyAgICAg
ICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgbmV3XSk7
CisgICAgICAgIGRlbGVnYXRlLmdldCgpLmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSA9IF4oV0tXZWJWaWV3ICosIE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKmNoYWxsZW5n
ZSwgdm9pZCAoXmNvbXBsZXRpb25IYW5kbGVyKShOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlRGlz
cG9zaXRpb24sIE5TVVJMQ3JlZGVudGlhbCAqKSkgeworICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZVVzZUNyZWRlbnRpYWwsIFtOU1VSTENyZWRl
bnRpYWwgY3JlZGVudGlhbEZvclRydXN0OmNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2Uuc2VydmVy
VHJ1c3RdKTsKKyAgICAgICAgfTsKKyAgICAgICAgcmV0dXJuIGRlbGVnYXRlOworICAgIH0oKTsK
KyAgICByZXR1cm4gZGVsZWdhdGUuZ2V0KCk7Cit9CisKIHN0YXRpYyBOU1VSTCAqZXhhbXBsZVVS
TCgpCiB7CiAgICAgcmV0dXJuIFtOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6Ly9leGFtcGxl
LmNvbS8iXTsKQEAgLTEyMiw5ICsxMzQsMTAgQEAgdm9pZCBydW5CYXNpY0V2ZW50QXR0cmlidXRp
b25UZXN0KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb24sIEZ1bmN0aW8KICAg
ICBOU1VSTCAqc2VydmVyVVJMID0gc2VydmVyLnJlcXVlc3QoKS5VUkw7CiAKICAgICBhdXRvIHdl
YlZpZXcgPSBjb25maWd1cmF0aW9uID8gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpDR1JlY3RaZXJvIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pIDogYWRvcHRO
UyhbV0tXZWJWaWV3IG5ld10pOworICAgIHdlYlZpZXcuZ2V0KCkubmF2aWdhdGlvbkRlbGVnYXRl
ID0gZGVsZWdhdGVBbGxvd2luZ0FsbFRMUygpOwogICAgIGFkZEF0dHJpYnV0aW9uVG9XZWJWaWV3
KHdlYlZpZXcuZ2V0KCksIHNlcnZlcik7CiAgICAgW1t3ZWJWaWV3IGNvbmZpZ3VyYXRpb25dLndl
YnNpdGVEYXRhU3RvcmUgX3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkOllFU107Ci0g
ICAgW1t3ZWJWaWV3IGNvbmZpZ3VyYXRpb25dLndlYnNpdGVEYXRhU3RvcmUgX2FsbG93VExTQ2Vy
dGlmaWNhdGVDaGFpbjpAWyhpZCl0ZXN0Q2VydGlmaWNhdGUoKS5nZXQoKV0gZm9ySG9zdDpzZXJ2
ZXJVUkwuaG9zdF07CisgICAgW1t3ZWJWaWV3IGNvbmZpZ3VyYXRpb25dLndlYnNpdGVEYXRhU3Rv
cmUgX2FsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZzpAWyhpZCl0ZXN0
Q2VydGlmaWNhdGUoKS5nZXQoKV1dOwogICAgIFt3ZWJWaWV3IF9zZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMc0ZvclRlc3Rpbmc6c2VydmVyVVJMIGRlc3RpbmF0
aW9uVVJMOmV4YW1wbGVVUkwoKSBjb21wbGV0aW9uSGFuZGxlcjpeewogICAgICAgICBbd2ViVmll
dyBfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZzpZRVMg
Y29tcGxldGlvbkhhbmRsZXI6XnsKICAgICAgICAgICAgIE5TU3RyaW5nICpodG1sID0gW05TU3Ry
aW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCI8c2NyaXB0PmZldGNoKCclQGNvbnZlcnNpb25SZXF1ZXN0
QmVmb3JlUmVkaXJlY3QnLHttb2RlOiduby1jb3JzJ30pPC9zY3JpcHQ+Iiwgc2VydmVyVVJMXTsK
QEAgLTI3MCw5ICsyODMsMTAgQEAgVEVTVChFdmVudEF0dHJpYnV0aW9uLCBGcmF1ZFByZXZlbnRp
b24pCiAgICAgTlNVUkwgKnNlcnZlclVSTCA9IHNlcnZlci5yZXF1ZXN0KCkuVVJMOwogCiAgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbV0tXZWJWaWV3IG5ld10pOworICAgIHdlYlZpZXcuZ2V0
KCkubmF2aWdhdGlvbkRlbGVnYXRlID0gZGVsZWdhdGVBbGxvd2luZ0FsbFRMUygpOwogICAgIFt3
ZWJWaWV3IF9hZGRFdmVudEF0dHJpYnV0aW9uV2l0aFNvdXJjZUlEOjQyIGRlc3RpbmF0aW9uVVJM
OmV4YW1wbGVVUkwoKSBzb3VyY2VEZXNjcmlwdGlvbjpAInRlc3Qgc291cmNlIGRlc2NyaXB0aW9u
IiBwdXJjaGFzZXI6QCJ0ZXN0IHB1cmNoYXNlciIgcmVwb3J0RW5kcG9pbnQ6c2VydmVyVVJMIG9w
dGlvbmFsTm9uY2U6QCJBQkNERUZhYmNkZWYwMTIzNDU2Nzg5Il07CiAgICAgW1t3ZWJWaWV3IGNv
bmZpZ3VyYXRpb25dLndlYnNpdGVEYXRhU3RvcmUgX3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NF
bmFibGVkOllFU107Ci0gICAgW1t3ZWJWaWV3IGNvbmZpZ3VyYXRpb25dLndlYnNpdGVEYXRhU3Rv
cmUgX2FsbG93VExTQ2VydGlmaWNhdGVDaGFpbjpAWyhpZCl0ZXN0Q2VydGlmaWNhdGUoKS5nZXQo
KV0gZm9ySG9zdDpzZXJ2ZXJVUkwuaG9zdF07CisgICAgW1t3ZWJWaWV3IGNvbmZpZ3VyYXRpb25d
LndlYnNpdGVEYXRhU3RvcmUgX2FsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVz
dGluZzpAWyhpZCl0ZXN0Q2VydGlmaWNhdGUoKS5nZXQoKV1dOwogCiAgICAgW3dlYlZpZXcgX3Nl
dFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZzpz
ZXJ2ZXJVUkwgZGVzdGluYXRpb25VUkw6ZXhhbXBsZVVSTCgpIGNvbXBsZXRpb25IYW5kbGVyOl57
CiAgICAgICAgIFt3ZWJWaWV3IF9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGlt
ZXJGb3JUZXN0aW5nOllFUyBjb21wbGV0aW9uSGFuZGxlcjpeewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437829</attachid>
            <date>2021-09-09 19:54:29 -0700</date>
            <delta_ts>2021-09-09 20:52:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230137-20210909195428.patch</filename>
            <type>text/plain</type>
            <size>33818</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFmMGM5NzIwMmIwOWVjYzky
NjhjNjdjZjZhNjFmOWFkYjc1Mjc5YTMuLmUwZWFmODEyYTA3OWZjNGQ1NTUyNDQ3MGEyYjE0Y2Yy
YjBiYjNjZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMjEtMDktMDkgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgaW5mcmFz
dHJ1Y3R1cmUgdG8gYWxsb3cgVExTIGR1cmluZyBQQ00gdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDEzNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHdlcmUgdXNpbmcgTmV0d29ya1Nlc3Np
b25Db2NvYTo6YWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdCBidXQgdGhhdCBk
b2Vzbid0IHdvcmsgd2hlbiB3ZSBhcmUgaW4gYSBkYWVtb24sCisgICAgICAgIHdoZXJlIHRoZXJl
IGlzIG5vIE5ldHdvcmtTZXNzaW9uIG9yIE5ldHdvcmtTZXNzaW9uQ29jb2EuICBXZSBuZWVkZWQg
YSBuZXcgU1BJIGZvciBzZXR0aW5nIHRoZSB0ZXN0IFRMUyBjZXJ0aWZpY2F0ZXMgd2hlcmV2ZXIK
KyAgICAgICAgdGhlIG5ldHdvcmtpbmcgaXMgYmVpbmcgZG9uZS4KKworICAgICAgICBJIGFsc28g
Zm91bmQgdGhhdCB3ZSB3ZXJlIHVubmVjZXNzYXJpbHkgcGluZ2luZyBleGFtcGxlLmNvbSB3aGVu
IHJ1bm5pbmcgdGhlc2UgdW5pdCB0ZXN0cy4gIEkgYWRkZWQgYW4gZWFybHkgcmV0dXJuIHRvIHBy
ZXZlbnQgdGhhdAorICAgICAgICB3aGVuIHJ1bm5pbmcgdGVzdHMgd2l0aCBhIGxvY2FsIHNlcnZl
ci4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9y
V2ViU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFsbG93VExTQ2Vy
dGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lv
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjphbGxvd1RMU0NlcnRpZmlj
YXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtTZXNzaW9uLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjphbGxvd1RMU0NlcnRpZmljYXRl
Q2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6
bWVzc2FnZVR5cGVTZW5kc1JlcGx5KToKKyAgICAgICAgKFdlYktpdDo6UENNOjpkZWNvZGVNZXNz
YWdlQW5kU2VuZFRvTWFuYWdlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmg6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpQQ006
Ok1hbmFnZXJQcm94eTo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5n
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29y
a0xvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6TmV0d29ya0xvYWRlcjo6YWxsb3dU
TFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5l
dHdvcmtMb2FkZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJDb2NvYS5t
bToKKyAgICAgICAgKGFsbG93ZWRMb2NhbFRlc3RDZXJ0aWZpY2F0ZUNoYWluKToKKyAgICAgICAg
KGhhc0FsbG93ZWRMb2NhbFRlc3RDZXJ0aWZpY2F0ZUNoYWluKToKKyAgICAgICAgKC1bV0tOZXR3
b3JrU2Vzc2lvbkRlbGVnYXRlQWxsb3dpbmdPbmx5Tm9uUmVkaXJlY3RlZEpTT04gVVJMU2Vzc2lv
bjp0YXNrOmRpZFJlY2VpdmVDaGFsbGVuZ2U6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAg
IChXZWJLaXQ6OlBDTTo6TmV0d29ya0xvYWRlcjo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9y
TG9jYWxQQ01UZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6UENNOjpOZXR3b3JrTG9hZGVyOjpz
dGFydCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2Nv
YS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFsbG93U3BlY2lmaWNIVFRQ
U0NlcnRpZmljYXRlRm9ySG9zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjph
bGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW06
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0
aWZpY2F0ZUZvckhvc3QpOiBEZWxldGVkLgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVu
dENvZGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0
b3JlLm1tOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2FsbG93VExTQ2VydGlmaWNh
dGVDaGFpbjpmb3JIb3N0Ol0pOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2FsbG93
VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZzpdKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHA6CisgICAgICAgICh3ZWJraXRf
d2ViX2NvbnRleHRfYWxsb3dfdGxzX2NlcnRpZmljYXRlX2Zvcl9ob3N0KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYnNpdGVEYXRhU3RvcmU6OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9z
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OmFsbG93VExTQ2VydGlmaWNh
dGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKwogMjAyMS0wOS0wOSAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCBkYWVtb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHAKaW5kZXggODY1YWQzMGM1OTcwZGQ2ZTE4Mjc2YWY0N2E4MzhkYjk2Nzk1MzYx
YS4uNDZiNWQ3ODU2YTcyN2Q0Y2U3OGJmMGI3OWZiNWQ4ZTgzOTM5N2Y2YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTIxNjgsMTAg
KzIxNjgsMTggQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVs
IGNhY2hlTW9kZWwpCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldEFsbG93c0FueVNTTENlcnRp
ZmljYXRlRm9yV2ViU29ja2V0KGJvb2wgYWxsb3dzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisgICAgLy8gRklYTUU6IFN0b3AgdXNpbmcgdGhpcyB3
aGVuIEhBVkUoTlNVUkxTRVNTSU9OX1dFQlNPQ0tFVCkgaXMgdHJ1ZS4KICAgICBEZXByZWNhdGVk
R2xvYmFsU2V0dGluZ3M6OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGFsbG93cyk7CiAgICAg
Y29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAorI2lmICFQTEFURk9STShDT0NPQSkKK3ZvaWQgTmV0
d29ya1Byb2Nlc3M6OmFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhQ
QUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJikKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorI2VuZGlmCisKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmxvZ0Rp
YWdub3N0aWNNZXNzYWdlKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgU2hvdWxkU2Ft
cGxlIHNob3VsZFNhbXBsZSkKIHsKICAgICBpZiAoIURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpz
aG91bGRMb2dBZnRlclNhbXBsaW5nKHNob3VsZFNhbXBsZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggMzQ1NTY0NzYyMTVmNjlkZDZiYWY0
Njc4YmQ3NDk0NDlmYWViYjNlYy4uMjhjYmZmNWQ0MTAzOGVhN2ZkZmI4MGQ0N2I2NGM2MmNjMDFk
ZTRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aApAQCAtNDUwLDggKzQ1MCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsKENh
Y2hlTW9kZWwpOwogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbFN5bmNocm9ub3VzbHlGb3JUZXN0aW5n
KENhY2hlTW9kZWwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBhbGxv
d1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNh
dGVJbmZvJiwgY29uc3QgU3RyaW5nJiBob3N0KTsKKyAgICB2b2lkIGFsbG93VExTQ2VydGlmaWNh
dGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6
Q2VydGlmaWNhdGVJbmZvJik7CiAgICAgdm9pZCBzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZv
cldlYlNvY2tldChib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIAorCiAg
ICAgdm9pZCBmbHVzaENvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CiAKICAgICB2b2lkIGFkZFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyhQQUw6OlNl
c3Npb25JRCwgV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJz
JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggOWI2MjEzM2IwNWY4MzQ3YzI1ODMwNWY0MWZiYjc3Nzc0
OTBhNDBmOS4uNTE4MGM4Mjk2NTBhZDU2ZTBiMWVmZDNiYzQ1MjBjYmYzMWEyOTczMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1l
c3NhZ2VzLmluCkBAIC02Niw2ICs2Niw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExl
Z2FjeVJlY2VpdmVyIHsKICAgICBGbHVzaENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KSAtPiAoKSBBc3luYwogCiAgICAgQWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0
KFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZSwgU3RyaW5nIGhvc3QpCisgICAg
QWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvIGNlcnRpZmljYXRlKQogCiAgICAg
U2V0Q2FjaGVNb2RlbChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpDYWNoZU1vZGVsIGNhY2hlTW9kZWwp
CiAgICAgU2V0Q2FjaGVNb2RlbFN5bmNocm9ub3VzbHlGb3JUZXN0aW5nKGVudW06dWludDhfdCBX
ZWJLaXQ6OkNhY2hlTW9kZWwgY2FjaGVNb2RlbCkgLT4gKCkgU3luY2hyb25vdXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKaW5kZXggZGZkZTc4
ZGE2MWQ5YmZhOGEzYzVhNGMxYzhjYTk3YTAyZTM1M2ZiOC4uNzNiODY0ODc3M2NiNzIyMDhhN2Qw
YmVjOGMyNWU3YTlhYjczOTQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTM5MCw2ICszOTAsMTEgQEAgdm9pZCBOZXR3b3JrU2Vz
c2lvbjo6ZmlyZVByaXZhdGVDbGlja01lYXN1cmVtZW50VGltZXJJbW1lZGlhdGVseUZvclRlc3Rp
bmcoKQogICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50KCkuc3RhcnRUaW1lckltbWVkaWF0ZWx5
Rm9yVGVzdGluZygpOwogfQogCit2b2lkIE5ldHdvcmtTZXNzaW9uOjphbGxvd1RMU0NlcnRpZmlj
YXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoVmVjdG9yPHVpbnQ4X3Q+JiYgZW5jb2RlZENlcnRp
ZmljYXRlKQoreworICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50KCkuYWxsb3dUTFNDZXJ0aWZp
Y2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKFdURk1vdmUoZW5jb2RlZENlcnRpZmljYXRlKSk7
Cit9CisKIHZvaWQgTmV0d29ya1Nlc3Npb246OmFkZEtlcHRBbGl2ZUxvYWQoUmVmPE5ldHdvcmtS
ZXNvdXJjZUxvYWRlcj4mJiBsb2FkZXIpCiB7CiAgICAgQVNTRVJUKG1fc2Vzc2lvbklEID09IGxv
YWRlci0+c2Vzc2lvbklEKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbi5oCmluZGV4IGQ4YWFiM2RiYTQ5Yjc2N2YzZWYwOTk0YmYyY2JlOTUxZmE0MTY3
MjguLmI1N2E3YTk0ZGVmYWVmZTI5NDAxZGE0NzgzZDY5YWExMjljOGNiYTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKQEAgLTEzNyw2ICsxMzcs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVwaGVtZXJh
bE1lYXN1cmVtZW50Rm9yVGVzdGluZyhib29sKTsKICAgICB2b2lkIHNldFBDTUZyYXVkUHJldmVu
dGlvblZhbHVlc0ZvclRlc3RpbmcoU3RyaW5nJiYgdW5saW5rYWJsZVRva2VuLCBTdHJpbmcmJiBz
ZWNyZXRUb2tlbiwgU3RyaW5nJiYgc2lnbmF0dXJlLCBTdHJpbmcmJiBrZXlJRCk7CiAgICAgdm9p
ZCBmaXJlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUaW1lckltbWVkaWF0ZWx5Rm9yVGVzdGluZygp
OworICAgIHZvaWQgYWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKFZl
Y3Rvcjx1aW50OF90PiYmKTsKIAogICAgIHZvaWQgYWRkS2VwdEFsaXZlTG9hZChSZWY8TmV0d29y
a1Jlc291cmNlTG9hZGVyPiYmKTsKICAgICB2b2lkIHJlbW92ZUtlcHRBbGl2ZUxvYWQoTmV0d29y
a1Jlc291cmNlTG9hZGVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAKaW5kZXggNWIxNTk5ZjAzNzhj
ZTYzNWUzZGZjY2JlOGYyYzZjY2JjMWM1YmI4ZS4uZDBmZmZjY2YwYTJmNzYwMjdhZGM1NGExN2Rj
MDM2NzhmOGNlYjYyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcApAQCAtNTQ4LDQgKzU0OCw5IEBA
IHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpkZXN0cm95U3RvcmVGb3JUZXN0
aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvCiAgICAgfSk7CiB9CiAKK3ZvaWQgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRNYW5hZ2VyOjphbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRl
c3RpbmcoVmVjdG9yPHVpbnQ4X3Q+JiYgZW5jb2RlZENlcnRpZmljYXRlKQoreworICAgIFBDTTo6
TmV0d29ya0xvYWRlcjo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5n
KFdURk1vdmUoZW5jb2RlZENlcnRpZmljYXRlKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyLmgKaW5kZXggMjZlN2M1NTkxNDQ3ZmViZjU3ODUxZWFlNWQyZTBmNDZk
OWJlZTAxZi4uZjE0MGJlMjRmNDIwZGFmMzliYjE3NzI4N2I3YzQ2ZGQxODE5MGFmMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlci5oCkBAIC02Miw2ICs2Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFBDTUZy
YXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoU3RyaW5nJiYgdW5saW5rYWJsZVRva2VuLCBT
dHJpbmcmJiBzZWNyZXRUb2tlbiwgU3RyaW5nJiYgc2lnbmF0dXJlLCBTdHJpbmcmJiBrZXlJRCkg
ZmluYWw7CiAgICAgdm9pZCBzdGFydFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nKCkgZmluYWw7
CiAgICAgdm9pZCBkZXN0cm95U3RvcmVGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJikgZmluYWw7CisgICAgdm9pZCBhbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBD
TVRlc3RpbmcoVmVjdG9yPHVpbnQ4X3Q+JiYpIGZpbmFsOwogCiBwcml2YXRlOgogICAgIFBDTTo6
U3RvcmUmIHN0b3JlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcklu
dGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHAKaW5k
ZXggZDcyYWZkOWU0NTBmODVhN2ZhNDE0OWFhNjgzYThjMzM5MjhlNzk0MC4uN2RmYzllZDFkMjEx
MWY1NDhhMTNjNjQ4MzM5NGE5ODExZDMxY2QxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
SW50ZXJmYWNlLmNwcApAQCAtMTE0LDYgKzExNCwxMCBAQCBBUkdVTUVOVFMoKQogUkVQTFkoKQog
RU5ECiAKK0ZVTkNUSU9OKGFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGlu
ZykKK0FSR1VNRU5UUyhWZWN0b3I8dWludDhfdD4pCitFTkQKKwogI3VuZGVmIEZVTkNUSU9OCiAj
dW5kZWYgQVJHVU1FTlRTCiAjdW5kZWYgUkVQTFkKQEAgLTE0OSw2ICsxNTMsNyBAQCBib29sIG1l
c3NhZ2VUeXBlU2VuZHNSZXBseShNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSkKICAgICBjYXNlIE1l
c3NhZ2VUeXBlOjpTZXRFcGhlbWVyYWxNZWFzdXJlbWVudEZvclRlc3Rpbmc6CiAgICAgY2FzZSBN
ZXNzYWdlVHlwZTo6U2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZzoKICAgICBj
YXNlIE1lc3NhZ2VUeXBlOjpTdGFydFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nOgorICAgIGNh
c2UgTWVzc2FnZVR5cGU6OkFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGlu
ZzoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGNhc2UgTWVzc2FnZVR5cGU6Ok1hcmtBdHRy
aWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZzoKICAgICBj
YXNlIE1lc3NhZ2VUeXBlOjpEZXN0cm95U3RvcmVGb3JUZXN0aW5nOgpAQCAtMjUwLDYgKzI1NSw5
IEBAIHZvaWQgZGVjb2RlTWVzc2FnZUFuZFNlbmRUb01hbmFnZXIoTWVzc2FnZVR5cGUgbWVzc2Fn
ZVR5cGUsIFZlY3Rvcjx1aW50OF90PiYmIGVuCiAgICAgY2FzZSBQQ006Ok1lc3NhZ2VUeXBlOjpE
ZXN0cm95U3RvcmVGb3JUZXN0aW5nOgogICAgICAgICBoYW5kbGVQQ01NZXNzYWdlV2l0aFJlcGx5
PE1lc3NhZ2VJbmZvOjpkZXN0cm95U3RvcmVGb3JUZXN0aW5nPihXVEZNb3ZlKGVuY29kZWRNZXNz
YWdlKSwgV1RGTW92ZShyZXBseVNlbmRlcikpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFBD
TTo6TWVzc2FnZVR5cGU6OkFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGlu
ZzoKKyAgICAgICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdlSW5mbzo6YWxsb3dUTFNDZXJ0aWZp
Y2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nPihXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSk7Cisg
ICAgICAgIGJyZWFrOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXJJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNl
LmgKaW5kZXggYTI5MmZhOWYwOTU1YjNlMDIyNDQ2NTAzNzFlZGI0OTM5YzA3MWZhZS4uNWRiNjRi
ODMyNjU5YWViODdlYzIwNmI4NmRjM2FmNGVkYTQ3N2RiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlckludGVyZmFjZS5oCkBAIC02NCw2ICs2NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgc2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhTdHJpbmcmJiB1bmxpbmth
YmxlVG9rZW4sIFN0cmluZyYmIHNlY3JldFRva2VuLCBTdHJpbmcmJiBzaWduYXR1cmUsIFN0cmlu
ZyYmIGtleUlEKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0VGltZXJJbW1lZGlhdGVseUZv
clRlc3RpbmcoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lTdG9yZUZvclRlc3Rpbmco
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFsbG93
VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhWZWN0b3I8dWludDhfdD4mJikg
PSAwOwogfTsKIAogY29uc3RleHByIGNvbnN0IGNoYXIqIHByb3RvY29sVmVyc2lvbktleSB7ICJ2
ZXJzaW9uIiB9OwpAQCAtODcsNiArODgsNyBAQCBlbnVtIGNsYXNzIE1lc3NhZ2VUeXBlIDogdWlu
dDhfdCB7CiAgICAgU2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZywKICAgICBT
dGFydFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nLAogICAgIERlc3Ryb3lTdG9yZUZvclRlc3Rp
bmcsCisgICAgQWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nCiB9Owog
CiBjb25zdGV4cHIgY29uc3QgY2hhciogcHJvdG9jb2xFbmNvZGVkTWVzc2FnZUtleSB7ICJlbmNv
ZGVkIG1lc3NhZ2UiIH07CkBAIC0xMTksNyArMTIxLDggQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51
bVRyYWl0czxXZWJLaXQ6OlBDTTo6TWVzc2FnZVR5cGU+IHsKICAgICAgICAgV2ViS2l0OjpQQ006
Ok1lc3NhZ2VUeXBlOjpTZXRFcGhlbWVyYWxNZWFzdXJlbWVudEZvclRlc3RpbmcsCiAgICAgICAg
IFdlYktpdDo6UENNOjpNZXNzYWdlVHlwZTo6U2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9y
VGVzdGluZywKICAgICAgICAgV2ViS2l0OjpQQ006Ok1lc3NhZ2VUeXBlOjpTdGFydFRpbWVySW1t
ZWRpYXRlbHlGb3JUZXN0aW5nLAotICAgICAgICBXZWJLaXQ6OlBDTTo6TWVzc2FnZVR5cGU6OkRl
c3Ryb3lTdG9yZUZvclRlc3RpbmcKKyAgICAgICAgV2ViS2l0OjpQQ006Ok1lc3NhZ2VUeXBlOjpE
ZXN0cm95U3RvcmVGb3JUZXN0aW5nLAorICAgICAgICBXZWJLaXQ6OlBDTTo6TWVzc2FnZVR5cGU6
OkFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZwogICAgID47CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDNjYWU0ZTRmZjU4Y2I2MWY1NWY1
YjUxOTViYTVlM2QwYmE4ZGJkZDMuLmVhMTZjMmU2Y2FjZDA0ODg4MDc3NjY2NjhmMmE0MWM0OGMz
NzcyYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwCkBAIC0xNTEsNiArMTUxLDEx
IEBAIHZvaWQgTWFuYWdlclByb3h5OjpkZXN0cm95U3RvcmVGb3JUZXN0aW5nKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uCiAgICAgc2VuZE1lc3NhZ2VXaXRoUmVwbHk8TWVz
c2FnZVR5cGU6OkRlc3Ryb3lTdG9yZUZvclRlc3Rpbmc+KFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKIH0KIAordm9pZCBNYW5hZ2VyUHJveHk6OmFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZv
ckxvY2FsUENNVGVzdGluZyhWZWN0b3I8dWludDhfdD4mJiBlbmNvZGVkQ2VydGlmaWNhdGUpCit7
CisgICAgc2VuZE1lc3NhZ2U8TWVzc2FnZVR5cGU6OkFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZv
ckxvY2FsUENNVGVzdGluZz4oV1RGTW92ZShlbmNvZGVkQ2VydGlmaWNhdGUpKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgUENNCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXJQcm94eS5oCmluZGV4IDhjZDQxMTk5NGI0YjA2ZjBmNmI1ZDk5MTVmMmYyY2RmYWNhOTZlNmYu
LjA4NjczMzgyMDExZDRmZTJkOWRmYWI5NzRkY2Q1MzE1ZTQyMmZjY2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlclByb3h5LmgKQEAgLTUyLDYgKzUyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UENN
RnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhTdHJpbmcmJiB1bmxpbmthYmxlVG9rZW4s
IFN0cmluZyYmIHNlY3JldFRva2VuLCBTdHJpbmcmJiBzaWduYXR1cmUsIFN0cmluZyYmIGtleUlE
KSBmaW5hbDsKICAgICB2b2lkIHN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcoKSBmaW5h
bDsKICAgICB2b2lkIGRlc3Ryb3lTdG9yZUZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKSBmaW5hbDsKKyAgICB2b2lkIGFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2Fs
UENNVGVzdGluZyhWZWN0b3I8dWludDhfdD4mJikgZmluYWw7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBQQ00KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyLmNwcAppbmRleCA0NWEwNWVlMWFiMzZl
ZTFhN2Q4NDQ3N2ZmYTExNjQ0YjU5ODhmOThhLi4yZDM0MDI1NjkzYThmNDFhNzhkYmYwNTFjNjZl
ZDVkNjQ1YWZmOWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1By
aXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuY3BwCkBAIC0zOCw2
ICszOCwxMiBAQCB2b2lkIE5ldHdvcmtMb2FkZXI6OnN0YXJ0KFVSTCYmLCBSZWZQdHI8SlNPTjo6
T2JqZWN0PiYmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudAogICAgIG5vdEltcGxlbWVudGVkKCk7
CiAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9LCB7IH0sIHsgfSk7CiB9CisKK3ZvaWQgTmV0d29y
a0xvYWRlcjo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKFZlY3Rv
cjx1aW50OF90PiYmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKICNlbmRpZgogCiB9
IC8vIG5hbWVzcGFjZSBQQ00KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3Jr
TG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlci5oCmluZGV4IDMwMzMw
NzdhNWY5NDNjNDY2ZTY0YWIxNjc0MjUxNzNkYjA1NDFlY2QuLjUzNWUyNmViOWE0NDdhYTczNTRl
ZjM2ZTc1ZjM1NmI3YTQ0MjY0ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3
b3JrTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuaApAQCAt
NDIsNiArNDIsNyBAQCBjbGFzcyBOZXR3b3JrTG9hZGVyIHsKIHB1YmxpYzoKICAgICB1c2luZyBD
YWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZWZQdHI8SlNP
Tjo6T2JqZWN0PiYpPjsKICAgICBzdGF0aWMgdm9pZCBzdGFydChVUkwmJiwgUmVmUHRyPEpTT046
Ok9iamVjdD4mJiwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlBjbURhdGFDYXJy
aWVkLCBDYWxsYmFjayYmKTsKKyAgICBzdGF0aWMgdm9pZCBhbGxvd1RMU0NlcnRpZmljYXRlQ2hh
aW5Gb3JMb2NhbFBDTVRlc3RpbmcoVmVjdG9yPHVpbnQ4X3Q+JiYpOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgUENNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xv
YWRlckNvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJDb2Nv
YS5tbQppbmRleCA3ZWEwZTgxYmMxOWQ5YTUwNTYwNjQwZjFkYWNlMjU0MGIyMWY1ZjZmLi40MTU2
OWFiNGZlZjJiNGJhZmU0ODExNzc1ODQ5YjY3YmMyYzA4YjY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvY29hL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyQ29jb2EubW0KQEAgLTI3LDEyICsyNywzMSBAQAog
I2ltcG9ydCAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyLmgiCiAKICNpbXBv
cnQgIk5ldHdvcmtEYXRhVGFza0NvY29hLmgiCi0jaW1wb3J0ICJOZXR3b3JrU2Vzc2lvbkNvY29h
LmgiCiAjaW1wb3J0IDxXZWJDb3JlL0hUVFBIZWFkZXJWYWx1ZXMuaD4KICNpbXBvcnQgPFdlYkNv
cmUvTUlNRVR5cGVSZWdpc3RyeS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEku
aD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCitzdGF0aWMgUmV0YWluUHRyPENG
QXJyYXlSZWY+JiBhbGxvd2VkTG9jYWxUZXN0Q2VydGlmaWNhdGVDaGFpbigpCit7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFJldGFpblB0cjxDRkFycmF5UmVmPj4gY2VydGlmaWNhdGU7Cisg
ICAgcmV0dXJuIGNlcnRpZmljYXRlLmdldCgpOworfQorCitzdGF0aWMgYm9vbCBoYXNBbGxvd2Vk
TG9jYWxUZXN0Q2VydGlmaWNhdGVDaGFpbihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICpj
aGFsbGVuZ2UpCit7CisgICAgaWYgKCFbY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZS5ob3N0IGlz
RXF1YWxUb1N0cmluZzpAIjEyNy4wLjAuMSJdCisgICAgICAgIHx8ICFhbGxvd2VkTG9jYWxUZXN0
Q2VydGlmaWNhdGVDaGFpbigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgU2Vj
VHJ1c3RSZWYgdHJ1c3RSZWYgPSBudWxscHRyOworICAgIGlmIChTZWNUcnVzdENyZWF0ZVdpdGhD
ZXJ0aWZpY2F0ZXMoYWxsb3dlZExvY2FsVGVzdENlcnRpZmljYXRlQ2hhaW4oKS5nZXQoKSwgbnVs
bHB0ciwgJnRydXN0UmVmKSAhPSBub0VycikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIFJl
dGFpblB0cjxTZWNUcnVzdFJlZj4gdHJ1c3QgPSBhZG9wdENGKHRydXN0UmVmKTsKKworICAgIHJl
dHVybiBXZWJDb3JlOjpjZXJ0aWZpY2F0ZXNNYXRjaCh0cnVzdC5nZXQoKSwgY2hhbGxlbmdlLnBy
b3RlY3Rpb25TcGFjZS5zZXJ2ZXJUcnVzdCk7Cit9CisKIEBpbnRlcmZhY2UgV0tOZXR3b3JrU2Vz
c2lvbkRlbGVnYXRlQWxsb3dpbmdPbmx5Tm9uUmVkaXJlY3RlZEpTT04gOiBOU09iamVjdCA8TlNV
UkxTZXNzaW9uRGF0YURlbGVnYXRlPgogQGVuZAogCkBAIC01Miw5ICs3MSw4IEBACiAKIC0gKHZv
aWQpVVJMU2Vzc2lvbjooTlNVUkxTZXNzaW9uICopc2Vzc2lvbiB0YXNrOihOU1VSTFNlc3Npb25U
YXNrICopdGFzayBkaWRSZWNlaXZlQ2hhbGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlICopY2hhbGxlbmdlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1VSTFNlc3Npb25B
dXRoQ2hhbGxlbmdlRGlzcG9zaXRpb24gZGlzcG9zaXRpb24sIE5TVVJMQ3JlZGVudGlhbCAqY3Jl
ZGVudGlhbCkpY29tcGxldGlvbkhhbmRsZXIKIHsKLSAgICAvLyBGSVhNRTogQWRkIHBsdWJtaW5n
IHNvIHRoYXQgd2UgY2FuIHRlbGwgdGhlIGRhZW1vbiB3aGljaCBjZXJ0aWZpY2F0ZXMgdG8gYWNj
ZXB0IHdpdGhvdXQgdXNpbmcgTmV0d29ya1Nlc3Npb25Db2NvYS4KICAgICBpZiAoW2NoYWxsZW5n
ZS5wcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25NZXRob2QgaXNFcXVhbFRvU3RyaW5nOk5T
VVJMQXV0aGVudGljYXRpb25NZXRob2RTZXJ2ZXJUcnVzdF0KLSAgICAgICAgJiYgTmV0d29ya1Nl
c3Npb25Db2NvYTo6YWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjaGFsbGVu
Z2UpKQorICAgICAgICAmJiBoYXNBbGxvd2VkTG9jYWxUZXN0Q2VydGlmaWNhdGVDaGFpbihjaGFs
bGVuZ2UpKQogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoTlNVUkxTZXNzaW9uQXV0
aENoYWxsZW5nZVVzZUNyZWRlbnRpYWwsIFtOU1VSTENyZWRlbnRpYWwgY3JlZGVudGlhbEZvclRy
dXN0OmNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2Uuc2VydmVyVHJ1c3RdKTsKICAgICBjb21wbGV0
aW9uSGFuZGxlcihOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlUGVyZm9ybURlZmF1bHRIYW5kbGlu
ZywgbmlsKTsKIH0KQEAgLTg4LDggKzEwNiwxOCBAQCBzdGF0aWMgTlNVUkxTZXNzaW9uICpzdGF0
ZWxlc3NTZXNzaW9uV2l0aG91dFJlZGlyZWN0cygpCiAgICAgcmV0dXJuIHNlc3Npb24uZ2V0KCku
Z2V0KCk7CiB9CiAKK3ZvaWQgTmV0d29ya0xvYWRlcjo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWlu
Rm9yTG9jYWxQQ01UZXN0aW5nKFZlY3Rvcjx1aW50OF90PiYmIGVuY29kZWRDZXJ0aWZpY2F0ZSkK
K3sKKyAgICBhdXRvIGNlcnRpZmljYXRlID0gYWRvcHRDRihTZWNDZXJ0aWZpY2F0ZUNyZWF0ZVdp
dGhEYXRhKG51bGxwdHIsIGFkb3B0Q0YoQ0ZEYXRhQ3JlYXRlKG51bGxwdHIsIGVuY29kZWRDZXJ0
aWZpY2F0ZS5kYXRhKCksIGVuY29kZWRDZXJ0aWZpY2F0ZS5zaXplKCkpKS5nZXQoKSkpOworICAg
IGFsbG93ZWRMb2NhbFRlc3RDZXJ0aWZpY2F0ZUNoYWluKCkgPSAoX19icmlkZ2UgQ0ZBcnJheVJl
ZilAWyAoX19icmlkZ2UgaWQpY2VydGlmaWNhdGUuZ2V0KCkgXTsKK30KKwogdm9pZCBOZXR3b3Jr
TG9hZGVyOjpzdGFydChVUkwmJiB1cmwsIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYganNvblBheWxv
YWQsIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQY21EYXRhQ2FycmllZCBwY21E
YXRhQ2FycmllZCwgQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKKyAgICAvLyBQcmV2ZW50IGNvbnRh
Y3Rpbmcgbm9uLWxvY2FsIHNlcnZlcnMgd2hlbiBhIHRlc3QgY2VydGlmaWNhdGUgY2hhaW4gaXMg
dXNlZCBmb3IgMTI3LjAuMC4xLgorICAgIGlmIChhbGxvd2VkTG9jYWxUZXN0Q2VydGlmaWNhdGVD
aGFpbigpICYmIHVybC5ob3N0KCkgIT0gIjEyNy4wLjAuMSIpCisgICAgICAgIHJldHVybiBjYWxs
YmFjayh7IH0sIHsgfSwgeyB9KTsKKwogICAgIGF1dG8gcmVxdWVzdCA9IGFkb3B0TlMoW1tOU011
dGFibGVVUkxSZXF1ZXN0IGFsbG9jXSBpbml0V2l0aFVSTDp1cmxdKTsKICAgICBbcmVxdWVzdCBz
ZXRWYWx1ZTpXZWJDb3JlOjpIVFRQSGVhZGVyVmFsdWVzOjptYXhBZ2UwKCkgZm9ySFRUUEhlYWRl
ckZpZWxkOkAiQ2FjaGUtQ29udHJvbCJdOwogICAgIGlmIChqc29uUGF5bG9hZCkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0Nv
Y29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vz
c0NvY29hLm1tCmluZGV4IDMxOWM1YzA3NTI3MGE0NzM0YjI0YmVjOGMzYjJkMDA0MDZiOWZhODIu
LjgwM2M4N2U5Nzk1ZWZjMTI3ZTk4NTYyNGIwNTE2NGQ1MDAwMWZkMGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29j
b2EubW0KQEAgLTE4Myw2ICsxODMsMjcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVsZXRlSFNU
U0NhY2hlRm9ySG9zdE5hbWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QKICNlbmRp
ZgogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0
ZUZvckhvc3QoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8s
IGNvbnN0IFN0cmluZyYgaG9zdCkKK3sKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgb25jZSBy
ZGFyOi8vMzA2NTU3NDAgaXMgZml4ZWQuCisgICAgW05TVVJMUmVxdWVzdCBzZXRBbGxvd3NTcGVj
aWZpY0hUVFBTQ2VydGlmaWNhdGU6KE5TQXJyYXkgKiljZXJ0aWZpY2F0ZUluZm8uY2VydGlmaWNh
dGVDaGFpbigpIGZvckhvc3Q6aG9zdF07Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmFsbG93
VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQor
eworICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IG1fbmV0d29ya1Nlc3Npb25zLmdldChz
ZXNzaW9uSUQpKSB7CisgICAgICAgIC8vIEZJWE1FOiBzZXJpYWxpemUgdGhlIHdob2xlIGNlcnRp
ZmljYXRlIGNoYWluIHdoZW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMDEyNSBpcyBmaXhlZC4KKyAgICAgICAgYXV0byBjaGFpbiA9IGNlcnRpZmljYXRlSW5mby5j
ZXJ0aWZpY2F0ZUNoYWluKCk7CisgICAgICAgIGlmICghQ0ZBcnJheUdldENvdW50KGNoYWluKSkg
eworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKyAgICAgICAgYXV0byBkYXRhID0gYWRvcHRDRihTZWNDZXJ0aWZpY2F0ZUNv
cHlEYXRhKGNoZWNrZWRfY2ZfY2FzdDxTZWNDZXJ0aWZpY2F0ZVJlZj4oQ0ZBcnJheUdldFZhbHVl
QXRJbmRleChjaGFpbiwgMCkpKSk7CisgICAgICAgIFZlY3Rvcjx1aW50OF90PiBlbmNvZGVkQ2Vy
dGlmaWNhdGUoQ0ZEYXRhR2V0Qnl0ZVB0cihkYXRhLmdldCgpKSwgQ0ZEYXRhR2V0TGVuZ3RoKGRh
dGEuZ2V0KCkpKTsKKyAgICAgICAgbmV0d29ya1Nlc3Npb24tPmFsbG93VExTQ2VydGlmaWNhdGVD
aGFpbkZvckxvY2FsUENNVGVzdGluZyhXVEZNb3ZlKGVuY29kZWRDZXJ0aWZpY2F0ZSkpOworICAg
IH0KK30KKwogdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y2xlYXJIU1RTQ2FjaGUoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBXYWxsVGltZSBtb2RpZmllZFNpbmNlKQogewogICAgIE5TVGltZUludGVy
dmFsIHRpbWVJbnRlcnZhbCA9IG1vZGlmaWVkU2luY2Uuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNv
bmRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXggMTM4YzRlOTI5MWQ1MzNlODdlYmY0MmJjZDVi
MzZlZjA1ODZkMjI5OC4uZjNjNjZmOWNmOTc0ZjVlODJiYWE2MjVhMjc4NDYyNTM3ZWJkYmMzNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vz
c2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtMTY0Myw3ICsxNjQzLDYgQEAgYm9vbCBOZXR3b3JrU2Vz
c2lvbkNvY29hOjphbGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFdl
YkNvcmU6OkEKICAgICByZXR1cm4gV2ViQ29yZTo6Y2VydGlmaWNhdGVzTWF0Y2godHJ1c3QuZ2V0
KCksIGNoYWxsZW5nZS5uc1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCkucHJvdGVjdGlvblNw
YWNlLnNlcnZlclRydXN0KTsKIH0KIAotCiBzdGF0aWMgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJLaXQ6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24gZGlzcG9zaXRpb24sIGNv
bnN0IFdlYkNvcmU6OkNyZWRlbnRpYWwmIGNyZWRlbnRpYWwpPiBjcmVhdGVDaGFsbGVuZ2VDb21w
bGV0aW9uSGFuZGxlcihSZWY8TmV0d29ya1Byb2Nlc3M+JiYgbmV0d29ya1Byb2Nlc3MsIFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlJiBjaGFsbGVuZ2UsIGNvbnN0IFN0cmluZyYgcGFydGl0aW9uLCB1aW50NjRfdCB0YXNrSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlRGlzcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkNyZWRlbnRpYWwmKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKICB7CiAgICAgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UgYXV0
aGVudGljYXRpb25DaGFsbGVuZ2UgeyBjaGFsbGVuZ2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nlc3NJT1MubW0KaW5kZXggYTFlMDkx
NDJiOGIzYTM0YTI3MGYzYmY1MGY5NjBhMTZkZTcxNTc5Yy4uOGYxY2ZkZmU1NzFkNzQ5YTE5Nzg0
MGZhOWIwNTAwMjI1MjIzYmIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9pb3MvTmV0d29ya1Byb2Nlc3NJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nlc3NJT1MubW0KQEAgLTU3LDExICs1Nyw2IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJ
bml0aWFsaXphdGlvblBhcmFtCiB7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmFsbG93U3Bl
Y2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUlu
Zm8mIGNlcnRpZmljYXRlSW5mbywgY29uc3QgU3RyaW5nJiBob3N0KQotewotICAgIFtOU1VSTFJl
cXVlc3Qgc2V0QWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlOihOU0FycmF5ICopY2VydGlm
aWNhdGVJbmZvLmNlcnRpZmljYXRlQ2hhaW4oKSBmb3JIb3N0Omhvc3RdOwotfQotCiB2b2lkIE5l
dHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3
b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICNpZiBFTkFCTEUo
U0VDX0lURU1fU0hJTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
bWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9t
YWMvTmV0d29ya1Byb2Nlc3NNYWMubW0KaW5kZXggMDdiYmUzMjZhZWM0YTY2ODA0OTI4ZjkwZWU4
NGM3OTdkNjYxMTMxMi4uYWMxZjdiNDBlMjBlZjZhNWI4ZGVkNzY1MWQzNDBkNzUwZDkwZDUzOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nl
c3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1By
b2Nlc3NNYWMubW0KQEAgLTc4LDExICs3OCw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRm
b3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpCiAj
ZW5kaWYKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlm
aWNhdGVGb3JIb3N0KGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJ
bmZvLCBjb25zdCBTdHJpbmcmIGhvc3QpCi17Ci0gICAgW05TVVJMUmVxdWVzdCBzZXRBbGxvd3NT
cGVjaWZpY0hUVFBTQ2VydGlmaWNhdGU6KF9fYnJpZGdlIE5TQXJyYXkgKiljZXJ0aWZpY2F0ZUlu
Zm8uY2VydGlmaWNhdGVDaGFpbigpIGZvckhvc3Q6KE5TU3RyaW5nICopaG9zdF07Ci19Ci0KIHZv
aWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KGNvbnN0IEF1eGlsaWFyeVByb2Nl
c3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIFNhbmRib3hJbml0aWFsaXph
dGlvblBhcmFtZXRlcnMmIHNhbmRib3hQYXJhbWV0ZXJzKQogewogICAgIC8vIE5lZWQgdG8gb3Zl
cmlkZSB0aGUgZGVmYXVsdCwgYmVjYXVzZSBzZXJ2aWNlIGhhcyBhIGRpZmZlcmVudCBidW5kbGUg
SUQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVy
cy5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAppbmRleCBi
MTgyYzU0ZWI3ODhkM2Q2OTgxNGFhODA3M2U0ZmYxYWE5ZjM5MmJkLi4xYTE3MDk5M2FlNmI1MWQ3
YWFjZWNiMTJiOTdlOWY5ODFlNjMwMDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L0FyZ3VtZW50Q29kZXJzLmgKQEAgLTQwNCwxNCArNDA0LDE2IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyLCBzaXpl
X3QgbWluCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVu
YW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFQsIGlubGluZUNh
cGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5Pj4gZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCiAgICAgewotICAgICAgICB1aW50NjRfdCBzaXplOwotICAgICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHNpemUpKQorICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBzaXplOwor
ICAgICAgICBkZWNvZGVyID4+IHNpemU7CisgICAgICAgIGlmICghc2l6ZSkKICAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICAgICAgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5
LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5PiB2ZWN0b3I7Ci0gICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgKnNpemU7ICsraSkgewogICAgICAgICAgICAgc3RkOjpvcHRpb25hbDxUPiBlbGVtZW50Owog
ICAgICAgICAgICAgZGVjb2RlciA+PiBlbGVtZW50OwogICAgICAgICAgICAgaWYgKCFlbGVtZW50
KQpAQCAtNDU4LDIxICs0NjAsMjMgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGlu
ZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+
CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVy
Zmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5Pj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAg
ewotICAgICAgICB1aW50NjRfdCBkZWNvZGVkU2l6ZTsKLSAgICAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShkZWNvZGVkU2l6ZSkpCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGRlY29k
ZWRTaXplOworICAgICAgICBkZWNvZGVyID4+IGRlY29kZWRTaXplOworICAgICAgICBpZiAoIWRl
Y29kZWRTaXplKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgICAgICBp
ZiAoIWlzSW5Cb3VuZHM8c2l6ZV90PihkZWNvZGVkU2l6ZSkpCiAgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogCi0gICAgICAgIGF1dG8gc2l6ZSA9IHN0YXRpY19jYXN0PHNpemVfdD4o
ZGVjb2RlZFNpemUpOworICAgICAgICBhdXRvIHNpemUgPSBzdGF0aWNfY2FzdDxzaXplX3Q+KCpk
ZWNvZGVkU2l6ZSk7CiAKICAgICAgICAgLy8gU2luY2Ugd2Uga25vdyB0aGUgdG90YWwgc2l6ZSBv
ZiB0aGUgZWxlbWVudHMsIHdlIGNhbiBhbGxvY2F0ZSB0aGUgdmVjdG9yIGluCiAgICAgICAgIC8v
IG9uZSBmZWxsIHN3b29wLiBCZWZvcmUgYWxsb2NhdGluZyB3ZSBtdXN0IGhvd2V2ZXIgbWFrZSBz
dXJlIHRoYXQgdGhlIGRlY29kZXIgYnVmZmVyCiAgICAgICAgIC8vIGlzIGJpZyBlbm91Z2guCi0g
ICAgICAgIGlmICghZGVjb2Rlci5idWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluPFQ+KHNpemUp
KQorICAgICAgICBpZiAoIWRlY29kZXIudGVtcGxhdGUgYnVmZmVySXNMYXJnZUVub3VnaFRvQ29u
dGFpbjxUPihzaXplKSkKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAg
IAogICAgICAgICBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWlu
Q2FwYWNpdHk+IHZlY3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IDMyNTMwZWYzYzAyNDQ0OTc5YWZj
MjY4ZGRkMGE5MTFiN2I4Y2MxODcuLmU3MmVmNjVmZTgxZmI3ZDA1YzA2N2JiNjg4ZTk1MjFhNGRj
MzJjNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtNjUwLDcgKzY1MCwxMiBAQCBzdGF0aWMgVmVjdG9y
PFdlYktpdDo6V2Vic2l0ZURhdGFSZWNvcmQ+IHRvV2Vic2l0ZURhdGFSZWNvcmRzKE5TQXJyYXkg
KmRhdGFSZWNvcgogCiAtICh2b2lkKV9hbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW46KE5TQXJyYXkg
KiljZXJ0aWZpY2F0ZUNoYWluIGZvckhvc3Q6KE5TU3RyaW5nICopaG9zdAogewotICAgIF93ZWJz
aXRlRGF0YVN0b3JlLT5hbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoV2ViS2l0
OjpXZWJDZXJ0aWZpY2F0ZUluZm86OmNyZWF0ZShXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8oKF9f
YnJpZGdlIENGQXJyYXlSZWYpY2VydGlmaWNhdGVDaGFpbikpLnB0cigpLCBob3N0KTsKKyAgICBf
d2Vic2l0ZURhdGFTdG9yZS0+YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KFdl
YkNvcmU6OkNlcnRpZmljYXRlSW5mbygoX19icmlkZ2UgQ0ZBcnJheVJlZiljZXJ0aWZpY2F0ZUNo
YWluKSwgaG9zdCk7Cit9CisKKy0gKHZvaWQpX2FsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxv
Y2FsUENNVGVzdGluZzooTlNBcnJheSAqKWNlcnRpZmljYXRlQ2hhaW4KK3sKKyAgICBfd2Vic2l0
ZURhdGFTdG9yZS0+YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKFdl
YkNvcmU6OkNlcnRpZmljYXRlSW5mbygoX19icmlkZ2UgQ0ZBcnJheVJlZiljZXJ0aWZpY2F0ZUNo
YWluKSk7CiB9CiAKIC0gKHZvaWQpX2FwcEJvdW5kRG9tYWluczoodm9pZCAoXikoTlNBcnJheTxO
U1N0cmluZyAqPiAqKSljb21wbGV0aW9uSGFuZGxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgK
aW5kZXggZWNjNjBmNzUxN2UzZDEwOGFkNzYyNWJiN2JkOGZmYjNjMjRiM2Q1Ny4uMTAwMDU5M2I3
NThmYWY4NTFjMmYxMjY3M2M4NjMzNmIyNjdhNjI2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0
ZS5oCkBAIC04NCw2ICs4NCw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tX
ZWJzaXRlRGF0YVN0b3JlRmV0Y2hPcHRpb25zKSB7CiArICh2b2lkKV9zZXRDYWNoZWRQcm9jZXNz
U3VzcGVuc2lvbkRlbGF5Rm9yVGVzdGluZzooZG91YmxlKWRlbGF5SW5TZWNvbmRzIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC0gKHZvaWQp
X2FsbG93VExTQ2VydGlmaWNhdGVDaGFpbjooTlNBcnJheSAqKWNlcnRpZmljYXRlQ2hhaW4gZm9y
SG9zdDooTlNTdHJpbmcgKilob3N0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygx
NS4wKSk7CistICh2b2lkKV9hbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3Rp
bmc6KE5TQXJyYXkgKiljZXJ0aWZpY2F0ZUNoYWluIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC0gKHZvaWQpX3JlbmFtZU9yaWdpbjooTlNV
UkwgKilvbGROYW1lIHRvOihOU1VSTCAqKW5ld05hbWUgZm9yRGF0YU9mVHlwZXM6KE5TU2V0PE5T
U3RyaW5nICo+ICopZGF0YVR5cGVzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSlj
b21wbGV0aW9uSGFuZGxlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcAppbmRleCBiZDJkNGQyMDIwNmY4Yjg2ZmU0Y2Qx
YWM5MGQ5MGI3OWMzNDhlZDlkLi4xYmM1MWRkMWVkM2IxMTg1ZWQ3MjY1NTU5YmIxZDNhZWQ5Nzkw
MjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRX
ZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRXZWJDb250ZXh0LmNwcApAQCAtMTYyMyw5ICsxNjIzLDkgQEAgdm9pZCB3ZWJraXRfd2ViX2Nv
bnRleHRfYWxsb3dfdGxzX2NlcnRpZmljYXRlX2Zvcl9ob3N0KFdlYktpdFdlYkNvbnRleHQqIGNv
bnRleHQKICAgICBnX3JldHVybl9pZl9mYWlsKEdfSVNfVExTX0NFUlRJRklDQVRFKGNlcnRpZmlj
YXRlKSk7CiAgICAgZ19yZXR1cm5faWZfZmFpbChob3N0KTsKIAotICAgIGF1dG8gd2ViQ2VydGlm
aWNhdGVJbmZvID0gV2ViQ2VydGlmaWNhdGVJbmZvOjpjcmVhdGUoV2ViQ29yZTo6Q2VydGlmaWNh
dGVJbmZvKGNlcnRpZmljYXRlLCBzdGF0aWNfY2FzdDxHVGxzQ2VydGlmaWNhdGVGbGFncz4oMCkp
KTsKKyAgICBhdXRvIGNlcnRpZmljYXRlSW5mbyA9IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyhj
ZXJ0aWZpY2F0ZSwgc3RhdGljX2Nhc3Q8R1Rsc0NlcnRpZmljYXRlRmxhZ3M+KDApKTsKICAgICBh
dXRvJiB3ZWJzaXRlRGF0YVN0b3JlID0gd2Via2l0V2Vic2l0ZURhdGFNYW5hZ2VyR2V0RGF0YVN0
b3JlKGNvbnRleHQtPnByaXYtPndlYnNpdGVEYXRhTWFuYWdlci5nZXQoKSk7Ci0gICAgd2Vic2l0
ZURhdGFTdG9yZS5hbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3Qod2ViQ2VydGlm
aWNhdGVJbmZvLnB0cigpLCBTdHJpbmc6OmZyb21VVEY4KGhvc3QpKTsKKyAgICB3ZWJzaXRlRGF0
YVN0b3JlLmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjZXJ0aWZpY2F0ZUlu
Zm8sIFN0cmluZzo6ZnJvbVVURjgoaG9zdCkpOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5k
ZXggMzUzMmUwZDc2OGFkNGI4M2ZiZjViMTAxYTc0MWQ3ZjViMDQwMWI1Ny4uM2RhNmMxMTZiOTM2
ODhkMWJhYzczZDdlNmQ5ZDQ5OWUwNDQxMmFmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTE2NzIs
OSArMTY3MiwxNCBAQCBzdGF0aWMgU3RyaW5nIGNvbXB1dGVNZWRpYUtleUZpbGUoY29uc3QgU3Ry
aW5nJiBtZWRpYUtleURpcmVjdG9yeSkKICAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBw
ZW5kaW5nQ29tcG9uZW50KG1lZGlhS2V5RGlyZWN0b3J5LCAiU2VjdXJlU3RvcC5wbGlzdCIpOwog
fQogCi12b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRl
Rm9ySG9zdChjb25zdCBXZWJDZXJ0aWZpY2F0ZUluZm8qIGNlcnRpZmljYXRlLCBjb25zdCBTdHJp
bmcmIGhvc3QpCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRp
ZmljYXRlRm9ySG9zdChjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRl
LCBjb25zdCBTdHJpbmcmIGhvc3QpCiB7Ci0gICAgbmV0d29ya1Byb2Nlc3MoKS5zZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzczo6QWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0
KGNlcnRpZmljYXRlLT5jZXJ0aWZpY2F0ZUluZm8oKSwgaG9zdCksIDApOworICAgIG5ldHdvcmtQ
cm9jZXNzKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkFsbG93U3BlY2lmaWNIVFRQ
U0NlcnRpZmljYXRlRm9ySG9zdChjZXJ0aWZpY2F0ZSwgaG9zdCksIDApOworfQorCit2b2lkIFdl
YnNpdGVEYXRhU3RvcmU6OmFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGlu
Zyhjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlKQoreworICAgIG5l
dHdvcmtQcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkFsbG93VExTQ2Vy
dGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhzZXNzaW9uSUQoKSwgY2VydGlmaWNhdGUp
LCAwKTsKIH0KIAogVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gV2Vic2l0ZURh
dGFTdG9yZTo6bWVkaWFLZXlPcmlnaW5zKGNvbnN0IFN0cmluZyYgbWVkaWFLZXlzU3RvcmFnZURp
cmVjdG9yeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCAwMjY4NzMxNWI2Yjk1MzAwMjYyM2UwMTk1Nzc0MmU5
NTZjZWRmZjQwLi4xNjFjZGU2YTE3MWJjYjMwMWVkZDhiOWUzY2Q0YWUyNmJhZDUxZmI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5oCkBAIC03Miw2ICs3Miw3IEBAIGNsYXNzIEhUVFBDb29raWVTdG9yZTsKIH0KIAog
bmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ2VydGlmaWNhdGVJbmZvOwogY2xhc3MgUmVnaXN0
cmFibGVEb21haW47CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIApAQCAtODUsNyArODYsNiBAQCBj
bGFzcyBTZWNLZXlQcm94eVN0b3JlOwogY2xhc3MgRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2U7CiBj
bGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5OwogY2xhc3MgU09BdXRob3JpemF0aW9uQ29vcmRpbmF0
b3I7Ci1jbGFzcyBXZWJDZXJ0aWZpY2F0ZUluZm87CiBjbGFzcyBXZWJQYWdlUHJveHk7CiBjbGFz
cyBXZWJQcm9jZXNzUG9vbDsKIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKQEAgLTI2Miw3ICsyNjIs
OCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCBzZXRDYWNoZWRQcm9jZXNzU3VzcGVuc2lv
bkRlbGF5Rm9yVGVzdGluZyhTZWNvbmRzKTsKIAotICAgIHZvaWQgYWxsb3dTcGVjaWZpY0hUVFBT
Q2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFdlYkNlcnRpZmljYXRlSW5mbyosIGNvbnN0IFN0cmlu
ZyYgaG9zdCk7CisgICAgdm9pZCBhbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3Qo
Y29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiwgY29uc3QgU3RyaW5nJiBob3N0KTsKKyAg
ICB2b2lkIGFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhjb25zdCBX
ZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mKTsKIAogICAgIERldmljZUlkSGFzaFNhbHRTdG9yYWdl
JiBkZXZpY2VJZEhhc2hTYWx0U3RvcmFnZSgpIHsgcmV0dXJuIG1fZGV2aWNlSWRIYXNoU2FsdFN0
b3JhZ2UuZ2V0KCk7IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437832</attachid>
            <date>2021-09-09 20:52:11 -0700</date>
            <delta_ts>2021-09-09 22:54:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230137-20210909205210.patch</filename>
            <type>text/plain</type>
            <size>37773</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFmMGM5NzIwMmIwOWVjYzky
NjhjNjdjZjZhNjFmOWFkYjc1Mjc5YTMuLmUwZWFmODEyYTA3OWZjNGQ1NTUyNDQ3MGEyYjE0Y2Yy
YjBiYjNjZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMjEtMDktMDkgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgaW5mcmFz
dHJ1Y3R1cmUgdG8gYWxsb3cgVExTIGR1cmluZyBQQ00gdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDEzNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHdlcmUgdXNpbmcgTmV0d29ya1Nlc3Np
b25Db2NvYTo6YWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdCBidXQgdGhhdCBk
b2Vzbid0IHdvcmsgd2hlbiB3ZSBhcmUgaW4gYSBkYWVtb24sCisgICAgICAgIHdoZXJlIHRoZXJl
IGlzIG5vIE5ldHdvcmtTZXNzaW9uIG9yIE5ldHdvcmtTZXNzaW9uQ29jb2EuICBXZSBuZWVkZWQg
YSBuZXcgU1BJIGZvciBzZXR0aW5nIHRoZSB0ZXN0IFRMUyBjZXJ0aWZpY2F0ZXMgd2hlcmV2ZXIK
KyAgICAgICAgdGhlIG5ldHdvcmtpbmcgaXMgYmVpbmcgZG9uZS4KKworICAgICAgICBJIGFsc28g
Zm91bmQgdGhhdCB3ZSB3ZXJlIHVubmVjZXNzYXJpbHkgcGluZ2luZyBleGFtcGxlLmNvbSB3aGVu
IHJ1bm5pbmcgdGhlc2UgdW5pdCB0ZXN0cy4gIEkgYWRkZWQgYW4gZWFybHkgcmV0dXJuIHRvIHBy
ZXZlbnQgdGhhdAorICAgICAgICB3aGVuIHJ1bm5pbmcgdGVzdHMgd2l0aCBhIGxvY2FsIHNlcnZl
ci4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9y
V2ViU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFsbG93VExTQ2Vy
dGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lv
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjphbGxvd1RMU0NlcnRpZmlj
YXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtTZXNzaW9uLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjphbGxvd1RMU0NlcnRpZmljYXRl
Q2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6
bWVzc2FnZVR5cGVTZW5kc1JlcGx5KToKKyAgICAgICAgKFdlYktpdDo6UENNOjpkZWNvZGVNZXNz
YWdlQW5kU2VuZFRvTWFuYWdlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmg6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpQQ006
Ok1hbmFnZXJQcm94eTo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5n
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29y
a0xvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6TmV0d29ya0xvYWRlcjo6YWxsb3dU
TFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5l
dHdvcmtMb2FkZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJDb2NvYS5t
bToKKyAgICAgICAgKGFsbG93ZWRMb2NhbFRlc3RDZXJ0aWZpY2F0ZUNoYWluKToKKyAgICAgICAg
KGhhc0FsbG93ZWRMb2NhbFRlc3RDZXJ0aWZpY2F0ZUNoYWluKToKKyAgICAgICAgKC1bV0tOZXR3
b3JrU2Vzc2lvbkRlbGVnYXRlQWxsb3dpbmdPbmx5Tm9uUmVkaXJlY3RlZEpTT04gVVJMU2Vzc2lv
bjp0YXNrOmRpZFJlY2VpdmVDaGFsbGVuZ2U6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAg
IChXZWJLaXQ6OlBDTTo6TmV0d29ya0xvYWRlcjo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9y
TG9jYWxQQ01UZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6UENNOjpOZXR3b3JrTG9hZGVyOjpz
dGFydCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2Nv
YS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFsbG93U3BlY2lmaWNIVFRQ
U0NlcnRpZmljYXRlRm9ySG9zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjph
bGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nlc3NNYWMubW06
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0
aWZpY2F0ZUZvckhvc3QpOiBEZWxldGVkLgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVu
dENvZGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0
b3JlLm1tOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2FsbG93VExTQ2VydGlmaWNh
dGVDaGFpbjpmb3JIb3N0Ol0pOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2FsbG93
VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZzpdKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHA6CisgICAgICAgICh3ZWJraXRf
d2ViX2NvbnRleHRfYWxsb3dfdGxzX2NlcnRpZmljYXRlX2Zvcl9ob3N0KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYnNpdGVEYXRhU3RvcmU6OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9z
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OmFsbG93VExTQ2VydGlmaWNh
dGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKwogMjAyMS0wOS0wOSAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCBkYWVtb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHAKaW5kZXggODY1YWQzMGM1OTcwZGQ2ZTE4Mjc2YWY0N2E4MzhkYjk2Nzk1MzYx
YS4uNDZiNWQ3ODU2YTcyN2Q0Y2U3OGJmMGI3OWZiNWQ4ZTgzOTM5N2Y2YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTIxNjgsMTAg
KzIxNjgsMTggQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVs
IGNhY2hlTW9kZWwpCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldEFsbG93c0FueVNTTENlcnRp
ZmljYXRlRm9yV2ViU29ja2V0KGJvb2wgYWxsb3dzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisgICAgLy8gRklYTUU6IFN0b3AgdXNpbmcgdGhpcyB3
aGVuIEhBVkUoTlNVUkxTRVNTSU9OX1dFQlNPQ0tFVCkgaXMgdHJ1ZS4KICAgICBEZXByZWNhdGVk
R2xvYmFsU2V0dGluZ3M6OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGFsbG93cyk7CiAgICAg
Y29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAorI2lmICFQTEFURk9STShDT0NPQSkKK3ZvaWQgTmV0
d29ya1Byb2Nlc3M6OmFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhQ
QUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJikKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorI2VuZGlmCisKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmxvZ0Rp
YWdub3N0aWNNZXNzYWdlKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgU2hvdWxkU2Ft
cGxlIHNob3VsZFNhbXBsZSkKIHsKICAgICBpZiAoIURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpz
aG91bGRMb2dBZnRlclNhbXBsaW5nKHNob3VsZFNhbXBsZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggMzQ1NTY0NzYyMTVmNjlkZDZiYWY0
Njc4YmQ3NDk0NDlmYWViYjNlYy4uMjhjYmZmNWQ0MTAzOGVhN2ZkZmI4MGQ0N2I2NGM2MmNjMDFk
ZTRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aApAQCAtNDUwLDggKzQ1MCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsKENh
Y2hlTW9kZWwpOwogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbFN5bmNocm9ub3VzbHlGb3JUZXN0aW5n
KENhY2hlTW9kZWwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBhbGxv
d1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNh
dGVJbmZvJiwgY29uc3QgU3RyaW5nJiBob3N0KTsKKyAgICB2b2lkIGFsbG93VExTQ2VydGlmaWNh
dGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6
Q2VydGlmaWNhdGVJbmZvJik7CiAgICAgdm9pZCBzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZv
cldlYlNvY2tldChib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIAorCiAg
ICAgdm9pZCBmbHVzaENvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CiAKICAgICB2b2lkIGFkZFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyhQQUw6OlNl
c3Npb25JRCwgV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJz
JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggOWI2MjEzM2IwNWY4MzQ3YzI1ODMwNWY0MWZiYjc3Nzc0
OTBhNDBmOS4uNTE4MGM4Mjk2NTBhZDU2ZTBiMWVmZDNiYzQ1MjBjYmYzMWEyOTczMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1l
c3NhZ2VzLmluCkBAIC02Niw2ICs2Niw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExl
Z2FjeVJlY2VpdmVyIHsKICAgICBGbHVzaENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KSAtPiAoKSBBc3luYwogCiAgICAgQWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0
KFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZSwgU3RyaW5nIGhvc3QpCisgICAg
QWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvIGNlcnRpZmljYXRlKQogCiAgICAg
U2V0Q2FjaGVNb2RlbChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpDYWNoZU1vZGVsIGNhY2hlTW9kZWwp
CiAgICAgU2V0Q2FjaGVNb2RlbFN5bmNocm9ub3VzbHlGb3JUZXN0aW5nKGVudW06dWludDhfdCBX
ZWJLaXQ6OkNhY2hlTW9kZWwgY2FjaGVNb2RlbCkgLT4gKCkgU3luY2hyb25vdXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKaW5kZXggZGZkZTc4
ZGE2MWQ5YmZhOGEzYzVhNGMxYzhjYTk3YTAyZTM1M2ZiOC4uNzNiODY0ODc3M2NiNzIyMDhhN2Qw
YmVjOGMyNWU3YTlhYjczOTQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTM5MCw2ICszOTAsMTEgQEAgdm9pZCBOZXR3b3JrU2Vz
c2lvbjo6ZmlyZVByaXZhdGVDbGlja01lYXN1cmVtZW50VGltZXJJbW1lZGlhdGVseUZvclRlc3Rp
bmcoKQogICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50KCkuc3RhcnRUaW1lckltbWVkaWF0ZWx5
Rm9yVGVzdGluZygpOwogfQogCit2b2lkIE5ldHdvcmtTZXNzaW9uOjphbGxvd1RMU0NlcnRpZmlj
YXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoVmVjdG9yPHVpbnQ4X3Q+JiYgZW5jb2RlZENlcnRp
ZmljYXRlKQoreworICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50KCkuYWxsb3dUTFNDZXJ0aWZp
Y2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKFdURk1vdmUoZW5jb2RlZENlcnRpZmljYXRlKSk7
Cit9CisKIHZvaWQgTmV0d29ya1Nlc3Npb246OmFkZEtlcHRBbGl2ZUxvYWQoUmVmPE5ldHdvcmtS
ZXNvdXJjZUxvYWRlcj4mJiBsb2FkZXIpCiB7CiAgICAgQVNTRVJUKG1fc2Vzc2lvbklEID09IGxv
YWRlci0+c2Vzc2lvbklEKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbi5oCmluZGV4IGQ4YWFiM2RiYTQ5Yjc2N2YzZWYwOTk0YmYyY2JlOTUxZmE0MTY3
MjguLmI1N2E3YTk0ZGVmYWVmZTI5NDAxZGE0NzgzZDY5YWExMjljOGNiYTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKQEAgLTEzNyw2ICsxMzcs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVwaGVtZXJh
bE1lYXN1cmVtZW50Rm9yVGVzdGluZyhib29sKTsKICAgICB2b2lkIHNldFBDTUZyYXVkUHJldmVu
dGlvblZhbHVlc0ZvclRlc3RpbmcoU3RyaW5nJiYgdW5saW5rYWJsZVRva2VuLCBTdHJpbmcmJiBz
ZWNyZXRUb2tlbiwgU3RyaW5nJiYgc2lnbmF0dXJlLCBTdHJpbmcmJiBrZXlJRCk7CiAgICAgdm9p
ZCBmaXJlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUaW1lckltbWVkaWF0ZWx5Rm9yVGVzdGluZygp
OworICAgIHZvaWQgYWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKFZl
Y3Rvcjx1aW50OF90PiYmKTsKIAogICAgIHZvaWQgYWRkS2VwdEFsaXZlTG9hZChSZWY8TmV0d29y
a1Jlc291cmNlTG9hZGVyPiYmKTsKICAgICB2b2lkIHJlbW92ZUtlcHRBbGl2ZUxvYWQoTmV0d29y
a1Jlc291cmNlTG9hZGVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAKaW5kZXggNWIxNTk5ZjAzNzhj
ZTYzNWUzZGZjY2JlOGYyYzZjY2JjMWM1YmI4ZS4uZDBmZmZjY2YwYTJmNzYwMjdhZGM1NGExN2Rj
MDM2NzhmOGNlYjYyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcApAQCAtNTQ4LDQgKzU0OCw5IEBA
IHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpkZXN0cm95U3RvcmVGb3JUZXN0
aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvCiAgICAgfSk7CiB9CiAKK3ZvaWQgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRNYW5hZ2VyOjphbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRl
c3RpbmcoVmVjdG9yPHVpbnQ4X3Q+JiYgZW5jb2RlZENlcnRpZmljYXRlKQoreworICAgIFBDTTo6
TmV0d29ya0xvYWRlcjo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5n
KFdURk1vdmUoZW5jb2RlZENlcnRpZmljYXRlKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyLmgKaW5kZXggMjZlN2M1NTkxNDQ3ZmViZjU3ODUxZWFlNWQyZTBmNDZk
OWJlZTAxZi4uZjE0MGJlMjRmNDIwZGFmMzliYjE3NzI4N2I3YzQ2ZGQxODE5MGFmMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlci5oCkBAIC02Miw2ICs2Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFBDTUZy
YXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoU3RyaW5nJiYgdW5saW5rYWJsZVRva2VuLCBT
dHJpbmcmJiBzZWNyZXRUb2tlbiwgU3RyaW5nJiYgc2lnbmF0dXJlLCBTdHJpbmcmJiBrZXlJRCkg
ZmluYWw7CiAgICAgdm9pZCBzdGFydFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nKCkgZmluYWw7
CiAgICAgdm9pZCBkZXN0cm95U3RvcmVGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJikgZmluYWw7CisgICAgdm9pZCBhbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBD
TVRlc3RpbmcoVmVjdG9yPHVpbnQ4X3Q+JiYpIGZpbmFsOwogCiBwcml2YXRlOgogICAgIFBDTTo6
U3RvcmUmIHN0b3JlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcklu
dGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHAKaW5k
ZXggZDcyYWZkOWU0NTBmODVhN2ZhNDE0OWFhNjgzYThjMzM5MjhlNzk0MC4uN2RmYzllZDFkMjEx
MWY1NDhhMTNjNjQ4MzM5NGE5ODExZDMxY2QxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
SW50ZXJmYWNlLmNwcApAQCAtMTE0LDYgKzExNCwxMCBAQCBBUkdVTUVOVFMoKQogUkVQTFkoKQog
RU5ECiAKK0ZVTkNUSU9OKGFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGlu
ZykKK0FSR1VNRU5UUyhWZWN0b3I8dWludDhfdD4pCitFTkQKKwogI3VuZGVmIEZVTkNUSU9OCiAj
dW5kZWYgQVJHVU1FTlRTCiAjdW5kZWYgUkVQTFkKQEAgLTE0OSw2ICsxNTMsNyBAQCBib29sIG1l
c3NhZ2VUeXBlU2VuZHNSZXBseShNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSkKICAgICBjYXNlIE1l
c3NhZ2VUeXBlOjpTZXRFcGhlbWVyYWxNZWFzdXJlbWVudEZvclRlc3Rpbmc6CiAgICAgY2FzZSBN
ZXNzYWdlVHlwZTo6U2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZzoKICAgICBj
YXNlIE1lc3NhZ2VUeXBlOjpTdGFydFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nOgorICAgIGNh
c2UgTWVzc2FnZVR5cGU6OkFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGlu
ZzoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGNhc2UgTWVzc2FnZVR5cGU6Ok1hcmtBdHRy
aWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZzoKICAgICBj
YXNlIE1lc3NhZ2VUeXBlOjpEZXN0cm95U3RvcmVGb3JUZXN0aW5nOgpAQCAtMjUwLDYgKzI1NSw5
IEBAIHZvaWQgZGVjb2RlTWVzc2FnZUFuZFNlbmRUb01hbmFnZXIoTWVzc2FnZVR5cGUgbWVzc2Fn
ZVR5cGUsIFZlY3Rvcjx1aW50OF90PiYmIGVuCiAgICAgY2FzZSBQQ006Ok1lc3NhZ2VUeXBlOjpE
ZXN0cm95U3RvcmVGb3JUZXN0aW5nOgogICAgICAgICBoYW5kbGVQQ01NZXNzYWdlV2l0aFJlcGx5
PE1lc3NhZ2VJbmZvOjpkZXN0cm95U3RvcmVGb3JUZXN0aW5nPihXVEZNb3ZlKGVuY29kZWRNZXNz
YWdlKSwgV1RGTW92ZShyZXBseVNlbmRlcikpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFBD
TTo6TWVzc2FnZVR5cGU6OkFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGlu
ZzoKKyAgICAgICAgaGFuZGxlUENNTWVzc2FnZTxNZXNzYWdlSW5mbzo6YWxsb3dUTFNDZXJ0aWZp
Y2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nPihXVEZNb3ZlKGVuY29kZWRNZXNzYWdlKSk7Cisg
ICAgICAgIGJyZWFrOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXJJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNl
LmgKaW5kZXggYTI5MmZhOWYwOTU1YjNlMDIyNDQ2NTAzNzFlZGI0OTM5YzA3MWZhZS4uNWRiNjRi
ODMyNjU5YWViODdlYzIwNmI4NmRjM2FmNGVkYTQ3N2RiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlckludGVyZmFjZS5oCkBAIC02NCw2ICs2NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgc2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhTdHJpbmcmJiB1bmxpbmth
YmxlVG9rZW4sIFN0cmluZyYmIHNlY3JldFRva2VuLCBTdHJpbmcmJiBzaWduYXR1cmUsIFN0cmlu
ZyYmIGtleUlEKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0VGltZXJJbW1lZGlhdGVseUZv
clRlc3RpbmcoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lTdG9yZUZvclRlc3Rpbmco
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFsbG93
VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhWZWN0b3I8dWludDhfdD4mJikg
PSAwOwogfTsKIAogY29uc3RleHByIGNvbnN0IGNoYXIqIHByb3RvY29sVmVyc2lvbktleSB7ICJ2
ZXJzaW9uIiB9OwpAQCAtODcsNiArODgsNyBAQCBlbnVtIGNsYXNzIE1lc3NhZ2VUeXBlIDogdWlu
dDhfdCB7CiAgICAgU2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZywKICAgICBT
dGFydFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nLAogICAgIERlc3Ryb3lTdG9yZUZvclRlc3Rp
bmcsCisgICAgQWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nCiB9Owog
CiBjb25zdGV4cHIgY29uc3QgY2hhciogcHJvdG9jb2xFbmNvZGVkTWVzc2FnZUtleSB7ICJlbmNv
ZGVkIG1lc3NhZ2UiIH07CkBAIC0xMTksNyArMTIxLDggQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51
bVRyYWl0czxXZWJLaXQ6OlBDTTo6TWVzc2FnZVR5cGU+IHsKICAgICAgICAgV2ViS2l0OjpQQ006
Ok1lc3NhZ2VUeXBlOjpTZXRFcGhlbWVyYWxNZWFzdXJlbWVudEZvclRlc3RpbmcsCiAgICAgICAg
IFdlYktpdDo6UENNOjpNZXNzYWdlVHlwZTo6U2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9y
VGVzdGluZywKICAgICAgICAgV2ViS2l0OjpQQ006Ok1lc3NhZ2VUeXBlOjpTdGFydFRpbWVySW1t
ZWRpYXRlbHlGb3JUZXN0aW5nLAotICAgICAgICBXZWJLaXQ6OlBDTTo6TWVzc2FnZVR5cGU6OkRl
c3Ryb3lTdG9yZUZvclRlc3RpbmcKKyAgICAgICAgV2ViS2l0OjpQQ006Ok1lc3NhZ2VUeXBlOjpE
ZXN0cm95U3RvcmVGb3JUZXN0aW5nLAorICAgICAgICBXZWJLaXQ6OlBDTTo6TWVzc2FnZVR5cGU6
OkFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZwogICAgID47CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDNjYWU0ZTRmZjU4Y2I2MWY1NWY1
YjUxOTViYTVlM2QwYmE4ZGJkZDMuLmVhMTZjMmU2Y2FjZDA0ODg4MDc3NjY2NjhmMmE0MWM0OGMz
NzcyYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwCkBAIC0xNTEsNiArMTUxLDEx
IEBAIHZvaWQgTWFuYWdlclByb3h5OjpkZXN0cm95U3RvcmVGb3JUZXN0aW5nKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uCiAgICAgc2VuZE1lc3NhZ2VXaXRoUmVwbHk8TWVz
c2FnZVR5cGU6OkRlc3Ryb3lTdG9yZUZvclRlc3Rpbmc+KFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKIH0KIAordm9pZCBNYW5hZ2VyUHJveHk6OmFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZv
ckxvY2FsUENNVGVzdGluZyhWZWN0b3I8dWludDhfdD4mJiBlbmNvZGVkQ2VydGlmaWNhdGUpCit7
CisgICAgc2VuZE1lc3NhZ2U8TWVzc2FnZVR5cGU6OkFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZv
ckxvY2FsUENNVGVzdGluZz4oV1RGTW92ZShlbmNvZGVkQ2VydGlmaWNhdGUpKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgUENNCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXJQcm94eS5oCmluZGV4IDhjZDQxMTk5NGI0YjA2ZjBmNmI1ZDk5MTVmMmYyY2RmYWNhOTZlNmYu
LjA4NjczMzgyMDExZDRmZTJkOWRmYWI5NzRkY2Q1MzE1ZTQyMmZjY2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50
TWFuYWdlclByb3h5LmgKQEAgLTUyLDYgKzUyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UENN
RnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhTdHJpbmcmJiB1bmxpbmthYmxlVG9rZW4s
IFN0cmluZyYmIHNlY3JldFRva2VuLCBTdHJpbmcmJiBzaWduYXR1cmUsIFN0cmluZyYmIGtleUlE
KSBmaW5hbDsKICAgICB2b2lkIHN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcoKSBmaW5h
bDsKICAgICB2b2lkIGRlc3Ryb3lTdG9yZUZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKSBmaW5hbDsKKyAgICB2b2lkIGFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2Fs
UENNVGVzdGluZyhWZWN0b3I8dWludDhfdD4mJikgZmluYWw7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBQQ00KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyLmNwcAppbmRleCA0NWEwNWVlMWFiMzZl
ZTFhN2Q4NDQ3N2ZmYTExNjQ0YjU5ODhmOThhLi4yZDM0MDI1NjkzYThmNDFhNzhkYmYwNTFjNjZl
ZDVkNjQ1YWZmOWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1By
aXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuY3BwCkBAIC0zOCw2
ICszOCwxMiBAQCB2b2lkIE5ldHdvcmtMb2FkZXI6OnN0YXJ0KFVSTCYmLCBSZWZQdHI8SlNPTjo6
T2JqZWN0PiYmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudAogICAgIG5vdEltcGxlbWVudGVkKCk7
CiAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9LCB7IH0sIHsgfSk7CiB9CisKK3ZvaWQgTmV0d29y
a0xvYWRlcjo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKFZlY3Rv
cjx1aW50OF90PiYmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKICNlbmRpZgogCiB9
IC8vIG5hbWVzcGFjZSBQQ00KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3Jr
TG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlci5oCmluZGV4IDMwMzMw
NzdhNWY5NDNjNDY2ZTY0YWIxNjc0MjUxNzNkYjA1NDFlY2QuLjUzNWUyNmViOWE0NDdhYTczNTRl
ZjM2ZTc1ZjM1NmI3YTQ0MjY0ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3
b3JrTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuaApAQCAt
NDIsNiArNDIsNyBAQCBjbGFzcyBOZXR3b3JrTG9hZGVyIHsKIHB1YmxpYzoKICAgICB1c2luZyBD
YWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZWZQdHI8SlNP
Tjo6T2JqZWN0PiYpPjsKICAgICBzdGF0aWMgdm9pZCBzdGFydChVUkwmJiwgUmVmUHRyPEpTT046
Ok9iamVjdD4mJiwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlBjbURhdGFDYXJy
aWVkLCBDYWxsYmFjayYmKTsKKyAgICBzdGF0aWMgdm9pZCBhbGxvd1RMU0NlcnRpZmljYXRlQ2hh
aW5Gb3JMb2NhbFBDTVRlc3RpbmcoVmVjdG9yPHVpbnQ4X3Q+JiYpOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgUENNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xv
YWRlckNvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJDb2Nv
YS5tbQppbmRleCA3ZWEwZTgxYmMxOWQ5YTUwNTYwNjQwZjFkYWNlMjU0MGIyMWY1ZjZmLi40MTU2
OWFiNGZlZjJiNGJhZmU0ODExNzc1ODQ5YjY3YmMyYzA4YjY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L2NvY29hL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyQ29jb2EubW0KQEAgLTI3LDEyICsyNywzMSBAQAog
I2ltcG9ydCAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyLmgiCiAKICNpbXBv
cnQgIk5ldHdvcmtEYXRhVGFza0NvY29hLmgiCi0jaW1wb3J0ICJOZXR3b3JrU2Vzc2lvbkNvY29h
LmgiCiAjaW1wb3J0IDxXZWJDb3JlL0hUVFBIZWFkZXJWYWx1ZXMuaD4KICNpbXBvcnQgPFdlYkNv
cmUvTUlNRVR5cGVSZWdpc3RyeS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEku
aD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCitzdGF0aWMgUmV0YWluUHRyPENG
QXJyYXlSZWY+JiBhbGxvd2VkTG9jYWxUZXN0Q2VydGlmaWNhdGVDaGFpbigpCit7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFJldGFpblB0cjxDRkFycmF5UmVmPj4gY2VydGlmaWNhdGU7Cisg
ICAgcmV0dXJuIGNlcnRpZmljYXRlLmdldCgpOworfQorCitzdGF0aWMgYm9vbCBoYXNBbGxvd2Vk
TG9jYWxUZXN0Q2VydGlmaWNhdGVDaGFpbihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICpj
aGFsbGVuZ2UpCit7CisgICAgaWYgKCFbY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZS5ob3N0IGlz
RXF1YWxUb1N0cmluZzpAIjEyNy4wLjAuMSJdCisgICAgICAgIHx8ICFhbGxvd2VkTG9jYWxUZXN0
Q2VydGlmaWNhdGVDaGFpbigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgU2Vj
VHJ1c3RSZWYgdHJ1c3RSZWYgPSBudWxscHRyOworICAgIGlmIChTZWNUcnVzdENyZWF0ZVdpdGhD
ZXJ0aWZpY2F0ZXMoYWxsb3dlZExvY2FsVGVzdENlcnRpZmljYXRlQ2hhaW4oKS5nZXQoKSwgbnVs
bHB0ciwgJnRydXN0UmVmKSAhPSBub0VycikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIFJl
dGFpblB0cjxTZWNUcnVzdFJlZj4gdHJ1c3QgPSBhZG9wdENGKHRydXN0UmVmKTsKKworICAgIHJl
dHVybiBXZWJDb3JlOjpjZXJ0aWZpY2F0ZXNNYXRjaCh0cnVzdC5nZXQoKSwgY2hhbGxlbmdlLnBy
b3RlY3Rpb25TcGFjZS5zZXJ2ZXJUcnVzdCk7Cit9CisKIEBpbnRlcmZhY2UgV0tOZXR3b3JrU2Vz
c2lvbkRlbGVnYXRlQWxsb3dpbmdPbmx5Tm9uUmVkaXJlY3RlZEpTT04gOiBOU09iamVjdCA8TlNV
UkxTZXNzaW9uRGF0YURlbGVnYXRlPgogQGVuZAogCkBAIC01Miw5ICs3MSw4IEBACiAKIC0gKHZv
aWQpVVJMU2Vzc2lvbjooTlNVUkxTZXNzaW9uICopc2Vzc2lvbiB0YXNrOihOU1VSTFNlc3Npb25U
YXNrICopdGFzayBkaWRSZWNlaXZlQ2hhbGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlICopY2hhbGxlbmdlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1VSTFNlc3Npb25B
dXRoQ2hhbGxlbmdlRGlzcG9zaXRpb24gZGlzcG9zaXRpb24sIE5TVVJMQ3JlZGVudGlhbCAqY3Jl
ZGVudGlhbCkpY29tcGxldGlvbkhhbmRsZXIKIHsKLSAgICAvLyBGSVhNRTogQWRkIHBsdWJtaW5n
IHNvIHRoYXQgd2UgY2FuIHRlbGwgdGhlIGRhZW1vbiB3aGljaCBjZXJ0aWZpY2F0ZXMgdG8gYWNj
ZXB0IHdpdGhvdXQgdXNpbmcgTmV0d29ya1Nlc3Npb25Db2NvYS4KICAgICBpZiAoW2NoYWxsZW5n
ZS5wcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25NZXRob2QgaXNFcXVhbFRvU3RyaW5nOk5T
VVJMQXV0aGVudGljYXRpb25NZXRob2RTZXJ2ZXJUcnVzdF0KLSAgICAgICAgJiYgTmV0d29ya1Nl
c3Npb25Db2NvYTo6YWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjaGFsbGVu
Z2UpKQorICAgICAgICAmJiBoYXNBbGxvd2VkTG9jYWxUZXN0Q2VydGlmaWNhdGVDaGFpbihjaGFs
bGVuZ2UpKQogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoTlNVUkxTZXNzaW9uQXV0
aENoYWxsZW5nZVVzZUNyZWRlbnRpYWwsIFtOU1VSTENyZWRlbnRpYWwgY3JlZGVudGlhbEZvclRy
dXN0OmNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2Uuc2VydmVyVHJ1c3RdKTsKICAgICBjb21wbGV0
aW9uSGFuZGxlcihOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlUGVyZm9ybURlZmF1bHRIYW5kbGlu
ZywgbmlsKTsKIH0KQEAgLTg4LDggKzEwNiwxOCBAQCBzdGF0aWMgTlNVUkxTZXNzaW9uICpzdGF0
ZWxlc3NTZXNzaW9uV2l0aG91dFJlZGlyZWN0cygpCiAgICAgcmV0dXJuIHNlc3Npb24uZ2V0KCku
Z2V0KCk7CiB9CiAKK3ZvaWQgTmV0d29ya0xvYWRlcjo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWlu
Rm9yTG9jYWxQQ01UZXN0aW5nKFZlY3Rvcjx1aW50OF90PiYmIGVuY29kZWRDZXJ0aWZpY2F0ZSkK
K3sKKyAgICBhdXRvIGNlcnRpZmljYXRlID0gYWRvcHRDRihTZWNDZXJ0aWZpY2F0ZUNyZWF0ZVdp
dGhEYXRhKG51bGxwdHIsIGFkb3B0Q0YoQ0ZEYXRhQ3JlYXRlKG51bGxwdHIsIGVuY29kZWRDZXJ0
aWZpY2F0ZS5kYXRhKCksIGVuY29kZWRDZXJ0aWZpY2F0ZS5zaXplKCkpKS5nZXQoKSkpOworICAg
IGFsbG93ZWRMb2NhbFRlc3RDZXJ0aWZpY2F0ZUNoYWluKCkgPSAoX19icmlkZ2UgQ0ZBcnJheVJl
ZilAWyAoX19icmlkZ2UgaWQpY2VydGlmaWNhdGUuZ2V0KCkgXTsKK30KKwogdm9pZCBOZXR3b3Jr
TG9hZGVyOjpzdGFydChVUkwmJiB1cmwsIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYganNvblBheWxv
YWQsIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQY21EYXRhQ2FycmllZCBwY21E
YXRhQ2FycmllZCwgQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKKyAgICAvLyBQcmV2ZW50IGNvbnRh
Y3Rpbmcgbm9uLWxvY2FsIHNlcnZlcnMgd2hlbiBhIHRlc3QgY2VydGlmaWNhdGUgY2hhaW4gaXMg
dXNlZCBmb3IgMTI3LjAuMC4xLgorICAgIGlmIChhbGxvd2VkTG9jYWxUZXN0Q2VydGlmaWNhdGVD
aGFpbigpICYmIHVybC5ob3N0KCkgIT0gIjEyNy4wLjAuMSIpCisgICAgICAgIHJldHVybiBjYWxs
YmFjayh7IH0sIHsgfSwgeyB9KTsKKwogICAgIGF1dG8gcmVxdWVzdCA9IGFkb3B0TlMoW1tOU011
dGFibGVVUkxSZXF1ZXN0IGFsbG9jXSBpbml0V2l0aFVSTDp1cmxdKTsKICAgICBbcmVxdWVzdCBz
ZXRWYWx1ZTpXZWJDb3JlOjpIVFRQSGVhZGVyVmFsdWVzOjptYXhBZ2UwKCkgZm9ySFRUUEhlYWRl
ckZpZWxkOkAiQ2FjaGUtQ29udHJvbCJdOwogICAgIGlmIChqc29uUGF5bG9hZCkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0Nv
Y29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vz
c0NvY29hLm1tCmluZGV4IDMxOWM1YzA3NTI3MGE0NzM0YjI0YmVjOGMzYjJkMDA0MDZiOWZhODIu
LjgwM2M4N2U5Nzk1ZWZjMTI3ZTk4NTYyNGIwNTE2NGQ1MDAwMWZkMGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29j
b2EubW0KQEAgLTE4Myw2ICsxODMsMjcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVsZXRlSFNU
U0NhY2hlRm9ySG9zdE5hbWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QKICNlbmRp
ZgogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0
ZUZvckhvc3QoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8s
IGNvbnN0IFN0cmluZyYgaG9zdCkKK3sKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgb25jZSBy
ZGFyOi8vMzA2NTU3NDAgaXMgZml4ZWQuCisgICAgW05TVVJMUmVxdWVzdCBzZXRBbGxvd3NTcGVj
aWZpY0hUVFBTQ2VydGlmaWNhdGU6KE5TQXJyYXkgKiljZXJ0aWZpY2F0ZUluZm8uY2VydGlmaWNh
dGVDaGFpbigpIGZvckhvc3Q6aG9zdF07Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmFsbG93
VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQor
eworICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IG1fbmV0d29ya1Nlc3Npb25zLmdldChz
ZXNzaW9uSUQpKSB7CisgICAgICAgIC8vIEZJWE1FOiBzZXJpYWxpemUgdGhlIHdob2xlIGNlcnRp
ZmljYXRlIGNoYWluIHdoZW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMDEyNSBpcyBmaXhlZC4KKyAgICAgICAgYXV0byBjaGFpbiA9IGNlcnRpZmljYXRlSW5mby5j
ZXJ0aWZpY2F0ZUNoYWluKCk7CisgICAgICAgIGlmICghQ0ZBcnJheUdldENvdW50KGNoYWluKSkg
eworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKyAgICAgICAgYXV0byBkYXRhID0gYWRvcHRDRihTZWNDZXJ0aWZpY2F0ZUNv
cHlEYXRhKGNoZWNrZWRfY2ZfY2FzdDxTZWNDZXJ0aWZpY2F0ZVJlZj4oQ0ZBcnJheUdldFZhbHVl
QXRJbmRleChjaGFpbiwgMCkpKSk7CisgICAgICAgIFZlY3Rvcjx1aW50OF90PiBlbmNvZGVkQ2Vy
dGlmaWNhdGUoQ0ZEYXRhR2V0Qnl0ZVB0cihkYXRhLmdldCgpKSwgQ0ZEYXRhR2V0TGVuZ3RoKGRh
dGEuZ2V0KCkpKTsKKyAgICAgICAgbmV0d29ya1Nlc3Npb24tPmFsbG93VExTQ2VydGlmaWNhdGVD
aGFpbkZvckxvY2FsUENNVGVzdGluZyhXVEZNb3ZlKGVuY29kZWRDZXJ0aWZpY2F0ZSkpOworICAg
IH0KK30KKwogdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y2xlYXJIU1RTQ2FjaGUoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBXYWxsVGltZSBtb2RpZmllZFNpbmNlKQogewogICAgIE5TVGltZUludGVy
dmFsIHRpbWVJbnRlcnZhbCA9IG1vZGlmaWVkU2luY2Uuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNv
bmRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXggMTM4YzRlOTI5MWQ1MzNlODdlYmY0MmJjZDVi
MzZlZjA1ODZkMjI5OC4uZjNjNjZmOWNmOTc0ZjVlODJiYWE2MjVhMjc4NDYyNTM3ZWJkYmMzNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vz
c2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtMTY0Myw3ICsxNjQzLDYgQEAgYm9vbCBOZXR3b3JrU2Vz
c2lvbkNvY29hOjphbGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFdl
YkNvcmU6OkEKICAgICByZXR1cm4gV2ViQ29yZTo6Y2VydGlmaWNhdGVzTWF0Y2godHJ1c3QuZ2V0
KCksIGNoYWxsZW5nZS5uc1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCkucHJvdGVjdGlvblNw
YWNlLnNlcnZlclRydXN0KTsKIH0KIAotCiBzdGF0aWMgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJLaXQ6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24gZGlzcG9zaXRpb24sIGNv
bnN0IFdlYkNvcmU6OkNyZWRlbnRpYWwmIGNyZWRlbnRpYWwpPiBjcmVhdGVDaGFsbGVuZ2VDb21w
bGV0aW9uSGFuZGxlcihSZWY8TmV0d29ya1Byb2Nlc3M+JiYgbmV0d29ya1Byb2Nlc3MsIFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlJiBjaGFsbGVuZ2UsIGNvbnN0IFN0cmluZyYgcGFydGl0aW9uLCB1aW50NjRfdCB0YXNrSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlRGlzcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkNyZWRlbnRpYWwmKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKICB7CiAgICAgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UgYXV0
aGVudGljYXRpb25DaGFsbGVuZ2UgeyBjaGFsbGVuZ2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nlc3NJT1MubW0KaW5kZXggYTFlMDkx
NDJiOGIzYTM0YTI3MGYzYmY1MGY5NjBhMTZkZTcxNTc5Yy4uOGYxY2ZkZmU1NzFkNzQ5YTE5Nzg0
MGZhOWIwNTAwMjI1MjIzYmIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9pb3MvTmV0d29ya1Byb2Nlc3NJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nlc3NJT1MubW0KQEAgLTU3LDExICs1Nyw2IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJ
bml0aWFsaXphdGlvblBhcmFtCiB7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmFsbG93U3Bl
Y2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUlu
Zm8mIGNlcnRpZmljYXRlSW5mbywgY29uc3QgU3RyaW5nJiBob3N0KQotewotICAgIFtOU1VSTFJl
cXVlc3Qgc2V0QWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlOihOU0FycmF5ICopY2VydGlm
aWNhdGVJbmZvLmNlcnRpZmljYXRlQ2hhaW4oKSBmb3JIb3N0Omhvc3RdOwotfQotCiB2b2lkIE5l
dHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3
b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICNpZiBFTkFCTEUo
U0VDX0lURU1fU0hJTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
bWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9t
YWMvTmV0d29ya1Byb2Nlc3NNYWMubW0KaW5kZXggMDdiYmUzMjZhZWM0YTY2ODA0OTI4ZjkwZWU4
NGM3OTdkNjYxMTMxMi4uYWMxZjdiNDBlMjBlZjZhNWI4ZGVkNzY1MWQzNDBkNzUwZDkwZDUzOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nl
c3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1By
b2Nlc3NNYWMubW0KQEAgLTc4LDExICs3OCw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRm
b3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpCiAj
ZW5kaWYKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlm
aWNhdGVGb3JIb3N0KGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJ
bmZvLCBjb25zdCBTdHJpbmcmIGhvc3QpCi17Ci0gICAgW05TVVJMUmVxdWVzdCBzZXRBbGxvd3NT
cGVjaWZpY0hUVFBTQ2VydGlmaWNhdGU6KF9fYnJpZGdlIE5TQXJyYXkgKiljZXJ0aWZpY2F0ZUlu
Zm8uY2VydGlmaWNhdGVDaGFpbigpIGZvckhvc3Q6KE5TU3RyaW5nICopaG9zdF07Ci19Ci0KIHZv
aWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KGNvbnN0IEF1eGlsaWFyeVByb2Nl
c3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIFNhbmRib3hJbml0aWFsaXph
dGlvblBhcmFtZXRlcnMmIHNhbmRib3hQYXJhbWV0ZXJzKQogewogICAgIC8vIE5lZWQgdG8gb3Zl
cmlkZSB0aGUgZGVmYXVsdCwgYmVjYXVzZSBzZXJ2aWNlIGhhcyBhIGRpZmZlcmVudCBidW5kbGUg
SUQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVy
cy5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAppbmRleCBi
MTgyYzU0ZWI3ODhkM2Q2OTgxNGFhODA3M2U0ZmYxYWE5ZjM5MmJkLi4xYTE3MDk5M2FlNmI1MWQ3
YWFjZWNiMTJiOTdlOWY5ODFlNjMwMDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L0FyZ3VtZW50Q29kZXJzLmgKQEAgLTQwNCwxNCArNDA0LDE2IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyLCBzaXpl
X3QgbWluCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVu
YW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFQsIGlubGluZUNh
cGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5Pj4gZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCiAgICAgewotICAgICAgICB1aW50NjRfdCBzaXplOwotICAgICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHNpemUpKQorICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBzaXplOwor
ICAgICAgICBkZWNvZGVyID4+IHNpemU7CisgICAgICAgIGlmICghc2l6ZSkKICAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICAgICAgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5
LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5PiB2ZWN0b3I7Ci0gICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgKnNpemU7ICsraSkgewogICAgICAgICAgICAgc3RkOjpvcHRpb25hbDxUPiBlbGVtZW50Owog
ICAgICAgICAgICAgZGVjb2RlciA+PiBlbGVtZW50OwogICAgICAgICAgICAgaWYgKCFlbGVtZW50
KQpAQCAtNDU4LDIxICs0NjAsMjMgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGlu
ZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4KICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+
CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVy
Zmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5Pj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAg
ewotICAgICAgICB1aW50NjRfdCBkZWNvZGVkU2l6ZTsKLSAgICAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShkZWNvZGVkU2l6ZSkpCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGRlY29k
ZWRTaXplOworICAgICAgICBkZWNvZGVyID4+IGRlY29kZWRTaXplOworICAgICAgICBpZiAoIWRl
Y29kZWRTaXplKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgICAgICBp
ZiAoIWlzSW5Cb3VuZHM8c2l6ZV90PihkZWNvZGVkU2l6ZSkpCiAgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogCi0gICAgICAgIGF1dG8gc2l6ZSA9IHN0YXRpY19jYXN0PHNpemVfdD4o
ZGVjb2RlZFNpemUpOworICAgICAgICBhdXRvIHNpemUgPSBzdGF0aWNfY2FzdDxzaXplX3Q+KCpk
ZWNvZGVkU2l6ZSk7CiAKICAgICAgICAgLy8gU2luY2Ugd2Uga25vdyB0aGUgdG90YWwgc2l6ZSBv
ZiB0aGUgZWxlbWVudHMsIHdlIGNhbiBhbGxvY2F0ZSB0aGUgdmVjdG9yIGluCiAgICAgICAgIC8v
IG9uZSBmZWxsIHN3b29wLiBCZWZvcmUgYWxsb2NhdGluZyB3ZSBtdXN0IGhvd2V2ZXIgbWFrZSBz
dXJlIHRoYXQgdGhlIGRlY29kZXIgYnVmZmVyCiAgICAgICAgIC8vIGlzIGJpZyBlbm91Z2guCi0g
ICAgICAgIGlmICghZGVjb2Rlci5idWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluPFQ+KHNpemUp
KQorICAgICAgICBpZiAoIWRlY29kZXIudGVtcGxhdGUgYnVmZmVySXNMYXJnZUVub3VnaFRvQ29u
dGFpbjxUPihzaXplKSkKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAg
IAogICAgICAgICBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWlu
Q2FwYWNpdHk+IHZlY3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IDMyNTMwZWYzYzAyNDQ0OTc5YWZj
MjY4ZGRkMGE5MTFiN2I4Y2MxODcuLmU3MmVmNjVmZTgxZmI3ZDA1YzA2N2JiNjg4ZTk1MjFhNGRj
MzJjNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtNjUwLDcgKzY1MCwxMiBAQCBzdGF0aWMgVmVjdG9y
PFdlYktpdDo6V2Vic2l0ZURhdGFSZWNvcmQ+IHRvV2Vic2l0ZURhdGFSZWNvcmRzKE5TQXJyYXkg
KmRhdGFSZWNvcgogCiAtICh2b2lkKV9hbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW46KE5TQXJyYXkg
KiljZXJ0aWZpY2F0ZUNoYWluIGZvckhvc3Q6KE5TU3RyaW5nICopaG9zdAogewotICAgIF93ZWJz
aXRlRGF0YVN0b3JlLT5hbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoV2ViS2l0
OjpXZWJDZXJ0aWZpY2F0ZUluZm86OmNyZWF0ZShXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8oKF9f
YnJpZGdlIENGQXJyYXlSZWYpY2VydGlmaWNhdGVDaGFpbikpLnB0cigpLCBob3N0KTsKKyAgICBf
d2Vic2l0ZURhdGFTdG9yZS0+YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KFdl
YkNvcmU6OkNlcnRpZmljYXRlSW5mbygoX19icmlkZ2UgQ0ZBcnJheVJlZiljZXJ0aWZpY2F0ZUNo
YWluKSwgaG9zdCk7Cit9CisKKy0gKHZvaWQpX2FsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxv
Y2FsUENNVGVzdGluZzooTlNBcnJheSAqKWNlcnRpZmljYXRlQ2hhaW4KK3sKKyAgICBfd2Vic2l0
ZURhdGFTdG9yZS0+YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKFdl
YkNvcmU6OkNlcnRpZmljYXRlSW5mbygoX19icmlkZ2UgQ0ZBcnJheVJlZiljZXJ0aWZpY2F0ZUNo
YWluKSk7CiB9CiAKIC0gKHZvaWQpX2FwcEJvdW5kRG9tYWluczoodm9pZCAoXikoTlNBcnJheTxO
U1N0cmluZyAqPiAqKSljb21wbGV0aW9uSGFuZGxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgK
aW5kZXggZWNjNjBmNzUxN2UzZDEwOGFkNzYyNWJiN2JkOGZmYjNjMjRiM2Q1Ny4uMTAwMDU5M2I3
NThmYWY4NTFjMmYxMjY3M2M4NjMzNmIyNjdhNjI2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0
ZS5oCkBAIC04NCw2ICs4NCw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tX
ZWJzaXRlRGF0YVN0b3JlRmV0Y2hPcHRpb25zKSB7CiArICh2b2lkKV9zZXRDYWNoZWRQcm9jZXNz
U3VzcGVuc2lvbkRlbGF5Rm9yVGVzdGluZzooZG91YmxlKWRlbGF5SW5TZWNvbmRzIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC0gKHZvaWQp
X2FsbG93VExTQ2VydGlmaWNhdGVDaGFpbjooTlNBcnJheSAqKWNlcnRpZmljYXRlQ2hhaW4gZm9y
SG9zdDooTlNTdHJpbmcgKilob3N0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygx
NS4wKSk7CistICh2b2lkKV9hbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3Rp
bmc6KE5TQXJyYXkgKiljZXJ0aWZpY2F0ZUNoYWluIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC0gKHZvaWQpX3JlbmFtZU9yaWdpbjooTlNV
UkwgKilvbGROYW1lIHRvOihOU1VSTCAqKW5ld05hbWUgZm9yRGF0YU9mVHlwZXM6KE5TU2V0PE5T
U3RyaW5nICo+ICopZGF0YVR5cGVzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSlj
b21wbGV0aW9uSGFuZGxlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcAppbmRleCBiZDJkNGQyMDIwNmY4Yjg2ZmU0Y2Qx
YWM5MGQ5MGI3OWMzNDhlZDlkLi4xYmM1MWRkMWVkM2IxMTg1ZWQ3MjY1NTU5YmIxZDNhZWQ5Nzkw
MjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRX
ZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRXZWJDb250ZXh0LmNwcApAQCAtMTYyMyw5ICsxNjIzLDkgQEAgdm9pZCB3ZWJraXRfd2ViX2Nv
bnRleHRfYWxsb3dfdGxzX2NlcnRpZmljYXRlX2Zvcl9ob3N0KFdlYktpdFdlYkNvbnRleHQqIGNv
bnRleHQKICAgICBnX3JldHVybl9pZl9mYWlsKEdfSVNfVExTX0NFUlRJRklDQVRFKGNlcnRpZmlj
YXRlKSk7CiAgICAgZ19yZXR1cm5faWZfZmFpbChob3N0KTsKIAotICAgIGF1dG8gd2ViQ2VydGlm
aWNhdGVJbmZvID0gV2ViQ2VydGlmaWNhdGVJbmZvOjpjcmVhdGUoV2ViQ29yZTo6Q2VydGlmaWNh
dGVJbmZvKGNlcnRpZmljYXRlLCBzdGF0aWNfY2FzdDxHVGxzQ2VydGlmaWNhdGVGbGFncz4oMCkp
KTsKKyAgICBhdXRvIGNlcnRpZmljYXRlSW5mbyA9IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyhj
ZXJ0aWZpY2F0ZSwgc3RhdGljX2Nhc3Q8R1Rsc0NlcnRpZmljYXRlRmxhZ3M+KDApKTsKICAgICBh
dXRvJiB3ZWJzaXRlRGF0YVN0b3JlID0gd2Via2l0V2Vic2l0ZURhdGFNYW5hZ2VyR2V0RGF0YVN0
b3JlKGNvbnRleHQtPnByaXYtPndlYnNpdGVEYXRhTWFuYWdlci5nZXQoKSk7Ci0gICAgd2Vic2l0
ZURhdGFTdG9yZS5hbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3Qod2ViQ2VydGlm
aWNhdGVJbmZvLnB0cigpLCBTdHJpbmc6OmZyb21VVEY4KGhvc3QpKTsKKyAgICB3ZWJzaXRlRGF0
YVN0b3JlLmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjZXJ0aWZpY2F0ZUlu
Zm8sIFN0cmluZzo6ZnJvbVVURjgoaG9zdCkpOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5k
ZXggMzUzMmUwZDc2OGFkNGI4M2ZiZjViMTAxYTc0MWQ3ZjViMDQwMWI1Ny4uM2RhNmMxMTZiOTM2
ODhkMWJhYzczZDdlNmQ5ZDQ5OWUwNDQxMmFmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTE2NzIs
OSArMTY3MiwxNCBAQCBzdGF0aWMgU3RyaW5nIGNvbXB1dGVNZWRpYUtleUZpbGUoY29uc3QgU3Ry
aW5nJiBtZWRpYUtleURpcmVjdG9yeSkKICAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBw
ZW5kaW5nQ29tcG9uZW50KG1lZGlhS2V5RGlyZWN0b3J5LCAiU2VjdXJlU3RvcC5wbGlzdCIpOwog
fQogCi12b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRl
Rm9ySG9zdChjb25zdCBXZWJDZXJ0aWZpY2F0ZUluZm8qIGNlcnRpZmljYXRlLCBjb25zdCBTdHJp
bmcmIGhvc3QpCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRp
ZmljYXRlRm9ySG9zdChjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRl
LCBjb25zdCBTdHJpbmcmIGhvc3QpCiB7Ci0gICAgbmV0d29ya1Byb2Nlc3MoKS5zZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzczo6QWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0
KGNlcnRpZmljYXRlLT5jZXJ0aWZpY2F0ZUluZm8oKSwgaG9zdCksIDApOworICAgIG5ldHdvcmtQ
cm9jZXNzKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkFsbG93U3BlY2lmaWNIVFRQ
U0NlcnRpZmljYXRlRm9ySG9zdChjZXJ0aWZpY2F0ZSwgaG9zdCksIDApOworfQorCit2b2lkIFdl
YnNpdGVEYXRhU3RvcmU6OmFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGlu
Zyhjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlKQoreworICAgIG5l
dHdvcmtQcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkFsbG93VExTQ2Vy
dGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhzZXNzaW9uSUQoKSwgY2VydGlmaWNhdGUp
LCAwKTsKIH0KIAogVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gV2Vic2l0ZURh
dGFTdG9yZTo6bWVkaWFLZXlPcmlnaW5zKGNvbnN0IFN0cmluZyYgbWVkaWFLZXlzU3RvcmFnZURp
cmVjdG9yeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCAwMjY4NzMxNWI2Yjk1MzAwMjYyM2UwMTk1Nzc0MmU5
NTZjZWRmZjQwLi4xNjFjZGU2YTE3MWJjYjMwMWVkZDhiOWUzY2Q0YWUyNmJhZDUxZmI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5oCkBAIC03Miw2ICs3Miw3IEBAIGNsYXNzIEhUVFBDb29raWVTdG9yZTsKIH0KIAog
bmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ2VydGlmaWNhdGVJbmZvOwogY2xhc3MgUmVnaXN0
cmFibGVEb21haW47CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIApAQCAtODUsNyArODYsNiBAQCBj
bGFzcyBTZWNLZXlQcm94eVN0b3JlOwogY2xhc3MgRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2U7CiBj
bGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5OwogY2xhc3MgU09BdXRob3JpemF0aW9uQ29vcmRpbmF0
b3I7Ci1jbGFzcyBXZWJDZXJ0aWZpY2F0ZUluZm87CiBjbGFzcyBXZWJQYWdlUHJveHk7CiBjbGFz
cyBXZWJQcm9jZXNzUG9vbDsKIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKQEAgLTI2Miw3ICsyNjIs
OCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCBzZXRDYWNoZWRQcm9jZXNzU3VzcGVuc2lv
bkRlbGF5Rm9yVGVzdGluZyhTZWNvbmRzKTsKIAotICAgIHZvaWQgYWxsb3dTcGVjaWZpY0hUVFBT
Q2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFdlYkNlcnRpZmljYXRlSW5mbyosIGNvbnN0IFN0cmlu
ZyYgaG9zdCk7CisgICAgdm9pZCBhbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3Qo
Y29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiwgY29uc3QgU3RyaW5nJiBob3N0KTsKKyAg
ICB2b2lkIGFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhjb25zdCBX
ZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mKTsKIAogICAgIERldmljZUlkSGFzaFNhbHRTdG9yYWdl
JiBkZXZpY2VJZEhhc2hTYWx0U3RvcmFnZSgpIHsgcmV0dXJuIG1fZGV2aWNlSWRIYXNoU2FsdFN0
b3JhZ2UuZ2V0KCk7IH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IGJjMTljM2U2OTk1OGZlYTc2NTU0MmU1N2U4ZTMwN2FkMzgzNTFhY2QuLjli
ZGY2NzA1MTcyNDViNTkzY2YzNGE4MTZjZjA1MzQyYjJkY2EwNGQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0w
OS0wOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAg
ICAgIEFkZCBpbmZyYXN0cnVjdHVyZSB0byBhbGxvdyBUTFMgZHVyaW5nIFBDTSB0ZXN0cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwMTM3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW06CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpkZWxlZ2F0ZUFsbG93aW5nQWxsVExTKToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OnJ1bkJhc2ljRXZlbnRBdHRyaWJ1dGlvblRlc3QpOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisKIDIwMjEtMDktMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBJbXBsZW1lbnQgYSBXZWJQcm9jZXNzIGNhcApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCmlu
ZGV4IGI2YmJhYTUyMTUyYmYxMmFiZTg5Mjg1NTQ1ZGI1MjI1NWUwNzJiMTEuLjg5ZmY3MjA4OTE4
ZmU2NTJlMzc5NzhkOTIxMzUwMjM3YjIxOTBiNzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KQEAgLTc1
LDYgKzc1LDE4IEBACiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAorc3RhdGljIFRlc3RO
YXZpZ2F0aW9uRGVsZWdhdGUgKmRlbGVnYXRlQWxsb3dpbmdBbGxUTFMoKQoreworICAgIHN0YXRp
YyBSZXRhaW5QdHI8VGVzdE5hdmlnYXRpb25EZWxlZ2F0ZT4gZGVsZWdhdGUgPSBbXSB7CisgICAg
ICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIG5ld10p
OworICAgICAgICBkZWxlZ2F0ZS5nZXQoKS5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UgPSBeKFdLV2ViVmlldyAqLCBOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICpjaGFsbGVu
Z2UsIHZvaWQgKF5jb21wbGV0aW9uSGFuZGxlcikoTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZURp
c3Bvc2l0aW9uLCBOU1VSTENyZWRlbnRpYWwgKikpIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VVc2VDcmVkZW50aWFsLCBbTlNVUkxDcmVk
ZW50aWFsIGNyZWRlbnRpYWxGb3JUcnVzdDpjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlLnNlcnZl
clRydXN0XSk7CisgICAgICAgIH07CisgICAgICAgIHJldHVybiBkZWxlZ2F0ZTsKKyAgICB9KCk7
CisgICAgcmV0dXJuIGRlbGVnYXRlLmdldCgpOworfQorCiBzdGF0aWMgTlNVUkwgKmV4YW1wbGVV
UkwoKQogewogICAgIHJldHVybiBbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHBzOi8vZXhhbXBs
ZS5jb20vIl07CkBAIC0xMjIsOSArMTM0LDEwIEBAIHZvaWQgcnVuQmFzaWNFdmVudEF0dHJpYnV0
aW9uVGVzdChXS1dlYlZpZXdDb25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uLCBGdW5jdGlvCiAg
ICAgTlNVUkwgKnNlcnZlclVSTCA9IHNlcnZlci5yZXF1ZXN0KCkuVVJMOwogCiAgICAgYXV0byB3
ZWJWaWV3ID0gY29uZmlndXJhdGlvbiA/IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6Q0dSZWN0WmVybyBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKSA6IGFkb3B0
TlMoW1dLV2ViVmlldyBuZXddKTsKKyAgICB3ZWJWaWV3LmdldCgpLm5hdmlnYXRpb25EZWxlZ2F0
ZSA9IGRlbGVnYXRlQWxsb3dpbmdBbGxUTFMoKTsKICAgICBhZGRBdHRyaWJ1dGlvblRvV2ViVmll
dyh3ZWJWaWV3LmdldCgpLCBzZXJ2ZXIpOwogICAgIFtbd2ViVmlldyBjb25maWd1cmF0aW9uXS53
ZWJzaXRlRGF0YVN0b3JlIF9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDpZRVNdOwot
ICAgIFtbd2ViVmlldyBjb25maWd1cmF0aW9uXS53ZWJzaXRlRGF0YVN0b3JlIF9hbGxvd1RMU0Nl
cnRpZmljYXRlQ2hhaW46QFsoaWQpdGVzdENlcnRpZmljYXRlKCkuZ2V0KCldIGZvckhvc3Q6c2Vy
dmVyVVJMLmhvc3RdOworICAgIFtbd2ViVmlldyBjb25maWd1cmF0aW9uXS53ZWJzaXRlRGF0YVN0
b3JlIF9hbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3Rpbmc6QFsoaWQpdGVz
dENlcnRpZmljYXRlKCkuZ2V0KCldXTsKICAgICBbd2ViVmlldyBfc2V0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5nOnNlcnZlclVSTCBkZXN0aW5h
dGlvblVSTDpleGFtcGxlVVJMKCkgY29tcGxldGlvbkhhbmRsZXI6XnsKICAgICAgICAgW3dlYlZp
ZXcgX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3Rpbmc6WUVT
IGNvbXBsZXRpb25IYW5kbGVyOl57CiAgICAgICAgICAgICBOU1N0cmluZyAqaHRtbCA9IFtOU1N0
cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiPHNjcmlwdD5mZXRjaCgnJUBjb252ZXJzaW9uUmVxdWVz
dEJlZm9yZVJlZGlyZWN0Jyx7bW9kZTonbm8tY29ycyd9KTwvc2NyaXB0PiIsIHNlcnZlclVSTF07
CkBAIC0yNzAsOSArMjgzLDEwIEBAIFRFU1QoRXZlbnRBdHRyaWJ1dGlvbiwgRnJhdWRQcmV2ZW50
aW9uKQogICAgIE5TVVJMICpzZXJ2ZXJVUkwgPSBzZXJ2ZXIucmVxdWVzdCgpLlVSTDsKIAogICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1dLV2ViVmlldyBuZXddKTsKKyAgICB3ZWJWaWV3Lmdl
dCgpLm5hdmlnYXRpb25EZWxlZ2F0ZSA9IGRlbGVnYXRlQWxsb3dpbmdBbGxUTFMoKTsKICAgICBb
d2ViVmlldyBfYWRkRXZlbnRBdHRyaWJ1dGlvbldpdGhTb3VyY2VJRDo0MiBkZXN0aW5hdGlvblVS
TDpleGFtcGxlVVJMKCkgc291cmNlRGVzY3JpcHRpb246QCJ0ZXN0IHNvdXJjZSBkZXNjcmlwdGlv
biIgcHVyY2hhc2VyOkAidGVzdCBwdXJjaGFzZXIiIHJlcG9ydEVuZHBvaW50OnNlcnZlclVSTCBv
cHRpb25hbE5vbmNlOkAiQUJDREVGYWJjZGVmMDEyMzQ1Njc4OSJdOwogICAgIFtbd2ViVmlldyBj
b25maWd1cmF0aW9uXS53ZWJzaXRlRGF0YVN0b3JlIF9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RW5hYmxlZDpZRVNdOwotICAgIFtbd2ViVmlldyBjb25maWd1cmF0aW9uXS53ZWJzaXRlRGF0YVN0
b3JlIF9hbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW46QFsoaWQpdGVzdENlcnRpZmljYXRlKCkuZ2V0
KCldIGZvckhvc3Q6c2VydmVyVVJMLmhvc3RdOworICAgIFtbd2ViVmlldyBjb25maWd1cmF0aW9u
XS53ZWJzaXRlRGF0YVN0b3JlIF9hbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRl
c3Rpbmc6QFsoaWQpdGVzdENlcnRpZmljYXRlKCkuZ2V0KCldXTsKIAogICAgIFt3ZWJWaWV3IF9z
ZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMc0ZvclRlc3Rpbmc6
c2VydmVyVVJMIGRlc3RpbmF0aW9uVVJMOmV4YW1wbGVVUkwoKSBjb21wbGV0aW9uSGFuZGxlcjpe
ewogICAgICAgICBbd2ViVmlldyBfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRp
bWVyRm9yVGVzdGluZzpZRVMgY29tcGxldGlvbkhhbmRsZXI6XnsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437836</attachid>
            <date>2021-09-09 22:54:18 -0700</date>
            <delta_ts>2021-09-09 23:33:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230137-20210909225418.patch</filename>
            <type>text/plain</type>
            <size>74201</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNhNmVkOGNiNWQ3NzU3MDYz
NDYxZjRmYzZkODdjOTNhNDBmMWQ2MzQuLmYyZGVhYmY2Njk0MzljMzk2NjUwM2NhOGMxMDc4ZDI5
NzJlODZjMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMjEtMDktMDkgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgaW5mcmFz
dHJ1Y3R1cmUgdG8gYWxsb3cgVExTIGR1cmluZyBQQ00gdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDEzNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHdlcmUgdXNpbmcgTmV0d29ya1Nlc3Np
b25Db2NvYTo6YWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdCBidXQgdGhhdCBk
b2Vzbid0IHdvcmsgd2hlbiB3ZSBhcmUgaW4gYSBkYWVtb24sCisgICAgICAgIHdoZXJlIHRoZXJl
IGlzIG5vIE5ldHdvcmtTZXNzaW9uIG9yIE5ldHdvcmtTZXNzaW9uQ29jb2EuICBXZSBuZWVkZWQg
YSBuZXcgU1BJIGZvciBzZXR0aW5nIHRoZSB0ZXN0IFRMUyBjZXJ0aWZpY2F0ZXMgd2hlcmV2ZXIK
KyAgICAgICAgdGhlIG5ldHdvcmtpbmcgaXMgYmVpbmcgZG9uZS4gIFdlIGFsc28gbmVlZGVkIGFs
bCB0aGUgQ0ZUeXBlUmVmIHNlcmlhbGl6ZXJzIHRvIHdvcmsgd2l0aCBQQ006OkVuY29kZXIgYW5k
IFBDTTo6RGVjb2RlciBiZWNhdXNlCisgICAgICAgIGEgQ2VydGlmaWNhdGVJbmZvIGlzIGVpdGhl
ciBhIFNlY1RydXN0UmVmIG9yIGEgQ0ZBcnJheVJlZiBvZiBTZWNDZXJ0aWZpY2F0ZVJlZiwgYnV0
IHRoZSBlbmNvZGVyIGRvZXNuJ3Qga25vdyB0aGF0IHNvIGl0IGNoZWNrcworICAgICAgICBDRkdl
dFR5cGVJRCBvZiBlYWNoIG1lbWJlciBvZiB0aGUgYXJyYXkgYW5kIGVuY29kZXMgd2hhdGV2ZXIg
bWlnaHQgYmUgdGhlcmUuCisKKyAgICAgICAgSSBhbHNvIGZvdW5kIHRoYXQgd2Ugd2VyZSB1bm5l
Y2Vzc2FyaWx5IHBpbmdpbmcgZXhhbXBsZS5jb20gd2hlbiBydW5uaW5nIHRoZXNlIHVuaXQgdGVz
dHMuICBJIGFkZGVkIGFuIGVhcmx5IHJldHVybiB0byBwcmV2ZW50IHRoYXQKKyAgICAgICAgd2hl
biBydW5uaW5nIHRlc3RzIHdpdGggYSBsb2NhbCBzZXJ2ZXIuCisKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzOjpzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldCk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBD
TVRlc3RpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcC5v
cmlnOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Nlc3Npb246OmFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGlu
Zyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudERlY29kZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQQ006OkRlY29kZXI6On5EZWNv
ZGVyKToKKyAgICAgICAgKFdlYktpdDo6UENNOjpEZWNvZGVyOjpkZWNvZGVGaXhlZExlbmd0aFJl
ZmVyZW5jZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
OjphbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlBDTTo6bWVzc2FnZVR5cGVTZW5kc1JlcGx5KToKKyAgICAgICAgKFdl
YktpdDo6UENNOjpkZWNvZGVNZXNzYWdlQW5kU2VuZFRvTWFuYWdlcik6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VySW50ZXJmYWNlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpQQ006Ok1hbmFnZXJQcm94eTo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNo
YWluRm9yTG9jYWxQQ01UZXN0aW5nKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVD
bGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6
TmV0d29ya0xvYWRlcjo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5n
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE5ldHdvcmtMb2FkZXJDb2NvYS5tbToKKyAgICAgICAgKGFsbG93ZWRMb2NhbFRlc3RDZXJ0aWZp
Y2F0ZUNoYWluKToKKyAgICAgICAgKGhhc0FsbG93ZWRMb2NhbFRlc3RDZXJ0aWZpY2F0ZUNoYWlu
KToKKyAgICAgICAgKC1bV0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlQWxsb3dpbmdPbmx5Tm9uUmVk
aXJlY3RlZEpTT04gVVJMU2Vzc2lvbjp0YXNrOmRpZFJlY2VpdmVDaGFsbGVuZ2U6Y29tcGxldGlv
bkhhbmRsZXI6XSk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6TmV0d29ya0xvYWRlcjo6YWxsb3dU
TFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6
UENNOjpOZXR3b3JrTG9hZGVyOjpzdGFydCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdCk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nlc3NJT1MubW06CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QpOiBEZWxl
dGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrUHJvY2Vzc01hYy5tbToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRp
ZmljYXRlRm9ySG9zdCk6IERlbGV0ZWQuCisgICAgICAgICogUGxhdGZvcm0vSVBDL0FyZ3VtZW50
Q29kZXJzLmg6CisgICAgICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvRGFl
bW9uL1BDTURhZW1vbkVudHJ5UG9pbnQubW06CisgICAgICAgIChXZWJLaXQ6OnN0YXJ0TGlzdGVu
aW5nRm9yTWFjaFNlcnZpY2VDb25uZWN0aW9ucyk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmNw
cDoKKyAgICAgICAgKiBTaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5oOgorICAgICAgICAqIFNo
YXJlZC9jdXJsL1dlYkNvcmVBcmd1bWVudENvZGVyc0N1cmwuY3BwOgorICAgICAgICAqIFNoYXJl
ZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tOgorICAgICAgICAqIFNoYXJlZC9zb3Vw
L1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENv
ZGVyPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT46OmRlY29kZVBsYXRmb3JtRGF0YSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW06Cisg
ICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBfYWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluOmZv
ckhvc3Q6XSk6CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBfYWxsb3dUTFNDZXJ0aWZp
Y2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4
dF9hbGxvd190bHNfY2VydGlmaWNhdGVfZm9yX2hvc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0
ZURhdGFTdG9yZTo6YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KToKKyAgICAg
ICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9y
TG9jYWxQQ01UZXN0aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5oOgorCiAyMDIxLTA5LTA5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVu
c2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW9kZXJuaXplIENlcnRpZmljYXRlSW5mbyBkZWNv
ZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
CmluZGV4IDM2ZThmZWExNzI5ODIwZGNlYzhhMDFhNDQ1ZGEwZThkZWJjOTRkYzAuLmEzNWNlYTYz
NTVmNWU5NjFkOGUyODM3YTNhYmNjMmQwZTMyZmUwNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0yMTc0LDEwICsyMTc0LDE3IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbCBjYWNoZU1vZGVs
KQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldl
YlNvY2tldChib29sIGFsbG93cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogeworICAgIC8vIEZJWE1FOiBTdG9wIHVzaW5nIHRoaXMgd2hlbiBIQVZFKE5T
VVJMU0VTU0lPTl9XRUJTT0NLRVQpIGlzIHRydWUuCiAgICAgRGVwcmVjYXRlZEdsb2JhbFNldHRp
bmdzOjpzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZShhbGxvd3MpOwogICAgIGNvbXBsZXRpb25I
YW5kbGVyKCk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmFsbG93VExTQ2VydGlmaWNhdGVD
aGFpbkZvckxvY2FsUENNVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFdl
YkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQoreworICAgIGlmIChhdXRv
KiBuZXR3b3JrU2Vzc2lvbiA9IG1fbmV0d29ya1Nlc3Npb25zLmdldChzZXNzaW9uSUQpKQorICAg
ICAgICBuZXR3b3JrU2Vzc2lvbi0+YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01U
ZXN0aW5nKGNlcnRpZmljYXRlSW5mbyk7Cit9CisKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmxvZ0Rp
YWdub3N0aWNNZXNzYWdlKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgU2hvdWxkU2Ft
cGxlIHNob3VsZFNhbXBsZSkKIHsKICAgICBpZiAoIURpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpz
aG91bGRMb2dBZnRlclNhbXBsaW5nKHNob3VsZFNhbXBsZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggMzQ1NTY0NzYyMTVmNjlkZDZiYWY0
Njc4YmQ3NDk0NDlmYWViYjNlYy4uMjhjYmZmNWQ0MTAzOGVhN2ZkZmI4MGQ0N2I2NGM2MmNjMDFk
ZTRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aApAQCAtNDUwLDggKzQ1MCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsKENh
Y2hlTW9kZWwpOwogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbFN5bmNocm9ub3VzbHlGb3JUZXN0aW5n
KENhY2hlTW9kZWwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBhbGxv
d1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNh
dGVJbmZvJiwgY29uc3QgU3RyaW5nJiBob3N0KTsKKyAgICB2b2lkIGFsbG93VExTQ2VydGlmaWNh
dGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6
Q2VydGlmaWNhdGVJbmZvJik7CiAgICAgdm9pZCBzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZv
cldlYlNvY2tldChib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIAorCiAg
ICAgdm9pZCBmbHVzaENvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CiAKICAgICB2b2lkIGFkZFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyhQQUw6OlNl
c3Npb25JRCwgV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJz
JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggOWI2MjEzM2IwNWY4MzQ3YzI1ODMwNWY0MWZiYjc3Nzc0
OTBhNDBmOS4uNTE4MGM4Mjk2NTBhZDU2ZTBiMWVmZDNiYzQ1MjBjYmYzMWEyOTczMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1l
c3NhZ2VzLmluCkBAIC02Niw2ICs2Niw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExl
Z2FjeVJlY2VpdmVyIHsKICAgICBGbHVzaENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KSAtPiAoKSBBc3luYwogCiAgICAgQWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0
KFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZSwgU3RyaW5nIGhvc3QpCisgICAg
QWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvIGNlcnRpZmljYXRlKQogCiAgICAg
U2V0Q2FjaGVNb2RlbChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpDYWNoZU1vZGVsIGNhY2hlTW9kZWwp
CiAgICAgU2V0Q2FjaGVNb2RlbFN5bmNocm9ub3VzbHlGb3JUZXN0aW5nKGVudW06dWludDhfdCBX
ZWJLaXQ6OkNhY2hlTW9kZWwgY2FjaGVNb2RlbCkgLT4gKCkgU3luY2hyb25vdXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKaW5kZXggZGZkZTc4
ZGE2MWQ5YmZhOGEzYzVhNGMxYzhjYTk3YTAyZTM1M2ZiOC4uNWUxNWY2MzQzNzM0YzlkMWI1M2Q4
ZGMxMzE5OTA1ZDg5MjJmOWRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTM5MCw2ICszOTAsMTEgQEAgdm9pZCBOZXR3b3JrU2Vz
c2lvbjo6ZmlyZVByaXZhdGVDbGlja01lYXN1cmVtZW50VGltZXJJbW1lZGlhdGVseUZvclRlc3Rp
bmcoKQogICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50KCkuc3RhcnRUaW1lckltbWVkaWF0ZWx5
Rm9yVGVzdGluZygpOwogfQogCit2b2lkIE5ldHdvcmtTZXNzaW9uOjphbGxvd1RMU0NlcnRpZmlj
YXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZv
JiBjZXJ0aWZpY2F0ZUluZm8pCit7CisgICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKS5hbGxv
d1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoY2VydGlmaWNhdGVJbmZvKTsK
K30KKwogdm9pZCBOZXR3b3JrU2Vzc2lvbjo6YWRkS2VwdEFsaXZlTG9hZChSZWY8TmV0d29ya1Jl
c291cmNlTG9hZGVyPiYmIGxvYWRlcikKIHsKICAgICBBU1NFUlQobV9zZXNzaW9uSUQgPT0gbG9h
ZGVyLT5zZXNzaW9uSUQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uLmgKaW5kZXggZDhhYWIzZGJhNDliNzY3ZjNlZjA5OTRiZjJjYmU5NTFmYTQxNjcy
OC4uODIyMTVjNjkzMGNjNmY0M2FhNGVjYjYzMGM0OThhMzliNTExYmFiNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaApAQCAtNDYsNiArNDYsNyBA
QAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBDZXJ0aWZpY2F0ZUluZm87CiBjbGFzcyBOZXR3b3JrU3RvcmFnZVNlc3Npb247CiBj
bGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBlbnVtIGNsYXNzIEluY2x1ZGVIdHRwT25seUNvb2tpZXMg
OiBib29sOwpAQCAtMTM3LDYgKzEzOCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByaXZhdGVD
bGlja01lYXN1cmVtZW50RXBoZW1lcmFsTWVhc3VyZW1lbnRGb3JUZXN0aW5nKGJvb2wpOwogICAg
IHZvaWQgc2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhTdHJpbmcmJiB1bmxp
bmthYmxlVG9rZW4sIFN0cmluZyYmIHNlY3JldFRva2VuLCBTdHJpbmcmJiBzaWduYXR1cmUsIFN0
cmluZyYmIGtleUlEKTsKICAgICB2b2lkIGZpcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRpbWVy
SW1tZWRpYXRlbHlGb3JUZXN0aW5nKCk7CisgICAgdm9pZCBhbGxvd1RMU0NlcnRpZmljYXRlQ2hh
aW5Gb3JMb2NhbFBDTVRlc3RpbmcoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJik7CiAK
ICAgICB2b2lkIGFkZEtlcHRBbGl2ZUxvYWQoUmVmPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4mJik7
CiAgICAgdm9pZCByZW1vdmVLZXB0QWxpdmVMb2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRlciYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudERlY29kZXIuY3BwCmluZGV4IDhhMjBlOGMyZmNjYTk5YzEwODYyNTQwN2ExZjJjM2Nj
NDUyMzNlNDUuLjQ5M2MyY2E3ZDkzYzNhZjVmNjU3OWExNWE2MjdkMjU2MTU1ZmRiZTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50RGVjb2Rlci5jcHAKQEAgLTMwLDYgKzMwLDExIEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBuYW1lc3BhY2UgUENNIHsKIAorRGVjb2Rlcjo6fkRlY29kZXIoKQoreworICAgIEFTU0VSVCht
X2J1ZmZlclBvc2l0aW9uID09IG1fYnVmZmVyLnNpemUoKSk7Cit9CisKIGJvb2wgRGVjb2Rlcjo6
YnVmZmVySXNMYXJnZUVub3VnaFRvQ29udGFpbkJ5dGVzKHNpemVfdCBieXRlcykgY29uc3QKIHsK
ICAgICByZXR1cm4gYnl0ZXMgPD0gbV9idWZmZXIuc2l6ZSgpIC0gbV9idWZmZXJQb3NpdGlvbjsK
QEAgLTQ0LDYgKzQ5LDE1IEBAIGJvb2wgRGVjb2Rlcjo6ZGVjb2RlRml4ZWRMZW5ndGhEYXRhKHVp
bnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplLCBzaXplX3QpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
K2NvbnN0IHVpbnQ4X3QqIERlY29kZXI6OmRlY29kZUZpeGVkTGVuZ3RoUmVmZXJlbmNlKHNpemVf
dCBzaXplLCBzaXplX3QpCit7CisgICAgaWYgKCFidWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWlu
Qnl0ZXMoc2l6ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGNvbnN0IHVpbnQ4X3Qq
IGRhdGEgPSBtX2J1ZmZlci5kYXRhKCkgKyBtX2J1ZmZlclBvc2l0aW9uOworICAgIG1fYnVmZmVy
UG9zaXRpb24gKz0gc2l6ZTsKKyAgICByZXR1cm4gZGF0YTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
UENNCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudERlY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmgKaW5kZXggMjg3Nzk5
ZTMwZWU1MzA3NzJjOWQxNDdjYzM4N2Y1NWY1YjhjMzU1Ni4uMmQzYTY3MGJjNWIwYzRjMThiNDM5
MmM0MjBhYjQxMjYzZDQ3N2NhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29k
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rlci5oCkBAIC0zNSw3ICszNSw4IEBA
IGNsYXNzIERlY29kZXIgewogcHVibGljOgogICAgIERlY29kZXIoVmVjdG9yPHVpbnQ4X3Q+JiYg
YnVmZmVyKQogICAgICAgICA6IG1fYnVmZmVyKFdURk1vdmUoYnVmZmVyKSkgeyB9Ci0gICAgCisg
ICAgfkRlY29kZXIoKTsKKwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAgRGVjb2RlciYg
b3BlcmF0b3I+PihzdGQ6Om9wdGlvbmFsPFQ+JiB0KQogICAgIHsKQEAgLTU1LDcgKzU2LDggQEAg
cHVibGljOgogICAgIH0KIAogICAgIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZUZpeGVk
TGVuZ3RoRGF0YSh1aW50OF90KiBkYXRhLCBzaXplX3QsIHNpemVfdCBhbGlnbm1lbnQpOwotICAg
IAorICAgIGNvbnN0IHVpbnQ4X3QqIGRlY29kZUZpeGVkTGVuZ3RoUmVmZXJlbmNlKHNpemVfdCwg
c2l6ZV90KTsKKwogcHJpdmF0ZToKICAgICBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBidWZmZXJJ
c0xhcmdlRW5vdWdoVG9Db250YWluQnl0ZXMoc2l6ZV90KSBjb25zdDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFn
ZXIuY3BwCmluZGV4IDViMTU5OWYwMzc4Y2U2MzVlM2RmY2NiZThmMmM2Y2NiYzFjNWJiOGUuLmY0
OTk4Mzk4ZThjMWIzYmQyMjhlY2FlNjQyNGU2YTU2MGI5NWE4YjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
ci5jcHAKQEAgLTU0OCw0ICs1NDgsOSBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlcjo6ZGVzdHJveVN0b3JlRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2bwogICAgIH0p
OwogfQogCit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6YWxsb3dUTFNDZXJ0
aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRl
SW5mbyYgY2VydGlmaWNhdGVJbmZvKQoreworICAgIFBDTTo6TmV0d29ya0xvYWRlcjo6YWxsb3dU
TFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKGNlcnRpZmljYXRlSW5mbyk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmgKaW5kZXggMjZlN2M1NTkx
NDQ3ZmViZjU3ODUxZWFlNWQyZTBmNDZkOWJlZTAxZi4uYmM1YmM5ZTc0YWMwODMxYWQ3Y2I5MDE3
NmJhMTA5NTYwY2IxOTliYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oCkBAIC02Miw2ICs2Miw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoU3Ry
aW5nJiYgdW5saW5rYWJsZVRva2VuLCBTdHJpbmcmJiBzZWNyZXRUb2tlbiwgU3RyaW5nJiYgc2ln
bmF0dXJlLCBTdHJpbmcmJiBrZXlJRCkgZmluYWw7CiAgICAgdm9pZCBzdGFydFRpbWVySW1tZWRp
YXRlbHlGb3JUZXN0aW5nKCkgZmluYWw7CiAgICAgdm9pZCBkZXN0cm95U3RvcmVGb3JUZXN0aW5n
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CisgICAgdm9pZCBhbGxvd1RMU0Nl
cnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNh
dGVJbmZvJikgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgUENNOjpTdG9yZSYgc3RvcmUoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcAppbmRleCBkNzJhZmQ5ZTQ1MGY4NWE3
ZmE0MTQ5YWE2ODNhOGMzMzkyOGU3OTQwLi41ZDEzZTc0YzFkZDI2ODg3OGYyOWM5NzJkYTVmNzFj
NzkxMTYyMmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFj
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwCkBAIC0z
Miw2ICszMiw3IEBACiAjaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmgi
CiAjaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmNvZGVyLmgiCiAjaW5jbHVkZSAi
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC0xMTQsNiArMTE1LDEwIEBA
IEFSR1VNRU5UUygpCiBSRVBMWSgpCiBFTkQKIAorRlVOQ1RJT04oYWxsb3dUTFNDZXJ0aWZpY2F0
ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKQorQVJHVU1FTlRTKFdlYkNvcmU6OkNlcnRpZmljYXRl
SW5mbykKK0VORAorCiAjdW5kZWYgRlVOQ1RJT04KICN1bmRlZiBBUkdVTUVOVFMKICN1bmRlZiBS
RVBMWQpAQCAtMTQ5LDYgKzE1NCw3IEBAIGJvb2wgbWVzc2FnZVR5cGVTZW5kc1JlcGx5KE1lc3Nh
Z2VUeXBlIG1lc3NhZ2VUeXBlKQogICAgIGNhc2UgTWVzc2FnZVR5cGU6OlNldEVwaGVtZXJhbE1l
YXN1cmVtZW50Rm9yVGVzdGluZzoKICAgICBjYXNlIE1lc3NhZ2VUeXBlOjpTZXRQQ01GcmF1ZFBy
ZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nOgogICAgIGNhc2UgTWVzc2FnZVR5cGU6OlN0YXJ0VGlt
ZXJJbW1lZGlhdGVseUZvclRlc3Rpbmc6CisgICAgY2FzZSBNZXNzYWdlVHlwZTo6QWxsb3dUTFND
ZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nOgogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgY2FzZSBNZXNzYWdlVHlwZTo6TWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nOgogICAgIGNhc2UgTWVzc2FnZVR5cGU6OkRlc3Ryb3lT
dG9yZUZvclRlc3Rpbmc6CkBAIC0yNTAsNiArMjU2LDkgQEAgdm9pZCBkZWNvZGVNZXNzYWdlQW5k
U2VuZFRvTWFuYWdlcihNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwgVmVjdG9yPHVpbnQ4X3Q+JiYg
ZW4KICAgICBjYXNlIFBDTTo6TWVzc2FnZVR5cGU6OkRlc3Ryb3lTdG9yZUZvclRlc3Rpbmc6CiAg
ICAgICAgIGhhbmRsZVBDTU1lc3NhZ2VXaXRoUmVwbHk8TWVzc2FnZUluZm86OmRlc3Ryb3lTdG9y
ZUZvclRlc3Rpbmc+KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpLCBXVEZNb3ZlKHJlcGx5U2VuZGVy
KSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUENNOjpNZXNzYWdlVHlwZTo6QWxsb3dUTFND
ZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nOgorICAgICAgICBoYW5kbGVQQ01NZXNz
YWdlPE1lc3NhZ2VJbmZvOjphbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3Rp
bmc+KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuaAppbmRleCBhMjkyZmE5ZjA5NTViM2Uw
MjI0NDY1MDM3MWVkYjQ5MzljMDcxZmFlLi40MDM2MmRmYTIyMTRlYzgzN2U3NTdlOTRiY2Q0YWU4
YTNjYjI1MGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFj
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmgKQEAgLTI5LDYg
KzI5LDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgogI2luY2x1
ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENlcnRp
ZmljYXRlSW5mbzsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGVudW0gY2xhc3MgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGUgOiBib29sIHsgVW5hdHRyaWJ1dGVkLCBB
dHRyaWJ1dGVkIH07CkBAIC02NCw2ICs2OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
c2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhTdHJpbmcmJiB1bmxpbmthYmxl
VG9rZW4sIFN0cmluZyYmIHNlY3JldFRva2VuLCBTdHJpbmcmJiBzaWduYXR1cmUsIFN0cmluZyYm
IGtleUlEKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRl
c3RpbmcoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lTdG9yZUZvclRlc3RpbmcoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFsbG93VExT
Q2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhjb25zdCBXZWJDb3JlOjpDZXJ0aWZp
Y2F0ZUluZm8mKSA9IDA7CiB9OwogCiBjb25zdGV4cHIgY29uc3QgY2hhciogcHJvdG9jb2xWZXJz
aW9uS2V5IHsgInZlcnNpb24iIH07CkBAIC04Nyw2ICs5Miw3IEBAIGVudW0gY2xhc3MgTWVzc2Fn
ZVR5cGUgOiB1aW50OF90IHsKICAgICBTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0
aW5nLAogICAgIFN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcsCiAgICAgRGVzdHJveVN0
b3JlRm9yVGVzdGluZywKKyAgICBBbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRl
c3RpbmcKIH07CiAKIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBwcm90b2NvbEVuY29kZWRNZXNzYWdl
S2V5IHsgImVuY29kZWQgbWVzc2FnZSIgfTsKQEAgLTExOSw3ICsxMjUsOCBAQCB0ZW1wbGF0ZTw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6UENNOjpNZXNzYWdlVHlwZT4gewogICAgICAgICBX
ZWJLaXQ6OlBDTTo6TWVzc2FnZVR5cGU6OlNldEVwaGVtZXJhbE1lYXN1cmVtZW50Rm9yVGVzdGlu
ZywKICAgICAgICAgV2ViS2l0OjpQQ006Ok1lc3NhZ2VUeXBlOjpTZXRQQ01GcmF1ZFByZXZlbnRp
b25WYWx1ZXNGb3JUZXN0aW5nLAogICAgICAgICBXZWJLaXQ6OlBDTTo6TWVzc2FnZVR5cGU6OlN0
YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcsCi0gICAgICAgIFdlYktpdDo6UENNOjpNZXNz
YWdlVHlwZTo6RGVzdHJveVN0b3JlRm9yVGVzdGluZworICAgICAgICBXZWJLaXQ6OlBDTTo6TWVz
c2FnZVR5cGU6OkRlc3Ryb3lTdG9yZUZvclRlc3RpbmcsCisgICAgICAgIFdlYktpdDo6UENNOjpN
ZXNzYWdlVHlwZTo6QWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nCiAg
ICAgPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAKaW5kZXggM2NhZTRlNGZm
NThjYjYxZjU1ZjViNTE5NWJhNWUzZDBiYThkYmRkMy4uMTA4MjY1MmIwMGUyNzEzNGViNDFmMGVl
MjFhODZhNTgxOTU0ODZmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAKQEAgLTE1
MSw2ICsxNTEsMTEgQEAgdm9pZCBNYW5hZ2VyUHJveHk6OmRlc3Ryb3lTdG9yZUZvclRlc3Rpbmco
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb24KICAgICBzZW5kTWVzc2FnZVdp
dGhSZXBseTxNZXNzYWdlVHlwZTo6RGVzdHJveVN0b3JlRm9yVGVzdGluZz4oV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwogfQogCit2b2lkIE1hbmFnZXJQcm94eTo6YWxsb3dUTFNDZXJ0aWZp
Y2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5m
byYgY2VydGlmaWNhdGVJbmZvKQoreworICAgIHNlbmRNZXNzYWdlPE1lc3NhZ2VUeXBlOjpBbGxv
d1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3Rpbmc+KGNlcnRpZmljYXRlSW5mbyk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFBDTQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VyUHJveHkuaAppbmRleCA4Y2Q0MTE5OTRiNGIwNmYwZjZiNWQ5OTE1ZjJmMmNk
ZmFjYTk2ZTZmLi4xNTExMDk4NzY4OTQxN2EzYjE4NmEyNDIwM2NjMWNjMzYyNzZiZjFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXJQcm94eS5oCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoU3RyaW5nJiYgdW5saW5r
YWJsZVRva2VuLCBTdHJpbmcmJiBzZWNyZXRUb2tlbiwgU3RyaW5nJiYgc2lnbmF0dXJlLCBTdHJp
bmcmJiBrZXlJRCkgZmluYWw7CiAgICAgdm9pZCBzdGFydFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0
aW5nKCkgZmluYWw7CiAgICAgdm9pZCBkZXN0cm95U3RvcmVGb3JUZXN0aW5nKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CisgICAgdm9pZCBhbGxvd1RMU0NlcnRpZmljYXRlQ2hh
aW5Gb3JMb2NhbFBDTVRlc3RpbmcoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJikgZmlu
YWw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBQQ00KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnROZXR3b3JrTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVy
LmNwcAppbmRleCA0NWEwNWVlMWFiMzZlZTFhN2Q4NDQ3N2ZmYTExNjQ0YjU5ODhmOThhLi43ZGEw
OWRkMzY0ZmZjMWNiNzcxYzliNDBmODM1NTI5ZDZiY2Q3ODcyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50TmV0d29ya0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5l
dHdvcmtMb2FkZXIuY3BwCkBAIC0zOCw2ICszOCwxMiBAQCB2b2lkIE5ldHdvcmtMb2FkZXI6OnN0
YXJ0KFVSTCYmLCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dAogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9LCB7IH0s
IHsgfSk7CiB9CisKK3ZvaWQgTmV0d29ya0xvYWRlcjo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWlu
Rm9yTG9jYWxQQ01UZXN0aW5nKGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFBDTQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyLmgKaW5kZXggMzAzMzA3N2E1Zjk0M2M0NjZlNjRhYjE2
NzQyNTE3M2RiMDU0MWVjZC4uOTFhZWI1NDc5M2I2MTJkNTBiODU4NGQzYzlmNmIxZWIyOWY3NjNl
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZh
dGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlci5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5j
bHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ2Vy
dGlmaWNhdGVJbmZvOwogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFJlc291cmNlUmVzcG9u
c2U7CiB9CkBAIC00Miw2ICs0Myw3IEBAIGNsYXNzIE5ldHdvcmtMb2FkZXIgewogcHVibGljOgog
ICAgIHVzaW5nIENhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0
IFJlZlB0cjxKU09OOjpPYmplY3Q+Jik+OwogICAgIHN0YXRpYyB2b2lkIHN0YXJ0KFVSTCYmLCBS
ZWZQdHI8SlNPTjo6T2JqZWN0PiYmLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
UGNtRGF0YUNhcnJpZWQsIENhbGxiYWNrJiYpOworICAgIHN0YXRpYyB2b2lkIGFsbG93VExTQ2Vy
dGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0
ZUluZm8mKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFBDTQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnROZXR3b3JrTG9hZGVyQ29jb2EubW0KaW5kZXggN2VhMGU4MWJjMTlkOWE1MDU2MDY0
MGYxZGFjZTI1NDBiMjFmNWY2Zi4uNzcyY2IyNjFmYTllZWYyMjZlZDAyZjQ4NGJhZjAwNmViYzM4
OWUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJD
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlckNvY29h
Lm1tCkBAIC0yNywxMiArMjcsMjYgQEAKICNpbXBvcnQgIlByaXZhdGVDbGlja01lYXN1cmVtZW50
TmV0d29ya0xvYWRlci5oIgogCiAjaW1wb3J0ICJOZXR3b3JrRGF0YVRhc2tDb2NvYS5oIgotI2lt
cG9ydCAiTmV0d29ya1Nlc3Npb25Db2NvYS5oIgogI2ltcG9ydCA8V2ViQ29yZS9IVFRQSGVhZGVy
VmFsdWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbXBvcnQg
PHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KIAorc3RhdGljIFJldGFpblB0cjxTZWNUcnVzdFJlZj4mIGFsbG93ZWRMb2NhbFRlc3RTZXJ2
ZXJUcnVzdCgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJldGFpblB0cjxTZWNUcnVz
dFJlZj4+IHNlcnZlclRydXN0OworICAgIHJldHVybiBzZXJ2ZXJUcnVzdC5nZXQoKTsKK30KKwor
c3RhdGljIGJvb2wgdHJ1c3RzU2VydmVyRm9yTG9jYWxUZXN0cyhOU1VSTEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlICpjaGFsbGVuZ2UpCit7CisgICAgaWYgKCFbY2hhbGxlbmdlLnByb3RlY3Rpb25T
cGFjZS5ob3N0IGlzRXF1YWxUb1N0cmluZzpAIjEyNy4wLjAuMSJdCisgICAgICAgIHx8ICFhbGxv
d2VkTG9jYWxUZXN0U2VydmVyVHJ1c3QoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
cmV0dXJuIFdlYkNvcmU6OmNlcnRpZmljYXRlc01hdGNoKGFsbG93ZWRMb2NhbFRlc3RTZXJ2ZXJU
cnVzdCgpLmdldCgpLCBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlLnNlcnZlclRydXN0KTsKK30K
KwogQGludGVyZmFjZSBXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGVBbGxvd2luZ09ubHlOb25SZWRp
cmVjdGVkSlNPTiA6IE5TT2JqZWN0IDxOU1VSTFNlc3Npb25EYXRhRGVsZWdhdGU+CiBAZW5kCiAK
QEAgLTUyLDkgKzY2LDggQEAKIAogLSAodm9pZClVUkxTZXNzaW9uOihOU1VSTFNlc3Npb24gKilz
ZXNzaW9uIHRhc2s6KE5TVVJMU2Vzc2lvblRhc2sgKil0YXNrIGRpZFJlY2VpdmVDaGFsbGVuZ2U6
KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2UgY29tcGxldGlvbkhhbmRs
ZXI6KHZvaWQgKF4pKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VEaXNwb3NpdGlvbiBkaXNwb3Np
dGlvbiwgTlNVUkxDcmVkZW50aWFsICpjcmVkZW50aWFsKSljb21wbGV0aW9uSGFuZGxlcgogewot
ICAgIC8vIEZJWE1FOiBBZGQgcGx1Ym1pbmcgc28gdGhhdCB3ZSBjYW4gdGVsbCB0aGUgZGFlbW9u
IHdoaWNoIGNlcnRpZmljYXRlcyB0byBhY2NlcHQgd2l0aG91dCB1c2luZyBOZXR3b3JrU2Vzc2lv
bkNvY29hLgogICAgIGlmIChbY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZS5hdXRoZW50aWNhdGlv
bk1ldGhvZCBpc0VxdWFsVG9TdHJpbmc6TlNVUkxBdXRoZW50aWNhdGlvbk1ldGhvZFNlcnZlclRy
dXN0XQotICAgICAgICAmJiBOZXR3b3JrU2Vzc2lvbkNvY29hOjphbGxvd3NTcGVjaWZpY0hUVFBT
Q2VydGlmaWNhdGVGb3JIb3N0KGNoYWxsZW5nZSkpCisgICAgICAgICYmIHRydXN0c1NlcnZlckZv
ckxvY2FsVGVzdHMoY2hhbGxlbmdlKSkKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVy
KE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VVc2VDcmVkZW50aWFsLCBbTlNVUkxDcmVkZW50aWFs
IGNyZWRlbnRpYWxGb3JUcnVzdDpjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlLnNlcnZlclRydXN0
XSk7CiAgICAgY29tcGxldGlvbkhhbmRsZXIoTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZVBlcmZv
cm1EZWZhdWx0SGFuZGxpbmcsIG5pbCk7CiB9CkBAIC04OCw4ICsxMDEsMTggQEAgc3RhdGljIE5T
VVJMU2Vzc2lvbiAqc3RhdGVsZXNzU2Vzc2lvbldpdGhvdXRSZWRpcmVjdHMoKQogICAgIHJldHVy
biBzZXNzaW9uLmdldCgpLmdldCgpOwogfQogCit2b2lkIE5ldHdvcmtMb2FkZXI6OmFsbG93VExT
Q2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhjb25zdCBXZWJDb3JlOjpDZXJ0aWZp
Y2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbykKK3sKKyAgICBhbGxvd2VkTG9jYWxUZXN0U2VydmVy
VHJ1c3QoKSA9IGNlcnRpZmljYXRlSW5mby50cnVzdCgpOworfQorCiB2b2lkIE5ldHdvcmtMb2Fk
ZXI6OnN0YXJ0KFVSTCYmIHVybCwgUmVmUHRyPEpTT046Ok9iamVjdD4mJiBqc29uUGF5bG9hZCwg
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlBjbURhdGFDYXJyaWVkIHBjbURhdGFD
YXJyaWVkLCBDYWxsYmFjayYmIGNhbGxiYWNrKQogeworICAgIC8vIFByZXZlbnQgY29udGFjdGlu
ZyBub24tbG9jYWwgc2VydmVycyB3aGVuIGEgdGVzdCBjZXJ0aWZpY2F0ZSBjaGFpbiBpcyB1c2Vk
IGZvciAxMjcuMC4wLjEuCisgICAgLy8gRklYTUU6IFVzZSBhIHByb3h5IHNlcnZlciB0byBoYXZl
IHRlc3RzIGNvdmVyIHRoZSByZXBvcnRzIHNlbnQgdG8gdGhlIGRlc3RpbmF0aW9uLCB0b28uCisg
ICAgaWYgKGFsbG93ZWRMb2NhbFRlc3RTZXJ2ZXJUcnVzdCgpICYmIHVybC5ob3N0KCkgIT0gIjEy
Ny4wLjAuMSIpCisgICAgICAgIHJldHVybiBjYWxsYmFjayh7IH0sIHsgfSwgeyB9KTsKKwogICAg
IGF1dG8gcmVxdWVzdCA9IGFkb3B0TlMoW1tOU011dGFibGVVUkxSZXF1ZXN0IGFsbG9jXSBpbml0
V2l0aFVSTDp1cmxdKTsKICAgICBbcmVxdWVzdCBzZXRWYWx1ZTpXZWJDb3JlOjpIVFRQSGVhZGVy
VmFsdWVzOjptYXhBZ2UwKCkgZm9ySFRUUEhlYWRlckZpZWxkOkAiQ2FjaGUtQ29udHJvbCJdOwog
ICAgIGlmIChqc29uUGF5bG9hZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCmluZGV4IDMxOWM1YzA3NTI3
MGE0NzM0YjI0YmVjOGMzYjJkMDA0MDZiOWZhODIuLmQ5ZDJkNjNkZWJhOTE2OTc2YzliODc5OWQ2
NzZhOTIyMTFjMDM1NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KQEAgLTE4Myw2ICsxODMsMTIgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVsZXRlSFNUU0NhY2hlRm9ySG9zdE5hbWVzKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgY29uc3QKICNlbmRpZgogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNz
OjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgV2ViQ29yZTo6Q2Vy
dGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGNvbnN0IFN0cmluZyYgaG9zdCkKK3sKKyAg
ICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgb25jZSByZGFyOi8vMzA2NTU3NDAgaXMgZml4ZWQuCisg
ICAgW05TVVJMUmVxdWVzdCBzZXRBbGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGU6KE5TQXJy
YXkgKiljZXJ0aWZpY2F0ZUluZm8uY2VydGlmaWNhdGVDaGFpbigpIGZvckhvc3Q6aG9zdF07Cit9
CisKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNsZWFySFNUU0NhY2hlKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgV2FsbFRpbWUgbW9kaWZpZWRTaW5jZSkKIHsKICAgICBOU1RpbWVJbnRlcnZhbCB0
aW1lSW50ZXJ2YWwgPSBtb2RpZmllZFNpbmNlLnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vjb25kcygp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
U2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4IDEzOGM0ZTkyOTFkNTMzZTg3ZWJmNDJiY2Q1YjM2ZWYw
NTg2ZDIyOTguLmYzYzY2ZjljZjk3NGY1ZTgyYmFhNjI1YTI3ODQ2MjUzN2ViZGJjMzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25D
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtT
ZXNzaW9uQ29jb2EubW0KQEAgLTE2NDMsNyArMTY0Myw2IEBAIGJvb2wgTmV0d29ya1Nlc3Npb25D
b2NvYTo6YWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBXZWJDb3Jl
OjpBCiAgICAgcmV0dXJuIFdlYkNvcmU6OmNlcnRpZmljYXRlc01hdGNoKHRydXN0LmdldCgpLCBj
aGFsbGVuZ2UubnNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgpLnByb3RlY3Rpb25TcGFjZS5z
ZXJ2ZXJUcnVzdCk7CiB9CiAKLQogc3RhdGljIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViS2l0
OjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBjb25zdCBX
ZWJDb3JlOjpDcmVkZW50aWFsJiBjcmVkZW50aWFsKT4gY3JlYXRlQ2hhbGxlbmdlQ29tcGxldGlv
bkhhbmRsZXIoUmVmPE5ldHdvcmtQcm9jZXNzPiYmIG5ldHdvcmtQcm9jZXNzLCBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsICBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYg
Y2hhbGxlbmdlLCBjb25zdCBTdHJpbmcmIHBhcnRpdGlvbiwgdWludDY0X3QgdGFza0lkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViS2l0OjpBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZURpc3Bvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpDcmVkZW50aWFsJik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiAgewogICAgIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlIHsgY2hhbGxlbmdlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tCmluZGV4IGExZTA5MTQyYjhi
M2EzNGEyNzBmM2JmNTBmOTYwYTE2ZGU3MTU3OWMuLjhmMWNmZGZlNTcxZDc0OWExOTc4NDBmYTli
MDUwMDIyNTIyM2JiMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
aW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tCkBAIC01NywxMSArNTcsNiBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdCBBdXhpbGlhcnlQcm9jZXNzSW5pdGlh
bGl6YXRpb25QYXJhbQogewogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjphbGxvd1NwZWNpZmlj
SFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBj
ZXJ0aWZpY2F0ZUluZm8sIGNvbnN0IFN0cmluZyYgaG9zdCkKLXsKLSAgICBbTlNVUkxSZXF1ZXN0
IHNldEFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZTooTlNBcnJheSAqKWNlcnRpZmljYXRl
SW5mby5jZXJ0aWZpY2F0ZUNoYWluKCkgZm9ySG9zdDpob3N0XTsKLX0KLQogdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoY29uc3QgTmV0d29ya1By
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAjaWYgRU5BQkxFKFNFQ19J
VEVNX1NISU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL21hYy9O
ZXR3b3JrUHJvY2Vzc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFjL05l
dHdvcmtQcm9jZXNzTWFjLm1tCmluZGV4IDA3YmJlMzI2YWVjNGE2NjgwNDkyOGY5MGVlODRjNzk3
ZDY2MTEzMTIuLmFjMWY3YjQwZTIwZWY2YTViOGRlZDc2NTFkMzQwZDc1MGQ5MGQ1MzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNz
TWFjLm1tCkBAIC03OCwxMSArNzgsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUlu
aXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aQogI2VuZGlm
CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRl
Rm9ySG9zdChjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywg
Y29uc3QgU3RyaW5nJiBob3N0KQotewotICAgIFtOU1VSTFJlcXVlc3Qgc2V0QWxsb3dzU3BlY2lm
aWNIVFRQU0NlcnRpZmljYXRlOihfX2JyaWRnZSBOU0FycmF5ICopY2VydGlmaWNhdGVJbmZvLmNl
cnRpZmljYXRlQ2hhaW4oKSBmb3JIb3N0OihOU1N0cmluZyAqKWhvc3RdOwotfQotCiB2b2lkIE5l
dHdvcmtQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdCBBdXhpbGlhcnlQcm9jZXNzSW5p
dGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBTYW5kYm94SW5pdGlhbGl6YXRpb25Q
YXJhbWV0ZXJzJiBzYW5kYm94UGFyYW1ldGVycykKIHsKICAgICAvLyBOZWVkIHRvIG92ZXJpZGUg
dGhlIGRlZmF1bHQsIGJlY2F1c2Ugc2VydmljZSBoYXMgYSBkaWZmZXJlbnQgYnVuZGxlIElELgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaCBi
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKaW5kZXggYjE4MmM1
NGViNzg4ZDNkNjk4MTRhYTgwNzNlNGZmMWFhOWYzOTJiZC4uYTc2YWZmN2E0NTkyNTBmZGM5ZWEx
YjE4YjExYzcyNjJlMjllZjhkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9J
UEMvQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1
bWVudENvZGVycy5oCkBAIC02Myw2ICs2Myw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVf
dCBFeHRlbnQ+IHN0cnVjdCBBcmd1bWVudENvZGVyPEFycmF5UmVmZXJlbmNlPFQsIEV4dGVuCiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGVuY29kZXIuZW5jb2RlRml4ZWRMZW5ndGhEYXRh
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGFycmF5UmVmZXJlbmNlLmRhdGEoKSks
IGFycmF5UmVmZXJlbmNlLnNpemUoKSAqIHNpemVvZihUKSwgYWxpZ25vZihUKSk7CiAgICAgfQor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
QXJyYXlSZWZlcmVuY2VUeXBlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAg
ICAgIGlmICghRXh0ZW50KQpAQCAtODQsMjIgKzg1LDI0IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
IHN0cnVjdCBBcmd1bWVudENvZGVyPEFycmF5UmVmZXJlbmNlPFQsIGFycmF5UmVmZXJlbmNlRHlu
YW1pCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGVuY29kZXIuZW5jb2RlRml4ZWRMZW5n
dGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGFycmF5UmVmZXJlbmNlLmRh
dGEoKSksIGFycmF5UmVmZXJlbmNlLnNpemUoKSAqIHNpemVvZihUKSwgYWxpZ25vZihUKSk7CiAg
ICAgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0
aW9uYWw8QXJyYXlSZWZlcmVuY2VUeXBlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7
Ci0gICAgICAgIHVpbnQ2NF90IHNpemU7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2l6
ZSkpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBzdGQ6Om9wdGlv
bmFsPHVpbnQ2NF90PiBzaXplOworICAgICAgICBkZWNvZGVyID4+IHNpemU7CiAgICAgICAgIGlm
ICghc2l6ZSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIGlmICgh
KnNpemUpCiAgICAgICAgICAgICByZXR1cm4gQXJyYXlSZWZlcmVuY2VUeXBlKCk7CiAKLSAgICAg
ICAgYXV0byBkYXRhU2l6ZSA9IENoZWNrZWRTaXplIHsgc2l6ZSB9ICogc2l6ZW9mKFQpOworICAg
ICAgICBhdXRvIGRhdGFTaXplID0gQ2hlY2tlZFNpemUgeyAqc2l6ZSB9ICogc2l6ZW9mKFQpOwog
ICAgICAgICBpZiAoVU5MSUtFTFkoZGF0YVNpemUuaGFzT3ZlcmZsb3dlZCgpKSkKICAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICAgICAgY29uc3QgdWludDhfdCogZGF0YSA9
IGRlY29kZXIuZGVjb2RlRml4ZWRMZW5ndGhSZWZlcmVuY2UoZGF0YVNpemUsIGFsaWdub2YoVCkp
OwogICAgICAgICBpZiAoIWRhdGEpCiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owot
ICAgICAgICByZXR1cm4gQXJyYXlSZWZlcmVuY2VUeXBlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
VCo+KGRhdGEpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KHNpemUpKTsKKyAgICAgICAgcmV0dXJuIEFy
cmF5UmVmZXJlbmNlVHlwZShyZWludGVycHJldF9jYXN0PGNvbnN0IFQqPihkYXRhKSwgc3RhdGlj
X2Nhc3Q8c2l6ZV90Pigqc2l6ZSkpOwogICAgIH0KIH07CiAKQEAgLTQwNCwxNCArNDA3LDE2IEBA
IHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgT3Zl
cmZsb3dIYW5kbGVyLCBzaXplX3QgbWluCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
VmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5Pj4g
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgewotICAgICAgICB1aW50NjRfdCBzaXplOwot
ICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUpKQorICAgICAgICBzdGQ6Om9wdGlvbmFs
PHVpbnQ2NF90PiBzaXplOworICAgICAgICBkZWNvZGVyID4+IHNpemU7CisgICAgICAgIGlmICgh
c2l6ZSkKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICAgICAgVmVjdG9y
PFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5PiB2ZWN0b3I7
Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgKnNpemU7ICsraSkgewogICAgICAgICAgICAgc3RkOjpvcHRp
b25hbDxUPiBlbGVtZW50OwogICAgICAgICAgICAgZGVjb2RlciA+PiBlbGVtZW50OwogICAgICAg
ICAgICAgaWYgKCFlbGVtZW50KQpAQCAtNDU4LDIxICs0NjMsMjMgQEAgdGVtcGxhdGU8dHlwZW5h
bWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNp
emVfdCBtaW4KICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIAorICAgIHRlbXBsYXRl
PHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFQsIGlu
bGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5Pj4gZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCiAgICAgewotICAgICAgICB1aW50NjRfdCBkZWNvZGVkU2l6ZTsKLSAgICAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShkZWNvZGVkU2l6ZSkpCisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8dWludDY0X3Q+IGRlY29kZWRTaXplOworICAgICAgICBkZWNvZGVyID4+IGRlY29kZWRTaXpl
OworICAgICAgICBpZiAoIWRlY29kZWRTaXplKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKIAogICAgICAgICBpZiAoIWlzSW5Cb3VuZHM8c2l6ZV90PihkZWNvZGVkU2l6ZSkpCiAg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgICAgIGF1dG8gc2l6ZSA9IHN0
YXRpY19jYXN0PHNpemVfdD4oZGVjb2RlZFNpemUpOworICAgICAgICBhdXRvIHNpemUgPSBzdGF0
aWNfY2FzdDxzaXplX3Q+KCpkZWNvZGVkU2l6ZSk7CiAKICAgICAgICAgLy8gU2luY2Ugd2Uga25v
dyB0aGUgdG90YWwgc2l6ZSBvZiB0aGUgZWxlbWVudHMsIHdlIGNhbiBhbGxvY2F0ZSB0aGUgdmVj
dG9yIGluCiAgICAgICAgIC8vIG9uZSBmZWxsIHN3b29wLiBCZWZvcmUgYWxsb2NhdGluZyB3ZSBt
dXN0IGhvd2V2ZXIgbWFrZSBzdXJlIHRoYXQgdGhlIGRlY29kZXIgYnVmZmVyCiAgICAgICAgIC8v
IGlzIGJpZyBlbm91Z2guCi0gICAgICAgIGlmICghZGVjb2Rlci5idWZmZXJJc0xhcmdlRW5vdWdo
VG9Db250YWluPFQ+KHNpemUpKQorICAgICAgICBpZiAoIWRlY29kZXIudGVtcGxhdGUgYnVmZmVy
SXNMYXJnZUVub3VnaFRvQ29udGFpbjxUPihzaXplKSkKICAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CiAgICAgICAgIAogICAgICAgICBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92
ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+IHZlY3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvRGFlbW9uL1BDTURhZW1vbkVu
dHJ5UG9pbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0Nv
Y29hL0RhZW1vbi9QQ01EYWVtb25FbnRyeVBvaW50Lm1tCmluZGV4IDdmMjMyMWRlNWIxOWMxYzE2
NzQ5YmZkNmE2MzQ2NGY4NGVkNTI0NTcuLjg1MTUxNDMzOTNiNjMzZGQwYTYxNTg5MjRiYmU5ZTQ3
MDczNWRjNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGls
aXRpZXMvQ29jb2EvRGFlbW9uL1BDTURhZW1vbkVudHJ5UG9pbnQubW0KKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENNRGFlbW9uRW50
cnlQb2ludC5tbQpAQCAtODcsNiArODcsNyBAQCBzdGF0aWMgdm9pZCBzdGFydExpc3RlbmluZ0Zv
ck1hY2hTZXJ2aWNlQ29ubmVjdGlvbnMoKQogCiAgICAgICAgIHhwY19jb25uZWN0aW9uX3NldF9l
dmVudF9oYW5kbGVyKHBlZXIsIF4oeHBjX29iamVjdF90IGV2ZW50KSB7CiAgICAgICAgICAgICBp
ZiAoZXZlbnQgPT0gWFBDX0VSUk9SX0NPTk5FQ1RJT05fSU5URVJSVVBURUQpIHsKKyAgICAgICAg
ICAgICAgICBOU0xvZyhAInJlbW92aW5nIHBlZXIgY29ubmVjdGlvbiAlcCIsIHBlZXIpOwogICAg
ICAgICAgICAgICAgIHBlZXJzKCkucmVtb3ZlKHBlZXIpOwogICAgICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgICAgIH0KQEAgLTk0LDcgKzk1LDggQEAgc3RhdGljIHZvaWQgc3RhcnRMaXN0
ZW5pbmdGb3JNYWNoU2VydmljZUNvbm5lY3Rpb25zKCkKICAgICAgICAgfSk7CiAgICAgICAgIHhw
Y19jb25uZWN0aW9uX3NldF90YXJnZXRfcXVldWUocGVlciwgZGlzcGF0Y2hfZ2V0X21haW5fcXVl
dWUoKSk7CiAgICAgICAgIHhwY19jb25uZWN0aW9uX2FjdGl2YXRlKHBlZXIpOwotICAgICAgICAK
KworICAgICAgICBOU0xvZyhAImFkZGluZyBwZWVyIGNvbm5lY3Rpb24gJXAiLCBwZWVyKTsKICAg
ICAgICAgcGVlcnMoKS5hZGQocGVlcik7CiAgICAgfSk7CiAgICAgeHBjX2Nvbm5lY3Rpb25fYWN0
aXZhdGUobGlzdGVuZXIuZ2V0KCkuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCBiYmY4OTRjMGE1ZDEyNzIyMjgzOTI1YjE0ODQwY2Yw
ZWEyMDM5MWRlLi5lMWU1OWE5MzliNjFhYjNlNTg3YWI4M2ZiMjhlOGY5ZWQyNGUzYzNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMjkzLDcg
KzI5Myw5IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U3ByaW5n
VGltaW5nRnVuY3Rpb24+IHsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8
V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rl
cj4KICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkNlcnRp
ZmljYXRlSW5mbyYpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPiBkZWNvZGUoRGVjb2RlciYp
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRDb2Rl
cnNDRi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmNwcApp
bmRleCA2ZDc1Nzc0Y2JmZTY5YzU4ZjgzODAyMzVkYWJiNzlhZWRkNWFjOGI4Li5lZjg4MmE0NjZi
MzRlMGExYzNkYTI2MTM1YjZjMjc3N2Q2ZTRlODE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9jZi9Bcmd1bWVudENvZGVyc0NGLmNwcApAQCAtMzIsNiArMzIsOCBAQAogI2luY2x1ZGUgIkRh
dGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJEZWNvZGVyLmgiCiAjaW5jbHVkZSAiRW5jb2Rlci5o
IgorI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rlci5oIgorI2luY2x1ZGUg
IlByaXZhdGVDbGlja01lYXN1cmVtZW50RW5jb2Rlci5oIgogI2luY2x1ZGUgIlN0cmVhbUNvbm5l
Y3Rpb25FbmNvZGVyLmgiCiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5oPgog
I2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CkBAIC0xOTEsOCArMTkzLDEwIEBAIHZvaWQgQXJn
dW1lbnRDb2RlcjxDRlR5cGVSZWY+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0ZUeXBlUmVm
IHR5cGVSZWYpCiB9CiAKIHRlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxDRlR5cGVSZWY+Ojpl
bmNvZGU8RW5jb2Rlcj4oRW5jb2RlciYsIENGVHlwZVJlZik7Cit0ZW1wbGF0ZSB2b2lkIEFyZ3Vt
ZW50Q29kZXI8Q0ZUeXBlUmVmPjo6ZW5jb2RlPFdlYktpdDo6UENNOjpFbmNvZGVyPihXZWJLaXQ6
OlBDTTo6RW5jb2RlciYsIENGVHlwZVJlZik7CiB0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8
Q0ZUeXBlUmVmPjo6ZW5jb2RlPFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyPihTdHJlYW1Db25uZWN0
aW9uRW5jb2RlciYsIENGVHlwZVJlZik7CiAKK3RlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiBz
dGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDRlR5cGVSZWY+PiBBcmd1bWVudENvZGVyPFJldGFpblB0
cjxDRlR5cGVSZWY+Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7CiAgICAgc3RkOjpvcHRp
b25hbDxDRlR5cGU+IHR5cGU7CkBAIC0zMDksNiArMzEzLDggQEAgc3RkOjpvcHRpb25hbDxSZXRh
aW5QdHI8Q0ZUeXBlUmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8Q0ZUeXBlUmVmPj46OmRl
Y29kZSgKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogfQordGVtcGxhdGUgc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8Q0ZUeXBlUmVmPj4gQXJndW1l
bnRDb2RlcjxSZXRhaW5QdHI8Q0ZUeXBlUmVmPj46OmRlY29kZTxEZWNvZGVyPihEZWNvZGVyJik7
Cit0ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDRlR5cGVSZWY+PiBBcmd1bWVudENv
ZGVyPFJldGFpblB0cjxDRlR5cGVSZWY+Pjo6ZGVjb2RlPFdlYktpdDo6UENNOjpEZWNvZGVyPihX
ZWJLaXQ6OlBDTTo6RGVjb2RlciYpOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogdm9p
ZCBBcmd1bWVudENvZGVyPENGQXJyYXlSZWY+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0ZB
cnJheVJlZiBhcnJheSkKQEAgLTM0Myw4ICszNDksMTAgQEAgdm9pZCBBcmd1bWVudENvZGVyPENG
QXJyYXlSZWY+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0ZBcnJheVJlZiBhcnJheSkKIH0K
IAogdGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPENGQXJyYXlSZWY+OjplbmNvZGU8RW5jb2Rl
cj4oRW5jb2RlciYsIENGQXJyYXlSZWYpOwordGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPENG
QXJyYXlSZWY+OjplbmNvZGU8V2ViS2l0OjpQQ006OkVuY29kZXI+KFdlYktpdDo6UENNOjpFbmNv
ZGVyJiwgQ0ZBcnJheVJlZik7CiB0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8Q0ZBcnJheVJl
Zj46OmVuY29kZTxTdHJlYW1Db25uZWN0aW9uRW5jb2Rlcj4oU3RyZWFtQ29ubmVjdGlvbkVuY29k
ZXImLCBDRkFycmF5UmVmKTsKIAordGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KIHN0ZDo6b3B0
aW9uYWw8UmV0YWluUHRyPENGQXJyYXlSZWY+PiBBcmd1bWVudENvZGVyPFJldGFpblB0cjxDRkFy
cmF5UmVmPj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIHN0ZDo6b3B0aW9uYWw8
Ym9vbD4gaXNOdWxsOwpAQCAtMzc2LDYgKzM4NCw4IEBAIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRy
PENGQXJyYXlSZWY+PiBBcmd1bWVudENvZGVyPFJldGFpblB0cjxDRkFycmF5UmVmPj46OmRlY29k
CiAKICAgICByZXR1cm4gV1RGTW92ZShhcnJheSk7CiB9Cit0ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFs
PFJldGFpblB0cjxDRkFycmF5UmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8Q0ZBcnJheVJl
Zj4+OjpkZWNvZGU8RGVjb2Rlcj4oRGVjb2RlciYpOwordGVtcGxhdGUgc3RkOjpvcHRpb25hbDxS
ZXRhaW5QdHI8Q0ZBcnJheVJlZj4+IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPENGQXJyYXlSZWY+
Pjo6ZGVjb2RlPFdlYktpdDo6UENNOjpEZWNvZGVyPihXZWJLaXQ6OlBDTTo6RGVjb2RlciYpOwog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogdm9pZCBBcmd1bWVudENvZGVyPENGQm9vbGVh
blJlZj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDRkJvb2xlYW5SZWYgYm9vbGVhbikKQEAg
LTM4NCw4ICszOTQsMTAgQEAgdm9pZCBBcmd1bWVudENvZGVyPENGQm9vbGVhblJlZj46OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyLCBDRkJvb2xlYW5SZWYgYm9vbGVhbikKIH0KIAogdGVtcGxhdGUg
dm9pZCBBcmd1bWVudENvZGVyPENGQm9vbGVhblJlZj46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVy
JiwgQ0ZCb29sZWFuUmVmKTsKK3RlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxDRkJvb2xlYW5S
ZWY+OjplbmNvZGU8V2ViS2l0OjpQQ006OkVuY29kZXI+KFdlYktpdDo6UENNOjpFbmNvZGVyJiwg
Q0ZCb29sZWFuUmVmKTsKIHRlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxDRkJvb2xlYW5SZWY+
OjplbmNvZGU8U3RyZWFtQ29ubmVjdGlvbkVuY29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVy
JiwgQ0ZCb29sZWFuUmVmKTsKIAordGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KIHN0ZDo6b3B0
aW9uYWw8UmV0YWluUHRyPENGQm9vbGVhblJlZj4+IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPENG
Qm9vbGVhblJlZj4+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBzdGQ6Om9wdGlv
bmFsPGJvb2w+IGJvb2xlYW47CkBAIC0zOTUsNiArNDA3LDggQEAgc3RkOjpvcHRpb25hbDxSZXRh
aW5QdHI8Q0ZCb29sZWFuUmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8Q0ZCb29sZWFuUmVm
Pj46OmQKIAogICAgIHJldHVybiBhZG9wdENGKCpib29sZWFuID8ga0NGQm9vbGVhblRydWUgOiBr
Q0ZCb29sZWFuRmFsc2UpOwogfQordGVtcGxhdGUgc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8Q0ZC
b29sZWFuUmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8Q0ZCb29sZWFuUmVmPj46OmRlY29k
ZTxEZWNvZGVyPihEZWNvZGVyJik7Cit0ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxD
RkJvb2xlYW5SZWY+PiBBcmd1bWVudENvZGVyPFJldGFpblB0cjxDRkJvb2xlYW5SZWY+Pjo6ZGVj
b2RlPFdlYktpdDo6UENNOjpEZWNvZGVyPihXZWJLaXQ6OlBDTTo6RGVjb2RlciYpOwogCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogdm9pZCBBcmd1bWVudENvZGVyPENGRGF0YVJlZj46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBDRkRhdGFSZWYgZGF0YSkKQEAgLTQwMyw4ICs0MTcsMTAg
QEAgdm9pZCBBcmd1bWVudENvZGVyPENGRGF0YVJlZj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBDRkRhdGFSZWYgZGF0YSkKIH0KIAogdGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPENGRGF0
YVJlZj46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVyJiwgQ0ZEYXRhUmVmKTsKK3RlbXBsYXRlIHZv
aWQgQXJndW1lbnRDb2RlcjxDRkRhdGFSZWY+OjplbmNvZGU8V2ViS2l0OjpQQ006OkVuY29kZXI+
KFdlYktpdDo6UENNOjpFbmNvZGVyJiwgQ0ZEYXRhUmVmKTsKIHRlbXBsYXRlIHZvaWQgQXJndW1l
bnRDb2RlcjxDRkRhdGFSZWY+OjplbmNvZGU8U3RyZWFtQ29ubmVjdGlvbkVuY29kZXI+KFN0cmVh
bUNvbm5lY3Rpb25FbmNvZGVyJiwgQ0ZEYXRhUmVmKTsKIAordGVtcGxhdGU8dHlwZW5hbWUgRGVj
b2Rlcj4KIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENGRGF0YVJlZj4+IEFyZ3VtZW50Q29kZXI8
UmV0YWluUHRyPENGRGF0YVJlZj4+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBz
dGQ6Om9wdGlvbmFsPElQQzo6RGF0YVJlZmVyZW5jZT4gZGF0YVJlZmVyZW5jZTsKQEAgLTQxNCw2
ICs0MzAsOCBAQCBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDRkRhdGFSZWY+PiBBcmd1bWVudENv
ZGVyPFJldGFpblB0cjxDRkRhdGFSZWY+Pjo6ZGVjb2RlKAogCiAgICAgcmV0dXJuIGFkb3B0Q0Yo
Q0ZEYXRhQ3JlYXRlKDAsIGRhdGFSZWZlcmVuY2UtPmRhdGEoKSwgZGF0YVJlZmVyZW5jZS0+c2l6
ZSgpKSk7CiB9Cit0ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDRkRhdGFSZWY+PiBB
cmd1bWVudENvZGVyPFJldGFpblB0cjxDRkRhdGFSZWY+Pjo6ZGVjb2RlPERlY29kZXI+KERlY29k
ZXImKTsKK3RlbXBsYXRlIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENGRGF0YVJlZj4+IEFyZ3Vt
ZW50Q29kZXI8UmV0YWluUHRyPENGRGF0YVJlZj4+OjpkZWNvZGU8V2ViS2l0OjpQQ006OkRlY29k
ZXI+KFdlYktpdDo6UENNOjpEZWNvZGVyJik7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+
CiB2b2lkIEFyZ3VtZW50Q29kZXI8Q0ZEYXRlUmVmPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIs
IENGRGF0ZVJlZiBkYXRlKQpAQCAtNDIyLDggKzQ0MCwxMCBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8
Q0ZEYXRlUmVmPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENGRGF0ZVJlZiBkYXRlKQogfQog
CiB0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8Q0ZEYXRlUmVmPjo6ZW5jb2RlPEVuY29kZXI+
KEVuY29kZXImLCBDRkRhdGVSZWYpOwordGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPENGRGF0
ZVJlZj46OmVuY29kZTxXZWJLaXQ6OlBDTTo6RW5jb2Rlcj4oV2ViS2l0OjpQQ006OkVuY29kZXIm
LCBDRkRhdGVSZWYpOwogdGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPENGRGF0ZVJlZj46OmVu
Y29kZTxTdHJlYW1Db25uZWN0aW9uRW5jb2Rlcj4oU3RyZWFtQ29ubmVjdGlvbkVuY29kZXImLCBD
RkRhdGVSZWYpOwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogc3RkOjpvcHRpb25hbDxS
ZXRhaW5QdHI8Q0ZEYXRlUmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8Q0ZEYXRlUmVmPj46
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBh
YnNvbHV0ZVRpbWU7CkBAIC00MzMsNiArNDUzLDggQEAgc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8
Q0ZEYXRlUmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8Q0ZEYXRlUmVmPj46OmRlY29kZSgK
IAogICAgIHJldHVybiBhZG9wdENGKENGRGF0ZUNyZWF0ZSgwLCAqYWJzb2x1dGVUaW1lKSk7CiB9
Cit0ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDRkRhdGVSZWY+PiBBcmd1bWVudENv
ZGVyPFJldGFpblB0cjxDRkRhdGVSZWY+Pjo6ZGVjb2RlPERlY29kZXI+KERlY29kZXImKTsKK3Rl
bXBsYXRlIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENGRGF0ZVJlZj4+IEFyZ3VtZW50Q29kZXI8
UmV0YWluUHRyPENGRGF0ZVJlZj4+OjpkZWNvZGU8V2ViS2l0OjpQQ006OkRlY29kZXI+KFdlYktp
dDo6UENNOjpEZWNvZGVyJik7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiB2b2lkIEFy
Z3VtZW50Q29kZXI8Q0ZEaWN0aW9uYXJ5UmVmPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENG
RGljdGlvbmFyeVJlZiBkaWN0aW9uYXJ5KQpAQCAtNDczLDggKzQ5NSwxMCBAQCB2b2lkIEFyZ3Vt
ZW50Q29kZXI8Q0ZEaWN0aW9uYXJ5UmVmPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENGRGlj
dGlvbmFyeVJlZiBkaQogfQogCiB0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8Q0ZEaWN0aW9u
YXJ5UmVmPjo6ZW5jb2RlPEVuY29kZXI+KEVuY29kZXImLCBDRkRpY3Rpb25hcnlSZWYpOwordGVt
cGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPENGRGljdGlvbmFyeVJlZj46OmVuY29kZTxXZWJLaXQ6
OlBDTTo6RW5jb2Rlcj4oV2ViS2l0OjpQQ006OkVuY29kZXImLCBDRkRpY3Rpb25hcnlSZWYpOwog
dGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPENGRGljdGlvbmFyeVJlZj46OmVuY29kZTxTdHJl
YW1Db25uZWN0aW9uRW5jb2Rlcj4oU3RyZWFtQ29ubmVjdGlvbkVuY29kZXImLCBDRkRpY3Rpb25h
cnlSZWYpOwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogc3RkOjpvcHRpb25hbDxSZXRh
aW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8Q0ZEaWN0aW9u
YXJ5UmVmPj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIHN0ZDo6b3B0aW9uYWw8
Ym9vbD4gaXNOdWxsOwpAQCAtNTA3LDYgKzUzMSw4IEBAIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRy
PENGRGljdGlvbmFyeVJlZj4+IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPENGRGljdGlvbmFyeVJl
CiAKICAgICByZXR1cm4gV1RGTW92ZShkaWN0aW9uYXJ5KTsKIH0KK3RlbXBsYXRlIHN0ZDo6b3B0
aW9uYWw8UmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4+IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRy
PENGRGljdGlvbmFyeVJlZj4+OjpkZWNvZGU8RGVjb2Rlcj4oRGVjb2RlciYpOwordGVtcGxhdGUg
c3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPj4gQXJndW1lbnRDb2RlcjxS
ZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPj46OmRlY29kZTxXZWJLaXQ6OlBDTTo6RGVjb2Rlcj4o
V2ViS2l0OjpQQ006OkRlY29kZXImKTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KIHZv
aWQgQXJndW1lbnRDb2RlcjxDRk51bWJlclJlZj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBD
Rk51bWJlclJlZiBudW1iZXIpCkBAIC01MjEsNiArNTQ3LDcgQEAgdm9pZCBBcmd1bWVudENvZGVy
PENGTnVtYmVyUmVmPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENGTnVtYmVyUmVmIG51bWJl
cikKIH0KIAogdGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPENGTnVtYmVyUmVmPjo6ZW5jb2Rl
PEVuY29kZXI+KEVuY29kZXImLCBDRk51bWJlclJlZik7Cit0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50
Q29kZXI8Q0ZOdW1iZXJSZWY+OjplbmNvZGU8V2ViS2l0OjpQQ006OkVuY29kZXI+KFdlYktpdDo6
UENNOjpFbmNvZGVyJiwgQ0ZOdW1iZXJSZWYpOwogdGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVy
PENGTnVtYmVyUmVmPjo6ZW5jb2RlPFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyPihTdHJlYW1Db25u
ZWN0aW9uRW5jb2RlciYsIENGTnVtYmVyUmVmKTsKIAogc3RhdGljIHNpemVfdCBzaXplRm9yTnVt
YmVyVHlwZShDRk51bWJlclR5cGUgbnVtYmVyVHlwZSkKQEAgLTU2Myw2ICs1OTAsNyBAQCBzdGF0
aWMgc2l6ZV90IHNpemVGb3JOdW1iZXJUeXBlKENGTnVtYmVyVHlwZSBudW1iZXJUeXBlKQogICAg
IHJldHVybiAwOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogc3RkOjpvcHRpb25h
bDxSZXRhaW5QdHI8Q0ZOdW1iZXJSZWY+PiBBcmd1bWVudENvZGVyPFJldGFpblB0cjxDRk51bWJl
clJlZj4+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBzdGQ6Om9wdGlvbmFsPHVp
bnQ4X3Q+IG51bWJlclR5cGVGcm9tSVBDOwpAQCAtNTgzLDYgKzYxMSw4IEBAIHN0ZDo6b3B0aW9u
YWw8UmV0YWluUHRyPENGTnVtYmVyUmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8Q0ZOdW1i
ZXJSZWY+Pjo6ZGVjCiAgICAgQVNTRVJUKGRhdGFSZWZlcmVuY2UtPmRhdGEoKSk7CiAgICAgcmV0
dXJuIGFkb3B0Q0YoQ0ZOdW1iZXJDcmVhdGUoMCwgbnVtYmVyVHlwZSwgZGF0YVJlZmVyZW5jZS0+
ZGF0YSgpKSk7CiB9Cit0ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDRk51bWJlclJl
Zj4+IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPENGTnVtYmVyUmVmPj46OmRlY29kZTxEZWNvZGVy
PihEZWNvZGVyJik7Cit0ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDRk51bWJlclJl
Zj4+IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPENGTnVtYmVyUmVmPj46OmRlY29kZTxXZWJLaXQ6
OlBDTTo6RGVjb2Rlcj4oV2ViS2l0OjpQQ006OkRlY29kZXImKTsKIAogdGVtcGxhdGU8dHlwZW5h
bWUgRW5jb2Rlcj4KIHZvaWQgQXJndW1lbnRDb2RlcjxDRlN0cmluZ1JlZj46OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyLCBDRlN0cmluZ1JlZiBzdHJpbmcpCkBAIC02MDQsOCArNjM0LDEwIEBAIHZv
aWQgQXJndW1lbnRDb2RlcjxDRlN0cmluZ1JlZj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBD
RlN0cmluZ1JlZiBzdHJpbmcpCiB9CiAKIHRlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxDRlN0
cmluZ1JlZj46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVyJiwgQ0ZTdHJpbmdSZWYpOwordGVtcGxh
dGUgdm9pZCBBcmd1bWVudENvZGVyPENGU3RyaW5nUmVmPjo6ZW5jb2RlPFdlYktpdDo6UENNOjpF
bmNvZGVyPihXZWJLaXQ6OlBDTTo6RW5jb2RlciYsIENGU3RyaW5nUmVmKTsKIHRlbXBsYXRlIHZv
aWQgQXJndW1lbnRDb2RlcjxDRlN0cmluZ1JlZj46OmVuY29kZTxTdHJlYW1Db25uZWN0aW9uRW5j
b2Rlcj4oU3RyZWFtQ29ubmVjdGlvbkVuY29kZXImLCBDRlN0cmluZ1JlZik7CiAKK3RlbXBsYXRl
PHR5cGVuYW1lIERlY29kZXI+CiBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDRlN0cmluZ1JlZj4+
IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPENGU3RyaW5nUmVmPj46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQogewogICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IGVuY29kaW5nRnJvbUlQQzsK
QEAgLTYyOCw2ICs2NjAsOCBAQCBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDRlN0cmluZ1JlZj4+
IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPENGU3RyaW5nUmVmPj46OmRlYwogCiAgICAgcmV0dXJu
IFdURk1vdmUoc3RyaW5nKTsKIH0KK3RlbXBsYXRlIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENG
U3RyaW5nUmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+Pjo6ZGVjb2Rl
PERlY29kZXI+KERlY29kZXImKTsKK3RlbXBsYXRlIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENG
U3RyaW5nUmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+Pjo6ZGVjb2Rl
PFdlYktpdDo6UENNOjpEZWNvZGVyPihXZWJLaXQ6OlBDTTo6RGVjb2RlciYpOwogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBFbmNvZGVyPgogdm9pZCBBcmd1bWVudENvZGVyPENGVVJMUmVmPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIENGVVJMUmVmIHVybCkKQEAgLTY0Myw4ICs2NzcsMTAgQEAgdm9p
ZCBBcmd1bWVudENvZGVyPENGVVJMUmVmPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIENGVVJM
UmVmIHVybCkKIH0KIAogdGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPENGVVJMUmVmPjo6ZW5j
b2RlPEVuY29kZXI+KEVuY29kZXImLCBDRlVSTFJlZik7Cit0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50
Q29kZXI8Q0ZVUkxSZWY+OjplbmNvZGU8V2ViS2l0OjpQQ006OkVuY29kZXI+KFdlYktpdDo6UENN
OjpFbmNvZGVyJiwgQ0ZVUkxSZWYpOwogdGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPENGVVJM
UmVmPjo6ZW5jb2RlPFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyPihTdHJlYW1Db25uZWN0aW9uRW5j
b2RlciYsIENGVVJMUmVmKTsKIAordGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KIHN0ZDo6b3B0
aW9uYWw8UmV0YWluUHRyPENGVVJMUmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8Q0ZVUkxS
ZWY+Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUmV0YWluUHRyPENGVVJMUmVm
PiBiYXNlVVJMOwpAQCAtNjgwLDggKzcxNiwxMCBAQCBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxD
RlVSTFJlZj4+IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPENGVVJMUmVmPj46OmRlY29kZShEZQog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdCk7
CiB9Cit0ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDRlVSTFJlZj4+IEFyZ3VtZW50
Q29kZXI8UmV0YWluUHRyPENGVVJMUmVmPj46OmRlY29kZTxEZWNvZGVyPihEZWNvZGVyJik7Cit0
ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDRlVSTFJlZj4+IEFyZ3VtZW50Q29kZXI8
UmV0YWluUHRyPENGVVJMUmVmPj46OmRlY29kZTxXZWJLaXQ6OlBDTTo6RGVjb2Rlcj4oV2ViS2l0
OjpQQ006OkRlY29kZXImKTsKIAotZW51bSBjbGFzcyBDR0NvbG9yU3BhY2VFbmNvZGluZ1NjaGVt
ZSB7IE5hbWUsIFByb3BlcnR5TGlzdCB9OworZW51bSBjbGFzcyBDR0NvbG9yU3BhY2VFbmNvZGlu
Z1NjaGVtZSA6IGJvb2wgeyBOYW1lLCBQcm9wZXJ0eUxpc3QgfTsKIAogdGVtcGxhdGU8dHlwZW5h
bWUgRW5jb2Rlcj4KIHZvaWQgQXJndW1lbnRDb2RlcjxDR0NvbG9yU3BhY2VSZWY+OjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UpCkBAIC02OTUsOCAr
NzMzLDEwIEBAIHZvaWQgQXJndW1lbnRDb2RlcjxDR0NvbG9yU3BhY2VSZWY+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgQ0dDb2xvclNwYWNlUmVmIGNvCiB9CiAKIHRlbXBsYXRlIHZvaWQgQXJn
dW1lbnRDb2RlcjxDR0NvbG9yU3BhY2VSZWY+OjplbmNvZGU8RW5jb2Rlcj4oRW5jb2RlciYsIENH
Q29sb3JTcGFjZVJlZik7Cit0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8Q0dDb2xvclNwYWNl
UmVmPjo6ZW5jb2RlPFdlYktpdDo6UENNOjpFbmNvZGVyPihXZWJLaXQ6OlBDTTo6RW5jb2RlciYs
IENHQ29sb3JTcGFjZVJlZik7CiB0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8Q0dDb2xvclNw
YWNlUmVmPjo6ZW5jb2RlPFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyPihTdHJlYW1Db25uZWN0aW9u
RW5jb2RlciYsIENHQ29sb3JTcGFjZVJlZik7CiAKK3RlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+
CiBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDR0NvbG9yU3BhY2VSZWY+PiBBcmd1bWVudENvZGVy
PFJldGFpblB0cjxDR0NvbG9yU3BhY2VSZWY+Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7
CiAgICAgc3RkOjpvcHRpb25hbDxDR0NvbG9yU3BhY2VFbmNvZGluZ1NjaGVtZT4gZW5jb2RpbmdT
Y2hlbWU7CkBAIC03MzQsNyArNzc0LDggQEAgc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8Q0dDb2xv
clNwYWNlUmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8Q0dDb2xvclNwYWNlUmUKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogfQotCit0ZW1w
bGF0ZSBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDR0NvbG9yU3BhY2VSZWY+PiBBcmd1bWVudENv
ZGVyPFJldGFpblB0cjxDR0NvbG9yU3BhY2VSZWY+Pjo6ZGVjb2RlPERlY29kZXI+KERlY29kZXIm
KTsKK3RlbXBsYXRlIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENHQ29sb3JTcGFjZVJlZj4+IEFy
Z3VtZW50Q29kZXI8UmV0YWluUHRyPENHQ29sb3JTcGFjZVJlZj4+OjpkZWNvZGU8V2ViS2l0OjpQ
Q006OkRlY29kZXI+KFdlYktpdDo6UENNOjpEZWNvZGVyJik7CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IEVuY29kZXI+CiB2b2lkIEFyZ3VtZW50Q29kZXI8U2VjQ2VydGlmaWNhdGVSZWY+OjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgU2VjQ2VydGlmaWNhdGVSZWYgY2VydGlmaWNhdGUpCkBAIC03NDMs
OCArNzg0LDEwIEBAIHZvaWQgQXJndW1lbnRDb2RlcjxTZWNDZXJ0aWZpY2F0ZVJlZj46OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyLCBTZWNDZXJ0aWZpY2F0ZVJlCiB9CiAKIHRlbXBsYXRlIHZvaWQg
QXJndW1lbnRDb2RlcjxTZWNDZXJ0aWZpY2F0ZVJlZj46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVy
JiwgU2VjQ2VydGlmaWNhdGVSZWYpOwordGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFNlY0Nl
cnRpZmljYXRlUmVmPjo6ZW5jb2RlPFdlYktpdDo6UENNOjpFbmNvZGVyPihXZWJLaXQ6OlBDTTo6
RW5jb2RlciYsIFNlY0NlcnRpZmljYXRlUmVmKTsKIHRlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2Rl
cjxTZWNDZXJ0aWZpY2F0ZVJlZj46OmVuY29kZTxTdHJlYW1Db25uZWN0aW9uRW5jb2Rlcj4oU3Ry
ZWFtQ29ubmVjdGlvbkVuY29kZXImLCBTZWNDZXJ0aWZpY2F0ZVJlZik7CiAKK3RlbXBsYXRlPHR5
cGVuYW1lIERlY29kZXI+CiBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxTZWNDZXJ0aWZpY2F0ZVJl
Zj4+IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPFNlY0NlcnRpZmljYXRlUmVmPj46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQogewogICAgIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENGRGF0YVJl
Zj4+IGRhdGE7CkBAIC03NTQsNiArNzk3LDggQEAgc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8U2Vj
Q2VydGlmaWNhdGVSZWY+PiBBcmd1bWVudENvZGVyPFJldGFpblB0cjxTZWNDZXJ0aWZpY2EKIAog
ICAgIHJldHVybiBhZG9wdENGKFNlY0NlcnRpZmljYXRlQ3JlYXRlV2l0aERhdGEoMCwgZGF0YS0+
Z2V0KCkpKTsKIH0KK3RlbXBsYXRlIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPFNlY0NlcnRpZmlj
YXRlUmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8U2VjQ2VydGlmaWNhdGVSZWY+Pjo6ZGVj
b2RlPERlY29kZXI+KERlY29kZXImKTsKK3RlbXBsYXRlIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRy
PFNlY0NlcnRpZmljYXRlUmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8U2VjQ2VydGlmaWNh
dGVSZWY+Pjo6ZGVjb2RlPFdlYktpdDo6UENNOjpEZWNvZGVyPihXZWJLaXQ6OlBDTTo6RGVjb2Rl
ciYpOwogCiAjaWYgSEFWRShTRUNfS0VZQ0hBSU4pCiB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
PgpAQCAtNzY5LDggKzgxNCwxMCBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8U2VjS2V5Y2hhaW5JdGVt
UmVmPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIFNlY0tleWNoYWluSXRlbQogfQogCiB0ZW1w
bGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8U2VjS2V5Y2hhaW5JdGVtUmVmPjo6ZW5jb2RlPEVuY29k
ZXI+KEVuY29kZXImLCBTZWNLZXljaGFpbkl0ZW1SZWYpOwordGVtcGxhdGUgdm9pZCBBcmd1bWVu
dENvZGVyPFNlY0tleWNoYWluSXRlbVJlZj46OmVuY29kZTxXZWJLaXQ6OlBDTTo6RW5jb2Rlcj4o
V2ViS2l0OjpQQ006OkVuY29kZXImLCBTZWNLZXljaGFpbkl0ZW1SZWYpOwogdGVtcGxhdGUgdm9p
ZCBBcmd1bWVudENvZGVyPFNlY0tleWNoYWluSXRlbVJlZj46OmVuY29kZTxTdHJlYW1Db25uZWN0
aW9uRW5jb2Rlcj4oU3RyZWFtQ29ubmVjdGlvbkVuY29kZXImLCBTZWNLZXljaGFpbkl0ZW1SZWYp
OwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8
U2VjS2V5Y2hhaW5JdGVtUmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8U2VjS2V5Y2hhaW5J
dGVtUmVmPj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJFTEVBU0VfQVNTRVJU
KGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNjZXNzQ3JlZGVudGlh
bHMpKTsKQEAgLTc5MSw2ICs4MzgsOCBAQCBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxTZWNLZXlj
aGFpbkl0ZW1SZWY+PiBBcmd1bWVudENvZGVyPFJldGFpblB0cjxTZWNLZXljaGFpbgogICAgIAog
ICAgIHJldHVybiBhZG9wdENGKGl0ZW0pOwogfQordGVtcGxhdGUgc3RkOjpvcHRpb25hbDxSZXRh
aW5QdHI8U2VjS2V5Y2hhaW5JdGVtUmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8U2VjS2V5
Y2hhaW5JdGVtUmVmPj46OmRlY29kZTxEZWNvZGVyPihEZWNvZGVyJik7Cit0ZW1wbGF0ZSBzdGQ6
Om9wdGlvbmFsPFJldGFpblB0cjxTZWNLZXljaGFpbkl0ZW1SZWY+PiBBcmd1bWVudENvZGVyPFJl
dGFpblB0cjxTZWNLZXljaGFpbkl0ZW1SZWY+Pjo6ZGVjb2RlPFdlYktpdDo6UENNOjpEZWNvZGVy
PihXZWJLaXQ6OlBDTTo6RGVjb2RlciYpOwogI2VuZGlmCiAKICNpZiBIQVZFKFNFQ19BQ0NFU1Nf
Q09OVFJPTCkKQEAgLTgwMyw4ICs4NTIsMTAgQEAgdm9pZCBBcmd1bWVudENvZGVyPFNlY0FjY2Vz
c0NvbnRyb2xSZWY+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgU2VjQWNjZXNzQ29udHIKIH0K
IAogdGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFNlY0FjY2Vzc0NvbnRyb2xSZWY+OjplbmNv
ZGU8RW5jb2Rlcj4oRW5jb2RlciYsIFNlY0FjY2Vzc0NvbnRyb2xSZWYpOwordGVtcGxhdGUgdm9p
ZCBBcmd1bWVudENvZGVyPFNlY0FjY2Vzc0NvbnRyb2xSZWY+OjplbmNvZGU8V2ViS2l0OjpQQ006
OkVuY29kZXI+KFdlYktpdDo6UENNOjpFbmNvZGVyJiwgU2VjQWNjZXNzQ29udHJvbFJlZik7CiB0
ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8U2VjQWNjZXNzQ29udHJvbFJlZj46OmVuY29kZTxT
dHJlYW1Db25uZWN0aW9uRW5jb2Rlcj4oU3RyZWFtQ29ubmVjdGlvbkVuY29kZXImLCBTZWNBY2Nl
c3NDb250cm9sUmVmKTsKIAordGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KIHN0ZDo6b3B0aW9u
YWw8UmV0YWluUHRyPFNlY0FjY2Vzc0NvbnRyb2xSZWY+PiBBcmd1bWVudENvZGVyPFJldGFpblB0
cjxTZWNBY2Nlc3NDb250cm9sUmVmPj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogewogICAg
IHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENGRGF0YVJlZj4+IGRhdGE7CkBAIC04MTgsNiArODY5
LDggQEAgc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8U2VjQWNjZXNzQ29udHJvbFJlZj4+IEFyZ3Vt
ZW50Q29kZXI8UmV0YWluUHRyPFNlY0FjY2Vzc0MKIAogICAgIHJldHVybiBXVEZNb3ZlKHJlc3Vs
dCk7CiB9Cit0ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxTZWNBY2Nlc3NDb250cm9s
UmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8U2VjQWNjZXNzQ29udHJvbFJlZj4+OjpkZWNv
ZGU8RGVjb2Rlcj4oRGVjb2RlciYpOwordGVtcGxhdGUgc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8
U2VjQWNjZXNzQ29udHJvbFJlZj4+IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPFNlY0FjY2Vzc0Nv
bnRyb2xSZWY+Pjo6ZGVjb2RlPFdlYktpdDo6UENNOjpEZWNvZGVyPihXZWJLaXQ6OlBDTTo6RGVj
b2RlciYpOwogI2VuZGlmCiAKICNpZiBIQVZFKFNFQ19UUlVTVF9TRVJJQUxJWkFUSU9OKQpAQCAt
ODM0LDggKzg4NywxMCBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8U2VjVHJ1c3RSZWY+OjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgU2VjVHJ1c3RSZWYgdHJ1c3QpCiB9CiAKIHRlbXBsYXRlIHZvaWQg
QXJndW1lbnRDb2RlcjxTZWNUcnVzdFJlZj46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVyJiwgU2Vj
VHJ1c3RSZWYpOwordGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFNlY1RydXN0UmVmPjo6ZW5j
b2RlPFdlYktpdDo6UENNOjpFbmNvZGVyPihXZWJLaXQ6OlBDTTo6RW5jb2RlciYsIFNlY1RydXN0
UmVmKTsKIHRlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxTZWNUcnVzdFJlZj46OmVuY29kZTxT
dHJlYW1Db25uZWN0aW9uRW5jb2Rlcj4oU3RyZWFtQ29ubmVjdGlvbkVuY29kZXImLCBTZWNUcnVz
dFJlZik7CiAKK3RlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiBzdGQ6Om9wdGlvbmFsPFJldGFp
blB0cjxTZWNUcnVzdFJlZj4+IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPFNlY1RydXN0UmVmPj46
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gaGFz
VHJ1c3Q7CkBAIC04NTcsNiArOTEyLDggQEAgc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8U2VjVHJ1
c3RSZWY+PiBBcmd1bWVudENvZGVyPFJldGFpblB0cjxTZWNUcnVzdFJlZj4+OjpkZWMKIAogICAg
IHJldHVybiBXVEZNb3ZlKHRydXN0KTsKIH0KK3RlbXBsYXRlIHN0ZDo6b3B0aW9uYWw8UmV0YWlu
UHRyPFNlY1RydXN0UmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8U2VjVHJ1c3RSZWY+Pjo6
ZGVjb2RlPERlY29kZXI+KERlY29kZXImKTsKK3RlbXBsYXRlIHN0ZDo6b3B0aW9uYWw8UmV0YWlu
UHRyPFNlY1RydXN0UmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8U2VjVHJ1c3RSZWY+Pjo6
ZGVjb2RlPFdlYktpdDo6UENNOjpEZWNvZGVyPihXZWJLaXQ6OlBDTTo6RGVjb2RlciYpOwogI2Vu
ZGlmCiAKIH0gLy8gbmFtZXNwYWNlIElQQwpAQCAtODkxLDEyICs5NDgsNCBAQCB0ZW1wbGF0ZTw+
IHN0cnVjdCBFbnVtVHJhaXRzPElQQzo6Q0ZUeXBlPiB7CiAgICAgPjsKIH07CiAKLXRlbXBsYXRl
PD4gc3RydWN0IEVudW1UcmFpdHM8SVBDOjpDR0NvbG9yU3BhY2VFbmNvZGluZ1NjaGVtZT4gewot
ICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgICAgIElQQzo6Q0dDb2xvclNwYWNl
RW5jb2RpbmdTY2hlbWUsCi0gICAgICAgIElQQzo6Q0dDb2xvclNwYWNlRW5jb2RpbmdTY2hlbWU6
Ok5hbWUsCi0gICAgICAgIElQQzo6Q0dDb2xvclNwYWNlRW5jb2RpbmdTY2hlbWU6OlByb3BlcnR5
TGlzdAotICAgID47Ci19OwotCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuaAppbmRleCA2ZWNhNWZiOWZmMzMyN2RmODRjYWFmYjI4
ZjEzMjkwN2NiODZmMjBmLi4wMTI5YjhiYzVlZDFiMzc1MjkwNjA3MzQyY2MzOGYzNTQyZDEyNDgx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5oCkBAIC01Niw3
NyArNTYsNzcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxDRlR5cGVSZWY+IHsK
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIENGVHlwZVJlZik7CiB9OwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxSZXRh
aW5QdHI8Q0ZUeXBlUmVmPj4gOiBDRlJldGFpblB0ckFyZ3VtZW50Q29kZXI8Q0ZUeXBlUmVmPiB7
Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENGVHlwZVJlZj4+IGRlY29kZShE
ZWNvZGVyJik7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0
aW9uYWw8UmV0YWluUHRyPENGVHlwZVJlZj4+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPENGQXJyYXlSZWY+IHsKICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBFbmNvZGVyPiBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIENGQXJyYXlSZWYp
OwogfTsKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPENGQXJyYXlS
ZWY+PiA6IENGUmV0YWluUHRyQXJndW1lbnRDb2RlcjxDRkFycmF5UmVmPiB7Ci0gICAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENGQXJyYXlSZWY+PiBkZWNvZGUoRGVjb2RlciYpOwor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJldGFp
blB0cjxDRkFycmF5UmVmPj4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKIHRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8Q0ZCb29sZWFuUmVmPiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
RW5jb2Rlcj4gc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBDRkJvb2xlYW5SZWYpOwogfTsK
IHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPENGQm9vbGVhblJlZj4+
IDogQ0ZSZXRhaW5QdHJBcmd1bWVudENvZGVyPENGQm9vbGVhblJlZj4gewotICAgIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDRkJvb2xlYW5SZWY+PiBkZWNvZGUoRGVjb2RlciYpOwor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJldGFp
blB0cjxDRkJvb2xlYW5SZWY+PiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAogdGVtcGxhdGU8PiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxDRkRhdGFSZWY+IHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBF
bmNvZGVyPiBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIENGRGF0YVJlZik7CiB9OwogdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8Q0ZEYXRhUmVmPj4gOiBDRlJl
dGFpblB0ckFyZ3VtZW50Q29kZXI8Q0ZEYXRhUmVmPiB7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8UmV0YWluUHRyPENGRGF0YVJlZj4+IGRlY29kZShEZWNvZGVyJik7CisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENGRGF0YVJl
Zj4+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPENGRGF0ZVJlZj4gewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiwgQ0ZEYXRlUmVmKTsKIH07CiB0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFJldGFpblB0cjxDRkRhdGVSZWY+PiA6IENGUmV0YWluUHRyQXJndW1lbnRD
b2RlcjxDRkRhdGVSZWY+IHsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8Q0ZE
YXRlUmVmPj4gZGVjb2RlKERlY29kZXImKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVy
PiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8Q0ZEYXRlUmVmPj4gZGVjb2RlKERlY29k
ZXImKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Q0ZEaWN0aW9uYXJ5
UmVmPiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBDRkRpY3Rpb25hcnlSZWYpOwogfTsKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8UmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4+IDogQ0ZSZXRhaW5QdHJBcmd1bWVu
dENvZGVyPENGRGljdGlvbmFyeVJlZj4gewotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJldGFp
blB0cjxDRkRpY3Rpb25hcnlSZWY+PiBkZWNvZGUoRGVjb2RlciYpOworICAgIHRlbXBsYXRlPHR5
cGVuYW1lIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDRkRpY3Rpb25h
cnlSZWY+PiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxDRk51bWJlclJlZj4gewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IHN0
YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgQ0ZOdW1iZXJSZWYpOwogfTsKIHRlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPENGTnVtYmVyUmVmPj4gOiBDRlJldGFpblB0
ckFyZ3VtZW50Q29kZXI8Q0ZOdW1iZXJSZWY+IHsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxS
ZXRhaW5QdHI8Q0ZOdW1iZXJSZWY+PiBkZWNvZGUoRGVjb2RlciYpOworICAgIHRlbXBsYXRlPHR5
cGVuYW1lIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDRk51bWJlclJl
Zj4+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPENGU3RyaW5nUmVmPiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImLCBDRlN0cmluZ1JlZik7CiB9OwogdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+PiA6IENGUmV0YWluUHRyQXJn
dW1lbnRDb2RlcjxDRlN0cmluZ1JlZj4gewotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJldGFp
blB0cjxDRlN0cmluZ1JlZj4+IGRlY29kZShEZWNvZGVyJik7CisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENGU3RyaW5nUmVmPj4g
ZGVjb2RlKERlY29kZXImKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8
Q0ZVUkxSZWY+IHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYsIENGVVJMUmVmKTsKIH07CiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPFJldGFpblB0cjxDRlVSTFJlZj4+IDogQ0ZSZXRhaW5QdHJBcmd1bWVudENvZGVyPENG
VVJMUmVmPiB7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENGVVJMUmVmPj4g
ZGVjb2RlKERlY29kZXImKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGF0aWMg
c3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8Q0ZVUkxSZWY+PiBkZWNvZGUoRGVjb2RlciYpOwogfTsK
IAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxDR0NvbG9yU3BhY2VSZWY+IHsKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYs
IENHQ29sb3JTcGFjZVJlZik7CiB9OwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxS
ZXRhaW5QdHI8Q0dDb2xvclNwYWNlUmVmPj4gOiBDRlJldGFpblB0ckFyZ3VtZW50Q29kZXI8Q0dD
b2xvclNwYWNlUmVmPiB7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENHQ29s
b3JTcGFjZVJlZj4+IGRlY29kZShEZWNvZGVyJik7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVj
b2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENHQ29sb3JTcGFjZVJlZj4+IGRl
Y29kZShEZWNvZGVyJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFNl
Y0NlcnRpZmljYXRlUmVmPiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImLCBTZWNDZXJ0aWZpY2F0ZVJlZik7CiB9OwogdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8U2VjQ2VydGlmaWNhdGVSZWY+PiA6IENG
UmV0YWluUHRyQXJndW1lbnRDb2RlcjxTZWNDZXJ0aWZpY2F0ZVJlZj4gewotICAgIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFJldGFpblB0cjxTZWNDZXJ0aWZpY2F0ZVJlZj4+IGRlY29kZShEZWNvZGVy
Jik7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8
UmV0YWluUHRyPFNlY0NlcnRpZmljYXRlUmVmPj4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKICNp
ZiBIQVZFKFNFQ19LRVlDSEFJTikKQEAgLTEzNCw3ICsxMzQsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFNlY0tleWNoYWluSXRlbVJlZj4gewogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEVuY29kZXI+IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgU2VjS2V5Y2hhaW5JdGVt
UmVmKTsKIH07CiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFJldGFpblB0cjxTZWNL
ZXljaGFpbkl0ZW1SZWY+PiA6IENGUmV0YWluUHRyQXJndW1lbnRDb2RlcjxTZWNLZXljaGFpbkl0
ZW1SZWY+IHsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8U2VjS2V5Y2hhaW5J
dGVtUmVmPj4gZGVjb2RlKERlY29kZXImKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVy
PiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8U2VjS2V5Y2hhaW5JdGVtUmVmPj4gZGVj
b2RlKERlY29kZXImKTsKIH07CiAjZW5kaWYKIApAQCAtMTQzLDcgKzE0Myw3IEBAIHRlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8U2VjQWNjZXNzQ29udHJvbFJlZj4gewogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEVuY29kZXI+IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgU2VjQWNj
ZXNzQ29udHJvbFJlZik7CiB9OwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxSZXRh
aW5QdHI8U2VjQWNjZXNzQ29udHJvbFJlZj4+IDogQ0ZSZXRhaW5QdHJBcmd1bWVudENvZGVyPFNl
Y0FjY2Vzc0NvbnRyb2xSZWY+IHsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8
U2VjQWNjZXNzQ29udHJvbFJlZj4+IGRlY29kZShEZWNvZGVyJik7CisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPFNlY0FjY2Vzc0Nv
bnRyb2xSZWY+PiBkZWNvZGUoRGVjb2RlciYpOwogfTsKICNlbmRpZgogCkBAIC0xNTIsNyArMTUy
LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxTZWNUcnVzdFJlZj4gewogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwg
U2VjVHJ1c3RSZWYpOwogfTsKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8UmV0YWlu
UHRyPFNlY1RydXN0UmVmPj4gOiBDRlJldGFpblB0ckFyZ3VtZW50Q29kZXI8U2VjVHJ1c3RSZWY+
IHsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8U2VjVHJ1c3RSZWY+PiBkZWNv
ZGUoRGVjb2RlciYpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+IHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPFJldGFpblB0cjxTZWNUcnVzdFJlZj4+IGRlY29kZShEZWNvZGVyJik7CiB9Owog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2N1cmwvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzQ3VybC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jdXJsL1dlYkNvcmVB
cmd1bWVudENvZGVyc0N1cmwuY3BwCmluZGV4IDc1Y2Q1MzM0YTM1MjAwMmE3YzQ5NmFjNDEyNWU5
ZDRiOGE0ZGY0YTMuLmQ1NGJhZjRjNWY5MWNjMWMwMjUzMzk0NzBiNzkxMjIxMjZlN2VkNTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
Q3VybC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9XZWJDb3JlQXJndW1lbnRD
b2RlcnNDdXJsLmNwcApAQCAtMjcsNiArMjcsOCBAQAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVu
dENvZGVycy5oIgogCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIlByaXZh
dGVDbGlja01lYXN1cmVtZW50RGVjb2Rlci5oIgorI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1
cmVtZW50RW5jb2Rlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2VydGlmaWNhdGVJbmZvLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9DdXJsUHJveHlTZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
RGljdGlvbmFyeVBvcHVwSW5mby5oPgpAQCAtNTAsNiArNTIsNyBAQCBib29sIEFyZ3VtZW50Q29k
ZXI8UmVzb3VyY2VSZXF1ZXN0Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImIGRlY29kZXIs
IFJlc291cgogICAgIHJldHVybiByZXNvdXJjZVJlcXVlc3QuZGVjb2RlV2l0aFBsYXRmb3JtRGF0
YShkZWNvZGVyKTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KIHZvaWQgQXJndW1l
bnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qg
Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8pCiB7CiAgICAgZW5jb2RlciA8PCBjZXJ0
aWZpY2F0ZUluZm8udmVyaWZpY2F0aW9uRXJyb3IoKTsKQEAgLTU4LDcgKzYxLDEwIEBAIHZvaWQg
QXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgQ2VydGlmaWNhdGVJCiAgICAgZm9yIChhdXRvIGNlcnRpZmljYXRlIDogY2VydGlmaWNh
dGVJbmZvLmNlcnRpZmljYXRlQ2hhaW4oKSkKICAgICAgICAgZW5jb2RlciA8PCBjZXJ0aWZpY2F0
ZTsKIH0KK3RlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUlu
Zm8+OjplbmNvZGU8RW5jb2Rlcj4oRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRl
SW5mbyYpOwordGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNlcnRpZmljYXRl
SW5mbz46OmVuY29kZTxXZWJLaXQ6OlBDTTo6RW5jb2Rlcj4oV2ViS2l0OjpQQ006OkVuY29kZXIm
LCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mKTsKIAordGVtcGxhdGU8dHlwZW5hbWUg
RGVjb2Rlcj4KIHN0ZDo6b3B0aW9uYWw8Q2VydGlmaWNhdGVJbmZvPiBBcmd1bWVudENvZGVyPENl
cnRpZmljYXRlSW5mbz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIHN0ZDo6b3B0
aW9uYWw8aW50PiB2ZXJpZmljYXRpb25FcnJvcjsKQEAgLTgzLDYgKzg5LDggQEAgc3RkOjpvcHRp
b25hbDxDZXJ0aWZpY2F0ZUluZm8+IEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZGVj
b2RlKERlY29kZXImIGQKIAogICAgIHJldHVybiBDZXJ0aWZpY2F0ZUluZm8geyAqdmVyaWZpY2F0
aW9uRXJyb3IsIFdURk1vdmUoY2VydGlmaWNhdGVDaGFpbikgfTsKIH0KK3RlbXBsYXRlIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OkNlcnRpZmljYXRlSW5mbz46OmRlY29kZTxEZWNvZGVyPihEZWNvZGVyJik7Cit0ZW1wbGF0ZSBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz4gQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpDZXJ0aWZpY2F0ZUluZm8+OjpkZWNvZGU8V2ViS2l0OjpQQ006OkRlY29kZXI+KFdlYktp
dDo6UENNOjpEZWNvZGVyJik7CiAKIHZvaWQgQXJndW1lbnRDb2RlcjxSZXNvdXJjZUVycm9yPjo6
ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlc291cmNlRXJyb3Im
IHJlc291cmNlRXJyb3IpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dl
YkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQppbmRleCA4MWQ3NTBhZjU2ZWVlNTc3MTUxODY4YWQ1
NzBkNDY2MzQzZDEzMDNjLi41OTIxMmNlMjdlNTQzZGJlYmY4OThhYWEwMzZjN2FhYjgwYTcyNjA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRD
b2RlcnNNYWMubW0KQEAgLTMwLDYgKzMwLDggQEAKICNpbXBvcnQgIkFyZ3VtZW50Q29kZXJzQ0Yu
aCIKICNpbXBvcnQgIkFyZ3VtZW50Q29kZXJzQ29jb2EuaCIKICNpbXBvcnQgIkRhdGFSZWZlcmVu
Y2UuaCIKKyNpbXBvcnQgIlByaXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rlci5oIgorI2ltcG9y
dCAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmNvZGVyLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0Nl
cnRpZmljYXRlSW5mby5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db250ZW50RmlsdGVyVW5ibG9ja0hh
bmRsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ3JlZGVudGlhbC5oPgpAQCAtNDQsNiArNDYsNyBA
QAogCiBuYW1lc3BhY2UgSVBDIHsKIAordGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KIHZvaWQg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8p
CiB7CiAgICAgZW5jb2RlciA8PCBjZXJ0aWZpY2F0ZUluZm8udHlwZSgpOwpAQCAtNjIsNyArNjUs
MTAgQEAgdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz46OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWIKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQor
dGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz46OmVu
Y29kZTxFbmNvZGVyPihFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJik7
Cit0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPjo6
ZW5jb2RlPFdlYktpdDo6UENNOjpFbmNvZGVyPihXZWJLaXQ6OlBDTTo6RW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYpOwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVy
Pgogc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+IEFyZ3VtZW50Q29kZXI8
V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7CiAg
ICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm86OlR5cGU+IGNlcnRpZmlj
YXRlSW5mb1R5cGU7CkBAIC05Niw2ICsxMDIsOCBAQCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNl
cnRpZmljYXRlSW5mbz4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+Ogog
CiAgICAgcmV0dXJuIHt7IH19OwogfQordGVtcGxhdGUgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpD
ZXJ0aWZpY2F0ZUluZm8+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPjo6
ZGVjb2RlPERlY29kZXI+KERlY29kZXImKTsKK3RlbXBsYXRlIHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6Q2VydGlmaWNhdGVJbmZvPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5m
bz46OmRlY29kZTxXZWJLaXQ6OlBDTTo6RGVjb2Rlcj4oV2ViS2l0OjpQQ006OkRlY29kZXImKTsK
IAogc3RhdGljIHZvaWQgZW5jb2RlTlNFcnJvcihFbmNvZGVyJiBlbmNvZGVyLCBOU0Vycm9yICpu
c0Vycm9yKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvc291cC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnNTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3NvdXAvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzU291cC5jcHAKaW5kZXggOTdiZTFjOGMwMDZhZTkyNmQ4ZjkxOGFmMzcx
Yzg3YzNjOGUwOGJjYS4uMmU5N2Q3ZDJmMWZhODI1MTVmZTYyYzA4OGM5ZTYwNGIzNGE5NzRlYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvc291cC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnNTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVu
dENvZGVyc1NvdXAuY3BwCkBAIC0zMCw2ICszMCw4IEBACiAKICNpbmNsdWRlICJBcmd1bWVudENv
ZGVyc0dMaWIuaCIKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRFbmNvZGVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DZXJ0aWZpY2F0ZUluZm8uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0NyZWRlbnRpYWwuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RpY3Rpb25h
cnlQb3B1cEluZm8uaD4KQEAgLTU0LDYgKzU2LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFJlc291
cmNlUmVxdWVzdD46OmRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiBkZWNvZGVyLCBSZXNvdXIK
ICAgICByZXR1cm4gcmVzb3VyY2VSZXF1ZXN0LmRlY29kZVdpdGhQbGF0Zm9ybURhdGEoZGVjb2Rl
cik7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiB2b2lkIEFyZ3VtZW50Q29kZXI8
Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IENlcnRpZmlj
YXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQogewogICAgIEdSZWZQdHI8R1Rsc0NlcnRpZmljYXRl
PiBjZXJ0aWZpY2F0ZSA9IGNlcnRpZmljYXRlSW5mby5jZXJ0aWZpY2F0ZSgpOwpAQCAtNjMsNyAr
NjYsMTAgQEAgdm9pZCBBcmd1bWVudENvZGVyPENlcnRpZmljYXRlSW5mbz46OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zdCBDZXJ0aWZpY2F0ZUkKIAogICAgIGVuY29kZXIgPDwgc3RhdGlj
X2Nhc3Q8dWludDMyX3Q+KGNlcnRpZmljYXRlSW5mby50bHNFcnJvcnMoKSk7CiB9Cit0ZW1wbGF0
ZSB2b2lkIEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2RlPEVuY29kZXI+KEVu
Y29kZXImLCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mKTsKK3RlbXBsYXRlIHZvaWQgQXJndW1lbnRD
b2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjplbmNvZGU8V2ViS2l0OjpQQ006OkVuY29kZXI+KFdlYktp
dDo6UENNOjpFbmNvZGVyJiwgY29uc3QgQ2VydGlmaWNhdGVJbmZvJik7CiAKK3RlbXBsYXRlPHR5
cGVuYW1lIERlY29kZXI+CiBzdGQ6Om9wdGlvbmFsPENlcnRpZmljYXRlSW5mbz4gQXJndW1lbnRD
b2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBz
dGQ6Om9wdGlvbmFsPEdSZWZQdHI8R1Rsc0NlcnRpZmljYXRlPj4gY2VydGlmaWNhdGU7CkBAIC04
NCw2ICs5MCw4IEBAIHN0ZDo6b3B0aW9uYWw8Q2VydGlmaWNhdGVJbmZvPiBBcmd1bWVudENvZGVy
PENlcnRpZmljYXRlSW5mbz46OmRlY29kZShEZWNvZGVyJiBkCiAKICAgICByZXR1cm4gV1RGTW92
ZShjZXJ0aWZpY2F0ZUluZm8pOwogfQordGVtcGxhdGUgc3RkOjpvcHRpb25hbDxDZXJ0aWZpY2F0
ZUluZm8+IEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZGVjb2RlPERlY29kZXI+KERl
Y29kZXImKTsKK3RlbXBsYXRlIHN0ZDo6b3B0aW9uYWw8Q2VydGlmaWNhdGVJbmZvPiBBcmd1bWVu
dENvZGVyPENlcnRpZmljYXRlSW5mbz46OmRlY29kZTxXZWJLaXQ6OlBDTTo6RGVjb2Rlcj4oV2Vi
S2l0OjpQQ006OkRlY29kZXImKTsKIAogdm9pZCBBcmd1bWVudENvZGVyPFJlc291cmNlRXJyb3I+
OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVzb3VyY2VFcnJv
ciYgcmVzb3VyY2VFcnJvcikKIHsKQEAgLTI0NSw3ICsyNTMsNyBAQCB2b2lkIEFyZ3VtZW50Q29k
ZXI8U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVu
Y29kZXImCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXN0ZDo6b3B0aW9uYWw8U2Vy
aWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPiAgQXJndW1lbnRDb2RlcjxTZXJpYWxpemVkUGxh
dGZvcm1EYXRhQ3VlVmFsdWU+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYgZGVjb2Rlciwg
V2ViQ29yZTo6U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlOjpQbGF0Zm9ybVR5cGUgcGxh
dGZvcm1UeXBlKQorc3RkOjpvcHRpb25hbDxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+
ICBBcmd1bWVudENvZGVyPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT46OmRlY29kZVBs
YXRmb3JtRGF0YShEZWNvZGVyJiBkZWNvZGVyLCBTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFs
dWU6OlBsYXRmb3JtVHlwZSBwbGF0Zm9ybVR5cGUpCiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IDMyNTMwZWYz
YzAyNDQ0OTc5YWZjMjY4ZGRkMGE5MTFiN2I4Y2MxODcuLjRkYzE1YmFkODRlODk4ODRiYmQxY2U2
ZmFmY2UyYzczMDVlMGMxMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtNjUwLDcgKzY1MCwxMiBAQCBz
dGF0aWMgVmVjdG9yPFdlYktpdDo6V2Vic2l0ZURhdGFSZWNvcmQ+IHRvV2Vic2l0ZURhdGFSZWNv
cmRzKE5TQXJyYXkgKmRhdGFSZWNvcgogCiAtICh2b2lkKV9hbGxvd1RMU0NlcnRpZmljYXRlQ2hh
aW46KE5TQXJyYXkgKiljZXJ0aWZpY2F0ZUNoYWluIGZvckhvc3Q6KE5TU3RyaW5nICopaG9zdAog
ewotICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5hbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZv
ckhvc3QoV2ViS2l0OjpXZWJDZXJ0aWZpY2F0ZUluZm86OmNyZWF0ZShXZWJDb3JlOjpDZXJ0aWZp
Y2F0ZUluZm8oKF9fYnJpZGdlIENGQXJyYXlSZWYpY2VydGlmaWNhdGVDaGFpbikpLnB0cigpLCBo
b3N0KTsKKyAgICBfd2Vic2l0ZURhdGFTdG9yZS0+YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNh
dGVGb3JIb3N0KFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbygoX19icmlkZ2UgQ0ZBcnJheVJlZilj
ZXJ0aWZpY2F0ZUNoYWluKSwgaG9zdCk7Cit9CisKKy0gKHZvaWQpX3RydXN0U2VydmVyRm9yTG9j
YWxQQ01UZXN0aW5nOihTZWNUcnVzdFJlZilzZXJ2ZXJUcnVzdAoreworICAgIF93ZWJzaXRlRGF0
YVN0b3JlLT5hbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoV2ViQ29y
ZTo6Q2VydGlmaWNhdGVJbmZvKHNlcnZlclRydXN0KSk7CiB9CiAKIC0gKHZvaWQpX2FwcEJvdW5k
RG9tYWluczoodm9pZCAoXikoTlNBcnJheTxOU1N0cmluZyAqPiAqKSljb21wbGV0aW9uSGFuZGxl
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0
ZURhdGFTdG9yZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKaW5kZXggZWNjNjBmNzUxN2UzZDEwOGFkNzYyNWJi
N2JkOGZmYjNjMjRiM2Q1Ny4uYTlkYmYxNTIxZDY3YTE0NDU2MGFmYWQ2MjQ1M2M1NjVmNTdjMjM1
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0
ZURhdGFTdG9yZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCkBAIC04NCw2ICs4NCw3IEBAIHR5cGVkZWYg
TlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tXZWJzaXRlRGF0YVN0b3JlRmV0Y2hPcHRpb25zKSB7
CiArICh2b2lkKV9zZXRDYWNoZWRQcm9jZXNzU3VzcGVuc2lvbkRlbGF5Rm9yVGVzdGluZzooZG91
YmxlKWRlbGF5SW5TZWNvbmRzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiAKIC0gKHZvaWQpX2FsbG93VExTQ2VydGlmaWNhdGVDaGFpbjooTlNB
cnJheSAqKWNlcnRpZmljYXRlQ2hhaW4gZm9ySG9zdDooTlNTdHJpbmcgKilob3N0IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CistICh2b2lkKV90cnVzdFNlcnZlckZv
ckxvY2FsUENNVGVzdGluZzooU2VjVHJ1c3RSZWYpc2VydmVyVHJ1c3QgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLSAodm9pZClfcmVuYW1l
T3JpZ2luOihOU1VSTCAqKW9sZE5hbWUgdG86KE5TVVJMICopbmV3TmFtZSBmb3JEYXRhT2ZUeXBl
czooTlNTZXQ8TlNTdHJpbmcgKj4gKilkYXRhVHlwZXMgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQg
KF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IGJkMmQ0ZDIwMjA2
ZjhiODZmZTRjZDFhYzkwZDkwYjc5YzM0OGVkOWQuLjFiYzUxZGQxZWQzYjExODVlZDcyNjU1NTli
YjFkM2FlZDk3OTAyNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFdlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFdlYkNvbnRleHQuY3BwCkBAIC0xNjIzLDkgKzE2MjMsOSBAQCB2b2lkIHdl
YmtpdF93ZWJfY29udGV4dF9hbGxvd190bHNfY2VydGlmaWNhdGVfZm9yX2hvc3QoV2ViS2l0V2Vi
Q29udGV4dCogY29udGV4dAogICAgIGdfcmV0dXJuX2lmX2ZhaWwoR19JU19UTFNfQ0VSVElGSUNB
VEUoY2VydGlmaWNhdGUpKTsKICAgICBnX3JldHVybl9pZl9mYWlsKGhvc3QpOwogCi0gICAgYXV0
byB3ZWJDZXJ0aWZpY2F0ZUluZm8gPSBXZWJDZXJ0aWZpY2F0ZUluZm86OmNyZWF0ZShXZWJDb3Jl
OjpDZXJ0aWZpY2F0ZUluZm8oY2VydGlmaWNhdGUsIHN0YXRpY19jYXN0PEdUbHNDZXJ0aWZpY2F0
ZUZsYWdzPigwKSkpOworICAgIGF1dG8gY2VydGlmaWNhdGVJbmZvID0gV2ViQ29yZTo6Q2VydGlm
aWNhdGVJbmZvKGNlcnRpZmljYXRlLCBzdGF0aWNfY2FzdDxHVGxzQ2VydGlmaWNhdGVGbGFncz4o
MCkpOwogICAgIGF1dG8mIHdlYnNpdGVEYXRhU3RvcmUgPSB3ZWJraXRXZWJzaXRlRGF0YU1hbmFn
ZXJHZXREYXRhU3RvcmUoY29udGV4dC0+cHJpdi0+d2Vic2l0ZURhdGFNYW5hZ2VyLmdldCgpKTsK
LSAgICB3ZWJzaXRlRGF0YVN0b3JlLmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9z
dCh3ZWJDZXJ0aWZpY2F0ZUluZm8ucHRyKCksIFN0cmluZzo6ZnJvbVVURjgoaG9zdCkpOworICAg
IHdlYnNpdGVEYXRhU3RvcmUuYWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNl
cnRpZmljYXRlSW5mbywgU3RyaW5nOjpmcm9tVVRGOChob3N0KSk7CiB9CiAKIC8qKgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmNwcAppbmRleCAzNTMyZTBkNzY4YWQ0YjgzZmJmNWIxMDFhNzQxZDdmNWIwNDAxYjU3Li4z
ZGE2YzExNmI5MzY4OGQxYmFjNzNkN2U2ZDlkNDk5ZTA0NDEyYWZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cApAQCAtMTY3Miw5ICsxNjcyLDE0IEBAIHN0YXRpYyBTdHJpbmcgY29tcHV0ZU1lZGlhS2V5Rmls
ZShjb25zdCBTdHJpbmcmIG1lZGlhS2V5RGlyZWN0b3J5KQogICAgIHJldHVybiBGaWxlU3lzdGVt
OjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobWVkaWFLZXlEaXJlY3RvcnksICJTZWN1cmVTdG9w
LnBsaXN0Iik7CiB9CiAKLXZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6YWxsb3dTcGVjaWZpY0hUVFBT
Q2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFdlYkNlcnRpZmljYXRlSW5mbyogY2VydGlmaWNhdGUs
IGNvbnN0IFN0cmluZyYgaG9zdCkKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6YWxsb3dTcGVjaWZp
Y0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYg
Y2VydGlmaWNhdGUsIGNvbnN0IFN0cmluZyYgaG9zdCkKIHsKLSAgICBuZXR3b3JrUHJvY2Vzcygp
LnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpBbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZp
Y2F0ZUZvckhvc3QoY2VydGlmaWNhdGUtPmNlcnRpZmljYXRlSW5mbygpLCBob3N0KSwgMCk7Cisg
ICAgbmV0d29ya1Byb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6QWxsb3dT
cGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNlcnRpZmljYXRlLCBob3N0KSwgMCk7Cit9
CisKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9j
YWxQQ01UZXN0aW5nKGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGUp
Cit7CisgICAgbmV0d29ya1Byb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6
QWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKHNlc3Npb25JRCgpLCBj
ZXJ0aWZpY2F0ZSksIDApOwogfQogCiBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
PiBXZWJzaXRlRGF0YVN0b3JlOjptZWRpYUtleU9yaWdpbnMoY29uc3QgU3RyaW5nJiBtZWRpYUtl
eXNTdG9yYWdlRGlyZWN0b3J5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDAyNjg3MzE1YjZiOTUzMDAyNjIz
ZTAxOTU3NzQyZTk1NmNlZGZmNDAuLjE2MWNkZTZhMTcxYmNiMzAxZWRkOGI5ZTNjZDRhZTI2YmFk
NTFmYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTcyLDYgKzcyLDcgQEAgY2xhc3MgSFRUUENvb2tpZVN0
b3JlOwogfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDZXJ0aWZpY2F0ZUluZm87CiBj
bGFzcyBSZWdpc3RyYWJsZURvbWFpbjsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogCkBAIC04NSw3
ICs4Niw2IEBAIGNsYXNzIFNlY0tleVByb3h5U3RvcmU7CiBjbGFzcyBEZXZpY2VJZEhhc2hTYWx0
U3RvcmFnZTsKIGNsYXNzIE5ldHdvcmtQcm9jZXNzUHJveHk7CiBjbGFzcyBTT0F1dGhvcml6YXRp
b25Db29yZGluYXRvcjsKLWNsYXNzIFdlYkNlcnRpZmljYXRlSW5mbzsKIGNsYXNzIFdlYlBhZ2VQ
cm94eTsKIGNsYXNzIFdlYlByb2Nlc3NQb29sOwogY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OwpAQCAt
MjYyLDcgKzI2Miw4IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyB2b2lkIHNldENhY2hlZFByb2Nl
c3NTdXNwZW5zaW9uRGVsYXlGb3JUZXN0aW5nKFNlY29uZHMpOwogCi0gICAgdm9pZCBhbGxvd1Nw
ZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgV2ViQ2VydGlmaWNhdGVJbmZvKiwg
Y29uc3QgU3RyaW5nJiBob3N0KTsKKyAgICB2b2lkIGFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmlj
YXRlRm9ySG9zdChjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mLCBjb25zdCBTdHJpbmcm
IGhvc3QpOworICAgIHZvaWQgYWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0
aW5nKGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYpOwogCiAgICAgRGV2aWNlSWRIYXNo
U2FsdFN0b3JhZ2UmIGRldmljZUlkSGFzaFNhbHRTdG9yYWdlKCkgeyByZXR1cm4gbV9kZXZpY2VJ
ZEhhc2hTYWx0U3RvcmFnZS5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTI3ODM5MzQ0ZTYxOTdlZjViMzYzYmE5YWIzNTIwODcy
NGQwNGNlMC4uNjkzOTBmNWRiMDg5NDhlYmJhYzZiMzk3MTIwZGM0OTEzOWE3MmRjMyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDIxLTA5LTA5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgQWRkIGluZnJhc3RydWN0dXJlIHRvIGFsbG93IFRMUyBkdXJpbmcgUENN
IHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzAxMzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OmRlbGVnYXRlQWxsb3dpbmdBbGxUTFMpOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6cnVuQmFzaWNFdmVudEF0dHJpYnV0aW9uVGVzdCk6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMS0wOS0wOSAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggc29tZSBsbGRiIGRhdGEgcHJvdmlkZXIg
aXNzdWVzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0V2ZW50QXR0cmlidXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0V2ZW50QXR0cmlidXRpb24ubW0KaW5kZXggYjZiYmFhNTIxNTJiZjEyYWJlODkyODU1NDVk
YjUyMjU1ZTA3MmIxMS4uODdkN2ZlOGVlN2U4ODdiMjBiN2U4YTY2N2Q4OTQ3MTY0N2E2Mzk5NyAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0
dHJpYnV0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
RXZlbnRBdHRyaWJ1dGlvbi5tbQpAQCAtNzUsNiArNzUsMjYgQEAKIAogbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkgewogCitzdGF0aWMgUmV0YWluUHRyPFNlY1RydXN0UmVmPiBzZWNUcnVzdEZyb21D
ZXJ0aWZpY2F0ZUNoYWluKE5TQXJyYXkgKmNoYWluKQoreworICAgIFNlY1RydXN0UmVmIHRydXN0
UmVmID0gbnVsbHB0cjsKKyAgICBpZiAoU2VjVHJ1c3RDcmVhdGVXaXRoQ2VydGlmaWNhdGVzKChf
X2JyaWRnZSBDRkFycmF5UmVmKWNoYWluLCBudWxscHRyLCAmdHJ1c3RSZWYpICE9IG5vRXJyKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gYWRvcHRDRih0cnVzdFJlZik7Cit9
CisKK3N0YXRpYyBUZXN0TmF2aWdhdGlvbkRlbGVnYXRlICpkZWxlZ2F0ZUFsbG93aW5nQWxsVExT
KCkKK3sKKyAgICBzdGF0aWMgUmV0YWluUHRyPFRlc3ROYXZpZ2F0aW9uRGVsZWdhdGU+IGRlbGVn
YXRlID0gW10geworICAgICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbVGVzdE5hdmlnYXRp
b25EZWxlZ2F0ZSBuZXddKTsKKyAgICAgICAgZGVsZWdhdGUuZ2V0KCkuZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlID0gXihXS1dlYlZpZXcgKiwgTlNVUkxBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSAqY2hhbGxlbmdlLCB2b2lkICheY29tcGxldGlvbkhhbmRsZXIpKE5TVVJMU2Vzc2lv
bkF1dGhDaGFsbGVuZ2VEaXNwb3NpdGlvbiwgTlNVUkxDcmVkZW50aWFsICopKSB7CisgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlVXNlQ3JlZGVu
dGlhbCwgW05TVVJMQ3JlZGVudGlhbCBjcmVkZW50aWFsRm9yVHJ1c3Q6Y2hhbGxlbmdlLnByb3Rl
Y3Rpb25TcGFjZS5zZXJ2ZXJUcnVzdF0pOworICAgICAgICB9OworICAgICAgICByZXR1cm4gZGVs
ZWdhdGU7CisgICAgfSgpOworICAgIHJldHVybiBkZWxlZ2F0ZS5nZXQoKTsKK30KKwogc3RhdGlj
IE5TVVJMICpleGFtcGxlVVJMKCkKIHsKICAgICByZXR1cm4gW05TVVJMIFVSTFdpdGhTdHJpbmc6
QCJodHRwczovL2V4YW1wbGUuY29tLyJdOwpAQCAtMTIyLDkgKzE0MiwxMCBAQCB2b2lkIHJ1bkJh
c2ljRXZlbnRBdHRyaWJ1dGlvblRlc3QoV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqY29uZmlndXJh
dGlvbiwgRnVuY3RpbwogICAgIE5TVVJMICpzZXJ2ZXJVUkwgPSBzZXJ2ZXIucmVxdWVzdCgpLlVS
TDsKIAogICAgIGF1dG8gd2ViVmlldyA9IGNvbmZpZ3VyYXRpb24gPyBhZG9wdE5TKFtbV0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdFplcm8gY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uXSkgOiBhZG9wdE5TKFtXS1dlYlZpZXcgbmV3XSk7CisgICAgd2ViVmlldy5nZXQoKS5u
YXZpZ2F0aW9uRGVsZWdhdGUgPSBkZWxlZ2F0ZUFsbG93aW5nQWxsVExTKCk7CiAgICAgYWRkQXR0
cmlidXRpb25Ub1dlYlZpZXcod2ViVmlldy5nZXQoKSwgc2VydmVyKTsKICAgICBbW3dlYlZpZXcg
Y29uZmlndXJhdGlvbl0ud2Vic2l0ZURhdGFTdG9yZSBfc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0VuYWJsZWQ6WUVTXTsKLSAgICBbW3dlYlZpZXcgY29uZmlndXJhdGlvbl0ud2Vic2l0ZURhdGFT
dG9yZSBfYWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluOkBbKGlkKXRlc3RDZXJ0aWZpY2F0ZSgpLmdl
dCgpXSBmb3JIb3N0OnNlcnZlclVSTC5ob3N0XTsKKyAgICBbW3dlYlZpZXcgY29uZmlndXJhdGlv
bl0ud2Vic2l0ZURhdGFTdG9yZSBfdHJ1c3RTZXJ2ZXJGb3JMb2NhbFBDTVRlc3Rpbmc6c2VjVHJ1
c3RGcm9tQ2VydGlmaWNhdGVDaGFpbihAWyhpZCl0ZXN0Q2VydGlmaWNhdGUoKS5nZXQoKV0pLmdl
dCgpXTsKICAgICBbd2ViVmlldyBfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlv
blJlcG9ydFVSTHNGb3JUZXN0aW5nOnNlcnZlclVSTCBkZXN0aW5hdGlvblVSTDpleGFtcGxlVVJM
KCkgY29tcGxldGlvbkhhbmRsZXI6XnsKICAgICAgICAgW3dlYlZpZXcgX3NldFByaXZhdGVDbGlj
a01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3Rpbmc6WUVTIGNvbXBsZXRpb25IYW5kbGVy
Ol57CiAgICAgICAgICAgICBOU1N0cmluZyAqaHRtbCA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9y
bWF0OkAiPHNjcmlwdD5mZXRjaCgnJUBjb252ZXJzaW9uUmVxdWVzdEJlZm9yZVJlZGlyZWN0Jyx7
bW9kZTonbm8tY29ycyd9KTwvc2NyaXB0PiIsIHNlcnZlclVSTF07CkBAIC0yNzAsOSArMjkxLDEw
IEBAIFRFU1QoRXZlbnRBdHRyaWJ1dGlvbiwgRnJhdWRQcmV2ZW50aW9uKQogICAgIE5TVVJMICpz
ZXJ2ZXJVUkwgPSBzZXJ2ZXIucmVxdWVzdCgpLlVSTDsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1dLV2ViVmlldyBuZXddKTsKKyAgICB3ZWJWaWV3LmdldCgpLm5hdmlnYXRpb25EZWxl
Z2F0ZSA9IGRlbGVnYXRlQWxsb3dpbmdBbGxUTFMoKTsKICAgICBbd2ViVmlldyBfYWRkRXZlbnRB
dHRyaWJ1dGlvbldpdGhTb3VyY2VJRDo0MiBkZXN0aW5hdGlvblVSTDpleGFtcGxlVVJMKCkgc291
cmNlRGVzY3JpcHRpb246QCJ0ZXN0IHNvdXJjZSBkZXNjcmlwdGlvbiIgcHVyY2hhc2VyOkAidGVz
dCBwdXJjaGFzZXIiIHJlcG9ydEVuZHBvaW50OnNlcnZlclVSTCBvcHRpb25hbE5vbmNlOkAiQUJD
REVGYWJjZGVmMDEyMzQ1Njc4OSJdOwogICAgIFtbd2ViVmlldyBjb25maWd1cmF0aW9uXS53ZWJz
aXRlRGF0YVN0b3JlIF9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDpZRVNdOwotICAg
IFtbd2ViVmlldyBjb25maWd1cmF0aW9uXS53ZWJzaXRlRGF0YVN0b3JlIF9hbGxvd1RMU0NlcnRp
ZmljYXRlQ2hhaW46QFsoaWQpdGVzdENlcnRpZmljYXRlKCkuZ2V0KCldIGZvckhvc3Q6c2VydmVy
VVJMLmhvc3RdOworICAgIFtbd2ViVmlldyBjb25maWd1cmF0aW9uXS53ZWJzaXRlRGF0YVN0b3Jl
IF90cnVzdFNlcnZlckZvckxvY2FsUENNVGVzdGluZzpzZWNUcnVzdEZyb21DZXJ0aWZpY2F0ZUNo
YWluKEBbKGlkKXRlc3RDZXJ0aWZpY2F0ZSgpLmdldCgpXSkuZ2V0KCldOwogCiAgICAgW3dlYlZp
ZXcgX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxzRm9yVGVz
dGluZzpzZXJ2ZXJVUkwgZGVzdGluYXRpb25VUkw6ZXhhbXBsZVVSTCgpIGNvbXBsZXRpb25IYW5k
bGVyOl57CiAgICAgICAgIFt3ZWJWaWV3IF9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJy
aWRlVGltZXJGb3JUZXN0aW5nOllFUyBjb21wbGV0aW9uSGFuZGxlcjpeewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437841</attachid>
            <date>2021-09-09 23:33:55 -0700</date>
            <delta_ts>2021-09-09 23:57:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230137-20210909233354.patch</filename>
            <type>text/plain</type>
            <size>57571</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNhNmVkOGNiNWQ3NzU3MDYz
NDYxZjRmYzZkODdjOTNhNDBmMWQ2MzQuLjdjMjRiNmZmOWMxNGNiMmJhNGE2YjQ0MjE4Njg0Y2Nj
MDZkNmM3ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODAgQEAKKzIwMjEtMDktMDkgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgaW5mcmFz
dHJ1Y3R1cmUgdG8gYWxsb3cgVExTIGR1cmluZyBQQ00gdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDEzNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHdlcmUgdXNpbmcgTmV0d29ya1Nlc3Np
b25Db2NvYTo6YWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdCBidXQgdGhhdCBk
b2Vzbid0IHdvcmsgd2hlbiB3ZSBhcmUgaW4gYSBkYWVtb24sCisgICAgICAgIHdoZXJlIHRoZXJl
IGlzIG5vIE5ldHdvcmtTZXNzaW9uIG9yIE5ldHdvcmtTZXNzaW9uQ29jb2EuICBXZSBuZWVkZWQg
YSBuZXcgU1BJIGZvciBzZXR0aW5nIHRoZSB0ZXN0IFRMUyBjZXJ0aWZpY2F0ZXMgd2hlcmV2ZXIK
KyAgICAgICAgdGhlIG5ldHdvcmtpbmcgaXMgYmVpbmcgZG9uZS4KKworICAgICAgICBJIGFsc28g
Zm91bmQgdGhhdCB3ZSB3ZXJlIHVubmVjZXNzYXJpbHkgcGluZ2luZyBleGFtcGxlLmNvbSB3aGVu
IHJ1bm5pbmcgdGhlc2UgdW5pdCB0ZXN0cy4gIEkgYWRkZWQgYW4gZWFybHkgcmV0dXJuIHRvIHBy
ZXZlbnQgdGhhdAorICAgICAgICB3aGVuIHJ1bm5pbmcgdGVzdHMgd2l0aCBhIGxvY2FsIHNlcnZl
ci4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9y
V2ViU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFsbG93VExTQ2Vy
dGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lv
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjphbGxvd1RMU0NlcnRpZmlj
YXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtTZXNzaW9uLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UENNOjpEZWNvZGVyOjp+RGVjb2Rlcik6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6RGVj
b2Rlcjo6ZGVjb2RlRml4ZWRMZW5ndGhSZWZlcmVuY2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rl
ci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1By
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9j
YWxQQ01UZXN0aW5nKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXJJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpQQ006Om1lc3NhZ2VUeXBl
U2VuZHNSZXBseSk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6ZGVjb2RlTWVzc2FnZUFuZFNlbmRU
b01hbmFnZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UENNOjpNYW5hZ2VyUHJv
eHk6OmFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQQ006Ok5ldHdvcmtMb2FkZXI6OmFsbG93VExTQ2VydGlmaWNh
dGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVy
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29j
b2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyQ29jb2EubW06CisgICAgICAg
IChhbGxvd2VkTG9jYWxUZXN0U2VydmVyVHJ1c3QpOgorICAgICAgICAodHJ1c3RzU2VydmVyRm9y
TG9jYWxUZXN0cyk6CisgICAgICAgICgtW1dLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZUFsbG93aW5n
T25seU5vblJlZGlyZWN0ZWRKU09OIFVSTFNlc3Npb246dGFzazpkaWRSZWNlaXZlQ2hhbGxlbmdl
OmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoV2ViS2l0OjpQQ006Ok5ldHdvcmtMb2Fk
ZXI6OmFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyk6CisgICAgICAg
IChXZWJLaXQ6OlBDTTo6TmV0d29ya0xvYWRlcjo6c3RhcnQpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JI
b3N0KTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nl
c3NNYWMubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphbGxvd1NwZWNpZmlj
SFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QpOiBEZWxldGVkLgorICAgICAgICAqIFBsYXRmb3JtL0lQ
Qy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVz
L0NvY29hL0RhZW1vbi9QQ01EYWVtb25FbnRyeVBvaW50Lm1tOgorICAgICAgICAoV2ViS2l0Ojpz
dGFydExpc3RlbmluZ0Zvck1hY2hTZXJ2aWNlQ29ubmVjdGlvbnMpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvY2YvQXJndW1lbnRD
b2RlcnNDRi5jcHA6CisgICAgICAgICogU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuaDoKKyAg
ICAgICAgKiBTaGFyZWQvY3VybC9XZWJDb3JlQXJndW1lbnRDb2RlcnNDdXJsLmNwcDoKKyAgICAg
ICAgKiBTaGFyZWQvZ2xpYi9Bcmd1bWVudENvZGVyc0dMaWIuY3BwOgorICAgICAgICAqIFNoYXJl
ZC9nbGliL0FyZ3VtZW50Q29kZXJzR0xpYi5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzTWFjLm1tOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNv
cmU6OkNlcnRpZmljYXRlSW5mbz46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
c291cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNTb3VwLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+OjpkZWNvZGVQbGF0Zm9ybURh
dGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1t
OgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2FsbG93VExTQ2VydGlmaWNhdGVDaGFp
bjpmb3JIb3N0Ol0pOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX3RydXN0U2VydmVy
Rm9yTG9jYWxQQ01UZXN0aW5nOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRXZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9hbGxvd190
bHNfY2VydGlmaWNhdGVfZm9yX2hvc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9y
ZTo6YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KToKKyAgICAgICAgKFdlYktp
dDo6V2Vic2l0ZURhdGFTdG9yZTo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01U
ZXN0aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5oOgorCiAyMDIxLTA5LTA5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgTW9kZXJuaXplIENlcnRpZmljYXRlSW5mbyBkZWNvZGVyCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDM2
ZThmZWExNzI5ODIwZGNlYzhhMDFhNDQ1ZGEwZThkZWJjOTRkYzAuLmEzNWNlYTYzNTVmNWU5NjFk
OGUyODM3YTNhYmNjMmQwZTMyZmUwNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0yMTc0LDEwICsyMTc0LDE3IEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OnNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbCBjYWNoZU1vZGVsKQogCiB2b2lk
IE5ldHdvcmtQcm9jZXNzOjpzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldChi
b29sIGFsbG93cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogeworICAgIC8vIEZJWE1FOiBTdG9wIHVzaW5nIHRoaXMgd2hlbiBIQVZFKE5TVVJMU0VTU0lP
Tl9XRUJTT0NLRVQpIGlzIHRydWUuCiAgICAgRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzZXRB
bGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZShhbGxvd3MpOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7
CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxv
Y2FsUENNVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OkNl
cnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQoreworICAgIGlmIChhdXRvKiBuZXR3b3Jr
U2Vzc2lvbiA9IG1fbmV0d29ya1Nlc3Npb25zLmdldChzZXNzaW9uSUQpKQorICAgICAgICBuZXR3
b3JrU2Vzc2lvbi0+YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKGNl
cnRpZmljYXRlSW5mbyk7Cit9CisKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmxvZ0RpYWdub3N0aWNN
ZXNzYWdlKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgU2hvdWxkU2FtcGxlIHNob3Vs
ZFNhbXBsZSkKIHsKICAgICBpZiAoIURpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpzaG91bGRMb2dB
ZnRlclNhbXBsaW5nKHNob3VsZFNhbXBsZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggMzQ1NTY0NzYyMTVmNjlkZDZiYWY0Njc4YmQ3NDk0
NDlmYWViYjNlYy4uMjhjYmZmNWQ0MTAzOGVhN2ZkZmI4MGQ0N2I2NGM2MmNjMDFkZTRlYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtNDUw
LDggKzQ1MCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwp
OwogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbFN5bmNocm9ub3VzbHlGb3JUZXN0aW5nKENhY2hlTW9k
ZWwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBhbGxvd1NwZWNpZmlj
SFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiwg
Y29uc3QgU3RyaW5nJiBob3N0KTsKKyAgICB2b2lkIGFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZv
ckxvY2FsUENNVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNh
dGVJbmZvJik7CiAgICAgdm9pZCBzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tl
dChib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIAorCiAgICAgdm9pZCBm
bHVzaENvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAKICAgICB2b2lkIGFkZFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyhQQUw6OlNlc3Npb25JRCwg
V2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzJiYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVz
c2FnZXMuaW4KaW5kZXggOWI2MjEzM2IwNWY4MzQ3YzI1ODMwNWY0MWZiYjc3Nzc0OTBhNDBmOS4u
NTE4MGM4Mjk2NTBhZDU2ZTBiMWVmZDNiYzQ1MjBjYmYzMWEyOTczMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmlu
CkBAIC02Niw2ICs2Niw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2Vp
dmVyIHsKICAgICBGbHVzaENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBB
c3luYwogCiAgICAgQWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KFdlYkNvcmU6
OkNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZSwgU3RyaW5nIGhvc3QpCisgICAgQWxsb3dUTFND
ZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvIGNlcnRpZmljYXRlKQogCiAgICAgU2V0Q2FjaGVN
b2RlbChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpDYWNoZU1vZGVsIGNhY2hlTW9kZWwpCiAgICAgU2V0
Q2FjaGVNb2RlbFN5bmNocm9ub3VzbHlGb3JUZXN0aW5nKGVudW06dWludDhfdCBXZWJLaXQ6OkNh
Y2hlTW9kZWwgY2FjaGVNb2RlbCkgLT4gKCkgU3luY2hyb25vdXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKaW5kZXggZGZkZTc4ZGE2MWQ5YmZh
OGEzYzVhNGMxYzhjYTk3YTAyZTM1M2ZiOC4uNWUxNWY2MzQzNzM0YzlkMWI1M2Q4ZGMxMzE5OTA1
ZDg5MjJmOWRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbi5jcHAKQEAgLTM5MCw2ICszOTAsMTEgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbjo6Zmly
ZVByaXZhdGVDbGlja01lYXN1cmVtZW50VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcoKQogICAg
IHByaXZhdGVDbGlja01lYXN1cmVtZW50KCkuc3RhcnRUaW1lckltbWVkaWF0ZWx5Rm9yVGVzdGlu
ZygpOwogfQogCit2b2lkIE5ldHdvcmtTZXNzaW9uOjphbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5G
b3JMb2NhbFBDTVRlc3RpbmcoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZp
Y2F0ZUluZm8pCit7CisgICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKS5hbGxvd1RMU0NlcnRp
ZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoY2VydGlmaWNhdGVJbmZvKTsKK30KKwogdm9p
ZCBOZXR3b3JrU2Vzc2lvbjo6YWRkS2VwdEFsaXZlTG9hZChSZWY8TmV0d29ya1Jlc291cmNlTG9h
ZGVyPiYmIGxvYWRlcikKIHsKICAgICBBU1NFUlQobV9zZXNzaW9uSUQgPT0gbG9hZGVyLT5zZXNz
aW9uSUQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
LmgKaW5kZXggZDhhYWIzZGJhNDliNzY3ZjNlZjA5OTRiZjJjYmU5NTFmYTQxNjcyOC4uODIyMTVj
NjkzMGNjNmY0M2FhNGVjYjYzMGM0OThhMzliNTExYmFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBD
ZXJ0aWZpY2F0ZUluZm87CiBjbGFzcyBOZXR3b3JrU3RvcmFnZVNlc3Npb247CiBjbGFzcyBSZXNv
dXJjZVJlcXVlc3Q7CiBlbnVtIGNsYXNzIEluY2x1ZGVIdHRwT25seUNvb2tpZXMgOiBib29sOwpA
QCAtMTM3LDYgKzEzOCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1
cmVtZW50RXBoZW1lcmFsTWVhc3VyZW1lbnRGb3JUZXN0aW5nKGJvb2wpOwogICAgIHZvaWQgc2V0
UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhTdHJpbmcmJiB1bmxpbmthYmxlVG9r
ZW4sIFN0cmluZyYmIHNlY3JldFRva2VuLCBTdHJpbmcmJiBzaWduYXR1cmUsIFN0cmluZyYmIGtl
eUlEKTsKICAgICB2b2lkIGZpcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRpbWVySW1tZWRpYXRl
bHlGb3JUZXN0aW5nKCk7CisgICAgdm9pZCBhbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2Nh
bFBDTVRlc3RpbmcoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJik7CiAKICAgICB2b2lk
IGFkZEtlcHRBbGl2ZUxvYWQoUmVmPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4mJik7CiAgICAgdm9p
ZCByZW1vdmVLZXB0QWxpdmVMb2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRlciYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERl
Y29kZXIuY3BwCmluZGV4IDhhMjBlOGMyZmNjYTk5YzEwODYyNTQwN2ExZjJjM2NjNDUyMzNlNDUu
LjQ5M2MyY2E3ZDkzYzNhZjVmNjU3OWExNWE2MjdkMjU2MTU1ZmRiZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGVj
b2Rlci5jcHAKQEAgLTMwLDYgKzMwLDExIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBuYW1lc3Bh
Y2UgUENNIHsKIAorRGVjb2Rlcjo6fkRlY29kZXIoKQoreworICAgIEFTU0VSVChtX2J1ZmZlclBv
c2l0aW9uID09IG1fYnVmZmVyLnNpemUoKSk7Cit9CisKIGJvb2wgRGVjb2Rlcjo6YnVmZmVySXNM
YXJnZUVub3VnaFRvQ29udGFpbkJ5dGVzKHNpemVfdCBieXRlcykgY29uc3QKIHsKICAgICByZXR1
cm4gYnl0ZXMgPD0gbV9idWZmZXIuc2l6ZSgpIC0gbV9idWZmZXJQb3NpdGlvbjsKQEAgLTQ0LDYg
KzQ5LDE1IEBAIGJvb2wgRGVjb2Rlcjo6ZGVjb2RlRml4ZWRMZW5ndGhEYXRhKHVpbnQ4X3QqIGRh
dGEsIHNpemVfdCBzaXplLCBzaXplX3QpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2NvbnN0IHVp
bnQ4X3QqIERlY29kZXI6OmRlY29kZUZpeGVkTGVuZ3RoUmVmZXJlbmNlKHNpemVfdCBzaXplLCBz
aXplX3QpCit7CisgICAgaWYgKCFidWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluQnl0ZXMoc2l6
ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGNvbnN0IHVpbnQ4X3QqIGRhdGEgPSBt
X2J1ZmZlci5kYXRhKCkgKyBtX2J1ZmZlclBvc2l0aW9uOworICAgIG1fYnVmZmVyUG9zaXRpb24g
Kz0gc2l6ZTsKKyAgICByZXR1cm4gZGF0YTsKK30KKwogfSAvLyBuYW1lc3BhY2UgUENNCiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29k
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmgKaW5kZXggMjg3Nzk5ZTMwZWU1MzA3
NzJjOWQxNDdjYzM4N2Y1NWY1YjhjMzU1Ni4uMmQzYTY3MGJjNWIwYzRjMThiNDM5MmM0MjBhYjQx
MjYzZDQ3N2NhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1By
aXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rlci5oCkBAIC0zNSw3ICszNSw4IEBAIGNsYXNzIERl
Y29kZXIgewogcHVibGljOgogICAgIERlY29kZXIoVmVjdG9yPHVpbnQ4X3Q+JiYgYnVmZmVyKQog
ICAgICAgICA6IG1fYnVmZmVyKFdURk1vdmUoYnVmZmVyKSkgeyB9Ci0gICAgCisgICAgfkRlY29k
ZXIoKTsKKwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAgRGVjb2RlciYgb3BlcmF0b3I+
PihzdGQ6Om9wdGlvbmFsPFQ+JiB0KQogICAgIHsKQEAgLTU1LDcgKzU2LDggQEAgcHVibGljOgog
ICAgIH0KIAogICAgIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZUZpeGVkTGVuZ3RoRGF0
YSh1aW50OF90KiBkYXRhLCBzaXplX3QsIHNpemVfdCBhbGlnbm1lbnQpOwotICAgIAorICAgIGNv
bnN0IHVpbnQ4X3QqIGRlY29kZUZpeGVkTGVuZ3RoUmVmZXJlbmNlKHNpemVfdCwgc2l6ZV90KTsK
KwogcHJpdmF0ZToKICAgICBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBidWZmZXJJc0xhcmdlRW5v
dWdoVG9Db250YWluQnl0ZXMoc2l6ZV90KSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwCmlu
ZGV4IDViMTU5OWYwMzc4Y2U2MzVlM2RmY2NiZThmMmM2Y2NiYzFjNWJiOGUuLmY0OTk4Mzk4ZThj
MWIzYmQyMjhlY2FlNjQyNGU2YTU2MGI5NWE4YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAKQEAg
LTU0OCw0ICs1NDgsOSBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6ZGVz
dHJveVN0b3JlRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2bwogICAgIH0pOwogfQogCit2
b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNo
YWluRm9yTG9jYWxQQ01UZXN0aW5nKGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2Vy
dGlmaWNhdGVJbmZvKQoreworICAgIFBDTTo6TmV0d29ya0xvYWRlcjo6YWxsb3dUTFNDZXJ0aWZp
Y2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKGNlcnRpZmljYXRlSW5mbyk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmgKaW5kZXggMjZlN2M1NTkxNDQ3ZmViZjU3
ODUxZWFlNWQyZTBmNDZkOWJlZTAxZi4uYmM1YmM5ZTc0YWMwODMxYWQ3Y2I5MDE3NmJhMTA5NTYw
Y2IxOTliYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oCkBAIC02Miw2ICs2Miw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoU3RyaW5nJiYgdW5s
aW5rYWJsZVRva2VuLCBTdHJpbmcmJiBzZWNyZXRUb2tlbiwgU3RyaW5nJiYgc2lnbmF0dXJlLCBT
dHJpbmcmJiBrZXlJRCkgZmluYWw7CiAgICAgdm9pZCBzdGFydFRpbWVySW1tZWRpYXRlbHlGb3JU
ZXN0aW5nKCkgZmluYWw7CiAgICAgdm9pZCBkZXN0cm95U3RvcmVGb3JUZXN0aW5nKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CisgICAgdm9pZCBhbGxvd1RMU0NlcnRpZmljYXRl
Q2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJikg
ZmluYWw7CiAKIHByaXZhdGU6CiAgICAgUENNOjpTdG9yZSYgc3RvcmUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcAppbmRleCBkNzJhZmQ5ZTQ1MGY4NWE3ZmE0MTQ5YWE2
ODNhOGMzMzkyOGU3OTQwLi41ZDEzZTc0YzFkZDI2ODg3OGYyOWM5NzJkYTVmNzFjNzkxMTYyMmVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwCkBAIC0zMiw2ICszMiw3
IEBACiAjaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmgiCiAjaW5jbHVk
ZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmNvZGVyLmgiCiAjaW5jbHVkZSAiUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC0xMTQsNiArMTE1LDEwIEBAIEFSR1VNRU5U
UygpCiBSRVBMWSgpCiBFTkQKIAorRlVOQ1RJT04oYWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9y
TG9jYWxQQ01UZXN0aW5nKQorQVJHVU1FTlRTKFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbykKK0VO
RAorCiAjdW5kZWYgRlVOQ1RJT04KICN1bmRlZiBBUkdVTUVOVFMKICN1bmRlZiBSRVBMWQpAQCAt
MTQ5LDYgKzE1NCw3IEBAIGJvb2wgbWVzc2FnZVR5cGVTZW5kc1JlcGx5KE1lc3NhZ2VUeXBlIG1l
c3NhZ2VUeXBlKQogICAgIGNhc2UgTWVzc2FnZVR5cGU6OlNldEVwaGVtZXJhbE1lYXN1cmVtZW50
Rm9yVGVzdGluZzoKICAgICBjYXNlIE1lc3NhZ2VUeXBlOjpTZXRQQ01GcmF1ZFByZXZlbnRpb25W
YWx1ZXNGb3JUZXN0aW5nOgogICAgIGNhc2UgTWVzc2FnZVR5cGU6OlN0YXJ0VGltZXJJbW1lZGlh
dGVseUZvclRlc3Rpbmc6CisgICAgY2FzZSBNZXNzYWdlVHlwZTo6QWxsb3dUTFNDZXJ0aWZpY2F0
ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nOgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgY2Fz
ZSBNZXNzYWdlVHlwZTo6TWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4
cGlyZWRGb3JUZXN0aW5nOgogICAgIGNhc2UgTWVzc2FnZVR5cGU6OkRlc3Ryb3lTdG9yZUZvclRl
c3Rpbmc6CkBAIC0yNTAsNiArMjU2LDkgQEAgdm9pZCBkZWNvZGVNZXNzYWdlQW5kU2VuZFRvTWFu
YWdlcihNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwgVmVjdG9yPHVpbnQ4X3Q+JiYgZW4KICAgICBj
YXNlIFBDTTo6TWVzc2FnZVR5cGU6OkRlc3Ryb3lTdG9yZUZvclRlc3Rpbmc6CiAgICAgICAgIGhh
bmRsZVBDTU1lc3NhZ2VXaXRoUmVwbHk8TWVzc2FnZUluZm86OmRlc3Ryb3lTdG9yZUZvclRlc3Rp
bmc+KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpLCBXVEZNb3ZlKHJlcGx5U2VuZGVyKSk7CiAgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUENNOjpNZXNzYWdlVHlwZTo6QWxsb3dUTFNDZXJ0aWZpY2F0
ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nOgorICAgICAgICBoYW5kbGVQQ01NZXNzYWdlPE1lc3Nh
Z2VJbmZvOjphbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3Rpbmc+KFdURk1v
dmUoZW5jb2RlZE1lc3NhZ2UpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuaAppbmRleCBhMjkyZmE5ZjA5NTViM2UwMjI0NDY1MDM3
MWVkYjQ5MzljMDcxZmFlLi40MDM2MmRmYTIyMTRlYzgzN2U3NTdlOTRiY2Q0YWU4YTNjYjI1MGQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmgKQEAgLTI5LDYgKzI5LDEwIEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgogI2luY2x1ZGUgPHd0Zi9F
bnVtVHJhaXRzLmg+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENlcnRpZmljYXRlSW5m
bzsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGVudW0gY2xhc3MgUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRBdHRyaWJ1dGlvblR5cGUgOiBib29sIHsgVW5hdHRyaWJ1dGVkLCBBdHRyaWJ1dGVk
IH07CkBAIC02NCw2ICs2OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0UENNRnJh
dWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhTdHJpbmcmJiB1bmxpbmthYmxlVG9rZW4sIFN0
cmluZyYmIHNlY3JldFRva2VuLCBTdHJpbmcmJiBzaWduYXR1cmUsIFN0cmluZyYmIGtleUlEKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcoKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lTdG9yZUZvclRlc3RpbmcoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFsbG93VExTQ2VydGlmaWNh
dGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8m
KSA9IDA7CiB9OwogCiBjb25zdGV4cHIgY29uc3QgY2hhciogcHJvdG9jb2xWZXJzaW9uS2V5IHsg
InZlcnNpb24iIH07CkBAIC04Nyw2ICs5Miw3IEBAIGVudW0gY2xhc3MgTWVzc2FnZVR5cGUgOiB1
aW50OF90IHsKICAgICBTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nLAogICAg
IFN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcsCiAgICAgRGVzdHJveVN0b3JlRm9yVGVz
dGluZywKKyAgICBBbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcKIH07
CiAKIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBwcm90b2NvbEVuY29kZWRNZXNzYWdlS2V5IHsgImVu
Y29kZWQgbWVzc2FnZSIgfTsKQEAgLTExOSw3ICsxMjUsOCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYktpdDo6UENNOjpNZXNzYWdlVHlwZT4gewogICAgICAgICBXZWJLaXQ6OlBD
TTo6TWVzc2FnZVR5cGU6OlNldEVwaGVtZXJhbE1lYXN1cmVtZW50Rm9yVGVzdGluZywKICAgICAg
ICAgV2ViS2l0OjpQQ006Ok1lc3NhZ2VUeXBlOjpTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNG
b3JUZXN0aW5nLAogICAgICAgICBXZWJLaXQ6OlBDTTo6TWVzc2FnZVR5cGU6OlN0YXJ0VGltZXJJ
bW1lZGlhdGVseUZvclRlc3RpbmcsCi0gICAgICAgIFdlYktpdDo6UENNOjpNZXNzYWdlVHlwZTo6
RGVzdHJveVN0b3JlRm9yVGVzdGluZworICAgICAgICBXZWJLaXQ6OlBDTTo6TWVzc2FnZVR5cGU6
OkRlc3Ryb3lTdG9yZUZvclRlc3RpbmcsCisgICAgICAgIFdlYktpdDo6UENNOjpNZXNzYWdlVHlw
ZTo6QWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nCiAgICAgPjsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAKaW5kZXggM2NhZTRlNGZmNThjYjYxZjU1
ZjViNTE5NWJhNWUzZDBiYThkYmRkMy4uMTA4MjY1MmIwMGUyNzEzNGViNDFmMGVlMjFhODZhNTgx
OTU0ODZmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAKQEAgLTE1MSw2ICsxNTEs
MTEgQEAgdm9pZCBNYW5hZ2VyUHJveHk6OmRlc3Ryb3lTdG9yZUZvclRlc3RpbmcoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb24KICAgICBzZW5kTWVzc2FnZVdpdGhSZXBseTxN
ZXNzYWdlVHlwZTo6RGVzdHJveVN0b3JlRm9yVGVzdGluZz4oV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwogfQogCit2b2lkIE1hbmFnZXJQcm94eTo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWlu
Rm9yTG9jYWxQQ01UZXN0aW5nKGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlm
aWNhdGVJbmZvKQoreworICAgIHNlbmRNZXNzYWdlPE1lc3NhZ2VUeXBlOjpBbGxvd1RMU0NlcnRp
ZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3Rpbmc+KGNlcnRpZmljYXRlSW5mbyk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFBDTQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyUHJveHkuaAppbmRleCA4Y2Q0MTE5OTRiNGIwNmYwZjZiNWQ5OTE1ZjJmMmNkZmFjYTk2ZTZm
Li4xNTExMDk4NzY4OTQxN2EzYjE4NmEyNDIwM2NjMWNjMzYyNzZiZjFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXJQcm94eS5oCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFBD
TUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoU3RyaW5nJiYgdW5saW5rYWJsZVRva2Vu
LCBTdHJpbmcmJiBzZWNyZXRUb2tlbiwgU3RyaW5nJiYgc2lnbmF0dXJlLCBTdHJpbmcmJiBrZXlJ
RCkgZmluYWw7CiAgICAgdm9pZCBzdGFydFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nKCkgZmlu
YWw7CiAgICAgdm9pZCBkZXN0cm95U3RvcmVGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJikgZmluYWw7CisgICAgdm9pZCBhbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2Nh
bFBDTVRlc3RpbmcoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJikgZmluYWw7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBQQ00KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3
b3JrTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyLmNwcAppbmRl
eCA0NWEwNWVlMWFiMzZlZTFhN2Q4NDQ3N2ZmYTExNjQ0YjU5ODhmOThhLi43ZGEwOWRkMzY0ZmZj
MWNiNzcxYzliNDBmODM1NTI5ZDZiY2Q3ODcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50TmV0d29ya0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2Fk
ZXIuY3BwCkBAIC0zOCw2ICszOCwxMiBAQCB2b2lkIE5ldHdvcmtMb2FkZXI6OnN0YXJ0KFVSTCYm
LCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudAogICAgIG5v
dEltcGxlbWVudGVkKCk7CiAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9LCB7IH0sIHsgfSk7CiB9
CisKK3ZvaWQgTmV0d29ya0xvYWRlcjo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQ
Q01UZXN0aW5nKGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFBDTQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnROZXR3b3JrTG9hZGVyLmgKaW5kZXggMzAzMzA3N2E1Zjk0M2M0NjZlNjRhYjE2NzQyNTE3M2Ri
MDU0MWVjZC4uOTFhZWI1NDc5M2I2MTJkNTBiODU4NGQzYzlmNmIxZWIyOWY3NjNlOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01l
YXN1cmVtZW50TmV0d29ya0xvYWRlci5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSA8d3Rm
L0pTT05WYWx1ZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ2VydGlmaWNhdGVJ
bmZvOwogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiB9CkBA
IC00Miw2ICs0Myw3IEBAIGNsYXNzIE5ldHdvcmtMb2FkZXIgewogcHVibGljOgogICAgIHVzaW5n
IENhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlZlB0cjxK
U09OOjpPYmplY3Q+Jik+OwogICAgIHN0YXRpYyB2b2lkIHN0YXJ0KFVSTCYmLCBSZWZQdHI8SlNP
Tjo6T2JqZWN0PiYmLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UGNtRGF0YUNh
cnJpZWQsIENhbGxiYWNrJiYpOworICAgIHN0YXRpYyB2b2lkIGFsbG93VExTQ2VydGlmaWNhdGVD
aGFpbkZvckxvY2FsUENNVGVzdGluZyhjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mKTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFBDTQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE5ldHdvcmtMb2FkZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRO
ZXR3b3JrTG9hZGVyQ29jb2EubW0KaW5kZXggN2VhMGU4MWJjMTlkOWE1MDU2MDY0MGYxZGFjZTI1
NDBiMjFmNWY2Zi4uNzcyY2IyNjFmYTllZWYyMjZlZDAyZjQ4NGJhZjAwNmViYzM4OWUyNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlckNvY29hLm1tCkBAIC0y
NywxMiArMjcsMjYgQEAKICNpbXBvcnQgIlByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xv
YWRlci5oIgogCiAjaW1wb3J0ICJOZXR3b3JrRGF0YVRhc2tDb2NvYS5oIgotI2ltcG9ydCAiTmV0
d29ya1Nlc3Npb25Db2NvYS5oIgogI2ltcG9ydCA8V2ViQ29yZS9IVFRQSGVhZGVyVmFsdWVzLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbXBvcnQgPHBhbC9zcGkv
Y2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAorc3Rh
dGljIFJldGFpblB0cjxTZWNUcnVzdFJlZj4mIGFsbG93ZWRMb2NhbFRlc3RTZXJ2ZXJUcnVzdCgp
Cit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJldGFpblB0cjxTZWNUcnVzdFJlZj4+IHNl
cnZlclRydXN0OworICAgIHJldHVybiBzZXJ2ZXJUcnVzdC5nZXQoKTsKK30KKworc3RhdGljIGJv
b2wgdHJ1c3RzU2VydmVyRm9yTG9jYWxUZXN0cyhOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
ICpjaGFsbGVuZ2UpCit7CisgICAgaWYgKCFbY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZS5ob3N0
IGlzRXF1YWxUb1N0cmluZzpAIjEyNy4wLjAuMSJdCisgICAgICAgIHx8ICFhbGxvd2VkTG9jYWxU
ZXN0U2VydmVyVHJ1c3QoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIFdl
YkNvcmU6OmNlcnRpZmljYXRlc01hdGNoKGFsbG93ZWRMb2NhbFRlc3RTZXJ2ZXJUcnVzdCgpLmdl
dCgpLCBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlLnNlcnZlclRydXN0KTsKK30KKwogQGludGVy
ZmFjZSBXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGVBbGxvd2luZ09ubHlOb25SZWRpcmVjdGVkSlNP
TiA6IE5TT2JqZWN0IDxOU1VSTFNlc3Npb25EYXRhRGVsZWdhdGU+CiBAZW5kCiAKQEAgLTUyLDkg
KzY2LDggQEAKIAogLSAodm9pZClVUkxTZXNzaW9uOihOU1VSTFNlc3Npb24gKilzZXNzaW9uIHRh
c2s6KE5TVVJMU2Vzc2lvblRhc2sgKil0YXNrIGRpZFJlY2VpdmVDaGFsbGVuZ2U6KE5TVVJMQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2UgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQg
KF4pKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgTlNV
UkxDcmVkZW50aWFsICpjcmVkZW50aWFsKSljb21wbGV0aW9uSGFuZGxlcgogewotICAgIC8vIEZJ
WE1FOiBBZGQgcGx1Ym1pbmcgc28gdGhhdCB3ZSBjYW4gdGVsbCB0aGUgZGFlbW9uIHdoaWNoIGNl
cnRpZmljYXRlcyB0byBhY2NlcHQgd2l0aG91dCB1c2luZyBOZXR3b3JrU2Vzc2lvbkNvY29hLgog
ICAgIGlmIChbY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZS5hdXRoZW50aWNhdGlvbk1ldGhvZCBp
c0VxdWFsVG9TdHJpbmc6TlNVUkxBdXRoZW50aWNhdGlvbk1ldGhvZFNlcnZlclRydXN0XQotICAg
ICAgICAmJiBOZXR3b3JrU2Vzc2lvbkNvY29hOjphbGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNh
dGVGb3JIb3N0KGNoYWxsZW5nZSkpCisgICAgICAgICYmIHRydXN0c1NlcnZlckZvckxvY2FsVGVz
dHMoY2hhbGxlbmdlKSkKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKE5TVVJMU2Vz
c2lvbkF1dGhDaGFsbGVuZ2VVc2VDcmVkZW50aWFsLCBbTlNVUkxDcmVkZW50aWFsIGNyZWRlbnRp
YWxGb3JUcnVzdDpjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlLnNlcnZlclRydXN0XSk7CiAgICAg
Y29tcGxldGlvbkhhbmRsZXIoTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZVBlcmZvcm1EZWZhdWx0
SGFuZGxpbmcsIG5pbCk7CiB9CkBAIC04OCw4ICsxMDEsMTggQEAgc3RhdGljIE5TVVJMU2Vzc2lv
biAqc3RhdGVsZXNzU2Vzc2lvbldpdGhvdXRSZWRpcmVjdHMoKQogICAgIHJldHVybiBzZXNzaW9u
LmdldCgpLmdldCgpOwogfQogCit2b2lkIE5ldHdvcmtMb2FkZXI6OmFsbG93VExTQ2VydGlmaWNh
dGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8m
IGNlcnRpZmljYXRlSW5mbykKK3sKKyAgICBhbGxvd2VkTG9jYWxUZXN0U2VydmVyVHJ1c3QoKSA9
IGNlcnRpZmljYXRlSW5mby50cnVzdCgpOworfQorCiB2b2lkIE5ldHdvcmtMb2FkZXI6OnN0YXJ0
KFVSTCYmIHVybCwgUmVmUHRyPEpTT046Ok9iamVjdD4mJiBqc29uUGF5bG9hZCwgV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlBjbURhdGFDYXJyaWVkIHBjbURhdGFDYXJyaWVkLCBD
YWxsYmFjayYmIGNhbGxiYWNrKQogeworICAgIC8vIFByZXZlbnQgY29udGFjdGluZyBub24tbG9j
YWwgc2VydmVycyB3aGVuIGEgdGVzdCBjZXJ0aWZpY2F0ZSBjaGFpbiBpcyB1c2VkIGZvciAxMjcu
MC4wLjEuCisgICAgLy8gRklYTUU6IFVzZSBhIHByb3h5IHNlcnZlciB0byBoYXZlIHRlc3RzIGNv
dmVyIHRoZSByZXBvcnRzIHNlbnQgdG8gdGhlIGRlc3RpbmF0aW9uLCB0b28uCisgICAgaWYgKGFs
bG93ZWRMb2NhbFRlc3RTZXJ2ZXJUcnVzdCgpICYmIHVybC5ob3N0KCkgIT0gIjEyNy4wLjAuMSIp
CisgICAgICAgIHJldHVybiBjYWxsYmFjayh7IH0sIHsgfSwgeyB9KTsKKwogICAgIGF1dG8gcmVx
dWVzdCA9IGFkb3B0TlMoW1tOU011dGFibGVVUkxSZXF1ZXN0IGFsbG9jXSBpbml0V2l0aFVSTDp1
cmxdKTsKICAgICBbcmVxdWVzdCBzZXRWYWx1ZTpXZWJDb3JlOjpIVFRQSGVhZGVyVmFsdWVzOjpt
YXhBZ2UwKCkgZm9ySFRUUEhlYWRlckZpZWxkOkAiQ2FjaGUtQ29udHJvbCJdOwogICAgIGlmIChq
c29uUGF5bG9hZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCmluZGV4IDMxOWM1YzA3NTI3MGE0NzM0YjI0
YmVjOGMzYjJkMDA0MDZiOWZhODIuLmQ5ZDJkNjNkZWJhOTE2OTc2YzliODc5OWQ2NzZhOTIyMTFj
MDM1NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya1Byb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KQEAgLTE4Myw2ICsxODMsMTIgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzczo6ZGVsZXRlSFNUU0NhY2hlRm9ySG9zdE5hbWVzKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QKICNlbmRpZgogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjphbGxvd1Nw
ZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJ
bmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGNvbnN0IFN0cmluZyYgaG9zdCkKK3sKKyAgICAvLyBGSVhN
RTogUmVtb3ZlIHRoaXMgb25jZSByZGFyOi8vMzA2NTU3NDAgaXMgZml4ZWQuCisgICAgW05TVVJM
UmVxdWVzdCBzZXRBbGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGU6KE5TQXJyYXkgKiljZXJ0
aWZpY2F0ZUluZm8uY2VydGlmaWNhdGVDaGFpbigpIGZvckhvc3Q6aG9zdF07Cit9CisKIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OmNsZWFySFNUU0NhY2hlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
V2FsbFRpbWUgbW9kaWZpZWRTaW5jZSkKIHsKICAgICBOU1RpbWVJbnRlcnZhbCB0aW1lSW50ZXJ2
YWwgPSBtb2RpZmllZFNpbmNlLnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vjb25kcygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNv
Y29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lv
bkNvY29hLm1tCmluZGV4IDEzOGM0ZTkyOTFkNTMzZTg3ZWJmNDJiY2Q1YjM2ZWYwNTg2ZDIyOTgu
LmYzYzY2ZjljZjk3NGY1ZTgyYmFhNjI1YTI3ODQ2MjUzN2ViZGJjMzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29j
b2EubW0KQEAgLTE2NDMsNyArMTY0Myw2IEBAIGJvb2wgTmV0d29ya1Nlc3Npb25Db2NvYTo6YWxs
b3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBXZWJDb3JlOjpBCiAgICAg
cmV0dXJuIFdlYkNvcmU6OmNlcnRpZmljYXRlc01hdGNoKHRydXN0LmdldCgpLCBjaGFsbGVuZ2Uu
bnNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgpLnByb3RlY3Rpb25TcGFjZS5zZXJ2ZXJUcnVz
dCk7CiB9CiAKLQogc3RhdGljIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViS2l0OjpBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpD
cmVkZW50aWFsJiBjcmVkZW50aWFsKT4gY3JlYXRlQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXIo
UmVmPE5ldHdvcmtQcm9jZXNzPiYmIG5ldHdvcmtQcm9jZXNzLCBQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsICBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdl
LCBjb25zdCBTdHJpbmcmIHBhcnRpdGlvbiwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViS2l0OjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0
aW9uLCBjb25zdCBXZWJDb3JlOjpDcmVkZW50aWFsJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiAg
ewogICAgIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlIHsgY2hhbGxlbmdlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tCmluZGV4IGExZTA5MTQyYjhiM2EzNGEyNzBm
M2JmNTBmOTYwYTE2ZGU3MTU3OWMuLjhmMWNmZGZlNTcxZDc0OWExOTc4NDBmYTliMDUwMDIyNTIy
M2JiMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdv
cmtQcm9jZXNzSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9zL05l
dHdvcmtQcm9jZXNzSU9TLm1tCkBAIC01NywxMSArNTcsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
Ojppbml0aWFsaXplU2FuZGJveChjb25zdCBBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25Q
YXJhbQogewogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0
aWZpY2F0ZUZvckhvc3QoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0
ZUluZm8sIGNvbnN0IFN0cmluZyYgaG9zdCkKLXsKLSAgICBbTlNVUkxSZXF1ZXN0IHNldEFsbG93
c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZTooTlNBcnJheSAqKWNlcnRpZmljYXRlSW5mby5jZXJ0
aWZpY2F0ZUNoYWluKCkgZm9ySG9zdDpob3N0XTsKLX0KLQogdm9pZCBOZXR3b3JrUHJvY2Vzczo6
cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoY29uc3QgTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAjaWYgRU5BQkxFKFNFQ19JVEVNX1NISU0p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrUHJv
Y2Vzc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9j
ZXNzTWFjLm1tCmluZGV4IDA3YmJlMzI2YWVjNGE2NjgwNDkyOGY5MGVlODRjNzk3ZDY2MTEzMTIu
LmFjMWY3YjQwZTIwZWY2YTViOGRlZDc2NTFkMzQwZDc1MGQ5MGQ1MzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tCkBA
IC03OCwxMSArNzgsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVO
ZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aQogI2VuZGlmCiB9CiAKLXZv
aWQgTmV0d29ya1Byb2Nlc3M6OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChj
b25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgY29uc3QgU3Ry
aW5nJiBob3N0KQotewotICAgIFtOU1VSTFJlcXVlc3Qgc2V0QWxsb3dzU3BlY2lmaWNIVFRQU0Nl
cnRpZmljYXRlOihfX2JyaWRnZSBOU0FycmF5ICopY2VydGlmaWNhdGVJbmZvLmNlcnRpZmljYXRl
Q2hhaW4oKSBmb3JIb3N0OihOU1N0cmluZyAqKWhvc3RdOwotfQotCiB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdCBBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRp
b25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJz
JiBzYW5kYm94UGFyYW1ldGVycykKIHsKICAgICAvLyBOZWVkIHRvIG92ZXJpZGUgdGhlIGRlZmF1
bHQsIGJlY2F1c2Ugc2VydmljZSBoYXMgYSBkaWZmZXJlbnQgYnVuZGxlIElELgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKaW5kZXggYjE4MmM1NGViNzg4ZDNk
Njk4MTRhYTgwNzNlNGZmMWFhOWYzOTJiZC4uYTc2YWZmN2E0NTkyNTBmZGM5ZWExYjE4YjExYzcy
NjJlMjllZjhkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1l
bnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVy
cy5oCkBAIC02Myw2ICs2Myw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBFeHRlbnQ+
IHN0cnVjdCBBcmd1bWVudENvZGVyPEFycmF5UmVmZXJlbmNlPFQsIEV4dGVuCiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIGVuY29kZXIuZW5jb2RlRml4ZWRMZW5ndGhEYXRhKHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGFycmF5UmVmZXJlbmNlLmRhdGEoKSksIGFycmF5UmVm
ZXJlbmNlLnNpemUoKSAqIHNpemVvZihUKSwgYWxpZ25vZihUKSk7CiAgICAgfQorICAgIHRlbXBs
YXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QXJyYXlSZWZl
cmVuY2VUeXBlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7CiAgICAgICAgIGlmICgh
RXh0ZW50KQpAQCAtODQsMjIgKzg1LDI0IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBB
cmd1bWVudENvZGVyPEFycmF5UmVmZXJlbmNlPFQsIGFycmF5UmVmZXJlbmNlRHluYW1pCiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIGVuY29kZXIuZW5jb2RlRml4ZWRMZW5ndGhEYXRhKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGFycmF5UmVmZXJlbmNlLmRhdGEoKSksIGFy
cmF5UmVmZXJlbmNlLnNpemUoKSAqIHNpemVvZihUKSwgYWxpZ25vZihUKSk7CiAgICAgfQorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8QXJy
YXlSZWZlcmVuY2VUeXBlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICB7Ci0gICAgICAg
IHVpbnQ2NF90IHNpemU7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZSkpCi0gICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2
NF90PiBzaXplOworICAgICAgICBkZWNvZGVyID4+IHNpemU7CiAgICAgICAgIGlmICghc2l6ZSkK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIGlmICghKnNpemUpCiAg
ICAgICAgICAgICByZXR1cm4gQXJyYXlSZWZlcmVuY2VUeXBlKCk7CiAKLSAgICAgICAgYXV0byBk
YXRhU2l6ZSA9IENoZWNrZWRTaXplIHsgc2l6ZSB9ICogc2l6ZW9mKFQpOworICAgICAgICBhdXRv
IGRhdGFTaXplID0gQ2hlY2tlZFNpemUgeyAqc2l6ZSB9ICogc2l6ZW9mKFQpOwogICAgICAgICBp
ZiAoVU5MSUtFTFkoZGF0YVNpemUuaGFzT3ZlcmZsb3dlZCgpKSkKICAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAKICAgICAgICAgY29uc3QgdWludDhfdCogZGF0YSA9IGRlY29kZXIu
ZGVjb2RlRml4ZWRMZW5ndGhSZWZlcmVuY2UoZGF0YVNpemUsIGFsaWdub2YoVCkpOwogICAgICAg
ICBpZiAoIWRhdGEpCiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgICAgICBy
ZXR1cm4gQXJyYXlSZWZlcmVuY2VUeXBlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVCo+KGRhdGEp
LCBzdGF0aWNfY2FzdDxzaXplX3Q+KHNpemUpKTsKKyAgICAgICAgcmV0dXJuIEFycmF5UmVmZXJl
bmNlVHlwZShyZWludGVycHJldF9jYXN0PGNvbnN0IFQqPihkYXRhKSwgc3RhdGljX2Nhc3Q8c2l6
ZV90Pigqc2l6ZSkpOwogICAgIH0KIH07CiAKQEAgLTQwNCwxNCArNDA3LDE2IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5k
bGVyLCBzaXplX3QgbWluCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIHRlbXBs
YXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFQs
IGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5Pj4gZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCiAgICAgewotICAgICAgICB1aW50NjRfdCBzaXplOwotICAgICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHNpemUpKQorICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90
PiBzaXplOworICAgICAgICBkZWNvZGVyID4+IHNpemU7CisgICAgICAgIGlmICghc2l6ZSkKICAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICAgICAgVmVjdG9yPFQsIGlubGlu
ZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5PiB2ZWN0b3I7Ci0gICAgICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgKnNpemU7ICsraSkgewogICAgICAgICAgICAgc3RkOjpvcHRpb25hbDxUPiBl
bGVtZW50OwogICAgICAgICAgICAgZGVjb2RlciA+PiBlbGVtZW50OwogICAgICAgICAgICAgaWYg
KCFlbGVtZW50KQpAQCAtNDU4LDIxICs0NjMsMjMgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6
ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW4K
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1l
IERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFQsIGlubGluZUNhcGFj
aXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5Pj4gZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCiAgICAgewotICAgICAgICB1aW50NjRfdCBkZWNvZGVkU2l6ZTsKLSAgICAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShkZWNvZGVkU2l6ZSkpCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0
X3Q+IGRlY29kZWRTaXplOworICAgICAgICBkZWNvZGVyID4+IGRlY29kZWRTaXplOworICAgICAg
ICBpZiAoIWRlY29kZWRTaXplKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAog
ICAgICAgICBpZiAoIWlzSW5Cb3VuZHM8c2l6ZV90PihkZWNvZGVkU2l6ZSkpCiAgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgICAgIGF1dG8gc2l6ZSA9IHN0YXRpY19jYXN0
PHNpemVfdD4oZGVjb2RlZFNpemUpOworICAgICAgICBhdXRvIHNpemUgPSBzdGF0aWNfY2FzdDxz
aXplX3Q+KCpkZWNvZGVkU2l6ZSk7CiAKICAgICAgICAgLy8gU2luY2Ugd2Uga25vdyB0aGUgdG90
YWwgc2l6ZSBvZiB0aGUgZWxlbWVudHMsIHdlIGNhbiBhbGxvY2F0ZSB0aGUgdmVjdG9yIGluCiAg
ICAgICAgIC8vIG9uZSBmZWxsIHN3b29wLiBCZWZvcmUgYWxsb2NhdGluZyB3ZSBtdXN0IGhvd2V2
ZXIgbWFrZSBzdXJlIHRoYXQgdGhlIGRlY29kZXIgYnVmZmVyCiAgICAgICAgIC8vIGlzIGJpZyBl
bm91Z2guCi0gICAgICAgIGlmICghZGVjb2Rlci5idWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWlu
PFQ+KHNpemUpKQorICAgICAgICBpZiAoIWRlY29kZXIudGVtcGxhdGUgYnVmZmVySXNMYXJnZUVu
b3VnaFRvQ29udGFpbjxUPihzaXplKSkKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAgICAgICAgIAogICAgICAgICBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFu
ZGxlciwgbWluQ2FwYWNpdHk+IHZlY3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvRGFlbW9uL1BDTURhZW1vbkVudHJ5UG9pbnQu
bW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL0RhZW1v
bi9QQ01EYWVtb25FbnRyeVBvaW50Lm1tCmluZGV4IDdmMjMyMWRlNWIxOWMxYzE2NzQ5YmZkNmE2
MzQ2NGY4NGVkNTI0NTcuLjg1MTUxNDMzOTNiNjMzZGQwYTYxNTg5MjRiYmU5ZTQ3MDczNWRjNGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29j
b2EvRGFlbW9uL1BDTURhZW1vbkVudHJ5UG9pbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVtb24vUENNRGFlbW9uRW50cnlQb2ludC5t
bQpAQCAtODcsNiArODcsNyBAQCBzdGF0aWMgdm9pZCBzdGFydExpc3RlbmluZ0Zvck1hY2hTZXJ2
aWNlQ29ubmVjdGlvbnMoKQogCiAgICAgICAgIHhwY19jb25uZWN0aW9uX3NldF9ldmVudF9oYW5k
bGVyKHBlZXIsIF4oeHBjX29iamVjdF90IGV2ZW50KSB7CiAgICAgICAgICAgICBpZiAoZXZlbnQg
PT0gWFBDX0VSUk9SX0NPTk5FQ1RJT05fSU5URVJSVVBURUQpIHsKKyAgICAgICAgICAgICAgICBO
U0xvZyhAInJlbW92aW5nIHBlZXIgY29ubmVjdGlvbiAlcCIsIHBlZXIpOwogICAgICAgICAgICAg
ICAgIHBlZXJzKCkucmVtb3ZlKHBlZXIpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgICAgIH0KQEAgLTk0LDcgKzk1LDggQEAgc3RhdGljIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JN
YWNoU2VydmljZUNvbm5lY3Rpb25zKCkKICAgICAgICAgfSk7CiAgICAgICAgIHhwY19jb25uZWN0
aW9uX3NldF90YXJnZXRfcXVldWUocGVlciwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSk7CiAg
ICAgICAgIHhwY19jb25uZWN0aW9uX2FjdGl2YXRlKHBlZXIpOwotICAgICAgICAKKworICAgICAg
ICBOU0xvZyhAImFkZGluZyBwZWVyIGNvbm5lY3Rpb24gJXAiLCBwZWVyKTsKICAgICAgICAgcGVl
cnMoKS5hZGQocGVlcik7CiAgICAgfSk7CiAgICAgeHBjX2Nvbm5lY3Rpb25fYWN0aXZhdGUobGlz
dGVuZXIuZ2V0KCkuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaAppbmRleCBiYmY4OTRjMGE1ZDEyNzIyMjgzOTI1YjE0ODQwY2YwZWEyMDM5MWRl
Li5lMWU1OWE5MzliNjFhYjNlNTg3YWI4M2ZiMjhlOGY5ZWQyNGUzYzNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMjkzLDcgKzI5Myw5IEBA
IHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U3ByaW5nVGltaW5nRnVu
Y3Rpb24+IHsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
Q2VydGlmaWNhdGVJbmZvPiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KICAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5m
byYpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiAgICAgc3RhdGljIHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmNwcAppbmRleCA2ZDc1
Nzc0Y2JmZTY5YzU4ZjgzODAyMzVkYWJiNzlhZWRkNWFjOGI4Li5lMzI4N2NmYTZhY2E1Mzk5OTk2
MTIyNGNmOThmMjdmOGY2ZDE3ZjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9j
Zi9Bcmd1bWVudENvZGVyc0NGLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9Bcmd1
bWVudENvZGVyc0NGLmNwcApAQCAtMzIsNiArMzIsOCBAQAogI2luY2x1ZGUgIkRhdGFSZWZlcmVu
Y2UuaCIKICNpbmNsdWRlICJEZWNvZGVyLmgiCiAjaW5jbHVkZSAiRW5jb2Rlci5oIgorI2luY2x1
ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rlci5oIgorI2luY2x1ZGUgIlByaXZhdGVD
bGlja01lYXN1cmVtZW50RW5jb2Rlci5oIgogI2luY2x1ZGUgIlN0cmVhbUNvbm5lY3Rpb25FbmNv
ZGVyLmgiCiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5oPgogI2luY2x1ZGUg
PHd0Zi9FbnVtVHJhaXRzLmg+CkBAIC00MDUsNiArNDA3LDcgQEAgdm9pZCBBcmd1bWVudENvZGVy
PENGRGF0YVJlZj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDRkRhdGFSZWYgZGF0YSkKIHRl
bXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxDRkRhdGFSZWY+OjplbmNvZGU8RW5jb2Rlcj4oRW5j
b2RlciYsIENGRGF0YVJlZik7CiB0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8Q0ZEYXRhUmVm
Pjo6ZW5jb2RlPFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyPihTdHJlYW1Db25uZWN0aW9uRW5jb2Rl
ciYsIENGRGF0YVJlZik7CiAKK3RlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CiBzdGQ6Om9wdGlv
bmFsPFJldGFpblB0cjxDRkRhdGFSZWY+PiBBcmd1bWVudENvZGVyPFJldGFpblB0cjxDRkRhdGFS
ZWY+Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7CiAgICAgc3RkOjpvcHRpb25hbDxJUEM6
OkRhdGFSZWZlcmVuY2U+IGRhdGFSZWZlcmVuY2U7CkBAIC00MTUsNiArNDE4LDkgQEAgc3RkOjpv
cHRpb25hbDxSZXRhaW5QdHI8Q0ZEYXRhUmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8Q0ZE
YXRhUmVmPj46OmRlY29kZSgKICAgICByZXR1cm4gYWRvcHRDRihDRkRhdGFDcmVhdGUoMCwgZGF0
YVJlZmVyZW5jZS0+ZGF0YSgpLCBkYXRhUmVmZXJlbmNlLT5zaXplKCkpKTsKIH0KIAordGVtcGxh
dGUgc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8Q0ZEYXRhUmVmPj4gQXJndW1lbnRDb2RlcjxSZXRh
aW5QdHI8Q0ZEYXRhUmVmPj46OmRlY29kZTxEZWNvZGVyPihEZWNvZGVyJik7Cit0ZW1wbGF0ZSBz
dGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDRkRhdGFSZWY+PiBBcmd1bWVudENvZGVyPFJldGFpblB0
cjxDRkRhdGFSZWY+Pjo6ZGVjb2RlPFdlYktpdDo6UENNOjpEZWNvZGVyPihXZWJLaXQ6OlBDTTo6
RGVjb2RlciYpOworCiB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogdm9pZCBBcmd1bWVudENv
ZGVyPENGRGF0ZVJlZj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBDRkRhdGVSZWYgZGF0ZSkK
IHsKQEAgLTgzNCw4ICs4NDAsMTAgQEAgdm9pZCBBcmd1bWVudENvZGVyPFNlY1RydXN0UmVmPjo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIFNlY1RydXN0UmVmIHRydXN0KQogfQogCiB0ZW1wbGF0
ZSB2b2lkIEFyZ3VtZW50Q29kZXI8U2VjVHJ1c3RSZWY+OjplbmNvZGU8RW5jb2Rlcj4oRW5jb2Rl
ciYsIFNlY1RydXN0UmVmKTsKK3RlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxTZWNUcnVzdFJl
Zj46OmVuY29kZTxXZWJLaXQ6OlBDTTo6RW5jb2Rlcj4oV2ViS2l0OjpQQ006OkVuY29kZXImLCBT
ZWNUcnVzdFJlZik7CiB0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8U2VjVHJ1c3RSZWY+Ojpl
bmNvZGU8U3RyZWFtQ29ubmVjdGlvbkVuY29kZXI+KFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyJiwg
U2VjVHJ1c3RSZWYpOwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogc3RkOjpvcHRpb25h
bDxSZXRhaW5QdHI8U2VjVHJ1c3RSZWY+PiBBcmd1bWVudENvZGVyPFJldGFpblB0cjxTZWNUcnVz
dFJlZj4+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBzdGQ6Om9wdGlvbmFsPGJv
b2w+IGhhc1RydXN0OwpAQCAtODU3LDYgKzg2NSw5IEBAIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRy
PFNlY1RydXN0UmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8U2VjVHJ1c3RSZWY+Pjo6ZGVj
CiAKICAgICByZXR1cm4gV1RGTW92ZSh0cnVzdCk7CiB9CisKK3RlbXBsYXRlIHN0ZDo6b3B0aW9u
YWw8UmV0YWluUHRyPFNlY1RydXN0UmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8U2VjVHJ1
c3RSZWY+Pjo6ZGVjb2RlPERlY29kZXI+KERlY29kZXImKTsKK3RlbXBsYXRlIHN0ZDo6b3B0aW9u
YWw8UmV0YWluUHRyPFNlY1RydXN0UmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8U2VjVHJ1
c3RSZWY+Pjo6ZGVjb2RlPFdlYktpdDo6UENNOjpEZWNvZGVyPihXZWJLaXQ6OlBDTTo6RGVjb2Rl
ciYpOwogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
Y2YvQXJndW1lbnRDb2RlcnNDRi5oCmluZGV4IDZlY2E1ZmI5ZmYzMzI3ZGY4NGNhYWZiMjhmMTMy
OTA3Y2I4NmYyMGYuLjA2ODdhNmJlMmI2OGM5ZjdiMDQ0NjY1NWZhMDEwYTc0NWJiMjZkYTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmgKQEAgLTc3LDcgKzc3
LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxDRkRhdGFSZWY+IHsKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIENG
RGF0YVJlZik7CiB9OwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8
Q0ZEYXRhUmVmPj4gOiBDRlJldGFpblB0ckFyZ3VtZW50Q29kZXI8Q0ZEYXRhUmVmPiB7Ci0gICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENGRGF0YVJlZj4+IGRlY29kZShEZWNvZGVy
Jik7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8
UmV0YWluUHRyPENGRGF0YVJlZj4+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCiB0ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPENGRGF0ZVJlZj4gewpAQCAtMTUyLDcgKzE1Miw3IEBAIHRl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8U2VjVHJ1c3RSZWY+IHsKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBFbmNvZGVyPiBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIFNlY1RydXN0
UmVmKTsKIH07CiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFJldGFpblB0cjxTZWNU
cnVzdFJlZj4+IDogQ0ZSZXRhaW5QdHJBcmd1bWVudENvZGVyPFNlY1RydXN0UmVmPiB7Ci0gICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPFNlY1RydXN0UmVmPj4gZGVjb2RlKERlY29k
ZXImKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25h
bDxSZXRhaW5QdHI8U2VjVHJ1c3RSZWY+PiBkZWNvZGUoRGVjb2RlciYpOwogfTsKICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jdXJsL1dlYkNvcmVBcmd1bWVudENv
ZGVyc0N1cmwuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9XZWJDb3JlQXJndW1lbnRD
b2RlcnNDdXJsLmNwcAppbmRleCA3NWNkNTMzNGEzNTIwMDJhN2M0OTZhYzQxMjVlOWQ0YjhhNGRm
NGEzLi5kNTRiYWY0YzVmOTFjYzFjMDI1MzM5NDcwYjc5MTIyMTI2ZTdlZDU2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jdXJsL1dlYkNvcmVBcmd1bWVudENvZGVyc0N1cmwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ3Vy
bC5jcHAKQEAgLTI3LDYgKzI3LDggQEAKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMu
aCIKIAogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudERlY29kZXIuaCIKKyNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVu
Y29kZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NlcnRpZmljYXRlSW5mby5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvQ3VybFByb3h5U2V0dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RpY3Rpb25h
cnlQb3B1cEluZm8uaD4KQEAgLTUwLDYgKzUyLDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFJlc291
cmNlUmVxdWVzdD46OmRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiBkZWNvZGVyLCBSZXNvdXIK
ICAgICByZXR1cm4gcmVzb3VyY2VSZXF1ZXN0LmRlY29kZVdpdGhQbGF0Zm9ybURhdGEoZGVjb2Rl
cik7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiB2b2lkIEFyZ3VtZW50Q29kZXI8
Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IENlcnRpZmlj
YXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQogewogICAgIGVuY29kZXIgPDwgY2VydGlmaWNhdGVJ
bmZvLnZlcmlmaWNhdGlvbkVycm9yKCk7CkBAIC01OCw3ICs2MSwxMCBAQCB2b2lkIEFyZ3VtZW50
Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IENl
cnRpZmljYXRlSQogICAgIGZvciAoYXV0byBjZXJ0aWZpY2F0ZSA6IGNlcnRpZmljYXRlSW5mby5j
ZXJ0aWZpY2F0ZUNoYWluKCkpCiAgICAgICAgIGVuY29kZXIgPDwgY2VydGlmaWNhdGU7CiB9Cit0
ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPjo6ZW5j
b2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mKTsK
K3RlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+Ojpl
bmNvZGU8V2ViS2l0OjpQQ006OkVuY29kZXI+KFdlYktpdDo6UENNOjpFbmNvZGVyJiwgY29uc3Qg
V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJik7CiAKK3RlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+
CiBzdGQ6Om9wdGlvbmFsPENlcnRpZmljYXRlSW5mbz4gQXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0
ZUluZm8+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBzdGQ6Om9wdGlvbmFsPGlu
dD4gdmVyaWZpY2F0aW9uRXJyb3I7CkBAIC04Myw2ICs4OSw4IEBAIHN0ZDo6b3B0aW9uYWw8Q2Vy
dGlmaWNhdGVJbmZvPiBBcmd1bWVudENvZGVyPENlcnRpZmljYXRlSW5mbz46OmRlY29kZShEZWNv
ZGVyJiBkCiAKICAgICByZXR1cm4gQ2VydGlmaWNhdGVJbmZvIHsgKnZlcmlmaWNhdGlvbkVycm9y
LCBXVEZNb3ZlKGNlcnRpZmljYXRlQ2hhaW4pIH07CiB9Cit0ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZp
Y2F0ZUluZm8+OjpkZWNvZGU8RGVjb2Rlcj4oRGVjb2RlciYpOwordGVtcGxhdGUgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q2Vy
dGlmaWNhdGVJbmZvPjo6ZGVjb2RlPFdlYktpdDo6UENNOjpEZWNvZGVyPihXZWJLaXQ6OlBDTTo6
RGVjb2RlciYpOwogCiB2b2lkIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmVuY29kZVBs
YXRmb3JtRGF0YShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiByZXNvdXJj
ZUVycm9yKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvZ2xpYi9Bcmd1bWVu
dENvZGVyc0dMaWIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ2xpYi9Bcmd1bWVudENvZGVy
c0dMaWIuY3BwCmluZGV4IDU5NTEzYTYzNWFmZTk3ZWQwNmRiYjVmN2MyY2I0ZTAzZjAxYjlmNzIu
LmQ3ODgzZjUwMGU0YjlhYTEwOWQzYWY2NzRkMjYxYTRmYjdiMjRiNTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL2dsaWIvQXJndW1lbnRDb2RlcnNHTGliLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9nbGliL0FyZ3VtZW50Q29kZXJzR0xpYi5jcHAKQEAgLTI3LDYgKzI3
LDggQEAKICNpbmNsdWRlICJBcmd1bWVudENvZGVyc0dMaWIuaCIKIAogI2luY2x1ZGUgIkRhdGFS
ZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuaCIK
KyNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuaCIKICNpbmNsdWRlIDxn
aW8vZ2lvLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTY1LDYgKzY3LDcgQEAgc3RkOjpvcHRpb25hbDxHUmVmUHRy
PEdWYXJpYW50Pj4gQXJndW1lbnRDb2RlcjxHUmVmUHRyPEdWYXJpYW50Pj46OmRlY29kZShEZWNv
ZGUKICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxHUmVmUHRyPEdWYXJpYW50PiA+KGdfdmFyaWFu
dF9uZXdfZnJvbV9ieXRlcyh2YXJpYW50VHlwZS5nZXQoKSwgYnl0ZXMuZ2V0KCksIEZBTFNFKSk7
CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiB2b2lkIEFyZ3VtZW50Q29kZXI8R1Jl
ZlB0cjxHVGxzQ2VydGlmaWNhdGU+Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIEdSZWZQdHI8
R1Rsc0NlcnRpZmljYXRlPiBjZXJ0aWZpY2F0ZSkKIHsKICAgICBpZiAoIWNlcnRpZmljYXRlKSB7
CkBAIC0xMDMsNyArMTA2LDEwIEBAIHZvaWQgQXJndW1lbnRDb2RlcjxHUmVmUHRyPEdUbHNDZXJ0
aWZpY2F0ZT4+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgR1JlZlB0cjxHCiAgICAgICAgIGVu
Y29kZXIgPDwgSVBDOjpEYXRhUmVmZXJlbmNlKGNlcnRpZmljYXRlRGF0YS0+ZGF0YSwgY2VydGlm
aWNhdGVEYXRhLT5sZW4pOwogICAgIH0KIH0KK3RlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxH
UmVmUHRyPEdUbHNDZXJ0aWZpY2F0ZT4+OjplbmNvZGU8RW5jb2Rlcj4oRW5jb2RlciYsIEdSZWZQ
dHI8R1Rsc0NlcnRpZmljYXRlPik7Cit0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8R1JlZlB0
cjxHVGxzQ2VydGlmaWNhdGU+Pjo6ZW5jb2RlPFdlYktpdDo6UENNOjpFbmNvZGVyPihXZWJLaXQ6
OlBDTTo6RW5jb2RlciYsIEdSZWZQdHI8R1Rsc0NlcnRpZmljYXRlPik7CiAKK3RlbXBsYXRlPHR5
cGVuYW1lIERlY29kZXI+CiBzdGQ6Om9wdGlvbmFsPEdSZWZQdHI8R1Rsc0NlcnRpZmljYXRlPj4g
QXJndW1lbnRDb2RlcjxHUmVmUHRyPEdUbHNDZXJ0aWZpY2F0ZT4+OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKIHsKICAgICB1aW50MzJfdCBjaGFpbkxlbmd0aDsKQEAgLTE1Myw1ICsxNTksNyBA
QCBzdGQ6Om9wdGlvbmFsPEdSZWZQdHI8R1Rsc0NlcnRpZmljYXRlPj4gQXJndW1lbnRDb2RlcjxH
UmVmUHRyPEdUbHNDZXJ0aWZpY2F0ZT4+OgogCiAgICAgcmV0dXJuIGNlcnRpZmljYXRlOwogfQor
dGVtcGxhdGUgc3RkOjpvcHRpb25hbDxHUmVmUHRyPEdUbHNDZXJ0aWZpY2F0ZT4+IEFyZ3VtZW50
Q29kZXI8R1JlZlB0cjxHVGxzQ2VydGlmaWNhdGU+Pjo6ZGVjb2RlPERlY29kZXI+KERlY29kZXIm
KTsKK3RlbXBsYXRlIHN0ZDo6b3B0aW9uYWw8R1JlZlB0cjxHVGxzQ2VydGlmaWNhdGU+PiBBcmd1
bWVudENvZGVyPEdSZWZQdHI8R1Rsc0NlcnRpZmljYXRlPj46OmRlY29kZTxXZWJLaXQ6OlBDTTo6
RGVjb2Rlcj4oV2ViS2l0OjpQQ006OkRlY29kZXImKTsKIAogfSAvLyBuYW1lc3BhY2UgSVBDCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9nbGliL0FyZ3VtZW50Q29kZXJzR0xpYi5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ2xpYi9Bcmd1bWVudENvZGVyc0dMaWIuaAppbmRleCA2
YjA2YWM4MmJlZjVkZDk0N2EzYTI4YzA5ZmQxMGM5Y2QzMjQ4MWFjLi5jYmEwYTM5NTQ1MmU0YjAw
OTRhYjEzNzk2NjA4MTA2ODdjZTU0MzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9nbGliL0FyZ3VtZW50Q29kZXJzR0xpYi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2ds
aWIvQXJndW1lbnRDb2RlcnNHTGliLmgKQEAgLTM5LDcgKzM5LDkgQEAgdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxHUmVmUHRyPEdWYXJpYW50Pj4gewogfTsKIAogdGVtcGxhdGU8PiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxHUmVmUHRyPEdUbHNDZXJ0aWZpY2F0ZT4+IHsKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwg
R1JlZlB0cjxHVGxzQ2VydGlmaWNhdGU+KTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVy
PgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEdSZWZQdHI8R1Rsc0NlcnRpZmljYXRlPj4gZGVj
b2RlKERlY29kZXImKTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21h
Yy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tCmluZGV4IDgxZDc1MGFmNTZlZWU1NzcxNTE4Njhh
ZDU3MGQ0NjYzNDNkMTMwM2MuLjhlNGQ1ZjEzMWQ4MmYxZGVmZTI2ZDE1YWJmZWUwNjRhM2I5ODkw
ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRD
b2RlcnNNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVu
dENvZGVyc01hYy5tbQpAQCAtMzAsNiArMzAsOCBAQAogI2ltcG9ydCAiQXJndW1lbnRDb2RlcnND
Ri5oIgogI2ltcG9ydCAiQXJndW1lbnRDb2RlcnNDb2NvYS5oIgogI2ltcG9ydCAiRGF0YVJlZmVy
ZW5jZS5oIgorI2ltcG9ydCAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmgiCisjaW1w
b3J0ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuaCIKICNpbXBvcnQgPFdlYkNvcmUv
Q2VydGlmaWNhdGVJbmZvLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbnRlbnRGaWx0ZXJVbmJsb2Nr
SGFuZGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9DcmVkZW50aWFsLmg+CkBAIC00NCw2ICs0Niw3
IEBACiAKIG5hbWVzcGFjZSBJUEMgewogCit0ZW1wbGF0ZTw+CiB2b2lkIEFyZ3VtZW50Q29kZXI8
V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQogewogICAgIGVuY29k
ZXIgPDwgY2VydGlmaWNhdGVJbmZvLnR5cGUoKTsKQEAgLTYzLDYgKzY2LDE0IEBAIHZvaWQgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgV2ViCiAgICAgfQogfQogCit0ZW1wbGF0ZTw+Cit2b2lkIEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2RlKFdlYktpdDo6UENNOjpFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5m
bykKK3sKKyAgICBBU1NFUlQoY2VydGlmaWNhdGVJbmZvLnR5cGUoKSA9PSBXZWJDb3JlOjpDZXJ0
aWZpY2F0ZUluZm86OlR5cGU6OlRydXN0KTsKKyAgICBlbmNvZGVyIDw8IGNlcnRpZmljYXRlSW5m
by50cnVzdCgpOworfQorCit0ZW1wbGF0ZTw+CiBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNlcnRp
ZmljYXRlSW5mbz4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+OjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNlcnRp
ZmljYXRlSW5mbzo6VHlwZT4gY2VydGlmaWNhdGVJbmZvVHlwZTsKQEAgLTk3LDYgKzEwOCwxNiBA
QCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz4gQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+OgogICAgIHJldHVybiB7eyB9fTsKIH0KIAordGVtcGxh
dGU8Pgorc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+IEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPjo6ZGVjb2RlKFdlYktpdDo6UENNOjpEZWNvZGVy
JiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPFNlY1RydXN0UmVmPj4g
dHJ1c3Q7CisgICAgZGVjb2RlciA+PiB0cnVzdDsKKyAgICBpZiAoIXRydXN0IHx8ICEqdHJ1c3Qp
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgcmV0dXJuIFdlYkNvcmU6OkNlcnRp
ZmljYXRlSW5mbyhXVEZNb3ZlKCp0cnVzdCkpOworfQorCiBzdGF0aWMgdm9pZCBlbmNvZGVOU0Vy
cm9yKEVuY29kZXImIGVuY29kZXIsIE5TRXJyb3IgKm5zRXJyb3IpCiB7CiAgICAgU3RyaW5nIGRv
bWFpbiA9IFtuc0Vycm9yIGRvbWFpbl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvc291cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNTb3VwLmNwcAppbmRleCA5N2JlMWM4YzAwNmFl
OTI2ZDhmOTE4YWYzNzFjODdjM2M4ZTA4YmNhLi4yZTk3ZDdkMmYxZmE4MjUxNWZlNjJjMDg4Yzll
NjA0YjM0YTk3NGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9zb3VwL1dlYkNv
cmVBcmd1bWVudENvZGVyc1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3NvdXAv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHAKQEAgLTMwLDYgKzMwLDggQEAKIAogI2luY2x1
ZGUgIkFyZ3VtZW50Q29kZXJzR0xpYi5oIgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNp
bmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuaCIKKyNpbmNsdWRlICJQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NlcnRpZmlj
YXRlSW5mby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ3JlZGVudGlhbC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvRGljdGlvbmFyeVBvcHVwSW5mby5oPgpAQCAtNTQsNiArNTYsNyBAQCBib29sIEFyZ3Vt
ZW50Q29kZXI8UmVzb3VyY2VSZXF1ZXN0Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImIGRl
Y29kZXIsIFJlc291cgogICAgIHJldHVybiByZXNvdXJjZVJlcXVlc3QuZGVjb2RlV2l0aFBsYXRm
b3JtRGF0YShkZWNvZGVyKTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KIHZvaWQg
QXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8pCiB7CiAgICAgR1JlZlB0cjxH
VGxzQ2VydGlmaWNhdGU+IGNlcnRpZmljYXRlID0gY2VydGlmaWNhdGVJbmZvLmNlcnRpZmljYXRl
KCk7CkBAIC02Myw3ICs2NiwxMCBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZv
Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IENlcnRpZmljYXRlSQogCiAgICAgZW5j
b2RlciA8PCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oY2VydGlmaWNhdGVJbmZvLnRsc0Vycm9ycygp
KTsKIH0KK3RlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjplbmNv
ZGU8RW5jb2Rlcj4oRW5jb2RlciYsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYpOwordGVtcGxhdGUg
dm9pZCBBcmd1bWVudENvZGVyPENlcnRpZmljYXRlSW5mbz46OmVuY29kZTxXZWJLaXQ6OlBDTTo6
RW5jb2Rlcj4oV2ViS2l0OjpQQ006OkVuY29kZXImLCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mKTsK
IAordGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KIHN0ZDo6b3B0aW9uYWw8Q2VydGlmaWNhdGVJ
bmZvPiBBcmd1bWVudENvZGVyPENlcnRpZmljYXRlSW5mbz46OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQogewogICAgIHN0ZDo6b3B0aW9uYWw8R1JlZlB0cjxHVGxzQ2VydGlmaWNhdGU+PiBjZXJ0
aWZpY2F0ZTsKQEAgLTg0LDYgKzkwLDggQEAgc3RkOjpvcHRpb25hbDxDZXJ0aWZpY2F0ZUluZm8+
IEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZGVjb2RlKERlY29kZXImIGQKIAogICAg
IHJldHVybiBXVEZNb3ZlKGNlcnRpZmljYXRlSW5mbyk7CiB9Cit0ZW1wbGF0ZSBzdGQ6Om9wdGlv
bmFsPENlcnRpZmljYXRlSW5mbz4gQXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjpkZWNv
ZGU8RGVjb2Rlcj4oRGVjb2RlciYpOwordGVtcGxhdGUgc3RkOjpvcHRpb25hbDxDZXJ0aWZpY2F0
ZUluZm8+IEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZGVjb2RlPFdlYktpdDo6UENN
OjpEZWNvZGVyPihXZWJLaXQ6OlBDTTo6RGVjb2RlciYpOwogCiB2b2lkIEFyZ3VtZW50Q29kZXI8
UmVzb3VyY2VFcnJvcj46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCBSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVycm9yKQogewpAQCAtMjQ1LDcgKzI1Myw3IEBAIHZv
aWQgQXJndW1lbnRDb2RlcjxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+OjplbmNvZGVQ
bGF0Zm9ybURhdGEoRW5jb2RlciYKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotc3Rk
OjpvcHRpb25hbDxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+ICBBcmd1bWVudENvZGVy
PFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT46OmRlY29kZVBsYXRmb3JtRGF0YShEZWNv
ZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBs
YXRmb3JtVHlwZSBwbGF0Zm9ybVR5cGUpCitzdGQ6Om9wdGlvbmFsPFNlcmlhbGl6ZWRQbGF0Zm9y
bURhdGFDdWVWYWx1ZT4gIEFyZ3VtZW50Q29kZXI8U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZh
bHVlPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImIGRlY29kZXIsIFNlcmlhbGl6ZWRQbGF0
Zm9ybURhdGFDdWVWYWx1ZTo6UGxhdGZvcm1UeXBlIHBsYXRmb3JtVHlwZSkKIHsKICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0K
aW5kZXggMzI1MzBlZjNjMDI0NDQ5NzlhZmMyNjhkZGQwYTkxMWI3YjhjYzE4Ny4uNGRjMTViYWQ4
NGU4OTg4NGJiZDFjZTZmYWZjZTJjNzMwNWUwYzEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC02NTAs
NyArNjUwLDEyIEBAIHN0YXRpYyBWZWN0b3I8V2ViS2l0OjpXZWJzaXRlRGF0YVJlY29yZD4gdG9X
ZWJzaXRlRGF0YVJlY29yZHMoTlNBcnJheSAqZGF0YVJlY29yCiAKIC0gKHZvaWQpX2FsbG93VExT
Q2VydGlmaWNhdGVDaGFpbjooTlNBcnJheSAqKWNlcnRpZmljYXRlQ2hhaW4gZm9ySG9zdDooTlNT
dHJpbmcgKilob3N0CiB7Ci0gICAgX3dlYnNpdGVEYXRhU3RvcmUtPmFsbG93U3BlY2lmaWNIVFRQ
U0NlcnRpZmljYXRlRm9ySG9zdChXZWJLaXQ6OldlYkNlcnRpZmljYXRlSW5mbzo6Y3JlYXRlKFdl
YkNvcmU6OkNlcnRpZmljYXRlSW5mbygoX19icmlkZ2UgQ0ZBcnJheVJlZiljZXJ0aWZpY2F0ZUNo
YWluKSkucHRyKCksIGhvc3QpOworICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5hbGxvd1NwZWNpZmlj
SFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvKChfX2JyaWRn
ZSBDRkFycmF5UmVmKWNlcnRpZmljYXRlQ2hhaW4pLCBob3N0KTsKK30KKworLSAodm9pZClfdHJ1
c3RTZXJ2ZXJGb3JMb2NhbFBDTVRlc3Rpbmc6KFNlY1RydXN0UmVmKXNlcnZlclRydXN0Cit7Cisg
ICAgX3dlYnNpdGVEYXRhU3RvcmUtPmFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENN
VGVzdGluZyhXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8oc2VydmVyVHJ1c3QpKTsKIH0KIAogLSAo
dm9pZClfYXBwQm91bmREb21haW5zOih2b2lkICheKShOU0FycmF5PE5TU3RyaW5nICo+ICopKWNv
bXBsZXRpb25IYW5kbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAppbmRleCBlY2M2MGY3NTE3
ZTNkMTA4YWQ3NjI1YmI3YmQ4ZmZiM2MyNGIzZDU3Li5hOWRiZjE1MjFkNjdhMTQ0NTYwYWZhZDYy
NDUzYzU2NWY1N2MyMzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKQEAgLTg0LDYgKzg0
LDcgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVEYXRhU3RvcmVG
ZXRjaE9wdGlvbnMpIHsKICsgKHZvaWQpX3NldENhY2hlZFByb2Nlc3NTdXNwZW5zaW9uRGVsYXlG
b3JUZXN0aW5nOihkb3VibGUpZGVsYXlJblNlY29uZHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLSAodm9pZClfYWxsb3dUTFNDZXJ0aWZp
Y2F0ZUNoYWluOihOU0FycmF5ICopY2VydGlmaWNhdGVDaGFpbiBmb3JIb3N0OihOU1N0cmluZyAq
KWhvc3QgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKKy0gKHZvaWQp
X3RydXN0U2VydmVyRm9yTG9jYWxQQ01UZXN0aW5nOihTZWNUcnVzdFJlZilzZXJ2ZXJUcnVzdCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAt
ICh2b2lkKV9yZW5hbWVPcmlnaW46KE5TVVJMICopb2xkTmFtZSB0bzooTlNVUkwgKiluZXdOYW1l
IGZvckRhdGFPZlR5cGVzOihOU1NldDxOU1N0cmluZyAqPiAqKWRhdGFUeXBlcyBjb21wbGV0aW9u
SGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXI7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYkNvbnRleHQuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHAKaW5k
ZXggYmQyZDRkMjAyMDZmOGI4NmZlNGNkMWFjOTBkOTBiNzljMzQ4ZWQ5ZC4uMWJjNTFkZDFlZDNi
MTE4NWVkNzI2NTU1OWJiMWQzYWVkOTc5MDI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHAKQEAgLTE2MjMsOSArMTYy
Myw5IEBAIHZvaWQgd2Via2l0X3dlYl9jb250ZXh0X2FsbG93X3Rsc19jZXJ0aWZpY2F0ZV9mb3Jf
aG9zdChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0CiAgICAgZ19yZXR1cm5faWZfZmFpbChHX0lT
X1RMU19DRVJUSUZJQ0FURShjZXJ0aWZpY2F0ZSkpOwogICAgIGdfcmV0dXJuX2lmX2ZhaWwoaG9z
dCk7CiAKLSAgICBhdXRvIHdlYkNlcnRpZmljYXRlSW5mbyA9IFdlYkNlcnRpZmljYXRlSW5mbzo6
Y3JlYXRlKFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyhjZXJ0aWZpY2F0ZSwgc3RhdGljX2Nhc3Q8
R1Rsc0NlcnRpZmljYXRlRmxhZ3M+KDApKSk7CisgICAgYXV0byBjZXJ0aWZpY2F0ZUluZm8gPSBX
ZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8oY2VydGlmaWNhdGUsIHN0YXRpY19jYXN0PEdUbHNDZXJ0
aWZpY2F0ZUZsYWdzPigwKSk7CiAgICAgYXV0byYgd2Vic2l0ZURhdGFTdG9yZSA9IHdlYmtpdFdl
YnNpdGVEYXRhTWFuYWdlckdldERhdGFTdG9yZShjb250ZXh0LT5wcml2LT53ZWJzaXRlRGF0YU1h
bmFnZXIuZ2V0KCkpOwotICAgIHdlYnNpdGVEYXRhU3RvcmUuYWxsb3dTcGVjaWZpY0hUVFBTQ2Vy
dGlmaWNhdGVGb3JIb3N0KHdlYkNlcnRpZmljYXRlSW5mby5wdHIoKSwgU3RyaW5nOjpmcm9tVVRG
OChob3N0KSk7CisgICAgd2Vic2l0ZURhdGFTdG9yZS5hbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZp
Y2F0ZUZvckhvc3QoY2VydGlmaWNhdGVJbmZvLCBTdHJpbmc6OmZyb21VVEY4KGhvc3QpKTsKIH0K
IAogLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDM1MzJlMGQ3NjhhZDRiODNmYmY1YjEwMWE3NDFk
N2Y1YjA0MDFiNTcuLjNkYTZjMTE2YjkzNjg4ZDFiYWM3M2Q3ZTZkOWQ0OTllMDQ0MTJhZmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuY3BwCkBAIC0xNjcyLDkgKzE2NzIsMTQgQEAgc3RhdGljIFN0cmluZyBjb21w
dXRlTWVkaWFLZXlGaWxlKGNvbnN0IFN0cmluZyYgbWVkaWFLZXlEaXJlY3RvcnkpCiAgICAgcmV0
dXJuIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChtZWRpYUtleURpcmVjdG9y
eSwgIlNlY3VyZVN0b3AucGxpc3QiKTsKIH0KIAotdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjphbGxv
d1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgV2ViQ2VydGlmaWNhdGVJbmZv
KiBjZXJ0aWZpY2F0ZSwgY29uc3QgU3RyaW5nJiBob3N0KQordm9pZCBXZWJzaXRlRGF0YVN0b3Jl
OjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgV2ViQ29yZTo6Q2Vy
dGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZSwgY29uc3QgU3RyaW5nJiBob3N0KQogewotICAgIG5l
dHdvcmtQcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkFsbG93U3BlY2lm
aWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjZXJ0aWZpY2F0ZS0+Y2VydGlmaWNhdGVJbmZvKCks
IGhvc3QpLCAwKTsKKyAgICBuZXR3b3JrUHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpBbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY2VydGlmaWNhdGUs
IGhvc3QpLCAwKTsKK30KKwordm9pZCBXZWJzaXRlRGF0YVN0b3JlOjphbGxvd1RMU0NlcnRpZmlj
YXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZv
JiBjZXJ0aWZpY2F0ZSkKK3sKKyAgICBuZXR3b3JrUHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzOjpBbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3Rpbmco
c2Vzc2lvbklEKCksIGNlcnRpZmljYXRlKSwgMCk7CiB9CiAKIFZlY3RvcjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGE+IFdlYnNpdGVEYXRhU3RvcmU6Om1lZGlhS2V5T3JpZ2lucyhjb25zdCBT
dHJpbmcmIG1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggMDI2ODcz
MTViNmI5NTMwMDI2MjNlMDE5NTc3NDJlOTU2Y2VkZmY0MC4uMTYxY2RlNmExNzFiY2IzMDFlZGQ4
YjllM2NkNGFlMjZiYWQ1MWZiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtNzIsNiArNzIsNyBAQCBjbGFz
cyBIVFRQQ29va2llU3RvcmU7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENlcnRp
ZmljYXRlSW5mbzsKIGNsYXNzIFJlZ2lzdHJhYmxlRG9tYWluOwogY2xhc3MgU2VjdXJpdHlPcmln
aW47CiAKQEAgLTg1LDcgKzg2LDYgQEAgY2xhc3MgU2VjS2V5UHJveHlTdG9yZTsKIGNsYXNzIERl
dmljZUlkSGFzaFNhbHRTdG9yYWdlOwogY2xhc3MgTmV0d29ya1Byb2Nlc3NQcm94eTsKIGNsYXNz
IFNPQXV0aG9yaXphdGlvbkNvb3JkaW5hdG9yOwotY2xhc3MgV2ViQ2VydGlmaWNhdGVJbmZvOwog
Y2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CiBjbGFzcyBXZWJQcm9j
ZXNzUHJveHk7CkBAIC0yNjIsNyArMjYyLDggQEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQg
c2V0Q2FjaGVkUHJvY2Vzc1N1c3BlbnNpb25EZWxheUZvclRlc3RpbmcoU2Vjb25kcyk7CiAKLSAg
ICB2b2lkIGFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBXZWJDZXJ0
aWZpY2F0ZUluZm8qLCBjb25zdCBTdHJpbmcmIGhvc3QpOworICAgIHZvaWQgYWxsb3dTcGVjaWZp
Y0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYs
IGNvbnN0IFN0cmluZyYgaG9zdCk7CisgICAgdm9pZCBhbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5G
b3JMb2NhbFBDTVRlc3RpbmcoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJik7CiAKICAg
ICBEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZSYgZGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UoKSB7IHJl
dHVybiBtX2RldmljZUlkSGFzaFNhbHRTdG9yYWdlLmdldCgpOyB9CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlMjc4MzkzNDRlNjE5N2VmNWIz
NjNiYTlhYjM1MjA4NzI0ZDA0Y2UwLi42OTM5MGY1ZGIwODk0OGViYmFjNmIzOTcxMjBkYzQ5MTM5
YTcyZGMzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDktMDkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgaW5mcmFzdHJ1Y3R1cmUgdG8gYWxsb3cg
VExTIGR1cmluZyBQQ00gdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzMDEzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJp
YnV0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZGVsZWdhdGVBbGxvd2luZ0FsbFRM
Uyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpydW5CYXNpY0V2ZW50QXR0cmlidXRpb25UZXN0
KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIxLTA5LTA5ICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBzb21lIGxsZGIg
ZGF0YSBwcm92aWRlciBpc3N1ZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQppbmRleCBiNmJiYWE1MjE1MmJm
MTJhYmU4OTI4NTU0NWRiNTIyNTVlMDcyYjExLi44N2Q3ZmU4ZWU3ZTg4N2IyMGI3ZThhNjY3ZDg5
NDcxNjQ3YTYzOTk3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCkBAIC03NSw2ICs3NSwyNiBAQAogCiBu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKK3N0YXRpYyBSZXRhaW5QdHI8U2VjVHJ1c3RSZWY+
IHNlY1RydXN0RnJvbUNlcnRpZmljYXRlQ2hhaW4oTlNBcnJheSAqY2hhaW4pCit7CisgICAgU2Vj
VHJ1c3RSZWYgdHJ1c3RSZWYgPSBudWxscHRyOworICAgIGlmIChTZWNUcnVzdENyZWF0ZVdpdGhD
ZXJ0aWZpY2F0ZXMoKF9fYnJpZGdlIENGQXJyYXlSZWYpY2hhaW4sIG51bGxwdHIsICZ0cnVzdFJl
ZikgIT0gbm9FcnIpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBhZG9wdENG
KHRydXN0UmVmKTsKK30KKworc3RhdGljIFRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgKmRlbGVnYXRl
QWxsb3dpbmdBbGxUTFMoKQoreworICAgIHN0YXRpYyBSZXRhaW5QdHI8VGVzdE5hdmlnYXRpb25E
ZWxlZ2F0ZT4gZGVsZWdhdGUgPSBbXSB7CisgICAgICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5T
KFtUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIG5ld10pOworICAgICAgICBkZWxlZ2F0ZS5nZXQoKS5k
aWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgPSBeKFdLV2ViVmlldyAqLCBOU1VSTEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICpjaGFsbGVuZ2UsIHZvaWQgKF5jb21wbGV0aW9uSGFuZGxl
cikoTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZURpc3Bvc2l0aW9uLCBOU1VSTENyZWRlbnRpYWwg
KikpIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKE5TVVJMU2Vzc2lvbkF1dGhDaGFs
bGVuZ2VVc2VDcmVkZW50aWFsLCBbTlNVUkxDcmVkZW50aWFsIGNyZWRlbnRpYWxGb3JUcnVzdDpj
aGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlLnNlcnZlclRydXN0XSk7CisgICAgICAgIH07CisgICAg
ICAgIHJldHVybiBkZWxlZ2F0ZTsKKyAgICB9KCk7CisgICAgcmV0dXJuIGRlbGVnYXRlLmdldCgp
OworfQorCiBzdGF0aWMgTlNVUkwgKmV4YW1wbGVVUkwoKQogewogICAgIHJldHVybiBbTlNVUkwg
VVJMV2l0aFN0cmluZzpAImh0dHBzOi8vZXhhbXBsZS5jb20vIl07CkBAIC0xMjIsOSArMTQyLDEw
IEBAIHZvaWQgcnVuQmFzaWNFdmVudEF0dHJpYnV0aW9uVGVzdChXS1dlYlZpZXdDb25maWd1cmF0
aW9uICpjb25maWd1cmF0aW9uLCBGdW5jdGlvCiAgICAgTlNVUkwgKnNlcnZlclVSTCA9IHNlcnZl
ci5yZXF1ZXN0KCkuVVJMOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gY29uZmlndXJhdGlvbiA/IGFk
b3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0WmVybyBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb25dKSA6IGFkb3B0TlMoW1dLV2ViVmlldyBuZXddKTsKKyAgICB3
ZWJWaWV3LmdldCgpLm5hdmlnYXRpb25EZWxlZ2F0ZSA9IGRlbGVnYXRlQWxsb3dpbmdBbGxUTFMo
KTsKICAgICBhZGRBdHRyaWJ1dGlvblRvV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBzZXJ2ZXIpOwog
ICAgIFtbd2ViVmlldyBjb25maWd1cmF0aW9uXS53ZWJzaXRlRGF0YVN0b3JlIF9zZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDpZRVNdOwotICAgIFtbd2ViVmlldyBjb25maWd1cmF0aW9u
XS53ZWJzaXRlRGF0YVN0b3JlIF9hbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW46QFsoaWQpdGVzdENl
cnRpZmljYXRlKCkuZ2V0KCldIGZvckhvc3Q6c2VydmVyVVJMLmhvc3RdOworICAgIFtbd2ViVmll
dyBjb25maWd1cmF0aW9uXS53ZWJzaXRlRGF0YVN0b3JlIF90cnVzdFNlcnZlckZvckxvY2FsUENN
VGVzdGluZzpzZWNUcnVzdEZyb21DZXJ0aWZpY2F0ZUNoYWluKEBbKGlkKXRlc3RDZXJ0aWZpY2F0
ZSgpLmdldCgpXSkuZ2V0KCldOwogICAgIFt3ZWJWaWV3IF9zZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMc0ZvclRlc3Rpbmc6c2VydmVyVVJMIGRlc3RpbmF0aW9u
VVJMOmV4YW1wbGVVUkwoKSBjb21wbGV0aW9uSGFuZGxlcjpeewogICAgICAgICBbd2ViVmlldyBf
c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZzpZRVMgY29t
cGxldGlvbkhhbmRsZXI6XnsKICAgICAgICAgICAgIE5TU3RyaW5nICpodG1sID0gW05TU3RyaW5n
IHN0cmluZ1dpdGhGb3JtYXQ6QCI8c2NyaXB0PmZldGNoKCclQGNvbnZlcnNpb25SZXF1ZXN0QmVm
b3JlUmVkaXJlY3QnLHttb2RlOiduby1jb3JzJ30pPC9zY3JpcHQ+Iiwgc2VydmVyVVJMXTsKQEAg
LTI3MCw5ICsyOTEsMTAgQEAgVEVTVChFdmVudEF0dHJpYnV0aW9uLCBGcmF1ZFByZXZlbnRpb24p
CiAgICAgTlNVUkwgKnNlcnZlclVSTCA9IHNlcnZlci5yZXF1ZXN0KCkuVVJMOwogCiAgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbV0tXZWJWaWV3IG5ld10pOworICAgIHdlYlZpZXcuZ2V0KCku
bmF2aWdhdGlvbkRlbGVnYXRlID0gZGVsZWdhdGVBbGxvd2luZ0FsbFRMUygpOwogICAgIFt3ZWJW
aWV3IF9hZGRFdmVudEF0dHJpYnV0aW9uV2l0aFNvdXJjZUlEOjQyIGRlc3RpbmF0aW9uVVJMOmV4
YW1wbGVVUkwoKSBzb3VyY2VEZXNjcmlwdGlvbjpAInRlc3Qgc291cmNlIGRlc2NyaXB0aW9uIiBw
dXJjaGFzZXI6QCJ0ZXN0IHB1cmNoYXNlciIgcmVwb3J0RW5kcG9pbnQ6c2VydmVyVVJMIG9wdGlv
bmFsTm9uY2U6QCJBQkNERUZhYmNkZWYwMTIzNDU2Nzg5Il07CiAgICAgW1t3ZWJWaWV3IGNvbmZp
Z3VyYXRpb25dLndlYnNpdGVEYXRhU3RvcmUgX3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFi
bGVkOllFU107Ci0gICAgW1t3ZWJWaWV3IGNvbmZpZ3VyYXRpb25dLndlYnNpdGVEYXRhU3RvcmUg
X2FsbG93VExTQ2VydGlmaWNhdGVDaGFpbjpAWyhpZCl0ZXN0Q2VydGlmaWNhdGUoKS5nZXQoKV0g
Zm9ySG9zdDpzZXJ2ZXJVUkwuaG9zdF07CisgICAgW1t3ZWJWaWV3IGNvbmZpZ3VyYXRpb25dLndl
YnNpdGVEYXRhU3RvcmUgX3RydXN0U2VydmVyRm9yTG9jYWxQQ01UZXN0aW5nOnNlY1RydXN0RnJv
bUNlcnRpZmljYXRlQ2hhaW4oQFsoaWQpdGVzdENlcnRpZmljYXRlKCkuZ2V0KCldKS5nZXQoKV07
CiAKICAgICBbd2ViVmlldyBfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJl
cG9ydFVSTHNGb3JUZXN0aW5nOnNlcnZlclVSTCBkZXN0aW5hdGlvblVSTDpleGFtcGxlVVJMKCkg
Y29tcGxldGlvbkhhbmRsZXI6XnsKICAgICAgICAgW3dlYlZpZXcgX3NldFByaXZhdGVDbGlja01l
YXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3Rpbmc6WUVTIGNvbXBsZXRpb25IYW5kbGVyOl57
Cg==
</data>
<flag name="commit-queue"
          id="461107"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437844</attachid>
            <date>2021-09-09 23:51:20 -0700</date>
            <delta_ts>2021-09-10 16:21:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230137-20210909235119.patch</filename>
            <type>text/plain</type>
            <size>63529</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNhNmVkOGNiNWQ3NzU3MDYz
NDYxZjRmYzZkODdjOTNhNDBmMWQ2MzQuLjdjMjRiNmZmOWMxNGNiMmJhNGE2YjQ0MjE4Njg0Y2Nj
MDZkNmM3ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODAgQEAKKzIwMjEtMDktMDkgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgaW5mcmFz
dHJ1Y3R1cmUgdG8gYWxsb3cgVExTIGR1cmluZyBQQ00gdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDEzNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHdlcmUgdXNpbmcgTmV0d29ya1Nlc3Np
b25Db2NvYTo6YWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdCBidXQgdGhhdCBk
b2Vzbid0IHdvcmsgd2hlbiB3ZSBhcmUgaW4gYSBkYWVtb24sCisgICAgICAgIHdoZXJlIHRoZXJl
IGlzIG5vIE5ldHdvcmtTZXNzaW9uIG9yIE5ldHdvcmtTZXNzaW9uQ29jb2EuICBXZSBuZWVkZWQg
YSBuZXcgU1BJIGZvciBzZXR0aW5nIHRoZSB0ZXN0IFRMUyBjZXJ0aWZpY2F0ZXMgd2hlcmV2ZXIK
KyAgICAgICAgdGhlIG5ldHdvcmtpbmcgaXMgYmVpbmcgZG9uZS4KKworICAgICAgICBJIGFsc28g
Zm91bmQgdGhhdCB3ZSB3ZXJlIHVubmVjZXNzYXJpbHkgcGluZ2luZyBleGFtcGxlLmNvbSB3aGVu
IHJ1bm5pbmcgdGhlc2UgdW5pdCB0ZXN0cy4gIEkgYWRkZWQgYW4gZWFybHkgcmV0dXJuIHRvIHBy
ZXZlbnQgdGhhdAorICAgICAgICB3aGVuIHJ1bm5pbmcgdGVzdHMgd2l0aCBhIGxvY2FsIHNlcnZl
ci4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9y
V2ViU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFsbG93VExTQ2Vy
dGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lv
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjphbGxvd1RMU0NlcnRpZmlj
YXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtTZXNzaW9uLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UENNOjpEZWNvZGVyOjp+RGVjb2Rlcik6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6RGVj
b2Rlcjo6ZGVjb2RlRml4ZWRMZW5ndGhSZWZlcmVuY2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rl
ci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1By
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9j
YWxQQ01UZXN0aW5nKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXJJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpQQ006Om1lc3NhZ2VUeXBl
U2VuZHNSZXBseSk6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6ZGVjb2RlTWVzc2FnZUFuZFNlbmRU
b01hbmFnZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UENNOjpNYW5hZ2VyUHJv
eHk6OmFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQQ006Ok5ldHdvcmtMb2FkZXI6OmFsbG93VExTQ2VydGlmaWNh
dGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVy
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29j
b2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyQ29jb2EubW06CisgICAgICAg
IChhbGxvd2VkTG9jYWxUZXN0U2VydmVyVHJ1c3QpOgorICAgICAgICAodHJ1c3RzU2VydmVyRm9y
TG9jYWxUZXN0cyk6CisgICAgICAgICgtW1dLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZUFsbG93aW5n
T25seU5vblJlZGlyZWN0ZWRKU09OIFVSTFNlc3Npb246dGFzazpkaWRSZWNlaXZlQ2hhbGxlbmdl
OmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoV2ViS2l0OjpQQ006Ok5ldHdvcmtMb2Fk
ZXI6OmFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyk6CisgICAgICAg
IChXZWJLaXQ6OlBDTTo6TmV0d29ya0xvYWRlcjo6c3RhcnQpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JI
b3N0KTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Byb2Nl
c3NNYWMubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphbGxvd1NwZWNpZmlj
SFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QpOiBEZWxldGVkLgorICAgICAgICAqIFBsYXRmb3JtL0lQ
Qy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVz
L0NvY29hL0RhZW1vbi9QQ01EYWVtb25FbnRyeVBvaW50Lm1tOgorICAgICAgICAoV2ViS2l0Ojpz
dGFydExpc3RlbmluZ0Zvck1hY2hTZXJ2aWNlQ29ubmVjdGlvbnMpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvY2YvQXJndW1lbnRD
b2RlcnNDRi5jcHA6CisgICAgICAgICogU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuaDoKKyAg
ICAgICAgKiBTaGFyZWQvY3VybC9XZWJDb3JlQXJndW1lbnRDb2RlcnNDdXJsLmNwcDoKKyAgICAg
ICAgKiBTaGFyZWQvZ2xpYi9Bcmd1bWVudENvZGVyc0dMaWIuY3BwOgorICAgICAgICAqIFNoYXJl
ZC9nbGliL0FyZ3VtZW50Q29kZXJzR0xpYi5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzTWFjLm1tOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNv
cmU6OkNlcnRpZmljYXRlSW5mbz46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
c291cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNTb3VwLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxTZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU+OjpkZWNvZGVQbGF0Zm9ybURh
dGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1t
OgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2FsbG93VExTQ2VydGlmaWNhdGVDaGFp
bjpmb3JIb3N0Ol0pOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX3RydXN0U2VydmVy
Rm9yTG9jYWxQQ01UZXN0aW5nOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRXZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9hbGxvd190
bHNfY2VydGlmaWNhdGVfZm9yX2hvc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9y
ZTo6YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KToKKyAgICAgICAgKFdlYktp
dDo6V2Vic2l0ZURhdGFTdG9yZTo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01U
ZXN0aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5oOgorCiAyMDIxLTA5LTA5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgTW9kZXJuaXplIENlcnRpZmljYXRlSW5mbyBkZWNvZGVyCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDM2
ZThmZWExNzI5ODIwZGNlYzhhMDFhNDQ1ZGEwZThkZWJjOTRkYzAuLmEzNWNlYTYzNTVmNWU5NjFk
OGUyODM3YTNhYmNjMmQwZTMyZmUwNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0yMTc0LDEwICsyMTc0LDE3IEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OnNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbCBjYWNoZU1vZGVsKQogCiB2b2lk
IE5ldHdvcmtQcm9jZXNzOjpzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldChi
b29sIGFsbG93cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogeworICAgIC8vIEZJWE1FOiBTdG9wIHVzaW5nIHRoaXMgd2hlbiBIQVZFKE5TVVJMU0VTU0lP
Tl9XRUJTT0NLRVQpIGlzIHRydWUuCiAgICAgRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzZXRB
bGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZShhbGxvd3MpOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7
CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZvckxv
Y2FsUENNVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OkNl
cnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQoreworICAgIGlmIChhdXRvKiBuZXR3b3Jr
U2Vzc2lvbiA9IG1fbmV0d29ya1Nlc3Npb25zLmdldChzZXNzaW9uSUQpKQorICAgICAgICBuZXR3
b3JrU2Vzc2lvbi0+YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKGNl
cnRpZmljYXRlSW5mbyk7Cit9CisKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmxvZ0RpYWdub3N0aWNN
ZXNzYWdlKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgU2hvdWxkU2FtcGxlIHNob3Vs
ZFNhbXBsZSkKIHsKICAgICBpZiAoIURpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpzaG91bGRMb2dB
ZnRlclNhbXBsaW5nKHNob3VsZFNhbXBsZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggMzQ1NTY0NzYyMTVmNjlkZDZiYWY0Njc4YmQ3NDk0
NDlmYWViYjNlYy4uMjhjYmZmNWQ0MTAzOGVhN2ZkZmI4MGQ0N2I2NGM2MmNjMDFkZTRlYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtNDUw
LDggKzQ1MCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwp
OwogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbFN5bmNocm9ub3VzbHlGb3JUZXN0aW5nKENhY2hlTW9k
ZWwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBhbGxvd1NwZWNpZmlj
SFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiwg
Y29uc3QgU3RyaW5nJiBob3N0KTsKKyAgICB2b2lkIGFsbG93VExTQ2VydGlmaWNhdGVDaGFpbkZv
ckxvY2FsUENNVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNh
dGVJbmZvJik7CiAgICAgdm9pZCBzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tl
dChib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIAorCiAgICAgdm9pZCBm
bHVzaENvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAKICAgICB2b2lkIGFkZFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyhQQUw6OlNlc3Npb25JRCwg
V2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzJiYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVz
c2FnZXMuaW4KaW5kZXggOWI2MjEzM2IwNWY4MzQ3YzI1ODMwNWY0MWZiYjc3Nzc0OTBhNDBmOS4u
NTE4MGM4Mjk2NTBhZDU2ZTBiMWVmZDNiYzQ1MjBjYmYzMWEyOTczMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmlu
CkBAIC02Niw2ICs2Niw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2Vp
dmVyIHsKICAgICBGbHVzaENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBB
c3luYwogCiAgICAgQWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KFdlYkNvcmU6
OkNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZSwgU3RyaW5nIGhvc3QpCisgICAgQWxsb3dUTFND
ZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvIGNlcnRpZmljYXRlKQogCiAgICAgU2V0Q2FjaGVN
b2RlbChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpDYWNoZU1vZGVsIGNhY2hlTW9kZWwpCiAgICAgU2V0
Q2FjaGVNb2RlbFN5bmNocm9ub3VzbHlGb3JUZXN0aW5nKGVudW06dWludDhfdCBXZWJLaXQ6OkNh
Y2hlTW9kZWwgY2FjaGVNb2RlbCkgLT4gKCkgU3luY2hyb25vdXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKaW5kZXggZGZkZTc4ZGE2MWQ5YmZh
OGEzYzVhNGMxYzhjYTk3YTAyZTM1M2ZiOC4uNWUxNWY2MzQzNzM0YzlkMWI1M2Q4ZGMxMzE5OTA1
ZDg5MjJmOWRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbi5jcHAKQEAgLTM5MCw2ICszOTAsMTEgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbjo6Zmly
ZVByaXZhdGVDbGlja01lYXN1cmVtZW50VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcoKQogICAg
IHByaXZhdGVDbGlja01lYXN1cmVtZW50KCkuc3RhcnRUaW1lckltbWVkaWF0ZWx5Rm9yVGVzdGlu
ZygpOwogfQogCit2b2lkIE5ldHdvcmtTZXNzaW9uOjphbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5G
b3JMb2NhbFBDTVRlc3RpbmcoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZp
Y2F0ZUluZm8pCit7CisgICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKS5hbGxvd1RMU0NlcnRp
ZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoY2VydGlmaWNhdGVJbmZvKTsKK30KKwogdm9p
ZCBOZXR3b3JrU2Vzc2lvbjo6YWRkS2VwdEFsaXZlTG9hZChSZWY8TmV0d29ya1Jlc291cmNlTG9h
ZGVyPiYmIGxvYWRlcikKIHsKICAgICBBU1NFUlQobV9zZXNzaW9uSUQgPT0gbG9hZGVyLT5zZXNz
aW9uSUQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
LmgKaW5kZXggZDhhYWIzZGJhNDliNzY3ZjNlZjA5OTRiZjJjYmU5NTFmYTQxNjcyOC4uODIyMTVj
NjkzMGNjNmY0M2FhNGVjYjYzMGM0OThhMzliNTExYmFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBD
ZXJ0aWZpY2F0ZUluZm87CiBjbGFzcyBOZXR3b3JrU3RvcmFnZVNlc3Npb247CiBjbGFzcyBSZXNv
dXJjZVJlcXVlc3Q7CiBlbnVtIGNsYXNzIEluY2x1ZGVIdHRwT25seUNvb2tpZXMgOiBib29sOwpA
QCAtMTM3LDYgKzEzOCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1
cmVtZW50RXBoZW1lcmFsTWVhc3VyZW1lbnRGb3JUZXN0aW5nKGJvb2wpOwogICAgIHZvaWQgc2V0
UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhTdHJpbmcmJiB1bmxpbmthYmxlVG9r
ZW4sIFN0cmluZyYmIHNlY3JldFRva2VuLCBTdHJpbmcmJiBzaWduYXR1cmUsIFN0cmluZyYmIGtl
eUlEKTsKICAgICB2b2lkIGZpcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRpbWVySW1tZWRpYXRl
bHlGb3JUZXN0aW5nKCk7CisgICAgdm9pZCBhbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2Nh
bFBDTVRlc3RpbmcoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJik7CiAKICAgICB2b2lk
IGFkZEtlcHRBbGl2ZUxvYWQoUmVmPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4mJik7CiAgICAgdm9p
ZCByZW1vdmVLZXB0QWxpdmVMb2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRlciYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERl
Y29kZXIuY3BwCmluZGV4IDhhMjBlOGMyZmNjYTk5YzEwODYyNTQwN2ExZjJjM2NjNDUyMzNlNDUu
LjQ5M2MyY2E3ZDkzYzNhZjVmNjU3OWExNWE2MjdkMjU2MTU1ZmRiZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGVj
b2Rlci5jcHAKQEAgLTMwLDYgKzMwLDExIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBuYW1lc3Bh
Y2UgUENNIHsKIAorRGVjb2Rlcjo6fkRlY29kZXIoKQoreworICAgIEFTU0VSVChtX2J1ZmZlclBv
c2l0aW9uID09IG1fYnVmZmVyLnNpemUoKSk7Cit9CisKIGJvb2wgRGVjb2Rlcjo6YnVmZmVySXNM
YXJnZUVub3VnaFRvQ29udGFpbkJ5dGVzKHNpemVfdCBieXRlcykgY29uc3QKIHsKICAgICByZXR1
cm4gYnl0ZXMgPD0gbV9idWZmZXIuc2l6ZSgpIC0gbV9idWZmZXJQb3NpdGlvbjsKQEAgLTQ0LDYg
KzQ5LDE1IEBAIGJvb2wgRGVjb2Rlcjo6ZGVjb2RlRml4ZWRMZW5ndGhEYXRhKHVpbnQ4X3QqIGRh
dGEsIHNpemVfdCBzaXplLCBzaXplX3QpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2NvbnN0IHVp
bnQ4X3QqIERlY29kZXI6OmRlY29kZUZpeGVkTGVuZ3RoUmVmZXJlbmNlKHNpemVfdCBzaXplLCBz
aXplX3QpCit7CisgICAgaWYgKCFidWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluQnl0ZXMoc2l6
ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGNvbnN0IHVpbnQ4X3QqIGRhdGEgPSBt
X2J1ZmZlci5kYXRhKCkgKyBtX2J1ZmZlclBvc2l0aW9uOworICAgIG1fYnVmZmVyUG9zaXRpb24g
Kz0gc2l6ZTsKKyAgICByZXR1cm4gZGF0YTsKK30KKwogfSAvLyBuYW1lc3BhY2UgUENNCiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29k
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmgKaW5kZXggMjg3Nzk5ZTMwZWU1MzA3
NzJjOWQxNDdjYzM4N2Y1NWY1YjhjMzU1Ni4uMmQzYTY3MGJjNWIwYzRjMThiNDM5MmM0MjBhYjQx
MjYzZDQ3N2NhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1By
aXZhdGVDbGlja01lYXN1cmVtZW50RGVjb2Rlci5oCkBAIC0zNSw3ICszNSw4IEBAIGNsYXNzIERl
Y29kZXIgewogcHVibGljOgogICAgIERlY29kZXIoVmVjdG9yPHVpbnQ4X3Q+JiYgYnVmZmVyKQog
ICAgICAgICA6IG1fYnVmZmVyKFdURk1vdmUoYnVmZmVyKSkgeyB9Ci0gICAgCisgICAgfkRlY29k
ZXIoKTsKKwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAgRGVjb2RlciYgb3BlcmF0b3I+
PihzdGQ6Om9wdGlvbmFsPFQ+JiB0KQogICAgIHsKQEAgLTU1LDcgKzU2LDggQEAgcHVibGljOgog
ICAgIH0KIAogICAgIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZUZpeGVkTGVuZ3RoRGF0
YSh1aW50OF90KiBkYXRhLCBzaXplX3QsIHNpemVfdCBhbGlnbm1lbnQpOwotICAgIAorICAgIGNv
bnN0IHVpbnQ4X3QqIGRlY29kZUZpeGVkTGVuZ3RoUmVmZXJlbmNlKHNpemVfdCwgc2l6ZV90KTsK
KwogcHJpdmF0ZToKICAgICBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBidWZmZXJJc0xhcmdlRW5v
dWdoVG9Db250YWluQnl0ZXMoc2l6ZV90KSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwCmlu
ZGV4IDViMTU5OWYwMzc4Y2U2MzVlM2RmY2NiZThmMmM2Y2NiYzFjNWJiOGUuLmY0OTk4Mzk4ZThj
MWIzYmQyMjhlY2FlNjQyNGU2YTU2MGI5NWE4YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAKQEAg
LTU0OCw0ICs1NDgsOSBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6ZGVz
dHJveVN0b3JlRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2bwogICAgIH0pOwogfQogCit2
b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNo
YWluRm9yTG9jYWxQQ01UZXN0aW5nKGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2Vy
dGlmaWNhdGVJbmZvKQoreworICAgIFBDTTo6TmV0d29ya0xvYWRlcjo6YWxsb3dUTFNDZXJ0aWZp
Y2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nKGNlcnRpZmljYXRlSW5mbyk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmgKaW5kZXggMjZlN2M1NTkxNDQ3ZmViZjU3
ODUxZWFlNWQyZTBmNDZkOWJlZTAxZi4uYmM1YmM5ZTc0YWMwODMxYWQ3Y2I5MDE3NmJhMTA5NTYw
Y2IxOTliYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oCkBAIC02Miw2ICs2Miw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldFBDTUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoU3RyaW5nJiYgdW5s
aW5rYWJsZVRva2VuLCBTdHJpbmcmJiBzZWNyZXRUb2tlbiwgU3RyaW5nJiYgc2lnbmF0dXJlLCBT
dHJpbmcmJiBrZXlJRCkgZmluYWw7CiAgICAgdm9pZCBzdGFydFRpbWVySW1tZWRpYXRlbHlGb3JU
ZXN0aW5nKCkgZmluYWw7CiAgICAgdm9pZCBkZXN0cm95U3RvcmVGb3JUZXN0aW5nKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CisgICAgdm9pZCBhbGxvd1RMU0NlcnRpZmljYXRl
Q2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJikg
ZmluYWw7CiAKIHByaXZhdGU6CiAgICAgUENNOjpTdG9yZSYgc3RvcmUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmNwcAppbmRleCBkNzJhZmQ5ZTQ1MGY4NWE3ZmE0MTQ5YWE2
ODNhOGMzMzkyOGU3OTQwLi41ZDEzZTc0YzFkZDI2ODg3OGYyOWM5NzJkYTVmNzFjNzkxMTYyMmVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuY3BwCkBAIC0zMiw2ICszMiw3
IEBACiAjaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmgiCiAjaW5jbHVk
ZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmNvZGVyLmgiCiAjaW5jbHVkZSAiUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC0xMTQsNiArMTE1LDEwIEBAIEFSR1VNRU5U
UygpCiBSRVBMWSgpCiBFTkQKIAorRlVOQ1RJT04oYWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9y
TG9jYWxQQ01UZXN0aW5nKQorQVJHVU1FTlRTKFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbykKK0VO
RAorCiAjdW5kZWYgRlVOQ1RJT04KICN1bmRlZiBBUkdVTUVOVFMKICN1bmRlZiBSRVBMWQpAQCAt
MTQ5LDYgKzE1NCw3IEBAIGJvb2wgbWVzc2FnZVR5cGVTZW5kc1JlcGx5KE1lc3NhZ2VUeXBlIG1l
c3NhZ2VUeXBlKQogICAgIGNhc2UgTWVzc2FnZVR5cGU6OlNldEVwaGVtZXJhbE1lYXN1cmVtZW50
Rm9yVGVzdGluZzoKICAgICBjYXNlIE1lc3NhZ2VUeXBlOjpTZXRQQ01GcmF1ZFByZXZlbnRpb25W
YWx1ZXNGb3JUZXN0aW5nOgogICAgIGNhc2UgTWVzc2FnZVR5cGU6OlN0YXJ0VGltZXJJbW1lZGlh
dGVseUZvclRlc3Rpbmc6CisgICAgY2FzZSBNZXNzYWdlVHlwZTo6QWxsb3dUTFNDZXJ0aWZpY2F0
ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nOgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgY2Fz
ZSBNZXNzYWdlVHlwZTo6TWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4
cGlyZWRGb3JUZXN0aW5nOgogICAgIGNhc2UgTWVzc2FnZVR5cGU6OkRlc3Ryb3lTdG9yZUZvclRl
c3Rpbmc6CkBAIC0yNTAsNiArMjU2LDkgQEAgdm9pZCBkZWNvZGVNZXNzYWdlQW5kU2VuZFRvTWFu
YWdlcihNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSwgVmVjdG9yPHVpbnQ4X3Q+JiYgZW4KICAgICBj
YXNlIFBDTTo6TWVzc2FnZVR5cGU6OkRlc3Ryb3lTdG9yZUZvclRlc3Rpbmc6CiAgICAgICAgIGhh
bmRsZVBDTU1lc3NhZ2VXaXRoUmVwbHk8TWVzc2FnZUluZm86OmRlc3Ryb3lTdG9yZUZvclRlc3Rp
bmc+KFdURk1vdmUoZW5jb2RlZE1lc3NhZ2UpLCBXVEZNb3ZlKHJlcGx5U2VuZGVyKSk7CiAgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUENNOjpNZXNzYWdlVHlwZTo6QWxsb3dUTFNDZXJ0aWZpY2F0
ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nOgorICAgICAgICBoYW5kbGVQQ01NZXNzYWdlPE1lc3Nh
Z2VJbmZvOjphbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3Rpbmc+KFdURk1v
dmUoZW5jb2RlZE1lc3NhZ2UpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXJJbnRlcmZhY2UuaAppbmRleCBhMjkyZmE5ZjA5NTViM2UwMjI0NDY1MDM3
MWVkYjQ5MzljMDcxZmFlLi40MDM2MmRmYTIyMTRlYzgzN2U3NTdlOTRiY2Q0YWU4YTNjYjI1MGQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlckludGVyZmFjZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VySW50ZXJmYWNlLmgKQEAgLTI5LDYgKzI5LDEwIEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgogI2luY2x1ZGUgPHd0Zi9F
bnVtVHJhaXRzLmg+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENlcnRpZmljYXRlSW5m
bzsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGVudW0gY2xhc3MgUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRBdHRyaWJ1dGlvblR5cGUgOiBib29sIHsgVW5hdHRyaWJ1dGVkLCBBdHRyaWJ1dGVk
IH07CkBAIC02NCw2ICs2OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0UENNRnJh
dWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhTdHJpbmcmJiB1bmxpbmthYmxlVG9rZW4sIFN0
cmluZyYmIHNlY3JldFRva2VuLCBTdHJpbmcmJiBzaWduYXR1cmUsIFN0cmluZyYmIGtleUlEKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcoKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lTdG9yZUZvclRlc3RpbmcoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFsbG93VExTQ2VydGlmaWNh
dGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8m
KSA9IDA7CiB9OwogCiBjb25zdGV4cHIgY29uc3QgY2hhciogcHJvdG9jb2xWZXJzaW9uS2V5IHsg
InZlcnNpb24iIH07CkBAIC04Nyw2ICs5Miw3IEBAIGVudW0gY2xhc3MgTWVzc2FnZVR5cGUgOiB1
aW50OF90IHsKICAgICBTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nLAogICAg
IFN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcsCiAgICAgRGVzdHJveVN0b3JlRm9yVGVz
dGluZywKKyAgICBBbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcKIH07
CiAKIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBwcm90b2NvbEVuY29kZWRNZXNzYWdlS2V5IHsgImVu
Y29kZWQgbWVzc2FnZSIgfTsKQEAgLTExOSw3ICsxMjUsOCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYktpdDo6UENNOjpNZXNzYWdlVHlwZT4gewogICAgICAgICBXZWJLaXQ6OlBD
TTo6TWVzc2FnZVR5cGU6OlNldEVwaGVtZXJhbE1lYXN1cmVtZW50Rm9yVGVzdGluZywKICAgICAg
ICAgV2ViS2l0OjpQQ006Ok1lc3NhZ2VUeXBlOjpTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNG
b3JUZXN0aW5nLAogICAgICAgICBXZWJLaXQ6OlBDTTo6TWVzc2FnZVR5cGU6OlN0YXJ0VGltZXJJ
bW1lZGlhdGVseUZvclRlc3RpbmcsCi0gICAgICAgIFdlYktpdDo6UENNOjpNZXNzYWdlVHlwZTo6
RGVzdHJveVN0b3JlRm9yVGVzdGluZworICAgICAgICBXZWJLaXQ6OlBDTTo6TWVzc2FnZVR5cGU6
OkRlc3Ryb3lTdG9yZUZvclRlc3RpbmcsCisgICAgICAgIFdlYktpdDo6UENNOjpNZXNzYWdlVHlw
ZTo6QWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQQ01UZXN0aW5nCiAgICAgPjsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAKaW5kZXggM2NhZTRlNGZmNThjYjYxZjU1
ZjViNTE5NWJhNWUzZDBiYThkYmRkMy4uMTA4MjY1MmIwMGUyNzEzNGViNDFmMGVlMjFhODZhNTgx
OTU0ODZmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXJQcm94eS5jcHAKQEAgLTE1MSw2ICsxNTEs
MTEgQEAgdm9pZCBNYW5hZ2VyUHJveHk6OmRlc3Ryb3lTdG9yZUZvclRlc3RpbmcoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb24KICAgICBzZW5kTWVzc2FnZVdpdGhSZXBseTxN
ZXNzYWdlVHlwZTo6RGVzdHJveVN0b3JlRm9yVGVzdGluZz4oV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwogfQogCit2b2lkIE1hbmFnZXJQcm94eTo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWlu
Rm9yTG9jYWxQQ01UZXN0aW5nKGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlm
aWNhdGVJbmZvKQoreworICAgIHNlbmRNZXNzYWdlPE1lc3NhZ2VUeXBlOjpBbGxvd1RMU0NlcnRp
ZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3Rpbmc+KGNlcnRpZmljYXRlSW5mbyk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFBDTQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyUHJveHkuaAppbmRleCA4Y2Q0MTE5OTRiNGIwNmYwZjZiNWQ5OTE1ZjJmMmNkZmFjYTk2ZTZm
Li4xNTExMDk4NzY4OTQxN2EzYjE4NmEyNDIwM2NjMWNjMzYyNzZiZjFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXJQcm94eS5oCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFBD
TUZyYXVkUHJldmVudGlvblZhbHVlc0ZvclRlc3RpbmcoU3RyaW5nJiYgdW5saW5rYWJsZVRva2Vu
LCBTdHJpbmcmJiBzZWNyZXRUb2tlbiwgU3RyaW5nJiYgc2lnbmF0dXJlLCBTdHJpbmcmJiBrZXlJ
RCkgZmluYWw7CiAgICAgdm9pZCBzdGFydFRpbWVySW1tZWRpYXRlbHlGb3JUZXN0aW5nKCkgZmlu
YWw7CiAgICAgdm9pZCBkZXN0cm95U3RvcmVGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJikgZmluYWw7CisgICAgdm9pZCBhbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2Nh
bFBDTVRlc3RpbmcoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJikgZmluYWw7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBQQ00KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3
b3JrTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnROZXR3b3JrTG9hZGVyLmNwcAppbmRl
eCA0NWEwNWVlMWFiMzZlZTFhN2Q4NDQ3N2ZmYTExNjQ0YjU5ODhmOThhLi43ZGEwOWRkMzY0ZmZj
MWNiNzcxYzliNDBmODM1NTI5ZDZiY2Q3ODcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50TmV0d29ya0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2Fk
ZXIuY3BwCkBAIC0zOCw2ICszOCwxMiBAQCB2b2lkIE5ldHdvcmtMb2FkZXI6OnN0YXJ0KFVSTCYm
LCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudAogICAgIG5v
dEltcGxlbWVudGVkKCk7CiAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9LCB7IH0sIHsgfSk7CiB9
CisKK3ZvaWQgTmV0d29ya0xvYWRlcjo6YWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluRm9yTG9jYWxQ
Q01UZXN0aW5nKGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFBDTQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnROZXR3b3JrTG9hZGVyLmgKaW5kZXggMzAzMzA3N2E1Zjk0M2M0NjZlNjRhYjE2NzQyNTE3M2Ri
MDU0MWVjZC4uOTFhZWI1NDc5M2I2MTJkNTBiODU4NGQzYzlmNmIxZWIyOWY3NjNlOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01l
YXN1cmVtZW50TmV0d29ya0xvYWRlci5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSA8d3Rm
L0pTT05WYWx1ZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ2VydGlmaWNhdGVJ
bmZvOwogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiB9CkBA
IC00Miw2ICs0Myw3IEBAIGNsYXNzIE5ldHdvcmtMb2FkZXIgewogcHVibGljOgogICAgIHVzaW5n
IENhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlZlB0cjxK
U09OOjpPYmplY3Q+Jik+OwogICAgIHN0YXRpYyB2b2lkIHN0YXJ0KFVSTCYmLCBSZWZQdHI8SlNP
Tjo6T2JqZWN0PiYmLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UGNtRGF0YUNh
cnJpZWQsIENhbGxiYWNrJiYpOworICAgIHN0YXRpYyB2b2lkIGFsbG93VExTQ2VydGlmaWNhdGVD
aGFpbkZvckxvY2FsUENNVGVzdGluZyhjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mKTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFBDTQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE5ldHdvcmtMb2FkZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRO
ZXR3b3JrTG9hZGVyQ29jb2EubW0KaW5kZXggN2VhMGU4MWJjMTlkOWE1MDU2MDY0MGYxZGFjZTI1
NDBiMjFmNWY2Zi4uNzcyY2IyNjFmYTllZWYyMjZlZDAyZjQ4NGJhZjAwNmViYzM4OWUyNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE5ldHdvcmtMb2FkZXJDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50
L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xvYWRlckNvY29hLm1tCkBAIC0y
NywxMiArMjcsMjYgQEAKICNpbXBvcnQgIlByaXZhdGVDbGlja01lYXN1cmVtZW50TmV0d29ya0xv
YWRlci5oIgogCiAjaW1wb3J0ICJOZXR3b3JrRGF0YVRhc2tDb2NvYS5oIgotI2ltcG9ydCAiTmV0
d29ya1Nlc3Npb25Db2NvYS5oIgogI2ltcG9ydCA8V2ViQ29yZS9IVFRQSGVhZGVyVmFsdWVzLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbXBvcnQgPHBhbC9zcGkv
Y2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAorc3Rh
dGljIFJldGFpblB0cjxTZWNUcnVzdFJlZj4mIGFsbG93ZWRMb2NhbFRlc3RTZXJ2ZXJUcnVzdCgp
Cit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJldGFpblB0cjxTZWNUcnVzdFJlZj4+IHNl
cnZlclRydXN0OworICAgIHJldHVybiBzZXJ2ZXJUcnVzdC5nZXQoKTsKK30KKworc3RhdGljIGJv
b2wgdHJ1c3RzU2VydmVyRm9yTG9jYWxUZXN0cyhOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
ICpjaGFsbGVuZ2UpCit7CisgICAgaWYgKCFbY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZS5ob3N0
IGlzRXF1YWxUb1N0cmluZzpAIjEyNy4wLjAuMSJdCisgICAgICAgIHx8ICFhbGxvd2VkTG9jYWxU
ZXN0U2VydmVyVHJ1c3QoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIFdl
YkNvcmU6OmNlcnRpZmljYXRlc01hdGNoKGFsbG93ZWRMb2NhbFRlc3RTZXJ2ZXJUcnVzdCgpLmdl
dCgpLCBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlLnNlcnZlclRydXN0KTsKK30KKwogQGludGVy
ZmFjZSBXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGVBbGxvd2luZ09ubHlOb25SZWRpcmVjdGVkSlNP
TiA6IE5TT2JqZWN0IDxOU1VSTFNlc3Npb25EYXRhRGVsZWdhdGU+CiBAZW5kCiAKQEAgLTUyLDkg
KzY2LDggQEAKIAogLSAodm9pZClVUkxTZXNzaW9uOihOU1VSTFNlc3Npb24gKilzZXNzaW9uIHRh
c2s6KE5TVVJMU2Vzc2lvblRhc2sgKil0YXNrIGRpZFJlY2VpdmVDaGFsbGVuZ2U6KE5TVVJMQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2UgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQg
KF4pKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgTlNV
UkxDcmVkZW50aWFsICpjcmVkZW50aWFsKSljb21wbGV0aW9uSGFuZGxlcgogewotICAgIC8vIEZJ
WE1FOiBBZGQgcGx1Ym1pbmcgc28gdGhhdCB3ZSBjYW4gdGVsbCB0aGUgZGFlbW9uIHdoaWNoIGNl
cnRpZmljYXRlcyB0byBhY2NlcHQgd2l0aG91dCB1c2luZyBOZXR3b3JrU2Vzc2lvbkNvY29hLgog
ICAgIGlmIChbY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZS5hdXRoZW50aWNhdGlvbk1ldGhvZCBp
c0VxdWFsVG9TdHJpbmc6TlNVUkxBdXRoZW50aWNhdGlvbk1ldGhvZFNlcnZlclRydXN0XQotICAg
ICAgICAmJiBOZXR3b3JrU2Vzc2lvbkNvY29hOjphbGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNh
dGVGb3JIb3N0KGNoYWxsZW5nZSkpCisgICAgICAgICYmIHRydXN0c1NlcnZlckZvckxvY2FsVGVz
dHMoY2hhbGxlbmdlKSkKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKE5TVVJMU2Vz
c2lvbkF1dGhDaGFsbGVuZ2VVc2VDcmVkZW50aWFsLCBbTlNVUkxDcmVkZW50aWFsIGNyZWRlbnRp
YWxGb3JUcnVzdDpjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlLnNlcnZlclRydXN0XSk7CiAgICAg
Y29tcGxldGlvbkhhbmRsZXIoTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZVBlcmZvcm1EZWZhdWx0
SGFuZGxpbmcsIG5pbCk7CiB9CkBAIC04OCw4ICsxMDEsMTggQEAgc3RhdGljIE5TVVJMU2Vzc2lv
biAqc3RhdGVsZXNzU2Vzc2lvbldpdGhvdXRSZWRpcmVjdHMoKQogICAgIHJldHVybiBzZXNzaW9u
LmdldCgpLmdldCgpOwogfQogCit2b2lkIE5ldHdvcmtMb2FkZXI6OmFsbG93VExTQ2VydGlmaWNh
dGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8m
IGNlcnRpZmljYXRlSW5mbykKK3sKKyAgICBhbGxvd2VkTG9jYWxUZXN0U2VydmVyVHJ1c3QoKSA9
IGNlcnRpZmljYXRlSW5mby50cnVzdCgpOworfQorCiB2b2lkIE5ldHdvcmtMb2FkZXI6OnN0YXJ0
KFVSTCYmIHVybCwgUmVmUHRyPEpTT046Ok9iamVjdD4mJiBqc29uUGF5bG9hZCwgV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlBjbURhdGFDYXJyaWVkIHBjbURhdGFDYXJyaWVkLCBD
YWxsYmFjayYmIGNhbGxiYWNrKQogeworICAgIC8vIFByZXZlbnQgY29udGFjdGluZyBub24tbG9j
YWwgc2VydmVycyB3aGVuIGEgdGVzdCBjZXJ0aWZpY2F0ZSBjaGFpbiBpcyB1c2VkIGZvciAxMjcu
MC4wLjEuCisgICAgLy8gRklYTUU6IFVzZSBhIHByb3h5IHNlcnZlciB0byBoYXZlIHRlc3RzIGNv
dmVyIHRoZSByZXBvcnRzIHNlbnQgdG8gdGhlIGRlc3RpbmF0aW9uLCB0b28uCisgICAgaWYgKGFs
bG93ZWRMb2NhbFRlc3RTZXJ2ZXJUcnVzdCgpICYmIHVybC5ob3N0KCkgIT0gIjEyNy4wLjAuMSIp
CisgICAgICAgIHJldHVybiBjYWxsYmFjayh7IH0sIHsgfSwgeyB9KTsKKwogICAgIGF1dG8gcmVx
dWVzdCA9IGFkb3B0TlMoW1tOU011dGFibGVVUkxSZXF1ZXN0IGFsbG9jXSBpbml0V2l0aFVSTDp1
cmxdKTsKICAgICBbcmVxdWVzdCBzZXRWYWx1ZTpXZWJDb3JlOjpIVFRQSGVhZGVyVmFsdWVzOjpt
YXhBZ2UwKCkgZm9ySFRUUEhlYWRlckZpZWxkOkAiQ2FjaGUtQ29udHJvbCJdOwogICAgIGlmIChq
c29uUGF5bG9hZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCmluZGV4IDMxOWM1YzA3NTI3MGE0NzM0YjI0
YmVjOGMzYjJkMDA0MDZiOWZhODIuLmQ5ZDJkNjNkZWJhOTE2OTc2YzliODc5OWQ2NzZhOTIyMTFj
MDM1NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya1Byb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KQEAgLTE4Myw2ICsxODMsMTIgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzczo6ZGVsZXRlSFNUU0NhY2hlRm9ySG9zdE5hbWVzKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QKICNlbmRpZgogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjphbGxvd1Nw
ZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJ
bmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGNvbnN0IFN0cmluZyYgaG9zdCkKK3sKKyAgICAvLyBGSVhN
RTogUmVtb3ZlIHRoaXMgb25jZSByZGFyOi8vMzA2NTU3NDAgaXMgZml4ZWQuCisgICAgW05TVVJM
UmVxdWVzdCBzZXRBbGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGU6KE5TQXJyYXkgKiljZXJ0
aWZpY2F0ZUluZm8uY2VydGlmaWNhdGVDaGFpbigpIGZvckhvc3Q6aG9zdF07Cit9CisKIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OmNsZWFySFNUU0NhY2hlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
V2FsbFRpbWUgbW9kaWZpZWRTaW5jZSkKIHsKICAgICBOU1RpbWVJbnRlcnZhbCB0aW1lSW50ZXJ2
YWwgPSBtb2RpZmllZFNpbmNlLnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vjb25kcygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNv
Y29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lv
bkNvY29hLm1tCmluZGV4IDEzOGM0ZTkyOTFkNTMzZTg3ZWJmNDJiY2Q1YjM2ZWYwNTg2ZDIyOTgu
LmYzYzY2ZjljZjk3NGY1ZTgyYmFhNjI1YTI3ODQ2MjUzN2ViZGJjMzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29j
b2EubW0KQEAgLTE2NDMsNyArMTY0Myw2IEBAIGJvb2wgTmV0d29ya1Nlc3Npb25Db2NvYTo6YWxs
b3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBXZWJDb3JlOjpBCiAgICAg
cmV0dXJuIFdlYkNvcmU6OmNlcnRpZmljYXRlc01hdGNoKHRydXN0LmdldCgpLCBjaGFsbGVuZ2Uu
bnNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgpLnByb3RlY3Rpb25TcGFjZS5zZXJ2ZXJUcnVz
dCk7CiB9CiAKLQogc3RhdGljIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViS2l0OjpBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpD
cmVkZW50aWFsJiBjcmVkZW50aWFsKT4gY3JlYXRlQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXIo
UmVmPE5ldHdvcmtQcm9jZXNzPiYmIG5ldHdvcmtQcm9jZXNzLCBQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsICBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdl
LCBjb25zdCBTdHJpbmcmIHBhcnRpdGlvbiwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViS2l0OjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0
aW9uLCBjb25zdCBXZWJDb3JlOjpDcmVkZW50aWFsJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiAg
ewogICAgIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlIHsgY2hhbGxlbmdlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tCmluZGV4IGExZTA5MTQyYjhiM2EzNGEyNzBm
M2JmNTBmOTYwYTE2ZGU3MTU3OWMuLjhmMWNmZGZlNTcxZDc0OWExOTc4NDBmYTliMDUwMDIyNTIy
M2JiMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdv
cmtQcm9jZXNzSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9zL05l
dHdvcmtQcm9jZXNzSU9TLm1tCkBAIC01NywxMSArNTcsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
Ojppbml0aWFsaXplU2FuZGJveChjb25zdCBBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25Q
YXJhbQogewogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0
aWZpY2F0ZUZvckhvc3QoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0
ZUluZm8sIGNvbnN0IFN0cmluZyYgaG9zdCkKLXsKLSAgICBbTlNVUkxSZXF1ZXN0IHNldEFsbG93
c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZTooTlNBcnJheSAqKWNlcnRpZmljYXRlSW5mby5jZXJ0
aWZpY2F0ZUNoYWluKCkgZm9ySG9zdDpob3N0XTsKLX0KLQogdm9pZCBOZXR3b3JrUHJvY2Vzczo6
cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoY29uc3QgTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAjaWYgRU5BQkxFKFNFQ19JVEVNX1NISU0p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrUHJv
Y2Vzc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9j
ZXNzTWFjLm1tCmluZGV4IDA3YmJlMzI2YWVjNGE2NjgwNDkyOGY5MGVlODRjNzk3ZDY2MTEzMTIu
LmFjMWY3YjQwZTIwZWY2YTViOGRlZDc2NTFkMzQwZDc1MGQ5MGQ1MzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tCkBA
IC03OCwxMSArNzgsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVO
ZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aQogI2VuZGlmCiB9CiAKLXZv
aWQgTmV0d29ya1Byb2Nlc3M6OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChj
b25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgY29uc3QgU3Ry
aW5nJiBob3N0KQotewotICAgIFtOU1VSTFJlcXVlc3Qgc2V0QWxsb3dzU3BlY2lmaWNIVFRQU0Nl
cnRpZmljYXRlOihfX2JyaWRnZSBOU0FycmF5ICopY2VydGlmaWNhdGVJbmZvLmNlcnRpZmljYXRl
Q2hhaW4oKSBmb3JIb3N0OihOU1N0cmluZyAqKWhvc3RdOwotfQotCiB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdCBBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRp
b25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJz
JiBzYW5kYm94UGFyYW1ldGVycykKIHsKICAgICAvLyBOZWVkIHRvIG92ZXJpZGUgdGhlIGRlZmF1
bHQsIGJlY2F1c2Ugc2VydmljZSBoYXMgYSBkaWZmZXJlbnQgYnVuZGxlIElELgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGZmZjllNWUzZjZi
M2UyZWQ1NmI1NjYxZTAzMjc0OWVlNjMyMzZkNGUuLmY1OTZiZDc4MTAyYWYyNDA1NjcyMjYxMzQ4
OTNjMmY1YjVhMWM0NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Fy
Z3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVu
dENvZGVycy5jcHAKQEAgLTg0LDYgKzg0LDcgQEAgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgQXJn
dW1lbnRDb2RlcjxBdG9tU3RyaW5nPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEF0b20KICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KIHZvaWQgQXJn
dW1lbnRDb2RlcjxDU3RyaW5nPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IENTdHJp
bmcmIHN0cmluZykKIHsKICAgICAvLyBTcGVjaWFsIGNhc2UgdGhlIG51bGwgc3RyaW5nLgpAQCAt
OTYsMzEgKzk3LDM3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxDU3RyaW5nPjo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IENTdHJpbmcmIHN0cmluZykKICAgICBlbmNvZGVyIDw8IGxlbmd0
aDsKICAgICBlbmNvZGVyLmVuY29kZUZpeGVkTGVuZ3RoRGF0YShzdHJpbmcuZGF0YUFzVUludDhQ
dHIoKSwgbGVuZ3RoLCAxKTsKIH0KK3RlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxDU3RyaW5n
Pjo6ZW5jb2RlPEVuY29kZXI+KEVuY29kZXImLCBjb25zdCBDU3RyaW5nJik7Cit0ZW1wbGF0ZSB2
b2lkIEFyZ3VtZW50Q29kZXI8Q1N0cmluZz46OmVuY29kZTxXZWJLaXQ6OlBDTTo6RW5jb2Rlcj4o
V2ViS2l0OjpQQ006OkVuY29kZXImLCBjb25zdCBDU3RyaW5nJik7CiAKLVdBUk5fVU5VU0VEX1JF
VFVSTiBib29sIEFyZ3VtZW50Q29kZXI8Q1N0cmluZz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBDU3RyaW5nJiByZXN1bHQpCit0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgorc3RkOjpvcHRp
b25hbDxDU3RyaW5nPiBBcmd1bWVudENvZGVyPENTdHJpbmc+OjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKIHsKLSAgICB1aW50MzJfdCBsZW5ndGg7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShs
ZW5ndGgpKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgc3RkOjpvcHRpb25hbDx1aW50MzJf
dD4gbGVuZ3RoOworICAgIGRlY29kZXIgPj4gbGVuZ3RoOworICAgIGlmICghbGVuZ3RoKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgaWYgKGxlbmd0aCA9PSBzdGQ6Om51bWVy
aWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCkpIHsKKyAgICBpZiAoKmxlbmd0aCA9PSBzdGQ6Om51
bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCkpIHsKICAgICAgICAgLy8gVGhpcyBpcyB0aGUg
bnVsbCBzdHJpbmcuCi0gICAgICAgIHJlc3VsdCA9IENTdHJpbmcoKTsKLSAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIHJldHVybiBDU3RyaW5nKCk7CiAgICAgfQogCiAgICAgLy8gQmVmb3Jl
IGFsbG9jYXRpbmcgdGhlIHN0cmluZywgbWFrZSBzdXJlIHRoYXQgdGhlIGRlY29kZXIgYnVmZmVy
IGlzIGJpZyBlbm91Z2guCi0gICAgaWYgKCFkZWNvZGVyLmJ1ZmZlcklzTGFyZ2VFbm91Z2hUb0Nv
bnRhaW48Y2hhcj4obGVuZ3RoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVj
b2Rlci50ZW1wbGF0ZSBidWZmZXJJc0xhcmdlRW5vdWdoVG9Db250YWluPGNoYXI+KCpsZW5ndGgp
KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgY2hhciogYnVmZmVyOwotICAg
IENTdHJpbmcgc3RyaW5nID0gQ1N0cmluZzo6bmV3VW5pbml0aWFsaXplZChsZW5ndGgsIGJ1ZmZl
cik7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZUZpeGVkTGVuZ3RoRGF0YShyZWludGVycHJldF9j
YXN0PHVpbnQ4X3QqPihidWZmZXIpLCBsZW5ndGgsIDEpKQotICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgQ1N0cmluZyBzdHJpbmcgPSBDU3RyaW5nOjpuZXdVbmluaXRpYWxpemVkKCpsZW5ndGgs
IGJ1ZmZlcik7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUZpeGVkTGVuZ3RoRGF0YShyZWludGVy
cHJldF9jYXN0PHVpbnQ4X3QqPihidWZmZXIpLCAqbGVuZ3RoLCAxKSkKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKIAotICAgIHJlc3VsdCA9IHN0cmluZzsKLSAgICByZXR1cm4gdHJ1ZTsK
KyAgICByZXR1cm4gV1RGTW92ZShzdHJpbmcpOwogfQordGVtcGxhdGUKK3N0ZDo6b3B0aW9uYWw8
Q1N0cmluZz4gQXJndW1lbnRDb2RlcjxDU3RyaW5nPjo6ZGVjb2RlPERlY29kZXI+KERlY29kZXIm
KTsKK3RlbXBsYXRlCitzdGQ6Om9wdGlvbmFsPENTdHJpbmc+IEFyZ3VtZW50Q29kZXI8Q1N0cmlu
Zz46OmRlY29kZTxXZWJLaXQ6OlBDTTo6RGVjb2Rlcj4oV2ViS2l0OjpQQ006OkRlY29kZXImKTsK
IAogdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KIHZvaWQgQXJndW1lbnRDb2RlcjxTdHJpbmc+
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAppbmRleCBiMTgyYzU0ZWI3ODhk
M2Q2OTgxNGFhODA3M2U0ZmYxYWE5ZjM5MmJkLi5hOGM4OTNmMGM1MjQwYTg4ODljMzQ1MTRmOWZi
MWVmZWUwZDYyNzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1
bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29k
ZXJzLmgKQEAgLTYzLDYgKzYzLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IEV4dGVu
dD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8QXJyYXlSZWZlcmVuY2U8VCwgRXh0ZW4KICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEocmVpbnRl
cnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oYXJyYXlSZWZlcmVuY2UuZGF0YSgpKSwgYXJyYXlS
ZWZlcmVuY2Uuc2l6ZSgpICogc2l6ZW9mKFQpLCBhbGlnbm9mKFQpKTsKICAgICB9CisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxBcnJheVJl
ZmVyZW5jZVR5cGU+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKICAgICAgICAgaWYg
KCFFeHRlbnQpCkBAIC04NCwyMiArODUsMjQgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8QXJyYXlSZWZlcmVuY2U8VCwgYXJyYXlSZWZlcmVuY2VEeW5hbWkKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEo
cmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oYXJyYXlSZWZlcmVuY2UuZGF0YSgpKSwg
YXJyYXlSZWZlcmVuY2Uuc2l6ZSgpICogc2l6ZW9mKFQpLCBhbGlnbm9mKFQpKTsKICAgICB9Cisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxB
cnJheVJlZmVyZW5jZVR5cGU+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKLSAgICAg
ICAgdWludDY0X3Qgc2l6ZTsKLSAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzaXplKSkKLSAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWlu
dDY0X3Q+IHNpemU7CisgICAgICAgIGRlY29kZXIgPj4gc2l6ZTsKICAgICAgICAgaWYgKCFzaXpl
KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgaWYgKCEqc2l6ZSkK
ICAgICAgICAgICAgIHJldHVybiBBcnJheVJlZmVyZW5jZVR5cGUoKTsKIAotICAgICAgICBhdXRv
IGRhdGFTaXplID0gQ2hlY2tlZFNpemUgeyBzaXplIH0gKiBzaXplb2YoVCk7CisgICAgICAgIGF1
dG8gZGF0YVNpemUgPSBDaGVja2VkU2l6ZSB7ICpzaXplIH0gKiBzaXplb2YoVCk7CiAgICAgICAg
IGlmIChVTkxJS0VMWShkYXRhU2l6ZS5oYXNPdmVyZmxvd2VkKCkpKQogICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgICAgICBjb25zdCB1aW50OF90KiBkYXRhID0gZGVjb2Rl
ci5kZWNvZGVGaXhlZExlbmd0aFJlZmVyZW5jZShkYXRhU2l6ZSwgYWxpZ25vZihUKSk7CiAgICAg
ICAgIGlmICghZGF0YSkKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgICAg
IHJldHVybiBBcnJheVJlZmVyZW5jZVR5cGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBUKj4oZGF0
YSksIHN0YXRpY19jYXN0PHNpemVfdD4oc2l6ZSkpOworICAgICAgICByZXR1cm4gQXJyYXlSZWZl
cmVuY2VUeXBlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVCo+KGRhdGEpLCBzdGF0aWNfY2FzdDxz
aXplX3Q+KCpzaXplKSk7CiAgICAgfQogfTsKIApAQCAtNDA0LDE0ICs0MDcsMTYgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hh
bmRsZXIsIHNpemVfdCBtaW4KICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8
VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+PiBkZWNvZGUo
RGVjb2RlciYgZGVjb2RlcikKICAgICB7Ci0gICAgICAgIHVpbnQ2NF90IHNpemU7Ci0gICAgICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZSkpCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0
X3Q+IHNpemU7CisgICAgICAgIGRlY29kZXIgPj4gc2l6ZTsKKyAgICAgICAgaWYgKCFzaXplKQog
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgICAgICBWZWN0b3I8VCwgaW5s
aW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+IHZlY3RvcjsKLSAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCAqc2l6ZTsgKytpKSB7CiAgICAgICAgICAgICBzdGQ6Om9wdGlvbmFsPFQ+
IGVsZW1lbnQ7CiAgICAgICAgICAgICBkZWNvZGVyID4+IGVsZW1lbnQ7CiAgICAgICAgICAgICBp
ZiAoIWVsZW1lbnQpCkBAIC00NTgsMjEgKzQ2MywyMyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBz
aXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlciwgc2l6ZV90IG1p
bgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgRGVjb2Rlcj4KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8VCwgaW5saW5lQ2Fw
YWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+PiBkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKICAgICB7Ci0gICAgICAgIHVpbnQ2NF90IGRlY29kZWRTaXplOwotICAgICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGRlY29kZWRTaXplKSkKKyAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50
NjRfdD4gZGVjb2RlZFNpemU7CisgICAgICAgIGRlY29kZXIgPj4gZGVjb2RlZFNpemU7CisgICAg
ICAgIGlmICghZGVjb2RlZFNpemUpCiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owog
CiAgICAgICAgIGlmICghaXNJbkJvdW5kczxzaXplX3Q+KGRlY29kZWRTaXplKSkKICAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICAgICAgYXV0byBzaXplID0gc3RhdGljX2Nh
c3Q8c2l6ZV90PihkZWNvZGVkU2l6ZSk7CisgICAgICAgIGF1dG8gc2l6ZSA9IHN0YXRpY19jYXN0
PHNpemVfdD4oKmRlY29kZWRTaXplKTsKIAogICAgICAgICAvLyBTaW5jZSB3ZSBrbm93IHRoZSB0
b3RhbCBzaXplIG9mIHRoZSBlbGVtZW50cywgd2UgY2FuIGFsbG9jYXRlIHRoZSB2ZWN0b3IgaW4K
ICAgICAgICAgLy8gb25lIGZlbGwgc3dvb3AuIEJlZm9yZSBhbGxvY2F0aW5nIHdlIG11c3QgaG93
ZXZlciBtYWtlIHN1cmUgdGhhdCB0aGUgZGVjb2RlciBidWZmZXIKICAgICAgICAgLy8gaXMgYmln
IGVub3VnaC4KLSAgICAgICAgaWYgKCFkZWNvZGVyLmJ1ZmZlcklzTGFyZ2VFbm91Z2hUb0NvbnRh
aW48VD4oc2l6ZSkpCisgICAgICAgIGlmICghZGVjb2Rlci50ZW1wbGF0ZSBidWZmZXJJc0xhcmdl
RW5vdWdoVG9Db250YWluPFQ+KHNpemUpKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKICAgICAgICAgCiAgICAgICAgIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dI
YW5kbGVyLCBtaW5DYXBhY2l0eT4gdmVjdG9yOwpAQCAtNzM5LDggKzc0NiwxMCBAQCB0ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPEF0b21TdHJpbmc+IHsKIH07CiAKIHRlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8Q1N0cmluZz4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVu
Y29kZXI+CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBDU3RyaW5nJik7
Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgQ1N0
cmluZyYpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CisgICAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8Q1N0cmluZz4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKIHRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8U3RyaW5nPiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL0RhZW1vbi9QQ01EYWVtb25FbnRyeVBvaW50
Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9EYWVt
b24vUENNRGFlbW9uRW50cnlQb2ludC5tbQppbmRleCA3ZjIzMjFkZTViMTljMWMxNjc0OWJmZDZh
NjM0NjRmODRlZDUyNDU3Li44NTE1MTQzMzkzYjYzM2RkMGE2MTU4OTI0YmJlOWU0NzA3MzVkYzRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0Nv
Y29hL0RhZW1vbi9QQ01EYWVtb25FbnRyeVBvaW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvRGFlbW9uL1BDTURhZW1vbkVudHJ5UG9pbnQu
bW0KQEAgLTg3LDYgKzg3LDcgQEAgc3RhdGljIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JNYWNoU2Vy
dmljZUNvbm5lY3Rpb25zKCkKIAogICAgICAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFu
ZGxlcihwZWVyLCBeKHhwY19vYmplY3RfdCBldmVudCkgewogICAgICAgICAgICAgaWYgKGV2ZW50
ID09IFhQQ19FUlJPUl9DT05ORUNUSU9OX0lOVEVSUlVQVEVEKSB7CisgICAgICAgICAgICAgICAg
TlNMb2coQCJyZW1vdmluZyBwZWVyIGNvbm5lY3Rpb24gJXAiLCBwZWVyKTsKICAgICAgICAgICAg
ICAgICBwZWVycygpLnJlbW92ZShwZWVyKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICB9CkBAIC05NCw3ICs5NSw4IEBAIHN0YXRpYyB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9y
TWFjaFNlcnZpY2VDb25uZWN0aW9ucygpCiAgICAgICAgIH0pOwogICAgICAgICB4cGNfY29ubmVj
dGlvbl9zZXRfdGFyZ2V0X3F1ZXVlKHBlZXIsIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkpOwog
ICAgICAgICB4cGNfY29ubmVjdGlvbl9hY3RpdmF0ZShwZWVyKTsKLSAgICAgICAgCisKKyAgICAg
ICAgTlNMb2coQCJhZGRpbmcgcGVlciBjb25uZWN0aW9uICVwIiwgcGVlcik7CiAgICAgICAgIHBl
ZXJzKCkuYWRkKHBlZXIpOwogICAgIH0pOwogICAgIHhwY19jb25uZWN0aW9uX2FjdGl2YXRlKGxp
c3RlbmVyLmdldCgpLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgKaW5kZXggYmJmODk0YzBhNWQxMjcyMjI4MzkyNWIxNDg0MGNmMGVhMjAzOTFk
ZS4uZTFlNTlhOTM5YjYxYWIzZTU4N2FiODNmYjI4ZThmOWVkMjRlM2MzZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTI5Myw3ICsyOTMsOSBA
QCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNwcmluZ1RpbWluZ0Z1
bmN0aW9uPiB7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OkNlcnRpZmljYXRlSW5mbz4geworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+CiAgICAg
c3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUlu
Zm8mKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz4gZGVjb2RlKERlY29kZXImKTsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHAKaW5kZXggNmQ3
NTc3NGNiZmU2OWM1OGY4MzgwMjM1ZGFiYjc5YWVkZDVhYzhiOC4uZTMyODdjZmE2YWNhNTM5OTk5
NjEyMjRjZjk4ZjI3ZjhmNmQxN2YyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Y2YvQXJndW1lbnRDb2RlcnNDRi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJn
dW1lbnRDb2RlcnNDRi5jcHAKQEAgLTMyLDYgKzMyLDggQEAKICNpbmNsdWRlICJEYXRhUmVmZXJl
bmNlLmgiCiAjaW5jbHVkZSAiRGVjb2Rlci5oIgogI2luY2x1ZGUgIkVuY29kZXIuaCIKKyNpbmNs
dWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlY29kZXIuaCIKKyNpbmNsdWRlICJQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEVuY29kZXIuaCIKICNpbmNsdWRlICJTdHJlYW1Db25uZWN0aW9uRW5j
b2Rlci5oIgogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3MuaD4KICNpbmNsdWRl
IDx3dGYvRW51bVRyYWl0cy5oPgpAQCAtNDA1LDYgKzQwNyw3IEBAIHZvaWQgQXJndW1lbnRDb2Rl
cjxDRkRhdGFSZWY+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0ZEYXRhUmVmIGRhdGEpCiB0
ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8Q0ZEYXRhUmVmPjo6ZW5jb2RlPEVuY29kZXI+KEVu
Y29kZXImLCBDRkRhdGFSZWYpOwogdGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPENGRGF0YVJl
Zj46OmVuY29kZTxTdHJlYW1Db25uZWN0aW9uRW5jb2Rlcj4oU3RyZWFtQ29ubmVjdGlvbkVuY29k
ZXImLCBDRkRhdGFSZWYpOwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogc3RkOjpvcHRp
b25hbDxSZXRhaW5QdHI8Q0ZEYXRhUmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8Q0ZEYXRh
UmVmPj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIHN0ZDo6b3B0aW9uYWw8SVBD
OjpEYXRhUmVmZXJlbmNlPiBkYXRhUmVmZXJlbmNlOwpAQCAtNDE1LDYgKzQxOCw5IEBAIHN0ZDo6
b3B0aW9uYWw8UmV0YWluUHRyPENGRGF0YVJlZj4+IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPENG
RGF0YVJlZj4+OjpkZWNvZGUoCiAgICAgcmV0dXJuIGFkb3B0Q0YoQ0ZEYXRhQ3JlYXRlKDAsIGRh
dGFSZWZlcmVuY2UtPmRhdGEoKSwgZGF0YVJlZmVyZW5jZS0+c2l6ZSgpKSk7CiB9CiAKK3RlbXBs
YXRlIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENGRGF0YVJlZj4+IEFyZ3VtZW50Q29kZXI8UmV0
YWluUHRyPENGRGF0YVJlZj4+OjpkZWNvZGU8RGVjb2Rlcj4oRGVjb2RlciYpOwordGVtcGxhdGUg
c3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8Q0ZEYXRhUmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5Q
dHI8Q0ZEYXRhUmVmPj46OmRlY29kZTxXZWJLaXQ6OlBDTTo6RGVjb2Rlcj4oV2ViS2l0OjpQQ006
OkRlY29kZXImKTsKKwogdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KIHZvaWQgQXJndW1lbnRD
b2RlcjxDRkRhdGVSZWY+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgQ0ZEYXRlUmVmIGRhdGUp
CiB7CkBAIC04MzQsOCArODQwLDEwIEBAIHZvaWQgQXJndW1lbnRDb2RlcjxTZWNUcnVzdFJlZj46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBTZWNUcnVzdFJlZiB0cnVzdCkKIH0KIAogdGVtcGxh
dGUgdm9pZCBBcmd1bWVudENvZGVyPFNlY1RydXN0UmVmPjo6ZW5jb2RlPEVuY29kZXI+KEVuY29k
ZXImLCBTZWNUcnVzdFJlZik7Cit0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8U2VjVHJ1c3RS
ZWY+OjplbmNvZGU8V2ViS2l0OjpQQ006OkVuY29kZXI+KFdlYktpdDo6UENNOjpFbmNvZGVyJiwg
U2VjVHJ1c3RSZWYpOwogdGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFNlY1RydXN0UmVmPjo6
ZW5jb2RlPFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyPihTdHJlYW1Db25uZWN0aW9uRW5jb2RlciYs
IFNlY1RydXN0UmVmKTsKIAordGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4KIHN0ZDo6b3B0aW9u
YWw8UmV0YWluUHRyPFNlY1RydXN0UmVmPj4gQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8U2VjVHJ1
c3RSZWY+Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7CiAgICAgc3RkOjpvcHRpb25hbDxi
b29sPiBoYXNUcnVzdDsKQEAgLTg1Nyw2ICs4NjUsOSBAQCBzdGQ6Om9wdGlvbmFsPFJldGFpblB0
cjxTZWNUcnVzdFJlZj4+IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPFNlY1RydXN0UmVmPj46OmRl
YwogCiAgICAgcmV0dXJuIFdURk1vdmUodHJ1c3QpOwogfQorCit0ZW1wbGF0ZSBzdGQ6Om9wdGlv
bmFsPFJldGFpblB0cjxTZWNUcnVzdFJlZj4+IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPFNlY1Ry
dXN0UmVmPj46OmRlY29kZTxEZWNvZGVyPihEZWNvZGVyJik7Cit0ZW1wbGF0ZSBzdGQ6Om9wdGlv
bmFsPFJldGFpblB0cjxTZWNUcnVzdFJlZj4+IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRyPFNlY1Ry
dXN0UmVmPj46OmRlY29kZTxXZWJLaXQ6OlBDTTo6RGVjb2Rlcj4oV2ViS2l0OjpQQ006OkRlY29k
ZXImKTsKICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L2NmL0FyZ3VtZW50Q29kZXJzQ0YuaAppbmRleCA2ZWNhNWZiOWZmMzMyN2RmODRjYWFmYjI4ZjEz
MjkwN2NiODZmMjBmLi4wNjg3YTZiZTJiNjhjOWY3YjA0NDY2NTVmYTAxMGE3NDViYjI2ZGEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9Bcmd1bWVudENvZGVyc0NGLmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5oCkBAIC03Nyw3ICs3
Nyw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8Q0ZEYXRhUmVmPiB7CiAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBD
RkRhdGFSZWYpOwogfTsKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8UmV0YWluUHRy
PENGRGF0YVJlZj4+IDogQ0ZSZXRhaW5QdHJBcmd1bWVudENvZGVyPENGRGF0YVJlZj4gewotICAg
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDRkRhdGFSZWY+PiBkZWNvZGUoRGVjb2Rl
ciYpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PFJldGFpblB0cjxDRkRhdGFSZWY+PiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAogdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxDRkRhdGVSZWY+IHsKQEAgLTE1Miw3ICsxNTIsNyBAQCB0
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFNlY1RydXN0UmVmPiB7CiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRW5jb2Rlcj4gc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBTZWNUcnVz
dFJlZik7CiB9OwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8U2Vj
VHJ1c3RSZWY+PiA6IENGUmV0YWluUHRyQXJndW1lbnRDb2RlcjxTZWNUcnVzdFJlZj4gewotICAg
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxTZWNUcnVzdFJlZj4+IGRlY29kZShEZWNv
ZGVyJik7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9u
YWw8UmV0YWluUHRyPFNlY1RydXN0UmVmPj4gZGVjb2RlKERlY29kZXImKTsKIH07CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9XZWJDb3JlQXJndW1lbnRD
b2RlcnNDdXJsLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzQ3VybC5jcHAKaW5kZXggNzVjZDUzMzRhMzUyMDAyYTdjNDk2YWM0MTI1ZTlkNGI4YTRk
ZjRhMy4uZDU0YmFmNGM1ZjkxY2MxYzAyNTMzOTQ3MGI3OTEyMjEyNmU3ZWQ1NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9XZWJDb3JlQXJndW1lbnRDb2RlcnNDdXJsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jdXJsL1dlYkNvcmVBcmd1bWVudENvZGVyc0N1
cmwuY3BwCkBAIC0yNyw2ICsyNyw4IEBACiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCiAKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnREZWNvZGVyLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRF
bmNvZGVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DZXJ0aWZpY2F0ZUluZm8uaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0N1cmxQcm94eVNldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWN0aW9u
YXJ5UG9wdXBJbmZvLmg+CkBAIC01MCw2ICs1Miw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNv
dXJjZVJlcXVlc3Q+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYgZGVjb2RlciwgUmVzb3Vy
CiAgICAgcmV0dXJuIHJlc291cmNlUmVxdWVzdC5kZWNvZGVXaXRoUGxhdGZvcm1EYXRhKGRlY29k
ZXIpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogdm9pZCBBcmd1bWVudENvZGVy
PENlcnRpZmljYXRlSW5mbz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDZXJ0aWZp
Y2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbykKIHsKICAgICBlbmNvZGVyIDw8IGNlcnRpZmljYXRl
SW5mby52ZXJpZmljYXRpb25FcnJvcigpOwpAQCAtNTgsNyArNjEsMTAgQEAgdm9pZCBBcmd1bWVu
dENvZGVyPENlcnRpZmljYXRlSW5mbz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBD
ZXJ0aWZpY2F0ZUkKICAgICBmb3IgKGF1dG8gY2VydGlmaWNhdGUgOiBjZXJ0aWZpY2F0ZUluZm8u
Y2VydGlmaWNhdGVDaGFpbigpKQogICAgICAgICBlbmNvZGVyIDw8IGNlcnRpZmljYXRlOwogfQor
dGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz46OmVu
Y29kZTxFbmNvZGVyPihFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJik7
Cit0ZW1wbGF0ZSB2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPjo6
ZW5jb2RlPFdlYktpdDo6UENNOjpFbmNvZGVyPihXZWJLaXQ6OlBDTTo6RW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYpOwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVy
Pgogc3RkOjpvcHRpb25hbDxDZXJ0aWZpY2F0ZUluZm8+IEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNh
dGVJbmZvPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7CiAgICAgc3RkOjpvcHRpb25hbDxp
bnQ+IHZlcmlmaWNhdGlvbkVycm9yOwpAQCAtODMsNiArODksOCBAQCBzdGQ6Om9wdGlvbmFsPENl
cnRpZmljYXRlSW5mbz4gQXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjpkZWNvZGUoRGVj
b2RlciYgZAogCiAgICAgcmV0dXJuIENlcnRpZmljYXRlSW5mbyB7ICp2ZXJpZmljYXRpb25FcnJv
ciwgV1RGTW92ZShjZXJ0aWZpY2F0ZUNoYWluKSB9OwogfQordGVtcGxhdGUgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q2VydGlm
aWNhdGVJbmZvPjo6ZGVjb2RlPERlY29kZXI+KERlY29kZXImKTsKK3RlbXBsYXRlIHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNl
cnRpZmljYXRlSW5mbz46OmRlY29kZTxXZWJLaXQ6OlBDTTo6RGVjb2Rlcj4oV2ViS2l0OjpQQ006
OkRlY29kZXImKTsKIAogdm9pZCBBcmd1bWVudENvZGVyPFJlc291cmNlRXJyb3I+OjplbmNvZGVQ
bGF0Zm9ybURhdGEoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVzb3VyY2VFcnJvciYgcmVzb3Vy
Y2VFcnJvcikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2dsaWIvQXJndW1l
bnRDb2RlcnNHTGliLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2dsaWIvQXJndW1lbnRDb2Rl
cnNHTGliLmNwcAppbmRleCA1OTUxM2E2MzVhZmU5N2VkMDZkYmI1ZjdjMmNiNGUwM2YwMWI5Zjcy
Li45ZjQ0MjM5OGRmZTU5ZGYwNmI0ZWU2YjA0MmQxN2Q2OWRiOGY5YzU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9nbGliL0FyZ3VtZW50Q29kZXJzR0xpYi5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvZ2xpYi9Bcmd1bWVudENvZGVyc0dMaWIuY3BwCkBAIC0yNyw2ICsy
Nyw4IEBACiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnNHTGliLmgiCiAKICNpbmNsdWRlICJEYXRh
UmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWNvZGVyLmgi
CisjaW5jbHVkZSAiUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmNvZGVyLmgiCiAjaW5jbHVkZSA8
Z2lvL2dpby5oPgogI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC02NSw2ICs2Nyw3IEBAIHN0ZDo6b3B0aW9uYWw8R1JlZlB0
cjxHVmFyaWFudD4+IEFyZ3VtZW50Q29kZXI8R1JlZlB0cjxHVmFyaWFudD4+OjpkZWNvZGUoRGVj
b2RlCiAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8R1JlZlB0cjxHVmFyaWFudD4gPihnX3Zhcmlh
bnRfbmV3X2Zyb21fYnl0ZXModmFyaWFudFR5cGUuZ2V0KCksIGJ5dGVzLmdldCgpLCBGQUxTRSkp
OwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogdm9pZCBBcmd1bWVudENvZGVyPEdS
ZWZQdHI8R1Rsc0NlcnRpZmljYXRlPj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBHUmVmUHRy
PEdUbHNDZXJ0aWZpY2F0ZT4gY2VydGlmaWNhdGUpCiB7CiAgICAgaWYgKCFjZXJ0aWZpY2F0ZSkg
ewpAQCAtMTAzLDQ5ICsxMDYsNTYgQEAgdm9pZCBBcmd1bWVudENvZGVyPEdSZWZQdHI8R1Rsc0Nl
cnRpZmljYXRlPj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBHUmVmUHRyPEcKICAgICAgICAg
ZW5jb2RlciA8PCBJUEM6OkRhdGFSZWZlcmVuY2UoY2VydGlmaWNhdGVEYXRhLT5kYXRhLCBjZXJ0
aWZpY2F0ZURhdGEtPmxlbik7CiAgICAgfQogfQordGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVy
PEdSZWZQdHI8R1Rsc0NlcnRpZmljYXRlPj46OmVuY29kZTxFbmNvZGVyPihFbmNvZGVyJiwgR1Jl
ZlB0cjxHVGxzQ2VydGlmaWNhdGU+KTsKK3RlbXBsYXRlIHZvaWQgQXJndW1lbnRDb2RlcjxHUmVm
UHRyPEdUbHNDZXJ0aWZpY2F0ZT4+OjplbmNvZGU8V2ViS2l0OjpQQ006OkVuY29kZXI+KFdlYktp
dDo6UENNOjpFbmNvZGVyJiwgR1JlZlB0cjxHVGxzQ2VydGlmaWNhdGU+KTsKIAordGVtcGxhdGU8
dHlwZW5hbWUgRGVjb2Rlcj4KIHN0ZDo6b3B0aW9uYWw8R1JlZlB0cjxHVGxzQ2VydGlmaWNhdGU+
PiBBcmd1bWVudENvZGVyPEdSZWZQdHI8R1Rsc0NlcnRpZmljYXRlPj46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQogewotICAgIHVpbnQzMl90IGNoYWluTGVuZ3RoOwotICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoY2hhaW5MZW5ndGgpKQorICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IGNoYWlu
TGVuZ3RoOworICAgIGRlY29kZXIgPj4gY2hhaW5MZW5ndGg7CisgICAgaWYgKCFjaGFpbkxlbmd0
aCkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIGlmICghY2hhaW5MZW5ndGgp
CisgICAgaWYgKCEqY2hhaW5MZW5ndGgpCiAgICAgICAgIHJldHVybiBHUmVmUHRyPEdUbHNDZXJ0
aWZpY2F0ZT4oKTsKIAogI2lmIEdMSUJfQ0hFQ0tfVkVSU0lPTigyLCA2OSwgMCkKLSAgICBJUEM6
OkRhdGFSZWZlcmVuY2UgcHJpdmF0ZUtleURhdGE7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShw
cml2YXRlS2V5RGF0YSkpCisgICAgc3RkOjpvcHRpb25hbDxJUEM6OkRhdGFSZWZlcmVuY2U+IHBy
aXZhdGVLZXlEYXRhOworICAgIGRlY29kZXIgPj4gcHJpdmF0ZUtleURhdGE7CisgICAgaWYgKCFw
cml2YXRlS2V5RGF0YSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBHUmVmUHRy
PEdCeXRlQXJyYXk+IHByaXZhdGVLZXk7Ci0gICAgaWYgKHByaXZhdGVLZXlEYXRhLnNpemUoKSkg
ewotICAgICAgICBwcml2YXRlS2V5ID0gYWRvcHRHUmVmKGdfYnl0ZV9hcnJheV9zaXplZF9uZXco
cHJpdmF0ZUtleURhdGEuc2l6ZSgpKSk7Ci0gICAgICAgIGdfYnl0ZV9hcnJheV9hcHBlbmQocHJp
dmF0ZUtleS5nZXQoKSwgcHJpdmF0ZUtleURhdGEuZGF0YSgpLCBwcml2YXRlS2V5RGF0YS5zaXpl
KCkpOworICAgIGlmIChwcml2YXRlS2V5RGF0YS0+c2l6ZSgpKSB7CisgICAgICAgIHByaXZhdGVL
ZXkgPSBhZG9wdEdSZWYoZ19ieXRlX2FycmF5X3NpemVkX25ldyhwcml2YXRlS2V5RGF0YS0+c2l6
ZSgpKSk7CisgICAgICAgIGdfYnl0ZV9hcnJheV9hcHBlbmQocHJpdmF0ZUtleS5nZXQoKSwgcHJp
dmF0ZUtleURhdGEtPmRhdGEoKSwgcHJpdmF0ZUtleURhdGEtPnNpemUoKSk7CiAgICAgfQogCi0g
ICAgQ1N0cmluZyBwcml2YXRlS2V5UEtDUzExVXJpOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cHJpdmF0ZUtleVBLQ1MxMVVyaSkpCisgICAgc3RkOjpvcHRpb25hbDxDU3RyaW5nPiBwcml2YXRl
S2V5UEtDUzExVXJpOworICAgIGRlY29kZXIgPj4gcHJpdmF0ZUtleVBLQ1MxMVVyaTsKKyAgICBp
ZiAoIXByaXZhdGVLZXlQS0NTMTFVcmkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAj
ZW5kaWYKIAogICAgIEdUeXBlIGNlcnRpZmljYXRlVHlwZSA9IGdfdGxzX2JhY2tlbmRfZ2V0X2Nl
cnRpZmljYXRlX3R5cGUoZ190bHNfYmFja2VuZF9nZXRfZGVmYXVsdCgpKTsKICAgICBHUmVmUHRy
PEdUbHNDZXJ0aWZpY2F0ZT4gY2VydGlmaWNhdGU7CiAgICAgR1Rsc0NlcnRpZmljYXRlKiBpc3N1
ZXIgPSBudWxscHRyOwotICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBjaGFpbkxlbmd0aDsg
aSsrKSB7Ci0gICAgICAgIElQQzo6RGF0YVJlZmVyZW5jZSBjZXJ0aWZpY2F0ZURhdGFSZWZlcmVu
Y2U7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY2VydGlmaWNhdGVEYXRhUmVmZXJlbmNl
KSkKKyAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgKmNoYWluTGVuZ3RoOyBpKyspIHsKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxJUEM6OkRhdGFSZWZlcmVuY2U+IGNlcnRpZmljYXRlRGF0YVJl
ZmVyZW5jZTsKKyAgICAgICAgZGVjb2RlciA+PiBjZXJ0aWZpY2F0ZURhdGFSZWZlcmVuY2U7Cisg
ICAgICAgIGlmICghY2VydGlmaWNhdGVEYXRhUmVmZXJlbmNlKQogICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKIAotICAgICAgICBHUmVmUHRyPEdCeXRlQXJyYXk+IGNlcnRpZmljYXRl
RGF0YSA9IGFkb3B0R1JlZihnX2J5dGVfYXJyYXlfc2l6ZWRfbmV3KGNlcnRpZmljYXRlRGF0YVJl
ZmVyZW5jZS5zaXplKCkpKTsKLSAgICAgICAgZ19ieXRlX2FycmF5X2FwcGVuZChjZXJ0aWZpY2F0
ZURhdGEuZ2V0KCksIGNlcnRpZmljYXRlRGF0YVJlZmVyZW5jZS5kYXRhKCksIGNlcnRpZmljYXRl
RGF0YVJlZmVyZW5jZS5zaXplKCkpOworICAgICAgICBHUmVmUHRyPEdCeXRlQXJyYXk+IGNlcnRp
ZmljYXRlRGF0YSA9IGFkb3B0R1JlZihnX2J5dGVfYXJyYXlfc2l6ZWRfbmV3KGNlcnRpZmljYXRl
RGF0YVJlZmVyZW5jZS0+c2l6ZSgpKSk7CisgICAgICAgIGdfYnl0ZV9hcnJheV9hcHBlbmQoY2Vy
dGlmaWNhdGVEYXRhLmdldCgpLCBjZXJ0aWZpY2F0ZURhdGFSZWZlcmVuY2UtPmRhdGEoKSwgY2Vy
dGlmaWNhdGVEYXRhUmVmZXJlbmNlLT5zaXplKCkpOwogCiAgICAgICAgIGNlcnRpZmljYXRlID0g
YWRvcHRHUmVmKEdfVExTX0NFUlRJRklDQVRFKGdfaW5pdGFibGVfbmV3KAogICAgICAgICAgICAg
Y2VydGlmaWNhdGVUeXBlLCBudWxscHRyLCBudWxscHRyLAogICAgICAgICAgICAgImNlcnRpZmlj
YXRlIiwgY2VydGlmaWNhdGVEYXRhLmdldCgpLAogICAgICAgICAgICAgImlzc3VlciIsIGlzc3Vl
ciwKICNpZiBHTElCX0NIRUNLX1ZFUlNJT04oMiwgNjksIDApCi0gICAgICAgICAgICAicHJpdmF0
ZS1rZXkiLCBpID09IGNoYWluTGVuZ3RoIC0gMSA/IHByaXZhdGVLZXkuZ2V0KCkgOiBudWxscHRy
LAotICAgICAgICAgICAgInByaXZhdGUta2V5LXBrY3MxMS11cmkiLCBpID09IGNoYWluTGVuZ3Ro
IC0gMSA/IHByaXZhdGVLZXlQS0NTMTFVcmkuZGF0YSgpIDogbnVsbHB0ciwKKyAgICAgICAgICAg
ICJwcml2YXRlLWtleSIsIGkgPT0gKmNoYWluTGVuZ3RoIC0gMSA/IHByaXZhdGVLZXkuZ2V0KCkg
OiBudWxscHRyLAorICAgICAgICAgICAgInByaXZhdGUta2V5LXBrY3MxMS11cmkiLCBpID09ICpj
aGFpbkxlbmd0aCAtIDEgPyBwcml2YXRlS2V5UEtDUzExVXJpLT5kYXRhKCkgOiBudWxscHRyLAog
I2VuZGlmCiAgICAgICAgICAgICBudWxscHRyKSkpOwogICAgICAgICBpc3N1ZXIgPSBjZXJ0aWZp
Y2F0ZS5nZXQoKTsKQEAgLTE1Myw1ICsxNjMsNyBAQCBzdGQ6Om9wdGlvbmFsPEdSZWZQdHI8R1Rs
c0NlcnRpZmljYXRlPj4gQXJndW1lbnRDb2RlcjxHUmVmUHRyPEdUbHNDZXJ0aWZpY2F0ZT4+Ogog
CiAgICAgcmV0dXJuIGNlcnRpZmljYXRlOwogfQordGVtcGxhdGUgc3RkOjpvcHRpb25hbDxHUmVm
UHRyPEdUbHNDZXJ0aWZpY2F0ZT4+IEFyZ3VtZW50Q29kZXI8R1JlZlB0cjxHVGxzQ2VydGlmaWNh
dGU+Pjo6ZGVjb2RlPERlY29kZXI+KERlY29kZXImKTsKK3RlbXBsYXRlIHN0ZDo6b3B0aW9uYWw8
R1JlZlB0cjxHVGxzQ2VydGlmaWNhdGU+PiBBcmd1bWVudENvZGVyPEdSZWZQdHI8R1Rsc0NlcnRp
ZmljYXRlPj46OmRlY29kZTxXZWJLaXQ6OlBDTTo6RGVjb2Rlcj4oV2ViS2l0OjpQQ006OkRlY29k
ZXImKTsKIAogfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9nbGliL0FyZ3VtZW50Q29kZXJzR0xpYi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ2xp
Yi9Bcmd1bWVudENvZGVyc0dMaWIuaAppbmRleCA2YjA2YWM4MmJlZjVkZDk0N2EzYTI4YzA5ZmQx
MGM5Y2QzMjQ4MWFjLi5jYmEwYTM5NTQ1MmU0YjAwOTRhYjEzNzk2NjA4MTA2ODdjZTU0MzQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9nbGliL0FyZ3VtZW50Q29kZXJzR0xpYi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2dsaWIvQXJndW1lbnRDb2RlcnNHTGliLmgKQEAg
LTM5LDcgKzM5LDkgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxHUmVmUHRyPEdW
YXJpYW50Pj4gewogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxHUmVmUHRy
PEdUbHNDZXJ0aWZpY2F0ZT4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgR1JlZlB0cjxHVGxzQ2VydGlmaWNhdGU+KTsK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PEdSZWZQdHI8R1Rsc0NlcnRpZmljYXRlPj4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMu
bW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1t
CmluZGV4IDgxZDc1MGFmNTZlZWU1NzcxNTE4NjhhZDU3MGQ0NjYzNDNkMTMwM2MuLjhlNGQ1ZjEz
MWQ4MmYxZGVmZTI2ZDE1YWJmZWUwNjRhM2I5ODkwZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0KKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQpAQCAtMzAsNiArMzAs
OCBAQAogI2ltcG9ydCAiQXJndW1lbnRDb2RlcnNDRi5oIgogI2ltcG9ydCAiQXJndW1lbnRDb2Rl
cnNDb2NvYS5oIgogI2ltcG9ydCAiRGF0YVJlZmVyZW5jZS5oIgorI2ltcG9ydCAiUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnREZWNvZGVyLmgiCisjaW1wb3J0ICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEVuY29kZXIuaCIKICNpbXBvcnQgPFdlYkNvcmUvQ2VydGlmaWNhdGVJbmZvLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0NvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlci5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9DcmVkZW50aWFsLmg+CkBAIC00NCw2ICs0Niw3IEBACiAKIG5hbWVzcGFjZSBJUEMgewogCit0
ZW1wbGF0ZTw+CiB2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvPjo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYg
Y2VydGlmaWNhdGVJbmZvKQogewogICAgIGVuY29kZXIgPDwgY2VydGlmaWNhdGVJbmZvLnR5cGUo
KTsKQEAgLTYzLDYgKzY2LDE0IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZp
Y2F0ZUluZm8+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViCiAgICAgfQogfQog
Cit0ZW1wbGF0ZTw+Cit2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZv
Pjo6ZW5jb2RlKFdlYktpdDo6UENNOjpFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpD
ZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbykKK3sKKyAgICBBU1NFUlQoY2VydGlmaWNh
dGVJbmZvLnR5cGUoKSA9PSBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm86OlR5cGU6OlRydXN0KTsK
KyAgICBlbmNvZGVyIDw8IGNlcnRpZmljYXRlSW5mby50cnVzdCgpOworfQorCit0ZW1wbGF0ZTw+
CiBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz4gQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIHsKICAg
ICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbzo6VHlwZT4gY2VydGlmaWNh
dGVJbmZvVHlwZTsKQEAgLTk3LDYgKzEwOCwxNiBAQCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNl
cnRpZmljYXRlSW5mbz4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8+Ogog
ICAgIHJldHVybiB7eyB9fTsKIH0KIAordGVtcGxhdGU8Pgorc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpDZXJ0aWZpY2F0ZUluZm8+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZv
Pjo6ZGVjb2RlKFdlYktpdDo6UENNOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0
aW9uYWw8UmV0YWluUHRyPFNlY1RydXN0UmVmPj4gdHJ1c3Q7CisgICAgZGVjb2RlciA+PiB0cnVz
dDsKKyAgICBpZiAoIXRydXN0IHx8ICEqdHJ1c3QpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisgICAgcmV0dXJuIFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyhXVEZNb3ZlKCp0cnVzdCkp
OworfQorCiBzdGF0aWMgdm9pZCBlbmNvZGVOU0Vycm9yKEVuY29kZXImIGVuY29kZXIsIE5TRXJy
b3IgKm5zRXJyb3IpCiB7CiAgICAgU3RyaW5nIGRvbWFpbiA9IFtuc0Vycm9yIGRvbWFpbl07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVy
c1NvdXAuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvc291cC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnNTb3VwLmNwcAppbmRleCA5N2JlMWM4YzAwNmFlOTI2ZDhmOTE4YWYzNzFjODdjM2M4ZTA4YmNh
Li4yZTk3ZDdkMmYxZmE4MjUxNWZlNjJjMDg4YzllNjA0YjM0YTk3NGVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5j
cHAKQEAgLTMwLDYgKzMwLDggQEAKIAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzR0xpYi5oIgog
I2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudERlY29kZXIuaCIKKyNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuY29kZXIu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0NlcnRpZmljYXRlSW5mby5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvQ3JlZGVudGlhbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGljdGlvbmFyeVBvcHVwSW5mby5o
PgpAQCAtNTQsNiArNTYsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXF1ZXN0Pjo6
ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImIGRlY29kZXIsIFJlc291cgogICAgIHJldHVybiBy
ZXNvdXJjZVJlcXVlc3QuZGVjb2RlV2l0aFBsYXRmb3JtRGF0YShkZWNvZGVyKTsKIH0KIAordGVt
cGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KIHZvaWQgQXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0ZUlu
Zm8+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ2VydGlmaWNhdGVJbmZvJiBjZXJ0
aWZpY2F0ZUluZm8pCiB7CiAgICAgR1JlZlB0cjxHVGxzQ2VydGlmaWNhdGU+IGNlcnRpZmljYXRl
ID0gY2VydGlmaWNhdGVJbmZvLmNlcnRpZmljYXRlKCk7CkBAIC02Myw3ICs2NiwxMCBAQCB2b2lk
IEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IENlcnRpZmljYXRlSQogCiAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50MzJf
dD4oY2VydGlmaWNhdGVJbmZvLnRsc0Vycm9ycygpKTsKIH0KK3RlbXBsYXRlIHZvaWQgQXJndW1l
bnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjplbmNvZGU8RW5jb2Rlcj4oRW5jb2RlciYsIGNvbnN0
IENlcnRpZmljYXRlSW5mbyYpOwordGVtcGxhdGUgdm9pZCBBcmd1bWVudENvZGVyPENlcnRpZmlj
YXRlSW5mbz46OmVuY29kZTxXZWJLaXQ6OlBDTTo6RW5jb2Rlcj4oV2ViS2l0OjpQQ006OkVuY29k
ZXImLCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mKTsKIAordGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rl
cj4KIHN0ZDo6b3B0aW9uYWw8Q2VydGlmaWNhdGVJbmZvPiBBcmd1bWVudENvZGVyPENlcnRpZmlj
YXRlSW5mbz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIHN0ZDo6b3B0aW9uYWw8
R1JlZlB0cjxHVGxzQ2VydGlmaWNhdGU+PiBjZXJ0aWZpY2F0ZTsKQEAgLTg0LDYgKzkwLDggQEAg
c3RkOjpvcHRpb25hbDxDZXJ0aWZpY2F0ZUluZm8+IEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJ
bmZvPjo6ZGVjb2RlKERlY29kZXImIGQKIAogICAgIHJldHVybiBXVEZNb3ZlKGNlcnRpZmljYXRl
SW5mbyk7CiB9Cit0ZW1wbGF0ZSBzdGQ6Om9wdGlvbmFsPENlcnRpZmljYXRlSW5mbz4gQXJndW1l
bnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjpkZWNvZGU8RGVjb2Rlcj4oRGVjb2RlciYpOwordGVt
cGxhdGUgc3RkOjpvcHRpb25hbDxDZXJ0aWZpY2F0ZUluZm8+IEFyZ3VtZW50Q29kZXI8Q2VydGlm
aWNhdGVJbmZvPjo6ZGVjb2RlPFdlYktpdDo6UENNOjpEZWNvZGVyPihXZWJLaXQ6OlBDTTo6RGVj
b2RlciYpOwogCiB2b2lkIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmVuY29kZVBsYXRm
b3JtRGF0YShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVy
cm9yKQogewpAQCAtMjQ1LDcgKzI1Myw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxTZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlVmFsdWU+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotc3RkOjpvcHRpb25hbDxTZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlVmFsdWU+ICBBcmd1bWVudENvZGVyPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVW
YWx1ZT46OmRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpTZXJp
YWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWU6OlBsYXRmb3JtVHlwZSBwbGF0Zm9ybVR5cGUpCitz
dGQ6Om9wdGlvbmFsPFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZT4gIEFyZ3VtZW50Q29k
ZXI8U2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERl
Y29kZXImIGRlY29kZXIsIFNlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZTo6UGxhdGZvcm1U
eXBlIHBsYXRmb3JtVHlwZSkKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXggMzI1MzBlZjNjMDI0NDQ5NzlhZmMy
NjhkZGQwYTkxMWI3YjhjYzE4Ny4uNGRjMTViYWQ4NGU4OTg4NGJiZDFjZTZmYWZjZTJjNzMwNWUw
YzEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC02NTAsNyArNjUwLDEyIEBAIHN0YXRpYyBWZWN0b3I8
V2ViS2l0OjpXZWJzaXRlRGF0YVJlY29yZD4gdG9XZWJzaXRlRGF0YVJlY29yZHMoTlNBcnJheSAq
ZGF0YVJlY29yCiAKIC0gKHZvaWQpX2FsbG93VExTQ2VydGlmaWNhdGVDaGFpbjooTlNBcnJheSAq
KWNlcnRpZmljYXRlQ2hhaW4gZm9ySG9zdDooTlNTdHJpbmcgKilob3N0CiB7Ci0gICAgX3dlYnNp
dGVEYXRhU3RvcmUtPmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChXZWJLaXQ6
OldlYkNlcnRpZmljYXRlSW5mbzo6Y3JlYXRlKFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbygoX19i
cmlkZ2UgQ0ZBcnJheVJlZiljZXJ0aWZpY2F0ZUNoYWluKSkucHRyKCksIGhvc3QpOworICAgIF93
ZWJzaXRlRGF0YVN0b3JlLT5hbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoV2Vi
Q29yZTo6Q2VydGlmaWNhdGVJbmZvKChfX2JyaWRnZSBDRkFycmF5UmVmKWNlcnRpZmljYXRlQ2hh
aW4pLCBob3N0KTsKK30KKworLSAodm9pZClfdHJ1c3RTZXJ2ZXJGb3JMb2NhbFBDTVRlc3Rpbmc6
KFNlY1RydXN0UmVmKXNlcnZlclRydXN0Cit7CisgICAgX3dlYnNpdGVEYXRhU3RvcmUtPmFsbG93
VExTQ2VydGlmaWNhdGVDaGFpbkZvckxvY2FsUENNVGVzdGluZyhXZWJDb3JlOjpDZXJ0aWZpY2F0
ZUluZm8oc2VydmVyVHJ1c3QpKTsKIH0KIAogLSAodm9pZClfYXBwQm91bmREb21haW5zOih2b2lk
ICheKShOU0FycmF5PE5TU3RyaW5nICo+ICopKWNvbXBsZXRpb25IYW5kbGVyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZVByaXZhdGUuaAppbmRleCBlY2M2MGY3NTE3ZTNkMTA4YWQ3NjI1YmI3YmQ4ZmZiM2MyNGIz
ZDU3Li5hOWRiZjE1MjFkNjdhMTQ0NTYwYWZhZDYyNDUzYzU2NWY1N2MyMzU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVE
YXRhU3RvcmVQcml2YXRlLmgKQEAgLTg0LDYgKzg0LDcgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5T
VUludGVnZXIsIF9XS1dlYnNpdGVEYXRhU3RvcmVGZXRjaE9wdGlvbnMpIHsKICsgKHZvaWQpX3Nl
dENhY2hlZFByb2Nlc3NTdXNwZW5zaW9uRGVsYXlGb3JUZXN0aW5nOihkb3VibGUpZGVsYXlJblNl
Y29uZHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKIAogLSAodm9pZClfYWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluOihOU0FycmF5ICopY2VydGlm
aWNhdGVDaGFpbiBmb3JIb3N0OihOU1N0cmluZyAqKWhvc3QgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMi4wKSwgaW9zKDE1LjApKTsKKy0gKHZvaWQpX3RydXN0U2VydmVyRm9yTG9jYWxQQ01UZXN0
aW5nOihTZWNUcnVzdFJlZilzZXJ2ZXJUcnVzdCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAtICh2b2lkKV9yZW5hbWVPcmlnaW46KE5TVVJM
ICopb2xkTmFtZSB0bzooTlNVUkwgKiluZXdOYW1lIGZvckRhdGFPZlR5cGVzOihOU1NldDxOU1N0
cmluZyAqPiAqKWRhdGFUeXBlcyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29t
cGxldGlvbkhhbmRsZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFdlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHAKaW5kZXggYmQyZDRkMjAyMDZmOGI4NmZlNGNkMWFj
OTBkOTBiNzljMzQ4ZWQ5ZC4uMWJjNTFkZDFlZDNiMTE4NWVkNzI2NTU1OWJiMWQzYWVkOTc5MDI2
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vi
Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
V2ViQ29udGV4dC5jcHAKQEAgLTE2MjMsOSArMTYyMyw5IEBAIHZvaWQgd2Via2l0X3dlYl9jb250
ZXh0X2FsbG93X3Rsc19jZXJ0aWZpY2F0ZV9mb3JfaG9zdChXZWJLaXRXZWJDb250ZXh0KiBjb250
ZXh0CiAgICAgZ19yZXR1cm5faWZfZmFpbChHX0lTX1RMU19DRVJUSUZJQ0FURShjZXJ0aWZpY2F0
ZSkpOwogICAgIGdfcmV0dXJuX2lmX2ZhaWwoaG9zdCk7CiAKLSAgICBhdXRvIHdlYkNlcnRpZmlj
YXRlSW5mbyA9IFdlYkNlcnRpZmljYXRlSW5mbzo6Y3JlYXRlKFdlYkNvcmU6OkNlcnRpZmljYXRl
SW5mbyhjZXJ0aWZpY2F0ZSwgc3RhdGljX2Nhc3Q8R1Rsc0NlcnRpZmljYXRlRmxhZ3M+KDApKSk7
CisgICAgYXV0byBjZXJ0aWZpY2F0ZUluZm8gPSBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8oY2Vy
dGlmaWNhdGUsIHN0YXRpY19jYXN0PEdUbHNDZXJ0aWZpY2F0ZUZsYWdzPigwKSk7CiAgICAgYXV0
byYgd2Vic2l0ZURhdGFTdG9yZSA9IHdlYmtpdFdlYnNpdGVEYXRhTWFuYWdlckdldERhdGFTdG9y
ZShjb250ZXh0LT5wcml2LT53ZWJzaXRlRGF0YU1hbmFnZXIuZ2V0KCkpOwotICAgIHdlYnNpdGVE
YXRhU3RvcmUuYWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KHdlYkNlcnRpZmlj
YXRlSW5mby5wdHIoKSwgU3RyaW5nOjpmcm9tVVRGOChob3N0KSk7CisgICAgd2Vic2l0ZURhdGFT
dG9yZS5hbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY2VydGlmaWNhdGVJbmZv
LCBTdHJpbmc6OmZyb21VVEY4KGhvc3QpKTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4
IDM1MzJlMGQ3NjhhZDRiODNmYmY1YjEwMWE3NDFkN2Y1YjA0MDFiNTcuLjNkYTZjMTE2YjkzNjg4
ZDFiYWM3M2Q3ZTZkOWQ0OTllMDQ0MTJhZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0xNjcyLDkg
KzE2NzIsMTQgQEAgc3RhdGljIFN0cmluZyBjb21wdXRlTWVkaWFLZXlGaWxlKGNvbnN0IFN0cmlu
ZyYgbWVkaWFLZXlEaXJlY3RvcnkpCiAgICAgcmV0dXJuIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVu
ZGluZ0NvbXBvbmVudChtZWRpYUtleURpcmVjdG9yeSwgIlNlY3VyZVN0b3AucGxpc3QiKTsKIH0K
IAotdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZv
ckhvc3QoY29uc3QgV2ViQ2VydGlmaWNhdGVJbmZvKiBjZXJ0aWZpY2F0ZSwgY29uc3QgU3RyaW5n
JiBob3N0KQordm9pZCBXZWJzaXRlRGF0YVN0b3JlOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZp
Y2F0ZUZvckhvc3QoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZSwg
Y29uc3QgU3RyaW5nJiBob3N0KQogewotICAgIG5ldHdvcmtQcm9jZXNzKCkuc2VuZChNZXNzYWdl
czo6TmV0d29ya1Byb2Nlc3M6OkFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChj
ZXJ0aWZpY2F0ZS0+Y2VydGlmaWNhdGVJbmZvKCksIGhvc3QpLCAwKTsKKyAgICBuZXR3b3JrUHJv
Y2VzcygpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpBbGxvd1NwZWNpZmljSFRUUFND
ZXJ0aWZpY2F0ZUZvckhvc3QoY2VydGlmaWNhdGUsIGhvc3QpLCAwKTsKK30KKwordm9pZCBXZWJz
aXRlRGF0YVN0b3JlOjphbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3Rpbmco
Y29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZSkKK3sKKyAgICBuZXR3
b3JrUHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpBbGxvd1RMU0NlcnRp
ZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3Rpbmcoc2Vzc2lvbklEKCksIGNlcnRpZmljYXRlKSwg
MCk7CiB9CiAKIFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IFdlYnNpdGVEYXRh
U3RvcmU6Om1lZGlhS2V5T3JpZ2lucyhjb25zdCBTdHJpbmcmIG1lZGlhS2V5c1N0b3JhZ2VEaXJl
Y3RvcnkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggMDI2ODczMTViNmI5NTMwMDI2MjNlMDE5NTc3NDJlOTU2
Y2VkZmY0MC4uMTYxY2RlNmExNzFiY2IzMDFlZGQ4YjllM2NkNGFlMjZiYWQ1MWZiNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaApAQCAtNzIsNiArNzIsNyBAQCBjbGFzcyBIVFRQQ29va2llU3RvcmU7CiB9CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENlcnRpZmljYXRlSW5mbzsKIGNsYXNzIFJlZ2lzdHJh
YmxlRG9tYWluOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CiAKQEAgLTg1LDcgKzg2LDYgQEAgY2xh
c3MgU2VjS2V5UHJveHlTdG9yZTsKIGNsYXNzIERldmljZUlkSGFzaFNhbHRTdG9yYWdlOwogY2xh
c3MgTmV0d29ya1Byb2Nlc3NQcm94eTsKIGNsYXNzIFNPQXV0aG9yaXphdGlvbkNvb3JkaW5hdG9y
OwotY2xhc3MgV2ViQ2VydGlmaWNhdGVJbmZvOwogY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3Mg
V2ViUHJvY2Vzc1Bvb2w7CiBjbGFzcyBXZWJQcm9jZXNzUHJveHk7CkBAIC0yNjIsNyArMjYyLDgg
QEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgc2V0Q2FjaGVkUHJvY2Vzc1N1c3BlbnNpb25E
ZWxheUZvclRlc3RpbmcoU2Vjb25kcyk7CiAKLSAgICB2b2lkIGFsbG93U3BlY2lmaWNIVFRQU0Nl
cnRpZmljYXRlRm9ySG9zdChjb25zdCBXZWJDZXJ0aWZpY2F0ZUluZm8qLCBjb25zdCBTdHJpbmcm
IGhvc3QpOworICAgIHZvaWQgYWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNv
bnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYsIGNvbnN0IFN0cmluZyYgaG9zdCk7CisgICAg
dm9pZCBhbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW5Gb3JMb2NhbFBDTVRlc3RpbmcoY29uc3QgV2Vi
Q29yZTo6Q2VydGlmaWNhdGVJbmZvJik7CiAKICAgICBEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZSYg
ZGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UoKSB7IHJldHVybiBtX2RldmljZUlkSGFzaFNhbHRTdG9y
YWdlLmdldCgpOyB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCBlMjc4MzkzNDRlNjE5N2VmNWIzNjNiYTlhYjM1MjA4NzI0ZDA0Y2UwLi42OTM5
MGY1ZGIwODk0OGViYmFjNmIzOTcxMjBkYzQ5MTM5YTcyZGMzIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDkt
MDkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAg
ICBBZGQgaW5mcmFzdHJ1Y3R1cmUgdG8gYWxsb3cgVExTIGR1cmluZyBQQ00gdGVzdHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDEzNworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6ZGVsZWdhdGVBbGxvd2luZ0FsbFRMUyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpydW5CYXNpY0V2ZW50QXR0cmlidXRpb25UZXN0KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorCiAyMDIxLTA5LTA5ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIEZpeCBzb21lIGxsZGIgZGF0YSBwcm92aWRlciBpc3N1ZXMKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1
dGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRy
aWJ1dGlvbi5tbQppbmRleCBiNmJiYWE1MjE1MmJmMTJhYmU4OTI4NTU0NWRiNTIyNTVlMDcyYjEx
Li44N2Q3ZmU4ZWU3ZTg4N2IyMGI3ZThhNjY3ZDg5NDcxNjQ3YTYzOTk3IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0
aW9uLm1tCkBAIC03NSw2ICs3NSwyNiBAQAogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAK
K3N0YXRpYyBSZXRhaW5QdHI8U2VjVHJ1c3RSZWY+IHNlY1RydXN0RnJvbUNlcnRpZmljYXRlQ2hh
aW4oTlNBcnJheSAqY2hhaW4pCit7CisgICAgU2VjVHJ1c3RSZWYgdHJ1c3RSZWYgPSBudWxscHRy
OworICAgIGlmIChTZWNUcnVzdENyZWF0ZVdpdGhDZXJ0aWZpY2F0ZXMoKF9fYnJpZGdlIENGQXJy
YXlSZWYpY2hhaW4sIG51bGxwdHIsICZ0cnVzdFJlZikgIT0gbm9FcnIpCisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIHJldHVybiBhZG9wdENGKHRydXN0UmVmKTsKK30KKworc3RhdGljIFRl
c3ROYXZpZ2F0aW9uRGVsZWdhdGUgKmRlbGVnYXRlQWxsb3dpbmdBbGxUTFMoKQoreworICAgIHN0
YXRpYyBSZXRhaW5QdHI8VGVzdE5hdmlnYXRpb25EZWxlZ2F0ZT4gZGVsZWdhdGUgPSBbXSB7Cisg
ICAgICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIG5l
d10pOworICAgICAgICBkZWxlZ2F0ZS5nZXQoKS5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UgPSBeKFdLV2ViVmlldyAqLCBOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICpjaGFs
bGVuZ2UsIHZvaWQgKF5jb21wbGV0aW9uSGFuZGxlcikoTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5n
ZURpc3Bvc2l0aW9uLCBOU1VSTENyZWRlbnRpYWwgKikpIHsKKyAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VVc2VDcmVkZW50aWFsLCBbTlNVUkxD
cmVkZW50aWFsIGNyZWRlbnRpYWxGb3JUcnVzdDpjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlLnNl
cnZlclRydXN0XSk7CisgICAgICAgIH07CisgICAgICAgIHJldHVybiBkZWxlZ2F0ZTsKKyAgICB9
KCk7CisgICAgcmV0dXJuIGRlbGVnYXRlLmdldCgpOworfQorCiBzdGF0aWMgTlNVUkwgKmV4YW1w
bGVVUkwoKQogewogICAgIHJldHVybiBbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHBzOi8vZXhh
bXBsZS5jb20vIl07CkBAIC0xMjIsOSArMTQyLDEwIEBAIHZvaWQgcnVuQmFzaWNFdmVudEF0dHJp
YnV0aW9uVGVzdChXS1dlYlZpZXdDb25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uLCBGdW5jdGlv
CiAgICAgTlNVUkwgKnNlcnZlclVSTCA9IHNlcnZlci5yZXF1ZXN0KCkuVVJMOwogCiAgICAgYXV0
byB3ZWJWaWV3ID0gY29uZmlndXJhdGlvbiA/IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6Q0dSZWN0WmVybyBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKSA6IGFk
b3B0TlMoW1dLV2ViVmlldyBuZXddKTsKKyAgICB3ZWJWaWV3LmdldCgpLm5hdmlnYXRpb25EZWxl
Z2F0ZSA9IGRlbGVnYXRlQWxsb3dpbmdBbGxUTFMoKTsKICAgICBhZGRBdHRyaWJ1dGlvblRvV2Vi
Vmlldyh3ZWJWaWV3LmdldCgpLCBzZXJ2ZXIpOwogICAgIFtbd2ViVmlldyBjb25maWd1cmF0aW9u
XS53ZWJzaXRlRGF0YVN0b3JlIF9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDpZRVNd
OwotICAgIFtbd2ViVmlldyBjb25maWd1cmF0aW9uXS53ZWJzaXRlRGF0YVN0b3JlIF9hbGxvd1RM
U0NlcnRpZmljYXRlQ2hhaW46QFsoaWQpdGVzdENlcnRpZmljYXRlKCkuZ2V0KCldIGZvckhvc3Q6
c2VydmVyVVJMLmhvc3RdOworICAgIFtbd2ViVmlldyBjb25maWd1cmF0aW9uXS53ZWJzaXRlRGF0
YVN0b3JlIF90cnVzdFNlcnZlckZvckxvY2FsUENNVGVzdGluZzpzZWNUcnVzdEZyb21DZXJ0aWZp
Y2F0ZUNoYWluKEBbKGlkKXRlc3RDZXJ0aWZpY2F0ZSgpLmdldCgpXSkuZ2V0KCldOwogICAgIFt3
ZWJWaWV3IF9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMc0Zv
clRlc3Rpbmc6c2VydmVyVVJMIGRlc3RpbmF0aW9uVVJMOmV4YW1wbGVVUkwoKSBjb21wbGV0aW9u
SGFuZGxlcjpeewogICAgICAgICBbd2ViVmlldyBfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRP
dmVycmlkZVRpbWVyRm9yVGVzdGluZzpZRVMgY29tcGxldGlvbkhhbmRsZXI6XnsKICAgICAgICAg
ICAgIE5TU3RyaW5nICpodG1sID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCI8c2NyaXB0
PmZldGNoKCclQGNvbnZlcnNpb25SZXF1ZXN0QmVmb3JlUmVkaXJlY3QnLHttb2RlOiduby1jb3Jz
J30pPC9zY3JpcHQ+Iiwgc2VydmVyVVJMXTsKQEAgLTI3MCw5ICsyOTEsMTAgQEAgVEVTVChFdmVu
dEF0dHJpYnV0aW9uLCBGcmF1ZFByZXZlbnRpb24pCiAgICAgTlNVUkwgKnNlcnZlclVSTCA9IHNl
cnZlci5yZXF1ZXN0KCkuVVJMOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbV0tXZWJW
aWV3IG5ld10pOworICAgIHdlYlZpZXcuZ2V0KCkubmF2aWdhdGlvbkRlbGVnYXRlID0gZGVsZWdh
dGVBbGxvd2luZ0FsbFRMUygpOwogICAgIFt3ZWJWaWV3IF9hZGRFdmVudEF0dHJpYnV0aW9uV2l0
aFNvdXJjZUlEOjQyIGRlc3RpbmF0aW9uVVJMOmV4YW1wbGVVUkwoKSBzb3VyY2VEZXNjcmlwdGlv
bjpAInRlc3Qgc291cmNlIGRlc2NyaXB0aW9uIiBwdXJjaGFzZXI6QCJ0ZXN0IHB1cmNoYXNlciIg
cmVwb3J0RW5kcG9pbnQ6c2VydmVyVVJMIG9wdGlvbmFsTm9uY2U6QCJBQkNERUZhYmNkZWYwMTIz
NDU2Nzg5Il07CiAgICAgW1t3ZWJWaWV3IGNvbmZpZ3VyYXRpb25dLndlYnNpdGVEYXRhU3RvcmUg
X3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkOllFU107Ci0gICAgW1t3ZWJWaWV3IGNv
bmZpZ3VyYXRpb25dLndlYnNpdGVEYXRhU3RvcmUgX2FsbG93VExTQ2VydGlmaWNhdGVDaGFpbjpA
WyhpZCl0ZXN0Q2VydGlmaWNhdGUoKS5nZXQoKV0gZm9ySG9zdDpzZXJ2ZXJVUkwuaG9zdF07Cisg
ICAgW1t3ZWJWaWV3IGNvbmZpZ3VyYXRpb25dLndlYnNpdGVEYXRhU3RvcmUgX3RydXN0U2VydmVy
Rm9yTG9jYWxQQ01UZXN0aW5nOnNlY1RydXN0RnJvbUNlcnRpZmljYXRlQ2hhaW4oQFsoaWQpdGVz
dENlcnRpZmljYXRlKCkuZ2V0KCldKS5nZXQoKV07CiAKICAgICBbd2ViVmlldyBfc2V0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5nOnNlcnZlclVS
TCBkZXN0aW5hdGlvblVSTDpleGFtcGxlVVJMKCkgY29tcGxldGlvbkhhbmRsZXI6XnsKICAgICAg
ICAgW3dlYlZpZXcgX3NldFByaXZhdGVDbGlja01lYXN1cmVtZW50T3ZlcnJpZGVUaW1lckZvclRl
c3Rpbmc6WUVTIGNvbXBsZXRpb25IYW5kbGVyOl57Cg==
</data>
<flag name="review"
          id="461194"
          type_id="1"
          status="+"
          setter="wilander"
    />
          </attachment>
      

    </bug>

</bugzilla>