<?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>240318</bug_id>
          
          <creation_ts>2022-05-11 14:45:21 -0700</creation_ts>
          <short_desc>[WebAuthn] Clean up WebAuthenticationModern and WebAuthnProcess</short_desc>
          <delta_ts>2022-05-18 14:59:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=239073</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="pascoe@apple.com">pascoe</reporter>
          <assigned_to name="pascoe@apple.com">pascoe</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1868223</commentid>
    <comment_count>0</comment_count>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-05-11 14:45:21 -0700</bug_when>
    <thetext>These are no longer necessary for ToT.


Previously landed in https://bugs.webkit.org/show_bug.cgi?id=239073, but was rolled out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868224</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-05-11 14:45:41 -0700</bug_when>
    <thetext>&lt;rdar://problem/93130490&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868226</commentid>
    <comment_count>2</comment_count>
      <attachid>459183</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-05-11 14:54:50 -0700</bug_when>
    <thetext>Created attachment 459183
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868450</commentid>
    <comment_count>3</comment_count>
      <attachid>459183</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-05-12 09:54:01 -0700</bug_when>
    <thetext>Comment on attachment 459183
Patch

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

So much cleanup! r=me

&gt; Tools/ChangeLog:-1977
&gt; -        (TestWebKitAPI::WebCore::webAuthenticationModernExperimentalFeature): Deleted.

We don&apos;t need this ChangeLog comment removal

&gt; Tools/ChangeLog:2011
&gt; +        (TestWebKitAPI::WebCore::webAuthenticationModernExperimentalFeature): Deleted.

This seems to be in the wrong part of the file (is perhaps a dupe of the 5/11 comment)

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:-1437
&gt; -}

Are these two tests really not needed anymore? It doesn&apos;t seem like disallowing the local authenticator is specifically related to the WebAuthn process, is it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868452</commentid>
    <comment_count>4</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-05-12 09:55:18 -0700</bug_when>
    <thetext>It doesn&apos;t seem like the Mac-AS-debug-wk2 failures are related. I have re-ran them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868457</commentid>
    <comment_count>5</comment_count>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-05-12 10:08:06 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #3)
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:-1437
&gt; &gt; -}
&gt; 
&gt; Are these two tests really not needed anymore? It doesn&apos;t seem like
&gt; disallowing the local authenticator is specifically related to the WebAuthn
&gt; process, is it?

These tests are from when the WebAuthenticationPanel used a UI delegate method (decidePolicyForLocalAuthenticator) to ask if using the platform authenticator is permitted. This is superseded by requestLAContextForUserVerification, which effectively does the same thing, but does not return ExceptionData { UnknownError, &quot;Disallow local authenticator.&quot;_s } (the standard request cancelled error is used).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870129</commentid>
    <comment_count>6</comment_count>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-05-18 13:30:15 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/744</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870165</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-18 14:59:13 -0700</bug_when>
    <thetext>Committed r294438 (250716@main): &lt;https://commits.webkit.org/250716@main&gt;

Reviewed commits have been landed. Closing PR #744 and removing active labels.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459183</attachid>
            <date>2022-05-11 14:54:50 -0700</date>
            <delta_ts>2022-05-12 09:54:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240318-20220511145449.patch</filename>
            <type>text/plain</type>
            <size>234498</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjk0MDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDFiMDk2NDM0ZDRjNDRiNzk1ODI1ZDdh
NWY4YTNkMmRjNTNmOTdiMjIuLjM3NDA4YjRiYWU2MGVlZTZjY2NkZmJhODVjY2VkNWUzMDMxOTMz
ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDUtMTEgIEogUGFzY29lICA8al9wYXNjb2VA
YXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRobl0gQ2xlYW4gdXAgV2ViQXV0aGVudGljYXRp
b25Nb2Rlcm4gYW5kIFdlYkF1dGhuUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQwMzE4CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzkzMTMw
NDkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4KKworICAgICAgICAqIFNj
cmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAy
Mi0wNS0xMCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZW1vdmUgYWJhbmRvbmVkIENTU0RlZmVycmVkUGFyc2VyIGltcGxlbWVudGF0aW9uIGFuZCBmZWF0
dXJlIGZsYWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyZjFhZjkwOGVjZjhiNjM5OWM5Y2ZmZjk2NjYyNDk3ZDc0
ODM4ODA1Li5jODNhNzE1MzA0MDM5OTE0YjQyMzhjZjU4YThkODc3ODI5NGY3MjhlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjItMDUtMTEgIEogUGFzY29lICA8al9wYXNjb2VAYXBw
bGUuY29tPgorCisgICAgICAgIFtXZWJBdXRobl0gQ2xlYW4gdXAgV2ViQXV0aGVudGljYXRpb25N
b2Rlcm4gYW5kIFdlYkF1dGhuUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjQwMzE4CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzkzMTMwNDkw
CisKKyAgICAgICAgVGhlIFdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuIGZsYWcgYW5kIFdlYkF1dGhu
UHJvY2VzcyBhcmUgbm8gbG9uZ2VyIHVzZWQKKyAgICAgICAgYW5kIGNhbiBiZSByZW1vdmVkLiBU
aGlzIHBhdGNoIHJlbW92ZXMgYWxsIHJlZmVyZW5jZXMgdG8gYm90aCB0aGUgZmxhZworICAgICAg
ICBhbmQgdGhlIHByb2Nlc3MuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4K
KworICAgICAgICAqIHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOgorICAgICAgICAoV2Vi
Q29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0V2ViQXV0aGVudGljYXRpb25Nb2Rlcm5F
bmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZCBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnByb2Nlc3NUeXBlRGVzY3JpcHRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL1J1bnRp
bWVBcHBsaWNhdGlvbkNoZWNrcy5oOgorCiAyMDIyLTA1LTExICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2UgYSBjYW52YXMtZHJhd0ltYWdlIHNw
ZWNpZmljIG1ldGhvZCB0byBnZXQgYSBOYXRpdmVJbWFnZSBmcm9tIGEgdmlkZW8gZWxlbWVudApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCBiNGRhZmIwZmM3MWVjNzRmY2FhZmFmNTRjMWJjMjhhYzQ4ODJiZTUwLi5iYjQw
MTNiYjI3ODljOGU5Mzk3NmQwYWJiZDAyOTlhMjcwNThlOTFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEwNiBAQAorMjAyMi0wNS0xMSAgSiBQYXNjb2UgIDxqX3Bhc2NvZUBhcHBsZS5jb20+CisKKyAg
ICAgICAgW1dlYkF1dGhuXSBDbGVhbiB1cCBXZWJBdXRoZW50aWNhdGlvbk1vZGVybiBhbmQgV2Vi
QXV0aG5Qcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yNDAzMTgKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vOTMxMzA0OTAKKworICAgICAgICBU
aGUgV2ViQXV0aGVudGljYXRpb25Nb2Rlcm4gZmxhZyBhbmQgV2ViQXV0aG5Qcm9jZXNzIGFyZSBu
byBsb25nZXIgdXNlZAorICAgICAgICBhbmQgY2FuIGJlIHJlbW92ZWQuIFRoaXMgcGF0Y2ggcmVt
b3ZlcyBhbGwgcmVmZXJlbmNlcyB0byBib3RoIHRoZSBmbGFnCisgICAgICAgIGFuZCB0aGUgcHJv
Y2Vzcy4KKworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgIENv
dmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMgYW5kIG1hbnVhbCB0ZXN0aW5nIG9uIG1hY09TIC8gaU9T
LgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViQXV0aG5TZXJ2aWNlLnhjY29uZmlnOiBS
ZW1vdmVkLgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZzoKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFJlc291cmNlcy9TYW5kYm94UHJv
ZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4uc2IuaW46IFJlbW92ZWQuCisgICAg
ICAgICogU2NyaXB0cy9wcm9jZXNzLWVudGl0bGVtZW50cy5zaDoKKyAgICAgICAgKiBTaGFyZWQv
Q29jb2EvRGVmYXVsdFdlYkJyb3dzZXJDaGVja3MubW06CisgICAgICAgIChXZWJLaXQ6OmlzSW5X
ZWJLaXRDaGlsZFByb2Nlc3MpOgorICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVz
L0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaDoKKyAgICAgICAgKiBTaGFy
ZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1t
OgorICAgICAgICAoV2ViS2l0OjpYUENTZXJ2aWNlRXZlbnRIYW5kbGVyKToKKyAgICAgICAgKiBT
aGFyZWQvbWFjL0F1eGlsaWFyeVByb2Nlc3NNYWMubW06CisgICAgICAgIChXZWJLaXQ6OnByb2Nl
c3NTdG9yYWdlQ2xhc3MpOgorICAgICAgICAoV2ViS2l0OjpzYW5kYm94RGlyZWN0b3J5KToKKyAg
ICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdLUHJlZmVy
ZW5jZXNTZXRXZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQpOiBEZWxldGVkLgorICAgICAg
ICAoV0tQcmVmZXJlbmNlc0dldFdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZCk6IERlbGV0
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tOgorICAgICAg
ICAoK1tXS1Byb2Nlc3NQb29sIF93ZWJBdXRoblByb2Nlc3NJZGVudGlmaWVyXSk6IERlbGV0ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5t
bToKKyAgICAgICAgKCtbX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBpbXBvcnRMb2NhbEF1dGhl
bnRpY2F0b3JXaXRoQWNjZXNzR3JvdXA6Y3JlZGVudGlhbDplcnJvcjpdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV4
aWxpYXJ5UHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Bvb2w6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZCk6CisgICAgICAgICogVUlQcm9jZXNz
L0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hl
ci9jb2NvYS9Qcm9jZXNzTGF1bmNoZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6c2Vydmlj
ZU5hbWUpOgorICAgICAgICAoV2ViS2l0OjpzaG91bGRMZWFrQm9vc3QpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yLmg6CisgICAgICAgIChXZWJL
aXQ6OkF1dGhlbnRpY2F0b3I6OnJlcXVlc3REYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
QXV0aGVudGljYXRvcjo6c2V0V2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRvcjo6d2ViQXV0aGVudGljYXRpb25Nb2Rl
cm5FbmFibGVkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRvck1hbmFnZXI6OmF1dGhlbnRpY2F0b3JBZGRl
ZCk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2VyOjplbmFibGVNb2Rlcm5X
ZWJBdXRoZW50aWNhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbToKKyAgICAgICAgKFdl
YktpdDo6TG9jYWxBdXRoZW50aWNhdG9yOjptYWtlQ3JlZGVudGlhbCk6CisgICAgICAgIChXZWJL
aXQ6OkxvY2FsQXV0aGVudGljYXRvcjo6Z2V0QXNzZXJ0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
TG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZUdldEFzc2VydGlvbkFmdGVyUmVzcG9uc2VTZWxl
Y3RlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJv
Y2Vzc1Byb3h5LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkN0YXBBdXRoZW50aWNhdG9yOjpjb250aW51ZUdldE5leHRBc3NlcnRpb25BZnRl
clJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0OjpDdGFwQXV0aGVudGljYXRvcjo6
Y29udGludWVSZXF1ZXN0UGluQWZ0ZXJHZXRLZXlBZ3JlZW1lbnQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29s
OjpnZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpnZXRXZWJBdXRoblBy
b2Nlc3NDb25uZWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBXZWJBdXRoblByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNl
L1dlYkF1dGhuU2VydmljZS9JbmZvLU9TWC5wbGlzdDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJB
dXRoblByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkF1dGhuU2VydmljZS9J
bmZvLWlPUy5wbGlzdDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJBdXRoblByb2Nlc3MvRW50cnlQ
b2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkF1dGhuU2VydmljZUVudHJ5UG9pbnQubW06IFJlbW92
ZWQuCisgICAgICAgICogV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkF1dGhuUHJvY2Vz
cy9XZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46IFJlbW92ZWQuCisg
ICAgICAgICogV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2Vzcy5jcHA6IFJlbW92ZWQuCisg
ICAgICAgICogV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2Vzcy5oOiBSZW1vdmVkLgorICAg
ICAgICAqIFdlYkF1dGhuUHJvY2Vzcy9XZWJBdXRoblByb2Nlc3MubWVzc2FnZXMuaW46IFJlbW92
ZWQuCisgICAgICAgICogV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhu
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkF1dGhu
UHJvY2Vzcy9pb3MvV2ViQXV0aG5Qcm9jZXNzSU9TLm1tOiBSZW1vdmVkLgorICAgICAgICAqIFdl
YkF1dGhuUHJvY2Vzcy9tYWMvV2ViQXV0aG5Qcm9jZXNzTWFjLm1tOiBSZW1vdmVkLgorICAgICAg
ICAqIFdlYkF1dGhuUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5XZWJBdXRoblByb2Nlc3Mu
c2IuaW46IFJlbW92ZWQuCisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRoZW50aWNhdG9yQ29v
cmRpbmF0b3I6Om1ha2VDcmVkZW50aWFsKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yOjpnZXRBc3NlcnRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3I6OmlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRv
ckF2YWlsYWJsZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJB
dXRoblByb2Nlc3NDb25uZWN0aW9uLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uaDogUmVtb3ZlZC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc0Nv
bm5lY3Rpb24ubWVzc2FnZXMuaW46IFJlbW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uSW5mby5oOiBSZW1vdmVkLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzZXRNb2NrV2ViQXV0aGVudGljYXRp
b25Db25maWd1cmF0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpnZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZW5zdXJlV2ViQXV0aG5Qcm9jZXNzQ29ubmVj
dGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OndlYkF1dGhuUHJv
Y2Vzc0Nvbm5lY3Rpb25DbG9zZWQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpleGlzdGluZ1dlYkF1dGhu
UHJvY2Vzc0Nvbm5lY3Rpb24pOiBEZWxldGVkLgorCiAyMDIyLTA1LTExICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2UgYSBjYW52YXMtZHJhd0lt
YWdlIHNwZWNpZmljIG1ldGhvZCB0byBnZXQgYSBOYXRpdmVJbWFnZSBmcm9tIGEgdmlkZW8gZWxl
bWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMv
V2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCBmZDMwNmZiMjkxMmUxMzA1OTg0
YWY4Y2VlMTI5MDZhNjg3Y2UyY2I2Li43MDZkYmZmN2JlMjczYjI1ZTFlODljMjA5NzE3MDU1ZjYx
OGRlY2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVy
ZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtMTYyOCwyMiArMTYyOCw2
IEBAIFdlYkF1dGhlbnRpY2F0aW9uRW5hYmxlZDoKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVs
dDogdHJ1ZQogCi0jIEZJWE1FOiBJcyB0aGlzIGltcGxlbWVudGVkIGZvciBXZWJLaXRMZWdhY3k/
IElmIG5vdCwgdGhpcyBzaG91bGQgYmUgZXhjbHVkZWQgZnJvbSBXZWJLaXRMZWdhY3kgZW50aXJl
bHkuCi1XZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQ6Ci0gIHR5cGU6IGJvb2wKLSAgaHVt
YW5SZWFkYWJsZU5hbWU6ICJXZWIgQXV0aGVudGljYXRpb24gTW9kZXJuIgotICBodW1hblJlYWRh
YmxlRGVzY3JpcHRpb246ICJFbmFibGUgTW9kZXJuIFdlYiBBdXRoZW50aWNhdGlvbiBzdXBwb3J0
IgotICBjb25kaXRpb246IEVOQUJMRShXRUJfQVVUSE4pCi0gIHdlYmNvcmVCaW5kaW5nOiBSdW50
aW1lRW5hYmxlZEZlYXR1cmVzCi0gIGRlZmF1bHRWYWx1ZToKLSAgICBXZWJLaXRMZWdhY3k6Ci0g
ICAgICBkZWZhdWx0OiBmYWxzZQotICAgIFdlYktpdDoKLSAgICAgICJQTEFURk9STShJT1MpIiA6
IHRydWUKLSAgICAgIGRlZmF1bHQ6IGZhbHNlCi0gICAgV2ViQ29yZToKLSAgICAgIGRlZmF1bHQ6
IGZhbHNlCi0KIFdlYkdMMkVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5h
bWU6ICJXZWJHTCAyLjAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0
dXJlcy5oCmluZGV4IGEyYTE0YjZlNmNlNTE2MjU1OWJkYTNlMzg0OTYxNGIwNTAzM2M3YzguLmUy
ZDdkMGE3N2I4MzYxNjRkOTM2MjU2MjMxMGI3MDM1YzAxNzZkNDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCkBAIC0yMzEsMTEgKzIzMSw2IEBAIHB1
YmxpYzoKICAgICBib29sIG9wdXNEZWNvZGVyRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fb3B1
c0RlY29kZXJFbmFibGVkOyB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0gICAg
dm9pZCBzZXRXZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQoYm9vbCBhcmVFbmFibGVkKSB7
IG1fYXJlV2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkID0gYXJlRW5hYmxlZDsgfQotICAg
IGJvb2wgd2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9h
cmVXZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQ7IH0KLSNlbmRpZgotCiAjaWYgRU5BQkxF
KE1FRElBX1NPVVJDRSkgJiYgKEhBVkUoQVZTQU1QTEVCVUZGRVJWSURFT09VVFBVVCkgfHwgVVNF
KEdTVFJFQU1FUikpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRNZWRpYVNvdXJjZUlubGlu
ZVBhaW50aW5nRW5hYmxlZChib29sKTsKICAgICBib29sIG1lZGlhU291cmNlSW5saW5lUGFpbnRp
bmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVNvdXJjZUlubGluZVBhaW50aW5nRW5h
YmxlZDsgfQpAQCAtMzg0LDEwICszNzksNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9vcHVzRGVj
b2RlckVuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQot
ICAgIGJvb2wgbV9hcmVXZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQgeyBmYWxzZSB9Owot
I2VuZGlmCi0KICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiAoSEFWRShBVlNBTVBMRUJVRkZF
UlZJREVPT1VUUFVUKSB8fCBVU0UoR1NUUkVBTUVSKSkKICAgICBib29sIG1fbWVkaWFTb3VyY2VJ
bmxpbmVQYWludGluZ0VuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcAppbmRleCA0YzJi
NTNlOGQzODEzMmI3NjBlYjBhZjc4MDE4NGFmNDUyMTIxMmU3Li5hM2ZhNzcyOGU3ZDY0Y2ZmNDVm
Yjc2MTM2OTY0YWMwMzA4ZDc4NTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAKQEAgLTEwOCwxMCArMTA4LDYgQEAgY29u
c3QgY2hhciogcHJvY2Vzc1R5cGVEZXNjcmlwdGlvbihzdGQ6Om9wdGlvbmFsPEF1eGlsaWFyeVBy
b2Nlc3NUeXBlPiB0eXBlKQogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBjYXNlIEF1eGls
aWFyeVByb2Nlc3NUeXBlOjpHUFU6CiAgICAgICAgIHJldHVybiAiR1BVIjsKLSNlbmRpZgotI2lm
IEVOQUJMRShXRUJfQVVUSE4pCi0gICAgY2FzZSBBdXhpbGlhcnlQcm9jZXNzVHlwZTo6V2ViQXV0
aG46Ci0gICAgICAgIHJldHVybiAiV2ViQXV0aG4iOwogI2VuZGlmCiAgICAgfQogICAgIHJldHVy
biAiVW5rbm93biI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1l
QXBwbGljYXRpb25DaGVja3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBs
aWNhdGlvbkNoZWNrcy5oCmluZGV4IGM3NjQ2ODY4NTU1YmUxNWYyNDcwMjFmMzAyNWUxN2E4MWE2
ZTY2ZDAuLjNkNDM0ZGQ1ODg0MmUzMmNlNDAzMmM0NmRhYWYzNzM1NTZiYzZlMWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oCkBA
IC00MCw5ICs0MCw2IEBAIGVudW0gY2xhc3MgQXV4aWxpYXJ5UHJvY2Vzc1R5cGUgOiB1aW50OF90
IHsKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgR1BVLAogI2VuZGlmCi0jaWYgRU5BQkxF
KFdFQl9BVVRITikKLSAgICBXZWJBdXRobiwKLSNlbmRpZgogfTsKIAogV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRBdXhpbGlhcnlQcm9jZXNzVHlwZShBdXhpbGlhcnlQcm9jZXNzVHlwZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYkF1dGhuU2VydmljZS54Y2Nv
bmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViQXV0aG5TZXJ2aWNlLnhjY29u
ZmlnCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNTQ2ZjVjZmIxYzA3OWM2ODFkYmYz
YWM5ZTNhZGY0OGM2ZjIzNTBhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViQXV0aG5TZXJ2aWNlLnhj
Y29uZmlnCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotLy8gQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8v
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotLy8gYXJlIG1ldDoKLS8vIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotLy8gICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLS8vCi0vLyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLS8v
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0vLyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLS8vIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0vLyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLS8vIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLS8vIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotLy8gUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotLy8gT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0KLSNpbmNsdWRlICJCYXNlWFBDU2VydmljZS54Y2NvbmZpZyIKLQot
UFJPRFVDVF9OQU1FID0gY29tLmFwcGxlLldlYktpdC5XZWJBdXRobjsKLVBST0RVQ1RfQlVORExF
X0lERU5USUZJRVIgPSAkKFBST0RVQ1RfTkFNRSk7Ci1JTkZPUExJU1RfRklMRVtzZGs9ZW1iZWRk
ZWQqXSA9IFdlYkF1dGhuUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQXV0
aG5TZXJ2aWNlL0luZm8taU9TLnBsaXN0OwotSU5GT1BMSVNUX0ZJTEVbc2RrPW1hY29zeCpdID0g
V2ViQXV0aG5Qcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJBdXRoblNlcnZp
Y2UvSW5mby1PU1gucGxpc3Q7Ci0KLVBST0ZJTEVfR0VORVJBVEVfT1JfVVNFX0NGTEFHU19FTkFC
TEVfTExWTV9QUk9GSUxFX0dFTkVSQVRJT04gPSA7IC8vIERpc2FibGUgUEdPIHByb2ZpbGUgZ2Vu
ZXJhdGlvbgotT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAkKE9USEVSX0xERkxBR1NfVkVS
U0lPTkVEX0ZSQU1FV09SS19QQVRIKSAkKFdLX1JFTE9DQVRBQkxFX0ZSQU1FV09SS1NfTERGTEFH
UykgJChTT1VSQ0VfVkVSU0lPTl9MREZMQUdTKTsKLQotRU5USVRMRU1FTlRTX1JFUVVJUkVEID0g
JChFTlRJVExFTUVOVFNfUkVRVUlSRURfVVNFX0lOVEVSTkFMX1NES18kKFVTRV9JTlRFUk5BTF9T
REspKQotRU5USVRMRU1FTlRTX1JFUVVJUkVEX1VTRV9JTlRFUk5BTF9TREtfID0gTk87Ci1FTlRJ
VExFTUVOVFNfUkVRVUlSRURfVVNFX0lOVEVSTkFMX1NES19OTyA9IE5POwotRU5USVRMRU1FTlRT
X1JFUVVJUkVEX1VTRV9JTlRFUk5BTF9TREtfWUVTID0gJChFTlRJVExFTUVOVFNfUkVRVUlSRUQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25m
aWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwppbmRleCBj
M2M2YWE3NGEzM2EyODhjZmJkZDJmNDliMDcwZTI3YWMwNTlkMjgxLi5jZjU4MzE0MzZlOTEzZTk0
ZmVhOWU2OWIxNmVhM2U2Yjg5Nzg1YjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZp
Z3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRp
b25zL1dlYktpdC54Y2NvbmZpZwpAQCAtMjEwLDcgKzIxMCw3IEBAIFdLX01JR1JBVEVEX0hFQURF
Ul9PVVRQVVRfRElSXyA9ICQoSEVBREVSX09VVFBVVF9ESVIpOwogLy8gT24gbm9uLU1hYyBwbGF0
Zm9ybXMsIGFsbCBtaWdyYXRlZCBoZWFkZXJzIGdvIHRvIFByaXZhdGVIZWFkZXJzLgogV0tfTUlH
UkFURURfSEVBREVSX09VVFBVVF9ESVJfY29jb2F0b3VjaCA9ICQoSEVBREVSX09VVFBVVF9ESVI6
ZGlyKVByaXZhdGVIZWFkZXJzOwogCi1FWENMVURFRF9NQUNPU19QTFVHSU5fRklMRV9OQU1FU1tz
ZGs9aXBob25lKl0gPSBTZWNJdGVtU2hpbS5keWxpYiBXZWJQcm9jZXNzU2hpbS5keWxpYiAqLnBk
ZiBSZXNvdXJjZXMvbWFjLyogY29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYiBjb20u
YXBwbGUuV2ViS2l0LkdQVVByb2Nlc3Muc2IgY29tLmFwcGxlLldlYktpdC5XZWJBdXRoblByb2Nl
c3Muc2IgY29tLmFwcGxlLldlYktpdC53ZWJwdXNoZC5zYiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5z
YjsKK0VYQ0xVREVEX01BQ09TX1BMVUdJTl9GSUxFX05BTUVTW3Nkaz1pcGhvbmUqXSA9IFNlY0l0
ZW1TaGltLmR5bGliIFdlYlByb2Nlc3NTaGltLmR5bGliICoucGRmIFJlc291cmNlcy9tYWMvKiBj
b20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiIGNvbS5hcHBsZS5XZWJLaXQuR1BVUHJv
Y2Vzcy5zYiBjb20uYXBwbGUuV2ViS2l0LndlYnB1c2hkLnNiIGNvbS5hcHBsZS5XZWJQcm9jZXNz
LnNiOwogCiBJTlNUQUxMSERSU19TQ1JJUFRfUEhBU0UgPSBZRVM7CiBBUFBMWV9SVUxFU19JTl9D
T1BZX0hFQURFUlMgPSAkKFdLX1VTRV9ORVdfQlVJTERfU1lTVEVNKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMubWFrZQppbmRleCA1ZjJjZjA5YTY1YzQzNGUwYmNlYzBmNTJiZjBhNTBjYmFmZmY3ZWQ4
Li40MzYyNGQwYzk3OTNiMjcxMzA4MjM3MWI4ZDUzY2UzZDU0NGM4ZmM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy5tYWtlCkBAIC00Niw4ICs0Niw2IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0
MikvU2hhcmVkL0F1dGhlbnRpY2F0aW9uIFwKICAgICAkKFdlYktpdDIpL1NoYXJlZC9tYWMgXAog
ICAgICQoV2ViS2l0MikvU2hhcmVkL05vdGlmaWNhdGlvbnMgXAotICAgICQoV2ViS2l0MikvV2Vi
QXV0aG5Qcm9jZXNzIFwKLSAgICAkKFdlYktpdDIpL1dlYkF1dGhuUHJvY2Vzcy9tYWMgXAogICAg
ICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9BcHBsZVBheSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9j
ZXNzL0FwcGxpY2F0aW9uQ2FjaGUgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9BdXRvbWF0
aW9uIFwKQEAgLTI1MSw3ICsyNDksNiBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlXZWJQcm9j
ZXNzL1dlYlBhZ2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIgXAogCVdlYlByb2Nlc3MvV2Vi
UGFnZS9Db2NvYS9UZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHkgXAogCVdlYlByb2Nlc3MvV2Vi
UGFnZS9WaWV3VXBkYXRlRGlzcGF0Y2hlciBcCi0JV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9XZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uIFwKIAlXZWJQcm9jZXNzL1hSL1BsYXRmb3JtWFJT
eXN0ZW1Qcm94eSBcCiAJR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzIFwKIAlH
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIgXApAQCAtMzA1LDgg
KzMwMiw2IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCUdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFTb3VyY2VQcm94eSBcCiAJR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVSZW1vdGVDb21tYW5k
TGlzdGVuZXJQcm94eSBcCiAJR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3VyY2VCdWZmZXJQcm94
eSBcCi0JV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBcCi0J
V2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2VzcyBcCiAjCiAKIEdFTkVSQVRFX01FU1NBR0Vf
UkVDRUlWRVJfU0NSSVBUID0gJChXZWJLaXQyKS9TY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2UtcmVj
ZWl2ZXIucHkKQEAgLTM1NywxNCArMzUyLDEyIEBAIFNBTkRCT1hfUFJPRklMRVMgPSBcCiAJY29t
LmFwcGxlLldlYlByb2Nlc3Muc2IgXAogCWNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Mu
c2IgXAogCWNvbS5hcHBsZS5XZWJLaXQuR1BVUHJvY2Vzcy5zYiBcCi0JY29tLmFwcGxlLldlYktp
dC5XZWJBdXRoblByb2Nlc3Muc2IgXAogCWNvbS5hcHBsZS5XZWJLaXQud2VicHVzaGQuc2IKIAkK
IFNBTkRCT1hfUFJPRklMRVNfSU9TID0gXAogCWNvbS5hcHBsZS5XZWJLaXQuYWRhdHRyaWJ1dGlv
bmQuc2IgXAogCWNvbS5hcHBsZS5XZWJLaXQuR1BVLnNiIFwKIAljb20uYXBwbGUuV2ViS2l0Lk5l
dHdvcmtpbmcuc2IgXAotCWNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4uc2IgXAogCWNvbS5hcHBs
ZS5XZWJLaXQuV2ViQ29udGVudC5zYgogCiBzYW5kYm94LXByb2ZpbGVzLWlvcyA6ICQoU0FOREJP
WF9QUk9GSUxFU19JT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0V4dHJh
UHJpdmF0ZVN5bWJvbHNGb3JUQVBJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0V4dHJhUHJp
dmF0ZVN5bWJvbHNGb3JUQVBJLmgKaW5kZXggNDYyMzAzMmQzNjM2MTM0MmMzYTcwYmIyODljYjAz
MGRmYjJjY2RmYy4uYWUzZmIzZTRjN2RiOGJiNmQ3ZWZkZjI3NDY3MTAwYjdiNTgzZWZmNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9FeHRyYVByaXZhdGVTeW1ib2xzRm9yVEFQ
SS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vRXh0cmFQcml2YXRlU3ltYm9sc0ZvclRB
UEkuaApAQCAtMzMsNyArMzMsNiBAQCBleHRlcm4gIkMiIHsKIHZvaWQgTmV0d29ya1NlcnZpY2VJ
bml0aWFsaXplcigpOwogdm9pZCBXZWJDb250ZW50U2VydmljZUluaXRpYWxpemVyKCk7CiB2b2lk
IEdQVVNlcnZpY2VJbml0aWFsaXplcigpOwotdm9pZCBXZWJBdXRoblNlcnZpY2VJbml0aWFsaXpl
cigpOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
UmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJBdXRobi5z
Yi5pbiBiL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFw
cGxlLldlYktpdC5XZWJBdXRobi5zYi5pbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZGMzYWIxMWUyZTUxZTNjNDNmNzU1YmI1N2QwMzA1OTY1MDU5MzQ0NC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9T
YW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4uc2IuaW4KKysrIC9k
ZXYvbnVsbApAQCAtMSw0NTcgKzAsMCBAQAotOyBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi07Ci07IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotOyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LTsgYXJlIG1ldDoKLTsgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLTsgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotOyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotOyBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi07IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi07Ci07IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLTsgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi07
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLTsgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi07IEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLTsgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLTsgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi07IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi07IENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi07IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLTsgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotCi0odmVyc2lvbiAxKQotKGRlbnkgZGVmYXVsdCAod2l0aCBwYXJ0aWFsLXN5bWJvbGljYXRp
b24pKQotKGRlbnkgbnZyYW0qKQotKGRlbnkgc3lzdGVtLXByaXZpbGVnZSkKLQotOzsgU2lsZW5j
ZSBzcHVyaW91cyBsb2dnaW5nIGR1ZSB0byByZGFyOi8vMjAxMTc5MjMgYW5kIHJkYXI6Ly83MjM2
NjQ3NQotKGRlbnkgc3lzdGVtLXByaXZpbGVnZSAocHJpdmlsZWdlLWlkIFBSSVZfR0xPQkFMX1BS
T0NfSU5GTykgKHdpdGggbm8tcmVwb3J0KSkKLQotOzs7Ci07OzsgVGhlIGZvbGxvd2luZyBydWxl
cyB3ZXJlIG9yaWdpbmFsbHkgY29udGFpbmVkIGluICdjb21tb24uc2InLiBXZSBhcmUgZHVwbGlj
YXRpbmcgdGhlbSBoZXJlIHNvIHdlIGNhbgotOzs7IHJlbW92ZSB1bm5lZWRlZCBzYW5kYm94IGV4
dGVuc2lvbnMuCi07OzsKLQotKGltcG9ydCAidXRpbC5zYiIpCi0KLShkZWZpbmUtb25jZSAobWFu
YWdlZC1jb25maWd1cmF0aW9uLXJlYWQtcHVibGljKQotICAgIChhbGxvdyBmaWxlLXJlYWQqCi0g
ICAgICAgICAgICh3ZWxsLWtub3duLXN5c3RlbS1ncm91cC1jb250YWluZXItc3VicGF0aCAiL3N5
c3RlbWdyb3VwLmNvbS5hcHBsZS5jb25maWd1cmF0aW9ucHJvZmlsZXMvTGlicmFyeS9Db25maWd1
cmF0aW9uUHJvZmlsZXMvUHVibGljSW5mbyIpCi0gICAgICAgICAgIChmcm9udC11c2VyLWhvbWUt
c3VicGF0aCAiL0xpYnJhcnkvQ29uZmlndXJhdGlvblByb2ZpbGVzL1B1YmxpY0luZm8iKQotICAg
ICAgICAgICAoZnJvbnQtdXNlci1ob21lLXN1YnBhdGggIi9MaWJyYXJ5L1VzZXJDb25maWd1cmF0
aW9uUHJvZmlsZXMvUHVibGljSW5mbyIpKSkKLQotKGRlZmluZS1vbmNlIChhbGxvdy1wcmVmZXJl
bmNlcy1jb21tb24pCi0gICAgKGFsbG93IGZpbGUtcmVhZC1tZXRhZGF0YQotICAgICAgICAoaG9t
ZS1saXRlcmFsICIiKQotICAgICAgICAoaG9tZS1saXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNl
cyIpKSkKLQotKGRlZmluZS1vbmNlIChtb2JpbGUtcHJlZmVyZW5jZXMtcmVhZCAuIGRvbWFpbnMp
Ci0gICAgKGFsbG93LXByZWZlcmVuY2VzLWNvbW1vbikKLSAgICAoZm9yLWVhY2ggKGxhbWJkYSAo
ZG9tYWluKQotICAgICAgICAoYmVnaW4KLSAgICAgICAgICAgIChhbGxvdyB1c2VyLXByZWZlcmVu
Y2UtcmVhZCAocHJlZmVyZW5jZS1kb21haW4gZG9tYWluKSkKLSAgICAgICAgICAgIChhbGxvdyBm
aWxlLXJlYWQqCi0gICAgICAgICAgICAgICAgKGhvbWUtbGl0ZXJhbCAoc3RyaW5nLWFwcGVuZCAi
L0xpYnJhcnkvUHJlZmVyZW5jZXMvIiBkb21haW4gIi5wbGlzdCIpKSkpKQotICAgICAgICBkb21h
aW5zKSkKLQotKGRlZmluZS1vbmNlIChpbnRlcm5hbC1kZWJ1Z2dpbmctc3VwcG9ydCkKLSAgICAo
YWxsb3cgZmlsZS1yZWFkKiBmaWxlLW1hcC1leGVjdXRhYmxlCi0gICAgICAgIChzdWJwYXRoICIv
RGV2ZWxvcGVyIikpCi0KLSAgICAoYWxsb3cgaXBjLXBvc2l4LXNobQotICAgICAgICAoaXBjLXBv
c2l4LW5hbWUtcHJlZml4ICJzdGFjay1sb2dzIikKLSAgICAgICAgKGlwYy1wb3NpeC1uYW1lLXBy
ZWZpeCAiT0EtIikKLSAgICAgICAgKGlwYy1wb3NpeC1uYW1lLXByZWZpeCAiL0ZTTS0iKSkKLQot
ICAgIChhbGxvdyBpcGMtcG9zaXgtc2htLXJlYWQqIGlwYy1wb3NpeC1zaG0td3JpdGUtZGF0YSBp
cGMtcG9zaXgtc2htLXdyaXRlLXVubGluawotICAgICAgICAoaXBjLXBvc2l4LW5hbWUtcmVnZXgg
IyJeZ2R0LVtBLVphLXowLTldKy0oY3xzKSQiKSkKLQotICAgICh3aXRoLWZpbHRlciAoc3lzdGVt
LWF0dHJpYnV0ZSBhcHBsZS1pbnRlcm5hbCkKLSAgICAgICAgOzsgPHJkYXI6Ly9wcm9ibGVtLzg1
NjUwMzU+Ci0gICAgICAgIDs7IDxyZGFyOi8vcHJvYmxlbS8yMzg1NzQ1Mj4KLSAgICAgICAgOzsg
PHJkYXI6Ly9wcm9ibGVtLzcyMzE3MTEyPgotICAgICAgICAoYWxsb3cgZmlsZS1yZWFkKiBmaWxl
LW1hcC1leGVjdXRhYmxlCi0gICAgICAgICAgICAoc3VicGF0aAotICAgICAgICAgICAgICAgICIv
QXBwbGVJbnRlcm5hbCIKLSAgICAgICAgICAgICAgICAiL3Vzci9sb2NhbC9saWIiCi0gICAgICAg
ICAgICAgICAgIi91c3IvYXBwbGVpbnRlcm5hbC9saWIiCi0gICAgICAgICAgICApCi0gICAgICAg
ICkKLSAgICApCi0gICAgKHdpdGgtZWxldmF0ZWQtcHJlY2VkZW5jZQotICAgICAgICAoYWxsb3cg
ZmlsZS1yZWFkKiBmaWxlLW1hcC1leGVjdXRhYmxlIGZpbGUtaXNzdWUtZXh0ZW5zaW9uCi0gICAg
ICAgICAgIChmcm9udC11c2VyLWhvbWUtc3VicGF0aCAiL1hjb2RlQnVpbHRQcm9kdWN0cyIpCi0g
ICAgICAgICkKLSAgICApCi0KLSAgICA7OyA8cmRhcjovL3Byb2JsZW0vODEwNzc1OD4KLSAgICAo
YWxsb3cgZmlsZS1yZWFkKiBmaWxlLW1hcC1leGVjdXRhYmxlCi0gICAgICAgIChzdWJwYXRoCi0g
ICAgICAgICAgICAiL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MiCi0gICAgICAgICAgICAiL1N5
c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzIgotICAgICAgICApCi0gICAgKQotCi0gICAg
OzsgPHJkYXI6Ly9wcm9ibGVtLzMyNTQ0OTIxPgotICAgIChtb2JpbGUtcHJlZmVyZW5jZXMtcmVh
ZCAiY29tLmFwcGxlLmhhbmd0cmFjZXIiKQotKQotCi0oZGVmaW5lLW9uY2UgKGRldmljZS1hY2Nl
c3MpCi0gICAgKGRlbnkgZmlsZS1yZWFkKiBmaWxlLXdyaXRlKgotICAgICAgICAodm5vZGUtdHlw
ZSBCTE9DSy1ERVZJQ0UgQ0hBUkFDVEVSLURFVklDRSkpCi0KLSAgICAoYWxsb3cgZmlsZS1yZWFk
KiBmaWxlLXdyaXRlLWRhdGEKLSAgICAgICAgKGxpdGVyYWwKLSAgICAgICAgICAgICIvZGV2L251
bGwiCi0gICAgICAgICAgICAiL2Rldi96ZXJvIgotICAgICAgICApCi0gICAgKQotCi0gICAgKGFs
bG93IGZpbGUtcmVhZCoKLSAgICAgICAgKGxpdGVyYWwKLSAgICAgICAgICAgICIvZGV2L3JhbmRv
bSIKLSAgICAgICAgICAgICIvZGV2L3VyYW5kb20iCi0gICAgICAgICkKLSAgICApCi0KLSAgICAo
aWYgKHN5c3RlbS1hdHRyaWJ1dGUgYXBwbGUtaW50ZXJuYWwpCi0gICAgICAgIChhbGxvdyBmaWxl
LXJlYWQqIGZpbGUtd3JpdGUtZGF0YSBmaWxlLWlvY3RsCi0gICAgICAgICAgICAobGl0ZXJhbCAi
L2Rldi9kdHJhY2VoZWxwZXIiKSkKLSAgICA7IGVsc2UKLSAgICAgICAgKGRlbnkgKHdpdGggbm8t
bG9nKSBmaWxlLXJlYWQqIGZpbGUtd3JpdGUtZGF0YSBmaWxlLWlvY3RsCi0gICAgICAgICAgICAo
bGl0ZXJhbCAiL2Rldi9kdHJhY2VoZWxwZXIiKSkKLSAgICApCi0KLSAgICA7OyA8cmRhcjovL3By
b2JsZW0vMTQyMTU3MTg+Ci0gICAgKGRlbnkgZmlsZS13cml0ZS1kYXRhICh3aXRoIG5vLXJlcG9y
dCkKLSAgICAgICAgKGxpdGVyYWwKLSAgICAgICAgICAgICIvZGV2L3JhbmRvbSIKLSAgICAgICAg
ICAgICIvZGV2L3VyYW5kb20iCi0gICAgICAgICkKLSAgICApCi0KLSAgICAoYWxsb3cgZmlsZS1y
ZWFkKiBmaWxlLXdyaXRlLWRhdGEgZmlsZS1pb2N0bAotICAgICAgICAobGl0ZXJhbCAiL2Rldi9h
ZXNfMCIpCi0gICAgKQotKQotCi0oZGVmaW5lIHJlcXVpcmVkLWV0Yy1maWxlcwotICAgIChsaXRl
cmFsCi0gICAgICAgICIvcHJpdmF0ZS9ldGMvaG9zdHMiCi0gICAgICAgICIvcHJpdmF0ZS9ldGMv
Z3JvdXAiCi0gICAgICAgICIvcHJpdmF0ZS9ldGMvcGFzc3dkIgotICAgICAgICAiL3ByaXZhdGUv
ZXRjL3Byb3RvY29scyIKLSAgICAgICAgIi9wcml2YXRlL2V0Yy9zZXJ2aWNlcyIKLSAgICApCi0p
Ci0KLShkZW55IGZpbGUtbWFwLWV4ZWN1dGFibGUpCi0KLShkZW55IGZpbGUtd3JpdGUtbW91bnQg
ZmlsZS13cml0ZS11bm1vdW50KQotCi0obW9iaWxlLXByZWZlcmVuY2VzLXJlYWQgImNvbS5hcHBs
ZS5zZWN1cml0eSIpCi0KLSh3aXRoLWZpbHRlciAoc3lzdGVtLWF0dHJpYnV0ZSBhcHBsZS1pbnRl
cm5hbCkKLSAgICAobW9iaWxlLXByZWZlcmVuY2VzLXJlYWQgImNvbS5hcHBsZS5Qcm90b3R5cGVU
b29scyIpCi0pCi0KLSh3aXRoLWVsZXZhdGVkLXByZWNlZGVuY2UKLSAgICAoYWxsb3cgZmlsZS1y
ZWFkKgotICAgICAgICAoc3VicGF0aAotICAgICAgICAgICAgIi91c3IvbGliIgotICAgICAgICAg
ICAgIi91c3Ivc2hhcmUiCi0gICAgICAgICAgICAiL3ByaXZhdGUvdmFyL2RiL3RpbWV6b25lIgot
ICAgICAgICAgICAgIi9wcml2YXRlL3Zhci9wcmVmZXJlbmNlcy9Mb2dnaW5nIiA7OzsgPHJkYXI6
Ly9wcm9ibGVtLzI0MTQ0NDE4PgotICAgICAgICAgICAgIi9TeXN0ZW0vTGlicmFyeSIKLSAgICAg
ICAgKQotICAgICkKLQotICAgIChsZXQgKChody1pZGVudGlmeWluZy1wYXRocwotICAgICAgICAg
ICAgKHJlcXVpcmUtYW55Ci0gICAgICAgICAgICAgICAgKGxpdGVyYWwgIi9TeXN0ZW0vTGlicmFy
eS9DYWNoZXMvYXB0aWNrZXQuZGVyIikKLSAgICAgICAgICAgICAgICAoc3VicGF0aCAiL1N5c3Rl
bS9MaWJyYXJ5L0NhY2hlcy9jb20uYXBwbGUua2VybmVsY2FjaGVzIikKLSAgICAgICAgICAgICAg
ICAoc3VicGF0aCAiL1N5c3RlbS9MaWJyYXJ5L0NhY2hlcy9jb20uYXBwbGUuZmFjdG9yeWRhdGEi
KSkpKQotICAgICAgICAoZGVueSBmaWxlLWlzc3VlLWV4dGVuc2lvbiBmaWxlLXJlYWQqIGh3LWlk
ZW50aWZ5aW5nLXBhdGhzKSkKLSAgICAKLSAgICAoYWxsb3cgZmlsZS1tYXAtZXhlY3V0YWJsZQot
ICAgICAgICAoc3VicGF0aAotICAgICAgICAgICAgIi9TeXN0ZW0vTGlicmFyeSIKLSAgICAgICAg
ICAgICIvdXNyL2xpYiIKLSAgICAgICAgKQotICAgICkKLQotICAgIChhbGxvdyBmaWxlLXJlYWQt
bWV0YWRhdGEKLSAgICAgICAgKHZub2RlLXR5cGUKLSAgICAgICAgICAgIERJUkVDVE9SWQotICAg
ICAgICAgICAgU1lNTElOSwotICAgICAgICApCi0gICAgKQotCi0gICAgKGFsbG93IHVzZXItcHJl
ZmVyZW5jZS1yZWFkIChwcmVmZXJlbmNlLWRvbWFpbiAia0NGUHJlZmVyZW5jZXNBbnlBcHBsaWNh
dGlvbiIpKQotICAgIChhbGxvdyBmaWxlLXJlYWQqCi0gICAgICAgICAgIChmcm9udC11c2VyLWhv
bWUtbGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvLkdsb2JhbFByZWZlcmVuY2VzLnBsaXN0
IikKLSAgICAgICAgICAgKGZyb250LXVzZXItaG9tZS1saXRlcmFsICIvTGlicmFyeS9QcmVmZXJl
bmNlcy8uR2xvYmFsUHJlZmVyZW5jZXNfbS5wbGlzdCIpKQotICAgIChhbGxvdyBtYW5hZ2VkLXBy
ZWZlcmVuY2UtcmVhZCAocHJlZmVyZW5jZS1kb21haW4gImtDRlByZWZlcmVuY2VzQW55QXBwbGlj
YXRpb24iKSkKLSAgICAKLSAgICAoYWxsb3cgZmlsZS1yZWFkKgotICAgICAgICAobGl0ZXJhbCAi
L3ByaXZhdGUvdmFyL01hbmFnZWQgUHJlZmVyZW5jZXMvbW9iaWxlLy5HbG9iYWxQcmVmZXJlbmNl
cy5wbGlzdCIpCi0gICAgKQotCi0gICAgKGFsbG93IGZpbGUtcmVhZC1tZXRhZGF0YQotICAgICAg
ICAoaG9tZS1saXRlcmFsICIvTGlicmFyeS9DYWNoZXMvcG93ZXJsb2cubGF1bmNoZCIpKQotCi0g
ICAgOzsgPHJkYXI6Ly9wcm9ibGVtLzEzOTYzMjk0PgotICAgIChkZW55IGZpbGUtcmVhZC1kYXRh
IGZpbGUtaXNzdWUtZXh0ZW5zaW9uIGZpbGUtbWFwLWV4ZWN1dGFibGUKLSAgICAgICAgKHJlcXVp
cmUtYWxsCi0gICAgICAgICAgICAoZXhlY3V0YWJsZS1idW5kbGUpCi0gICAgICAgICAgICAocmVn
ZXggIyIvW14vXSsvU0NfSW5mby8iKSkpCi0pCi0KLSh3aXRoLWZpbHRlciAoc3lzdGVtLWF0dHJp
YnV0ZSBhcHBsZS1pbnRlcm5hbCkKLSAgICAoaW50ZXJuYWwtZGVidWdnaW5nLXN1cHBvcnQpCi0p
Ci0KLShhbGxvdyBmaWxlLXJlYWQqIHJlcXVpcmVkLWV0Yy1maWxlcykKLQotKGFsbG93IGZpbGUt
cmVhZCoKLSAgICAoc3VicGF0aCAiL3ByaXZhdGUvdmFyL01vYmlsZUFzc2V0L1ByZWluc3RhbGxl
ZEFzc2V0c1YyL0luc3RhbGxXaXRoT3MiKSkKLQotKGFsbG93IGZpbGUtcmVhZC1kYXRhCi0gICAg
KGxpdGVyYWwgIi91c3IvbG9jYWwvbGliL2xvZyIpIDsgPHJkYXI6Ly9wcm9ibGVtLzM2NjI5NDk1
PgotKQotCi0oZGV2aWNlLWFjY2VzcykKLQotKGFsbG93IG1hY2gtbG9va3VwCi0gICAgKGdsb2Jh
bC1uYW1lCi0gICAgICAgICJjb20uYXBwbGUubG9nZCIKLSAgICAgICAgImNvbS5hcHBsZS5sb2dk
LmV2ZW50cyIKLSAgICAgICAgImNvbS5hcHBsZS5zeXN0ZW0ubm90aWZpY2F0aW9uX2NlbnRlciIK
LSAgICApCi0pCi0KLSh3aXRoLWZpbHRlciAoc3lzdGVtLWF0dHJpYnV0ZSBhcHBsZS1pbnRlcm5h
bCkKLSAgICAoYWxsb3cgbWFjaC1sb29rdXAKLSAgICAgICAgKGdsb2JhbC1uYW1lCi0gICAgICAg
ICAgICAiY29tLmFwcGxlLmFnZ3JlZ2F0ZWQiCi0gICAgICAgICAgICAiY29tLmFwcGxlLmRpYWdu
b3N0aWNkIgotICAgICAgICAgICAgImNvbS5hcHBsZS5zeXN0ZW0ubG9nZ2VyIikpKQotCi07OyA8
cmRhcjovL3Byb2JsZW0vMTI0MTM5NDI+Ci0oYWxsb3cgZmlsZS1yZWFkKgotICAgICh3ZWxsLWtu
b3duLXN5c3RlbS1ncm91cC1jb250YWluZXItbGl0ZXJhbCAiL3N5c3RlbWdyb3VwLmNvbS5hcHBs
ZS5tb2JpbGVnZXN0YWx0Y2FjaGUvTGlicmFyeS9DYWNoZXMvY29tLmFwcGxlLk1vYmlsZUdlc3Rh
bHQucGxpc3QiKSkKLQotKGFsbG93IGlwYy1wb3NpeC1zaG0tcmVhZCoKLSAgICAoaXBjLXBvc2l4
LW5hbWUgImFwcGxlLnNobS5ub3RpZmljYXRpb25fY2VudGVyIikpCi0KLSh3aXRoLWZpbHRlcgot
ICAgIChyZXF1aXJlLWFsbAotICAgICAgICAoc3lzdGVtLWF0dHJpYnV0ZSBhcHBsZS1pbnRlcm5h
bCkKLSAgICAgICAgKGlwYy1wb3NpeC1uYW1lICJwdXJwbGVidWRkeS5zZW50aW5lbCIpKQotICAg
IChkZW55IGlwYy1wb3NpeC1zZW0tY3JlYXRlIGlwYy1wb3NpeC1zZW0tcG9zdCBpcGMtcG9zaXgt
c2VtLXVubGluayBpcGMtcG9zaXgtc2VtLXdhaXQpCi0gICAgKGFsbG93IGlwYy1wb3NpeC1zZW0t
b3BlbikKLSkKLQotKG1hbmFnZWQtY29uZmlndXJhdGlvbi1yZWFkLXB1YmxpYykKLQotKGRlbnkg
c3lzdGVtLWluZm8gKHdpdGggbm8tcmVwb3J0KQotICAgIChpbmZvLXR5cGUgIm5ldC5saW5rLmFk
ZHIiKSkKLQotKGFsbG93IG1hY2gtdGFzay1uYW1lICh0YXJnZXQgc2VsZikpCi0KLShhbGxvdyBw
cm9jZXNzLWluZm8tcGlkaW5mbyAodGFyZ2V0IHNlbGYpKQotKGFsbG93IHByb2Nlc3MtaW5mby1w
aWRmZGluZm8gKHRhcmdldCBzZWxmKSkKLShhbGxvdyBwcm9jZXNzLWluZm8tcGlkZmlsZXBvcnRp
bmZvICh0YXJnZXQgc2VsZikpCi0oYWxsb3cgcHJvY2Vzcy1pbmZvLXNldGNvbnRyb2wgKHRhcmdl
dCBzZWxmKSkKLShhbGxvdyBwcm9jZXNzLWluZm8tZGlydHljb250cm9sICh0YXJnZXQgc2VsZikp
Ci0oYWxsb3cgcHJvY2Vzcy1pbmZvLXJ1c2FnZSAodGFyZ2V0IHNlbGYpKQotKGFsbG93IHByb2Nl
c3MtaW5mby1jb2Rlc2lnbmF0dXJlICh0YXJnZXQgc2VsZikpCi0KLTs7OwotOzs7IEVuZCBjb21t
b24uc2IgY29udGVudAotOzs7Ci0KLShkZW55IG1hY2gtbG9va3VwICh4cGMtc2VydmljZS1uYW1l
LXByZWZpeCAiIikpCi0oZGVueSBpb2tpdC1nZXQtcHJvcGVydGllcyAod2l0aCBwYXJ0aWFsLXN5
bWJvbGljYXRpb24pKQotKGRlbnkgbHNvcGVuKQotCi07OzsKLTs7OyBUaGUgZm9sbG93aW5nIHJ1
bGVzIHdlcmUgb3JpZ2luYWxseSBjb250YWluZWQgaW4gJ1VJS2l0LWFwcHMuc2InLiBXZSBhcmUg
ZHVwbGljYXRpbmcgdGhlbSBoZXJlIHNvIHdlIGNhbgotOzs7IHJlbW92ZSB1bm5lZWRlZCBzYW5k
Ym94IGV4dGVuc2lvbnMuCi07OzsKLQotKGFsbG93LXByZWZlcmVuY2VzLWNvbW1vbikKLQotOzsg
SG9tZSBCdXR0b24KLSh3aXRoLWZpbHRlciAoaW9raXQtcmVnaXN0cnktZW50cnktY2xhc3MgIklP
UGxhdGZvcm1EZXZpY2UiKQotICAgIChhbGxvdyBpb2tpdC1nZXQtcHJvcGVydGllcyAod2l0aCB0
ZWxlbWV0cnkpCi0gICAgICAgIChpb2tpdC1wcm9wZXJ0eSAiaG9tZS1idXR0b24tdHlwZSIpKSkK
LQotKGRlbnkgZmlsZS13cml0ZSoKLSAgICAoaG9tZS1saXRlcmFsCi0gICAgICAgICIvTGlicmFy
eS9DYWNoZXMvRGF0ZUZvcm1hdHMucGxpc3QiIDsgU2lsZW50bHkgZGVueSB3cml0ZXMgd2hlbiBD
RkRhdGEgYXR0ZW1wdHMgdG8gd3JpdGUgdG8gdGhlIGNhY2hlIGRpcmVjdG9yeS4KLSAgICAgICAg
Ii9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5zcHJpbmdib2FyZC5wbGlzdCIgOzsgPHJk
YXI6Ly9wcm9ibGVtLzkzNzUwMjc+Ci0gICAgKQotICAgICh3aXRoIG5vLWxvZykpCi0KLTs7Owot
Ozs7IEVuZCBVSUtpdC1hcHBzLnNiIGNvbnRlbnQKLTs7OwotCi0oZGVueSBzeXNjdGwqKQotKGFs
bG93IHN5c2N0bC1yZWFkCi0gICAgKHN5c2N0bC1uYW1lCi0gICAgICAgICJody5hY3RpdmVjcHUi
Ci0gICAgICAgICJody5hdmFpbGNwdSIKLSAgICAgICAgImh3LmNhY2hlY29uZmlnIiA7OyA8cmRh
cjovL3Byb2JsZW0vNzgyMTM1NjM+Ci0gICAgICAgICJody5jYWNoZWxpbmVzaXplIgotICAgICAg
ICAiaHcuY2FjaGVzaXplIiA7OyA8cmRhcjovL3Byb2JsZW0vNzgyMTM1NjM+Ci0gICAgICAgICJo
dy5jcHVmYW1pbHkiIDs7IDxyZGFyOi8vcHJvYmxlbS8xNTcyMTg3Mj4KLSAgICAgICAgImh3LmNw
dXN1YmZhbWlseSIKLSAgICAgICAgImh3LmNwdXRocmVhZHR5cGUiCi0gICAgICAgICJody5jcHV0
eXBlIgotICAgICAgICAiaHcubDFkY2FjaGVzaXplIiA7OyA8cmRhcjovL3Byb2JsZW0vMTU3MjE4
NzI+Ci0gICAgICAgICJody5sMWljYWNoZXNpemUiIDs7IDxyZGFyOi8vcHJvYmxlbS8xNTcyMTg3
Mj4KLSAgICAgICAgImh3LmwyY2FjaGVzaXplIgotICAgICAgICAiaHcubDNjYWNoZXNpemUiIDs7
IDxyZGFyOi8vcHJvYmxlbS8xNTcyMTg3Mj4KLSAgICAgICAgImh3LmxvZ2ljYWxjcHUiCi0gICAg
ICAgICJody5sb2dpY2FsY3B1X21heCIKLSAgICAgICAgImh3Lm5jcHUiCi0gICAgICAgICJody5t
YWNoaW5lIgotICAgICAgICAiaHcubWVtc2l6ZSIKLSAgICAgICAgImh3Lm1vZGVsIgotICAgICAg
ICAiaHcubmNwdSIgOzsgPHJkYXI6Ly9wcm9ibGVtLzc2NzgyNTMwPgotICAgICAgICAiaHcubnBl
cmZsZXZlbHMiIDs7IDxyZGFyOi8vcHJvYmxlbS83Njc4MjUzMD4KLSAgICAgICAgImh3LnBhZ2Vz
aXplIiA7OyA8cmRhcjovL3Byb2JsZW0vNzY3ODI1MzA+Ci0gICAgICAgICJody5wYWdlc2l6ZV9j
b21wYXQiCi0gICAgICAgICJody5waHlzaWNhbGNwdSIKLSAgICAgICAgImh3LnBoeXNpY2FsY3B1
X21heCIKLSAgICAgICAgImh3LnBoeXNtZW0iIDs7IDxyZGFyOi8vcHJvYmxlbS83Njc4MjUzMD4K
LSAgICAgICAgImh3LnZlY3RvcnVuaXQiIDs7IDxyZGFyOi8vcHJvYmxlbS83Njc4MjUzMD4KLSAg
ICAgICAgImtlcm4uYm9vdGFyZ3MiCi0gICAgICAgICJrZXJuLmhvc3RuYW1lIgotICAgICAgICAi
a2Vybi5odl92bW1fcHJlc2VudCIKLSAgICAgICAgImtlcm4ubWF4ZmlsZXNwZXJwcm9jIgotICAg
ICAgICAia2Vybi5tZW1vcnlzdGF0dXNfbGV2ZWwiCi0gICAgICAgICJrZXJuLm9zcHJvZHVjdHZl
cnNpb24iCi0gICAgICAgICJrZXJuLm9zcmVsZWFzZSIKLSAgICAgICAgImtlcm4ub3N2YXJpYW50
X3N0YXR1cyIKLSAgICAgICAgImtlcm4ub3N2ZXJzaW9uIgotICAgICAgICAia2Vybi5vc3R5cGUi
Ci0gICAgICAgICJrZXJuLnNlY3VyZV9rZXJuZWwiCi0gICAgICAgICJrZXJuLnZlcnNpb24iCi0g
ICAgICAgICJ2bS5mb290cHJpbnRfc3VzcGVuZCIpCi0gICAgKHN5c2N0bC1uYW1lLXByZWZpeCAi
aHcub3B0aW9uYWwuIikgOzsgPHJkYXI6Ly9wcm9ibGVtLzcwOTczNTI3PgotICAgIChzeXNjdGwt
bmFtZS1wcmVmaXggImh3LnBlcmZsZXZlbCIpIDs7IDxyZGFyOi8vcHJvYmxlbS83Njc4MjUzMD4K
LSkKLQotKHdpdGgtZmlsdGVyIChzeXN0ZW0tYXR0cmlidXRlIGFwcGxlLWludGVybmFsKQotICAg
IChhbGxvdyBzeXNjdGwtcmVhZCBzeXNjdGwtd3JpdGUKLSAgICAgICAgKHN5c2N0bC1uYW1lCi0g
ICAgICAgICAgICAidm0uZm9vdHByaW50X3N1c3BlbmQiCi0gICAgICAgICkKLSAgICApCi0pCi0K
LTs7IFNpbGVuY2Ugbm9pc3kgZGVuaWFscwotKGRlbnkgc3lzY3RsLXJlYWQgKHdpdGggbm8tcmVw
b3J0KQotICAgIChzeXNjdGwtbmFtZQotICAgICAgICAic3lzY3RsLnByb2NfbmF0aXZlIgotICAg
ICkKLSkKLQotOzsgUmVhZC1vbmx5IHByZWZlcmVuY2VzIGFuZCBkYXRhCi0obW9iaWxlLXByZWZl
cmVuY2VzLXJlYWQgImNvbS5hcHBsZS5MYXVuY2hTZXJ2aWNlcyIpCi0KLTs7IEFjY2VzcyB0byBj
bGllbnQncyBjYWNoZSBmb2xkZXIgJiByZS12ZW5kaW5nIHRvIENGTmV0d29yay4KLShhbGxvdyBm
aWxlLWlzc3VlLWV4dGVuc2lvbgotICAgIChyZXF1aXJlLWFsbAotICAgICAgICAoZXh0ZW5zaW9u
ICJjb20uYXBwbGUuYXBwLXNhbmRib3gucmVhZC13cml0ZSIpCi0gICAgICAgIChleHRlbnNpb24t
Y2xhc3MgImNvbS5hcHBsZS5uc3VybHN0b3JhZ2UuZXh0ZW5zaW9uLWNhY2hlIikpKQotCi0oZGVu
eSBmaWxlLXdyaXRlLWNyZWF0ZSAodm5vZGUtdHlwZSBTWU1MSU5LKSkKLShkZW55IGZpbGUtcmVh
ZC14YXR0ciBmaWxlLXdyaXRlLXhhdHRyICh4YXR0ci1wcmVmaXggImNvbS5hcHBsZS5zZWN1cml0
eS5wcml2YXRlLiIpKQotCi07OyBGSVhNRTogQ2FuIGZ1cnRoZXIgcmVzdHJpY3QgdGhlIGZvbGxv
d2luZyBydWxlcy4KLShhbGxvdyBpb2tpdC1nZXQtcHJvcGVydGllcyAod2l0aCByZXBvcnQpICh3
aXRoIHRlbGVtZXRyeSkpCi0oYWxsb3cgaW9raXQtc2V0LXByb3BlcnRpZXMgKHdpdGggcmVwb3J0
KSAod2l0aCB0ZWxlbWV0cnkpKQotCi0oYWxsb3cgZmlsZS1yZWFkKiBmaWxlLXdyaXRlKgotICAg
IChob21lLXN1YnBhdGggIi9MaWJyYXJ5L0tleWNoYWlucyIpKSA7OyBGSVhNRTogVGhpcyBzaG91
bGQgYmUgcmVtb3ZlZCB3aGVuIDxyZGFyOi8vcHJvYmxlbS8xMTU5OTgyNT4gaXMgZml4ZWQuCi0K
LShhbGxvdyBmaWxlLXJlYWQqCi0gICAgKHN1YnBhdGggIi9MaWJyYXJ5L0tleWNoYWlucyIpCi0g
ICAgKGhvbWUtbGl0ZXJhbCAiL0xpYnJhcnkvQXBwbGljYXRpb24gU3VwcG9ydC9TeW5jU2Vydmlj
ZXMvTG9jYWwvQ2xpZW50c1dpdGhDaGFuZ2VzL2NvbS5hcHBsZS5LZXljaGFpbiIpKQotCi0oYWxs
b3cgZmlsZS1yZWFkKgotICAgIChzdWJwYXRoICIvcHJpdmF0ZS92YXIvY29udGFpbmVycy9TaGFy
ZWQvU3lzdGVtR3JvdXAiKSA7OyBGSVhNRTxyZGFyOi8vcHJvYmxlbS83MTEzNzM4OT4KLSAgICAo
bGl0ZXJhbCAiL3ByaXZhdGUvdmFyL3ByZWZlcmVuY2VzL2NvbS5hcHBsZS5uZXR3b3JrZC5wbGlz
dCIpKQotCi0oYWxsb3cgbWFjaC1sb29rdXAKLSAgICA7OyBBbGxvdyBhY2Nlc3NlcyB0byB0aGUg
U3ByaW5nYm9hcmQgdmlldyBzZXJ2aWNlcy4KLSAgICAoZ2xvYmFsLW5hbWUKLSAgICAgICAgImNv
bS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFwcHNlcnZpY2VzIgotICAgICAgICAiY29tLmFwcGxl
LnJ1bm5pbmdib2FyZCIKLSAgICApCi0KLSAgICA7OyBBbGxvdyBhY2Nlc3NlcyB0byBMb2NhbEF1
dGhlbnRpY2F0aW9uIGFuZCBSZW1vdGVTZXJ2aWNlCi0gICAgKGdsb2JhbC1uYW1lCi0gICAgICAg
ICJjb20uYXBwbGUuQ29yZUF1dGhlbnRpY2F0aW9uLmRhZW1vbiIKLSAgICAgICAgImNvbS5hcHBs
ZS5yZW1vdGVkIgotICAgICAgICAiY29tLmFwcGxlLnRjY2QiCi0gICAgKQotCi0gICAgOzsgQWxs
b3cgYWNjZXNzZXMgdG8gdGhlIFNFUAotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmN0a2Qu
dG9rZW4tY2xpZW50IikKLQotICAgIDs7IEFsbG93IGFjY2Vzc2VzIHRvIE5GQwotICAgIChnbG9i
YWwtbmFtZSAiY29tLmFwcGxlLm5mY2QuaHdtYW5hZ2VyIikKLQotICAgIDs7IEFsbG93IGFjY2Vz
c2VzIHRvIHRoZSBLZXljaGFpbiBzZXJ2aWNlCi0gICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUu
c2VjdXJpdHlkIikKLQotICAgIDs7IEFsbG93IGFjY2Vzc2VzIHRvIEFBQSBhbmQgdGhlIG5ldHdv
cmsKLSAgICAoZ2xvYmFsLW5hbWUKLSAgICAgICAgImNvbS5hcHBsZS5BcHBTU08uc2VydmljZS14
cGMiCi0gICAgICAgICJjb20uYXBwbGUubmVoZWxwZXIiCi0gICAgICAgICJjb20uYXBwbGUudXN5
bXB0b21zZCIKLSAgICAgICAgImNvbS5hcHBsZS5kbnNzZC5zZXJ2aWNlIgotICAgICAgICAiY29t
LmFwcGxlLnRydXN0ZCIKLSAgICAgICAgImNvbS5hcHBsZS5jb250YWluZXJtYW5hZ2VyZCIKLSAg
ICAgICAgImNvbS5hcHBsZS5tb2JpbGVnZXN0YWx0LnhwYyIKLSAgICApCi0KLSAgICA7OyBBbGxv
dyBhY2Nlc3NlcyB0byB0aGUgQVNECi0gICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuQXV0aGVu
dGljYXRpb25TZXJ2aWNlc0NvcmUuQXV0aGVudGljYXRpb25TZXJ2aWNlc0FnZW50IikKLSkKLQot
KGFsbG93IGlva2l0LW9wZW4KLSAgICA7OyBBbGxvdyBhY2Nlc3NlcyB0byBISUQKLSAgICAoaW9r
aXQtdXNlci1jbGllbnQtY2xhc3MgIklPSElETGliVXNlckNsaWVudCIpCi0KLSAgICA7OyBBbGxv
dyBhY2Nlc3MgdG8gdGhlIGtleSBzdG9yZQotICAgIChpb2tpdC11c2VyLWNsaWVudC1jbGFzcyAi
QXBwbGVLZXlTdG9yZVVzZXJDbGllbnQiKQotKQotCi0oYWxsb3cgbmV0d29yay1vdXRib3VuZAot
ICAgIChsaXRlcmFsICIvcHJpdmF0ZS92YXIvcnVuL21ETlNSZXNwb25kZXIiKQotICAgIChyZW1v
dGUgdGNwKQotICAgIChyZW1vdGUgdWRwKQotKQotCi0od2l0aC1maWx0ZXIgKHN5c3RlbS1hdHRy
aWJ1dGUgYXBwbGUtaW50ZXJuYWwpCi0gICAgKGFsbG93IG5ldHdvcmstb3V0Ym91bmQKLSAgICAg
ICAgKGxpdGVyYWwgIi9wcml2YXRlL3Zhci9ydW4vc3lzbG9nIikpCi0pCi0KLSNpZiBFTkFCTEUo
U1lTVEVNX0NPTlRFTlRfUEFUSF9TQU5EQk9YX1JVTEVTKQotI2luY2x1ZGUgPFdlYktpdEFkZGl0
aW9ucy9TeXN0ZW1Db250ZW50U2FuZGJveC1pb3MuZGVmcz4KLQotKGFsbG93IGZpbGUtcmVhZCog
ZmlsZS10ZXN0LWV4aXN0ZW5jZQotICAgIChhcHBseSBzdWJwYXRoIGZpbGUtcmVhZC1leGlzdGVu
Y2Utc2Vjb25kYXJ5LXBhdGhzKSkKLQotKGFsbG93IGZpbGUtbWFwLWV4ZWN1dGFibGUKLSAgICAo
YXBwbHkgc3VicGF0aCBzZWNvbmRhcnktZnJhbWV3b3JrLWFuZC1keWxpYi1wYXRocykpCi0jZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9wcm9jZXNzLWVudGl0bGVtZW50
cy5zaCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9wcm9jZXNzLWVudGl0bGVtZW50cy5zaAppbmRl
eCA1MjM5Mjc2M2NlYWQwYTJmNDU0NzNjOTZmOWZiYTM5ZGNlNjcxYWM3Li5kY2M3N2QzODhiNjk5
NDcyMmFjZWE3OTNiNWFlZGE5MjZkNGI2NzcxIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvcHJvY2Vzcy1lbnRpdGxlbWVudHMuc2gKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRz
L3Byb2Nlc3MtZW50aXRsZW1lbnRzLnNoCkBAIC0xMTcsMzIgKzExNyw2IEBAIGZ1bmN0aW9uIG1h
Y19wcm9jZXNzX2dwdV9lbnRpdGxlbWVudHMoKQogICAgIGZpCiB9CiAKLWZ1bmN0aW9uIG1hY19w
cm9jZXNzX3dlYmF1dGhuX2VudGl0bGVtZW50cygpCi17Ci0gICAgaWYgW1sgIiR7V0tfVVNFX1JF
U1RSSUNURURfRU5USVRMRU1FTlRTfSIgPT0gWUVTIF1dCi0gICAgdGhlbgotICAgICAgICBwbGlz
dGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnNlY3VyaXR5LmRldmljZS51c2IgYm9vbCBZRVMKLQotICAg
ICAgICBwbGlzdGJ1ZGR5IEFkZCA6a2V5Y2hhaW4tYWNjZXNzLWdyb3VwcyBhcnJheQotICAgICAg
ICBwbGlzdGJ1ZGR5IEFkZCA6a2V5Y2hhaW4tYWNjZXNzLWdyb3VwczowIHN0cmluZyBjb20uYXBw
bGUud2Via2l0LndlYmF1dGhuCi0gICAgICAgIHBsaXN0YnVkZHkgQWRkIDprZXljaGFpbi1hY2Nl
c3MtZ3JvdXBzOjEgc3RyaW5nIGxvY2tkb3duLWlkZW50aXRpZXMKLQotICAgICAgICBwbGlzdGJ1
ZGR5IEFkZCA6Y29tLmFwcGxlLnNlY3VyaXR5LmF0dGVzdGF0aW9uLmFjY2VzcyBib29sIFlFUwot
ICAgICAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLmtleXN0b3JlLnNpay5hY2Nlc3MgYm9v
bCBZRVMKLSAgICAgICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5wcml2YXRlLlJlbW90ZVNl
cnZpY2VEaXNjb3ZlcnkuYWxsb3ctc2FuZGJveCBib29sIFlFUwotICAgICAgICBwbGlzdGJ1ZGR5
IEFkZCA6Y29tLmFwcGxlLnByaXZhdGUuUmVtb3RlU2VydmljZURpc2NvdmVyeS5kZXZpY2UtYWRt
aW4gYm9vbCBZRVMKLSAgICAgICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5hcHBhdHRlc3Qu
c3BpIGJvb2wgWUVTCi0gICAgICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUubW9iaWxlYWN0
aXZhdGlvbmQuc3BpIGJvb2wgWUVTCi0gICAgICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUu
bW9iaWxlYWN0aXZhdGlvbmQuYnJpZGdlIGJvb2wgWUVTCi0gICAgICAgIHBsaXN0YnVkZHkgQWRk
IDpjb20uYXBwbGUucHJpdmF0ZS5zZWN1cml0eS5ib290cG9saWN5IGJvb2wgWUVTCi0KLSAgICAg
ICAgaWYgKCggIiR7VEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1J9IiA+PSAxMTAwMDAgKSkK
LSAgICAgICAgdGhlbgotICAgICAgICAgICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5zZWN1
cml0eS5jcy5qaXQtd3JpdGUtYWxsb3dsaXN0IGJvb2wgWUVTCi0gICAgICAgIGZpCi0gICAgZmkK
LX0KLQogZnVuY3Rpb24gbWFjX3Byb2Nlc3NfbmV0d29ya19lbnRpdGxlbWVudHMoKQogewogICAg
IGlmIFtbICIke1dLX1VTRV9SRVNUUklDVEVEX0VOVElUTEVNRU5UU30iID09IFlFUyBdXQpAQCAt
NDMzLDQ3ICs0MDcsNiBAQCBmdW5jdGlvbiBpb3NfZmFtaWx5X3Byb2Nlc3NfZ3B1X2VudGl0bGVt
ZW50cygpCiAgICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5wcml2YXRlLmF0dHJpYnV0aW9u
LmV4cGxpY2l0bHktYXNzdW1lZC1pZGVudGl0aWVzOjA6dHlwZSBzdHJpbmcgd2lsZGNhcmQKIH0K
IAotZnVuY3Rpb24gaW9zX2ZhbWlseV9wcm9jZXNzX3dlYmF1dGhuX2VudGl0bGVtZW50cygpCi17
Ci0gICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5wcml2YXRlLm1lbW9yeXN0YXR1cyBib29s
IFlFUwotICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUucnVubmluZ2JvYXJkLmFzc2VydGlv
bnMud2Via2l0IGJvb2wgWUVTCi0KLSAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnNlY3Vy
aXR5LmRldmljZS51c2IgYm9vbCBZRVMKLQotICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUu
cHJpdmF0ZS50Y2MuYWxsb3cgYXJyYXkKLSAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnBy
aXZhdGUudGNjLmFsbG93OjAgc3RyaW5nIGtUQ0NTZXJ2aWNlTGlzdGVuRXZlbnQKLQotICAgIHBs
aXN0YnVkZHkgQWRkIDpjb20uYXBwbGUuc2VjdXJpdHkuYXBwbGljYXRpb24tZ3JvdXBzIGFycmF5
Ci0gICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5zZWN1cml0eS5hcHBsaWNhdGlvbi1ncm91
cHM6MCBzdHJpbmcgZ3JvdXAuY29tLmFwcGxlLndlYmtpdAotCi0gICAgcGxpc3RidWRkeSBBZGQg
OmNvbS5hcHBsZS5uZmNkLmh3bWFuYWdlciBib29sIFlFUwotICAgIHBsaXN0YnVkZHkgQWRkIDpj
b20uYXBwbGUubmZjZC5zZXNzaW9uLnJlYWRlci5pbnRlcm5hbCBib29sIFlFUwotICAgICMgRklY
TUUocmRhcjovL3Byb2JsZW0vNzI2NDY2NjQpOiBGaW5kIGEgYmV0dGVyIHdheSB0byBpbnZva2Ug
TmVhckZpZWxkIGluIHRoZSBiYWNrZ3JvdW5kLgotICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBw
bGUuaW50ZXJuYWwubmZjLmFsbG93LmJhY2tncm91bmRlZC5zZXNzaW9uIGJvb2wgWUVTCi0gICAg
cGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5VSUtpdC52ZW5kcy12aWV3LXNlcnZpY2VzIGJvb2wg
WUVTCi0KLSAgICBwbGlzdGJ1ZGR5IEFkZCA6a2V5Y2hhaW4tYWNjZXNzLWdyb3VwcyBhcnJheQot
ICAgIHBsaXN0YnVkZHkgQWRkIDprZXljaGFpbi1hY2Nlc3MtZ3JvdXBzOjAgc3RyaW5nIGNvbS5h
cHBsZS53ZWJraXQud2ViYXV0aG4KLSAgICBwbGlzdGJ1ZGR5IEFkZCA6a2V5Y2hhaW4tYWNjZXNz
LWdyb3VwczoxIHN0cmluZyBsb2NrZG93bi1pZGVudGl0aWVzCi0KLSAgICBwbGlzdGJ1ZGR5IEFk
ZCA6Y29tLmFwcGxlLnByaXZhdGUuTW9iaWxlR2VzdGFsdC5BbGxvd2VkUHJvdGVjdGVkS2V5cyBh
cnJheQotICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUucHJpdmF0ZS5Nb2JpbGVHZXN0YWx0
LkFsbG93ZWRQcm90ZWN0ZWRLZXlzOjAgc3RyaW5nIFVuaXF1ZUNoaXBJRAotICAgIHBsaXN0YnVk
ZHkgQWRkIDpjb20uYXBwbGUucHJpdmF0ZS5Nb2JpbGVHZXN0YWx0LkFsbG93ZWRQcm90ZWN0ZWRL
ZXlzOjEgc3RyaW5nIFNlcmlhbE51bWJlcgotCi0gICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBs
ZS5zZWN1cml0eS5zeXN0ZW0tZ3JvdXBzIGFycmF5Ci0gICAgcGxpc3RidWRkeSBBZGQgOmNvbS5h
cHBsZS5zZWN1cml0eS5zeXN0ZW0tZ3JvdXBzOjAgc3RyaW5nIHN5c3RlbWdyb3VwLmNvbS5hcHBs
ZS5tb2JpbGVhY3RpdmF0aW9uZAotCi0gICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5zZWN1
cml0eS5hdHRlc3RhdGlvbi5hY2Nlc3MgYm9vbCBZRVMKLSAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29t
LmFwcGxlLmtleXN0b3JlLnNpay5hY2Nlc3MgYm9vbCBZRVMKLSAgICBwbGlzdGJ1ZGR5IEFkZCA6
Y29tLmFwcGxlLmFwcGF0dGVzdC5zcGkgYm9vbCBZRVMKLSAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29t
LmFwcGxlLm1vYmlsZWFjdGl2YXRpb25kLnNwaSBib29sIFlFUwotCi0gICAgcGxpc3RidWRkeSBB
ZGQgOmNvbS5hcHBsZS5zcHJpbmdib2FyZC5yZW1vdGUtYWxlcnQgYm9vbCBZRVMKLSAgICBwbGlz
dGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLmZyb250Ym9hcmQubGF1bmNoYXBwbGljYXRpb25zIGJvb2wg
WUVTCi0KLSAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnByaXZhdGUuc2FuZGJveC5wcm9m
aWxlIHN0cmluZyBjb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuCi19Ci0KIGZ1bmN0aW9uIGlvc19m
YW1pbHlfcHJvY2Vzc19hZGF0dHJpYnV0aW9uZF9lbnRpdGxlbWVudHMoKQogewogICAgIHBsaXN0
YnVkZHkgQWRkIDpjb20uYXBwbGUucHJpdmF0ZS5zYW5kYm94LnByb2ZpbGUgc3RyaW5nIGNvbS5h
cHBsZS5XZWJLaXQuYWRhdHRyaWJ1dGlvbmQKQEAgLTUyOCw3ICs0NjEsNiBAQCB0aGVuCiAgICAg
ZWxpZiBbWyAiJHtQUk9EVUNUX05BTUV9IiA9PSBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQu
Q2FwdGl2ZVBvcnRhbCBdXTsgdGhlbiBtYWNfcHJvY2Vzc193ZWJjb250ZW50X2NhcHRpdmVwb3J0
YWxfZW50aXRsZW1lbnRzCiAgICAgZWxpZiBbWyAiJHtQUk9EVUNUX05BTUV9IiA9PSBjb20uYXBw
bGUuV2ViS2l0Lk5ldHdvcmtpbmcgXV07IHRoZW4gbWFjX3Byb2Nlc3NfbmV0d29ya19lbnRpdGxl
bWVudHMKICAgICBlbGlmIFtbICIke1BST0RVQ1RfTkFNRX0iID09IGNvbS5hcHBsZS5XZWJLaXQu
R1BVIF1dOyB0aGVuIG1hY19wcm9jZXNzX2dwdV9lbnRpdGxlbWVudHMKLSAgICBlbGlmIFtbICIk
e1BST0RVQ1RfTkFNRX0iID09IGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4gXV07IHRoZW4gbWFj
X3Byb2Nlc3Nfd2ViYXV0aG5fZW50aXRsZW1lbnRzCiAgICAgZWxpZiBbWyAiJHtQUk9EVUNUX05B
TUV9IiA9PSB3ZWJwdXNoZCBdXTsgdGhlbiBtYWNfcHJvY2Vzc193ZWJwdXNoZF9lbnRpdGxlbWVu
dHMKICAgICBlbGlmIFtbICIke1BST0RVQ1RfTkFNRX0iICE9IGFkYXR0cmlidXRpb25kIF1dOyB0
aGVuIGVjaG8gIlVuc3VwcG9ydGVkL3Vua25vd24gcHJvZHVjdDogJHtQUk9EVUNUX05BTUV9Igog
ICAgIGZpCkBAIC01NTIsNyArNDg0LDYgQEAgdGhlbgogICAgIGVsaWYgW1sgIiR7UFJPRFVDVF9O
QU1FfSIgPT0gY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LkNhcHRpdmVQb3J0YWwgXV07IHRo
ZW4gaW9zX2ZhbWlseV9wcm9jZXNzX3dlYmNvbnRlbnRfY2FwdGl2ZXBvcnRhbF9lbnRpdGxlbWVu
dHMKICAgICBlbGlmIFtbICIke1BST0RVQ1RfTkFNRX0iID09IGNvbS5hcHBsZS5XZWJLaXQuTmV0
d29ya2luZyBdXTsgdGhlbiBpb3NfZmFtaWx5X3Byb2Nlc3NfbmV0d29ya19lbnRpdGxlbWVudHMK
ICAgICBlbGlmIFtbICIke1BST0RVQ1RfTkFNRX0iID09IGNvbS5hcHBsZS5XZWJLaXQuR1BVIF1d
OyB0aGVuIGlvc19mYW1pbHlfcHJvY2Vzc19ncHVfZW50aXRsZW1lbnRzCi0gICAgZWxpZiBbWyAi
JHtQUk9EVUNUX05BTUV9IiA9PSBjb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuIF1dOyB0aGVuIGlv
c19mYW1pbHlfcHJvY2Vzc193ZWJhdXRobl9lbnRpdGxlbWVudHMKICAgICBlbGlmIFtbICIke1BS
T0RVQ1RfTkFNRX0iID09IGFkYXR0cmlidXRpb25kIF1dOyB0aGVuCiAgICAgICAgIGlvc19mYW1p
bHlfcHJvY2Vzc19hZGF0dHJpYnV0aW9uZF9lbnRpdGxlbWVudHMKICAgICBlbGlmIFtbICIke1BS
T0RVQ1RfTkFNRX0iID09IHdlYnB1c2hkIF1dOyB0aGVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbSBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCmluZGV4IDNhMTZhMmNj
Mzk0NGM0MjExNDUzOThiY2YxNGUyYjU2NmU3YTUzN2MuLjE4YWYwZDhkMDk3OTg1YzM4ZGFkZDg0
NDA4OTNlMTQ1NjAyMDY5Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29h
L0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nv
Y29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCkBAIC03MSw4ICs3MSw3IEBAIHN0YXRpYyBi
b29sIGlzSW5XZWJLaXRDaGlsZFByb2Nlc3MoKQogICAgICAgICBOU1N0cmluZyAqYnVuZGxlSWRl
bnRpZmllciA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl07CiAgICAg
ICAgIGlzSW5TdWJQcm9jZXNzID0gW2J1bmRsZUlkZW50aWZpZXIgaGFzUHJlZml4OkAiY29tLmFw
cGxlLldlYktpdC5XZWJDb250ZW50Il0KICAgICAgICAgICAgIHx8IFtidW5kbGVJZGVudGlmaWVy
IGhhc1ByZWZpeDpAImNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZyJdCi0gICAgICAgICAgICB8
fCBbYnVuZGxlSWRlbnRpZmllciBoYXNQcmVmaXg6QCJjb20uYXBwbGUuV2ViS2l0LkdQVSJdCi0g
ICAgICAgICAgICB8fCBbYnVuZGxlSWRlbnRpZmllciBoYXNQcmVmaXg6QCJjb20uYXBwbGUuV2Vi
S2l0LldlYkF1dGhuIl07CisgICAgICAgICAgICB8fCBbYnVuZGxlSWRlbnRpZmllciBoYXNQcmVm
aXg6QCJjb20uYXBwbGUuV2ViS2l0LkdQVSJdOwogICAgIH0pOwogCiAgICAgcmV0dXJuIGlzSW5T
dWJQcm9jZXNzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0
aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2Vy
dmljZUVudHJ5UG9pbnQuaAppbmRleCBhNTJhZGMwMTdjZTI3MDc1MTkxZjEzNzk5ZDJhYTVjOWM3
NWU0OTg0Li5iYTg3NGY1ZjJlY2Y3NmUyNzk1NjI3NmVkOTQ4NmNmZTc1NWEzZTM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1Nl
cnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9F
bnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQu
aApAQCAtNDIsNyArNDIsNiBAQCBleHRlcm4gIkMiIE9TX05PVEhST1cgdm9pZCB2b3VjaGVyX3Jl
cGxhY2VfZGVmYXVsdF92b3VjaGVyKHZvaWQpOwogI2RlZmluZSBXRUJDT05URU5UX1NFUlZJQ0Vf
SU5JVElBTElaRVIgV2ViQ29udGVudFNlcnZpY2VJbml0aWFsaXplcgogI2RlZmluZSBORVRXT1JL
X1NFUlZJQ0VfSU5JVElBTElaRVIgTmV0d29ya1NlcnZpY2VJbml0aWFsaXplcgogI2RlZmluZSBH
UFVfU0VSVklDRV9JTklUSUFMSVpFUiBHUFVTZXJ2aWNlSW5pdGlhbGl6ZXIKLSNkZWZpbmUgV0VC
QVVUSE5fU0VSVklDRV9JTklUSUFMSVpFUiBXZWJBdXRoblNlcnZpY2VJbml0aWFsaXplcgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50
cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQ
Q1NlcnZpY2VNYWluLm1tCmluZGV4IGYxY2Y0OWQ4MzZiODhiNzQ5MjY3NDgzZDY4NGVkN2U5OTkx
MmY2ZmUuLjBlN2NjZTcyMDk4M2QzYzBmOTZlZGRjNjNmMGY5OTNlMzA1YmYxMmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2Vy
dmljZS9YUENTZXJ2aWNlTWFpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBv
aW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW0KQEAgLTEwNSw4
ICsxMDUsNiBAQCBzdGF0aWMgdm9pZCBYUENTZXJ2aWNlRXZlbnRIYW5kbGVyKHhwY19jb25uZWN0
aW9uX3QgcGVlcikKICAgICAgICAgICAgICAgICBlbnRyeVBvaW50RnVuY3Rpb25OYW1lID0gQ0ZT
VFIoU1RSSU5HSVpFX1ZBTFVFX09GKE5FVFdPUktfU0VSVklDRV9JTklUSUFMSVpFUikpOwogICAg
ICAgICAgICAgZWxzZSBpZiAoIXN0cmNtcChzZXJ2aWNlTmFtZSwgImNvbS5hcHBsZS5XZWJLaXQu
R1BVIikpCiAgICAgICAgICAgICAgICAgZW50cnlQb2ludEZ1bmN0aW9uTmFtZSA9IENGU1RSKFNU
UklOR0laRV9WQUxVRV9PRihHUFVfU0VSVklDRV9JTklUSUFMSVpFUikpOwotICAgICAgICAgICAg
ZWxzZSBpZiAoIXN0cmNtcChzZXJ2aWNlTmFtZSwgImNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4i
KSkKLSAgICAgICAgICAgICAgICBlbnRyeVBvaW50RnVuY3Rpb25OYW1lID0gQ0ZTVFIoU1RSSU5H
SVpFX1ZBTFVFX09GKFdFQkFVVEhOX1NFUlZJQ0VfSU5JVElBTElaRVIpKTsKICAgICAgICAgICAg
IGVsc2UgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKElQQywgIlhQQ1NlcnZp
Y2VFdmVudEhhbmRsZXI6IFVuZXhwZWN0ZWQgJ3NlcnZpY2UtbmFtZSc6ICV7cHVibGljfXMiLCBz
ZXJ2aWNlTmFtZSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL0F1eGlsaWFyeVByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9tYWMvQXV4aWxpYXJ5UHJvY2Vzc01hYy5tbQppbmRleCBhYzczZGMwMTFkMTdjNDE3
NzRhYTViZTU5ZDIyYzQwNDMwMzdjZDg4Li44MGU4MWRiYTgwOGY3ZjMxZGRkMTdiODdhMTZmMmUx
MjhmODMzZmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQXV4aWxpYXJ5
UHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQXV4aWxpYXJ5UHJv
Y2Vzc01hYy5tbQpAQCAtMjM3LDEwICsyMzcsNiBAQCBjb25zdGV4cHIgY29uc3QgY2hhciogcHJv
Y2Vzc1N0b3JhZ2VDbGFzcyhXZWJDb3JlOjpBdXhpbGlhcnlQcm9jZXNzVHlwZSB0eXBlKQogI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBjYXNlIFdlYkNvcmU6OkF1eGlsaWFyeVByb2Nlc3NU
eXBlOjpHUFU6CiAgICAgICAgIHJldHVybiAiV2ViS2l0R1BVU2FuZGJveCI7Ci0jZW5kaWYKLSNp
ZiBFTkFCTEUoV0VCX0FVVEhOKQotICAgIGNhc2UgV2ViQ29yZTo6QXV4aWxpYXJ5UHJvY2Vzc1R5
cGU6OldlYkF1dGhuOgotICAgICAgICByZXR1cm4gIldlYktpdFdlYkF1dGhuU2FuZGJveCI7CiAj
ZW5kaWYKICAgICB9CiB9CkBAIC0zMDQsMTEgKzMwMCw2IEBAIHN0YXRpYyBTdHJpbmcgc2FuZGJv
eERpcmVjdG9yeShXZWJDb3JlOjpBdXhpbGlhcnlQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSwgY29u
c3QKICAgICBjYXNlIFdlYkNvcmU6OkF1eGlsaWFyeVByb2Nlc3NUeXBlOjpHUFU6CiAgICAgICAg
IGRpcmVjdG9yeS5hcHBlbmQoIi9jb20uYXBwbGUuV2ViS2l0LkdQVS5TYW5kYm94Iik7CiAgICAg
ICAgIGJyZWFrOwotI2VuZGlmCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLSAgICBjYXNlIFdlYkNv
cmU6OkF1eGlsaWFyeVByb2Nlc3NUeXBlOjpXZWJBdXRobjoKLSAgICAgICAgZGlyZWN0b3J5LmFw
cGVuZCgiL2NvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4uU2FuZGJveCIpOwotICAgICAgICBicmVh
azsKICNlbmRpZgogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4
dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggZWEwYzA2NjMzYTQ2NzI2ZDY2ZmI3
NDEyMTk2ZjM0MTBhODM5MjQ5My4uMjA4NWUwODA5YTgzYmE5OGFkNDhmYmNmZTU0MTM0NmUzOWVi
Yzk0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0CkBAIC02MTIsNyArNjEyLDYgQEAgVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlLmNwcAogVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3IuY3BwCiBVSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuY3BwCiBVSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5jcHAKLVVJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQcm94eS5jcHAKIAogVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYkRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxl
ci5jcHAKIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVJlY29yZC5jcHAKQEAgLTYy
MSwxMCArNjIwLDYgQEAgVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLmNwcAogCiBVSVByb2Nlc3MvWFIvUGxhdGZvcm1YUlN5c3RlbS5jcHAKIAotV2Vi
QXV0aG5Qcm9jZXNzL1dlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKLVdlYkF1dGhu
UHJvY2Vzcy9XZWJBdXRoblByb2Nlc3MuY3BwCi1XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Qcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAotCiBXZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJ
UHJvY2Vzcy5jcHAKIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKIFdlYlByb2Nlc3MvV2ViU2xl
ZXBEaXNhYmxlckNsaWVudC5jcHAKQEAgLTgwNiw3ICs4MDEsNiBAQCBXZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU2hhcmVkV29ya2VyUHJvdmlkZXIuY3BwCiBXZWJQcm9jZXNzL1VzZXJDb250ZW50L1dl
YlVzZXJDb250ZW50Q29udHJvbGxlci5jcHAKIAogV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCi1XZWJQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCiAKIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4
IDM4YWQzMWY3MWEzZWQ2MmU5MzA1MzQ4ZTUwN2YwMWRiODE1M2UyMDYuLjMxODhiNmIwODdhMjdi
ZjJiOGU3MDc2YmMzMWNiNTVkYTMyMzY3MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291
cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTYw
NywxMCArNjA3LDYgQEAgVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja05mY1Nl
cnZpY2UubW0KIAogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVD
b2NvYS5tbQogCi1XZWJBdXRoblByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dl
YkF1dGhuU2VydmljZUVudHJ5UG9pbnQubW0KLVdlYkF1dGhuUHJvY2Vzcy9pb3MvV2ViQXV0aG5Q
cm9jZXNzSU9TLm1tCi1XZWJBdXRoblByb2Nlc3MvbWFjL1dlYkF1dGhuUHJvY2Vzc01hYy5tbQot
CiBXZWJQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3MuY3BwCiAKIFdlYlByb2Nlc3MvQXBw
bGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAppbmRleCA3ZjU0OGQ0Y2FkOGQ2ZTVhNTFkODk1
ZWRjODgyZGIxMWRjZDhlZjA4Li4wNTAzNzU0NzIzMWM3NDYwMDkxYjdhZjNlMDA0Zjg5MWIzMGJl
MDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVu
Y2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2Vz
LmNwcApAQCAtODA0LDE2ICs4MDQsNiBAQCBib29sIFdLUHJlZmVyZW5jZXNHZXRXZWJBdXRoZW50
aWNhdGlvbkVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKICAgICByZXR1
cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+d2ViQXV0aGVudGljYXRpb25FbmFibGVkKCk7CiB9
CiAKLXZvaWQgV0tQcmVmZXJlbmNlc1NldFdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZChX
S1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpCi17Ci0gICAgdG9JbXBs
KHByZWZlcmVuY2VzUmVmKS0+c2V0V2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkKGZsYWcp
OwotfQotCi1ib29sIFdLUHJlZmVyZW5jZXNHZXRXZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJs
ZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKLXsKLSAgICByZXR1cm4gdG9JbXBs
KHByZWZlcmVuY2VzUmVmKS0+d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkKCk7Ci19Ci0K
IHZvaWQgV0tQcmVmZXJlbmNlc1NldEludmlzaWJsZU1lZGlhQXV0b3BsYXlQZXJtaXR0ZWQoV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFnKQogewogICAgIHRvSW1wbChw
cmVmZXJlbmNlc1JlZiktPnNldEludmlzaWJsZUF1dG9wbGF5Tm90UGVybWl0dGVkKCFmbGFnKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNS
ZWZQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2Vz
UmVmUHJpdmF0ZS5oCmluZGV4IGZjZWNkMDdkY2EwYzY5NDQ4MzJhNTMxZWQzZWFhZTFmZTcyNGU4
NzYuLmZmYjg3YjY5ZmU5MDQ0MmNlZDU1YzhkMGMwYmQ0NTMyY2FiNTgxOTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZh
dGUuaApAQCAtNDgyLDEwICs0ODIsNiBAQCBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0
RXhwb3NlU3BlYWtlcnNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYpOwogV0tfRVhQT1JUIHZvaWQg
V0tQcmVmZXJlbmNlc1NldFdlYkF1dGhlbnRpY2F0aW9uRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVm
LCBib29sIGZsYWcpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldFdlYkF1dGhlbnRp
Y2F0aW9uRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmKTsKIAotLy8gRGVmYXVsdHMgdG8gZmFsc2UK
LVdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRXZWJBdXRoZW50aWNhdGlvbk1vZGVybkVu
YWJsZWQoV0tQcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFnKTsKLVdLX0VYUE9SVCBib29sIFdLUHJl
ZmVyZW5jZXNHZXRXZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQoV0tQcmVmZXJlbmNlc1Jl
Zik7Ci0KIC8vIERlZmF1bHRzIHRvIHRydWUuCiBXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2Vz
U2V0SW52aXNpYmxlTWVkaWFBdXRvcGxheVBlcm1pdHRlZChXS1ByZWZlcmVuY2VzUmVmLCBib29s
IGZsYWcpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldEludmlzaWJsZU1lZGlhQXV0
b3BsYXlQZXJtaXR0ZWQoV0tQcmVmZXJlbmNlc1JlZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCmluZGV4IDY1OGRjZjA3MWE4NTBh
YWY0NDIzNGMyZTBjMmU0YjQxNjNmMjc3OWUuLmYzZjgzY2M1NjllYzM4ZDA3YmFlYzllZGI0ZWE4
MzAzNWRiZWY4MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1Byb2Nlc3NQb29sLm1tCkBAIC0zOCw3ICszOCw2IEBACiAjaW1wb3J0ICJXS09iamVjdC5o
IgogI2ltcG9ydCAiV0tXZWJWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgIldLV2Vic2l0ZURhdGFT
dG9yZUludGVybmFsLmgiCi0jaW1wb3J0ICJXZWJBdXRoblByb2Nlc3NQcm94eS5oIgogI2ltcG9y
dCAiV2ViQmFja0ZvcndhcmRDYWNoZS5oIgogI2ltcG9ydCAiV2ViQ2VydGlmaWNhdGVJbmZvLmgi
CiAjaW1wb3J0ICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKQEAgLTE5OCwxNSArMTk3LDYgQEAg
c3RhdGljIFJldGFpblB0cjxXS1Byb2Nlc3NQb29sPiYgc2hhcmVkUHJvY2Vzc1Bvb2woKQogICAg
IHJldHVybiBbdXJsIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIldlYnNpdGVEYXRhIiBp
c0RpcmVjdG9yeTpZRVNdOwogfQogCi0rIChwaWRfdClfd2ViQXV0aG5Qcm9jZXNzSWRlbnRpZmll
cgotewotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0gICAgcmV0dXJuIFdlYktpdDo6V2ViQXV0aG5Q
cm9jZXNzUHJveHk6OnNpbmdsZXRvbigpLnByb2Nlc3NJZGVudGlmaWVyKCk7Ci0jZWxzZQotICAg
IHJldHVybiAwOwotI2VuZGlmCi19Ci0KIC0gKHZvaWQpX3NldEFsbG93c1NwZWNpZmljSFRUUFND
ZXJ0aWZpY2F0ZTooTlNBcnJheSAqKWNlcnRpZmljYXRlQ2hhaW4gZm9ySG9zdDooTlNTdHJpbmcg
Kilob3N0CiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCmluZGV4IDBjYjFiZTIzODczMmQyMWM2NDkwZGE2
MTJiNWFmMzljMzE1NDAwNTAuLmZhNjIxYjkxODEzYzFjNjBhYTM0YzdjYzhjYWM3ZjBkZmVmMzU4
YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nl
c3NQb29sUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1Byb2Nlc3NQb29sUHJpdmF0ZS5oCkBAIC03Miw3ICs3Miw2IEBACiAKICsgKE5TVVJMICopX3dl
YnNpdGVEYXRhVVJMRm9yQ29udGFpbmVyV2l0aFVSTDooTlNVUkwgKiljb250YWluZXJVUkw7CiAr
IChOU1VSTCAqKV93ZWJzaXRlRGF0YVVSTEZvckNvbnRhaW5lcldpdGhVUkw6KE5TVVJMICopY29u
dGFpbmVyVVJMIGJ1bmRsZUlkZW50aWZpZXJJZk5vdEluQ29udGFpbmVyOihOU1N0cmluZyAqKWJ1
bmRsZUlkZW50aWZpZXI7Ci0rIChwaWRfdClfd2ViQXV0aG5Qcm9jZXNzSWRlbnRpZmllciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiArICh2
b2lkKV9zZXRXZWJQcm9jZXNzQ291bnRMaW1pdDoodW5zaWduZWQpbGltaXQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nlc3NQcm94eS5jcHAKaW5kZXggN2FmMTFm
YjdmZmJlYTg2MjhkMTVkODYwYjM1YmU0OTZiMmEwYTg3My4uODBkYWQyY2Y1MDQ4YWVkODVkZWUy
ODRhMjVmMDYyZGYxZDkwZDU5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
dXhpbGlhcnlQcm9jZXNzUHJveHkuY3BwCkBAIC04NiwxMSArODYsNiBAQCB2b2lkIEF1eGlsaWFy
eVByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9w
dGlvbnMmIGxhdQogICAgICAgICB2YXJuYW1lID0gIkdQVV9QUk9DRVNTX0NNRF9QUkVGSVgiOwog
ICAgICAgICBicmVhazsKICNlbmRpZgotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0gICAgY2FzZSBQ
cm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpXZWJBdXRobjoKLSAgICAgICAgdmFybmFtZSA9
ICJXRUJBVVRITl9QUk9DRVNTX0NNRF9QUkVGSVgiOwotICAgICAgICBicmVhazsKLSNlbmRpZgog
I2lmIEVOQUJMRShCVUJCTEVXUkFQX1NBTkRCT1gpCiAgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6
OlByb2Nlc3NUeXBlOjpEQnVzUHJveHk6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xD
b2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29j
b2EubW0KaW5kZXggMTc2MzQ5ZWI2NzA4ZTJiN2ZiZDc1NWI5MzgxNjk1ZDkwMjViMzhiMy4uMjk0
MjY1NmFlNWM4MjQxZTNkYTViNmY1ZjY1MmQ4NGM3MzcxYjQ3YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC00Miw4
ICs0Miw2IEBACiAjaW1wb3J0ICJUZXh0Q2hlY2tlci5oIgogI2ltcG9ydCAiVXNlckludGVyZmFj
ZUlkaW9tLmgiCiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJJbnRlcm5hbC5o
IgotI2ltcG9ydCAiV2ViQXV0aG5Qcm9jZXNzTWVzc2FnZXMuaCIKLSNpbXBvcnQgIldlYkF1dGhu
UHJvY2Vzc1Byb3h5LmgiCiAjaW1wb3J0ICJXZWJCYWNrRm9yd2FyZENhY2hlLmgiCiAjaW1wb3J0
ICJXZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCIKICNpbXBvcnQgIldlYlBhZ2VHcm91cC5oIgpA
QCAtMTExMiwxMSArMTExMCw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6Om5vdGlmeVByZWZlcmVu
Y2VzQ2hhbmdlZChjb25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nCiAgICAgICAgIGlm
IChhdXRvKiBuZXR3b3JrUHJvY2VzcyA9IGRhdGFTdG9yZS5uZXR3b3JrUHJvY2Vzc0lmRXhpc3Rz
KCkpCiAgICAgICAgICAgICBuZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3M6Ok5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChkb21haW4sIGtleSwgZW5jb2RlZFZhbHVl
KSwgMCk7CiAgICAgfSk7Ci0gICAgCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLSAgICBpZiAoYXV0
byB3ZWJBdXRoblByb2Nlc3MgPSBXZWJBdXRoblByb2Nlc3NQcm94eTo6c2luZ2xldG9uSWZDcmVh
dGVkKCkpCi0gICAgICAgIHdlYkF1dGhuUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViQXV0aG5Q
cm9jZXNzOjpOb3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoZG9tYWluLCBrZXksIGVuY29kZWRWYWx1
ZSksIDApOwotI2VuZGlmCiAKICAgICBpZiAoa2V5ID09IFdLQ2FwdGl2ZVBvcnRhbE1vZGVFbmFi
bGVkS2V5KQogICAgICAgICBjYXB0aXZlUG9ydGFsTW9kZVN0YXRlQ2hhbmdlZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAppbmRl
eCBkMTI1ODdlOGZlMzZlYWExY2ZlZDc5MjZjMGM4ZjM4Nzg3ZTI3MjZlLi4wNDEyOTgzNThlMjRi
NmM1MDcwMGQxNDZjOTIyOWM3Y2QwY2Y5NDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaApAQCAtNzQsOSArNzQsNiBAQCBwdWJs
aWM6CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgICAgICBHUFUsCiAjZW5kaWYKLSNpZiBF
TkFCTEUoV0VCX0FVVEhOKQotICAgICAgICBXZWJBdXRobiwKLSNlbmRpZgogI2lmIEVOQUJMRShC
VUJCTEVXUkFQX1NBTkRCT1gpCiAgICAgICAgIERCdXNQcm94eSwKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvY29jb2EvUHJvY2Vzc0xhdW5jaGVy
Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9jb2NvYS9Qcm9jZXNz
TGF1bmNoZXJDb2NvYS5tbQppbmRleCA5NzJkZTYzYzEzMTNjOTBlNGE4ZDFlODU4OWJlZTZiYjIy
MzIzYTg3Li5iNWEyNDViOWU1MTMzNmIyZjIzNTE4NTdiMTJiOTNjOTk5NGRhYTg2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9jb2NvYS9Qcm9jZXNzTGF1bmNo
ZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9jb2NvYS9Q
cm9jZXNzTGF1bmNoZXJDb2NvYS5tbQpAQCAtNzIsMTAgKzcyLDYgQEAgc3RhdGljIGNvbnN0IGNo
YXIqIHNlcnZpY2VOYW1lKGNvbnN0IFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1
bmNoT3B0aW8KICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgY2FzZSBQcm9jZXNzTGF1bmNo
ZXI6OlByb2Nlc3NUeXBlOjpHUFU6CiAgICAgICAgIHJldHVybiAiY29tLmFwcGxlLldlYktpdC5H
UFUiOwotI2VuZGlmCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLSAgICBjYXNlIFByb2Nlc3NMYXVu
Y2hlcjo6UHJvY2Vzc1R5cGU6OldlYkF1dGhuOgotICAgICAgICByZXR1cm4gImNvbS5hcHBsZS5X
ZWJLaXQuV2ViQXV0aG4iOwogI2VuZGlmCiAgICAgfQogfQpAQCAtODgsMTQgKzg0LDEwIEBAIHN0
YXRpYyBib29sIHNob3VsZExlYWtCb29zdChjb25zdCBQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9w
dGlvbnMmIGxhdW5jaE9wdGlvbnMpCiAgICAgLy8gcmlnaHQgcHJpb3JpdGllcy4KICAgICByZXR1
cm4gZmFsc2U7CiAjZWxzZQotICAgIC8vIE9uIE1hYywgbGVhayBhIGJvb3N0IG9udG8gdGhlIE5l
dHdvcmtQcm9jZXNzLCBHUFVQcm9jZXNzLCBhbmQgV2ViQXV0aG5Qcm9jZXNzLgorICAgIC8vIE9u
IE1hYywgbGVhayBhIGJvb3N0IG9udG8gdGhlIE5ldHdvcmtQcm9jZXNzIGFuZCBHUFVQcm9jZXNz
LgogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBpZiAobGF1bmNoT3B0aW9ucy5wcm9jZXNz
VHlwZSA9PSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpHUFUpCiAgICAgICAgIHJldHVy
biB0cnVlOwotI2VuZGlmCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLSAgICBpZiAobGF1bmNoT3B0
aW9ucy5wcm9jZXNzVHlwZSA9PSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpXZWJBdXRo
bikKLSAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKICAgICByZXR1cm4gbGF1bmNoT3B0aW9u
cy5wcm9jZXNzVHlwZSA9PSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpOZXR3b3JrOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdG9yLmgKaW5kZXggNWNmOWFmNTcwOGU4YzFiMWYxN2JjNGRkY2Ey
MmVmYzk0Y2MzNGFhYi4uYTUyMWQwMTE5NmY1MGJiNTYyODA3MDcwOGVmMGFhNjA3MTM0ZTNjMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0
aGVudGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0b3IuaApAQCAtNjgsMTQgKzY4LDExIEBAIHB1YmxpYzoKICAgICAvLyBU
aGlzIG9wZXJhdGlvbiBpcyBndWFyYW50ZWVkIHRvIGV4ZWN1dGUgYXN5bmNocm9ub3VzbHkuCiAg
ICAgdm9pZCBoYW5kbGVSZXF1ZXN0KGNvbnN0IFdlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEm
KTsKIAotICAgIHZvaWQgc2V0V2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkKGJvb2wgd2Vi
QXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkKSB7IG1fd2ViQXV0aGVudGljYXRpb25Nb2Rlcm5F
bmFibGVkID0gd2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkOyB9Ci0KIHByb3RlY3RlZDoK
ICAgICBBdXRoZW50aWNhdG9yKCkgPSBkZWZhdWx0OwogCiAgICAgT2JzZXJ2ZXIqIG9ic2VydmVy
KCkgY29uc3QgeyByZXR1cm4gbV9vYnNlcnZlci5nZXQoKTsgfQogICAgIGNvbnN0IFdlYkF1dGhl
bnRpY2F0aW9uUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhKCkgY29uc3QgeyByZXR1cm4gbV9wZW5k
aW5nUmVxdWVzdERhdGE7IH0KLSAgICBib29sIHdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkOyB9CiAK
ICAgICB2b2lkIHJlY2VpdmVSZXNwb25kKFJlc3BvbmQmJikgY29uc3Q7CiAKQEAgLTg1LDcgKzgy
LDYgQEAgcHJpdmF0ZToKIAogICAgIFdlYWtQdHI8T2JzZXJ2ZXI+IG1fb2JzZXJ2ZXI7CiAgICAg
V2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YSBtX3BlbmRpbmdSZXF1ZXN0RGF0YTsKLSAgICBi
b29sIG1fd2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkIHsgZmFsc2UgfTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwCmlu
ZGV4IGUzZTRmMzIxYTEwN2U4M2U4YmQ5ZTg2OGYxODI1MTI5NGFhY2I2NjguLmIzMTY3Mzc0ZjVm
NGU4ZGE0YTdkZDQ2MGJhMDQ0N2QwMTk2NGFhN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9y
TWFuYWdlci5jcHAKQEAgLTIzNCwxMSArMjM0LDYgQEAgdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdl
cjo6Y2FuY2VsKCkKICAgICBjYW5jZWxSZXF1ZXN0KCk7CiB9CiAKLXZvaWQgQXV0aGVudGljYXRv
ck1hbmFnZXI6OmVuYWJsZU1vZGVybldlYkF1dGhlbnRpY2F0aW9uKCkKLXsKLSAgICBtX21vZGUg
PSBNb2RlOjpNb2Rlcm47Ci19Ci0KIHZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OmVuYWJsZU5h
dGl2ZVN1cHBvcnQoKQogewogICAgIG1fbW9kZSA9IE1vZGU6Ok5hdGl2ZTsKQEAgLTI2OCw3ICsy
NjMsNiBAQCB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjphdXRoZW50aWNhdG9yQWRkZWQoUmVm
PEF1dGhlbnRpY2F0b3I+JiYgYXV0aGVudGljYXRvcgogICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7CiAgICAgYXV0aGVudGljYXRvci0+c2V0T2JzZXJ2ZXIoKnRoaXMpOwogICAgIGF1dGhl
bnRpY2F0b3ItPmhhbmRsZVJlcXVlc3QobV9wZW5kaW5nUmVxdWVzdERhdGEpOwotICAgIGF1dGhl
bnRpY2F0b3ItPnNldFdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZChtX21vZGUgIT0gTW9k
ZTo6Q29tcGF0aWJsZSk7CiAgICAgYXV0byBhZGRSZXN1bHQgPSBtX2F1dGhlbnRpY2F0b3JzLmFk
ZChXVEZNb3ZlKGF1dGhlbnRpY2F0b3IpKTsKICAgICBBU1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwg
YWRkUmVzdWx0LmlzTmV3RW50cnkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgK
aW5kZXggNTllMmExZjdhNWEwMTg0ZmQwNDllYTk2MjdkMzUzYzQ2Mjg1YmY5Mi4uN2NkMWIyY2M5
MDlhMzE2NzY3NDcwM2VhMmMzZTNlM2MxYzIwZjUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9y
TWFuYWdlci5oCkBAIC03MSw3ICs3MSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNN
b2NrKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNWaXJ0dWFs
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZvaWQgZW5hYmxlTW9kZXJuV2ViQXV0
aGVudGljYXRpb24oKTsKICAgICB2b2lkIGVuYWJsZU5hdGl2ZVN1cHBvcnQoKTsKIAogcHJvdGVj
dGVkOgpAQCAtODksNyArODgsNiBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIGVudW0gY2xh
c3MgTW9kZSB7CiAgICAgICAgIENvbXBhdGlibGUsCi0gICAgICAgIE1vZGVybiwKICAgICAgICAg
TmF0aXZlLAogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLmgK
aW5kZXggYjY2MWY1YWYyNTRiNTc5ZTFkODRjNWUwZDFjODFmMDVjYjY3YzQyZC4uZmY3NzcyNmM5
NTc1OGQwYTJhNzdmNDIzZDhlMGI2ZTk4Mjk2OGQ1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9j
YWxBdXRoZW50aWNhdG9yLmgKQEAgLTYwLDcgKzYwLDYgQEAgcHJpdmF0ZToKICAgICBleHBsaWNp
dCBMb2NhbEF1dGhlbnRpY2F0b3IoVW5pcXVlUmVmPExvY2FsQ29ubmVjdGlvbj4mJik7CiAKICAg
ICB2b2lkIG1ha2VDcmVkZW50aWFsKCkgZmluYWw7Ci0gICAgdm9pZCBjb250aW51ZU1ha2VDcmVk
ZW50aWFsQWZ0ZXJEZWNpZGVQb2xpY3koTG9jYWxBdXRoZW50aWNhdG9yUG9saWN5KTsKICAgICB2
b2lkIGNvbnRpbnVlTWFrZUNyZWRlbnRpYWxBZnRlclJlY2VpdmluZ0xBQ29udGV4dChMQUNvbnRl
eHQgKik7CiAgICAgdm9pZCBjb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0ZXJVc2VyVmVyaWZpY2F0
aW9uKFNlY0FjY2Vzc0NvbnRyb2xSZWYsIExvY2FsQ29ubmVjdGlvbjo6VXNlclZlcmlmaWNhdGlv
biwgTEFDb250ZXh0ICopOwogICAgIHZvaWQgY29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyQXR0
ZXN0ZWQoVmVjdG9yPHVpbnQ4X3Q+JiYgY3JlZGVudGlhbElkLCBWZWN0b3I8dWludDhfdD4mJiBh
dXRoRGF0YSwgTlNBcnJheSAqY2VydGlmaWNhdGVzLCBOU0Vycm9yICopOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRo
ZW50aWNhdG9yLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
Q29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tCmluZGV4IGVlZTZiODc5MTIxODU1MTg1MGVkZWJi
ZjVhMjU5MmZiNDM2MGIwMzcuLjg1NDg5NzhlMjU5MDc4YmY3ODYwYzNmZTVmZWIwM2MxYmVmNzE2
ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KQEAgLTI1NCw3
ICsyNTQsNyBAQCB2b2lkIExvY2FsQXV0aGVudGljYXRvcjo6bWFrZUNyZWRlbnRpYWwoKQogICAg
ICAgICB9KSkgewogICAgICAgICAgICAgLy8gT2J0YWluIGNvbnNlbnQgcGVyIFN0ZXAgMy4xCiAg
ICAgICAgICAgICBhdXRvIGNhbGxiYWNrID0gW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1d
IChMb2NhbEF1dGhlbnRpY2F0b3JQb2xpY3kgcG9saWN5KSB7Ci0gICAgICAgICAgICAgICAgQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChS
dW5Mb29wOjppc01haW4oKSk7CiAgICAgICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0yNjQsNzUgKzI2NCwyMSBAQCB2b2lkIExvY2Fs
QXV0aGVudGljYXRvcjo6bWFrZUNyZWRlbnRpYWwoKQogICAgICAgICAgICAgICAgICAgICB3ZWFr
VGhpcy0+cmVjZWl2ZUV4Y2VwdGlvbih7IE5vdEFsbG93ZWRFcnJvciwgIlRoaXMgcmVxdWVzdCBo
YXMgYmVlbiBjYW5jZWxsZWQgYnkgdGhlIHVzZXIuIl9zIH0pOwogICAgICAgICAgICAgfTsKICAg
ICAgICAgICAgIC8vIFNpbWlsYXIgdG8gYmVsb3csIGNvbnNlbnQgaGFzIGFscmVhZHkgYmVlbiBn
aXZlbi4KLSAgICAgICAgICAgIGlmICh3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQoKSkK
LSAgICAgICAgICAgICAgICBjYWxsYmFjayhMb2NhbEF1dGhlbnRpY2F0b3JQb2xpY3k6OkFsbG93
KTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBvYnNlcnZlcigpLT5kZWNpZGVQ
b2xpY3lGb3JMb2NhbEF1dGhlbnRpY2F0b3IoV1RGTW92ZShjYWxsYmFjaykpOworICAgICAgICAg
ICAgb2JzZXJ2ZXIoKS0+ZGVjaWRlUG9saWN5Rm9yTG9jYWxBdXRoZW50aWNhdG9yKFdURk1vdmUo
Y2FsbGJhY2spKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KIAotICAg
IC8vIFN0ZXAgNi4KLSAgICAvLyBHZXQgdXNlciBjb25zZW50LgotICAgIGlmICh3ZWJBdXRoZW50
aWNhdGlvbk1vZGVybkVuYWJsZWQoKSkgewotICAgICAgICBpZiAoYXV0byogb2JzZXJ2ZXIgPSB0
aGlzLT5vYnNlcnZlcigpKSB7Ci0gICAgICAgICAgICBhdXRvIGNhbGxiYWNrID0gW3dlYWtUaGlz
ID0gV2Vha1B0ciB7ICp0aGlzIH1dIChMQUNvbnRleHQgKmNvbnRleHQpIHsKLSAgICAgICAgICAg
ICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgICAgICAgICAgICAgIGlmICghd2Vh
a1RoaXMpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgICAgIHdl
YWtUaGlzLT5jb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0ZXJSZWNlaXZpbmdMQUNvbnRleHQoY29u
dGV4dCk7Ci0gICAgICAgICAgICB9OwotICAgICAgICAgICAgb2JzZXJ2ZXItPnJlcXVlc3RMQUNv
bnRleHRGb3JVc2VyVmVyaWZpY2F0aW9uKFdURk1vdmUoY2FsbGJhY2spKTsKLSAgICAgICAgfQot
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBpZiAoYXV0byogb2JzZXJ2ZXIgPSB0aGlz
LT5vYnNlcnZlcigpKSB7Ci0gICAgICAgIGF1dG8gY2FsbGJhY2sgPSBbd2Vha1RoaXMgPSBXZWFr
UHRyIHsgKnRoaXMgfV0gKExvY2FsQXV0aGVudGljYXRvclBvbGljeSBwb2xpY3kpIHsKKyAgICAg
ICAgYXV0byBjYWxsYmFjayA9IFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSAoTEFDb250
ZXh0ICpjb250ZXh0KSB7CiAgICAgICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwog
ICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAg
ICAgICAgICAgIHdlYWtUaGlzLT5jb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0ZXJEZWNpZGVQb2xp
Y3kocG9saWN5KTsKKyAgICAgICAgICAgIHdlYWtUaGlzLT5jb250aW51ZU1ha2VDcmVkZW50aWFs
QWZ0ZXJSZWNlaXZpbmdMQUNvbnRleHQoY29udGV4dCk7CiAgICAgICAgIH07Ci0gICAgICAgIG9i
c2VydmVyLT5kZWNpZGVQb2xpY3lGb3JMb2NhbEF1dGhlbnRpY2F0b3IoV1RGTW92ZShjYWxsYmFj
aykpOwotICAgIH0KLX0KLQotdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlTWFrZUNy
ZWRlbnRpYWxBZnRlckRlY2lkZVBvbGljeShMb2NhbEF1dGhlbnRpY2F0b3JQb2xpY3kgcG9saWN5
KQotewotICAgIEFTU0VSVChtX3N0YXRlID09IFN0YXRlOjpSZXF1ZXN0UmVjZWl2ZWQpOwotICAg
IG1fc3RhdGUgPSBTdGF0ZTo6UG9saWN5RGVjaWRlZDsKLQotICAgIGF1dG8mIGNyZWF0aW9uT3B0
aW9ucyA9IHN0ZDo6Z2V0PFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM+KHJlcXVl
c3REYXRhKCkub3B0aW9ucyk7Ci0KLSAgICBpZiAocG9saWN5ID09IExvY2FsQXV0aGVudGljYXRv
clBvbGljeTo6RGlzYWxsb3cpIHsKLSAgICAgICAgcmVjZWl2ZVJlc3BvbmQoRXhjZXB0aW9uRGF0
YSB7IFVua25vd25FcnJvciwgIkRpc2FsbG93IGxvY2FsIGF1dGhlbnRpY2F0b3IuIl9zIH0pOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgUmV0YWluUHRyPFNlY0FjY2Vzc0NvbnRyb2xS
ZWY+IGFjY2Vzc0NvbnRyb2w7Ci0gICAgewotICAgICAgICBDRkVycm9yUmVmIGVycm9yUmVmID0g
bnVsbHB0cjsKLSAgICAgICAgYWNjZXNzQ29udHJvbCA9IGFkb3B0Q0YoU2VjQWNjZXNzQ29udHJv
bENyZWF0ZVdpdGhGbGFncyhOVUxMLCBrU2VjQXR0ckFjY2Vzc2libGVXaGVuUGFzc2NvZGVTZXRU
aGlzRGV2aWNlT25seSwga1NlY0FjY2Vzc0NvbnRyb2xQcml2YXRlS2V5VXNhZ2UgfCBrU2VjQWNj
ZXNzQ29udHJvbFVzZXJQcmVzZW5jZSwgJmVycm9yUmVmKSk7Ci0gICAgICAgIGF1dG8gcmV0YWlu
RXJyb3IgPSBhZG9wdENGKGVycm9yUmVmKTsKLSAgICAgICAgaWYgKGVycm9yUmVmKSB7Ci0gICAg
ICAgICAgICByZWNlaXZlRXhjZXB0aW9uKHsgVW5rbm93bkVycm9yLCBtYWtlU3RyaW5nKCJDb3Vs
ZG4ndCBjcmVhdGUgYWNjZXNzIGNvbnRyb2w6ICIsIFN0cmluZygoKE5TRXJyb3IqKWVycm9yUmVm
KS5sb2NhbGl6ZWREZXNjcmlwdGlvbikpIH0pOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB9CisgICAgICAgIG9ic2VydmVyLT5yZXF1ZXN0TEFDb250ZXh0Rm9yVXNlclZlcmlmaWNhdGlv
bihXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgfQotCi0gICAgU2VjQWNjZXNzQ29udHJvbFJlZiBh
Y2Nlc3NDb250cm9sUmVmID0gYWNjZXNzQ29udHJvbC5nZXQoKTsKLSAgICBhdXRvIGNhbGxiYWNr
ID0gW2FjY2Vzc0NvbnRyb2wgPSBXVEZNb3ZlKGFjY2Vzc0NvbnRyb2wpLCB3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9XSAoTG9jYWxDb25uZWN0aW9uOjpVc2VyVmVyaWZpY2F0aW9uIHZlcmlm
aWNhdGlvbiwgTEFDb250ZXh0ICpjb250ZXh0KSB7Ci0gICAgICAgIEFTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7Ci0gICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICByZXR1cm47Ci0K
LSAgICAgICAgd2Vha1RoaXMtPmNvbnRpbnVlTWFrZUNyZWRlbnRpYWxBZnRlclVzZXJWZXJpZmlj
YXRpb24oYWNjZXNzQ29udHJvbC5nZXQoKSwgdmVyaWZpY2F0aW9uLCBjb250ZXh0KTsKLSAgICB9
OwotICAgIG1fY29ubmVjdGlvbi0+dmVyaWZ5VXNlcihjcmVhdGlvbk9wdGlvbnMucnAuaWQsIGdl
dENsaWVudERhdGFUeXBlKHJlcXVlc3REYXRhKCkub3B0aW9ucyksIGFjY2Vzc0NvbnRyb2xSZWYs
IGdldFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudChyZXF1ZXN0RGF0YSgpLm9wdGlvbnMpLCBX
VEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51
ZU1ha2VDcmVkZW50aWFsQWZ0ZXJSZWNlaXZpbmdMQUNvbnRleHQoTEFDb250ZXh0ICpjb250ZXh0
KQpAQCAtNTc3LDM4ICs1MjMsMjAgQEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVl
R2V0QXNzZXJ0aW9uQWZ0ZXJSZXNwb25zZVNlbGVjdGVkKFJlZjxXZWJDb3JlOjoKICAgICBBU1NF
UlQobV9zdGF0ZSA9PSBTdGF0ZTo6UmVxdWVzdFJlY2VpdmVkKTsKICAgICBtX3N0YXRlID0gU3Rh
dGU6OlJlc3BvbnNlU2VsZWN0ZWQ7CiAKLSAgICBpZiAod2ViQXV0aGVudGljYXRpb25Nb2Rlcm5F
bmFibGVkKCkpIHsKLSAgICAgICAgYXV0byBhY2Nlc3NDb250cm9sUmVmID0gcmVzcG9uc2UtPmFj
Y2Vzc0NvbnRyb2woKTsKLSAgICAgICAgTEFDb250ZXh0ICpjb250ZXh0ID0gcmVzcG9uc2UtPmxh
Q29udGV4dCgpOwotICAgICAgICBhdXRvIGNhbGxiYWNrID0gWwotICAgICAgICAgICAgd2Vha1Ro
aXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwKLSAgICAgICAgICAgIHJlc3BvbnNlID0gV1RGTW92ZShy
ZXNwb25zZSkKLSAgICAgICAgXSAoTG9jYWxDb25uZWN0aW9uOjpVc2VyVmVyaWZpY2F0aW9uIHZl
cmlmaWNhdGlvbikgbXV0YWJsZSB7Ci0gICAgICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWlu
KCkpOwotICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgICAgICByZXR1cm47
Ci0KLSAgICAgICAgICAgIHdlYWtUaGlzLT5jb250aW51ZUdldEFzc2VydGlvbkFmdGVyVXNlclZl
cmlmaWNhdGlvbihXVEZNb3ZlKHJlc3BvbnNlKSwgdmVyaWZpY2F0aW9uLCByZXNwb25zZS0+bGFD
b250ZXh0KCkpOwotICAgICAgICB9OwotCi0gICAgICAgIG1fY29ubmVjdGlvbi0+dmVyaWZ5VXNl
cihhY2Nlc3NDb250cm9sUmVmLCBjb250ZXh0LCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICBhdXRvJiByZXF1ZXN0T3B0aW9ucyA9IHN0ZDo6Z2V0PFB1
YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucz4ocmVxdWVzdERhdGEoKS5vcHRpb25zKTsK
LQogICAgIGF1dG8gYWNjZXNzQ29udHJvbFJlZiA9IHJlc3BvbnNlLT5hY2Nlc3NDb250cm9sKCk7
CisgICAgTEFDb250ZXh0ICpjb250ZXh0ID0gcmVzcG9uc2UtPmxhQ29udGV4dCgpOwogICAgIGF1
dG8gY2FsbGJhY2sgPSBbCiAgICAgICAgIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sCiAg
ICAgICAgIHJlc3BvbnNlID0gV1RGTW92ZShyZXNwb25zZSkKLSAgICBdIChMb2NhbENvbm5lY3Rp
b246OlVzZXJWZXJpZmljYXRpb24gdmVyaWZpY2F0aW9uLCBMQUNvbnRleHQgKmNvbnRleHQpIG11
dGFibGUgeworICAgIF0gKExvY2FsQ29ubmVjdGlvbjo6VXNlclZlcmlmaWNhdGlvbiB2ZXJpZmlj
YXRpb24pIG11dGFibGUgewogICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAg
ICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHdlYWtU
aGlzLT5jb250aW51ZUdldEFzc2VydGlvbkFmdGVyVXNlclZlcmlmaWNhdGlvbihXVEZNb3ZlKHJl
c3BvbnNlKSwgdmVyaWZpY2F0aW9uLCBjb250ZXh0KTsKKyAgICAgICAgd2Vha1RoaXMtPmNvbnRp
bnVlR2V0QXNzZXJ0aW9uQWZ0ZXJVc2VyVmVyaWZpY2F0aW9uKFdURk1vdmUocmVzcG9uc2UpLCB2
ZXJpZmljYXRpb24sIHJlc3BvbnNlLT5sYUNvbnRleHQoKSk7CiAgICAgfTsKLSAgICBtX2Nvbm5l
Y3Rpb24tPnZlcmlmeVVzZXIocmVxdWVzdE9wdGlvbnMucnBJZCwgZ2V0Q2xpZW50RGF0YVR5cGUo
cmVxdWVzdERhdGEoKS5vcHRpb25zKSwgYWNjZXNzQ29udHJvbFJlZiwgZ2V0VXNlclZlcmlmaWNh
dGlvblJlcXVpcmVtZW50KHJlcXVlc3REYXRhKCkub3B0aW9ucyksIFdURk1vdmUoY2FsbGJhY2sp
KTsKKworICAgIG1fY29ubmVjdGlvbi0+dmVyaWZ5VXNlcihhY2Nlc3NDb250cm9sUmVmLCBjb250
ZXh0LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpj
b250aW51ZUdldEFzc2VydGlvbkFmdGVyVXNlclZlcmlmaWNhdGlvbihSZWY8V2ViQ29yZTo6QXV0
aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlPiYmIHJlc3BvbnNlLCBMb2NhbENvbm5lY3Rpb246
OlVzZXJWZXJpZmljYXRpb24gdmVyaWZpY2F0aW9uLCBMQUNvbnRleHQgKmNvbnRleHQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRo
blByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9XZWJBdXRoblByb2Nlc3NQcm94eS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGJhMGI0OGJiYTJlNzlmMzEwYTE5NzE0ZjRkZDk1YTY1Mzg1ZjNlYWUuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHkuY3BwCisrKyAvZGV2L251
bGwKQEAgLTEsMTk3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiV2ViQXV0aG5Qcm9jZXNzUHJveHkuaCIKLQotI2lmIEVOQUJMRShXRUJfQVVUSE4p
Ci0KLSNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAiV2ViQXV0aG5Qcm9jZXNzQ29ubmVj
dGlvbkluZm8uaCIKLSNpbmNsdWRlICJXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aCIKLSNpbmNsdWRlICJXZWJBdXRoblByb2Nlc3NNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYlBh
Z2VNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgotI2luY2x1ZGUgIldlYlBy
b2Nlc3NNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCi0jaW5jbHVkZSAi
V2ViUHJvY2Vzc1Byb3h5LmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIK
LSNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgotI2luY2x1ZGUg
PHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNp
bmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9YUENTUEkuaD4KLSNlbmRpZgotCi0jZGVmaW5lIE1FU1NB
R0VfQ0hFQ0soYXNzZXJ0aW9uKSBNRVNTQUdFX0NIRUNLX0JBU0UoYXNzZXJ0aW9uLCB0aGlzLT5j
b25uZWN0aW9uKCkpCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7Ci0KLXN0YXRpYyBSZWZQdHI8V2ViQXV0aG5Qcm9jZXNzUHJveHk+JiBzaGFyZWRQcm9jZXNz
KCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmVmUHRyPFdlYkF1dGhuUHJvY2Vzc1By
b3h5Pj4gcHJvY2VzczsKLSAgICByZXR1cm4gcHJvY2Vzcy5nZXQoKTsKLX0KLQotV2ViQXV0aG5Q
cm9jZXNzUHJveHkmIFdlYkF1dGhuUHJvY2Vzc1Byb3h5OjpzaW5nbGV0b24oKQotewotICAgIEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBhdXRvIGNyZWF0ZUFuZEluaXRpYWxpemVO
ZXdQcm9jZXNzID0gW10gewotICAgICAgICBhdXRvIHdlYkF1dGhuUHJvY2VzcyA9IGFkb3B0UmVm
KCpuZXcgV2ViQXV0aG5Qcm9jZXNzUHJveHkpOwotICAgICAgICBXZWJBdXRoblByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMgcGFyYW1ldGVyczsKLSAgICAgICAgcGFyYW1ldGVycy5hdXhpbGlhcnlQ
cm9jZXNzUGFyYW1ldGVycyA9IHdlYkF1dGhuUHJvY2Vzcy0+YXV4aWxpYXJ5UHJvY2Vzc1BhcmFt
ZXRlcnMoKTsKLSAgICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgV2ViQXV0aG4gcHJvY2Vzcy4KLSAg
ICAgICAgd2ViQXV0aG5Qcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRoblByb2Nlc3M6Oklu
aXRpYWxpemVXZWJBdXRoblByb2Nlc3MocGFyYW1ldGVycyksIDApOwotICAgICAgICB3ZWJBdXRo
blByb2Nlc3MtPnVwZGF0ZVByb2Nlc3NBc3NlcnRpb24oKTsKLSAgICAgICAgcmV0dXJuIHdlYkF1
dGhuUHJvY2VzczsKLSAgICB9OwotCi0gICAgaWYgKCFzaGFyZWRQcm9jZXNzKCkpCi0gICAgICAg
IHNoYXJlZFByb2Nlc3MoKSA9IGNyZWF0ZUFuZEluaXRpYWxpemVOZXdQcm9jZXNzKCk7Ci0gICAg
cmV0dXJuICpzaGFyZWRQcm9jZXNzKCk7Ci19Ci0KLVdlYkF1dGhuUHJvY2Vzc1Byb3h5KiBXZWJB
dXRoblByb2Nlc3NQcm94eTo6c2luZ2xldG9uSWZDcmVhdGVkKCkKLXsKLSAgICByZXR1cm4gc2hh
cmVkUHJvY2VzcygpLmdldCgpOwotfQotCi1XZWJBdXRoblByb2Nlc3NQcm94eTo6V2ViQXV0aG5Q
cm9jZXNzUHJveHkoKQotICAgIDogQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5KCkKLSAgICAsIG1fdGhy
b3R0bGVyKCp0aGlzLCBmYWxzZSkKLXsKLSAgICBjb25uZWN0KCk7Ci19Ci0KLVdlYkF1dGhuUHJv
Y2Vzc1Byb3h5Ojp+V2ViQXV0aG5Qcm9jZXNzUHJveHkoKSA9IGRlZmF1bHQ7Ci0KLXZvaWQgV2Vi
QXV0aG5Qcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVu
Y2hPcHRpb25zJiBsYXVuY2hPcHRpb25zKQotewotICAgIGxhdW5jaE9wdGlvbnMucHJvY2Vzc1R5
cGUgPSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpXZWJBdXRobjsKLSAgICBBdXhpbGlh
cnlQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMobGF1bmNoT3B0aW9ucyk7Ci19Ci0KLXZv
aWQgV2ViQXV0aG5Qcm9jZXNzUHJveHk6OmNvbm5lY3Rpb25XaWxsT3BlbihJUEM6OkNvbm5lY3Rp
b24mKQotewotfQotCi12b2lkIFdlYkF1dGhuUHJvY2Vzc1Byb3h5Ojpwcm9jZXNzV2lsbFNodXRE
b3duKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKLXsKLSAgICBBU1NFUlRfVU5VU0VEKGNv
bm5lY3Rpb24sIHRoaXMtPmNvbm5lY3Rpb24oKSA9PSAmY29ubmVjdGlvbik7Ci19Ci0KLXZvaWQg
V2ViQXV0aG5Qcm9jZXNzUHJveHk6OmdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJv
Y2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJveHksIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6Okdl
dFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQotewotICAg
IFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJBdXRoblByb2Nlc3NQcm94
eSBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIGEgd2ViIHByb2Nlc3Mg
aXMgcmVxdWVzdGluZyBhIGNvbm5lY3Rpb24iLCB0aGlzKTsKLSAgICBzZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OldlYkF1dGhuUHJvY2Vzczo6Q3JlYXRlV2ViQXV0aG5Db25uZWN0aW9uVG9X
ZWJQcm9jZXNzIHsgd2ViUHJvY2Vzc1Byb3h5LmNvcmVQcm9jZXNzSWRlbnRpZmllcigpIH0sIFt0
aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCByZXBseSA9IFdURk1vdmUocmVwbHkp
XShhdXRvJiYgaWRlbnRpZmllcikgbXV0YWJsZSB7Ci0gICAgICAgIGlmICghd2Vha1RoaXMpIHsK
LSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3MsICJXZWJBdXRoblByb2Nlc3NQ
cm94eTo6Z2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbjogV2ViQXV0aG5Qcm9jZXNzUHJveHkg
ZGVhbGxvY2F0ZWQgZHVyaW5nIGNvbm5lY3Rpb24gZXN0YWJsaXNobWVudCIpOwotICAgICAgICAg
ICAgcmV0dXJuIHJlcGx5KHsgfSk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIWlkZW50aWZp
ZXIpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3MsICJXZWJBdXRoblBy
b2Nlc3NQcm94eTo6Z2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbjogY29ubmVjdGlvbiBpZGVu
dGlmaWVyIGlzIGVtcHR5Iik7Ci0gICAgICAgICAgICByZXR1cm4gcmVwbHkoeyB9KTsKLSAgICAg
ICAgfQotCi0gICAgICAgIE1FU1NBR0VfQ0hFQ0soTUFDSF9QT1JUX1ZBTElEKGlkZW50aWZpZXIt
PnBvcnQoKSkpOwotICAgICAgICByZXBseShXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uSW5mbyB7
IElQQzo6QXR0YWNobWVudCB7IGlkZW50aWZpZXItPnBvcnQoKSwgTUFDSF9NU0dfVFlQRV9NT1ZF
X1NFTkQgfSB9KTsKLSAgICB9LCAwLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2
ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzUHJv
eHk6OndlYkF1dGhuUHJvY2Vzc0NyYXNoZWQoKQotewotICAgIHNoYXJlZFByb2Nlc3MoKSA9IG51
bGxwdHI7Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzUHJveHk6OmRpZENsb3NlKElQQzo6Q29u
bmVjdGlvbiYpCi17Ci0gICAgLy8gVGhpcyB3aWxsIGNhdXNlIHVzIHRvIGJlIGRlbGV0ZWQuCi0g
ICAgd2ViQXV0aG5Qcm9jZXNzQ3Jhc2hlZCgpOwotfQotCi12b2lkIFdlYkF1dGhuUHJvY2Vzc1By
b3h5OjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBJUEM6Ok1lc3NhZ2VOYW1lIG1lc3NhZ2VOYW1lKQotewotICAgIGxvZ0ludmFsaWRNZXNzYWdl
KGNvbm5lY3Rpb24sIG1lc3NhZ2VOYW1lKTsKLQotICAgIFdlYlByb2Nlc3NQb29sOjpkaWRSZWNl
aXZlSW52YWxpZE1lc3NhZ2UobWVzc2FnZU5hbWUpOwotCi0gICAgLy8gVGVybWluYXRlIHRoZSBX
ZWJBdXRobiBwcm9jZXNzLgotICAgIHRlcm1pbmF0ZSgpOwotCi0gICAgLy8gU2luY2Ugd2UndmUg
aW52YWxpZGF0ZWQgdGhlIGNvbm5lY3Rpb24gd2UnbGwgbmV2ZXIgZ2V0IGEgSVBDOjpDb25uZWN0
aW9uOjpDbGllbnQ6OmRpZENsb3NlCi0gICAgLy8gY2FsbGJhY2sgc28gd2UnbGwgZXhwbGljaXRs
eSBjYWxsIGl0IGhlcmUgaW5zdGVhZC4KLSAgICBkaWRDbG9zZShjb25uZWN0aW9uKTsKLX0KLQot
dm9pZCBXZWJBdXRoblByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVu
Y2hlciogbGF1bmNoZXIsIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRl
bnRpZmllcikKLXsKLSAgICBBdXhpbGlhcnlQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGlu
ZyhsYXVuY2hlciwgY29ubmVjdGlvbklkZW50aWZpZXIpOwotCi0gICAgaWYgKCFJUEM6OkNvbm5l
Y3Rpb246OmlkZW50aWZpZXJJc1ZhbGlkKGNvbm5lY3Rpb25JZGVudGlmaWVyKSkgewotICAgICAg
ICB3ZWJBdXRoblByb2Nlc3NDcmFzaGVkKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmICh4cGNfY29ubmVjdGlvbl90IGNvbm5lY3Rp
b24gPSB0aGlzLT5jb25uZWN0aW9uKCktPnhwY0Nvbm5lY3Rpb24oKSkKLSAgICAgICAgbV90aHJv
dHRsZXIuZGlkQ29ubmVjdFRvUHJvY2Vzcyh4cGNfY29ubmVjdGlvbl9nZXRfcGlkKGNvbm5lY3Rp
b24pKTsKLSNlbmRpZgotCi0gICAgYmVnaW5SZXNwb25zaXZlbmVzc0NoZWNrcygpOwotfQotCi12
b2lkIFdlYkF1dGhuUHJvY2Vzc1Byb3h5Ojp1cGRhdGVQcm9jZXNzQXNzZXJ0aW9uKCkKLXsKLSAg
ICBib29sIGhhc0FueUZvcmVncm91bmRXZWJQcm9jZXNzZXMgPSBmYWxzZTsKLSAgICBib29sIGhh
c0FueUJhY2tncm91bmRXZWJQcm9jZXNzZXMgPSBmYWxzZTsKLQotICAgIGZvciAoYXV0byYgcHJv
Y2Vzc1Bvb2wgOiBXZWJQcm9jZXNzUG9vbDo6YWxsUHJvY2Vzc1Bvb2xzKCkpIHsKLSAgICAgICAg
aGFzQW55Rm9yZWdyb3VuZFdlYlByb2Nlc3NlcyB8PSBwcm9jZXNzUG9vbC0+aGFzRm9yZWdyb3Vu
ZFdlYlByb2Nlc3NlcygpOwotICAgICAgICBoYXNBbnlCYWNrZ3JvdW5kV2ViUHJvY2Vzc2VzIHw9
IHByb2Nlc3NQb29sLT5oYXNCYWNrZ3JvdW5kV2ViUHJvY2Vzc2VzKCk7Ci0gICAgfQotCi0gICAg
aWYgKGhhc0FueUZvcmVncm91bmRXZWJQcm9jZXNzZXMpIHsKLSAgICAgICAgaWYgKCFQcm9jZXNz
VGhyb3R0bGVyOjppc1ZhbGlkRm9yZWdyb3VuZEFjdGl2aXR5KG1fYWN0aXZpdHlGcm9tV2ViUHJv
Y2Vzc2VzKSkgewotICAgICAgICAgICAgbV9hY3Rpdml0eUZyb21XZWJQcm9jZXNzZXMgPSB0aHJv
dHRsZXIoKS5mb3JlZ3JvdW5kQWN0aXZpdHkoIldlYkF1dGhuIGZvciBmb3JlZ3JvdW5kIHZpZXco
cykiX3MpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYgKGhhc0Fu
eUJhY2tncm91bmRXZWJQcm9jZXNzZXMpIHsKLSAgICAgICAgaWYgKCFQcm9jZXNzVGhyb3R0bGVy
Ojppc1ZhbGlkQmFja2dyb3VuZEFjdGl2aXR5KG1fYWN0aXZpdHlGcm9tV2ViUHJvY2Vzc2VzKSkg
ewotICAgICAgICAgICAgbV9hY3Rpdml0eUZyb21XZWJQcm9jZXNzZXMgPSB0aHJvdHRsZXIoKS5i
YWNrZ3JvdW5kQWN0aXZpdHkoIldlYkF1dGhuIGZvciBiYWNrZ3JvdW5kIHZpZXcocykiX3MpOwot
ICAgICAgICB9Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgbV9hY3Rpdml0eUZyb21XZWJQ
cm9jZXNzZXMgPSBudWxscHRyOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI3VuZGVm
IE1FU1NBR0VfQ0hFQ0sKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nl
c3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2Vi
QXV0aG5Qcm9jZXNzUHJveHkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTFiZjA0
NzE3YTY1MjBmZmE0YTY3ZTM3ODYwZGNhYmJmNjJlNTY1My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQcm94eS5oCisrKyAvZGV2L251bGwKQEAgLTEsOTAg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKFdFQl9BVVRI
TikKLQotI2luY2x1ZGUgIkF1eGlsaWFyeVByb2Nlc3NQcm94eS5oIgotI2luY2x1ZGUgIlByb2Nl
c3NMYXVuY2hlci5oIgotI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXIuaCIKLSNpbmNsdWRlICJQ
cm9jZXNzVGhyb3R0bGVyQ2xpZW50LmgiCi0jaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRpZmll
ci5oIgotI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzUmVwbGllcy5oIgotI2luY2x1
ZGUgPG1lbW9yeT4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYlByb2Nlc3NQcm94
eTsKLWNsYXNzIFdlYnNpdGVEYXRhU3RvcmU7Ci1zdHJ1Y3QgV2ViQXV0aG5Qcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzOwotCi1jbGFzcyBXZWJBdXRoblByb2Nlc3NQcm94eSBmaW5hbCA6IHB1Ymxp
YyBBdXhpbGlhcnlQcm9jZXNzUHJveHksIHByaXZhdGUgUHJvY2Vzc1Rocm90dGxlckNsaWVudCB7
Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
V2ViQXV0aG5Qcm9jZXNzUHJveHkpOwotICAgIGZyaWVuZCBMYXp5TmV2ZXJEZXN0cm95ZWQ8V2Vi
QXV0aG5Qcm9jZXNzUHJveHk+OwotcHVibGljOgotICAgIHN0YXRpYyBXZWJBdXRoblByb2Nlc3NQ
cm94eSYgc2luZ2xldG9uKCk7Ci0gICAgc3RhdGljIFdlYkF1dGhuUHJvY2Vzc1Byb3h5KiBzaW5n
bGV0b25JZkNyZWF0ZWQoKTsKLQotICAgIHZvaWQgZ2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlv
bihXZWJQcm9jZXNzUHJveHkmLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRXZWJBdXRo
blByb2Nlc3NDb25uZWN0aW9uRGVsYXllZFJlcGx5JiYpOwotCi0gICAgUHJvY2Vzc1Rocm90dGxl
ciYgdGhyb3R0bGVyKCkgZmluYWwgeyByZXR1cm4gbV90aHJvdHRsZXI7IH0KLSAgICB2b2lkIHVw
ZGF0ZVByb2Nlc3NBc3NlcnRpb24oKTsKLQotICAgIC8vIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQK
LSAgICB2b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1lKFJlc3VtZVJlYXNvbikgZmluYWwgeyB9Ci0g
ICAgQVNDSUlMaXRlcmFsIGNsaWVudE5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiV2ViQXV0
aG5Qcm9jZXNzIl9zOyB9Ci0KLXByaXZhdGU6Ci0gICAgZXhwbGljaXQgV2ViQXV0aG5Qcm9jZXNz
UHJveHkoKTsKLSAgICB+V2ViQXV0aG5Qcm9jZXNzUHJveHkoKTsKLQotICAgIC8vIEF1eGlsaWFy
eVByb2Nlc3NQcm94eQotICAgIEFTQ0lJTGl0ZXJhbCBwcm9jZXNzTmFtZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuICJXZWJBdXRobiJfczsgfQotCi0gICAgdm9pZCBnZXRMYXVuY2hPcHRpb25zKFBy
b2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYpIG92ZXJyaWRlOwotICAgIHZvaWQgY29ubmVj
dGlvbldpbGxPcGVuKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwotICAgIHZvaWQgcHJvY2Vz
c1dpbGxTaHV0RG93bihJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKLQotICAgIHZvaWQgd2Vi
QXV0aG5Qcm9jZXNzQ3Jhc2hlZCgpOwotCi0gICAgLy8gUHJvY2Vzc1Rocm90dGxlckNsaWVudAot
ICAgIHZvaWQgc2VuZFByZXBhcmVUb1N1c3BlbmQoSXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwgeyBjb21wbGV0
aW9uSGFuZGxlcigpOyB9Ci0KLSAgICAvLyBQcm9jZXNzTGF1bmNoZXI6OkNsaWVudAotICAgIHZv
aWQgZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciosIElQQzo6Q29ubmVjdGlvbjo6
SWRlbnRpZmllcikgb3ZlcnJpZGU7Ci0KLSAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAot
ICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBk
aWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlTmFt
ZSkgb3ZlcnJpZGU7Ci0KLSAgICBQcm9jZXNzVGhyb3R0bGVyIG1fdGhyb3R0bGVyOwotICAgIFBy
b2Nlc3NUaHJvdHRsZXI6OkFjdGl2aXR5VmFyaWFudCBtX2FjdGl2aXR5RnJvbVdlYlByb2Nlc3Nl
czsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQl9B
VVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCA0
NWUzNTZmMTY1YjA3ODdjNTFkMTY0YWRlYWYwYzgzZTk2MWZhN2JhLi5mNzhiZjM5ZmJlZDE3MWEy
ZDgzYzU2MTY2YjdmYTc0ODBmNDYzNjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwCkBAIC0xMTUsMTEgKzExNSw2IEBACiAjaW5jbHVkZSAiR1BVUHJvY2Vz
c1Byb3h5LmgiCiAjZW5kaWYKIAotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0jaW5jbHVkZSAiV2Vi
QXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkluZm8uaCIKLSNpbmNsdWRlICJXZWJBdXRoblByb2Nlc3NQ
cm94eS5oIgotI2VuZGlmCi0KICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9SZW1vdGVJbnNwZWN0b3IuaD4KICNlbmRpZgpAQCAtNTI4LDIwICs1
MjMsNiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpjcmVhdGVHUFVQcm9jZXNzQ29ubmVjdGlvbihX
ZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eQogfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUo
V0VCX0FVVEhOKQotdm9pZCBXZWJQcm9jZXNzUG9vbDo6Z2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVj
dGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSwgTWVzc2FnZXM6OldlYlByb2Nl
c3NQcm94eTo6R2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYgcmVw
bHkpCi17Ci0gICAgV2ViQXV0aG5Qcm9jZXNzUHJveHk6OnNpbmdsZXRvbigpLmdldFdlYkF1dGhu
UHJvY2Vzc0Nvbm5lY3Rpb24od2ViUHJvY2Vzc1Byb3h5LCBbdGhpcywgd2Vha1RoaXMgPSBXZWFr
UHRyIHsgKnRoaXMgfSwgd2ViUHJvY2Vzc1Byb3h5ID0gV2Vha1B0ciB7IHdlYlByb2Nlc3NQcm94
eSB9LCByZXBseSA9IFdURk1vdmUocmVwbHkpXSAoYXV0byYgY29ubmVjdGlvbkluZm8pIG11dGFi
bGUgewotICAgICAgICBpZiAoVU5MSUtFTFkoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklz
VmFsaWQoY29ubmVjdGlvbkluZm8uaWRlbnRpZmllcigpKSAmJiB3ZWJQcm9jZXNzUHJveHkgJiYg
d2Vha1RoaXMpKSB7Ci0gICAgICAgICAgICBXRUJQUk9DRVNTUE9PTF9SRUxFQVNFX0xPR19FUlJP
UihQcm9jZXNzLCAiZ2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbjogRmFpbGVkIGZpcnN0IGF0
dGVtcHQsIHJldHJ5aW5nIik7Ci0gICAgICAgICAgICBXZWJBdXRoblByb2Nlc3NQcm94eTo6c2lu
Z2xldG9uKCkuZ2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbigqd2ViUHJvY2Vzc1Byb3h5LCBX
VEZNb3ZlKHJlcGx5KSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAg
cmVwbHkoY29ubmVjdGlvbkluZm8pOwotICAgIH0pOwotfQotI2VuZGlmCi0KIGJvb2wgV2ViUHJv
Y2Vzc1Bvb2w6OnNfdXNlU2VwYXJhdGVTZXJ2aWNlV29ya2VyUHJvY2VzcyA9IGZhbHNlOwogCiB2
b2lkIFdlYlByb2Nlc3NQb29sOjplc3RhYmxpc2hSZW1vdGVXb3JrZXJDb250ZXh0Q29ubmVjdGlv
blRvTmV0d29ya1Byb2Nlc3MoUmVtb3RlV29ya2VyVHlwZSB3b3JrZXJUeXBlLCBSZWdpc3RyYWJs
ZURvbWFpbiYmIHJlZ2lzdHJhYmxlRG9tYWluLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByb2Nl
c3NJZGVudGlmaWVyPiByZXF1ZXN0aW5nUHJvY2Vzc0lkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRp
ZmllciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaAppbmRleCBkNGRhM2RhODQ0M2Y2ZDEzZWMyZTMwYWIyNDhiYThiYTEzYmE3ZjAwLi5hOGZl
Y2ZjMzFjZTU5YTE0NWE0NWY5ODMyMmIwYmEyNjgzYzgzZGJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTM2OCwxMSArMzY4LDYgQEAgcHVibGljOgogICAg
IEdQVVByb2Nlc3NQcm94eSYgZW5zdXJlR1BVUHJvY2VzcygpOwogICAgIEdQVVByb2Nlc3NQcm94
eSogZ3B1UHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fZ3B1UHJvY2Vzcy5nZXQoKTsgfQogI2Vu
ZGlmCi0KLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotICAgIHZvaWQgZ2V0V2ViQXV0aG5Qcm9jZXNz
Q29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpH
ZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uRGVsYXllZFJlcGx5JiYpOwotI2VuZGlmCi0KICAg
ICAvLyBOZXR3b3JrIFByb2Nlc3MgTWFuYWdlbWVudAogICAgIHZvaWQgbmV0d29ya1Byb2Nlc3NE
aWRUZXJtaW5hdGUoTmV0d29ya1Byb2Nlc3NQcm94eSYsIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNv
bik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4
IGQ3NTZhM2Q2OTNmNmE0M2Y3NDNlMjA5ZWQ2ZDBlNzVjMzM1MWRiYzEuLjA5MWQ5NGFmZDhiMjYz
NWM4YWU1ODk4NzczZGQ5NzQzZWNhNzIzZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtODM5LDE0ICs4MzksNiBAQCB2b2lkIFdlYlByb2Nlc3NQ
cm94eTo6Z3B1UHJvY2Vzc0V4aXRlZChQcm9jZXNzVGVybWluYXRpb25SZWFzb24gcmVhc29uKQog
fQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotdm9pZCBXZWJQcm9jZXNzUHJveHk6
OmdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6
R2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCi17Ci0g
ICAgTUVTU0FHRV9DSEVDS19DT01QTEVUSU9OKG1lc3NhZ2VTb3VyY2VJc1ZhbGlkV2ViQ29udGVu
dFByb2Nlc3MoKSwgcmVwbHkoeyB9KSk7Ci0gICAgbV9wcm9jZXNzUG9vbC0+Z2V0V2ViQXV0aG5Q
cm9jZXNzQ29ubmVjdGlvbigqdGhpcywgV1RGTW92ZShyZXBseSkpOwotfQotI2VuZGlmCi0KICNp
ZiAhUExBVEZPUk0oTUFDKQogYm9vbCBXZWJQcm9jZXNzUHJveHk6OnNob3VsZEFsbG93Tm9uVmFs
aWRJbmplY3RlZENvZGUoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaAppbmRleCA0YzIyZGFiMTgwZTA4MDc1NDBmNjAyZjRlN2UxODA3YmEyODE2ZDlh
Li4wYjg5ZjgwNzRlMTdkNjViMDgzMjc0OWE2MDA5ZGY5YjAwMmMyMjU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtNDg1LDEwICs0ODUsNiBAQCBwcml2
YXRlOgogICAgIHZvaWQgY3JlYXRlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpBdHRhY2htZW50
JiYgY29ubmVjdGlvbklkZW50aWZpZXIsIFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJh
bWV0ZXJzJiYpOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotICAgIHZvaWQgZ2V0
V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbihNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRX
ZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uRGVsYXllZFJlcGx5JiYpOwotI2VuZGlmCi0KICAgICBi
b29sIHNob3VsZEFsbG93Tm9uVmFsaWRJbmplY3RlZENvZGUoKSBjb25zdDsKIAogICAgIHN0YXRp
YyBjb25zdCBNZW1vcnlDb21wYWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hTZXQ8U3RyaW5nPiYg
cGxhdGZvcm1QYXRoc1dpdGhBc3N1bWVkUmVhZEFjY2VzcygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDhmZGIwZjFm
NWJiM2EyNWNiNzY5NTY0YTgxNGFiYmMxMTU5NDZiMDEuLmFkOWI5MTgwNjQ1NTQ4YTM5OGMzMThm
NjMzMjQ0ZGRhZWE5YTY1NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTM3LDEwICszNyw2IEBAIG1lc3NhZ2VzIC0+
IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgQ3JlYXRlR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24oSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25JZGVudGlmaWVyLCBzdHJ1Y3QgV2Vi
S2l0OjpHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMgcGFyYW1ldGVycykKICNlbmRpZgog
Ci0jaWYgRU5BQkxFKFdFQl9BVVRITikKLSAgICBHZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9u
KCkgLT4gKHN0cnVjdCBXZWJLaXQ6OldlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIGNvbm5l
Y3Rpb25JbmZvKSBTeW5jaHJvbm91cwotI2VuZGlmCi0KICAgICBTZXRJc0hvbGRpbmdMb2NrZWRG
aWxlcyhib29sIGlzSG9sZGluZ0xvY2tlZEZpbGVzKQogCiAgICAgRGlkRXhjZWVkQWN0aXZlTWVt
b3J5TGltaXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvRW50
cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkF1dGhuU2VydmljZS9JbmZvLU9TWC5wbGlzdCBi
L1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2Vydmlj
ZS9XZWJBdXRoblNlcnZpY2UvSW5mby1PU1gucGxpc3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGQ1YWFlM2MzNWY3MWFjOGZlNzc3NmMxMmRjNWQzOTg3YTRiN2RmNDcuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJB
dXRoblByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkF1dGhuU2VydmljZS9J
bmZvLU9TWC5wbGlzdAorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLTw/eG1sIHZlcnNp
b249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9B
cHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3Bl
cnR5TGlzdC0xLjAuZHRkIj4KLTxwbGlzdCB2ZXJzaW9uPSIxLjAiPgotPGRpY3Q+Ci0JPGtleT5D
RkJ1bmRsZUdldEluZm9TdHJpbmc8L2tleT4KLQk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059LCBD
b3B5cmlnaHQgMjAwMy0yMDIyIEFwcGxlIEluYy48L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlRGV2
ZWxvcG1lbnRSZWdpb248L2tleT4KLQk8c3RyaW5nPkVuZ2xpc2g8L3N0cmluZz4KLQk8a2V5PkNG
QnVuZGxlRXhlY3V0YWJsZTwva2V5PgotCTxzdHJpbmc+JHtFWEVDVVRBQkxFX05BTUV9PC9zdHJp
bmc+Ci0JPGtleT5DRkJ1bmRsZUlkZW50aWZpZXI8L2tleT4KLQk8c3RyaW5nPiR7UFJPRFVDVF9C
VU5ETEVfSURFTlRJRklFUn08L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlSW5mb0RpY3Rpb25hcnlW
ZXJzaW9uPC9rZXk+Ci0JPHN0cmluZz42LjA8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlTmFtZTwv
a2V5PgotCTxzdHJpbmc+JHtQUk9EVUNUX05BTUV9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVBh
Y2thZ2VUeXBlPC9rZXk+Ci0JPHN0cmluZz5YUEMhPC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVNo
b3J0VmVyc2lvblN0cmluZzwva2V5PgotCTxzdHJpbmc+JHtTSE9SVF9WRVJTSU9OX1NUUklOR308
L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlU2lnbmF0dXJlPC9rZXk+Ci0JPHN0cmluZz4/Pz8/PC9z
dHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVZlcnNpb248L2tleT4KLQk8c3RyaW5nPiR7QlVORExFX1ZF
UlNJT059PC9zdHJpbmc+Ci0JPGtleT5MU0ZpbGVRdWFyYW50aW5lRW5hYmxlZDwva2V5PgotCTx0
cnVlLz4KLQk8a2V5Pk5TUHJpbmNpcGFsQ2xhc3M8L2tleT4KLQk8c3RyaW5nPk5TQXBwbGljYXRp
b248L3N0cmluZz4KLQk8a2V5PkxTVUlFbGVtZW50PC9rZXk+Ci0JPHRydWUvPgotCTxrZXk+WFBD
U2VydmljZTwva2V5PgotCTxkaWN0PgotCQk8a2V5PlNlcnZpY2VUeXBlPC9rZXk+Ci0JCTxzdHJp
bmc+QXBwbGljYXRpb248L3N0cmluZz4KLQkJPGtleT5Kb2luRXhpc3RpbmdTZXNzaW9uPC9rZXk+
Ci0JCTx0cnVlLz4KLQkJPGtleT5SdW5Mb29wVHlwZTwva2V5PgotCQk8c3RyaW5nPk5TUnVuTG9v
cDwvc3RyaW5nPgotCQk8a2V5Pl9NdWx0aXBsZUluc3RhbmNlczwva2V5PgotCQk8dHJ1ZS8+Ci0J
PC9kaWN0PgotPC9kaWN0PgotPC9wbGlzdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
QXV0aG5Qcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJBdXRoblNlcnZpY2Uv
SW5mby1pT1MucGxpc3QgYi9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9FbnRyeVBvaW50
L0NvY29hL1hQQ1NlcnZpY2UvV2ViQXV0aG5TZXJ2aWNlL0luZm8taU9TLnBsaXN0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0Zjg2NWViMjI4ZjVmNzI1ZWZhMDA4ZmZiOTQyYTZkODEz
MzQxMDNjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9X
ZWJBdXRoblNlcnZpY2UvSW5mby1pT1MucGxpc3QKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCww
IEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPCFET0NUWVBFIHBs
aXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBs
ZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Ci08cGxpc3QgdmVyc2lvbj0iMS4wIj4K
LTxkaWN0PgotCTxrZXk+Q0ZCdW5kbGVHZXRJbmZvU3RyaW5nPC9rZXk+Ci0JPHN0cmluZz4ke0JV
TkRMRV9WRVJTSU9OfSwgQ29weXJpZ2h0IDIwMDMtMjAyMiBBcHBsZSBJbmMuPC9zdHJpbmc+Ci0J
PGtleT5DRkJ1bmRsZURldmVsb3BtZW50UmVnaW9uPC9rZXk+Ci0JPHN0cmluZz5FbmdsaXNoPC9z
dHJpbmc+Ci0JPGtleT5DRkJ1bmRsZUV4ZWN1dGFibGU8L2tleT4KLQk8c3RyaW5nPiR7RVhFQ1VU
QUJMRV9OQU1FfTwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+Ci0JPHN0
cmluZz4ke1BST0RVQ1RfQlVORExFX0lERU5USUZJRVJ9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRs
ZUluZm9EaWN0aW9uYXJ5VmVyc2lvbjwva2V5PgotCTxzdHJpbmc+Ni4wPC9zdHJpbmc+Ci0JPGtl
eT5DRkJ1bmRsZU5hbWU8L2tleT4KLQk8c3RyaW5nPiR7UFJPRFVDVF9OQU1FfTwvc3RyaW5nPgot
CTxrZXk+Q0ZCdW5kbGVQYWNrYWdlVHlwZTwva2V5PgotCTxzdHJpbmc+WFBDITwvc3RyaW5nPgot
CTxrZXk+Q0ZCdW5kbGVTaG9ydFZlcnNpb25TdHJpbmc8L2tleT4KLQk8c3RyaW5nPiR7U0hPUlRf
VkVSU0lPTl9TVFJJTkd9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVNpZ25hdHVyZTwva2V5Pgot
CTxzdHJpbmc+Pz8/Pzwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVWZXJzaW9uPC9rZXk+Ci0JPHN0
cmluZz4ke0JVTkRMRV9WRVJTSU9OfTwvc3RyaW5nPgotCTxrZXk+TFNGaWxlUXVhcmFudGluZUVu
YWJsZWQ8L2tleT4KLQk8dHJ1ZS8+Ci0JPGtleT5OU1ByaW5jaXBhbENsYXNzPC9rZXk+Ci0JPHN0
cmluZz5OU0FwcGxpY2F0aW9uPC9zdHJpbmc+Ci0JPGtleT5MU1VJRWxlbWVudDwva2V5PgotCTx0
cnVlLz4KLQk8a2V5PlhQQ1NlcnZpY2U8L2tleT4KLQk8ZGljdD4KLQkJPGtleT5TZXJ2aWNlVHlw
ZTwva2V5PgotCQk8c3RyaW5nPkFwcGxpY2F0aW9uPC9zdHJpbmc+Ci0JCTxrZXk+UnVuTG9vcFR5
cGU8L2tleT4KLQkJPHN0cmluZz5OU1J1bkxvb3A8L3N0cmluZz4KLSAgICAgICAgICAgICAgICA8
a2V5Pl9Qcm9jZXNzVHlwZTwva2V5PgotICAgICAgICAgICAgICAgIDxzdHJpbmc+QXBwPC9zdHJp
bmc+Ci0JCTxrZXk+X011bHRpcGxlSW5zdGFuY2VzPC9rZXk+Ci0JCTx0cnVlLz4KLQk8L2RpY3Q+
Ci0JPGtleT5DYW5Jbmhlcml0QXBwbGljYXRpb25TdGF0ZUZyb21PdGhlclByb2Nlc3Nlczwva2V5
PgotCTx0cnVlLz4KLTwvZGljdD4KLTwvcGxpc3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYkF1dGhuUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQXV0aG5TZXJ2
aWNlRW50cnlQb2ludC5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL0VudHJ5UG9p
bnQvQ29jb2EvWFBDU2VydmljZS9XZWJBdXRoblNlcnZpY2VFbnRyeVBvaW50Lm1tCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5M2FkNDQ4YWE4NmZjOGIxOGQ5ZGJiZTMyYTViNmM1ZDU4
ZDkxNDFiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9X
ZWJBdXRoblNlcnZpY2VFbnRyeVBvaW50Lm1tCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotCi0jaW1wb3J0ICJFbnZpcm9ubWVu
dFV0aWxpdGllcy5oIgotI2ltcG9ydCAiV0tCYXNlLmgiCi0jaW1wb3J0ICJXZWJBdXRoblByb2Nl
c3MuaCIKLSNpbXBvcnQgIlhQQ1NlcnZpY2VFbnRyeVBvaW50LmgiCi0KLSNpZiBFTkFCTEUoV0VC
X0FVVEhOKQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViQXV0aG5TZXJ2aWNlSW5p
dGlhbGl6ZXJEZWxlZ2F0ZSA6IHB1YmxpYyBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZSB7
Ci1wdWJsaWM6Ci0gICAgV2ViQXV0aG5TZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZShPU09iamVj
dFB0cjx4cGNfY29ubmVjdGlvbl90PiBjb25uZWN0aW9uLCB4cGNfb2JqZWN0X3QgaW5pdGlhbGl6
ZXJNZXNzYWdlKQotICAgICAgICA6IFhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlKFdURk1v
dmUoY29ubmVjdGlvbiksIGluaXRpYWxpemVyTWVzc2FnZSkKLSAgICB7Ci0gICAgfQotfTsKLQot
dGVtcGxhdGU8Pgotdm9pZCBpbml0aWFsaXplQXV4aWxpYXJ5UHJvY2VzczxXZWJBdXRoblByb2Nl
c3M+KEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJz
KQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxXZWJBdXRoblByb2Nlc3M+IFdlYkF1dGhu
UHJvY2VzcyhXVEZNb3ZlKHBhcmFtZXRlcnMpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0
Ci0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQotCi1leHRlcm4gIkMiIFdLX0VYUE9SVCB2
b2lkIFdFQkFVVEhOX1NFUlZJQ0VfSU5JVElBTElaRVIoeHBjX2Nvbm5lY3Rpb25fdCBjb25uZWN0
aW9uLCB4cGNfb2JqZWN0X3QgaW5pdGlhbGl6ZXJNZXNzYWdlLCB4cGNfb2JqZWN0X3QgcHJpb3Jp
dHlCb29zdE1lc3NhZ2UpOwotCi12b2lkIFdFQkFVVEhOX1NFUlZJQ0VfSU5JVElBTElaRVIoeHBj
X2Nvbm5lY3Rpb25fdCBjb25uZWN0aW9uLCB4cGNfb2JqZWN0X3QgaW5pdGlhbGl6ZXJNZXNzYWdl
LCB4cGNfb2JqZWN0X3QgcHJpb3JpdHlCb29zdE1lc3NhZ2UpCi17Ci0gICAgV1RGOjppbml0aWFs
aXplTWFpblRocmVhZCgpOwotCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLSAgICBXZWJLaXQ6OlhQ
Q1NlcnZpY2VJbml0aWFsaXplcjxXZWJLaXQ6OldlYkF1dGhuUHJvY2VzcywgV2ViS2l0OjpXZWJB
dXRoblNlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlPihjb25uZWN0aW9uLCBpbml0aWFsaXplck1l
c3NhZ2UsIHByaW9yaXR5Qm9vc3RNZXNzYWdlKTsKLSNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhO
KQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5D
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNz
L1dlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDUxN2MzYmFjMTJmODcxMzc3YTczYWUzZDE1NmIwM2U3MzhmYjAyN2UuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDEzMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCi0KLSNp
ZiBFTkFCTEUoV0VCX0FVVEhOKQotCi0jaW5jbHVkZSAiQXV0aGVudGljYXRvck1hbmFnZXIuaCIK
LSNpbmNsdWRlICJMb2NhbFNlcnZpY2UuaCIKLSNpbmNsdWRlICJXZWJBdXRoblByb2Nlc3MuaCIK
LSNpbmNsdWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0b3JSZXNwb25zZURhdGEuaD4KLQotI2lmIEVO
QUJMRShJUENfVEVTVElOR19BUEkpCi0jaW5jbHVkZSAiSVBDVGVzdGVyTWVzc2FnZXMuaCIKLSNl
bmRpZgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1S
ZWY8V2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzPiBXZWJBdXRobkNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OmNyZWF0ZShXZWJBdXRoblByb2Nlc3MmIFdlYkF1dGhuUHJvY2VzcywgV2ViQ29y
ZTo6UHJvY2Vzc0lkZW50aWZpZXIgd2ViUHJvY2Vzc0lkZW50aWZpZXIsIElQQzo6Q29ubmVjdGlv
bjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKLXsKLSAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViQXV0aG5Qcm9jZXNzLCB3
ZWJQcm9jZXNzSWRlbnRpZmllciwgY29ubmVjdGlvbklkZW50aWZpZXIpKTsKLX0KLQotV2ViQXV0
aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzOjpXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
V2ViQXV0aG5Qcm9jZXNzJiBXZWJBdXRoblByb2Nlc3MsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlm
aWVyIHdlYlByb2Nlc3NJZGVudGlmaWVyLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29u
bmVjdGlvbklkZW50aWZpZXIpCi0gICAgOiBtX2Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpj
cmVhdGVTZXJ2ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCAqdGhpcykpCi0gICAg
LCBtX1dlYkF1dGhuUHJvY2VzcyhXZWJBdXRoblByb2Nlc3MpCi0gICAgLCBtX3dlYlByb2Nlc3NJ
ZGVudGlmaWVyKHdlYlByb2Nlc3NJZGVudGlmaWVyKQotewotICAgIFJFTEVBU0VfQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpKTsKLSAgICBtX2Nvbm5lY3Rpb24tPm9wZW4oKTsKLX0KLQotV2ViQXV0
aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzOjp+V2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNz
KCkKLXsKLSAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBtX2Nv
bm5lY3Rpb24tPmludmFsaWRhdGUoKTsKLX0KLQotdm9pZCBXZWJBdXRobkNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCi17Ci19Ci0KLXZvaWQgV2ViQXV0
aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6Ok1lc3NhZ2VOYW1lIG1lc3NhZ2VOYW1lKQotewot
ICAgIFdURkxvZ0Fsd2F5cygiUmVjZWl2ZWQgYW4gaW52YWxpZCBtZXNzYWdlIFwiJXNcIiBmcm9t
IHRoZSB3ZWIgcHJvY2Vzcy5cbiIsIGRlc2NyaXB0aW9uKG1lc3NhZ2VOYW1lKSk7Ci0gICAgQ1JB
U0goKTsKLX0KLQotYm9vbCBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNo
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rl
cikKLXsKLSNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQotICAgIGlmIChkZWNvZGVyLm1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6SVBDVGVzdGVyOjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCkpIHsKLSAgICAgICAgbV9pcGNUZXN0ZXIuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlv
biwgZGVjb2Rlcik7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSNlbmRpZgotICAgIHJl
dHVybiBmYWxzZTsKLX0KLQotYm9vbCBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRp
c3BhdGNoU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29k
ZXImIGRlY29kZXIsIFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCi17Ci0j
aWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKLSAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2
ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OklQQ1Rlc3Rlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7
Ci0gICAgICAgIG1faXBjVGVzdGVyLmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBk
ZWNvZGVyLCByZXBseUVuY29kZXIpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0jZW5k
aWYKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLQotdm9pZCBXZWJBdXRobkNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6Om1ha2VDcmVkZW50aWFsKFZlY3Rvcjx1aW50OF90PiYmIGhhc2gsIFB1YmxpY0tl
eUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmJiBvcHRpb25zLCBib29sIHByb2Nlc3NpbmdVc2Vy
R2VzdHVyZSwgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlcikKLXsKLSAgICBoYW5k
bGVSZXF1ZXN0KHsgV1RGTW92ZShoYXNoKSwgV1RGTW92ZShvcHRpb25zKSwgbnVsbHB0ciwgV2Vi
QXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxwdHIsIHN0ZDo6bnVs
bG9wdCwgeyB9LCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFN0cmluZygpLCBudWxscHRyLCBzdGQ6
Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCB9LCBXVEZNb3ZlKGhhbmRsZXIpKTsKLX0KLQotdm9pZCBX
ZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmdldEFzc2VydGlvbihWZWN0b3I8dWludDhf
dD4mJiBoYXNoLCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmJiBvcHRpb25zLCBi
b29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYgaGFu
ZGxlcikKLXsKLSAgICBoYW5kbGVSZXF1ZXN0KHsgV1RGTW92ZShoYXNoKSwgV1RGTW92ZShvcHRp
b25zKSwgbnVsbHB0ciwgV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUs
IG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgeyB9LCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFN0cmlu
ZygpLCBudWxscHRyLCBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCB9LCBXVEZNb3ZlKGhhbmRs
ZXIpKTsKLX0KLQotdm9pZCBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmhhbmRsZVJl
cXVlc3QoV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YSYmIGRhdGEsIFJlcXVlc3RDb21wbGV0
aW9uSGFuZGxlciYmIGhhbmRsZXIpCi17Ci0gICAgYXV0byBjYWxsYmFjayA9IFtoYW5kbGVyID0g
V1RGTW92ZShoYW5kbGVyKV0gKHN0ZDo6dmFyaWFudDxSZWY8QXV0aGVudGljYXRvclJlc3BvbnNl
PiwgRXhjZXB0aW9uRGF0YT4mJiByZXN1bHQpIG11dGFibGUgewotICAgICAgICBBU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOwotICAgICAgICBXVEY6OnN3aXRjaE9uKHJlc3VsdCwgWyZdKGNvbnN0
IFJlZjxBdXRoZW50aWNhdG9yUmVzcG9uc2U+JiByZXNwb25zZSkgewotICAgICAgICAgICAgaGFu
ZGxlcihyZXNwb25zZS0+ZGF0YSgpLCByZXNwb25zZS0+YXR0YWNobWVudCgpLCB7IH0pOwotICAg
ICAgICB9LCBbJl0oY29uc3QgRXhjZXB0aW9uRGF0YSYgZXhjZXB0aW9uKSB7Ci0gICAgICAgICAg
ICBoYW5kbGVyKHsgfSwgc3RhdGljX2Nhc3Q8QXV0aGVudGljYXRvckF0dGFjaG1lbnQ+KDApLCBl
eGNlcHRpb24pOwotICAgICAgICB9KTsKLSAgICB9OwotICAgIG1fV2ViQXV0aG5Qcm9jZXNzLT5h
dXRoZW50aWNhdG9yTWFuYWdlcigpLmhhbmRsZVJlcXVlc3QoV1RGTW92ZShkYXRhKSwgV1RGTW92
ZShjYWxsYmFjaykpOwotfQotCi12b2lkIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
aXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKFF1ZXJ5Q29tcGxl
dGlvbkhhbmRsZXImJiBoYW5kbGVyKQotewotICAgIGhhbmRsZXIoTG9jYWxTZXJ2aWNlOjppc0F2
YWlsYWJsZSgpKTsKLX0KLQotdm9pZCBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNl
dE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oV2ViQ29yZTo6TW9ja1dlYkF1dGhl
bnRpY2F0aW9uQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCi17Ci0gICAgbV9XZWJBdXRo
blByb2Nlc3MtPnNldE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oV1RGTW92ZShj
b25maWd1cmF0aW9uKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8g
RU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9j
ZXNzL1dlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJB
dXRoblByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGVjNzU3NjMzNjY2YmJmYjY4ZmM0OWQwNTNkOWJjYmFkN2IzZjc3
ZDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmgK
KysrIC9kZXYvbnVsbApAQCAtMSw5NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIw
LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21h
IG9uY2UKLQotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0KLSNpbmNsdWRlICJDb25uZWN0aW9uLmgi
Ci0jaW5jbHVkZSAiV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKLSNp
bmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KLQotI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCi0jaW5jbHVkZSAiSVBDVGVz
dGVyLmgiCi0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotZW51bSBjbGFzcyBBdXRoZW50
aWNhdG9yQXR0YWNobWVudDsKLXN0cnVjdCBBdXRoZW50aWNhdG9yUmVzcG9uc2VEYXRhOwotc3Ry
dWN0IEV4Y2VwdGlvbkRhdGE7Ci1zdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJh
dGlvbjsKLXN0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOwotc3RydWN0
IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczsKLX0KLQotbmFtZXNwYWNlIFdlYktp
dCB7Ci0KLWNsYXNzIFdlYkF1dGhuUHJvY2VzczsKLXN0cnVjdCBXZWJBdXRoZW50aWNhdGlvblJl
cXVlc3REYXRhOwotCi1jbGFzcyBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MKLSAgICA6
IHB1YmxpYyBSZWZDb3VudGVkPFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4KLSAgICAs
IElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkF1
dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gY3JlYXRlKFdlYkF1dGhuUHJvY2VzcyYsIFdlYkNv
cmU6OlByb2Nlc3NJZGVudGlmaWVyLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwotICAg
IHZpcnR1YWwgfldlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2VzcygpOwotCi0gICAgSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9Ci0g
ICAgV2ViQXV0aG5Qcm9jZXNzJiBXZWJBdXRoblByb2Nlc3NQcm9jZXNzKCkgeyByZXR1cm4gbV9X
ZWJBdXRoblByb2Nlc3MuZ2V0KCk7IH0KLSAgICBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciB3
ZWJQcm9jZXNzSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fd2ViUHJvY2Vzc0lkZW50aWZp
ZXI7IH0KLQotcHJpdmF0ZToKLSAgICB1c2luZyBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXIgPSBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JSZXNwb25z
ZURhdGEmLCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXR0YWNobWVudCwgY29uc3QgV2ViQ29yZTo6
RXhjZXB0aW9uRGF0YSYpPjsKLSAgICB1c2luZyBRdWVyeUNvbXBsZXRpb25IYW5kbGVyID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT47Ci0KLSAgICBXZWJBdXRobkNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MoV2ViQXV0aG5Qcm9jZXNzJiwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIElQ
Qzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7Ci0KLSAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNs
aWVudAotICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgZmluYWw7Ci0gICAgdm9p
ZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdl
TmFtZSkgZmluYWw7Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImKSBmaW5hbDsKLSAgICBib29sIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYp
OwotCi0gICAgYm9vbCBkaXNwYXRjaE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNv
ZGVyJik7Ci0gICAgYm9vbCBkaXNwYXRjaFN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYsIFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+Jik7Ci0KLSAgICAvLyBSZWNlaXZl
cnMuCi0gICAgdm9pZCBtYWtlQ3JlZGVudGlhbChWZWN0b3I8dWludDhfdD4mJiBoYXNoLCBXZWJD
b3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiYsIGJvb2wgcHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJik7Ci0gICAgdm9pZCBnZXRB
c3NlcnRpb24oVmVjdG9yPHVpbnQ4X3Q+JiYgaGFzaCwgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVu
dGlhbFJlcXVlc3RPcHRpb25zJiYsIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBSZXF1ZXN0
Q29tcGxldGlvbkhhbmRsZXImJik7Ci0gICAgdm9pZCBpc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1
dGhlbnRpY2F0b3JBdmFpbGFibGUoUXVlcnlDb21wbGV0aW9uSGFuZGxlciYmKTsKLSAgICB2b2lk
IHNldE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oV2ViQ29yZTo6TW9ja1dlYkF1
dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbiYmKTsKLQotICAgIHZvaWQgaGFuZGxlUmVxdWVzdChX
ZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhJiYsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYm
KTsKLQotICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKLSAgICBSZWY8V2Vi
QXV0aG5Qcm9jZXNzPiBtX1dlYkF1dGhuUHJvY2VzczsKLSAgICBjb25zdCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpZmllciBtX3dlYlByb2Nlc3NJZGVudGlmaWVyOwotI2lmIEVOQUJMRShJUENfVEVT
VElOR19BUEkpCi0gICAgSVBDVGVzdGVyIG1faXBjVGVzdGVyOwotI2VuZGlmCi19OwotCi19IC8v
IG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRobkNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJB
dXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDA5ZDhlYjVmMGI4NTdlOGYzZGIwZTYwZTg1YzNmYTZjZjI0YjVlZjMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMjAt
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotIyBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUgotIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi0jIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSCi0jIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0jIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotCi1tZXNzYWdl
cyAtPiBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgV2FudHNEaXNwYXRjaE1lc3NhZ2Ug
ewotCi0gICAgTWFrZUNyZWRlbnRpYWwoVmVjdG9yPHVpbnQ4X3Q+IGhhc2gsIHN0cnVjdCBXZWJD
b3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIG9wdGlvbnMsIGJvb2wgcHJv
Y2Vzc2luZ1VzZXJHZXN0dXJlKSAtPiAoc3RydWN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JSZXNw
b25zZURhdGEgZGF0YSwgZW51bTppbnQgV2ViQ29yZTo6QXV0aGVudGljYXRvckF0dGFjaG1lbnQg
YXR0YWNobWVudCwgc3RydWN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEgZXhjZXB0aW9uKQotICAg
IEdldEFzc2VydGlvbihWZWN0b3I8dWludDhfdD4gaGFzaCwgc3RydWN0IFdlYkNvcmU6OlB1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyBvcHRpb25zLCBib29sIHByb2Nlc3NpbmdVc2Vy
R2VzdHVyZSkgLT4gKHN0cnVjdCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2VEYXRhIGRh
dGEsIGVudW06aW50IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBdHRhY2htZW50IGF0dGFjaG1lbnQs
IHN0cnVjdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhIGV4Y2VwdGlvbikKLSAgICBJc1VzZXJWZXJp
ZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoKSAtPiAoYm9vbCByZXN1bHQpCi0K
LSAgICBTZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uKHN0cnVjdCBXZWJDb3Jl
OjpNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pOwotfQot
Ci0jZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYkF1
dGhuUHJvY2Vzcy9XZWJBdXRoblByb2Nlc3MuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAxMTYwMTNlZWQxMDc0MDg2Njg5NjYwOTA3Y2M2NjhjYmM4NDdkZGFhLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0
aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2Vzcy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNDYgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldl
YkF1dGhuUHJvY2Vzcy5oIgotCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLQotI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKLSNpbmNsdWRlICJNb2NrQXV0aGVudGljYXRvck1hbmFnZXIuaCIKLSNpbmNsdWRl
ICJXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKLSNpbmNsdWRlICJXZWJBdXRoblBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5n
Lmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLQot
V2ViQXV0aG5Qcm9jZXNzOjpXZWJBdXRoblByb2Nlc3MoQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxp
emF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCi0gICAgOiBtX2F1dGhlbnRpY2F0b3JNYW5h
Z2VyKG1ha2VVbmlxdWVSZWY8QXV0aGVudGljYXRvck1hbmFnZXI+KCkpCi17Ci0gICAgaW5pdGlh
bGl6ZShXVEZNb3ZlKHBhcmFtZXRlcnMpKTsKLSAgICBtX2F1dGhlbnRpY2F0b3JNYW5hZ2VyLT5l
bmFibGVNb2Rlcm5XZWJBdXRoZW50aWNhdGlvbigpOwotfQotCi1XZWJBdXRoblByb2Nlc3M6On5X
ZWJBdXRoblByb2Nlc3MoKQotewotfQotCi12b2lkIFdlYkF1dGhuUHJvY2Vzczo6Y3JlYXRlV2Vi
QXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzKFByb2Nlc3NJZGVudGlmaWVyIGlkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxJUEM6OkF0dGFjaG1lbnQ+JiYp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGF1dG8gY29ubmVjdGlvbklkZW50aWZpZXJz
ID0gSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVDb25uZWN0aW9uSWRlbnRpZmllclBhaXIoKTsKLSAg
ICBpZiAoIWNvbm5lY3Rpb25JZGVudGlmaWVycykgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cih7IH0pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYXV0byBuZXdDb25uZWN0aW9u
ID0gV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGUoKnRoaXMsIGlkZW50aWZp
ZXIsIGNvbm5lY3Rpb25JZGVudGlmaWVycy0+c2VydmVyKTsKLQotICAgIEFTU0VSVCghbV93ZWJQ
cm9jZXNzQ29ubmVjdGlvbnMuY29udGFpbnMoaWRlbnRpZmllcikpOwotICAgIG1fd2ViUHJvY2Vz
c0Nvbm5lY3Rpb25zLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKG5ld0Nvbm5lY3Rpb24pKTsKLQot
ICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29ubmVjdGlvbklkZW50aWZpZXJzLT5jbGll
bnQpKTsKLX0KLQotdm9pZCBXZWJBdXRoblByb2Nlc3M6OnJlbW92ZVdlYkF1dGhuQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyhXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24p
Ci17Ci0gICAgQVNTRVJUKG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmNvbnRhaW5zKGNvbm5lY3Rp
b24ud2ViUHJvY2Vzc0lkZW50aWZpZXIoKSkpOwotICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25z
LnJlbW92ZShjb25uZWN0aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCkpOwotfQotCi12b2lkIFdl
YkF1dGhuUHJvY2Vzczo6Y29ubmVjdGlvblRvV2ViUHJvY2Vzc0Nsb3NlZChJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24pCi17Ci19Ci0KLWJvb2wgV2ViQXV0aG5Qcm9jZXNzOjpzaG91bGRUZXJt
aW5hdGUoKQotewotICAgIHJldHVybiBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5pc0VtcHR5KCk7
Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQot
ewotICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9j
ZXNzOjpsb3dNZW1vcnlIYW5kbGVyKENyaXRpY2FsIGNyaXRpY2FsKQotewotICAgIFdURjo6cmVs
ZWFzZUZhc3RNYWxsb2NGcmVlTWVtb3J5KCk7Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzOjpp
bml0aWFsaXplV2ViQXV0aG5Qcm9jZXNzKFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cyYmIHBhcmFtZXRlcnMpCi17Ci0gICAgYXBwbHlQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKHBh
cmFtZXRlcnMuYXV4aWxpYXJ5UHJvY2Vzc1BhcmFtZXRlcnMpOwotICAgIFdURjo6VGhyZWFkOjpz
ZXRDdXJyZW50VGhyZWFkSXNVc2VySW5pdGlhdGVkKCk7Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9j
ZXNzOjpwcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBSRUxFQVNFX0xP
RyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV2ViQXV0aG5Qcm9jZXNzOjpwcmVwYXJlVG9TdXNw
ZW5kKCksIGlzU3VzcGVuc2lvbkltbWluZW50PSVkIiwgdGhpcywgaXNTdXNwZW5zaW9uSW1taW5l
bnQpOwotCi0gICAgbG93TWVtb3J5SGFuZGxlcihDcml0aWNhbDo6WWVzKTsKLX0KLQotdm9pZCBX
ZWJBdXRoblByb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKQotewotICAgIFJFTEVBU0VfTE9HKFBy
b2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJBdXRoblByb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUo
KSIsIHRoaXMpOwotICAgIHJlc3VtZSgpOwotfQotCi12b2lkIFdlYkF1dGhuUHJvY2Vzczo6cmVz
dW1lKCkKLXsKLX0KLQotV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzKiBXZWJBdXRoblBy
b2Nlc3M6OndlYlByb2Nlc3NDb25uZWN0aW9uKFByb2Nlc3NJZGVudGlmaWVyIGlkZW50aWZpZXIp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmdldChpZGVudGlm
aWVyKTsKLX0KLQotdm9pZCBXZWJBdXRoblByb2Nlc3M6OnNldE1vY2tXZWJBdXRoZW50aWNhdGlv
bkNvbmZpZ3VyYXRpb24oV2ViQ29yZTo6TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlv
biYmIGNvbmZpZ3VyYXRpb24pCi17Ci0gICAgaWYgKCFtX2F1dGhlbnRpY2F0b3JNYW5hZ2VyLT5p
c01vY2soKSkgewotICAgICAgICBtX2F1dGhlbnRpY2F0b3JNYW5hZ2VyID0gbWFrZVVuaXF1ZVJl
ZjxNb2NrQXV0aGVudGljYXRvck1hbmFnZXI+KFdURk1vdmUoY29uZmlndXJhdGlvbikpOwotICAg
ICAgICBtX2F1dGhlbnRpY2F0b3JNYW5hZ2VyLT5lbmFibGVNb2Rlcm5XZWJBdXRoZW50aWNhdGlv
bigpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIHN0YXRpY19jYXN0PE1vY2tBdXRoZW50
aWNhdG9yTWFuYWdlcio+KCZtX2F1dGhlbnRpY2F0b3JNYW5hZ2VyKS0+c2V0VGVzdENvbmZpZ3Vy
YXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uKSk7Ci19Ci0KLSNpZiAhUExBVEZPUk0oQ09DT0Ep
Ci12b2lkIFdlYkF1dGhuUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViQXV0aG5Qcm9jZXNz
KGNvbnN0IFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpCi17Ci19Ci0jZW5kaWYK
LQotI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQotdm9pZCBXZWJBdXRoblByb2Nlc3M6
Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChjb25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3QgU3Ry
aW5nJiBrZXksIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiYgZW5jb2RlZFZhbHVlKQotewot
ICAgIHByZWZlcmVuY2VEaWRVcGRhdGUoZG9tYWluLCBrZXksIGVuY29kZWRWYWx1ZSk7Ci19Ci0j
ZW5kaWYKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX0FV
VEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Q
cm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRoblByb2Nlc3Mu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2U3YTI0MDdmMGQ0MzcyZDExYzY3Mjcy
YmU0YzA2NjNmMjg5MTMzNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRoblByb2Nlc3MuaAor
KysgL2Rldi9udWxsCkBAIC0xLDk3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAt
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLQotI2luY2x1ZGUgIkF1eGlsaWFyeVByb2Nl
c3MuaCIKLSNpbmNsdWRlICJXZWJBdXRoblByb2Nlc3NNZXNzYWdlcy5oIgotI2luY2x1ZGUgPHd0
Zi9GdW5jdGlvbi5oPgotI2luY2x1ZGUgPHd0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4KLSNp
bmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+Ci0jaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotc3RydWN0IE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRp
b247Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBBdXRoZW50aWNhdG9yTWFuYWdl
cjsKLWNsYXNzIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKLXN0cnVjdCBXZWJBdXRo
blByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7Ci0KLWNsYXNzIFdlYkF1dGhuUHJvY2VzcyA6IHB1
YmxpYyBBdXhpbGlhcnlQcm9jZXNzLCBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V2ViQXV0
aG5Qcm9jZXNzPiB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2ViQXV0aG5Qcm9jZXNzKTsK
LXB1YmxpYzoKLSAgICBleHBsaWNpdCBXZWJBdXRoblByb2Nlc3MoQXV4aWxpYXJ5UHJvY2Vzc0lu
aXRpYWxpemF0aW9uUGFyYW1ldGVycyYmKTsKLSAgICB+V2ViQXV0aG5Qcm9jZXNzKCk7Ci0gICAg
c3RhdGljIGNvbnN0ZXhwciBXZWJDb3JlOjpBdXhpbGlhcnlQcm9jZXNzVHlwZSBwcm9jZXNzVHlw
ZSA9IFdlYkNvcmU6OkF1eGlsaWFyeVByb2Nlc3NUeXBlOjpXZWJBdXRobjsKLQotICAgIHZvaWQg
cmVtb3ZlV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzKFdlYkF1dGhuQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyYpOwotCi0gICAgdm9pZCBwcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5z
aW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBwcm9j
ZXNzRGlkUmVzdW1lKCk7Ci0gICAgdm9pZCByZXN1bWUoKTsKLQotICAgIHZvaWQgY29ubmVjdGlv
blRvV2ViUHJvY2Vzc0Nsb3NlZChJUEM6OkNvbm5lY3Rpb24mKTsKLQotICAgIFdlYkF1dGhuQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcyogd2ViUHJvY2Vzc0Nvbm5lY3Rpb24oV2ViQ29yZTo6UHJvY2Vz
c0lkZW50aWZpZXIpIGNvbnN0OwotCi0gICAgQXV0aGVudGljYXRvck1hbmFnZXImIGF1dGhlbnRp
Y2F0b3JNYW5hZ2VyKCkgeyByZXR1cm4gbV9hdXRoZW50aWNhdG9yTWFuYWdlci5nZXQoKTsgfQot
ICAgIHZvaWQgc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbihXZWJDb3JlOjpN
b2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uJiYpOwotCi0jaWYgRU5BQkxFKENGUFJF
RlNfRElSRUNUX01PREUpCi0gICAgdm9pZCBub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoY29uc3Qg
U3RyaW5nJiBkb21haW4sIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBzdGQ6Om9wdGlvbmFsPFN0
cmluZz4mIGVuY29kZWRWYWx1ZSk7Ci0jZW5kaWYKLQotcHJpdmF0ZToKLSAgICB2b2lkIHBsYXRm
b3JtSW5pdGlhbGl6ZVdlYkF1dGhuUHJvY2Vzcyhjb25zdCBXZWJBdXRoblByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMmKTsKLSAgICB2b2lkIGxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWwpOwotCi0g
ICAgLy8gQXV4aWxpYXJ5UHJvY2VzcwotICAgIHZvaWQgaW5pdGlhbGl6ZVByb2Nlc3MoY29uc3Qg
QXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpIG92ZXJyaWRlOwotICAg
IHZvaWQgaW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFs
aXphdGlvblBhcmFtZXRlcnMmKSBvdmVycmlkZTsKLSAgICB2b2lkIGluaXRpYWxpemVTYW5kYm94
KGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmLCBTYW5kYm94
SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBzaG91bGRUZXJt
aW5hdGUoKSBvdmVycmlkZTsKLQotICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50Ci0gICAg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBv
dmVycmlkZTsKLSAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwot
Ci0gICAgLy8gTWVzc2FnZSBIYW5kbGVycwotICAgIHZvaWQgaW5pdGlhbGl6ZVdlYkF1dGhuUHJv
Y2VzcyhXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJik7Ci0gICAgdm9pZCBjcmVh
dGVXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxJUEM6OkF0dGFjaG1lbnQ+
JiYpPiYmKTsKLQotICAgIC8vIENvbm5lY3Rpb25zIHRvIFdlYlByb2Nlc3Nlcy4KLSAgICBIYXNo
TWFwPFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBSZWY8V2ViQXV0aG5Db25uZWN0aW9uVG9X
ZWJQcm9jZXNzPj4gbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnM7Ci0KLSAgICBVbmlxdWVSZWY8QXV0
aGVudGljYXRvck1hbmFnZXI+IG1fYXV0aGVudGljYXRvck1hbmFnZXI7Ci19OwotCi19IC8vIG5h
bWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRoblByb2Nlc3MubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRoblByb2Nlc3MubWVzc2Fn
ZXMuaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIzZDE5YzY3MmMyY2Q4YjlhYzEz
ZTYyNDNkNWRmMWRkN2JmMTI4MGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Qcm9jZXNz
Lm1lc3NhZ2VzLmluCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotIyBDb3B5cmlnaHQg
KEMpIDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0j
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJyBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQotIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUgotIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SCi0jIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0jIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0jIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQot
Ci1tZXNzYWdlcyAtPiBXZWJBdXRoblByb2Nlc3MgewotICAgICMgSW5pdGlhbGl6ZXMgdGhlIFdl
YkF1dGhuIHByb2Nlc3MuCi0gICAgSW5pdGlhbGl6ZVdlYkF1dGhuUHJvY2VzcyhzdHJ1Y3QgV2Vi
S2l0OjpXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgcHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycykKLQotICAgICMgQ3JlYXRlcyBhIGNvbm5lY3Rpb24gZm9yIGNvbW11bmljYXRpb24g
d2l0aCBhIFdlYlByb2Nlc3MKLSAgICBDcmVhdGVXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXIpIC0+IChzdGQ6
Om9wdGlvbmFsPElQQzo6QXR0YWNobWVudD4gY29ubmVjdGlvbklkZW50aWZpZXIpCi0KLSNpZiBF
TkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKLSAgICBOb3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQo
U3RyaW5nIGRvbWFpbiwgU3RyaW5nIGtleSwgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGVuY29kZWRW
YWx1ZSkKLSNlbmRpZgotfQotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRoblBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlOGEzNmY1NDcwODVhZWViNTM5NmE2MDJkYzc3NmUxNDUxYjNjMjE2Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Q
cm9jZXNzL1dlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSw1NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIldlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgotCi0jaWYgRU5BQkxF
KFdFQl9BVVRITikKLQotI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSAiV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgiCi0KLSNpZiBQTEFURk9STShDT0NPQSkKLSNpbmNsdWRlICJB
cmd1bWVudENvZGVyc0NGLmgiCi0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVdlYkF1
dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6V2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzKCkgPSBkZWZhdWx0OwotCi12b2lkIFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKLXsKLSAgICBlbmNvZGVy
IDw8IGF1eGlsaWFyeVByb2Nlc3NQYXJhbWV0ZXJzOwotfQotCi1ib29sIFdlYkF1dGhuUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViQXV0
aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiByZXN1bHQpCi17Ci0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQuYXV4aWxpYXJ5UHJvY2Vzc1BhcmFtZXRlcnMpKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAot
Ci0jZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291
cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA1ZTA2NmQwYTVjN2QyMWUyNzBj
NDU5ZjdiMjU2ODZiNzFmZjA5YWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Qcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotCi0jaW5jbHVk
ZSAiQXV4aWxpYXJ5UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgotCi1uYW1lc3BhY2UgSVBD
IHsKLWNsYXNzIERlY29kZXI7Ci1jbGFzcyBFbmNvZGVyOwotfQotCi1uYW1lc3BhY2UgV2ViS2l0
IHsKLQotc3RydWN0IFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7Ci0gICAgV2Vi
QXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKCk7Ci0gICAgQXV4aWxpYXJ5UHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyBhdXhpbGlhcnlQcm9jZXNzUGFyYW1ldGVyczsKLQotICAgIHZvaWQg
ZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRV
Uk4gYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzJik7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJM
RShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9p
b3MvV2ViQXV0aG5Qcm9jZXNzSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3Mv
aW9zL1dlYkF1dGhuUHJvY2Vzc0lPUy5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NTViMzdkNGVmODhkZDI4NGE3MjQ5ZTQwYjYxZmI0YTE4Yjk4OTFjMS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJv
Y2Vzcy9pb3MvV2ViQXV0aG5Qcm9jZXNzSU9TLm1tCisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJXZWJB
dXRoblByb2Nlc3MuaCIKLQotI2lmIEVOQUJMRShXRUJfQVVUSE4pICYmIFBMQVRGT1JNKElPU19G
QU1JTFkpCi0KLSNpbXBvcnQgIkRlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLmgiCi0jaW1wb3J0IDxX
ZWJDb3JlL05vdEltcGxlbWVudGVkLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVUaHJlYWRT
eXN0ZW1JbnRlcmZhY2UuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKLQotdm9pZCBXZWJBdXRoblByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKGNvbnN0
IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKQotewotICAgIEluaXRX
ZWJDb3JlVGhyZWFkU3lzdGVtSW50ZXJmYWNlKCk7Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNz
Ojppbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0
aW9uUGFyYW1ldGVycyYpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBXZWJB
dXRoblByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJbml0
aWFsaXphdGlvblBhcmFtZXRlcnMmLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikK
LXsKLX0KLQotdm9pZCBXZWJBdXRoblByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYkF1dGhu
UHJvY2Vzcyhjb25zdCBXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRl
cnMpCi17Ci0gICAgUkVMRUFTRV9BU1NFUlQoaXNQYXJlbnRQcm9jZXNzQUZ1bGxXZWJCcm93c2Vy
KCp0aGlzKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxF
KFdFQl9BVVRITikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL21hYy9XZWJBdXRoblByb2Nlc3NNYWMubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9tYWMvV2ViQXV0aG5Qcm9jZXNzTWFjLm1tCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YWU4ODA4OTczYTZhZDQ2ZTNhZWJkZGMzNDhjMDhlM2Zm
NmFiMWZmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL21hYy9XZWJBdXRoblByb2Nlc3NNYWMubW0KKysr
IC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwLTIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJj
b25maWcuaCIKLSNpbXBvcnQgIldlYkF1dGhuUHJvY2Vzcy5oIgotCi0jaWYgRU5BQkxFKFdFQl9B
VVRITikgJiYgUExBVEZPUk0oTUFDKQotCi0jaW1wb3J0ICJTYW5kYm94SW5pdGlhbGl6YXRpb25Q
YXJhbWV0ZXJzLmgiCi0jaW1wb3J0ICJXS0ZvdW5kYXRpb24uaCIKLSNpbXBvcnQgIldlYkF1dGhu
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgotI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRT
dHJpbmdzLmg+Ci0jaW1wb3J0IDxwYWwvc3BpL2NvY29hL0xhdW5jaFNlcnZpY2VzU1BJLmg+Ci0j
aW1wb3J0IDxwYWwvc3BpL21hYy9ISVNlcnZpY2VzU1BJLmg+Ci0jaW1wb3J0IDxzeXNleGl0cy5o
PgotI2ltcG9ydCA8d3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oPgotI2ltcG9ydCA8d3RmL2Nv
Y29hL1R5cGVDYXN0c0NvY29hLmg+Ci0jaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQot
bmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotdm9pZCBXZWJB
dXRoblByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJbml0
aWFsaXphdGlvblBhcmFtZXRlcnMmKQotewotICAgIHNldEFwcGxpY2F0aW9uSXNEYWVtb24oKTsK
LSAgICBsYXVuY2hTZXJ2aWNlc0NoZWNrSW4oKTsKLX0KLQotdm9pZCBXZWJBdXRoblByb2Nlc3M6
OmluaXRpYWxpemVQcm9jZXNzTmFtZShjb25zdCBBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRp
b25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQotewotICAgIE5TU3RyaW5nICphcHBsaWNhdGlvbk5h
bWUgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpXRUJfVUlfTlNTVFJJTkcoQCIlQCBXZWIg
QXV0aGVudGljYXRpb24iLCAidmlzaWJsZSBuYW1lIG9mIHRoZSBXZWJBdXRobiBwcm9jZXNzLiBU
aGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuIiksIChOU1N0cmluZyAqKXBhcmFt
ZXRlcnMudWlQcm9jZXNzTmFtZV07Ci0gICAgX0xTU2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0
ZW0oa0xTRGVmYXVsdFNlc3Npb25JRCwgX0xTR2V0Q3VycmVudEFwcGxpY2F0aW9uQVNOKCksIF9r
TFNEaXNwbGF5TmFtZUtleSwgYnJpZGdlX2Nhc3QoYXBwbGljYXRpb25OYW1lKSwgbnVsbHB0cik7
Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdCBBdXhp
bGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBTYW5kYm94
SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBzYW5kYm94UGFyYW1ldGVycykKLXsKLSAgICAvLyBO
ZWVkIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0LCBiZWNhdXNlIHNlcnZpY2UgaGFzIGEgZGlmZmVy
ZW50IGJ1bmRsZSBJRC4KLSAgICBOU0J1bmRsZSAqd2ViS2l0MkJ1bmRsZSA9IFtOU0J1bmRsZSBi
dW5kbGVGb3JDbGFzczpOU0NsYXNzRnJvbVN0cmluZyhAIldLV2ViVmlldyIpXTsKLQotICAgIHNh
bmRib3hQYXJhbWV0ZXJzLnNldE92ZXJyaWRlU2FuZGJveFByb2ZpbGVQYXRoKFt3ZWJLaXQyQnVu
ZGxlIHBhdGhGb3JSZXNvdXJjZTpAImNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNzIiBv
ZlR5cGU6QCJzYiJdKTsKLQotICAgIEF1eGlsaWFyeVByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94
KHBhcmFtZXRlcnMsIHNhbmRib3hQYXJhbWV0ZXJzKTsKLX0KLQotdm9pZCBXZWJBdXRoblByb2Nl
c3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYkF1dGhuUHJvY2Vzcyhjb25zdCBXZWJBdXRoblByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMmKQotewotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQot
I2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YkF1dGhuUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5XZWJBdXRoblByb2Nlc3Muc2IuaW4g
Yi9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5XZWJB
dXRoblByb2Nlc3Muc2IuaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU5NGI3ZDI5
OTg5ZDViOWNjOThlZTU2OGI1OWRjYjlhZDNjYzc1MzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvbWFj
L2NvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNzLnNiLmluCisrKyAvZGV2L251bGwKQEAg
LTEsNDc5ICswLDAgQEAKLTsgQ29weXJpZ2h0IChDKSAyMDEwLTIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotOwotOyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLTsgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi07IGFyZSBtZXQ6
Ci07IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci07ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLTsgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLTsgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
OyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotOwotOyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi07IEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotOyBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi07IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotOyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi07IENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi07IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotOyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotOyBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotOyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi07IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LQotKHZlcnNpb24gMSkKLShkZW55IGRlZmF1bHQgKHdpdGggcGFydGlhbC1zeW1ib2xpY2F0aW9u
KSkKLShkZW55IG52cmFtKikKLShhbGxvdyBzeXN0ZW0tYXVkaXQgZmlsZS1yZWFkLW1ldGFkYXRh
KQotCi07OyBTaWxlbmNlIHNwdXJpb3VzIGxvZ2dpbmcgZHVlIHRvIHJkYXI6Ly8yMDExNzkyMyBh
bmQgcmRhcjovLzcyMzY2NDc1Ci0oZGVueSBzeXN0ZW0tcHJpdmlsZWdlIChwcml2aWxlZ2UtaWQg
UFJJVl9HTE9CQUxfUFJPQ19JTkZPKSAod2l0aCBuby1yZXBvcnQpKQotCi0jaW5jbHVkZSAiU2hh
cmVkL1NhbmRib3gvcHJlZmVyZW5jZXMuc2IiCi0KLSNpZiBFTkFCTEUoU1lTVEVNX0NPTlRFTlRf
UEFUSF9TQU5EQk9YX1JVTEVTKQotI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9TeXN0ZW1Db250
ZW50U2FuZGJveC1tYWNvcy5kZWZzPgotI2VuZGlmCi0gCi07OzsKLTs7OyBUaGUgZm9sbG93aW5n
IHJ1bGVzIHdlcmUgb3JpZ2luYWxseSBjb250YWluZWQgaW4gJ3N5c3RlbS5zYicuIFdlIGFyZSBk
dXBsaWNhdGluZyB0aGVtIGhlcmUgc28gd2UgY2FuCi07OzsgcmVtb3ZlIHVubmVlZGVkIHNhbmRi
b3ggZXh0ZW5zaW9ucy4KLTs7OwotCi07OzsgQWxsb3cgcmVnaXN0cmF0aW9uIG9mIHBlci1waWQg
c2VydmljZXMuCi0oYWxsb3cgbWFjaC1yZWdpc3RlciAobG9jYWwtbmFtZS1wcmVmaXggIiIpKQot
Ci07OzsgQWxsb3cgcmVhZCBhY2Nlc3MgdG8gc3RhbmRhcmQgc3lzdGVtIHBhdGhzLgotKGFsbG93
IGZpbGUtcmVhZCoKLSAgICAocmVxdWlyZS1hbGwgKGZpbGUtbW9kZSAjbzAwMDQpCi0gICAgKHJl
cXVpcmUtYW55IChzdWJwYXRoICIvTGlicmFyeS9GaWxlc3lzdGVtcy9OZXRGU1BsdWdpbnMiKQot
ICAgIChzdWJwYXRoICIvTGlicmFyeS9BcHBsZS9TeXN0ZW0iKQotICAgIChzdWJwYXRoICIvTGli
cmFyeS9QcmVmZXJlbmNlcy9Mb2dnaW5nIikgICAgICA7IExvZ2dpbmcgUmV0aGluawotICAgIChz
dWJwYXRoICIvU3lzdGVtIikKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwg
MTEwMDAwCi0gICAgKHN1YnBhdGggIi9wcml2YXRlL3Zhci9kYi9keWxkIikKLSNlbmRpZgotICAg
IChzdWJwYXRoICIvcHJpdmF0ZS92YXIvZGIvdGltZXpvbmUiKQotICAgIChzdWJwYXRoICIvdXNy
L2xpYiIpCi0gICAgKHN1YnBhdGggIi91c3Ivc2hhcmUiKSkpKQotCi07OzsgQWxsb3cgcmVhZGlu
ZyBpbnRlcm5hbCBwcm9maWxlcyBvbiBkZXZlbG9wbWVudCBidWlsZHMKLShhbGxvdyBmaWxlLXJl
YWQqCi0gICAgKHJlcXVpcmUtYWxsIChmaWxlLW1vZGUgI28wMDA0KQotICAgIChzdWJwYXRoICIv
QXBwbGVJbnRlcm5hbC9MaWJyYXJ5L1ByZWZlcmVuY2VzL0xvZ2dpbmciKQotICAgIChzeXN0ZW0t
YXR0cmlidXRlIGFwcGxlLWludGVybmFsKSkpCi0KLTs7OyBBbGxvdyBtYXBwaW5nIG9mIHN5c3Rl
bSBmcmFtZXdvcmtzICsgZHlsaWJzCi0oYWxsb3cgZmlsZS1tYXAtZXhlY3V0YWJsZQotICAgIChz
dWJwYXRoICIvTGlicmFyeS9BcHBsZS9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzIikKLSAgICAo
c3VicGF0aCAiL0xpYnJhcnkvQXBwbGUvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3Mi
KQotICAgIChzdWJwYXRoICIvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3JrcyIpCi0gICAgKHN1YnBh
dGggIi9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3JrcyIpCi0gICAgKHN1YnBhdGggIi91
c3IvbGliIikKLSAgICAoc3VicGF0aCAiL3Vzci9hcHBsZWludGVybmFsL2xpYiIpIDs7IDxyZGFy
Oi8vcHJvYmxlbS83MjMxNzExMj4KLSkKLQotKGFsbG93IGZpbGUtcmVhZC1tZXRhZGF0YQotICAg
IChsaXRlcmFsICIvZXRjIikKLSAgICAobGl0ZXJhbCAiL3RtcCIpCi0gICAgKGxpdGVyYWwgIi92
YXIiKQotICAgIChsaXRlcmFsICIvcHJpdmF0ZS9ldGMvbG9jYWx0aW1lIikpCi0KLQotOzs7IEFs
bG93IGFjY2VzcyB0byBzdGFuZGFyZCBzcGVjaWFsIGZpbGVzLgotKGFsbG93IGZpbGUtcmVhZCoK
LSAgICAobGl0ZXJhbCAiL2Rldi9hdXRvZnNfbm93YWl0IikKLSAgICAobGl0ZXJhbCAiL2Rldi9y
YW5kb20iKQotICAgIChsaXRlcmFsICIvZGV2L3VyYW5kb20iKQotICAgIChsaXRlcmFsICIvcHJp
dmF0ZS9ldGMvbWFzdGVyLnBhc3N3ZCIpCi0gICAgKGxpdGVyYWwgIi9wcml2YXRlL2V0Yy9wYXNz
d2QiKSkKLQotKGFsbG93IGZpbGUtcmVhZCoKLSAgICAgICBmaWxlLXdyaXRlLWRhdGEKLSAgICAo
bGl0ZXJhbCAiL2Rldi9udWxsIikKLSAgICAobGl0ZXJhbCAiL2Rldi96ZXJvIikpCi0KLShhbGxv
dyBmaWxlLXJlYWQqCi0gICAgICAgZmlsZS13cml0ZS1kYXRhCi0gICAgICAgZmlsZS1pb2N0bAot
ICAgIChsaXRlcmFsICIvZGV2L2R0cmFjZWhlbHBlciIpKQotCi07OzsgQWxsb3cgY3JlYXRpb24g
b2YgY29yZSBkdW1wcy4KLShhbGxvdyBmaWxlLXdyaXRlLWNyZWF0ZQotICAgIChyZXF1aXJlLWFs
bCAocHJlZml4ICIvY29yZXMvIikKLSAgICAgICAgKHZub2RlLXR5cGUgUkVHVUxBUi1GSUxFKSkp
Ci0KLTs7OyBBbGxvdyBJUEMgdG8gc3RhbmRhcmQgc3lzdGVtIGFnZW50cy4KLShhbGxvdyBpcGMt
cG9zaXgtc2htLXJlYWQqCi0gICAgKGlwYy1wb3NpeC1uYW1lICJhcHBsZS5zaG0ubm90aWZpY2F0
aW9uX2NlbnRlciIpCi0jaWYgIUVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQotICAgIChpcGMt
cG9zaXgtbmFtZS1wcmVmaXggImFwcGxlLmNmcHJlZnMuIikKLSNlbmRpZgotKQotCi07OzsKLTs7
OyBFbmQgcnVsZXMgb3JpZ2luYWxseSBjb3BpZWQgZnJvbSAnc3lzdGVtLnNiJwotOzs7Ci0KLTs7
OyBwcm9jZXNzLWluZm8qIGRlZmF1bHRzIHRvIGFsbG93OyBkZW55IGl0IGFuZCB0aGVuIGFsbG93
IG9wZXJhdGlvbnMgd2UgYWN0dWFsbHkgbmVlZC4KLShkZW55IHByb2Nlc3MtaW5mbyopCi0oYWxs
b3cgcHJvY2Vzcy1pbmZvLWRpcnR5Y29udHJvbCAodGFyZ2V0IHNlbGYpKQotKGFsbG93IHByb2Nl
c3MtaW5mby1waWRpbmZvKQotKGFsbG93IHByb2Nlc3MtaW5mby1zZXRjb250cm9sICh0YXJnZXQg
c2VsZikpCi0oYWxsb3cgcHJvY2Vzcy1jb2Rlc2lnbmluZy1zdGF0dXMqKQotCi0oZGVueSBzeXNj
dGwqKQotKGFsbG93IHN5c2N0bC1yZWFkCi0gICAgKHN5c2N0bC1uYW1lCi0gICAgICAgICJody5h
Y3RpdmVjcHUiIDs7IDxyZGFyOi8vcHJvYmxlbS81Njc5NTU3NT4KLSAgICAgICAgImh3LmF2YWls
Y3B1IgotICAgICAgICAiaHcuYnl0ZW9yZGVyIgotICAgICAgICAiaHcuYnVzZnJlcXVlbmN5Igot
ICAgICAgICAiaHcuYnVzZnJlcXVlbmN5X21heCIKLSAgICAgICAgImh3LmNhY2hlY29uZmlnIiA7
OyA8cmRhcjovL3Byb2JsZW0vNzgyMTM1NjM+Ci0gICAgICAgICJody5jYWNoZWxpbmVzaXplIiA7
OyA8cmRhcjovL3Byb2JsZW0vNTY3OTU1NzU+Ci0gICAgICAgICJody5jYWNoZXNpemUiIDs7IDxy
ZGFyOi8vcHJvYmxlbS83ODIxMzU2Mz4KLSAgICAgICAgImh3LmNwdWZyZXF1ZW5jeSIKLSAgICAg
ICAgImh3LmNwdWZyZXF1ZW5jeV9tYXgiCi0gICAgICAgICJody5jcHVzdWJmYW1pbHkiCi0gICAg
ICAgICJody5jcHV0aHJlYWR0eXBlIgotICAgICAgICAiaHcuY3B1dHlwZSIKLSAgICAgICAgImh3
LmwxZGNhY2hlc2l6ZSIgOzsgPHJkYXI6Ly9wcm9ibGVtLzU2Nzk1NTc1PgotICAgICAgICAiaHcu
bDFpY2FjaGVzaXplIiA7OyA8cmRhcjovL3Byb2JsZW0vNTY3OTU1NzU+Ci0gICAgICAgICJody5s
MmNhY2hlc2l6ZSIgOzsgPHJkYXI6Ly9wcm9ibGVtLzU2Nzk1NTc1PgotICAgICAgICAiaHcubDNj
YWNoZXNpemUiIDs7IDxyZGFyOi8vcHJvYmxlbS81Njc5NTU3NT4KLSAgICAgICAgImh3LmxvZ2lj
YWxjcHUiIDs7IDxyZGFyOi8vcHJvYmxlbS81Njc5NTU3NT4KLSAgICAgICAgImh3LmxvZ2ljYWxj
cHVfbWF4IiA7OyA8cmRhcjovL3Byb2JsZW0vNTY3OTU1NzU+Ci0gICAgICAgICJody5tYWNoaW5l
IgotICAgICAgICAiaHcubWVtc2l6ZSIKLSAgICAgICAgImh3Lm1vZGVsIgotICAgICAgICAiaHcu
bmNwdSIKLSAgICAgICAgImh3Lm5wZXJmbGV2ZWxzIiA7OyA8cmRhcjovL3Byb2JsZW0vNzY3ODM1
OTY+Ci0gICAgICAgICJody5wYWdlc2l6ZSIgOzsgPHJkYXI6Ly9wcm9ibGVtLzc2NzgzNTk2Pgot
ICAgICAgICAiaHcucGFnZXNpemVfY29tcGF0IiA7OyA8cmRhcjovL3Byb2JsZW0vNzY3ODM1OTY+
Ci0gICAgICAgICJody5waHlzaWNhbGNwdSIgOzsgPHJkYXI6Ly9wcm9ibGVtLzU4NDE2NDc1Pgot
ICAgICAgICAiaHcucGh5c2ljYWxjcHVfbWF4IiA7OyA8cmRhcjovL3Byb2JsZW0vNTg0MTY0NzU+
Ci0gICAgICAgICJody50YmZyZXF1ZW5jeSIKLSAgICAgICAgImh3LnRiZnJlcXVlbmN5X2NvbXBh
dCIKLSAgICAgICAgImh3LnZlY3RvcnVuaXQiCi0gICAgICAgICJrZXJuLmJvb3RhcmdzIiA7OyA8
cmRhcjovL3Byb2JsZW0vNDc3MzgwMTU+Ci0gICAgICAgICJrZXJuLmhvc3RuYW1lIgotICAgICAg
ICAia2Vybi5odl92bW1fcHJlc2VudCIKLSAgICAgICAgImtlcm4ubWF4ZmlsZXNwZXJwcm9jIgot
ICAgICAgICAia2Vybi5tZW1vcnlzdGF0dXNfbGV2ZWwiCi0gICAgICAgICJrZXJuLm9zcHJvZHVj
dHZlcnNpb24iIDs7IDxyZGFyOi8vcHJvYmxlbS81MTc1NjczOT4KLSAgICAgICAgImtlcm4ub3Ny
ZWxlYXNlIgotICAgICAgICAia2Vybi5vc3R5cGUiCi0gICAgICAgICJrZXJuLm9zdmFyaWFudF9z
dGF0dXMiCi0gICAgICAgICJrZXJuLm9zdmVyc2lvbiIKLSAgICAgICAgImtlcm4uc2FmZWJvb3Qi
Ci0gICAgICAgICJrZXJuLnZlcnNpb24iCi0gICAgICAgICJtYWNoZGVwLmNwdS5icmFuZF9zdHJp
bmciCi0gICAgICAgICJzZWN1cml0eS5tYWMuc2FuZGJveC5zZW50aW5lbCIKLSAgICAgICAgImtl
cm4udGNzbV9lbmFibGUiCi0gICAgICAgICJrZXJuLnRjc21fYXZhaWxhYmxlIgotICAgICAgICAi
dm0uZm9vdHByaW50X3N1c3BlbmQiKQotICAgIChzeXNjdGwtbmFtZS1wcmVmaXggIm5ldC5yb3V0
ZXRhYmxlIikKLSAgICAoc3lzY3RsLW5hbWUtcHJlZml4ICJody5vcHRpb25hbC4iKSA7OyA8cmRh
cjovL3Byb2JsZW0vNzE0NjI3OTA+Ci0gICAgKHN5c2N0bC1uYW1lLXByZWZpeCAiaHcucGVyZmxl
dmVsIikgOzsgPHJkYXI6Ly9wcm9ibGVtLzc2NzgzNTk2PgotKQotCi0oYWxsb3cgc3lzY3RsLXdy
aXRlCi0gICAgKHN5c2N0bC1uYW1lCi0gICAgICAgICJrZXJuLnRjc21fZW5hYmxlIikpCi0KLShk
ZW55IG1hY2gtbG9va3VwICh4cGMtc2VydmljZS1uYW1lLXByZWZpeCAiIikpCi0oYWxsb3cgbWFj
aC1sb29rdXAKLSAgICAoeHBjLXNlcnZpY2UtbmFtZSAiY29tLmFwcGxlLlBlcmZvcm1hbmNlQW5h
bHlzaXMuYW5pbWF0aW9ucGVyZmQiKQotICAgICh4cGMtc2VydmljZS1uYW1lICJjb20uYXBwbGUu
YWNjZXNzaWJpbGl0eS5tZWRpYWFjY2Vzc2liaWxpdHlkIikKLSAgICAoeHBjLXNlcnZpY2UtbmFt
ZSAiY29tLmFwcGxlLmF1ZGlvLlNhbmRib3hIZWxwZXIiKQotICAgICh4cGMtc2VydmljZS1uYW1l
ICJjb20uYXBwbGUuY29yZW1lZGlhLnZpZGVvZGVjb2RlciIpCi0gICAgKHhwYy1zZXJ2aWNlLW5h
bWUgImNvbS5hcHBsZS5jb3JlbWVkaWEudmlkZW9lbmNvZGVyIikKLSAgICAoeHBjLXNlcnZpY2Ut
bmFtZSAiY29tLmFwcGxlLmhpc2VydmljZXMteHBjc2VydmljZSIpCi0pCi0KLTs7IFV0aWxpdHkg
ZnVuY3Rpb25zIGZvciBob21lIGRpcmVjdG9yeSByZWxhdGl2ZSBwYXRoIGZpbHRlcnMKLShkZWZp
bmUgKGhvbWUtcmVnZXggaG9tZS1yZWxhdGl2ZS1yZWdleCkKLSAgKHJlZ2V4IChzdHJpbmctYXBw
ZW5kICJeIiAocmVnZXgtcXVvdGUgKHBhcmFtICJIT01FX0RJUiIpKSBob21lLXJlbGF0aXZlLXJl
Z2V4KSkpCi0KLShkZWZpbmUgKGhvbWUtc3VicGF0aCBob21lLXJlbGF0aXZlLXN1YnBhdGgpCi0g
IChzdWJwYXRoIChzdHJpbmctYXBwZW5kIChwYXJhbSAiSE9NRV9ESVIiKSBob21lLXJlbGF0aXZl
LXN1YnBhdGgpKSkKLQotKGRlZmluZSAoaG9tZS1saXRlcmFsIGhvbWUtcmVsYXRpdmUtbGl0ZXJh
bCkKLSAgKGxpdGVyYWwgKHN0cmluZy1hcHBlbmQgKHBhcmFtICJIT01FX0RJUiIpIGhvbWUtcmVs
YXRpdmUtbGl0ZXJhbCkpKQotCi0oZGVmaW5lIChhbGxvdy1yZWFkLWRpcmVjdG9yeS1hbmQtaXNz
dWUtcmVhZC1leHRlbnNpb25zIHBhdGgpCi0gICAgKGlmIHBhdGgKLSAgICAgICAgKGJlZ2luCi0g
ICAgICAgICAgICAoYWxsb3cgZmlsZS1yZWFkKiAoc3VicGF0aCBwYXRoKSkKLSAgICAgICAgICAg
IChhbGxvdyBmaWxlLWlzc3VlLWV4dGVuc2lvbiAocmVxdWlyZS1hbGwgKGV4dGVuc2lvbi1jbGFz
cyAiY29tLmFwcGxlLmFwcC1zYW5kYm94LnJlYWQiKSAoc3VicGF0aCBwYXRoKSkpKSkpCi0KLShk
ZWZpbmUgKGFsbG93LXJlYWQtd3JpdGUtZGlyZWN0b3J5LWFuZC1pc3N1ZS1yZWFkLXdyaXRlLWV4
dGVuc2lvbnMgcGF0aCkKLSAgICAoaWYgcGF0aAotICAgICAgICAoYmVnaW4KLSAgICAgICAgICAg
IChhbGxvdyBmaWxlLXJlYWQqIGZpbGUtd3JpdGUqIChzdWJwYXRoIHBhdGgpKQotICAgICAgICAg
ICAgKGFsbG93IGZpbGUtaXNzdWUtZXh0ZW5zaW9uIChyZXF1aXJlLWFsbCAoZXh0ZW5zaW9uLWNs
YXNzICJjb20uYXBwbGUuYXBwLXNhbmRib3gucmVhZCIpIChzdWJwYXRoIHBhdGgpKSkKLSAgICAg
ICAgICAgIChhbGxvdyBmaWxlLWlzc3VlLWV4dGVuc2lvbiAocmVxdWlyZS1hbGwgKGV4dGVuc2lv
bi1jbGFzcyAiY29tLmFwcGxlLmFwcC1zYW5kYm94LnJlYWQtd3JpdGUiKSAoc3VicGF0aCBwYXRo
KSkpKSkpCi0KLTs7IFJlbW92ZSB3aGVuIDxyZGFyOi8vcHJvYmxlbS8yOTY0NjA5ND4gaXMgZml4
ZWQuCi0oZGVmaW5lIChIRVgtcGF0dGVybi1tYXRjaC1nZW5lcmF0b3IgcGF0dGVybi1kZXNjcmlw
dG9yKQotICAgIChsZXRyZWMgKChwYXR0ZXJuLXN0cmluZyAiIikpCi0gICAgICAgIChmb3ItZWFj
aCAgKGxhbWJkYSAocmVwZWF0LWNvdW50KQotICAgICAgICAgICAgKGlmICh6ZXJvPyByZXBlYXQt
Y291bnQpCi0gICAgICAgICAgICAgICAgKHNldCEgcGF0dGVybi1zdHJpbmcgKHN0cmluZy1hcHBl
bmQgIHBhdHRlcm4tc3RyaW5nICItIikpCi0gICAgICAgICAgICAgICAgKGxldCBhcHBlbmRlciAo
KGNvdW50IHJlcGVhdC1jb3VudCkpCi0gICAgICAgICAgICAgICAgICAgIChpZiAoPiBjb3VudCAw
KQotICAgICAgICAgICAgICAgICAgICAgICAgKGJlZ2luCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHNldCEgcGF0dGVybi1zdHJpbmcgKHN0cmluZy1hcHBlbmQgIHBhdHRlcm4tc3RyaW5n
ICJbMC05QS1GXSIpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmRlciAoLSBj
b3VudCAxKSkpKSkpKQotICAgICAgICAgICAgcGF0dGVybi1kZXNjcmlwdG9yKQotICAgIHBhdHRl
cm4tc3RyaW5nKSkKLQotOzsgcmV0dXJuIGEgcmVnZXggcGF0dGVybiBtYXRjaGluZyBzdHJpbmcg
Zm9yIDgtNC00LTQtMTIgVVVJRHM6Ci0oZGVmaW5lICh1dWlkLUhFWC1wYXR0ZXJuLW1hdGNoLXN0
cmluZykKLSAgICAoSEVYLXBhdHRlcm4tbWF0Y2gtZ2VuZXJhdG9yICcoOCAwIDQgMCA0IDAgNCAw
IDEyKSkpCi0KLTs7IGdsb2JhbCB0byBob2xkIHRoZSBjb21wdXRlZCBVVUlEIG1hdGNoaW5nIHBh
dHRlcm4uCi0oZGVmaW5lICp1dWlkLXBhdHRlcm4qICIiKQotCi0oZGVmaW5lICh1dWlkLXJlZ2V4
LXN0cmluZykKLSAgICAoaWYgKHplcm8/IChzdHJpbmctbGVuZ3RoICp1dWlkLXBhdHRlcm4qKSkK
LSAgICAgICAgKHNldCEgKnV1aWQtcGF0dGVybiogKHV1aWQtSEVYLXBhdHRlcm4tbWF0Y2gtc3Ry
aW5nKSkpCi0gICAgKnV1aWQtcGF0dGVybiopCi0KLTs7IFJlYWQtb25seSBwcmVmZXJlbmNlcyBh
bmQgZGF0YQotKGFsbG93IGZpbGUtcmVhZCoKLSAgICA7OyBCYXNpYyBzeXN0ZW0gcGF0aHMKLSAg
ICAoc3VicGF0aCAiL0xpYnJhcnkvRGljdGlvbmFyaWVzIikKLSAgICAoc3VicGF0aCAiL0xpYnJh
cnkvRm9udHMiKQotICAgIChzdWJwYXRoICIvTGlicmFyeS9GcmFtZXdvcmtzIikKLSAgICAoc3Vi
cGF0aCAiL0xpYnJhcnkvTWFuYWdlZCBQcmVmZXJlbmNlcyIpCi0gICAgKHN1YnBhdGggIi9MaWJy
YXJ5L1NwZWVjaC9TeW50aGVzaXplcnMiKQotICAgIChyZWdleCAjIl4vcHJpdmF0ZS9ldGMvKGhv
c3RzfGdyb3VwfHBhc3N3ZCkkIikKLQotICAgIDs7IFN5c3RlbSBhbmQgdXNlciBwcmVmZXJlbmNl
cwotICAgIChob21lLWxpdGVyYWwgIi8uQ0ZVc2VyVGV4dEVuY29kaW5nIikKLQotICAgIDs7IEZJ
WE1FOiBUaGlzIHNob3VsZCBiZSByZW1vdmVkIHdoZW4gPHJkYXI6Ly9wcm9ibGVtLzg5NTc4NDU+
IGlzIGZpeGVkLgotICAgIChob21lLXN1YnBhdGggIi9MaWJyYXJ5L0ZvbnRzIikKLQotICAgIChz
dWJwYXRoICIvTGlicmFyeS9BdWRpby9QbHVnLUlucy9IQUwiKQotCi0gICAgKGhvbWUtc3VicGF0
aCAiL0xpYnJhcnkvRGljdGlvbmFyaWVzIikpCi0KLShhbGxvdyBmaWxlLXJlYWQtZGF0YQotICAg
IChsaXRlcmFsICIvdXNyL2xvY2FsL2xpYi9sb2ciKSA7IDxyZGFyOi8vcHJvYmxlbS8zNjYyOTQ5
NT4KLSAgICA7OyBOZWVkZWQgZm9yIEFFUzMgc3VwcG9ydAotICAgIChzdWJwYXRoICIvTGlicmFy
eS9BdWRpby9QbHVnLUlucy9Db21wb25lbnRzIikpCi0KLTs7IFByZWZlcmVuY2VzIHN1cHBvcnQK
LShzaGFyZWQtcHJlZmVyZW5jZXMtcmVhZAotICAgICJjb20uYXBwbGUuQWNjZXNzaWJpbGl0eSIK
LSAgICAiY29tLmFwcGxlLkFUUyIKLSAgICAiY29tLmFwcGxlLkNvcmVHcmFwaGljcyIKLSAgICAi
Y29tLmFwcGxlLkRvd25sb2FkQXNzZXNzbWVudCIKLSAgICAiY29tLmFwcGxlLkhJVG9vbGJveCIK
LSAgICAiY29tLmFwcGxlLkxhdW5jaFNlcnZpY2VzIgotICAgICJjb20uYXBwbGUuTXVsdGl0b3Vj
aFN1cHBvcnQiIDs7IEZJWE1FOiBSZW1vdmUgd2hlbiA8cmRhcjovL3Byb2JsZW0vMTMwMTE2MzM+
IGlzIGZpeGVkLgotICAgICJjb20uYXBwbGUuU2VydmljZXNNZW51LlNlcnZpY2VzIiA7OyBOZWVk
ZWQgZm9yIE5TQXR0cmlidXRlZFN0cmluZyA8cmRhcjovL3Byb2JsZW0vMTA4NDQzMjE+Ci0gICAg
ImNvbS5hcHBsZS5WaWV3QnJpZGdlIiA7OyBOZWVkZWQgZm9yIElucHV0IGVsZW1lbnRzLgotICAg
ICJjb20uYXBwbGUuV2ViRm91bmRhdGlvbiIKLSAgICAiY29tLmFwcGxlLmF2Zm91bmRhdGlvbiIK
LSAgICAiY29tLmFwcGxlLmF2Zm91bmRhdGlvbi5mcmVjZW50cyIgOzsgPHJkYXI6Ly9wcm9ibGVt
LzMzMTM3MDI5PgotICAgICJjb20uYXBwbGUuYXZmb3VuZGF0aW9uLnZpZGVvcGVyZm9ybWFuY2Vo
dWQiIDs7IDxyZGFyOi8vcHJvYmxlbS8zMTU5NDU2OD4KLSAgICAiY29tLmFwcGxlLmNvcmVtZWRp
YSIKLSAgICAiY29tLmFwcGxlLmNyeXB0byIKLSAgICAiY29tLmFwcGxlLmRyaXZlci5BcHBsZUJs
dWV0b290aE11bHRpdG91Y2gubW91c2UiCi0gICAgImNvbS5hcHBsZS5kcml2ZXIuQXBwbGVCbHVl
dG9vdGhNdWx0aXRvdWNoLnRyYWNrcGFkIgotICAgICJjb20uYXBwbGUuZHJpdmVyLkFwcGxlSElE
TW91c2UiCi0gICAgImNvbS5hcHBsZS5sb29rdXAuc2hhcmVkIgotICAgICJjb20uYXBwbGUubWVk
aWFhY2Nlc3NpYmlsaXR5IiA7OyBOZWVkZWQgZm9yIGN1c3RvbSBjYXB0aW9uIHN0eWxlcwotICAg
ICJjb20uYXBwbGUubmV0d29ya0Nvbm5lY3QiCi0gICAgImNvbS5hcHBsZS5zcGVlY2gudm9pY2Uu
cHJlZnMiCi0gICAgImNvbS5hcHBsZS5zeXN0ZW1zb3VuZCIKLSAgICAiY29tLmFwcGxlLnVuaXZl
cnNhbGFjY2VzcyIKLSAgICAiZWR1Lm1pdC5LZXJiZXJvcyIKLSAgICAicGJzIikgOzsgTmVlZGVk
IGZvciBOU0F0dHJpYnV0ZWRTdHJpbmcgPHJkYXI6Ly9wcm9ibGVtLzEwODQ0MzIxPgotCi0oYWxs
b3ctcmVhZGluZy1nbG9iYWwtcHJlZmVyZW5jZXMpCi0KLTsgKFRlbXBvcmFyeSkgYmFja3dhcmQg
Y29tcGF0aWJpbGl0eSB3aXRoIG5vbi1DRlByZWZlcmVuY2VzIHJlYWRlcnMuCi0oYWxsb3cgZmls
ZS1yZWFkKgotICAgIChsaXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcy9jb20uYXBwbGUuVmll
d0JyaWRnZS5wbGlzdCIpKQotCi07IEZJWE1FOiBUaGlzIGlzIG5lZWRlZCBmb3Igc29tZSBzZWN1
cml0eSBmcmFtZXdvcmsgY2FsbHMgKHRoYXQgdXNlIG5vbi1DRlByZWZlcmVuY2VzIHJlYWRlcnMp
Ci0oYWxsb3cgZmlsZS1yZWFkLWRhdGEKLSAgICAobGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5j
ZXMvY29tLmFwcGxlLnNlY3VyaXR5LnBsaXN0IikKLSAgICAoaG9tZS1zdWJwYXRoICIvTGlicmFy
eS9QcmVmZXJlbmNlcy9jb20uYXBwbGUuc2VjdXJpdHkucGxpc3QiKSkKLQotOzsgT24tZGlzayBX
ZWJLaXQyIGZyYW1ld29yayBsb2NhdGlvbiwgdG8gYWNjb3VudCBmb3IgZGVidWcgaW5zdGFsbGF0
aW9ucyBvdXRzaWRlIG9mIC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzLAotOzsgYW5kIHRvIGFs
bG93IGlzc3VpbmcgZXh0ZW5zaW9ucy4KLShhbGxvdy1yZWFkLWRpcmVjdG9yeS1hbmQtaXNzdWUt
cmVhZC1leHRlbnNpb25zIChwYXJhbSAiV0VCS0lUMl9GUkFNRVdPUktfRElSIikpCi0KLTs7IEFs
bG93IGlzc3VpbmcgZXh0ZW5zaW9ucyB0byBzeXN0ZW0gbGlicmFyaWVzIHRoYXQgdGhlIE5ldHdv
cmsgcHJvY2VzcyBjYW4gYWxyZWFkeSByZWFkLgotOzsgVGhpcyBpcyB0byBhdm9pZCB3YXJuaW5n
cyBhdHRlbXB0aW5nIHRvIGNyZWF0ZSBleHRlbnNpb25zIGZvciB0aGVzZSByZXNvdXJjZXMuCi0o
YWxsb3ctcmVhZC1kaXJlY3RvcnktYW5kLWlzc3VlLXJlYWQtZXh0ZW5zaW9ucyAiL1N5c3RlbS9M
aWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1dlYkluc3BlY3RvclVJLmZyYW1ld29yayIpCi0KLSNp
ZiBVU0UoU1lTVEVNX0NPTlRFTlRfUEFUSCkKLShtYXAgYWxsb3ctcmVhZC1kaXJlY3RvcnktYW5k
LWlzc3VlLXJlYWQtZXh0ZW5zaW9ucwotICAgIHJlYWQtZGlyZWN0b3J5LWFuZC1pc3N1ZS1yZWFk
LWV4dGVuc2lvbi1zZWNvbmRhcnktcGF0aHMpCi0jZW5kaWYKLQotOzsgU2FuZGJveCBleHRlbnNp
b25zCi0oZGVmaW5lIChhcHBseS1yZWFkLWFuZC1pc3N1ZS1leHRlbnNpb24gb3AgcGF0aC1maWx0
ZXIpCi0gICAgKG9wIGZpbGUtcmVhZCogcGF0aC1maWx0ZXIpCi0gICAgKG9wIGZpbGUtaXNzdWUt
ZXh0ZW5zaW9uIChyZXF1aXJlLWFsbCAoZXh0ZW5zaW9uLWNsYXNzICJjb20uYXBwbGUuYXBwLXNh
bmRib3gucmVhZCIpIHBhdGgtZmlsdGVyKSkpCi0oZGVmaW5lIChhcHBseS13cml0ZS1hbmQtaXNz
dWUtZXh0ZW5zaW9uIG9wIHBhdGgtZmlsdGVyKQotICAgIChvcCBmaWxlLXdyaXRlKiBwYXRoLWZp
bHRlcikKLSAgICAob3AgZmlsZS1pc3N1ZS1leHRlbnNpb24gKHJlcXVpcmUtYWxsIChleHRlbnNp
b24tY2xhc3MgImNvbS5hcHBsZS5hcHAtc2FuZGJveC5yZWFkLXdyaXRlIikgcGF0aC1maWx0ZXIp
KSkKLShkZWZpbmUgKHJlYWQtb25seS1hbmQtaXNzdWUtZXh0ZW5zaW9ucyBwYXRoLWZpbHRlcikK
LSAgICAoYXBwbHktcmVhZC1hbmQtaXNzdWUtZXh0ZW5zaW9uIGFsbG93IHBhdGgtZmlsdGVyKSkK
LShkZWZpbmUgKHJlYWQtd3JpdGUtYW5kLWlzc3VlLWV4dGVuc2lvbnMgcGF0aC1maWx0ZXIpCi0g
ICAgKGFwcGx5LXJlYWQtYW5kLWlzc3VlLWV4dGVuc2lvbiBhbGxvdyBwYXRoLWZpbHRlcikKLSAg
ICAoYXBwbHktd3JpdGUtYW5kLWlzc3VlLWV4dGVuc2lvbiBhbGxvdyBwYXRoLWZpbHRlcikpCi0o
cmVhZC1vbmx5LWFuZC1pc3N1ZS1leHRlbnNpb25zIChleHRlbnNpb24gImNvbS5hcHBsZS5hcHAt
c2FuZGJveC5yZWFkIikpCi0ocmVhZC13cml0ZS1hbmQtaXNzdWUtZXh0ZW5zaW9ucyAoZXh0ZW5z
aW9uICJjb20uYXBwbGUuYXBwLXNhbmRib3gucmVhZC13cml0ZSIpKQotCi0oYWxsb3cgbWFjaC1s
b29rdXAKLSNpZiBQTEFURk9STShNQUMpCi0gICAgKHdpdGggcmVwb3J0KSAod2l0aCB0ZWxlbWV0
cnkpCi0jZW5kaWYKLSAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5hdWRpby5BdWRpb0NvbXBv
bmVudFJlZ2lzdHJhciIpCi0gICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuYXdkZCIpCi0jaWYg
IUVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxl
LmNmcHJlZnNkLmFnZW50IikKLSNlbmRpZgotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNv
b2tpZWQiKQotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmljb25zZXJ2aWNlcyIpCi0gICAg
KGdsb2JhbC1uYW1lICJjb20uYXBwbGUuaWNvbnNlcnZpY2VzLnN0b3JlIikKLSAgICAoZ2xvYmFs
LW5hbWUgImNvbS5hcHBsZS5zeXN0ZW0ubG9nZ2VyIikKLSkKLQotKHdpdGgtZmlsdGVyIChzeXN0
ZW0tYXR0cmlidXRlIGFwcGxlLWludGVybmFsKQotICAgIChhbGxvdyBtYWNoLWxvb2t1cAotICAg
ICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5hbmFseXRpY3NkIikKLSAgICAgICAgKGdsb2Jh
bC1uYW1lICJjb20uYXBwbGUuZGlhZ25vc3RpY2QiKSkpCi0KLTs7IFZhcmlvdXMgc2VydmljZXMg
cmVxdWlyZWQgYnkgQXBwS2l0IGFuZCBvdGhlciBmcmFtZXdvcmtzCi0oYWxsb3cgbWFjaC1sb29r
dXAKLSAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5Qb3dlck1hbmFnZW1lbnQuY29udHJv
bCIpCi0gICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuU3lzdGVtQ29uZmlndXJhdGlvbi5j
b25maWdkIikKLSAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5hc3NlcnRpb25kLnByb2Nl
c3Nhc3NlcnRpb25jb25uZWN0aW9uIikKLSAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5h
dWRpby5TeXN0ZW1Tb3VuZFNlcnZlci1PU1giKQotICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFw
cGxlLmF1ZGlvLmF1ZGlvaGFsZCIpCi0jaWYgIUVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQot
ICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIpCi0jZW5kaWYK
LSAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5jb3Jlc2VydmljZXMubGF1bmNoc2Vydmlj
ZXNkIikKLSAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5mb250cyIpCi0gICAgICAgKGds
b2JhbC1uYW1lICJjb20uYXBwbGUubWVkaWFyZW1vdGVkLnhwYyIpCi0gICAgICAgKGdsb2JhbC1u
YW1lICJjb20uYXBwbGUubG9nZCIpCi0gICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUubG9n
ZC5ldmVudHMiKQotICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmxzZC5tYXBkYiIpCi0g
ICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUubHNrZGQiKSA7OyA8cmRhcjovL3Byb2JsZW0v
NDkxMjM4NTU+Ci0gICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUudGNjZCIpCi0gICAgICAg
KGdsb2JhbC1uYW1lICJjb20uYXBwbGUudGNjZC5zeXN0ZW0iKQotICAgICAgIChnbG9iYWwtbmFt
ZSAiY29tLmFwcGxlLnRydXN0ZC5hZ2VudCIpCi0gICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBw
bGUuQ0FSZW5kZXJTZXJ2ZXIiKSA7IE5lZWRlZCBmb3IgW0NBQ29udGV4dCByZW1vdGVDb250ZXh0
V2l0aE9wdGlvbnNdCi0pCi0KLTs7IDxyZGFyOi8vcHJvYmxlbS80NzI2ODE2Nj4KLShhbGxvdyBt
YWNoLWxvb2t1cCAoeHBjLXNlcnZpY2UtbmFtZSAiY29tLmFwcGxlLk1UTENvbXBpbGVyU2Vydmlj
ZSIpKQotCi0oZGVueSBtYWNoLWxvb2t1cCAod2l0aCBuby1sb2cpCi0gICAgKGdsb2JhbC1uYW1l
ICJjb20uYXBwbGUuQ29yZVNlcnZpY2VzLmNvcmVzZXJ2aWNlc2QiKQotICAgIChnbG9iYWwtbmFt
ZSAiY29tLmFwcGxlLkRpc2tBcmJpdHJhdGlvbi5kaXNrYXJiaXRyYXRpb25kIikKLSAgICAoZ2xv
YmFsLW5hbWUgImNvbS5hcHBsZS5WaWV3QnJpZGdlQXV4aWxpYXJ5IikKLSAgICAoZ2xvYmFsLW5h
bWUgImNvbS5hcHBsZS53aW5kb3dzZXJ2ZXIuYWN0aXZlIikpCi0KLTs7IE5lZWRlZCB0byBzdXBw
b3J0IGVuY3J5cHRlZCBtZWRpYSBwbGF5YmFjayA8cmRhcjovL3Byb2JsZW0vNDAwMzg0Nzg+Ci0o
YWxsb3cgbWFjaC1sb29rdXAKLSAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5TZWN1cml0eVNl
cnZlciIpCi0gICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUub2NzcGQiKSkKLQotKGFsbG93IGZp
bGUtcmVhZCogKHN1YnBhdGggIi9wcml2YXRlL3Zhci9kYi9tZHMvc3lzdGVtIikpIDs7IEZJWE1F
OiBUaGlzIHNob3VsZCBiZSByZW1vdmVkIHdoZW4gPHJkYXI6Ly9wcm9ibGVtLzk1Mzg0MTQ+IGlz
IGZpeGVkLgotKHdpdGgtZmlsdGVyICh1aWQgMCkKLSAgICAoYWxsb3cgZmlsZS13cml0ZSoKLSAg
ICAgICAgKHN1YnBhdGggIi9wcml2YXRlL3Zhci9kYi9tZHMvc3lzdGVtIikpIDs7IEZJWE1FOiBU
aGlzIHNob3VsZCBiZSByZW1vdmVkIHdoZW4gPHJkYXI6Ly9wcm9ibGVtLzk1Mzg0MTQ+IGlzIGZp
eGVkLgotKQotCi0oYWxsb3cgZmlsZS1yZWFkKgotICAgICAgIChzdWJwYXRoICIvcHJpdmF0ZS92
YXIvZGIvbWRzIikKLSAgICAgICAobGl0ZXJhbCAiL3ByaXZhdGUvdmFyL2RiL0RldGFjaGVkU2ln
bmF0dXJlcyIpKQotCi0oYWxsb3cgaXBjLXBvc2l4LXNobS1yZWFkKiBpcGMtcG9zaXgtc2htLXdy
aXRlLWRhdGEgaXBjLXBvc2l4LXNobS13cml0ZS1jcmVhdGUKLSAgICAgICAoaXBjLXBvc2l4LW5h
bWUgImNvbS5hcHBsZS5BcHBsZURhdGFiYXNlQ2hhbmdlZCIpKQotCi07OyBDb3JlRm91bmRhdGlv
bi4gV2UgZG9uJ3QgaW1wb3J0IGNvbS5hcHBsZS5jb3JlZm91bmRhdGlvbi5zYiwgYmVjYXVzZSBp
dCBhbGxvd3MgdW5uZWNlc3NhcnkgYWNjZXNzIHRvIHBhc3RlYm9hcmQuCi0oYWxsb3cgbWFjaC1s
b29rdXAKLSAgICAoZ2xvYmFsLW5hbWUtcHJlZml4ICJjb20uYXBwbGUuZGlzdHJpYnV0ZWRfbm90
aWZpY2F0aW9ucyIpCi0jaWYgIUhBVkUoQ1NDSEVDS0ZJWERJU0FCTEUpCi0gICAgKGdsb2JhbC1u
YW1lICJjb20uYXBwbGUuQ29yZVNlcnZpY2VzLmNvcmVzZXJ2aWNlc2QiKQotI2VuZGlmCi0pCi0K
LShhbGxvdyBmaWxlLXJlYWQtZGF0YQotICAgIChsaXRlcmFsICIvZGV2L2F1dG9mc19ub3dhaXQi
KSkgOyBVc2VkIGJ5IENGIHRvIGNpcmN1bXZlbnQgYXV0b21vdW50IHRyaWdnZXJzCi0oYWxsb3cg
aXBjLXBvc2l4LXNobQotICAgIChpcGMtcG9zaXgtbmFtZS1wcmVmaXggIkNGUEJTOiIpKSA7IDxy
ZGFyOi8vcHJvYmxlbS8xMzc1NzQ3NT4KLShhbGxvdyBzeXN0ZW0tZnNjdGwgKGZzY3RsLWNvbW1h
bmQgKF9JTyAiaCIgNDcpKSkKLQotOzsgTmV0d29ya2luZwotKGFsbG93IG5ldHdvcmstb3V0Ym91
bmQKLSAgICAgICA7OyBPYmpDIG1hcF9pbWFnZXMgbmVlZHMgdG8gc2VuZCBsb2dnaW5nIGRhdGEg
dG8gc3lzbG9nLiA8cmRhcjovL3Byb2JsZW0vMzk3Nzg5MTg+Ci0gICAgICAgKGxpdGVyYWwgIi9w
cml2YXRlL3Zhci9ydW4vc3lzbG9nIikKLSkKLQotOzsgQ0ZOZXR3b3JrCi0oYWxsb3cgZmlsZS1y
ZWFkLWRhdGEgKHBhdGggIi9wcml2YXRlL3Zhci9kYi9uc3VybHN0b3JhZ2VkL2RhZnNhRGF0YS5i
aW4iKSkKLQotI2lmIFBMQVRGT1JNKE1BQykKLTs7IEZJWE1FIHNob3VsZCBiZSByZW1vdmVkIHdo
ZW4gPHJkYXI6Ly9wcm9ibGVtLzkzNDcyMDU+ICsgcmVsYXRlZCByYWRhciBpbiBTYWZhcmkgaXMg
Zml4ZWQKLShhbGxvdyBtYWNoLWxvb2t1cAotICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxl
LnN5c3RlbS5sb2dnZXIiKQotICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLnN5c3RlbS5u
b3RpZmljYXRpb25fY2VudGVyIikpCi0jZW5kaWYKLQotKGRlbnkgZmlsZS13cml0ZS1jcmVhdGUg
KHZub2RlLXR5cGUgU1lNTElOSykpCi0KLTs7IFJlc2VydmUgYSBuYW1lc3BhY2UgZm9yIGFkZGl0
aW9uYWwgcHJvdGVjdGVkIGV4dGVuZGVkIGF0dHJpYnV0ZXMuCi0oZGVueSBmaWxlLXJlYWQteGF0
dHIgZmlsZS13cml0ZS14YXR0ciAoeGF0dHItcHJlZml4ICJjb20uYXBwbGUuc2VjdXJpdHkucHJp
dmF0ZS4iKSkKLQotKGRlbnkgZmlsZS1yZWFkKiBmaWxlLXdyaXRlKiAod2l0aCBuby1sb2cpCi0g
ICAgICAgOzsgRklYTUU6IFNob3VsZCBiZSByZW1vdmVkIGFmdGVyIDxyZGFyOi8vcHJvYmxlbS8x
MDQ2Mzg4MT4gaXMgZml4ZWQuCi0gICAgICAgKGhvbWUtbGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVy
ZW5jZXMvY29tLmFwcGxlLkxhdW5jaFNlcnZpY2VzLlF1YXJhbnRpbmVFdmVudHNWMiIpCi0gICAg
ICAgKGhvbWUtbGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tLmFwcGxlLkxhdW5jaFNl
cnZpY2VzLlF1YXJhbnRpbmVFdmVudHNWMi1qb3VybmFsIikpCi0KLTs7IERlbnkgYWNjZXNzIG5l
ZWRlZCBmb3IgdW5uZWNlc3NhcnkgTlNBcHBsaWNhdGlvbiBpbml0aWFsaXphdGlvbi4KLTs7IEZJ
WE1FOiBUaGlzIGNhbiBiZSByZW1vdmVkIG9uY2UgPHJkYXI6Ly9wcm9ibGVtLzEzMDExNjMzPiBp
cyBmaXhlZC4KLShkZW55IGZpbGUtcmVhZCogKHdpdGggbm8tbG9nKQotICAgICAgIChzdWJwYXRo
ICIvTGlicmFyeS9JbnB1dE1hbmFnZXJzIikKLSAgICAgICAoaG9tZS1zdWJwYXRoICIvTGlicmFy
eS9JbnB1dE1hbmFnZXJzIikpCi0oZGVueSB1c2VyLXByZWZlcmVuY2UtcmVhZCAod2l0aCBuby1s
b2cpCi0gICAgKHByZWZlcmVuY2UtZG9tYWluICJjb20uYXBwbGUuc3BlZWNoLnJlY29nbml0aW9u
LkFwcGxlU3BlZWNoUmVjb2duaXRpb24ucHJlZnMiKSkKLShkZW55IG1hY2gtbG9va3VwICh3aXRo
IG5vLWxvZykKLSAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5jb3Jlc2VydmljZXMuYXBw
bGVldmVudHMiKQotICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLnBhc3RlYm9hcmQuMSIp
Ci0gICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuc3BlZWNoLnJlY29nbml0aW9uc2VydmVy
IikpCi0jaWYgUExBVEZPUk0oTUFDKQotOzsgQWxzbyBwYXJ0IG9mIHVubmVjZXNzYXJ5IE5TQXBw
bGljYXRpb24gaW5pdGlhbGl6YXRpb24sIGJ1dCB3ZSBjYW4ndCBibG9jayBhY2Nlc3MgdG8gdGhl
c2UgeWV0LCBzZWUgPHJkYXI6Ly9wcm9ibGVtLzEzODY5NzY1Pi4KLShhbGxvdyBmaWxlLXJlYWQq
Ci0gICAgICAgKHN1YnBhdGggIi9MaWJyYXJ5L0NvbXBvbmVudHMiKQotICAgICAgIChzdWJwYXRo
ICIvTGlicmFyeS9LZXlib2FyZCBMYXlvdXRzIikKLSAgICAgICAoc3VicGF0aCAiL0xpYnJhcnkv
SW5wdXQgTWV0aG9kcyIpCi0gICAgICAgKGhvbWUtc3VicGF0aCAiL0xpYnJhcnkvQ29tcG9uZW50
cyIpCi0gICAgICAgKGhvbWUtc3VicGF0aCAiL0xpYnJhcnkvS2V5Ym9hcmQgTGF5b3V0cyIpCi0g
ICAgICAgKGhvbWUtc3VicGF0aCAiL0xpYnJhcnkvSW5wdXQgTWV0aG9kcyIpKQotI2VuZGlmCi0K
LTs7IERhdGEgRGV0ZWN0b3JzCi0oYWxsb3cgZmlsZS1yZWFkKiAoc3VicGF0aCAiL3ByaXZhdGUv
dmFyL2RiL2RhdGFkZXRlY3RvcnMvc3lzIikpCi0KLTs7IEFsbG93IGFjY2Vzc2VzIHRvIEhJRAot
KGFsbG93IGlva2l0LW9wZW4KLSAgICAoaW9raXQtdXNlci1jbGllbnQtY2xhc3MgIklPSElETGli
VXNlckNsaWVudCIpKQotCi07OyBBbGxvdyBhY2Nlc3NlcyB0byBMb2NhbEF1dGhlbnRpY2F0aW9u
IGFuZCBSZW1vdGVTZXJ2aWNlCi0oYWxsb3cgbWFjaC1sb29rdXAKLSAgICAoZ2xvYmFsLW5hbWUg
ImNvbS5hcHBsZS5Db3JlQXV0aGVudGljYXRpb24uYWdlbnQiKQotICAgIChnbG9iYWwtbmFtZSAi
Y29tLmFwcGxlLnJlbW90ZWQiKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDViZGJkNjgzYmNjM2ZkZDBkMjkxNjU5ZjAwMjA2Y2RiM2M5
MzMwOGMuLjMwZjFhZThjODkwOTkyYjQ1ODc5YTZmMTZiNjFiZTdlZmY3YTFlNDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTcsNyAr
MTcsNiBAQAogCQkJCTUxN0I1RjZEMjc1QjA3QzMwMDJEQzIyRCAvKiBQQlhUYXJnZXREZXBlbmRl
bmN5ICovLAogCQkJCTVDMTU3OURGMjcxNjVFMDgwMEVENTI4MCAvKiBQQlhUYXJnZXREZXBlbmRl
bmN5ICovLAogCQkJCTVDQUY3QUE5MjZGOTNGOUYwMDAzRjE5RSAvKiBQQlhUYXJnZXREZXBlbmRl
bmN5ICovLAotCQkJCTU3NDJBMkZBMjUzNTYxOUQwMEI3QkExNCAvKiBQQlhUYXJnZXREZXBlbmRl
bmN5ICovLAogCQkJCUJDQThENDY4MTVCQ0UwRDYwMDlEQzFGMSAvKiBQQlhUYXJnZXREZXBlbmRl
bmN5ICovLAogCQkJCTdBN0U4REZDMjc0ODNBMTIwMERDQzk3QSAvKiBQQlhUYXJnZXREZXBlbmRl
bmN5ICovLAogCQkJCTM3MkVCQjQ5MjAxN0U2Q0YwMDA4NTA2NCAvKiBQQlhUYXJnZXREZXBlbmRl
bmN5ICovLApAQCAtMTEwNywyNyArMTEwNiwxMiBAQAogCQk1NzBEQUFDMjIzMDM3MzAzMDBFOEZD
MDQgLyogTmZjQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTcwREFBQzAyMzAzNzMwMzAwRThGQzA0IC8qIE5mY0Nvbm5lY3Rpb24uaCAq
LzsgfTsKIAkJNTcwREFBQzYyMzAzN0Y3RjAwRThGQzA0IC8qIFdLTkZSZWFkZXJTZXNzaW9uRGVs
ZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3
MERBQUM0MjMwMzdGN0UwMEU4RkMwNCAvKiBXS05GUmVhZGVyU2Vzc2lvbkRlbGVnYXRlLmggKi87
IH07CiAJCTU3MERBQUNBMjMwMzg1RkQwMEU4RkMwNCAvKiBDdGFwTmZjRHJpdmVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBEQUFDODIzMDM4NUZE
MDBFOEZDMDQgLyogQ3RhcE5mY0RyaXZlci5oICovOyB9OwotCQk1NzJFQkJCRjI1MzZBNjBBMDAw
NTUyQjMgLyogV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkVCQkJC
MjUzNkE2MEEwMDA1NTJCMyAvKiBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdl
UmVjZWl2ZXIuY3BwICovOyB9OwotCQk1NzJFQkJDMDI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0
aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkVCQkJDMjUzNkE2MEEwMDA1NTJCMyAvKiBXZWJB
dXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oICovOyB9OwotCQk1NzJFQkJDMTI1
MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkVCQkJEMjUzNkE2
MEEwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9Owot
CQk1NzJFQkJDMjI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzTWVzc2FnZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkVCQkJFMjUz
NkE2MEEwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NNZXNzYWdlcy5oICovOyB9OwotCQk1NzJF
QkJDNDI1MzZBQjg0MDAwNTUyQjMgLyogY29tLmFwcGxlLldlYktpdC5XZWJBdXRoblByb2Nlc3Mu
c2IgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkVC
QkMzMjUzNkFCODQwMDA1NTJCMyAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuUHJvY2Vzcy5z
YiAqLzsgfTsKLQkJNTcyRUJCQzkyNTM2QUZENTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc1By
b3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJF
QkJDNjI1MzZBRkQ1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzUHJveHkuaCAqLzsgfTsKLQkJ
NTcyRUJCQ0MyNTM2QjA0RjAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZv
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJFQkJD
QjI1MzZCMDRGMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkluZm8uaCAqLzsg
fTsKLQkJNTcyRUJCRDUyNTM2Qzg4NTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkVC
QkQyMjUzNkM4ODUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmggKi87IH07
CiAJCTU3MkVCQkQ3MjUzN0VCQUUwMDA1NTJCMyAvKiBFeHRyYVByaXZhdGVTeW1ib2xzRm9yVEFQ
SS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRUNBNjgw
RDMxRTY5MDRCNTAwNzMxRDIwIC8qIEV4dHJhUHJpdmF0ZVN5bWJvbHNGb3JUQVBJLmggKi87IH07
CiAJCTU3MkVCQkRBMjUzOEY2QjQwMDA1NTJCMyAvKiBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5r
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyRUJC
RDgyNTM4RjZBMTAwMDU1MkIzIC8qIEFwcEF0dGVzdEludGVybmFsU29mdExpbmsubW0gKi87IH07
CiAJCTU3MkVCQkRCMjUzOEY2QjYwMDA1NTJCMyAvKiBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5r
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJFQkJE
OTI1MzhGNkExMDAwNTUyQjMgLyogQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0TGluay5oICovOyB9Owog
CQk1NzJFQkJERDI1MzkyMTgxMDAwNTUyQjMgLyogQXBwQXR0ZXN0U1BJLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJFQkJEQzI1MzkyMTgxMDAwNTUy
QjMgLyogQXBwQXR0ZXN0U1BJLmggKi87IH07CiAJCTU3MkZENDQzMjIyNjVDRTIwMEExRUNDMyAv
KiBXZWJWaWV3RGlkTW92ZVRvV2luZG93T2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkZENDQxMjIyNjVDRTIwMEExRUNDMyAvKiBXZWJW
aWV3RGlkTW92ZVRvV2luZG93T2JzZXJ2ZXIuaCAqLzsgfTsKIAkJNTc0MjE3OTIyNDAwRTI4NjAw
MkIzMDNEIC8qIExvY2FsQXV0aGVudGljYXRpb25TUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NDIxNzkxMjQwMEUwOTgwMDJCMzAzRCAvKiBMb2Nh
bEF1dGhlbnRpY2F0aW9uU1BJLmggKi87IH07Ci0JCTU3NDJBMkVCMjUzNTYxM0YwMEI3QkExNCAv
KiBBdXhpbGlhcnlQcm9jZXNzTWFpbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1Q0U5MTIwRjIyOTNDMjVGMDA1QkVDNzggLyogQXV4aWxpYXJ5UHJv
Y2Vzc01haW4uY3BwICovOyB9OwotCQk1NzQyQTJFQzI1MzU2MTNGMDBCN0JBMTQgLyogWFBDU2Vy
dmljZU1haW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzgyODM5NjE2QjQ3RUM0MDBBMjc4RkUgLyogWFBDU2VydmljZU1haW4ubW0gKi87IH07Ci0J
CTU3NDJBMkVFMjUzNTYxM0YwMEI3QkExNCAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFt
ZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDM0RFNDY4MTVBOTE3
NjMwMDhEMjZGQyAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLzsgfTsKLQkJNTc0MkEyRUYyNTM1
NjEzRjAwQjdCQTE0IC8qIFdlYktpdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4REMyRUY1QjA0ODZBNjk0MDA5OEIyMTYgLyogV2Vi
S2l0LmZyYW1ld29yayAqLzsgfTsKLQkJNTc0MkEzMDgyNTM1OEEwNDAwQjdCQTE0IC8qIFdlYkF1
dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTc0MkEzMDYyNTM1OEEwNDAwQjdCQTE0IC8qIFdlYkF1dGhu
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oICovOyB9OwotCQk1NzQyQTMwRDI1MzU4RUZEMDBC
N0JBMTQgLyogV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzQyQTMwQTI1MzU4RUZEMDBCN0JBMTQg
LyogV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmggKi87IH07Ci0JCTU3NDJBMzE4MjUz
NjQ4RTUwMEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NDJBMzE1MjUzNjQ4RTQwMEI3QkExNCAvKiBXZWJB
dXRoblByb2Nlc3MuaCAqLzsgfTsKIAkJNTc0NzI4RDEyMzQ1NkU5ODAwMTcwMEFGIC8qIF9XS1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU3NDcyOENGMjM0NTZFOTgwMDE3MDBBRiAvKiBfV0tXZWJBdXRoZW50aWNh
dGlvblBhbmVsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNTc0NzI4RDQyMzQ1NzBBRTAwMTcwMEFGIC8qIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTc0NzI4RDMyMzQ1NzBBRTAwMTcwMEFGIC8qIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxJ
bnRlcm5hbC5oICovOyB9OwogCQk1NzU5N0VCOTIxODExRDlBMDAzN0Y5MjQgLyogQ3RhcEhpZERy
aXZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc1
OTdFQjcyMTgxMUQ5QTAwMzdGOTI0IC8qIEN0YXBIaWREcml2ZXIuaCAqLzsgfTsKQEAgLTI1MjMs
MjcgKzI1MDcsNiBAQAogCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSA4REMyRUY0RjA0ODZBNjk0
MDA5OEIyMTY7CiAJCQlyZW1vdGVJbmZvID0gV2ViS2l0OwogCQl9OwotCQk1NzQyQTJFNzI1MzU2
MTNGMDBCN0JBMTQgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewotCQkJaXNhID0gUEJY
Q29udGFpbmVySXRlbVByb3h5OwotCQkJY29udGFpbmVyUG9ydGFsID0gMDg2N0Q2OTBGRTg0MDI4
RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOwotCQkJcHJveHlUeXBlID0gMTsKLQkJCXJl
bW90ZUdsb2JhbElEU3RyaW5nID0gRTFBQzJFMjcyMEY3Qjk0QzAwQjA4OTdEOwotCQkJcmVtb3Rl
SW5mbyA9ICJVbmxvY2sgS2V5Y2hhaW4iOwotCQl9OwotCQk1NzQyQTJFOTI1MzU2MTNGMDBCN0JB
MTQgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewotCQkJaXNhID0gUEJYQ29udGFpbmVy
SXRlbVByb3h5OwotCQkJY29udGFpbmVyUG9ydGFsID0gMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3
IC8qIFByb2plY3Qgb2JqZWN0ICovOwotCQkJcHJveHlUeXBlID0gMTsKLQkJCXJlbW90ZUdsb2Jh
bElEU3RyaW5nID0gOERDMkVGNEYwNDg2QTY5NDAwOThCMjE2OwotCQkJcmVtb3RlSW5mbyA9IFdl
YktpdDsKLQkJfTsKLQkJNTc0MkEyRjkyNTM1NjE5RDAwQjdCQTE0IC8qIFBCWENvbnRhaW5lckl0
ZW1Qcm94eSAqLyA9IHsKLQkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKLQkJCWNvbnRh
aW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAq
LzsKLQkJCXByb3h5VHlwZSA9IDE7Ci0JCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDU3NDJBMkU1
MjUzNTYxM0YwMEI3QkExNDsKLQkJCXJlbW90ZUluZm8gPSBXZWJBdXRoZW50aWNhdGlvbjsKLQkJ
fTsKIAkJNUMxNTc5RDAyNzE2NUIyRjAwRUQ1MjgwIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAq
LyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRhaW5lclBvcnRh
bCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKQEAgLTUw
NTcsNyArNTAyMCw3IEBACiAJCTU3MkVCQkRDMjUzOTIxODEwMDA1NTJCMyAvKiBBcHBBdHRlc3RT
UEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwQXR0ZXN0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTU3MkZENDQxMjIyNjVDRTIwMEExRUNDMyAvKiBXZWJWaWV3RGlkTW92ZVRvV2lu
ZG93T2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2Vy
dmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NDIxNzkxMjQwMEUwOTgwMDJC
MzAzRCAvKiBMb2NhbEF1dGhlbnRpY2F0aW9uU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsQXV0
aGVudGljYXRpb25TUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEyRjcy
NTM1NjEzRjAwQjdCQTE0IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4ueHBjICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAid3JhcHBlci54cGMtc2Vy
dmljZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0
aG4ueHBjOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQk1NzQyQTJGNzI1
MzU2MTNGMDBCN0JBMTQgLyogLnhwYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBs
aWNpdEZpbGVUeXBlID0gIndyYXBwZXIueHBjLXNlcnZpY2UiOyBpbmNsdWRlSW5JbmRleCA9IDA7
IHBhdGggPSAueHBjOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1NzQy
QTMwNjI1MzU4QTA0MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzQyQTMwNzI1
MzU4QTA0MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NDJBMzBB
MjUzNThFRkQwMEI3QkExNCAvKiBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MTM1LDcgKzUwOTgsNiBAQAog
CQk1NzlGMUJGODIzQzgwRUM2MDBDN0Q0QjQgLyogX1dLV2ViQXV0aGVudGljYXRpb25Bc3NlcnRp
b25SZXNwb25zZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1dlYkF1dGhlbnRpY2F0aW9u
QXNzZXJ0aW9uUmVzcG9uc2VJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1NzlGMUJGQTIzQzgxMUNGMDBDN0Q0QjQgLyogQVBJV2ViQXV0aGVudGljYXRpb25Bc3NlcnRp
b25SZXNwb25zZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElXZWJBdXRoZW50aWNhdGlvbkFzc2VydGlv
blJlc3BvbnNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3OUYxQkZCMjNDODEx
Q0YwMEM3RDRCNCAvKiBBUElXZWJBdXRoZW50aWNhdGlvbkFzc2VydGlvblJlc3BvbnNlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEFQSVdlYkF1dGhlbnRpY2F0aW9uQXNzZXJ0aW9uUmVzcG9uc2Uu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1N0E5RkYwNzI1MkJFNkUwMDA2QTIw
NDAgLyogV2ViQXV0aG5TZXJ2aWNlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFdlYkF1dGhuU2Vy
dmljZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdBOUZGMTUyNTJD
NkFFRjAwNkEyMDQwIC8qIGxpYldURi5hICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4
cGxpY2l0RmlsZVR5cGUgPSBhcmNoaXZlLmFyOyBwYXRoID0gbGliV1RGLmE7IHNvdXJjZVRyZWUg
PSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTU3QUM4RjRFMjE3RkVFRDkwMDU1NDM4QyAvKiBI
aWRDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhpZENvbm5lY3Rpb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdBQzhGNEYyMTdGRUVEOTAwNTU0MzhDIC8qIEhpZENvbm5l
Y3Rpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBIaWRDb25uZWN0aW9uLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTE3OCw3ICs1MTQwLDYgQEAKIAkJNTdFQjJFMzkyMUUx
OTgzRTAwQjg5Q0RGIC8qIFUyZkF1dGhlbnRpY2F0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VTJmQXV0aGVudGljYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RUJF
MjY4MjM0Njc2QzUwMDhEOEFGOSAvKiBBUElXZWJBdXRoZW50aWNhdGlvblBhbmVsLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEFQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTdFQkUyNjkyMzQ2NzZDNTAwOEQ4QUY5IC8qIEFQSVdlYkF1dGhlbnRpY2F0
aW9uUGFuZWwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVBJV2ViQXV0aGVudGljYXRpb25QYW5l
bC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3RUZDNzdEMjU1MEVCODUwMEY5
NDc3RCAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuLnNiLmluICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4uc2IuaW47IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTU3RkFCQjBFMjU4MTdDRjAwMDU5REM5NSAvKiBBdXRoZW50aWNhdGlvblNl
cnZpY2VzQ29yZVNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoZW50aWNhdGlvblNlcnZpY2VzQ29y
ZVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0ZBQkIxMDI1ODE4MjdDMDA1
OURDOTUgLyogQXV0aGVudGljYXRpb25TZXJ2aWNlc0NvcmVTb2Z0TGluay5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBdXRoZW50aWNhdGlvblNlcnZpY2VzQ29yZVNvZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTU3RkFCQjExMjU4MTgyN0MwMDU5REM5NSAvKiBBdXRoZW50aWNhdGlv
blNlcnZpY2VzQ29yZVNvZnRMaW5rLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXV0aGVudGlj
YXRpb25TZXJ2aWNlc0NvcmVTb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTczMDksMTUgKzcyNzAsNiBAQAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwotCQk1NzQyQTJFRDI1MzU2MTNGMDBCN0JBMTQgLyogRnJh
bWV3b3JrcyAqLyA9IHsKLQkJCWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOwotCQkJYnVp
bGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKLQkJCWZpbGVzID0gKAotCQkJCTU3NDJBMkVFMjUz
NTYxM0YwMEI3QkExNCAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAot
CQkJCTU3NDJBMkVGMjUzNTYxM0YwMEI3QkExNCAvKiBXZWJLaXQuZnJhbWV3b3JrIGluIEZyYW1l
d29ya3MgKi8sCi0JCQkpOwotCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7Ci0JCX07CiAJCTVDMTU3OUQ0MjcxNjVCMkYwMEVENTI4MCAvKiBGcmFtZXdvcmtzICovID0g
ewogCQkJaXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sg
PSAyMTQ3NDgzNjQ3OwpAQCAtNzM5NSw5ICs3MzQ3LDkgQEAKIAkJCQk1Q0FGN0FBNDI2RjkzQTc1
MDAwM0YxOUUgLyogYWRhdHRyaWJ1dGlvbmQgKi8sCiAJCQkJNUMxNTc5REEyNzE2NUIyRjAwRUQ1
MjgwIC8qIHdlYnB1c2hkICovLAogCQkJCTUxN0I1RjVCMjc1QThEM0UwMDJEQzIyRCAvKiB3ZWJw
dXNodG9vbCAqLywKKwkJCQk1NzQyQTJGNzI1MzU2MTNGMDBCN0JBMTQgLyogLnhwYyAqLywKIAkJ
CQkyRDlGQjIyODIzNzUyMzgzMDA0OUY5MzYgLyogY29tLmFwcGxlLldlYktpdC5HUFUueHBjICov
LAogCQkJCUJDODI4M0IxMTZCNEJGNzcwMEEyNzhGRSAvKiBjb20uYXBwbGUuV2ViS2l0Lk5ldHdv
cmtpbmcueHBjICovLAotCQkJCTU3NDJBMkY3MjUzNTYxM0YwMEI3QkExNCAvKiBjb20uYXBwbGUu
V2ViS2l0LldlYkF1dGhuLnhwYyAqLywKIAkJCQk3QTdFOERGODI3NDgzOTI1MDBEQ0M5N0EgLyog
Y29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LkNhcHRpdmVQb3J0YWwueHBjICovLAogCQkJCTM3
MkVCQjQ2MjAxN0U2NDMwMDA4NTA2NCAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuRGV2
ZWxvcG1lbnQueHBjICovLAogCQkJCUJDM0RFNDY2MTVBOTE3NjMwMDhEMjZGQyAvKiBjb20uYXBw
bGUuV2ViS2l0LldlYkNvbnRlbnQueHBjICovLApAQCAtNzYxOSw3ICs3NTcxLDYgQEAKIAkJCQlC
QzAzMkQ1QzEwRjQzNkQ1MDA1OEMxNUEgLyogV2ViUHJvY2VzcyAqLywKIAkJCQk1MTBDQzdEQTE2
MTM4RTAxMDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3MgKi8sCiAJCQkJMkQ5RkIxRkYyMzc1MjA5
RDAwNDlGOTM2IC8qIEdQVVByb2Nlc3MgKi8sCi0JCQkJNTc0MkEyRkYyNTM1NzU4MDAwQjdCQTE0
IC8qIFdlYkF1dGhuUHJvY2VzcyAqLywKIAkJCQlDMENFNzI5RDEyNDdFNzFEMDBCQzBFQzQgLyog
RGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTFERUM5N0FCMjQ2QjY4NjUwMDdDODNGNCAvKiBGZWF0
dXJlRmxhZ3MgKi8sCiAJCQkJMDg5QzE2NjVGRTg0MTE1OEMwMkFBQzA3IC8qIFJlc291cmNlcyAq
LywKQEAgLTc3OTgsNyArNzc0OSw2IEBACiAJCQkJQTFCODlCOTIyMjFFMDIzMzAwRUI0Q0VBIC8q
IFNES1ZhcmlhbnQueGNjb25maWcgKi8sCiAJCQkJNTE4M0IzOTMxMzc5Rjg1QzAwRTg3NTRFIC8q
IFNoaW0ueGNjb25maWcgKi8sCiAJCQkJMUE0Rjk3NkUxMDBFN0I2NjAwNjM3QTE4IC8qIFZlcnNp
b24ueGNjb25maWcgKi8sCi0JCQkJNTdBOUZGMDcyNTJCRTZFMDAwNkEyMDQwIC8qIFdlYkF1dGhu
U2VydmljZS54Y2NvbmZpZyAqLywKIAkJCQk3QTdFOERGQTI3NDgzOTkzMDBEQ0M5N0EgLyogV2Vi
Q29udGVudFNlcnZpY2UuQ2FwdGl2ZVBvcnRhbC54Y2NvbmZpZyAqLywKIAkJCQkzNzJFQkI0QTIw
MTdFNzYwMDAwODUwNjQgLyogV2ViQ29udGVudFNlcnZpY2UuRGV2ZWxvcG1lbnQueGNjb25maWcg
Ki8sCiAJCQkJQkNBQ0M0MEUxNkIwQjhBODAwQjZFMDkyIC8qIFdlYkNvbnRlbnRTZXJ2aWNlLnhj
Y29uZmlnICovLApAQCAtMTA1NzAsNzUgKzEwNTIwLDYgQEAKIAkJCXBhdGggPSBjb2NvYTsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07Ci0JCTU3NDJBMkZGMjUzNTc1ODAwMEI3QkEx
NCAvKiBXZWJBdXRoblByb2Nlc3MgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxk
cmVuID0gKAotCQkJCTU3NDJBMzAwMjUzNTc1ODAwMEI3QkExNCAvKiBFbnRyeVBvaW50ICovLAot
CQkJCTU3NDJBMzE5MjUzNjc1RTkwMEI3QkExNCAvKiBpb3MgKi8sCi0JCQkJNTc0MkEzMUIyNTM2
NzVGNjAwQjdCQTE0IC8qIG1hYyAqLywKLQkJCQk1NzQyQTMwQzI1MzU4RUZEMDBCN0JBMTQgLyog
V2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCAqLywKLQkJCQk1NzQyQTMwQTI1MzU4
RUZEMDBCN0JBMTQgLyogV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmggKi8sCi0JCQkJ
NTc0MkEzMEIyNTM1OEVGRDAwQjdCQTE0IC8qIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbiAqLywKLQkJCQk1NzQyQTMxNDI1MzY0OEU0MDBCN0JBMTQgLyogV2ViQXV0
aG5Qcm9jZXNzLmNwcCAqLywKLQkJCQk1NzQyQTMxNTI1MzY0OEU0MDBCN0JBMTQgLyogV2ViQXV0
aG5Qcm9jZXNzLmggKi8sCi0JCQkJNTc0MkEzMTMyNTM2NDhFNDAwQjdCQTE0IC8qIFdlYkF1dGhu
UHJvY2Vzcy5tZXNzYWdlcy5pbiAqLywKLQkJCQk1NzQyQTMwNzI1MzU4QTA0MDBCN0JBMTQgLyog
V2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCAqLywKLQkJCQk1NzQyQTMwNjI1
MzU4QTA0MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi8s
Ci0JCQkpOwotCQkJcGF0aCA9IFdlYkF1dGhuUHJvY2VzczsKLQkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7Ci0JCX07Ci0JCTU3NDJBMzAwMjUzNTc1ODAwMEI3QkExNCAvKiBFbnRyeVBvaW50ICov
ID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQk1NzQyQTMwMTI1
MzU3NTgwMDBCN0JBMTQgLyogQ29jb2EgKi8sCi0JCQkpOwotCQkJcGF0aCA9IEVudHJ5UG9pbnQ7
Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwotCQk1NzQyQTMwMTI1MzU3NTgwMDBC
N0JBMTQgLyogQ29jb2EgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0g
KAotCQkJCTU3NDJBMzAyMjUzNTc1ODAwMEI3QkExNCAvKiBYUENTZXJ2aWNlICovLAotCQkJKTsK
LQkJCXBhdGggPSBDb2NvYTsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0JCTU3
NDJBMzAyMjUzNTc1ODAwMEI3QkExNCAvKiBYUENTZXJ2aWNlICovID0gewotCQkJaXNhID0gUEJY
R3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQk1NzQyQTMwMzI1MzU3NTgwMDBCN0JBMTQgLyog
V2ViQXV0aG5TZXJ2aWNlICovLAotCQkJCTU3NDJBMzFFMjUzNjk0OTMwMEI3QkExNCAvKiBXZWJB
dXRoblNlcnZpY2VFbnRyeVBvaW50Lm1tICovLAotCQkJKTsKLQkJCXBhdGggPSBYUENTZXJ2aWNl
OwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKLQkJNTc0MkEzMDMyNTM1NzU4MDAw
QjdCQTE0IC8qIFdlYkF1dGhuU2VydmljZSAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJ
Y2hpbGRyZW4gPSAoCi0JCQkJNTcyRUJCQjkyNTM2QTA2RTAwMDU1MkIzIC8qIEluZm8taU9TLnBs
aXN0ICovLAotCQkJCTU3MkVCQkJBMjUzNkEwNkUwMDA1NTJCMyAvKiBJbmZvLU9TWC5wbGlzdCAq
LywKLQkJCSk7Ci0JCQlwYXRoID0gV2ViQXV0aG5TZXJ2aWNlOwotCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKLQkJfTsKLQkJNTc0MkEzMTkyNTM2NzVFOTAwQjdCQTE0IC8qIGlvcyAqLyA9IHsK
LQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJNTc0MkEzMUEyNTM2NzVF
OTAwQjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vzc0lPUy5tbSAqLywKLQkJCSk7Ci0JCQlwYXRoID0g
aW9zOwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKLQkJNTc0MkEzMUIyNTM2NzVG
NjAwQjdCQTE0IC8qIG1hYyAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4g
PSAoCi0JCQkJNTc0MkEzMUQyNTM2NzVGNjAwQjdCQTE0IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2Vi
QXV0aG5Qcm9jZXNzLnNiLmluICovLAotCQkJCTU3NDJBMzFDMjUzNjc1RjYwMEI3QkExNCAvKiBX
ZWJBdXRoblByb2Nlc3NNYWMubW0gKi8sCi0JCQkpOwotCQkJcGF0aCA9IG1hYzsKLQkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07CiAJCTU3NTA3NUE2MjBBQjc1QUIwMDY5M0VBOSAvKiBt
YWMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTA2ODYs
MTAgKzEwNTY3LDYgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTU3NjA4MjhDMjAyOTg1NDIwMDEx
NjY3OCAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwICovLAogCQkJCTU3NjA4MjhC
MjAyOTg1NDIwMDExNjY3OCAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuaCAqLywKLQkJ
CQk1NzJFQkJEMTI1MzZDODg1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5j
cHAgKi8sCi0JCQkJNTcyRUJCRDIyNTM2Qzg4NTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc0Nv
bm5lY3Rpb24uaCAqLywKLQkJCQk1NzJFQkJEMzI1MzZDODg1MDAwNTUyQjMgLyogV2ViQXV0aG5Q
cm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLywKLQkJCQk1NzJFQkJDQjI1MzZCMDRGMDAw
NTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkluZm8uaCAqLywKIAkJCSk7CiAJCQlw
YXRoID0gV2ViQXV0aGVudGljYXRpb247CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAt
MTA3MTMsOCArMTA1OTAsNiBAQAogCQkJCTU3NjA4Mjk2MjAyQkQ4QkEwMDExNjY3OCAvKiBXZWJB
dXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5jcHAgKi8sCiAJCQkJNTc2MDgyOTUyMDJCRDhC
QTAwMTE2Njc4IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmggKi8sCiAJCQkJ
NTc2MDgyOTkyMDJCREFFMjAwMTE2Njc4IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclBy
b3h5Lm1lc3NhZ2VzLmluICovLAotCQkJCTU3MkVCQkM1MjUzNkFGRDUwMDA1NTJCMyAvKiBXZWJB
dXRoblByb2Nlc3NQcm94eS5jcHAgKi8sCi0JCQkJNTcyRUJCQzYyNTM2QUZENTAwMDU1MkIzIC8q
IFdlYkF1dGhuUHJvY2Vzc1Byb3h5LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IFdlYkF1dGhlbnRp
Y2F0aW9uOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTExNDk5LDcgKzExMzc0LDYg
QEAKIAkJCQk1QzE1NzhFNTI3MEUwREJDMDBFRDUyODAgLyogY29tLmFwcGxlLldlYktpdC5hZGF0
dHJpYnV0aW9uZC5zYi5pbiAqLywKIAkJCQkyREI5NjA1MjIzOTg4NkI5MDAxMDI3OTEgLyogY29t
LmFwcGxlLldlYktpdC5HUFUuc2IuaW4gKi8sCiAJCQkJQTc4Q0NERDgxOTNBQzlFMzAwNUVDQzI1
IC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYi5pbiAqLywKLQkJCQk1N0VGQzc3RDI1
NTBFQjg1MDBGOTQ3N0QgLyogY29tLmFwcGxlLldlYktpdC5XZWJBdXRobi5zYi5pbiAqLywKIAkJ
CQlFMzEzNjY0RDI2NUVFNUFGMDA1MTA4NEYgLyogY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50
LnNiLmluICovLAogCQkJKTsKIAkJCXBhdGggPSBpb3M7CkBAIC0xNDc3OSwxNCArMTQ2NTMsNiBA
QAogCQkJCTU3RENFREIyMjE0QzYwNEMwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNhdGlvblJlcXVl
c3REYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0RDRURCMzIxNEM2MDUzMDAxNkI4NDcgLyog
V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3
RENFRDcxMjE0MkVFNkMwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94
eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKLQkJCQk1NzQyQTMwRDI1MzU4RUZEMDBCN0JBMTQg
LyogV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmggaW4gSGVhZGVycyAqLywKLQkJCQk1
NzJFQkJDMDI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNz
TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTU3NDJBMzE4MjUzNjQ4RTUwMEI3QkExNCAv
KiBXZWJBdXRoblByb2Nlc3MuaCBpbiBIZWFkZXJzICovLAotCQkJCTU3MkVCQkQ1MjUzNkM4ODUw
MDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKLQkJ
CQk1NzJFQkJDQzI1MzZCMDRGMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbklu
Zm8uaCBpbiBIZWFkZXJzICovLAotCQkJCTU3NDJBMzA4MjUzNThBMDQwMEI3QkExNCAvKiBXZWJB
dXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAotCQkJCTU3MkVC
QkMyMjUzNkE2MEEwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJNTcyRUJCQzkyNTM2QUZENTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc1By
b3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlEREEwQTI4NjI3RTU1RTREMDA1RTA4NkUgLyogV2Vi
QXV0b2NhcGl0YWxpemVUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQyRDYzNDEyMkEwRUZE
RjAwRDJGQjNBIC8qIFdlYkF1dG9jb3JyZWN0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTkwRDM5RjUyNDNCRTY0ODAwMTk5Mzg4IC8qIFdlYkF1dG9tYXRpb25ET01XaW5kb3dPYnNlcnZl
ci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTY5Miw3ICsxNTU1OCw3IEBACiAJCQkpOwogCQkJbmFt
ZSA9IFdlYkF1dGhuOwogCQkJcHJvZHVjdE5hbWUgPSBOZXR3b3JraW5nOwotCQkJcHJvZHVjdFJl
ZmVyZW5jZSA9IDU3NDJBMkY3MjUzNTYxM0YwMEI3QkExNCAvKiBjb20uYXBwbGUuV2ViS2l0Lldl
YkF1dGhuLnhwYyAqLzsKKwkJCXByb2R1Y3RSZWZlcmVuY2UgPSA1NzQyQTJGNzI1MzU2MTNGMDBC
N0JBMTQgLyogLnhwYyAqLzsKIAkJCXByb2R1Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5
cGUueHBjLXNlcnZpY2UiOwogCQl9OwogCQk1QzE1NzlDQzI3MTY1QjJGMDBFRDUyODAgLyogd2Vi
cHVzaGQgKi8gPSB7CkBAIC0xNTk1NCw3ICsxNTgyMCw2IEBACiAJCQkJMzcyRUJCMzgyMDE3RTY0
MzAwMDg1MDY0IC8qIFdlYkNvbnRlbnQuRGV2ZWxvcG1lbnQgKi8sCiAJCQkJQkM4MjgzQjAxNkI0
QkY3NzAwQTI3OEZFIC8qIE5ldHdvcmtpbmcgKi8sCiAJCQkJMkQ5RkIyMTYyMzc1MjM4MzAwNDlG
OTM2IC8qIEdQVSAqLywKLQkJCQk1NzQyQTJFNTI1MzU2MTNGMDBCN0JBMTQgLyogV2ViQXV0aG4g
Ki8sCiAJCQkJQTdBQURBMTAxOTM5NUNBOTAwM0VBMUM3IC8qIFNhbmRib3ggUHJvZmlsZXMgKi8s
CiAJCQkJRTFBQzJFMjcyMEY3Qjk0QzAwQjA4OTdEIC8qIFVubG9jayBLZXljaGFpbiAqLywKIAkJ
CQk1MzI1QkRDRDIxREZGNDc3MDBBMERFRTEgLyogQXBwbHkgQ29uZmlndXJhdGlvbiB0byBYQ0Zp
bGVMaXN0cyAqLywKQEAgLTE1OTgyLDEzICsxNTg0Nyw2IEBACiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07Ci0JCTU3NDJBMkYwMjUzNTYxM0Yw
MEI3QkExNCAvKiBSZXNvdXJjZXMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhSZXNvdXJjZXNCdWlsZFBo
YXNlOwotCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKLQkJCWZpbGVzID0gKAotCQkJ
KTsKLQkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwotCQl9OwogCQk3
QTdFOERFRTI3NDgzOTI1MDBEQ0M5N0EgLyogUmVzb3VyY2VzICovID0gewogCQkJaXNhID0gUEJY
UmVzb3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CkBA
IC0xNjAwMyw3ICsxNTg2MSw2IEBACiAJCQlmaWxlcyA9ICgKIAkJCQlFMTdBRTJDMzE2QjlDNjNB
MDAxQzQyRjIgLyogY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiIGluIFJlc291cmNlcyAq
LywKIAkJCQlFMTdBRTJDMzE2QjlDNjNBMDAxQzQyRjEgLyogY29tLmFwcGxlLldlYktpdC5OZXR3
b3JrUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJNTcyRUJCQzQyNTM2QUI4NDAwMDU1
MkIzIC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNzLnNiIGluIFJlc291cmNlcyAq
LywKIAkJCQlFQjdEMjUyQjI3QjMxQjc3MDA5Q0I1ODYgLyogY29tLmFwcGxlLldlYktpdC53ZWJw
dXNoZC5zYiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJRTExRDM1QUUxNkI2M0QxQjAwNkQyM0Q3IC8q
IGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLywKIAkJCQk2QkU5NjlDMTFF
NTRENDUyMDA4Qjc0ODMgLyogY29yZVByZWRpY3Rpb25fbW9kZWwgaW4gUmVzb3VyY2VzICovLApA
QCAtMTYyOTYsMzYgKzE2MTUzLDYgQEAKIAkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7CiAJCQlzaGVs
bFNjcmlwdCA9ICJTY3JpcHRzL2NoZWNrLXhjZmlsZWxpc3RzLnNoXG4iOwogCQl9OwotCQk1NzQy
QTJGMTI1MzU2MTNGMDBCN0JBMTQgLyogVW5sb2NrIGtleWNoYWluICovID0gewotCQkJaXNhID0g
UEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwotCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0
NzsKLQkJCWZpbGVzID0gKAotCQkJKTsKLQkJCWlucHV0UGF0aHMgPSAoCi0JCQkpOwotCQkJbmFt
ZSA9ICJVbmxvY2sga2V5Y2hhaW4iOwotCQkJb3V0cHV0UGF0aHMgPSAoCi0JCQkpOwotCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7Ci0JCQlzaGVsbFBhdGggPSAvYmlu
L3NoOwotCQkJc2hlbGxTY3JpcHQgPSAiVU5MT0NLX1NDUklQVF9QQVRIPVwiJHtTUkNST09UfS8u
Li8uLi8uLi9JbnRlcm5hbC9Ub29scy9TY3JpcHRzL3VubG9jay1zYWZhcmktZW5naW5lZXJpbmct
a2V5Y2hhaW4taWYtbmVlZGVkXCJcblxuW1sgLXggXCIke1VOTE9DS19TQ1JJUFRfUEFUSH1cIiBd
XSAmJiBleGVjIFwiJHtVTkxPQ0tfU0NSSVBUX1BBVEh9XCJcblxuZXhpdCAwXG4iOwotCQl9Owot
CQk1NzQyQTJGMjI1MzU2MTNGMDBCN0JBMTQgLyogUHJvY2VzcyBXZWJBdXRoZW50aWNhdGlvbiBl
bnRpdGxlbWVudHMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7Ci0J
CQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwotCQkJZmlsZXMgPSAoCi0JCQkpOwotCQkJ
aW5wdXRQYXRocyA9ICgKLQkJCQkiJChTUkNST09UKS9TY3JpcHRzL3Byb2Nlc3MtZW50aXRsZW1l
bnRzLnNoIiwKLQkJCSk7Ci0JCQluYW1lID0gIlByb2Nlc3MgV2ViQXV0aGVudGljYXRpb24gZW50
aXRsZW1lbnRzIjsKLQkJCW91dHB1dFBhdGhzID0gKAotCQkJCSIkKFdLX1BST0NFU1NFRF9YQ0VO
VF9GSUxFKSIsCi0JCQkpOwotCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7Ci0JCQlzaGVsbFBhdGggPSAvYmluL3NoOwotCQkJc2hlbGxTY3JpcHQgPSAiU2NyaXB0cy9w
cm9jZXNzLWVudGl0bGVtZW50cy5zaFxuIjsKLQkJfTsKIAkJNUMxNTc4RTYyNzBFMTI5NDAwRUQ1
MjgwIC8qIFByb2Nlc3MgYWRhdHRyaWJ1dGlvbmQgRW50aXRsZW1lbnRzICovID0gewogCQkJaXNh
ID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4
MzY0NzsKQEAgLTE2NTM4LDI0ICsxNjM2NSw2IEBACiAJCQlzaGVsbFBhdGggPSAvYmluL3NoOwog
CQkJc2hlbGxTY3JpcHQgPSAiZXhwb3J0IFhQQ19CVU5ETEVTX1RPX0NPUFlfVE9fU0VDT05EQVJZ
X1BBVEg9XCJjb20uYXBwbGUuV2ViS2l0LkdQVS54cGNcIlxuZXhwb3J0IFhQQ19CVU5ETEVfSU5T
VEFMTF9QQVRIX0lOX1NFQ09OREFSWV9QQVRIPVwiJHtTRUNPTkRBUllfU1RBR0VEX0ZSQU1FV09S
S19ESVJFQ1RPUll9L1dlYktpdC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9YUENTZXJ2aWNlc1wiXG5c
IiR7U1JDUk9PVH0vU2NyaXB0cy9jb3B5LXhwYy1zZXJ2aWNlcy10by1zZWNvbmRhcnktcGF0aC5z
aFwiXG4iOwogCQl9OwotCQk2NTE3NTcyMzI3Q0ZDMjRBMDBEOUZFNDAgLyogQ29weSBYUEMgU2Vy
dmljZSB0byBTZWNvbmRhcnkgUGF0aCAqLyA9IHsKLQkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVp
bGRQaGFzZTsKLQkJCWJ1aWxkQWN0aW9uTWFzayA9IDg7Ci0JCQlmaWxlcyA9ICgKLQkJCSk7Ci0J
CQlpbnB1dEZpbGVMaXN0UGF0aHMgPSAoCi0JCQkpOwotCQkJaW5wdXRQYXRocyA9ICgKLQkJCSk7
Ci0JCQluYW1lID0gIkNvcHkgWFBDIFNlcnZpY2UgdG8gU2Vjb25kYXJ5IFBhdGgiOwotCQkJb3V0
cHV0RmlsZUxpc3RQYXRocyA9ICgKLQkJCSk7Ci0JCQlvdXRwdXRQYXRocyA9ICgKLQkJCSk7Ci0J
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMTsKLQkJCXNoZWxsUGF0aCA9
IC9iaW4vc2g7Ci0JCQlzaGVsbFNjcmlwdCA9ICJleHBvcnQgWFBDX0JVTkRMRVNfVE9fQ09QWV9U
T19TRUNPTkRBUllfUEFUSD1cImNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4ueHBjXCJcbmV4cG9y
dCBYUENfQlVORExFX0lOU1RBTExfUEFUSF9JTl9TRUNPTkRBUllfUEFUSD1cIiR7U0VDT05EQVJZ
X1NUQUdFRF9GUkFNRVdPUktfRElSRUNUT1JZfS9XZWJLaXQuZnJhbWV3b3JrL1ZlcnNpb25zL0Ev
WFBDU2VydmljZXNcIlxuXCIke1NSQ1JPT1R9L1NjcmlwdHMvY29weS14cGMtc2VydmljZXMtdG8t
c2Vjb25kYXJ5LXBhdGguc2hcIlxuIjsKLQkJfTsKIAkJNjU3N0ZGQjkyNzY5QzE0NjAwMTFBRUM4
IC8qIENyZWF0ZSBTeW1saW5rIHRvIEFsdCBSb290IFBhdGggKi8gPSB7CiAJCQlpc2EgPSBQQlhT
aGVsbFNjcmlwdEJ1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSA4OwpAQCAtMTY5NDQs
MTUgKzE2NzUzLDYgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKLQkJNTc0MkEyRUEyNTM1NjEzRjAwQjdCQTE0IC8qIFNvdXJjZXMgKi8g
PSB7Ci0JCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKLQkJCWJ1aWxkQWN0aW9uTWFzayA9
IDIxNDc0ODM2NDc7Ci0JCQlmaWxlcyA9ICgKLQkJCQk1NzQyQTJFQjI1MzU2MTNGMDBCN0JBMTQg
LyogQXV4aWxpYXJ5UHJvY2Vzc01haW4uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTc0MkEyRUMy
NTM1NjEzRjAwQjdCQTE0IC8qIFhQQ1NlcnZpY2VNYWluLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkp
OwotCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7Ci0JCX07CiAJCTVD
MTU3OUQyMjcxNjVCMkYwMEVENTI4MCAvKiBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYU291
cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwpAQCAtMTcz
MzEsOCArMTcxMzEsNiBAQAogCQkJCTFBNjAyMjRDMThDMTZCOUYwMEMzRThDOSAvKiBWaXNpdGVk
TGlua1N0b3JlTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBOEU3RDND
MThDMTUxNDkwMDVBNzAyQSAvKiBWaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlck1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1N0RDRUQ3MDIxNDJFRTY4MDAxNkI4NDcgLyog
V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJNTcyRUJCQkYyNTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhuQ29ubmVj
dGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1
NzJFQkJDMTI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3NUIxQkJBMjNDRTlDMTMwMDIwNjM5QSAvKiBXZWJB
dXRvbWF0aW9uU2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQzBBMTk1NzFDOTAwNjhG
MDBGRTBFQkIgLyogV2ViQXV0b21hdGlvblNlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTc1QjFCQjgyM0NFOUJGQzAwMjA2MzlBIC8qIFdlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xNzUxMSwyMSArMTczMDksNiBAQAog
CQkJdGFyZ2V0ID0gOERDMkVGNEYwNDg2QTY5NDAwOThCMjE2IC8qIFdlYktpdCAqLzsKIAkJCXRh
cmdldFByb3h5ID0gNTE5Nzk3QzgyNzYyN0IyMzAwQkUwRjgzIC8qIFBCWENvbnRhaW5lckl0ZW1Q
cm94eSAqLzsKIAkJfTsKLQkJNTc0MkEyRTYyNTM1NjEzRjAwQjdCQTE0IC8qIFBCWFRhcmdldERl
cGVuZGVuY3kgKi8gPSB7Ci0JCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OwotCQkJdGFyZ2V0
ID0gRTFBQzJFMjcyMEY3Qjk0QzAwQjA4OTdEIC8qIFVubG9jayBLZXljaGFpbiAqLzsKLQkJCXRh
cmdldFByb3h5ID0gNTc0MkEyRTcyNTM1NjEzRjAwQjdCQTE0IC8qIFBCWENvbnRhaW5lckl0ZW1Q
cm94eSAqLzsKLQkJfTsKLQkJNTc0MkEyRTgyNTM1NjEzRjAwQjdCQTE0IC8qIFBCWFRhcmdldERl
cGVuZGVuY3kgKi8gPSB7Ci0JCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OwotCQkJdGFyZ2V0
ID0gOERDMkVGNEYwNDg2QTY5NDAwOThCMjE2IC8qIFdlYktpdCAqLzsKLQkJCXRhcmdldFByb3h5
ID0gNTc0MkEyRTkyNTM1NjEzRjAwQjdCQTE0IC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsK
LQkJfTsKLQkJNTc0MkEyRkEyNTM1NjE5RDAwQjdCQTE0IC8qIFBCWFRhcmdldERlcGVuZGVuY3kg
Ki8gPSB7Ci0JCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OwotCQkJdGFyZ2V0ID0gNTc0MkEy
RTUyNTM1NjEzRjAwQjdCQTE0IC8qIFdlYkF1dGhuICovOwotCQkJdGFyZ2V0UHJveHkgPSA1NzQy
QTJGOTI1MzU2MTlEMDBCN0JBMTQgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOwotCQl9Owog
CQk1QzE1NzlDRjI3MTY1QjJGMDBFRDUyODAgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsK
IAkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CiAJCQl0YXJnZXQgPSBFMUFDMkUyNzIwRjdC
OTRDMDBCMDg5N0QgLyogVW5sb2NrIEtleWNoYWluICovOwpAQCAtMTc4MDgsMjcgKzE3NTkxLDYg
QEAKIAkJCX07CiAJCQluYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKLQkJNTc0MkEyRjQyNTM1NjEz
RjAwQjdCQTE0IC8qIERlYnVnICovID0gewotCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247
Ci0JCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDU3QTlGRjA3MjUyQkU2RTAwMDZBMjA0
MCAvKiBXZWJBdXRoblNlcnZpY2UueGNjb25maWcgKi87Ci0JCQlidWlsZFNldHRpbmdzID0gewot
CQkJfTsKLQkJCW5hbWUgPSBEZWJ1ZzsKLQkJfTsKLQkJNTc0MkEyRjUyNTM1NjEzRjAwQjdCQTE0
IC8qIFJlbGVhc2UgKi8gPSB7Ci0JCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKLQkJCWJh
c2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNTdBOUZGMDcyNTJCRTZFMDAwNkEyMDQwIC8qIFdl
YkF1dGhuU2VydmljZS54Y2NvbmZpZyAqLzsKLQkJCWJ1aWxkU2V0dGluZ3MgPSB7Ci0JCQl9Owot
CQkJbmFtZSA9IFJlbGVhc2U7Ci0JCX07Ci0JCTU3NDJBMkY2MjUzNTYxM0YwMEI3QkExNCAvKiBQ
cm9kdWN0aW9uICovID0gewotCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247Ci0JCQliYXNl
Q29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDU3QTlGRjA3MjUyQkU2RTAwMDZBMjA0MCAvKiBXZWJB
dXRoblNlcnZpY2UueGNjb25maWcgKi87Ci0JCQlidWlsZFNldHRpbmdzID0gewotCQkJfTsKLQkJ
CW5hbWUgPSBQcm9kdWN0aW9uOwotCQl9OwogCQk1QzE1NzlENzI3MTY1QjJGMDBFRDUyODAgLyog
RGVidWcgKi8gPSB7CiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJhc2VDb25m
aWd1cmF0aW9uUmVmZXJlbmNlID0gNUMxNTc5REQyNzE2NUJFNTAwRUQ1MjgwIC8qIHdlYnB1c2hk
LnhjY29uZmlnICovOwpAQCAtMTgyMTUsMTYgKzE3OTc3LDYgQEAKIAkJCWRlZmF1bHRDb25maWd1
cmF0aW9uSXNWaXNpYmxlID0gMDsKIAkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1
Y3Rpb247CiAJCX07Ci0JCTU3NDJBMkYzMjUzNTYxM0YwMEI3QkExNCAvKiBCdWlsZCBjb25maWd1
cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiV2ViQXV0aG4iICovID0gewotCQkJaXNh
ID0gWENDb25maWd1cmF0aW9uTGlzdDsKLQkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCi0JCQkJ
NTc0MkEyRjQyNTM1NjEzRjAwQjdCQTE0IC8qIERlYnVnICovLAotCQkJCTU3NDJBMkY1MjUzNTYx
M0YwMEI3QkExNCAvKiBSZWxlYXNlICovLAotCQkJCTU3NDJBMkY2MjUzNTYxM0YwMEI3QkExNCAv
KiBQcm9kdWN0aW9uICovLAotCQkJKTsKLQkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxl
ID0gMDsKLQkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247Ci0JCX07CiAJ
CTVDMTU3OUQ2MjcxNjVCMkYwMEVENTI4MCAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9y
IFBCWE5hdGl2ZVRhcmdldCAid2VicHVzaGQiICovID0gewogCQkJaXNhID0gWENDb25maWd1cmF0
aW9uTGlzdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3Jk
aW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9X
ZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCmluZGV4IGY1YmQ4OWYxYzM1NDY5NDk3YjI5
YjU2OWU0YjhkMjRiM2JmMGMxY2IuLjZmY2U4NTU4NzNiOGExNzRkNDdhYmIwZjY5ZmY0NzRmN2Mz
YmYwNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3Iu
Y3BwCkBAIC0zMSw4ICszMSw2IEBACiAjaW5jbHVkZSAiRGVmYXVsdFdlYkJyb3dzZXJDaGVja3Mu
aCIKICNpbmNsdWRlICJGcmFtZUluZm9EYXRhLmgiCiAjaW5jbHVkZSAiV2ViQXV0aGVudGljYXRv
ckNvb3JkaW5hdG9yUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYkF1dGhuQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oIgotI2luY2x1ZGUgIldlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uaCIK
ICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJX
ZWJQcm9jZXNzLmgiCkBAIC03NiwyMiArNzQsNyBAQCB2b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29y
ZGluYXRvcjo6bWFrZUNyZWRlbnRpYWwoY29uc3QgRnJhbWUmIGZyYW1lLCBjb25zdCBTZWN1cgog
ICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIGlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlID0gcHJv
Y2Vzc2luZ1VzZXJHZXN0dXJlKGZyYW1lLCB3ZWJGcmFtZS0+ZnJhbWVJRCgpKTsKLSNpZiBIQVZF
KFVOSUZJRURfQVNDX0FVVEhfVUkpCi0gICAgYm9vbCB1c2VXZWJBdXRoblByb2Nlc3MgPSBmYWxz
ZTsKLSNlbHNlCi0gICAgYm9vbCB1c2VXZWJBdXRoblByb2Nlc3MgPSBSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZCgp
OwotI2VuZGlmCi0gICAgaWYgKCF1c2VXZWJBdXRoblByb2Nlc3MpIHsKLSAgICAgICAgbV93ZWJQ
YWdlLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yUHJveHk6Ok1ha2VDcmVkZW50aWFsKHdlYkZyYW1lLT5mcmFtZUlEKCksIHdlYkZyYW1lLT5p
bmZvKCksIGhhc2gsIG9wdGlvbnMsIGlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKSwgV1RGTW92ZSho
YW5kbGVyKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoIWlzV2ViQnJvd3Nl
cigpKSB7Ci0gICAgICAgIFdFQkFVVEhOX1JFTEVBU0VfTE9HX0VSUk9SKCJtYWtlQ3JlZGVudGlh
bDogVGhlICduYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlJyBBUEkgaXMgb25seSBwZXJtaXR0
ZWQgaW4gYXBwbGljYXRpb25zIHdpdGggdGhlICdjb20uYXBwbGUuZGV2ZWxvcGVyLndlYi1icm93
c2VyJyBlbnRpdGxlbWVudC4iKTsKLSAgICAgICAgaGFuZGxlcih7IH0sIHN0YXRpY19jYXN0PEF1
dGhlbnRpY2F0b3JBdHRhY2htZW50PigwKSwgRXhjZXB0aW9uRGF0YSB7IE5vdEFsbG93ZWRFcnJv
ciwgIlRoZSAnbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZScgQVBJIGlzIG9ubHkgcGVybWl0
dGVkIGluIGFwcGxpY2F0aW9ucyB3aXRoIHRoZSAnY29tLmFwcGxlLmRldmVsb3Blci53ZWItYnJv
d3NlcicgZW50aXRsZW1lbnQuIl9zIH0pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZVdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oKS5j
b25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJBdXRobkNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6Ok1ha2VDcmVkZW50aWFsKGhhc2gsIG9wdGlvbnMsIGlzUHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlKSwgV1RGTW92ZShoYW5kbGVyKSk7CisgICAgbV93ZWJQYWdlLnNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6Ok1h
a2VDcmVkZW50aWFsKHdlYkZyYW1lLT5mcmFtZUlEKCksIHdlYkZyYW1lLT5pbmZvKCksIGhhc2gs
IG9wdGlvbnMsIGlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKSwgV1RGTW92ZShoYW5kbGVyKSk7CiB9
CiAKIHZvaWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpnZXRBc3NlcnRpb24oY29uc3Qg
RnJhbWUmIGZyYW1lLCBjb25zdCBTZWN1cml0eU9yaWdpbiYsIGNvbnN0IFZlY3Rvcjx1aW50OF90
PiYgaGFzaCwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiBvcHRpb25z
LCBNZWRpYXRpb25SZXF1aXJlbWVudCBtZWRpYXRpb24sIGNvbnN0IFNjb3BlQW5kQ3Jvc3NPcmln
aW5QYXJlbnQmIHNjb3BlQW5kQ3Jvc3NPcmlnaW5QYXJlbnQsIFJlcXVlc3RDb21wbGV0aW9uSGFu
ZGxlciYmIGhhbmRsZXIpCkBAIC0xMDEsMjYgKzg0LDcgQEAgdm9pZCBXZWJBdXRoZW50aWNhdG9y
Q29vcmRpbmF0b3I6OmdldEFzc2VydGlvbihjb25zdCBGcmFtZSYgZnJhbWUsIGNvbnN0IFNlY3Vy
aXQKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBpc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSA9
IHByb2Nlc3NpbmdVc2VyR2VzdHVyZShmcmFtZSwgd2ViRnJhbWUtPmZyYW1lSUQoKSk7Ci0jaWYg
SEFWRShVTklGSUVEX0FTQ19BVVRIX1VJKQotICAgIGJvb2wgdXNlV2ViQXV0aG5Qcm9jZXNzID0g
ZmFsc2U7Ci0jZWxzZQotICAgIGJvb2wgdXNlV2ViQXV0aG5Qcm9jZXNzID0gUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJs
ZWQoKTsKLSNlbmRpZgotICAgIGlmICghdXNlV2ViQXV0aG5Qcm9jZXNzKSB7Ci0gICAgICAgIG1f
d2ViUGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dGhlbnRpY2F0b3JDb29y
ZGluYXRvclByb3h5OjpHZXRBc3NlcnRpb24od2ViRnJhbWUtPmZyYW1lSUQoKSwgd2ViRnJhbWUt
PmluZm8oKSwgaGFzaCwgb3B0aW9ucywgbWVkaWF0aW9uLCBzY29wZUFuZENyb3NzT3JpZ2luUGFy
ZW50LnNlY29uZCwgaXNQcm9jZXNzaW5nVXNlckdlc3R1cmUpLCBXVEZNb3ZlKGhhbmRsZXIpKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAoc2NvcGVBbmRDcm9zc09yaWdpblBhcmVu
dC5maXJzdCA9PSBXZWJBdXRobjo6U2NvcGU6OkNyb3NzT3JpZ2luKSB7Ci0gICAgICAgIGhhbmRs
ZXIoeyB9LCAoQXV0aGVudGljYXRvckF0dGFjaG1lbnQpMCwgRXhjZXB0aW9uRGF0YSB7IE5vdEFs
bG93ZWRFcnJvciwgIlRoZSBvcmlnaW4gb2YgdGhlIGRvY3VtZW50IGlzIG5vdCB0aGUgc2FtZSBh
cyBpdHMgYW5jZXN0b3JzLiJfcyB9KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlm
ICghaXNXZWJCcm93c2VyKCkpIHsKLSAgICAgICAgV0VCQVVUSE5fUkVMRUFTRV9MT0dfRVJST1Io
ImdldEFzc2VydGlvbjogVGhlICduYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0JyBBUEkgaXMgb25s
eSBwZXJtaXR0ZWQgaW4gYXBwbGljYXRpb25zIHdpdGggdGhlICdjb20uYXBwbGUuZGV2ZWxvcGVy
LndlYi1icm93c2VyJyBlbnRpdGxlbWVudC4iKTsKLSAgICAgICAgaGFuZGxlcih7IH0sIHN0YXRp
Y19jYXN0PEF1dGhlbnRpY2F0b3JBdHRhY2htZW50PigwKSwgRXhjZXB0aW9uRGF0YSB7IE5vdEFs
bG93ZWRFcnJvciwgIlRoZSAnbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldCcgQVBJIGlzIG9ubHkg
cGVybWl0dGVkIGluIGFwcGxpY2F0aW9ucyB3aXRoIHRoZSAnY29tLmFwcGxlLmRldmVsb3Blci53
ZWItYnJvd3NlcicgZW50aXRsZW1lbnQuIl9zIH0pOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZVdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rp
b24oKS5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJBdXRobkNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkdldEFzc2VydGlvbihoYXNoLCBvcHRpb25zLCBpc1Byb2Nl
c3NpbmdVc2VyR2VzdHVyZSksIFdURk1vdmUoaGFuZGxlcikpOworICAgIG1fd2ViUGFnZS5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5
OjpHZXRBc3NlcnRpb24od2ViRnJhbWUtPmZyYW1lSUQoKSwgd2ViRnJhbWUtPmluZm8oKSwgaGFz
aCwgb3B0aW9ucywgbWVkaWF0aW9uLCBzY29wZUFuZENyb3NzT3JpZ2luUGFyZW50LnNlY29uZCwg
aXNQcm9jZXNzaW5nVXNlckdlc3R1cmUpLCBXVEZNb3ZlKGhhbmRsZXIpKTsKIH0KIAogdm9pZCBX
ZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmlzQ29uZGl0aW9uYWxNZWRpYXRpb25BdmFpbGFi
bGUoUXVlcnlDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIpCkBAIC0xMzAsMjIgKzk0LDcgQEAg
dm9pZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmlzQ29uZGl0aW9uYWxNZWRpYXRpb25B
dmFpbGFibGUoUXVlcnlDb21wbGV0aW8KIAogdm9pZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0
b3I6OmlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZShRdWVyeUNv
bXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlcikKIHsKLSNpZiBIQVZFKFVOSUZJRURfQVNDX0FVVEhf
VUkpCi0gICAgYm9vbCB1c2VXZWJBdXRoblByb2Nlc3MgPSBmYWxzZTsKLSNlbHNlCi0gICAgYm9v
bCB1c2VXZWJBdXRoblByb2Nlc3MgPSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZCgpOwotI2VuZGlmCi0gICAgaWYg
KCF1c2VXZWJBdXRoblByb2Nlc3MpIHsKLSAgICAgICAgbV93ZWJQYWdlLnNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6OklzVXNlclZl
cmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSgpLCBXVEZNb3ZlKGhhbmRsZXIp
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICghaXNXZWJCcm93c2VyKCkpIHsK
LSAgICAgICAgV0VCQVVUSE5fUkVMRUFTRV9MT0dfRVJST1JfTk9fRlJBTUUoImlzVXNlclZlcmlm
eWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZTogV2ViQXV0aG4gaXMgb25seSBwZXJt
aXR0ZWQgaW4gYXBwbGljYXRpb25zIHdpdGggdGhlICdjb20uYXBwbGUuZGV2ZWxvcGVyLndlYi1i
cm93c2VyJyBlbnRpdGxlbWVudC4iKTsKLSAgICAgICAgaGFuZGxlcihmYWxzZSk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlV2ViQXV0
aG5Qcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OldlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6SXNVc2VyVmVyaWZ5aW5nUGxh
dGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKCksIFdURk1vdmUoaGFuZGxlcikpOworICAgIG1f
d2ViUGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dGhlbnRpY2F0b3JDb29y
ZGluYXRvclByb3h5OjpJc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFi
bGUoKSwgV1RGTW92ZShoYW5kbGVyKSk7CiB9CiAKIGJvb2wgV2ViQXV0aGVudGljYXRvckNvb3Jk
aW5hdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoY29uc3QgRnJhbWUmIGZyYW1lLCBjb25zdCBG
cmFtZUlkZW50aWZpZXImIGZyYW1lSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNz
Q29ubmVjdGlvbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVkMTNmNzNiYjdm
ODkzOTJmMzc3NzY4MzQzMDc5YTNhYTc1ZDEzYzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
NjAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJX
ZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmgiCi0KLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotCi0j
aW5jbHVkZSAiV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKLSNpbmNs
dWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCi0KLW5hbWVz
cGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLVdlYkF1dGhuUHJvY2Vz
c0Nvbm5lY3Rpb246OldlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJ
ZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQotICAgIDogbV9jb25uZWN0aW9uKElQQzo6
Q29ubmVjdGlvbjo6Y3JlYXRlQ2xpZW50Q29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllciwg
KnRoaXMpKQotewotICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOwotfQotCi1XZWJBdXRoblByb2Nl
c3NDb25uZWN0aW9uOjp+V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbigpCi17Ci0gICAgbV9jb25u
ZWN0aW9uLT5pbnZhbGlkYXRlKCk7Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlv
bjo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKLXsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS53ZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKHRoaXMpOwotfQotCi12b2lkIFdl
YkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VOYW1lKQotewotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJL
aXQKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhu
UHJvY2Vzc0Nvbm5lY3Rpb24uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTI5NWJh
NTNkM2FlYzNmMzg1MDMzNzUxZGJkYjAzZmJjNGQ5YTlhMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5oCisrKyAvZGV2L251bGwKQEAg
LTEsNTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKFdF
Ql9BVVRITikKLQotI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2Vi
S2l0IHsKLQotY2xhc3MgV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24+LCBJUEM6OkNvbm5lY3Rpb246OkNsaWVudCB7
Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uPiBjcmVh
dGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlv
bihjb25uZWN0aW9uSWRlbnRpZmllcikpOwotICAgIH0KLSAgICB+V2ViQXV0aG5Qcm9jZXNzQ29u
bmVjdGlvbigpOwotCi0gICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkgeyByZXR1cm4g
bV9jb25uZWN0aW9uLmdldCgpOyB9Ci0KLXByaXZhdGU6Ci0gICAgV2ViQXV0aG5Qcm9jZXNzQ29u
bmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwotCi0gICAgLy8gSVBDOjpDb25u
ZWN0aW9uOjpDbGllbnQKLSAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJy
aWRlOwotICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6TWVzc2FnZU5hbWUpIG92ZXJyaWRlOwotCi0gICAgLy8gVGhlIGNvbm5lY3Rpb24gZnJv
bSB0aGUgd2ViIHByb2Nlc3MgdG8gdGhlIFdlYkF1dGhuIHByb2Nlc3MuCi0gICAgUmVmPElQQzo6
Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0K
LSNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24ubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2Vi
QXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNjgzZjU4YTg2Y2RlNzNjZTIwYzdlYTU0NGJmMzU5N2I4Mjk1NTZiZS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbgorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAy
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnIEFORAotIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0jIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SCi0jIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKLSMgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIKLSMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLSMgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLQotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0KLW1lc3NhZ2Vz
IC0+IFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24gewotfQotCi0jZW5kaWYgLy8gRU5BQkxFKFdF
Ql9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uSW5mby5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZv
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkwN2Y4M2U3NjQwOTY0ZmFlOWIzMWNm
MjNmN2Q4OTQwMTY3ZWY2NDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1
dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MiArMCwwIEBA
Ci0vKgotKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotKgotKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0qIGFyZSBtZXQ6Ci0qIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0q
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotKgotKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0qIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0q
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0qIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0qIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0qIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSovCi0KLSNwcmFnbWEg
b25jZQotCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXN0
cnVjdCBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uSW5mbyB7Ci0gICAgSVBDOjpBdHRhY2htZW50
IGNvbm5lY3Rpb247Ci0KLSAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgaWRlbnRpZmll
cigpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gSVBDOjpDb25uZWN0aW9uOjpJZGVudGlm
aWVyKGNvbm5lY3Rpb24ucG9ydCgpKTsKLSAgICB9Ci0KLSAgICBJUEM6OkNvbm5lY3Rpb246Oklk
ZW50aWZpZXIgcmVsZWFzZUlkZW50aWZpZXIoKQotICAgIHsKLSAgICAgICAgYXV0byByZXR1cm5W
YWx1ZSA9IGlkZW50aWZpZXIoKTsKLSAgICAgICAgY29ubmVjdGlvbiA9IHsgfTsKLSAgICAgICAg
cmV0dXJuIHJldHVyblZhbHVlOwotICAgIH0KLQotICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKLSAgICB7Ci0gICAgICAgIGVuY29kZXIgPDwgY29ubmVjdGlvbjsK
LSAgICB9Ci0KLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKElQQzo6
RGVjb2RlciYgZGVjb2RlciwgV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkluZm8mIGluZm8pCi0g
ICAgewotICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uY29ubmVjdGlvbikpCi0gICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLX07Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA4N2U2MDhlZWI0NDY3YzAwMTlmM2QzN2ZlZTFmODNj
YjMwOTAyNDU0Li4zN2VhMDE3YjIyZmNjYTQ5MjNlM2RjNzNiZmJhOGM5ZTE2M2E5NWIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTIxLDggKzEyMSw2IEBACiAjZW5kaWYKIAogI2lmIEVO
QUJMRShXRUJfQVVUSE4pCi0jaW5jbHVkZSAiV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNz
TWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9Nb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmg+CiAjZW5k
aWYKIApAQCAtMTUxMCwxMiArMTUwOCw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRVc2Vy
SXNJbnRlcmFjdGluZyhib29sIHVzZXJJc0ludGVyYWN0aW5nKQogI2lmIEVOQUJMRShXRUJfQVVU
SE4pCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmln
dXJhdGlvbihjb25zdCBNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uJiBjb25maWd1
cmF0aW9uKQogewotICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS53ZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQoKSkgewotICAgICAgICBtX3BhZ2Uu
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25m
aWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24pKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZVdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24o
KS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6V2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpTZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24p
LCB7IH0pOworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldE1vY2tX
ZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbikpOwogfQogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCAxY2E4MmIxNjE5
ODNmMjg4OWM0ZGU3ZjIxNmZkNTBhZTQ5Nzk1ZDIzLi4zOWU1MDExNjA3YWI1OGVkNGVjMjZjZmQ3
YTIzMTljYzFjNTAxOGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CkBAIC0xOTMsMTIgKzE5Myw2IEBACiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIK
ICNlbmRpZgogCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLSNpbmNsdWRlICJXZWJBdXRobkNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYkF1dGhuUHJvY2Vzc0Nv
bm5lY3Rpb24uaCIKLSNpbmNsdWRlICJXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uSW5mby5oIgot
I2VuZGlmCi0KICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9SZW1vdGVJbnNwZWN0b3IuaD4KICNlbmRpZgpAQCAtMTM1Nyw1NyArMTM1MSw2IEBA
IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlciYgV2ViUHJv
Y2Vzczo6YXVkaW9NZWRpYVN0cmVhbVRyCiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1Mp
CiAKLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotCi1zdGF0aWMgV2ViQXV0aG5Qcm9jZXNzQ29ubmVj
dGlvbkluZm8gZ2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24pCi17Ci0gICAgV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkluZm8gY29ubmVjdGlv
bkluZm87Ci0gICAgaWYgKCFjb25uZWN0aW9uLnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQcm9jZXNz
UHJveHk6OkdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oKSwgTWVzc2FnZXM6OldlYlByb2Nl
c3NQcm94eTo6R2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbjo6UmVwbHkoY29ubmVjdGlvbklu
Zm8pLCAwKSkgewotICAgICAgICAvLyBJZiB3ZSBmYWlsZWQgdGhlIGZpcnN0IHRpbWUsIHJldHJ5
IG9uY2UuIFRoZSBhdHRhY2htZW50IG1heSBoYXZlIGJlY29tZSBpbnZhbGlkCi0gICAgICAgIC8v
IGJlZm9yZSBpdCB3YXMgcmVjZWl2ZWQgYnkgdGhlIHdlYiBwcm9jZXNzIGlmIHRoZSBuZXR3b3Jr
IHByb2Nlc3MgY3Jhc2hlZC4KLSAgICAgICAgaWYgKCFjb25uZWN0aW9uLnNlbmRTeW5jKE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oKSwgTWVz
c2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbjo6UmVw
bHkoY29ubmVjdGlvbkluZm8pLCAwKSkgewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
V2ViQXV0aG4sICJnZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uOiBVbmFibGUgdG8gY29ubmVj
dCB0byBXZWJBdXRobiBwcm9jZXNzIChUZXJtaW5hdGluZykiKTsKLSAgICAgICAgICAgIGZhaWxl
ZFRvU2VuZFN5bmNNZXNzYWdlKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gY29u
bmVjdGlvbkluZm87Ci19Ci0KLVdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24mIFdlYlByb2Nlc3M6
OmVuc3VyZVdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oKQotewotICAgIFJFTEVBU0VfQVNTRVJU
KFJ1bkxvb3A6OmlzTWFpbigpKTsKLQotICAgIC8vIElmIHdlJ3ZlIGxvc3Qgb3VyIGNvbm5lY3Rp
b24gdG8gdGhlIFdlYkF1dGhuIHByb2Nlc3MgKGUuZy4gaXQgY3Jhc2hlZCkgdHJ5IHRvIHJlLWVz
dGFibGlzaCBpdC4KLSAgICBpZiAoIW1fd2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbikgewotICAg
ICAgICBhdXRvIGNvbm5lY3Rpb25JbmZvID0gZ2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbigq
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKSk7Ci0KLSAgICAgICAgLy8gUmV0cnkgb25jZSBpZiB0
aGUgSVBDIHRvIGdldCB0aGUgY29ubmVjdGlvbklkZW50aWZpZXIgc3VjY2VlZGVkIGJ1dCB0aGUg
Y29ubmVjdGlvbklkZW50aWZpZXIgd2UgcmVjZWl2ZWQKLSAgICAgICAgLy8gaXMgaW52YWxpZC4g
VGhpcyBtYXkgaW5kaWNhdGUgdGhhdCB0aGUgV2ViQXV0aG4gcHJvY2VzcyBoYXMgY3Jhc2hlZC4K
LSAgICAgICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc1ZhbGlkKGNvbm5lY3Rp
b25JbmZvLmlkZW50aWZpZXIoKSkpCi0gICAgICAgICAgICBjb25uZWN0aW9uSW5mbyA9IGdldFdl
YkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oKnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkpOwotCi0g
ICAgICAgIGlmICghSVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9u
SW5mby5pZGVudGlmaWVyKCkpKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJB
dXRobiwgImVuc3VyZVdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb246IENvbm5lY3Rpb24gaWRlbnRp
ZmllciBmb3IgV2ViQXV0aG4gcHJvY2VzcyBpcyBpbnZhbGlkLiIpOwotICAgICAgICAgICAgQ1JB
U0goKTsKLSAgICAgICAgfQotCi0gICAgICAgIG1fd2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbiA9
IFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZShjb25uZWN0aW9uSW5mby5yZWxlYXNl
SWRlbnRpZmllcigpKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gKm1fd2ViQXV0aG5Qcm9jZXNzQ29u
bmVjdGlvbjsKLX0KLQotdm9pZCBXZWJQcm9jZXNzOjp3ZWJBdXRoblByb2Nlc3NDb25uZWN0aW9u
Q2xvc2VkKFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCi17Ci0gICAgQVNT
RVJUKG1fd2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbik7Ci0gICAgQVNTRVJUX1VOVVNFRChjb25u
ZWN0aW9uLCBtX3dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24gPT0gY29ubmVjdGlvbik7Ci0KLSAg
ICBtX3dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24gPSBudWxscHRyOwotfQotCi0jZW5kaWYgLy8g
RU5BQkxFKFdFQl9BVVRITikKLQogdm9pZCBXZWJQcm9jZXNzOjpzZXRFbmhhbmNlZEFjY2Vzc2li
aWxpdHkoYm9vbCBmbGFnKQogewogICAgIFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNldEVuaGFu
Y2VkVXNlckludGVyZmFjZUFjY2Vzc2liaWxpdHkoZmxhZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaAppbmRleCBjYTA2NjQ0ZTk2MzQ5Mzk3NTliZjljMTY3ODA3MmUwYzlmMDE5
MzFjLi4wNzk3NGZkODRlNGYyNDQ0MGNkYmI0YjQ2YTdmMWE0OWQ5YTdhNTdlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTEyOSw3ICsxMjksNiBAQCBjbGFzcyBSZW1v
dGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5OwogY2xhc3MgU3RvcmFnZUFyZWFNYXA7
CiBjbGFzcyBVc2VyRGF0YTsKIGNsYXNzIFdheWxhbmRDb21wb3NpdG9yRGlzcGxheTsKLWNsYXNz
IFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb247CiBjbGFzcyBXZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5OwogY2xhc3MgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OwogY2xhc3MgV2ViQ2FjaGVT
dG9yYWdlUHJvdmlkZXI7CkBAIC0yNjAsMTIgKzI1OSw2IEBAIHB1YmxpYzoKICAgICBSZW1vdGVN
ZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5JiBtZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25G
YWN0b3J5KCk7CiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQogCi0jaWYgRU5BQkxFKFdF
Ql9BVVRITikKLSAgICBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uJiBlbnN1cmVXZWJBdXRoblBy
b2Nlc3NDb25uZWN0aW9uKCk7Ci0gICAgdm9pZCB3ZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uQ2xv
c2VkKFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24qKTsKLSAgICBXZWJBdXRoblByb2Nlc3NDb25u
ZWN0aW9uKiBleGlzdGluZ1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oKSB7IHJldHVybiBtX3dl
YkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uZ2V0KCk7IH0KLSNlbmRpZgotCiAgICAgTGliV2ViUlRD
TmV0d29yayYgbGliV2ViUlRDTmV0d29yaygpOwogCiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsKENh
Y2hlTW9kZWwpOwpAQCAtNjU0LDExICs2NDcsNiBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVl
X3B0cjxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXI+IG1f
YXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyOwogI2VuZGlm
CiAjZW5kaWYKLQotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0gICAgUmVmUHRyPFdlYkF1dGhuUHJv
Y2Vzc0Nvbm5lY3Rpb24+IG1fd2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbjsKLSNlbmRpZgotCiAg
ICAgUmVmPFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyPiBtX2NhY2hlU3RvcmFnZVByb3ZpZGVyOwog
ICAgIFJlZjxXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk+IG1fYnJvYWRjYXN0Q2hhbm5lbFJl
Z2lzdHJ5OwogICAgIFJlZjxXZWJDb29raWVKYXI+IG1fY29va2llSmFyOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDcwMjY2NWU0NGJlZTFjNmM3
MTFmNjdmMTcwYzVjNmMxOTg0NGU4NWEuLjRmODIyNzdhNzU5Y2Y3MGM2MmU3YTBhODlmOWNiMTU1
M2E2ZTFiYWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMi0wNS0xMSAgSiBQYXNjb2UgIDxqX3Bhc2NvZUBhcHBs
ZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBDbGVhbiB1cCBXZWJBdXRoZW50aWNhdGlvbk1v
ZGVybiBhbmQgV2ViQXV0aG5Qcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yNDAzMTgKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vOTMxMzA0OTAK
KworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpX
ZWJDb3JlOjp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUpOiBEZWxl
dGVkLgorCiAyMDIyLTA1LTEwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4K
IAogICAgICAgICBbZ2l0LXdlYmtpdF0gRmFpbCBxdWlja2x5IGZvciBpbnZhbGlkIGJ1Z3ppbGxh
IGNyZWRlbnRpYWxzCkBAIC0xOTY0LDE4ICsxOTc2LDYgQEAKICAgICAgICAgKC1bVGVzdE1DUHJv
ZmlsZUNvbm5lY3Rpb24gaXNVUkxNYW5hZ2VkOl0pOgogICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CiAKLTIwMjItMDQtMTQgIEogUGFzY29lICA8al9wYXNjb2VAYXBwbGUuY29tPgotCi0g
ICAgICAgIFtXZWJBdXRobl0gQ2xlYW4gdXAgV2ViQXV0aGVudGljYXRpb25Nb2Rlcm4gYW5kIFdl
YkF1dGhuUHJvY2VzcwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM5MDczCi0gICAgICAgIHJkYXI6Ly9wcm9ibGVtLzkxNTcxMDMwCi0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4KLQotICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbToKLSAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1QpOgotICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2ViQ29yZTo6d2Vi
QXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKTogRGVsZXRlZC4KLQogMjAy
Mi0wNC0xMyAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAg
W2J1aWxkLndlYmtpdC5vcmddIFVzZSBpZGVudGlmaWVyIGFzIHZlcnNpb24gd2hlbiB1cGxvYWRp
bmcgYXJ0aWZhY3RzCkBAIC0xOTk4LDYgKzE5OTgsMTggQEAKICAgICAgICAgKFNob3dJZGVudGlm
aWVyLmV2YWx1YXRlQ29tbWFuZCk6IFNldCBhcmNoaXZlX3JldmlzaW9uIGFzIGlkZW50aWZpZXIs
CiAgICAgICAgIGZhbGwgYmFjayB0byBnb3RfcmV2aXNpb24uCiAKKzIwMjItMDUtMDQgIEogUGFz
Y29lICA8al9wYXNjb2VAYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRobl0gQ2xlYW4gdXAg
V2ViQXV0aGVudGljYXRpb25Nb2Rlcm4gYW5kIFdlYkF1dGhuUHJvY2VzcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5MDczCisgICAgICAgIHJkYXI6
Ly9wcm9ibGVtLzkxNTcxMDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4K
KworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVu
dGljYXRpb25QYW5lbC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6V2ViQ29yZTo6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmlt
ZW50YWxGZWF0dXJlKTogRGVsZXRlZC4KKwogMjAyMi0wNC0xNCAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIERyb3AgaW5lZmZpY2llbnQgU3RyaW5nOjphcHBlbmQo
KSBvdmVybG9hZHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQppbmRleCBlZWUz
ZTAyODE1ZGUyZDFiOThhNWUyNTcxMDQ0NDc1ZTUyOGVhM2ZiLi5mZDFiNmEwZGE0ZTkzZjY2NDYx
MWI0NmMzOGU4MjQ2OTgyNGY2Mjk0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVs
Lm1tCkBAIC0zMDEsMjIgKzMwMSw2IEBAIHN0YXRpYyBjb25zdGV4cHIgYXV0byBzdWJGcmFtZSA9
CiAiPC9zY3JpcHQ+IgogIjwvaHRtbD4iX3M7CiAKLXN0YXRpYyBfV0tFeHBlcmltZW50YWxGZWF0
dXJlICp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKQotewotICAg
IHN0YXRpYyBSZXRhaW5QdHI8X1dLRXhwZXJpbWVudGFsRmVhdHVyZT4gdGhlRmVhdHVyZTsKLSAg
ICBpZiAodGhlRmVhdHVyZSkKLSAgICAgICAgcmV0dXJuIHRoZUZlYXR1cmUuZ2V0KCk7Ci0KLSAg
ICBOU0FycmF5ICpmZWF0dXJlcyA9IFtXS1ByZWZlcmVuY2VzIF9leHBlcmltZW50YWxGZWF0dXJl
c107Ci0gICAgZm9yIChfV0tFeHBlcmltZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIGZlYXR1cmVz
KSB7Ci0gICAgICAgIGlmIChbZmVhdHVyZS5rZXkgaXNFcXVhbDpAIldlYkF1dGhlbnRpY2F0aW9u
TW9kZXJuRW5hYmxlZCJdKSB7Ci0gICAgICAgICAgICB0aGVGZWF0dXJlID0gZmVhdHVyZTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiB0aGVGZWF0dXJl
LmdldCgpOwotfQotCiBzdGF0aWMgdm9pZCByZXNldCgpCiB7CiAgICAgd2ViQXV0aGVudGljYXRp
b25QYW5lbFJhbiA9IGZhbHNlOwpAQCAtNDUyLDcgKzQzNiw2IEBAIFRFU1QoV2ViQXV0aGVudGlj
YXRpb25QYW5lbCwgUGFuZWxIaWRTdWNjZXNzMSkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RV
UkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRp
Y2F0aW9uLWdldC1hc3NlcnRpb24taGlkIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0
b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRp
b24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQ
bHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJl
SlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3Nl
dEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVy
bkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC00NzQsNyAr
NDU3LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbEhpZFN1Y2Nlc3MyKQog
ICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJM
Rm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZCIgd2l0
aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
X3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1Bs
dWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRv
IGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0
ZSBhbGxvY10gaW5pdF0pOwpAQCAtNTAxLDcgKzQ4Myw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRp
b25QYW5lbCwgUGFuZWxSYWN5MSkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05T
QnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdl
dC1hc3NlcnRpb24tbmZjIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVz
dFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFz
c05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVz
dGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6
Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1l
bnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC01MjUsNyArNTA2LDYgQEAg
VEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbFJhY3kyKQogICAgIFJldGFpblB0cjxO
U1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3
ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMiIHdpdGhFeHRlbnNpb246QCJodG1s
IiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAq
Y29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRp
b25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxz
IiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZl
cmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRp
Y2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3Qg
Y29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0
TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsK
QEAgLTU0OSw3ICs1MjksNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsVHdp
Y2UpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZCIg
d2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3Vy
Y2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vz
c1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBb
W2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRh
bEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwog
CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBh
dXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxl
Z2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNTcyLDcgKzU1MSw2IEBAIFRFU1QoV2ViQXV0aGVudGlj
YXRpb25QYW5lbCwgUmVsb2FkSGlkQ2FuY2VsKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVS
TCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGlj
YXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtY2FuY2VsIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3Vi
ZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZp
Z3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0
aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29u
ZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNl
c10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlv
bk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtb
VGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC01
OTIsNyArNTcwLDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMb2NhdGlvbkNoYW5n
ZUhpZENhbmNlbCkKICAgICBSZXRhaW5QdHI8TlNVUkw+IG90aGVyVVJMID0gW1tOU0J1bmRsZSBt
YWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwi
IHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpj
b25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlv
bldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMi
IGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVy
ZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGlj
YXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBj
b25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHRO
UyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpA
QCAtNjEyLDcgKzU4OSw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTmV3TG9hZEhp
ZENhbmNlbCkKICAgICBSZXRhaW5QdHI8TlNVUkw+IG90aGVyVVJMID0gW1tOU0J1bmRsZSBtYWlu
QnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1
YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25m
aWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldp
dGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNv
bmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRp
b25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
W1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAt
NjMxLDcgKzYwNyw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgQ2xvc2VIaWRDYW5j
ZWwpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1j
YW5jZWwiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJ
LnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldl
YlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107
Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBl
cmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVy
ZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7
CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5l
bFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTY3MSw3ICs2NDYsNiBAQCBURVNUKFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWwsIFN1YkZyYW1lQ2hhbmdlTG9jYXRpb25IaWRDYW5jZWwpCiAgICAg
fSk7CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
X3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1Bs
dWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRv
IGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0
ZSBhbGxvY10gaW5pdF0pOwpAQCAtNzE4LDcgKzY5Miw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRp
b25QYW5lbCwgU3ViRnJhbWVEZXN0cnVjdGlvbkhpZENhbmNlbCkKICAgICB9KTsKIAogICAgIGF1
dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1
cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVy
bmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRo
ZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9S
ZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0
XSk7CkBAIC03MzcsNyArNzEwLDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5l
bEhpZENhbmNlbCkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1h
aW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRp
b24taGlkLWNhbmNlbCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RX
ZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NO
YW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rp
bmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5P
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50
YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3Vy
YXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNh
dGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNzU3LDcgKzcyOSw2IEBAIFRF
U1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxIaWRDdGFwTm9DcmVkZW50aWFsc0ZvdW5k
KQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0g
VVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtbm8t
Y3JlZGVudGlhbHMiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2Vi
S2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFt
ZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5n
OllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBm
b3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0
aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRp
b25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTc3NSw3ICs3NDYsNiBAQCBURVNU
KFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsVTJmQ3RhcE5vQ3JlZGVudGlhbHNGb3VuZCkK
ICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tdTJmLW5vLWNy
ZWRlbnRpYWxzIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktp
dEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6
QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZ
RVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9y
RXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZl
YXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9u
UGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC03OTMsNyArNzYzLDYgQEAgVEVTVChX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLCBGYWtlUGFuZWxIaWRTdWNjZXNzKQogICAgIFJldGFpblB0
cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6
QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQiIHdpdGhFeHRlbnNpb246QCJo
dG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0
byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3Vy
YXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJu
YWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhl
bnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmll
dyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1Jl
Y3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFk
b3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRd
KTsKQEAgLTgxMiw3ICs3ODEsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEZha2VQ
YW5lbEhpZEN0YXBOb0NyZWRlbnRpYWxzRm91bmQpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0
VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50
aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50aWFscyIgd2l0aEV4dGVuc2lvbjpA
Imh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBh
dXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmln
dXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRl
cm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0
aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJv
UmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0g
YWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5p
dF0pOwpAQCAtODMxLDcgKzc5OSw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTnVs
bFBhbmVsSGlkU3VjY2VzcykKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVu
ZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1h
c3NlcnRpb24taGlkIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdl
YktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05h
bWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGlu
ZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8g
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRh
bEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC04NTAsNyArODE3LDYgQEAgVEVT
VChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBOdWxsUGFuZWxIaWRDdGFwTm9DcmVkZW50aWFsc0Zv
dW5kKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRs
ZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQt
bm8tY3JlZGVudGlhbHMiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0
V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dl
YlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNz
TmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0
aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpO
TyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVu
dGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGlj
YXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTg3MCw3ICs4MzYsNiBAQCBU
RVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsTXVsdGlwbGVORkNUYWdzUHJlc2VudCkK
ICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLW11bHRp
cGxlLXRhZ3MiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0
QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdD
b25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpA
IldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllF
U107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVh
dHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9u
XSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25Q
YW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTg4OSw3ICs4NTQsNiBAQCBURVNUKFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsSGlkQ2FuY2VsUmVsb2FkTm9DcmFzaCkKICAgICBS
ZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJl
c291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWNhbmNlbCIgd2l0
aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
X3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1Bs
dWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRv
IGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0
ZSBhbGxvY10gaW5pdF0pOwpAQCAtOTA5LDcgKzg3Myw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRp
b25QYW5lbCwgUGFuZWxIaWRTdWNjZXNzQ2FuY2VsTm9DcmFzaCkKICAgICBSZXRhaW5QdHI8TlNV
Ukw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2Vi
LWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIg
c3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNv
bmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9u
V2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIg
Y29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNh
dGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBh
ZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNv
bmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5T
KFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBA
IC05MjcsNyArODkwLDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbEhpZEN0
YXBOb0NyZWRlbnRpYWxzRm91bmRDYW5jZWxOb0NyYXNoKQogICAgIFJldGFpblB0cjxOU1VSTD4g
dGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0
aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtbm8tY3JlZGVudGlhbHMiIHdpdGhFeHRlbnNp
b246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAg
ICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2Nv
bmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRo
SW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0
aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndl
YkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
WmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0
ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2Nd
IGluaXRdKTsKQEAgLTk0NSw3ICs5MDcsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWws
IFBpbkdldFJldHJpZXNFcnJvcikKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05T
QnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1h
a2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1yZXRyaWVzLWVycm9yIiB3aXRoRXh0ZW5zaW9uOkAi
aHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1
dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1
cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVy
bmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRo
ZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9S
ZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIFt3ZWJWaWV3IGZvY3VzXTsK
QEAgLTk1OSw3ICs5MjAsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBpbkdldEtl
eUFncmVlbWVudEVycm9yKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5k
bGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1j
cmVkZW50aWFsLWhpZC1waW4tZ2V0LWtleS1hZ3JlZW1lbnQtZXJyb3IiIHdpdGhFeHRlbnNpb246
QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAg
YXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZp
Z3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50
ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1
dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVy
b1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgW3dlYlZpZXcgZm9jdXNd
OwpAQCAtOTczLDcgKzkzMyw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGluUmVx
dWVzdFBpbkVycm9yTm9EZWxlZ2F0ZSkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBb
W05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9u
LW1ha2UtY3JlZGVudGlhbC1oaWQtcGluIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0
b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRp
b24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQ
bHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJl
SlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3Nl
dEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVy
bkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbl0pOwogICAgIFt3ZWJWaWV3IGZvY3VzXTsKQEAgLTk4Nyw3ICs5NDYs
NiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBpblJlcXVlc3RQaW5FcnJvck51bGxE
ZWxlZ2F0ZSkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5C
dW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlh
bC1oaWQtcGluIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktp
dEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6
QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZ
RVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9y
RXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZl
YXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9u
UGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMDA1LDcgKzk2Myw2IEBAIFRFU1Qo
V2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGluUmVxdWVzdFBpbkVycm9yKQogICAgIFJldGFpblB0
cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6
QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tl
bi1mYWtlLXBpbi1pbnZhbGlkLWVycm9yLXJldHJ5IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3Vi
ZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZp
Z3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0
aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29u
ZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNl
c10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlv
bk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtb
VGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0x
MDI1LDcgKzk4Miw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGluR2V0UGluVG9r
ZW5QaW5CbG9ja2VkRXJyb3IpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtl
LWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcGluLXRva2VuLXBpbi1ibG9ja2VkLWVycm9yIiB3aXRo
RXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMi
XTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBf
dGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1
Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29u
ZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8g
ZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRl
IGFsbG9jXSBpbml0XSk7CkBAIC0xMDQ1LDcgKzEwMDEsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWwsIFBpbkdldFBpblRva2VuUGluQXV0aEJsb2NrZWRFcnJvcikKICAgICBSZXRhaW5Q
dHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNl
OkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9r
ZW4tcGluLWF1dGgtYmxvY2tlZC1lcnJvciIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVj
dG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0
aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0
UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3Vy
ZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9z
ZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rl
cm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RX
ZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTA2NSw3
ICsxMDIwLDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5HZXRQaW5Ub2tlblBp
bkludmFsaWRFcnJvckFuZFJldHJ5KQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtb
TlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24t
bWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1waW4taW52YWxpZC1lcnJvci1y
ZXRyeSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2Vi
UHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsK
LSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVy
aW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJl
KCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsK
ICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVs
VUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTA4NCw3ICsxMDM4LDYgQEAgVEVTVChXZWJB
dXRoZW50aWNhdGlvblBhbmVsLCBQaW5HZXRQaW5Ub2tlblBpbkF1dGhJbnZhbGlkRXJyb3JBbmRS
ZXRyeSkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5k
bGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1o
aWQtcGluLWdldC1waW4tdG9rZW4tcGluLWF1dGgtaW52YWxpZC1lcnJvci1yZXRyeSIgd2l0aEV4
dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07
CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rl
c3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJ
bldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRl
bGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBh
bGxvY10gaW5pdF0pOwpAQCAtMTEwMyw3ICsxMDU2LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlv
blBhbmVsLCBNYWtlQ3JlZGVudGlhbEludGVybmFsVVYpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0
ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRo
ZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLWludGVybmFsLXV2IiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAg
IGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25m
aWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aElu
dGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1pl
cm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBp
bml0XSk7CkBAIC0xMTIwLDcgKzEwNzIsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWws
IE1ha2VDcmVkZW50aWFsUGluKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNC
dW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFr
ZS1jcmVkZW50aWFsLWhpZC1waW4iIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6
QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9
IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJ
bkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NG
b3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5h
YmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhw
ZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpj
b25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0
aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTExMzgsNyArMTA4
OSw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTWFrZUNyZWRlbnRpYWxQaW5BdXRo
QmxvY2tlZEVycm9yKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUg
bWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVk
ZW50aWFsLWhpZC1waW4tYXV0aC1ibG9ja2VkLWVycm9yIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIg
c3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNv
bmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9u
V2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIg
Y29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNh
dGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBh
ZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNv
bmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5T
KFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBA
IC0xMTU4LDcgKzExMDgsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE1ha2VDcmVk
ZW50aWFsUGluSW52YWxpZEVycm9yQW5kUmV0cnkpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0
VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50
aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1pbnZhbGlkLWVycm9yLXJldHJ5IiB3aXRo
RXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMi
XTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBf
dGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1
Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29u
ZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8g
ZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRl
IGFsbG9jXSBpbml0XSk7CkBAIC0xMTc3LDcgKzExMjYsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWwsIEdldEFzc2VydGlvblBpbikKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwg
PSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0
aW9uLWdldC1hc3NlcnRpb24taGlkLXBpbiIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVj
dG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0
aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0
UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3Vy
ZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9z
ZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rl
cm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RX
ZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTE5NSw3
ICsxMTQzLDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBHZXRBc3NlcnRpb25JbnRl
cm5hbFVWKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1
bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1o
aWQtaW50ZXJuYWwtdXYiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0
V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dl
YlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNz
TmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0
aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpO
TyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVu
dGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGlj
YXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTEyMTIsNyArMTE1OSw2IEBA
IFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgR2V0QXNzZXJ0aW9uSW50ZXJuYWxVVlBpbkZh
bGxiYWNrKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1
bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1o
aWQtaW50ZXJuYWwtdXYtcGluLWZhbGxiYWNrIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGly
ZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3Vy
YXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRl
c3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmln
dXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10g
X3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1v
ZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3Vy
YXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVz
dFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMjMw
LDcgKzExNzYsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEdldEFzc2VydGlvblBp
bkF1dGhCbG9ja2VkRXJyb3IpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQt
YXNzZXJ0aW9uLWhpZC1waW4tYXV0aC1ibG9ja2VkLWVycm9yIiB3aXRoRXh0ZW5zaW9uOkAiaHRt
bCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8g
KmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0
aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFs
cyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50
aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9w
dE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7
CkBAIC0xMjUwLDcgKzExOTUsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEdldEFz
c2VydGlvblBpbkludmFsaWRFcnJvckFuZFJldHJ5KQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVz
dFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVu
dGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtcGluLWludmFsaWQtZXJyb3ItcmV0cnkiIHdpdGhF
eHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJd
OwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90
ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVn
SW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBk
ZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUg
YWxsb2NdIGluaXRdKTsKQEAgLTEyNzAsNyArMTIxNCw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRp
b25QYW5lbCwgTmZjUGluQ2FjaGVkRGlzY29ubmVjdCkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRl
c3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhl
bnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLXBpbi1kaXNjb25uZWN0IiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAg
IGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25m
aWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aElu
dGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1pl
cm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBp
bml0XSk7CkBAIC0xMjg5LDcgKzEyMzIsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWws
IE11bHRpcGxlQWNjb3VudHNOdWxsRGVsZWdhdGUpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0
VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50
aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1tdWx0aXBsZS1hY2NvdW50cyIgd2l0aEV4dGVuc2lv
bjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAg
ICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29u
ZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJ
bnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2Vi
QXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNa
ZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRl
ID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10g
aW5pdF0pOwpAQCAtMTMwNyw3ICsxMjQ5LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVs
LCBNdWx0aXBsZUFjY291bnRzKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNC
dW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0
LWFzc2VydGlvbi1oaWQtbXVsdGlwbGUtYWNjb3VudHMiIHdpdGhFeHRlbnNpb246QCJodG1sIiBz
dWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29u
ZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25X
aXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBj
b25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0
aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMo
W1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAg
LTEzMjksNyArMTI3MCw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTEFFcnJvcikK
ICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYS1lcnJv
ciIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVz
b3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJv
Y2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAg
ICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1l
bnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCld
OwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAg
ICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlE
ZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTM0Niw3ICsxMjg2LDYgQEAgVEVTVChXZWJBdXRo
ZW50aWNhdGlvblBhbmVsLCBMQUR1cGxpY2F0ZUNyZWRlbnRpYWwpCiAgICAgUmV0YWluUHRyPE5T
VVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndl
Yi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtbGEtZHVwbGljYXRlLWNyZWRlbnRpYWwi
IHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291
cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0
aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nl
c3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAg
W1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50
YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsK
IAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAg
YXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVs
ZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTEzNjUsNyArMTMwNCw2IEBAIFRFU1QoV2ViQXV0aGVu
dGljYXRpb25QYW5lbCwgTEFEdXBsaWNhdGVDcmVkZW50aWFsV2l0aENvbnNlbnQpCiAgICAgUmV0
YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNv
dXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtbGEtZHVwbGljYXRlLWNy
ZWRlbnRpYWwiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0
QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdD
b25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpA
IldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllF
U107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVh
dHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9u
XSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25Q
YW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTEzOTAsNyArMTMyOCw2IEBAIFRFU1Qo
V2ViQXV0aGVudGljYXRpb25QYW5lbCwgTEFOb0NyZWRlbnRpYWwpCiAgICAgUmV0YWluUHRyPE5T
VVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndl
Yi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWxhIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIg
c3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNv
bmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9u
V2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIg
Y29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNh
dGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBh
ZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNv
bmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5T
KFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBA
IC0xNDAxLDQ4ICsxMzM4LDEyIEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTEFOb0Ny
ZWRlbnRpYWwpCiAgICAgVXRpbDo6cnVuKCZ3ZWJBdXRoZW50aWNhdGlvblBhbmVsVXBkYXRlTEFO
b0NyZWRlbnRpYWwpOwogfQogCi1URVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExBTWFrZUNy
ZWRlbnRpYWxOdWxsRGVsZWdhdGUpCi17Ci0gICAgcmVzZXQoKTsKLSAgICBSZXRhaW5QdHI8TlNV
Ukw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2Vi
LWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYSIgd2l0aEV4dGVuc2lvbjpAImh0bWwi
IHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07Ci0KLSAgICBhdXRvICpj
b25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlv
bldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMi
IGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVy
ZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGlj
YXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwotCi0gICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBj
b25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKLSAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHRO
UyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwot
ICAgIFtkZWxlZ2F0ZSBzZXRJc051bGw6dHJ1ZV07Ci0gICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0
ZTpkZWxlZ2F0ZS5nZXQoKV07Ci0gICAgW3dlYlZpZXcgZm9jdXNdOwotCi0gICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07
Ci0gICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJEaXNhbGxvdyBsb2NhbCBhdXRoZW50aWNh
dG9yLiJdOwotfQotCi1URVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExBTWFrZUNyZWRlbnRp
YWxEaXNhbGxvd0xvY2FsQXV0aGVudGljYXRvcikKLXsKLSAgICByZXNldCgpOwotICAgIFJldGFp
blB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3Vy
Y2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWxhIiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKLQotICAg
IGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25m
aWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aElu
dGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0KLSAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1pl
cm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwotICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBp
bml0XSk7Ci0gICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07Ci0gICAg
W3dlYlZpZXcgZm9jdXNdOwotCi0gICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07Ci0gICAgW3dlYlZpZXcgd2FpdEZvck1l
c3NhZ2U6QCJEaXNhbGxvdyBsb2NhbCBhdXRoZW50aWNhdG9yLiJdOwotfQotCiBURVNUKFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWwsIExBTWFrZUNyZWRlbnRpYWxBbGxvd0xvY2FsQXV0aGVudGljYXRv
cikKIHsKICAgICByZXNldCgpOwogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNC
dW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFr
ZS1jcmVkZW50aWFsLWxhIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVz
dFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFz
c05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVz
dGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6
Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1l
bnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xNDYzLDcgKzEzNjQsNiBA
QCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExBTWFrZUNyZWRlbnRpYWxOb01vY2tOb1Vz
ZXJHZXN0dXJlKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50
aWFsLWxhLW5vLW1vY2siIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0
V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dl
YlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNz
TmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0
aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpO
TyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVu
dGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGlj
YXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTE0ODIsNyArMTM4Miw2IEBA
IFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTEFHZXRBc3NlcnRpb24pCiAgICAgUmV0YWlu
UHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJj
ZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWxhIiB3aXRoRXh0ZW5zaW9uOkAi
aHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1
dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1
cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVy
bmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRo
ZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9S
ZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0
XSk7CkBAIC0xNTAyLDcgKzE0MDEsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExB
R2V0QXNzZXJ0aW9uTXVsdGlwbGVDcmVkZW50aWFsU3RvcmUpCiAgICAgUmV0YWluUHRyPE5TVVJM
PiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1h
dXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWxhIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3Vi
ZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZp
Z3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0
aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29u
ZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNl
c10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlv
bk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtb
VGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0x
NTMwLDcgKzE0MjgsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExBR2V0QXNzZXJ0
aW9uTm9Nb2NrTm9Vc2VyR2VzdHVyZSkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBb
W05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9u
LWdldC1hc3NlcnRpb24tbGEtbm8tbW9jayIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVj
dG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0
aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0
UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3Vy
ZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9z
ZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rl
cm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RX
ZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTU0Nyw3
ICsxNDQ0LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMQUdldEFzc2VydGlvbk11
bHRpcGxlT3JkZXIpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBt
YWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0
aW9uLWxhIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQ
SS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJX
ZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNd
OwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhw
ZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1
cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0p
OwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0yMzQxLDYgKzIyMzcsNyBAQCBURVNUKFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWwsIFVwZGF0ZUNyZWRlbnRpYWxVc2VybmFtZSkKIFRFU1QoV2Vi
QXV0aGVudGljYXRpb25QYW5lbCwgRXhwb3J0SW1wb3J0Q3JlZGVudGlhbCkKIHsKICAgICByZXNl
dCgpOworICAgIGNsZWFuVXBLZXljaGFpbigiZXhhbXBsZS5jb20iX3MpOwogCiAgICAgYWRkS2V5
VG9LZXljaGFpbih0ZXN0RVMyNTZQcml2YXRlS2V5QmFzZTY0LCAiZXhhbXBsZS5jb20iX3MsIHRl
c3RVc2VyRW50aXR5QnVuZGxlQmFzZTY0KTsKIApAQCAtMjQxMiw1OCArMjMwOSw2IEBAIFRFU1Qo
V2ViQXV0aGVudGljYXRpb25QYW5lbCwgRGVsZXRlT25lQ3JlZGVudGlhbCkKIH0KICNlbmRpZiAv
LyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSB8fCBQTEFURk9STShJT1MpCiAKLSNpZiBQTEFURk9S
TShJT1MpCi1URVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFJlY292ZXJBZnRlckF1dGhOUHJv
Y2Vzc0NyYXNoKQotewotICAgIFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXIgc2VydmVyKHsKLSAg
ICAgICAgeyAiLyJfcywgeyAiRk9PIl9zIH0gfQotICAgIH0pOwotCi0gICAgYXV0byAqY29uZmln
dXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRo
VGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25m
aWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2Vz
XSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlv
bk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0KLSAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwotICAgIEVYUEVDVF9FUShbV0tQcm9jZXNzUG9vbCBf
d2ViQXV0aG5Qcm9jZXNzSWRlbnRpZmllcl0sIDApOwotCi0gICAgW3dlYlZpZXcgc3luY2hyb25v
dXNseUxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdp
dGhTdHJpbmc6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJodHRwOi8vbG9jYWxob3N0OiVk
LyIsIHNlcnZlci5wb3J0KCldXV1dOwotICAgIFt3ZWJWaWV3IGZvY3VzXTsKLQotICAgIFt3ZWJW
aWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJpbnRlcm5hbHMuc2V0TW9ja1dlYkF1
dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbih7IH0pIl07Ci0gICAgYXV0byBmaXJzdFdlYlBJRCA9
IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07Ci0gICAgYXV0byBmaXJzdFdlYkF1dGhu
UElEID0gW1dLUHJvY2Vzc1Bvb2wgX3dlYkF1dGhuUHJvY2Vzc0lkZW50aWZpZXJdOwotICAgIEVY
UEVDVF9ORShmaXJzdFdlYlBJRCwgMCk7Ci0gICAgRVhQRUNUX05FKGZpcnN0V2ViQXV0aG5QSUQs
IDApOwotCi0gICAga2lsbChmaXJzdFdlYkF1dGhuUElELCBTSUdLSUxMKTsKLSAgICB3aGlsZSAo
W1dLUHJvY2Vzc1Bvb2wgX3dlYkF1dGhuUHJvY2Vzc0lkZW50aWZpZXJdKQotICAgICAgICBVdGls
OjpzcGluUnVuTG9vcCgpOwotCi0gICAgW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNj
cmlwdDpAImludGVybmFscy5zZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uKHsg
aGlkOiB7IHN0YWdlOiAncmVxdWVzdCcsIHN1YlN0YWdlOiAnbXNnJywgZXJyb3I6ICdzdWNjZXNz
JywgaXNVMmY6IHRydWUsIHBheWxvYWRCYXNlNjQ6IFsnQVFBQUFEc3dSQUlnZTk0S1Vxd2ZUSXNu
NEFPamNNMW1wTWNSamRJdFZFZURYMFc1bkdoQ1AvY0NJRHhSZTBlSGY0VjRMZUVBaHFlRDBlZmZU
alk1NTNIMTlxK2pXcTFUYzRXT2tBQT0nXSB9IH0pOyJdOwotCi0gICAgd2hpbGUgKCFbV0tQcm9j
ZXNzUG9vbCBfd2ViQXV0aG5Qcm9jZXNzSWRlbnRpZmllcl0pCi0gICAgICAgIFV0aWw6OnNwaW5S
dW5Mb29wKCk7Ci0KLSAgICBhdXRvIHNlY29uZFdlYkF1dGhuUElEID0gW1dLUHJvY2Vzc1Bvb2wg
X3dlYkF1dGhuUHJvY2Vzc0lkZW50aWZpZXJdOwotICAgIEVYUEVDVF9ORShzZWNvbmRXZWJBdXRo
blBJRCwgZmlyc3RXZWJBdXRoblBJRCk7Ci0gICAgRVhQRUNUX0VRKFt3ZWJWaWV3IF93ZWJQcm9j
ZXNzSWRlbnRpZmllcl0sIGZpcnN0V2ViUElEKTsKLQotICAgIF9fYmxvY2sgYm9vbCBnb3RNZXNz
YWdlID0gZmFsc2U7Ci0gICAgW3dlYlZpZXcgcGVyZm9ybUFmdGVyUmVjZWl2aW5nQW55TWVzc2Fn
ZTpeKE5TU3RyaW5nICptZXNzYWdlKSB7Ci0gICAgICAgIEVYUEVDVF9XS19TVFJFUShAInB1Ymxp
Yy1rZXkiLCBtZXNzYWdlKTsKLSAgICAgICAgZ290TWVzc2FnZSA9IHRydWU7Ci0gICAgfV07Ci0K
LSAgICBfX2Jsb2NrIGJvb2wgZXhlY3V0ZWRTY3JpcHQgPSBmYWxzZTsKLSAgICBbd2ViVmlldyBl
dmFsdWF0ZUphdmFTY3JpcHQ6QCJuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KHsgcHVibGljS2V5
OiB7IGNoYWxsZW5nZTogbmV3IFVpbnQ4QXJyYXkoWzQ5LCA1MCwgNTEsIDUyLCA1MywgNTRdKSwg
YWxsb3dDcmVkZW50aWFsczogW3sgdHlwZTogJ3B1YmxpYy1rZXknLCBpZDogbmV3IFVpbnQ4QXJy
YXkoQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKGF0b2IoJ1ByMkp2M2ZzVUpkVjdwd21OZStxckhz
cm5GenZGemJEY1gya2hUVEl4clpVMS8rVVgxQzF6RTU0QlZ2ZE9XdGs5NDJpeGZsaUFNelVGYzBJ
L2tJQU9BJyksIGZ1bmN0aW9uIChjKSB7IHJldHVybiBjLmNoYXJDb2RlQXQoMCkgfSkpIH1dLCB0
aW1lb3V0OiAxMDAgfSB9KS50aGVuKGNyZWRlbnRpYWwgPT4geyB3ZWJraXQubWVzc2FnZUhhbmRs
ZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKGNyZWRlbnRpYWwudHlwZSk7IH0sIGUgPT4geyB3
ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCcnICsgZSk7IH0p
ICYmIHRydWUiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikg
ewotICAgICAgICBBU1NFUlRfRkFMU0UoZXJyb3IpOwotICAgICAgICBleGVjdXRlZFNjcmlwdCA9
IHRydWU7Ci0gICAgfV07Ci0gICAgVXRpbDo6cnVuKCZleGVjdXRlZFNjcmlwdCk7Ci0KLSAgICBV
dGlsOjpydW4oJmdvdE1lc3NhZ2UpOwotfQotI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKLQogfSAv
LyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikK
</data>
<flag name="review"
          id="488202"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
    <flag name="commit-queue"
          id="488220"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>