<?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>223239</bug_id>
          
          <creation_ts>2021-03-15 21:39:04 -0700</creation_ts>
          <short_desc>[macOS] change for the language/subtitle tracks button to use an `NSMenu` instead of web content</short_desc>
          <delta_ts>2021-03-23 21:26:29 -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>Media</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=221594</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=222197</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=183878</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=169158</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=223673</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="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hi</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1739832</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-03-15 21:39:04 -0700</bug_when>
    <thetext>similar to &lt;https://webkit.org/b/221594&gt; ([iOS] Add support for the language/subtitle tracks button using `UIMenu`)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739833</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-15 21:39:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/75462340&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739835</commentid>
    <comment_count>2</comment_count>
      <attachid>423297</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-03-15 22:02:06 -0700</bug_when>
    <thetext>Created attachment 423297
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739947</commentid>
    <comment_count>3</comment_count>
      <attachid>423297</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-16 08:34:34 -0700</bug_when>
    <thetext>Comment on attachment 423297
Patch

rs=me once the bots are happy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740064</commentid>
    <comment_count>4</comment_count>
      <attachid>423367</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-03-16 11:26:43 -0700</bug_when>
    <thetext>Created attachment 423367
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740130</commentid>
    <comment_count>5</comment_count>
      <attachid>423383</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-03-16 12:49:55 -0700</bug_when>
    <thetext>Created attachment 423383
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740172</commentid>
    <comment_count>6</comment_count>
      <attachid>423395</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-03-16 13:53:54 -0700</bug_when>
    <thetext>Created attachment 423395
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740228</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-16 14:57:23 -0700</bug_when>
    <thetext>Committed r274521: &lt;https://commits.webkit.org/r274521&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 423395.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423297</attachid>
            <date>2021-03-15 22:02:06 -0700</date>
            <delta_ts>2021-03-16 11:26:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223239-20210315230205.patch</filename>
            <type>text/plain</type>
            <size>297018</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggMjc1YmU3ZDZmY2M0ODhlNWE1N2YwOGI4NGRlNzg4MTRjMGI0MmM1Zi4uMjA0YTNiNDE3
OGUzZWVjMjI2MzI5NTZiNDY5MGZlNDBkYjUzYmJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAy
MS0wMy0xNSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW21h
Y09TXSBjaGFuZ2UgZm9yIHRoZSBsYW5ndWFnZS9zdWJ0aXRsZSB0cmFja3MgYnV0dG9uIHRvIHVz
ZSBhbiBgTlNNZW51YCBpbnN0ZWFkIG9mIHdlYiBjb250ZW50CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjMyMzkKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzc1NDYyMzQwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaDoKKyAgICAgICAgVHVybiBvbiBgRU5B
QkxFX01FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVNgIGZvciBtYWNPUy4KKwogMjAyMS0wMy0x
MiAgTGF1cm8gTW91cmEgIDxsbW91cmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9O
KHIyNzQzMjcpIFtHTElCXSAyRCBDYW52YXMgdGVzdHMgdGltaW5nIG91dCBhZnRlciBlbmFibGlu
ZyBHUFVQcm9jZXMgaW4gdGVzdGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGUxYWNlYzMxNTNlMTY2NWE3MzRl
ZGUyMjllMmY3YWU5YzkyMGE4YzMuLjFmMDg4ZDdkNGM2NGM4NTAzYTQ2YzUyYjUyMTI4YjhlMTY2
NmYwZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMTggQEAKKzIwMjEtMDMtMTUgIERldmluIFJv
dXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gY2hhbmdlIGZvciB0
aGUgbGFuZ3VhZ2Uvc3VidGl0bGUgdHJhY2tzIGJ1dHRvbiB0byB1c2UgYW4gYE5TTWVudWAgaW5z
dGVhZCBvZiB3ZWIgY29udGVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjIzMjM5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NTQ2MjM0MD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2F1dG8tdGV4dC10cmFjay5o
dG1sCisgICAgICAgICAgICAgICBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvY2FwdGlvbnMtb2Zmc2V0LXdpdGgtY29udHJvbHMtYmFyLmh0bWwKKyAgICAgICAgICAg
ICAgIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9jbGljay10cmFj
ay1pbi1jb250ZXh0bWVudS5odG1sCisgICAgICAgICAgICAgICBtZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaGlkZGVuLXRyYWNrcy5odG1sCisgICAgICAgICAgICAg
ICBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbm8tdHJhY2tzLmh0
bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3Vw
cG9ydC9vZmYtdGV4dC10cmFjay5odG1sCisgICAgICAgICAgICAgICBtZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvc2hvdy1jb250ZXh0bWVudS10aGVuLWRvdWJsZS1j
bGljay1vbi10cmFja3MtYnV0dG9uLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRp
YS1hcGkuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJv
bHNIb3N0Lmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNI
b3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudVByb3Zp
ZGVyOjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250
ZXh0TWVudVByb3ZpZGVyOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVQcm92aWRlcik6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51UHJvdmlkZXI6On5N
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVQcm92aWRlcik6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51UHJvdmlkZXI6OnBvcHVsYXRlQ29udGV4dE1lbnUp
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudVByb3Zp
ZGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFDb250cm9sc0NvbnRleHRNZW51UHJvdmlkZXI6OmNvbnRleHRNZW51Q2xlYXJlZCk6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51UHJvdmlkZXI6
OmNvbnRleHRNZW51Q29udGV4dFR5cGUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
Q29udHJvbHNDb250ZXh0TWVudUV2ZW50TGlzdGVuZXI6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51RXZlbnRMaXN0ZW5lcjo6b3BlcmF0
b3I9PSBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRl
eHRNZW51RXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUV2ZW50TGlzdGVuZXI6Ok1lZGlhQ29udHJvbHND
b250ZXh0TWVudUV2ZW50TGlzdGVuZXIpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
Q29udHJvbHNIb3N0OjpzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KToKKyAgICAgICAgQ3Jl
YXRlIHBsYXRmb3JtLWFnbm9zdGljIGhlbHBlciBmdW5jdGlvbnMgYW5kIHR5cGVzIGZvciBjcmVh
dGluZyBzdWJtZW51cyBhbmQgbWVudSBpdGVtcyBzbworICAgICAgICB0aGF0IHRoaXMgbG9naWMg
YWRkZWQgZm9yIGlPUyBjYW4gYWxzbyBiZSB1c2VkIGZvciBtYWNPUy4KKworICAgICAgICAqIHBh
Z2UvQ29udGV4dE1lbnVDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNv
bnRleHQ6OnR5cGUgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29u
dGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRleHQ6OkNvbnRleHRN
ZW51Q29udGV4dCk6CisgICAgICAgIE1vdmUgYFdlYktpdDo6Q29udGV4dE1lbnVDb250ZXh0RGF0
YTo6VHlwZWAgdG8gYFdlYkNvcmU6OkNvbnRleHRtZW51Q29udGV4dDo6VHlwZWAgc28gdGhhdAor
ICAgICAgICBpdCBjYW4gYmUgdXNlZCBpbiBXZWJDb3JlIGFzIHdlbGwuCisKKyAgICAgICAgKiBw
YWdlL0NvbnRleHRNZW51UHJvdmlkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51
UHJvdmlkZXI6OmNvbnRleHRNZW51Q29udGV4dFR5cGUpOiBBZGRlZC4KKyAgICAgICAgKiBwYWdl
L0NvbnRleHRNZW51Q29udHJvbGxlci5oOgorICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6aGFu
ZGxlQ29udGV4dE1lbnVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRy
b2xsZXI6OnNob3dDb250ZXh0TWVudSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNv
bnRyb2xsZXI6Om1heWJlQ3JlYXRlQ29udGV4dE1lbnUpOgorICAgICAgICBBbGxvdyB0aGUgYENv
bnRleHRNZW51UHJvdmlkZXJgIHRvIGZ1cnRoZXIgY3VzdG9taXplIHRoZSBgQ29udGV4dE1lbnVg
IHRoYXQncyBjcmVhdGVkLCBzdWNoCisgICAgICAgIGFzIGFsbG93aW5nIHRoZSBoaXQgdGVzdCB0
byBpbmNsdWRlIFVBIHNoYWRvdyByb290cyBhbmQgY29udHJvbGxpbmcgIkluc3BlY3QgRWxlbWVu
dCIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1l
bnVJdGVtOjpDb250ZXh0TWVudUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJ
dGVtOjpzZXRJbmRlbnRhdGlvbkxldmVsKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDb250
ZXh0TWVudUl0ZW06OmluZGVudGF0aW9uTGV2ZWwgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgUHJv
dmlkZSBhIHdheSB0byBldmVudHVhbGx5IHNldCB0aGUgYC1bTlNNZW51SXRlbSBzZXRJbmRlbnRh
dGlvbkxldmVsOl1gLgorCisgICAgICAgICogTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
Y29udHJvbHMvdHJhY2tzLXBhbmVsLmpzOiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3RyYWNrcy1wYW5lbC5jc3M6IFJlbW92ZWQuCisg
ICAgICAgICogTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvYmFja2dyb3Vu
ZC1jbGljay1kZWxlZ2F0ZS1ub3RpZmllci5qczoKKyAgICAgICAgKEJhY2tncm91bmRDbGlja0Rl
bGVnYXRlTm90aWZpZXIucHJvdG90eXBlLmhhbmRsZUV2ZW50KToKKyAgICAgICAgKiBNb2R1bGVz
L21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNv
bnRyb2xzLmNzczoKKyAgICAgICAgKC5tZWRpYS1jb250cm9scy5tYWMuZnVsbHNjcmVlbik6Cisg
ICAgICAgICogTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWVkaWEtY29u
dHJvbHMuanM6CisgICAgICAgIChNZWRpYUNvbnRyb2xzLnByb3RvdHlwZS5zaG93VHJhY2tzUGFu
ZWwpOiBEZWxldGVkLgorICAgICAgICAoTWVkaWFDb250cm9scy5wcm90b3R5cGUuaGlkZVRyYWNr
c1BhbmVsKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9s
cy9jb250cm9scy9tZWRpYS1jb250cm9scy5jc3M6CisgICAgICAgICgubWVkaWEtY29udHJvbHMu
c2hvd3MtdHJhY2tzLXBhbmVsID4gLmNvbnRyb2xzLWJhciA+ICosIC5tZWRpYS1jb250cm9scy5z
aG93cy10cmFja3MtcGFuZWwgPiBidXR0b24pOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhL3RyYWNrcy1zdXBwb3J0LmpzOgorICAgICAgICAo
VHJhY2tzU3VwcG9ydC5wcm90b3R5cGUuYnV0dG9uV2FzUHJlc3NlZCk6CisgICAgICAgIChUcmFj
a3NTdXBwb3J0LnByb3RvdHlwZS5zeW5jQ29udHJvbCk6CisgICAgICAgIChUcmFja3NTdXBwb3J0
LnByb3RvdHlwZS5fc29ydGVkVHJhY2tMaXN0KToKKyAgICAgICAgKFRyYWNrc1N1cHBvcnQpOiBE
ZWxldGVkLgorICAgICAgICAoVHJhY2tzU3VwcG9ydC5wcm90b3R5cGUudHJhY2tzUGFuZWxOdW1i
ZXJPZlNlY3Rpb25zKTogRGVsZXRlZC4KKyAgICAgICAgKFRyYWNrc1N1cHBvcnQucHJvdG90eXBl
LnRyYWNrc1BhbmVsVGl0bGVGb3JTZWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFRyYWNrc1N1
cHBvcnQucHJvdG90eXBlLnRyYWNrc1BhbmVsTnVtYmVyT2ZUcmFja3NJblNlY3Rpb24pOiBEZWxl
dGVkLgorICAgICAgICAoVHJhY2tzU3VwcG9ydC5wcm90b3R5cGUudHJhY2tzUGFuZWxUaXRsZUZv
clRyYWNrSW5TZWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFRyYWNrc1N1cHBvcnQucHJvdG90
eXBlLnRyYWNrc1BhbmVsSXNUcmFja0luU2VjdGlvblNlbGVjdGVkKTogRGVsZXRlZC4KKyAgICAg
ICAgKFRyYWNrc1N1cHBvcnQucHJvdG90eXBlLnRyYWNrc1BhbmVsU2VsZWN0aW9uRGlkQ2hhbmdl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9qcy1m
aWxlczoKKyAgICAgICAgUmVtb3ZlIGV2ZXJ5dGhpbmcgcmVsYXRlZCB0byBgVHJhY2tzUGFuZWxg
IG5vdyB0aGF0IG1hY09TIGFsc28gdXNlcyBhIGNvbnRleHRtZW51LgorCisgICAgICAgICogTW9k
dWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvaW5saW5lLW1lZGlhLWNvbnRyb2xz
LmpzOgorICAgICAgICAoSW5saW5lTWVkaWFDb250cm9scy5wcm90b3R5cGUubGF5b3V0KToKKyAg
ICAgICAgKElubGluZU1lZGlhQ29udHJvbHMucHJvdG90eXBlLl9yaWdodENvbnRhaW5lckJ1dHRv
bnMpOgorICAgICAgICAoSW5saW5lTWVkaWFDb250cm9scy5wcm90b3R5cGUuX2Ryb3BwYWJsZUJ1
dHRvbnMpOgorICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xz
L21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMuanM6CisgICAgICAgIChNYWNPU0Z1bGxz
Y3JlZW5NZWRpYUNvbnRyb2xzKToKKyAgICAgICAgVGhlIGBPdmVyZmxvd0J1dHRvbmAgc2hvdWxk
IGJlIHRoZSBsYXN0IHJpZ2h0IGNvbnRhaW5lciBidXR0b24gdG8gYmUgZHJvcHBlZC4KKworICAg
ICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhL21lZGlhLWNvbnRyb2xs
ZXIuanM6CisgICAgICAgIChNZWRpYUNvbnRyb2xsZXIucHJvdG90eXBlLnNob3dNZWRpYUNvbnRy
b2xzQ29udGV4dE1lbnUpOgorICAgICAgICBQcm92aWRlIGEgd2F5IGZvciBjYWxsZXJzIHRvIHBy
b3ZpZGUgYWRkaXRpb25hbCBvcHRpb25zLgorCisgICAgICAgICogcGFnZS9NZWRpYUNvbnRyb2xz
Q29udGV4dE1lbnVJdGVtLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4
dE1lbnVJdGVtOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9s
c0NvbnRleHRNZW51SXRlbTo6ZGVjb2RlKToKKyAgICAgICAgRHJpdmUtYnk6IFJlbmFtZSBgaXND
aGVja2VkYCB0byBgY2hlY2tlZGAgdG8gbWF0Y2ggYENvbnRleHRNZW51SXRlbWAuCisKKyAgICAg
ICAgKiBNb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy90cmFja3MtYnV0dG9u
LmpzOgorICAgICAgICAoVHJhY2tzQnV0dG9uLnByb3RvdHlwZS5nZXQgY29udGV4dE1lbnVPcHRp
b25zKToKKyAgICAgICAgRHJpdmUtYnk6IFJlbmFtZSBvYmplY3Qga2V5cyBmb3IgY2xhcml0eS4K
KworICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIEJlIG1vcmUgZXhwbGlj
aXQgd2l0aCBjb21waWxlciBmbGFncy4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVt
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjptZWRpYUNvbnRyb2xz
U2NyaXB0KToKKworICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2ltYWdl
cy9tYWNPUy9PdmVyZmxvdy5zdmc6CisgICAgICAgIFJld29yayB0aGlzICIuLi4iIGljb24gdG8g
YmUgIj4+IiB0byBtYXRjaCBzaW1pbGFyIGljb25zIGVsc2V3aGVyZSBvbiBtYWNPUy4KKworICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMS0wMy0xMiAg
TWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KIAogICAgICAgICBbc2Vs
ZWN0b3JzXSA6Zm9jdXMtdmlzaWJsZSBtYXRjaGVzIGJvZHkgYWZ0ZXIga2V5Ym9hcmQgZXZlbnQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggNGFiOGI1ZTYzMjM2OWY1ZjM4ZDRjZWFjYzM3OTNhZGI0MjZiYjY2Yy4uYzBk
ZjA5YjU1ODNhODZjYmZlZDIwZTQxOWMwMDQ3NDk1ZGU1YTY4YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw4MiBAQAorMjAyMS0wMy0xNSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisK
KyAgICAgICAgW21hY09TXSBjaGFuZ2UgZm9yIHRoZSBsYW5ndWFnZS9zdWJ0aXRsZSB0cmFja3Mg
YnV0dG9uIHRvIHVzZSBhbiBgTlNNZW51YCBpbnN0ZWFkIG9mIHdlYiBjb250ZW50CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjMyMzkKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzc1NDYyMzQwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuaDoKKyAg
ICAgICAgKiBTaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkNvbnRleHRNZW51Q29udGV4dERhdGE6OkNvbnRleHRNZW51Q29udGV4dERhdGEpOgorICAg
ICAgICBNb3ZlIGBXZWJLaXQ6OkNvbnRleHRNZW51Q29udGV4dERhdGE6OlR5cGVgIHRvIGBXZWJD
b3JlOjpDb250ZXh0bWVudUNvbnRleHQ6OlR5cGVgIHNvIHRoYXQKKyAgICAgICAgaXQgY2FuIGJl
IHVzZWQgaW4gV2ViQ29yZSBhcyB3ZWxsLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvbnRleHRN
ZW51SXRlbURhdGEuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51SXRlbURhdGE6OldlYkNvbnRleHRN
ZW51SXRlbURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudUl0ZW1EYXRhOjpj
b3JlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6ZGVj
b2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6aW5kZW50YXRp
b25MZXZlbCBjb25zdCk6IEFkZGVkLgorICAgICAgICBQcm92aWRlIGEgd2F5IHRvIGV2ZW50dWFs
bHkgc2V0IHRoZSBgLVtOU01lbnVJdGVtIHNldEluZGVudGF0aW9uTGV2ZWw6XWAuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMv
V2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKC1bV0tNZW51RGVsZWdhdGUgaW5p
dFdpdGhNZW51UHJveHk6XSk6IEFkZGVkLgorICAgICAgICAoLVtXS01lbnVEZWxlZ2F0ZSBtZW51
V2lsbE9wZW46XSk6IEFkZGVkLgorICAgICAgICAoLVtXS01lbnVEZWxlZ2F0ZSBtZW51RGlkQ2xv
c2U6XSk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjpn
ZXRDb250ZXh0TWVudUl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5
TWFjOjp1c2VDb250ZXh0TWVudUl0ZW1zKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1l
bnVQcm94eU1hYzo6cGxhdGZvcm1NZW51IGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OmNvbnRlbnRzT2ZDb250ZXh0TWVudUl0ZW0pOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29udGV4dE1lbnVQcm94eU1hYzo6cGxhdGZvcm1EYXRhIGNvbnN0KTogQWRkZWQuCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBgLVtOU01lbnVJdGVtIHNldEluZGVudGF0aW9uTGV2ZWw6XWAuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5n
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tOgor
ICAgICAgICAoLVtXS1dlYlZpZXcgX2NvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbTpdKToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IF9kaWRTaG93Q29udGV4dE1lbnVdKTogQWRkZWQuCisgICAgICAg
ICgtW1dLV2ViVmlldyBfZGlkRGlzbWlzc0NvbnRleHRNZW51XSk6IEFkZGVkLgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IF9kaWRTaG93Q29udGV4dE1lbnVdKTogRGVsZXRlZC4KKyAgICAgICAgKC1b
V0tXZWJWaWV3IF9kaWREaXNtaXNzQ29udGV4dE1lbnVdKTogRGVsZXRlZC4KKyAgICAgICAgTW92
ZSB0aGVzZSBtZXRob2RzIHNvIHRoZXkgY2FuIGJlIHVzZWQgb24gbWFjT1MgdG9vLgorCisgICAg
ICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dDo6ZGlkU2hvd0NvbnRleHRNZW51KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGll
bnQ6OmRpZERpc21pc3NDb250ZXh0TWVudSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGxNYWMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGll
bnRJbXBsTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkU2hvd0Nv
bnRleHRNZW51KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRE
aXNtaXNzQ29udGV4dE1lbnUpOiBBZGRlZC4KKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGBkaWRT
aG93Q29udGV4dE1lbnVgL2BkaWREaXNtaXNzQ29udGV4dE1lbnVgIGZvciB0ZXN0cy4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLV2ViVmlld1Rlc3RpbmdNYWMubW06CisgICAgICAg
ICgtW1dLV2ViVmlldyBfYWN0aXZlTWVudV0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9X
ZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250
ZW50c09mVXNlckludGVyZmFjZUl0ZW0pOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFj
L1dlYlBhZ2VQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpwbGF0
Zm9ybUFjdGl2ZUNvbnRleHRNZW51IGNvbnN0KTogQWRkZWQuCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciBgY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtYCBmb3IgdGVzdHMuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
aW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
QWN0aW9uU2hlZXRBc3Npc3RhbnQubW06CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgQmUg
bW9yZSBleHBsaWNpdCB3aXRoIGNvbXBpbGVyIGZsYWdzLgorCiAyMDIxLTAzLTEyICBZb3Vlbm4g
RmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgdmlkZW8gY2FwdHVy
ZSBpbiBHUFVQcm9jZXNzIGJ5IGRlZmF1bHQgb24gaU9TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJs
ZUNvY29hLmgKaW5kZXggMjQzZGYyNWE2NzZkNzlkYjdkMzg1YjU3YjdjMjNjN2QwZGM5ZWFlOS4u
ZDljZDJkMGIwNGQ0ZGI3ZWMyZjkxODJhZDQ1NDhiOWQ3ZmY4NTY0ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtRW5hYmxlQ29jb2EuaApAQCAtMzI0LDYgKzMyNCwxMCBAQAogI2RlZmluZSBFTkFCTEVf
TUVESUFfQ09OVFJPTFNfU0NSSVBUIDEKICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5BQkxFX01F
RElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFBMQVRGT1JNKE1BQykKKyNkZWZpbmUgRU5B
QkxFX01FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMgMQorI2VuZGlmCisKICNpZiAhZGVmaW5l
ZChFTkFCTEVfTUVESUFfU0VTU0lPTikgJiYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9S
TShBUFBMRVRWKQogI2RlZmluZSBFTkFCTEVfTUVESUFfU0VTU0lPTiAxCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xz
SG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250
cm9sc0hvc3QuY3BwCmluZGV4IGY5YjFhNGQ0MjM3MGI2ZTU1MmIxYmMxYzA4NTVkNTEyNDQ0ZWQ4
M2QuLjAyM2QzZGFkODAyMzJlZjAzNjE0M2NmZjg3N2YxZDQ4N2ZiNTlmNmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJv
bHNIb3N0LmNwcApAQCAtMjksMTYgKzI5LDI3IEBACiAKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xz
SG9zdC5oIgogCisjaW5jbHVkZSAiQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMuaCIKICNpbmNsdWRl
ICJBdWRpb1RyYWNrTGlzdC5oIgorI2luY2x1ZGUgIkNhcHRpb25Vc2VyUHJlZmVyZW5jZXMuaCIK
ICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKLSNpbmNsdWRl
ICJDYXB0aW9uVXNlclByZWZlcmVuY2VzLmgiCisjaW5jbHVkZSAiQ29udGV4dE1lbnUuaCIKKyNp
bmNsdWRlICJDb250ZXh0TWVudUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJDb250ZXh0TWVudUl0
ZW0uaCIKKyNpbmNsdWRlICJDb250ZXh0TWVudVByb3ZpZGVyLmgiCisjaW5jbHVkZSAiRXZlbnQu
aCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgor
I2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVk
ZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJN
ZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiTWVkaWFD
b250cm9sc0NvbnRleHRNZW51SXRlbS5oIgorI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJQ
YWdlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIK
QEAgLTQ2LDYgKzU3LDcgQEAKICNpbmNsdWRlICJUZXh0VHJhY2tMaXN0LmgiCiAjaW5jbHVkZSAi
Vm9pZENhbGxiYWNrLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSlNWYWx1ZUlubGlu
ZXMuaD4KKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYv
SlNPTlZhbHVlcy5oPgogI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9VVUlE
Lmg+CkBAIC01NywxMCArNjksNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBkZWZp
bmVkKE1lZGlhQ29udHJvbHNIb3N0QWRkaXRpb25zX21lbWJlcnMpCi1NZWRpYUNvbnRyb2xzSG9z
dEFkZGl0aW9uc19tZW1iZXJzCi0jZW5kaWYKLQogY29uc3QgQXRvbVN0cmluZyYgTWVkaWFDb250
cm9sc0hvc3Q6OmF1dG9tYXRpY0tleXdvcmQoKQogewogICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYXV0b21hdGljKCJhdXRvbWF0aWMiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CkBAIC0zNTQsMTUgKzM2MiwxMTMgQEAgU3Ry
aW5nIE1lZGlhQ29udHJvbHNIb3N0Ojpmb3JtYXR0ZWRTdHJpbmdGb3JEdXJhdGlvbihkb3VibGUg
ZHVyYXRpb25JblNlY29uZHMpCiAjZGVmaW5lIE1lZGlhQ29udHJvbHNIb3N0QWRkaXRpb25zX3No
b3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVfTWVudURhdGFfc3dpdGNoT24KICNlbmRpZgogCisj
aWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpICYmIFVTRShBQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVO
VVMpCitjbGFzcyBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVQcm92aWRlciBmaW5hbCA6IHB1Ymxp
YyBDb250ZXh0TWVudVByb3ZpZGVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE1lZGlhQ29u
dHJvbHNDb250ZXh0TWVudVByb3ZpZGVyPiBjcmVhdGUoVmVjdG9yPENvbnRleHRNZW51SXRlbT4m
JiBpdGVtcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYgY2FsbGJhY2spCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYUNvbnRyb2xzQ29udGV4dE1l
bnVQcm92aWRlcihXVEZNb3ZlKGl0ZW1zKSwgV1RGTW92ZShjYWxsYmFjaykpKTsKKyAgICB9CisK
K3ByaXZhdGU6CisgICAgTWVkaWFDb250cm9sc0NvbnRleHRNZW51UHJvdmlkZXIoVmVjdG9yPENv
bnRleHRNZW51SXRlbT4mJiBpdGVtcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+
JiYgY2FsbGJhY2spCisgICAgICAgIDogbV9pdGVtcyhXVEZNb3ZlKGl0ZW1zKSkKKyAgICAgICAg
LCBtX2NhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKQorICAgIHsKKyAgICB9CisKKyAgICB+TWVk
aWFDb250cm9sc0NvbnRleHRNZW51UHJvdmlkZXIoKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAg
Y29udGV4dE1lbnVDbGVhcmVkKCk7CisgICAgfQorCisgICAgdm9pZCBwb3B1bGF0ZUNvbnRleHRN
ZW51KENvbnRleHRNZW51KiBtZW51KSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgZm9yIChhdXRv
JiBpdGVtIDogbV9pdGVtcykKKyAgICAgICAgICAgIG1lbnUtPmFwcGVuZEl0ZW0oaXRlbSk7Cisg
ICAgfQorCisgICAgdm9pZCBjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlv
biBhY3Rpb24sIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2NhbGxi
YWNrKGFjdGlvbiAtIENvbnRleHRNZW51SXRlbUJhc2VDdXN0b21UYWcpOworICAgIH0KKyAgICAK
KyAgICB2b2lkIGNvbnRleHRNZW51Q2xlYXJlZCgpIG92ZXJyaWRlCisgICAgeworICAgICAgICBp
ZiAobV9jYWxsYmFjaykKKyAgICAgICAgICAgIG1fY2FsbGJhY2soQ29udGV4dE1lbnVJdGVtVGFn
Tm9BY3Rpb24pOworICAgICAgICBtX2l0ZW1zLmNsZWFyKCk7CisgICAgfQorCisgICAgQ29udGV4
dE1lbnVDb250ZXh0OjpUeXBlIGNvbnRleHRNZW51Q29udGV4dFR5cGUoKSBvdmVycmlkZQorICAg
IHsKKyAgICAgICAgcmV0dXJuIENvbnRleHRNZW51Q29udGV4dDo6VHlwZTo6TWVkaWFDb250cm9s
czsKKyAgICB9CisKKyAgICBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiBtX2l0ZW1zOworICAgIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiBtX2NhbGxiYWNrOworfTsKKworY2xhc3Mg
TWVkaWFDb250cm9sc0NvbnRleHRNZW51RXZlbnRMaXN0ZW5lciBmaW5hbCA6IHB1YmxpYyBFdmVu
dExpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE1lZGlhQ29udHJvbHNDb250ZXh0
TWVudUV2ZW50TGlzdGVuZXI+IGNyZWF0ZShSZWY8TWVkaWFDb250cm9sc0NvbnRleHRNZW51UHJv
dmlkZXI+JiYgY29udGV4dE1lbnVQcm92aWRlcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUV2ZW50TGlzdGVuZXIoV1RGTW92ZShj
b250ZXh0TWVudVByb3ZpZGVyKSkpOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I9PShjb25z
dCBFdmVudExpc3RlbmVyJiBvdGhlcikgY29uc3Qgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIHJl
dHVybiB0aGlzID09ICZvdGhlcjsKKyAgICB9CisKKyAgICB2b2lkIGhhbmRsZUV2ZW50KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmLCBFdmVudCYgZXZlbnQpIG92ZXJyaWRlCisgICAgeworICAgICAg
ICBBU1NFUlQoZXZlbnQudHlwZSgpID09IGV2ZW50TmFtZXMoKS5jb250ZXh0bWVudUV2ZW50KTsK
KworICAgICAgICBhdXRvKiB0YXJnZXQgPSBldmVudC50YXJnZXQoKTsKKyAgICAgICAgaWYgKCFp
czxOb2RlPih0YXJnZXQpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBhdXRvJiBub2Rl
ID0gZG93bmNhc3Q8Tm9kZT4oKnRhcmdldCk7CisKKyAgICAgICAgYXV0byogcGFnZSA9IG5vZGUu
ZG9jdW1lbnQoKS5wYWdlKCk7CisgICAgICAgIGlmICghcGFnZSkKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICBwYWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS5zaG93Q29udGV4dE1l
bnUoZXZlbnQsIG1fY29udGV4dE1lbnVQcm92aWRlcik7CisgICAgICAgIGV2ZW50LnByZXZlbnRE
ZWZhdWx0KCk7CisgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICBldmVu
dC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgTWVk
aWFDb250cm9sc0NvbnRleHRNZW51RXZlbnRMaXN0ZW5lcihSZWY8TWVkaWFDb250cm9sc0NvbnRl
eHRNZW51UHJvdmlkZXI+JiYgY29udGV4dE1lbnVQcm92aWRlcikKKyAgICAgICAgOiBFdmVudExp
c3RlbmVyKEV2ZW50TGlzdGVuZXI6OkNQUEV2ZW50TGlzdGVuZXJUeXBlKQorICAgICAgICAsIG1f
Y29udGV4dE1lbnVQcm92aWRlcihXVEZNb3ZlKGNvbnRleHRNZW51UHJvdmlkZXIpKQorICAgIHsK
KyAgICB9CisKKyAgICBSZWY8TWVkaWFDb250cm9sc0NvbnRleHRNZW51UHJvdmlkZXI+IG1fY29u
dGV4dE1lbnVQcm92aWRlcjsKK307CisKKyNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykg
JiYgVVNFKEFDQ0VTU0lCSUxJVFlfQ09OVEVYVF9NRU5VUykKKwogYm9vbCBNZWRpYUNvbnRyb2xz
SG9zdDo6c2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShIVE1MRWxlbWVudCYgdGFyZ2V0LCBT
dHJpbmcmJiBvcHRpb25zSlNPTlN0cmluZywgUmVmPFZvaWRDYWxsYmFjaz4mJiBjYWxsYmFjaykK
IHsKLSAgICBpZiAobV9zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51Q2FsbGJhY2spCisjaWYg
VVNFKFVJQ09OVEVYVE1FTlUpIHx8IChFTkFCTEUoQ09OVEVYVF9NRU5VUykgJiYgVVNFKEFDQ0VT
U0lCSUxJVFlfQ09OVEVYVF9NRU5VUykpCisgICAgaWYgKG1fc2hvd01lZGlhQ29udHJvbHNDb250
ZXh0TWVudUNhbGxiYWNrKSB7CisjaWYgVVNFKFVJQ09OVEVYVE1FTlUpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKKyNlbGlmIChFTkFCTEUoQ09OVEVYVF9NRU5VUykgJiYgVVNFKEFDQ0VTU0lCSUxJ
VFlfQ09OVEVYVF9NRU5VUykpCisgICAgICAgIC8vIEZJWE1FOiBgY29udGV4dE1lbnVDbGVhcmVk
YCBpcyBpbnZva2VkIGJldHdlZW4gc2hvdyBhbmQgaXRlbSBzZWxlY3RlZCBzbyB3ZSBtYXkgaGF2
ZSBhIHBlbmRpbmcgY2FsbGJhY2suCisgICAgICAgIHN0ZDo6ZXhjaGFuZ2UobV9zaG93TWVkaWFD
b250cm9sc0NvbnRleHRNZW51Q2FsbGJhY2ssIG51bGxwdHIpLT5oYW5kbGVFdmVudCgpOworI2Vu
ZGlmCisgICAgfQogCiAgICAgbV9zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51Q2FsbGJhY2sg
PSBXVEZNb3ZlKGNhbGxiYWNrKTsKIAogICAgIGF1dG8gaW52b2tlQ2FsbGJhY2tBdFNjb3BlRXhp
dCA9IG1ha2VTY29wZUV4aXQoWyYsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewot
ICAgICAgICBzdGQ6OmV4Y2hhbmdlKG1fc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudUNhbGxi
YWNrLCBudWxscHRyKS0+aGFuZGxlRXZlbnQoKTsKKyAgICAgICAgaWYgKG1fc2hvd01lZGlhQ29u
dHJvbHNDb250ZXh0TWVudUNhbGxiYWNrKQorICAgICAgICAgICAgc3RkOjpleGNoYW5nZShtX3No
b3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVDYWxsYmFjaywgbnVsbHB0ciktPmhhbmRsZUV2ZW50
KCk7CiAgICAgfSk7CiAKICAgICBpZiAoIW1fbWVkaWFFbGVtZW50KQpAQCAtMzgyLDQ0ICs0ODgs
NTcgQEAgYm9vbCBNZWRpYUNvbnRyb2xzSG9zdDo6c2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVu
dShIVE1MRWxlbWVudCYgdGFyZ2V0LCBTdHJpbmcKICAgICBpZiAoIW9wdGlvbnNKU09OT2JqZWN0
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyNpZiBVU0UoVUlDT05URVhUTUVOVSkKKyAgICB1
c2luZyBNZW51SXRlbSA9IE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW07CisgICAgdXNpbmcg
TWVudUl0ZW1JZGVudGlmaWVyID0gTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6SUQ7Cisg
ICAgY29uc3RleHByIGF1dG8gaW52YWxpZE1lbnVJdGVtSWRlbnRpZmllciA9IE1lZGlhQ29udHJv
bHNDb250ZXh0TWVudUl0ZW06OmludmFsaWRJRDsKKyNlbGlmIEVOQUJMRShDT05URVhUX01FTlVT
KSAmJiBVU0UoQUNDRVNTSUJJTElUWV9DT05URVhUX01FTlVTKQorICAgIHVzaW5nIE1lbnVJdGVt
ID0gQ29udGV4dE1lbnVJdGVtOworICAgIHVzaW5nIE1lbnVJdGVtSWRlbnRpZmllciA9IHVpbnQ2
NF90OworICAgIGNvbnN0ZXhwciBhdXRvIGludmFsaWRNZW51SXRlbUlkZW50aWZpZXIgPSBDb250
ZXh0TWVudUl0ZW1UYWdOb0FjdGlvbjsKKyNlbmRpZgorCiAgICAgdXNpbmcgTWVudURhdGEgPSBW
YXJpYW50PFJlZlB0cjxBdWRpb1RyYWNrPiwgUmVmUHRyPFRleHRUcmFjaz4gTWVkaWFDb250cm9s
c0hvc3RBZGRpdGlvbnNfc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudV9NZW51RGF0YT47Ci0g
ICAgSGFzaE1hcDxNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCwgTWVudURhdGE+IGlk
TWFwOwotICAgIGF1dG8gZ2VuZXJhdGVJRCA9IFsmXSAoTWVudURhdGEgZGF0YSkgewotICAgICAg
ICBhdXRvIGlkID0gaWRNYXAuc2l6ZSgpICsgMTsKLSAgICAgICAgaWRNYXAuYWRkKGlkLCBkYXRh
KTsKLSAgICAgICAgcmV0dXJuIGlkOworICAgIEhhc2hNYXA8TWVudUl0ZW1JZGVudGlmaWVyLCBN
ZW51RGF0YT4gaWRNYXA7CisKKyAgICBhdXRvIGNyZWF0ZVN1Ym1lbnUgPSBbXSAoY29uc3QgU3Ry
aW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBpY29uLCBWZWN0b3I8TWVudUl0ZW0+JiYgY2hpbGRy
ZW4pIC0+IE1lbnVJdGVtIHsKKyNpZiBVU0UoVUlDT05URVhUTUVOVSkKKyAgICAgICAgcmV0dXJu
IHsgTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6aW52YWxpZElELCB0aXRsZSwgaWNvbiwg
LyogY2hlY2tlZCAqLyBmYWxzZSwgV1RGTW92ZShjaGlsZHJlbikgfTsKKyNlbGlmIEVOQUJMRShD
T05URVhUX01FTlVTKSAmJiBVU0UoQUNDRVNTSUJJTElUWV9DT05URVhUX01FTlVTKQorICAgICAg
ICBVTlVTRURfUEFSQU0oaWNvbik7CisgICAgICAgIHJldHVybiB7IENvbnRleHRNZW51SXRlbVRh
Z05vQWN0aW9uLCB0aXRsZSwgLyogZW5hYmxlZCAqLyB0cnVlLCAvKiBjaGVja2VkICovIGZhbHNl
LCBXVEZNb3ZlKGNoaWxkcmVuKSB9OworI2VuZGlmCiAgICAgfTsKIAotICAgIFZlY3RvcjxNZWRp
YUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiBpdGVtczsKKyAgICBhdXRvIGNyZWF0ZU1lbnVJdGVt
ID0gWyZdIChNZW51RGF0YSBkYXRhLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBib29sIGNoZWNrZWQg
PSBmYWxzZSkgLT4gTWVudUl0ZW0geworICAgICAgICBhdXRvIGlkID0gaWRNYXAuc2l6ZSgpICsg
MTsKKyAgICAgICAgaWRNYXAuYWRkKGlkLCBkYXRhKTsKIAotICAgIGlmIChvcHRpb25zSlNPTk9i
amVjdC0+Z2V0Qm9vbGVhbigiaW5jbHVkZUF1ZGlvVHJhY2tzIl9zKS52YWx1ZU9yKGZhbHNlKSkg
eworI2lmIFVTRShVSUNPTlRFWFRNRU5VKQorICAgICAgICByZXR1cm4geyBpZCwgdGl0bGUsIC8q
IGljb24gKi8gbnVsbFN0cmluZygpLCBjaGVja2VkIH07CisjZWxpZiBFTkFCTEUoQ09OVEVYVF9N
RU5VUykgJiYgVVNFKEFDQ0VTU0lCSUxJVFlfQ09OVEVYVF9NRU5VUykKKyAgICAgICAgcmV0dXJu
IHsgQ2hlY2thYmxlQWN0aW9uVHlwZSwgc3RhdGljX2Nhc3Q8Q29udGV4dE1lbnVBY3Rpb24+KENv
bnRleHRNZW51SXRlbUJhc2VDdXN0b21UYWcgKyBpZCksIHRpdGxlLCAvKiBlbmFibGVkICovIHRy
dWUsIGNoZWNrZWQgfTsKKyNlbmRpZgorICAgIH07CisKKyAgICBWZWN0b3I8TWVudUl0ZW0+IGl0
ZW1zOworCisgICAgaWYgKG9wdGlvbnNKU09OT2JqZWN0LT5nZXRCb29sZWFuKCJpbmNsdWRlTGFu
Z3VhZ2VzIl9zKS52YWx1ZU9yKGZhbHNlKSkgewogICAgICAgICBpZiAoYXV0byogYXVkaW9UcmFj
a3MgPSBtZWRpYUVsZW1lbnQuYXVkaW9UcmFja3MoKTsgYXVkaW9UcmFja3MgJiYgYXVkaW9UcmFj
a3MtPmxlbmd0aCgpID4gMSkgewotICAgICAgICAgICAgTWVkaWFDb250cm9sc0NvbnRleHRNZW51
SXRlbSBhdWRpb1RyYWNrc0l0ZW07Ci0gICAgICAgICAgICBhdWRpb1RyYWNrc0l0ZW0udGl0bGUg
PSBXRUJfVUlfU1RSSU5HX0tFWSgiTGFuZ3VhZ2VzIiwgIkxhbmd1YWdlcyAoTWVkaWEgQ29udHJv
bHMgTWVudSkiLCAiTGFuZ3VhZ2VzIG1lZGlhIGNvbnRyb2xzIGNvbnRleHQgbWVudSB0aXRsZSIp
OwotICAgICAgICAgICAgYXVkaW9UcmFja3NJdGVtLmljb24gPSAiZ2xvYmUiX3M7Ci0gICAgICAg
ICAgICBhdWRpb1RyYWNrc0l0ZW0uY2hpbGRyZW4ucmVzZXJ2ZUNhcGFjaXR5KGF1ZGlvVHJhY2tz
LT5sZW5ndGgoKSk7CisgICAgICAgICAgICBWZWN0b3I8TWVudUl0ZW0+IGxhbmd1YWdlTWVudUl0
ZW1zOwogCiAgICAgICAgICAgICBhdXRvJiBjYXB0aW9uUHJlZmVyZW5jZXMgPSBwYWdlLT5ncm91
cCgpLmNhcHRpb25QcmVmZXJlbmNlcygpOworICAgICAgICAgICAgZm9yIChhdXRvJiBhdWRpb1Ry
YWNrIDogY2FwdGlvblByZWZlcmVuY2VzLnNvcnRlZFRyYWNrTGlzdEZvck1lbnUoYXVkaW9UcmFj
a3MpKQorICAgICAgICAgICAgICAgIGxhbmd1YWdlTWVudUl0ZW1zLmFwcGVuZChjcmVhdGVNZW51
SXRlbShhdWRpb1RyYWNrLCBjYXB0aW9uUHJlZmVyZW5jZXMuZGlzcGxheU5hbWVGb3JUcmFjayhh
dWRpb1RyYWNrLmdldCgpKSwgYXVkaW9UcmFjay0+ZW5hYmxlZCgpKSk7CiAKLSAgICAgICAgICAg
IGZvciAoYXV0byYgYXVkaW9UcmFjayA6IGNhcHRpb25QcmVmZXJlbmNlcy5zb3J0ZWRUcmFja0xp
c3RGb3JNZW51KGF1ZGlvVHJhY2tzKSkgewotICAgICAgICAgICAgICAgIE1lZGlhQ29udHJvbHND
b250ZXh0TWVudUl0ZW0gYXVkaW9UcmFja0l0ZW07Ci0gICAgICAgICAgICAgICAgYXVkaW9UcmFj
a0l0ZW0uaWQgPSBnZW5lcmF0ZUlEKGF1ZGlvVHJhY2spOwotICAgICAgICAgICAgICAgIGF1ZGlv
VHJhY2tJdGVtLnRpdGxlID0gY2FwdGlvblByZWZlcmVuY2VzLmRpc3BsYXlOYW1lRm9yVHJhY2so
YXVkaW9UcmFjay5nZXQoKSk7Ci0gICAgICAgICAgICAgICAgYXVkaW9UcmFja0l0ZW0uaXNDaGVj
a2VkID0gYXVkaW9UcmFjay0+ZW5hYmxlZCgpOwotICAgICAgICAgICAgICAgIGF1ZGlvVHJhY2tz
SXRlbS5jaGlsZHJlbi5hcHBlbmQoV1RGTW92ZShhdWRpb1RyYWNrSXRlbSkpOwotICAgICAgICAg
ICAgfQotCi0gICAgICAgICAgICBpZiAoIWF1ZGlvVHJhY2tzSXRlbS5jaGlsZHJlbi5pc0VtcHR5
KCkpCi0gICAgICAgICAgICAgICAgaXRlbXMuYXBwZW5kKFdURk1vdmUoYXVkaW9UcmFja3NJdGVt
KSk7CisgICAgICAgICAgICBpZiAoIWxhbmd1YWdlTWVudUl0ZW1zLmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgICAgICBpdGVtcy5hcHBlbmQoY3JlYXRlU3VibWVudShXRUJfVUlfU1RSSU5HX0tFWSgi
TGFuZ3VhZ2VzIiwgIkxhbmd1YWdlcyAoTWVkaWEgQ29udHJvbHMgTWVudSkiLCAiTGFuZ3VhZ2Vz
IG1lZGlhIGNvbnRyb2xzIGNvbnRleHQgbWVudSB0aXRsZSIpLCAiZ2xvYmUiX3MsIFdURk1vdmUo
bGFuZ3VhZ2VNZW51SXRlbXMpKSk7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAob3B0aW9u
c0pTT05PYmplY3QtPmdldEJvb2xlYW4oImluY2x1ZGVUZXh0VHJhY2tzIl9zKS52YWx1ZU9yKGZh
bHNlKSkgeworICAgIGlmIChvcHRpb25zSlNPTk9iamVjdC0+Z2V0Qm9vbGVhbigiaW5jbHVkZVN1
YnRpdGxlcyJfcykudmFsdWVPcihmYWxzZSkpIHsKICAgICAgICAgaWYgKGF1dG8qIHRleHRUcmFj
a3MgPSBtZWRpYUVsZW1lbnQudGV4dFRyYWNrcygpOyB0ZXh0VHJhY2tzICYmIHRleHRUcmFja3Mt
Pmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtIHRl
eHRUcmFja3NJdGVtOwotICAgICAgICAgICAgdGV4dFRyYWNrc0l0ZW0udGl0bGUgPSBXRUJfVUlf
U1RSSU5HX0tFWSgiU3VidGl0bGVzIiwgIlN1YnRpdGxlcyAoTWVkaWEgQ29udHJvbHMgTWVudSki
LCAiU3VidGl0bGVzIG1lZGlhIGNvbnRyb2xzIGNvbnRleHQgbWVudSB0aXRsZSIpOwotICAgICAg
ICAgICAgdGV4dFRyYWNrc0l0ZW0uaWNvbiA9ICJjYXB0aW9ucy5idWJibGUiX3M7Ci0gICAgICAg
ICAgICB0ZXh0VHJhY2tzSXRlbS5jaGlsZHJlbi5yZXNlcnZlQ2FwYWNpdHkodGV4dFRyYWNrcy0+
bGVuZ3RoKCkpOworICAgICAgICAgICAgVmVjdG9yPE1lbnVJdGVtPiBzdWJ0aXRsZU1lbnVJdGVt
czsKIAogICAgICAgICAgICAgYXV0byYgY2FwdGlvblByZWZlcmVuY2VzID0gcGFnZS0+Z3JvdXAo
KS5jYXB0aW9uUHJlZmVyZW5jZXMoKTsKICAgICAgICAgICAgIGF1dG8gc29ydGVkVGV4dFRyYWNr
cyA9IGNhcHRpb25QcmVmZXJlbmNlcy5zb3J0ZWRUcmFja0xpc3RGb3JNZW51KHRleHRUcmFja3Ms
IHsgVGV4dFRyYWNrOjpLaW5kOjpTdWJ0aXRsZXMsIFRleHRUcmFjazo6S2luZDo6Q2FwdGlvbnMs
IFRleHRUcmFjazo6S2luZDo6RGVzY3JpcHRpb25zIH0pOwpAQCAtNDI3LDI0ICs1NDYsMTkgQEAg
Ym9vbCBNZWRpYUNvbnRyb2xzSG9zdDo6c2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShIVE1M
RWxlbWVudCYgdGFyZ2V0LCBTdHJpbmcKICAgICAgICAgICAgICAgICByZXR1cm4gdGV4dFRyYWNr
LT5tb2RlKCkgPT0gVGV4dFRyYWNrOjpNb2RlOjpTaG93aW5nOwogICAgICAgICAgICAgfSk7CiAg
ICAgICAgICAgICBib29sIHVzZXNBdXRvbWF0aWNUcmFjayA9IGNhcHRpb25QcmVmZXJlbmNlcy5j
YXB0aW9uRGlzcGxheU1vZGUoKSA9PSBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpBdXRvbWF0aWMg
JiYgYWxsVHJhY2tzRGlzYWJsZWQ7Ci0KICAgICAgICAgICAgIGZvciAoYXV0byYgdGV4dFRyYWNr
IDogc29ydGVkVGV4dFRyYWNrcykgewotICAgICAgICAgICAgICAgIE1lZGlhQ29udHJvbHNDb250
ZXh0TWVudUl0ZW0gdGV4dFRyYWNrSXRlbTsKLSAgICAgICAgICAgICAgICB0ZXh0VHJhY2tJdGVt
LmlkID0gZ2VuZXJhdGVJRCh0ZXh0VHJhY2spOwotICAgICAgICAgICAgICAgIHRleHRUcmFja0l0
ZW0udGl0bGUgPSBjYXB0aW9uUHJlZmVyZW5jZXMuZGlzcGxheU5hbWVGb3JUcmFjayh0ZXh0VHJh
Y2suZ2V0KCkpOworICAgICAgICAgICAgICAgIGJvb2wgY2hlY2tlZCA9IGZhbHNlOwogICAgICAg
ICAgICAgICAgIGlmIChhbGxUcmFja3NEaXNhYmxlZCAmJiB0ZXh0VHJhY2sgPT0gJlRleHRUcmFj
azo6Y2FwdGlvbk1lbnVPZmZJdGVtKCkgJiYgKGNhcHRpb25QcmVmZXJlbmNlcy5jYXB0aW9uRGlz
cGxheU1vZGUoKSA9PSBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpGb3JjZWRPbmx5IHx8IGNhcHRp
b25QcmVmZXJlbmNlcy5jYXB0aW9uRGlzcGxheU1vZGUoKSA9PSBDYXB0aW9uVXNlclByZWZlcmVu
Y2VzOjpNYW51YWwpKQotICAgICAgICAgICAgICAgICAgICB0ZXh0VHJhY2tJdGVtLmlzQ2hlY2tl
ZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQgPSB0cnVlOwogICAgICAgICAg
ICAgICAgIGVsc2UgaWYgKHVzZXNBdXRvbWF0aWNUcmFjayAmJiB0ZXh0VHJhY2sgPT0gJlRleHRU
cmFjazo6Y2FwdGlvbk1lbnVBdXRvbWF0aWNJdGVtKCkpCi0gICAgICAgICAgICAgICAgICAgIHRl
eHRUcmFja0l0ZW0uaXNDaGVja2VkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tl
ZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgZWxzZSBpZiAoIXVzZXNBdXRvbWF0aWNUcmFjayAm
JiB0ZXh0VHJhY2stPm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1vZGU6OlNob3dpbmcpCi0gICAgICAg
ICAgICAgICAgICAgIHRleHRUcmFja0l0ZW0uaXNDaGVja2VkID0gdHJ1ZTsKLSAgICAgICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHRleHRUcmFja0l0ZW0uaXNDaGVja2VkID0g
ZmFsc2U7Ci0gICAgICAgICAgICAgICAgdGV4dFRyYWNrc0l0ZW0uY2hpbGRyZW4uYXBwZW5kKFdU
Rk1vdmUodGV4dFRyYWNrSXRlbSkpOworICAgICAgICAgICAgICAgICAgICBjaGVja2VkID0gdHJ1
ZTsKKyAgICAgICAgICAgICAgICBzdWJ0aXRsZU1lbnVJdGVtcy5hcHBlbmQoY3JlYXRlTWVudUl0
ZW0odGV4dFRyYWNrLCBjYXB0aW9uUHJlZmVyZW5jZXMuZGlzcGxheU5hbWVGb3JUcmFjayh0ZXh0
VHJhY2suZ2V0KCkpLCBjaGVja2VkKSk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlm
ICghdGV4dFRyYWNrc0l0ZW0uY2hpbGRyZW4uaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIGl0
ZW1zLmFwcGVuZChXVEZNb3ZlKHRleHRUcmFja3NJdGVtKSk7CisgICAgICAgICAgICBpZiAoIXN1
YnRpdGxlTWVudUl0ZW1zLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBpdGVtcy5hcHBlbmQo
Y3JlYXRlU3VibWVudShXRUJfVUlfU1RSSU5HX0tFWSgiU3VidGl0bGVzIiwgIlN1YnRpdGxlcyAo
TWVkaWEgQ29udHJvbHMgTWVudSkiLCAiU3VidGl0bGVzIG1lZGlhIGNvbnRyb2xzIGNvbnRleHQg
bWVudSB0aXRsZSIpLCAiY2FwdGlvbnMuYnViYmxlIl9zLCBXVEZNb3ZlKHN1YnRpdGxlTWVudUl0
ZW1zKSkpOwogICAgICAgICB9CiAgICAgfQogCkBAIC00NTIsMTMgKzU2NiwzMiBAQCBib29sIE1l
ZGlhQ29udHJvbHNIb3N0OjpzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KEhUTUxFbGVtZW50
JiB0YXJnZXQsIFN0cmluZwogICAgIE1lZGlhQ29udHJvbHNIb3N0QWRkaXRpb25zX3Nob3dNZWRp
YUNvbnRyb2xzQ29udGV4dE1lbnVfb3B0aW9ucwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQ09OVEVY
VF9NRU5VUykgJiYgVVNFKEFDQ0VTU0lCSUxJVFlfQ09OVEVYVF9NRU5VUykKKyAgICBpZiAob3B0
aW9uc0pTT05PYmplY3QtPmdldEJvb2xlYW4oInByb21vdGVTdWJNZW51cyJfcykudmFsdWVPcihm
YWxzZSkpIHsKKyAgICAgICAgZm9yIChhdXRvJiYgaXRlbSA6IHN0ZDo6ZXhjaGFuZ2UoaXRlbXMs
IHsgfSkpIHsKKyAgICAgICAgICAgIGlmICghaXRlbXMuaXNFbXB0eSgpKQorICAgICAgICAgICAg
ICAgIGl0ZW1zLmFwcGVuZCh7IFNlcGFyYXRvclR5cGUsIGludmFsaWRNZW51SXRlbUlkZW50aWZp
ZXIsIC8qIHRpdGxlICovIG51bGxTdHJpbmcoKSB9KTsKKworICAgICAgICAgICAgQVNTRVJUKGl0
ZW0udHlwZSgpID09IFN1Ym1lbnVUeXBlKTsKKyAgICAgICAgICAgIGl0ZW1zLmFwcGVuZCh7IEFj
dGlvblR5cGUsIGludmFsaWRNZW51SXRlbUlkZW50aWZpZXIsIGl0ZW0udGl0bGUoKSwgLyogZW5h
YmxlZCAqLyBmYWxzZSwgLyogY2hlY2tlZCAqLyBmYWxzZSB9KTsKKyAgICAgICAgICAgIGl0ZW1z
LmFwcGVuZFZlY3RvcihXVEY6Om1hcChpdGVtLnN1Yk1lbnVJdGVtcygpLCBbXSAoY29uc3QgYXV0
byYgaXRlbSkgLT4gQ29udGV4dE1lbnVJdGVtIHsKKyAgICAgICAgICAgICAgICAvLyBUaGUgZGlz
YWJsZWQgaW5saW5lIGl0ZW0gdXNlZCBpbnN0ZWFkIG9mIGFuIGFjdHVhbCBzdWJtZW51IHNob3Vs
ZCBiZSBpbmRlbnRlZCBsZXNzIHRoYW4gdGhlIHN1Ym1lbnUgaXRlbXMuCisgICAgICAgICAgICAg
ICAgY29uc3RleHByIHVuc2lnbmVkIGluZGVudGF0aW9uTGV2ZWwgPSAxOworICAgICAgICAgICAg
ICAgIGlmIChpdGVtLnR5cGUoKSA9PSBTdWJtZW51VHlwZSkKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHsgaXRlbS5hY3Rpb24oKSwgaXRlbS50aXRsZSgpLCBpdGVtLmVuYWJsZWQoKSwgaXRl
bS5jaGVja2VkKCksIGl0ZW0uc3ViTWVudUl0ZW1zKCksIGluZGVudGF0aW9uTGV2ZWwgfTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4geyBpdGVtLnR5cGUoKSwgaXRlbS5hY3Rpb24oKSwgaXRlbS50
aXRsZSgpLCBpdGVtLmVuYWJsZWQoKSwgaXRlbS5jaGVja2VkKCksIGluZGVudGF0aW9uTGV2ZWwg
fTsKKyAgICAgICAgICAgIH0pKTsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZiAvLyBFTkFCTEUo
Q09OVEVYVF9NRU5VUykgJiYgVVNFKEFDQ0VTU0lCSUxJVFlfQ09OVEVYVF9NRU5VUykKKwogICAg
IGlmIChpdGVtcy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEFTU0VS
VCghaWRNYXAuaXNFbXB0eSgpKTsKIAotICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnNob3dN
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUodGFyZ2V0LmJvdW5kc0luUm9vdFZpZXdTcGFjZSgpLCBX
VEZNb3ZlKGl0ZW1zKSwgW3dlYWtNZWRpYUVsZW1lbnQgPSBtYWtlV2Vha1B0cihtZWRpYUVsZW1l
bnQpLCBpZE1hcCA9IFdURk1vdmUoaWRNYXApLCBpbnZva2VDYWxsYmFja0F0U2NvcGVFeGl0ID0g
V1RGTW92ZShpbnZva2VDYWxsYmFja0F0U2NvcGVFeGl0KV0gKE1lZGlhQ29udHJvbHNDb250ZXh0
TWVudUl0ZW06OklEIHNlbGVjdGVkSXRlbUlEKSB7Ci0gICAgICAgIGlmIChzZWxlY3RlZEl0ZW1J
RCA9PSBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjppbnZhbGlkSUQpCisgICAgYXV0byBo
YW5kbGVJdGVtU2VsZWN0ZWQgPSBbd2Vha01lZGlhRWxlbWVudCA9IG1ha2VXZWFrUHRyKG1lZGlh
RWxlbWVudCksIGlkTWFwID0gV1RGTW92ZShpZE1hcCksIGludm9rZUNhbGxiYWNrQXRTY29wZUV4
aXQgPSBXVEZNb3ZlKGludm9rZUNhbGxiYWNrQXRTY29wZUV4aXQpXSAoTWVudUl0ZW1JZGVudGlm
aWVyIHNlbGVjdGVkSXRlbUlEKSB7CisgICAgICAgIGlmIChzZWxlY3RlZEl0ZW1JRCA9PSBpbnZh
bGlkTWVudUl0ZW1JZGVudGlmaWVyKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGlm
ICghd2Vha01lZGlhRWxlbWVudCkKQEAgLTQ4Myw5ICs2MTYsMjAgQEAgYm9vbCBNZWRpYUNvbnRy
b2xzSG9zdDo6c2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShIVE1MRWxlbWVudCYgdGFyZ2V0
LCBTdHJpbmcKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIE1lZGlhQ29udHJvbHNIb3N0QWRk
aXRpb25zX3Nob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVfTWVudURhdGFfc3dpdGNoT24KICAg
ICAgICAgKTsKLSAgICB9KTsKKyAgICB9OworCisgICAgYXV0byBib3VuZHMgPSB0YXJnZXQuYm91
bmRzSW5Sb290Vmlld1NwYWNlKCk7CisjaWYgVVNFKFVJQ09OVEVYVE1FTlUpCisgICAgcGFnZS0+
Y2hyb21lKCkuY2xpZW50KCkuc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShib3VuZHMsIFdU
Rk1vdmUoaXRlbXMpLCBXVEZNb3ZlKGhhbmRsZUl0ZW1TZWxlY3RlZCkpOworI2VsaWYgRU5BQkxF
KENPTlRFWFRfTUVOVVMpICYmIFVTRShBQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMpCisgICAg
dGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmNvbnRleHRtZW51RXZlbnQsIE1l
ZGlhQ29udHJvbHNDb250ZXh0TWVudUV2ZW50TGlzdGVuZXI6OmNyZWF0ZShNZWRpYUNvbnRyb2xz
Q29udGV4dE1lbnVQcm92aWRlcjo6Y3JlYXRlKFdURk1vdmUoaXRlbXMpLCBXVEZNb3ZlKGhhbmRs
ZUl0ZW1TZWxlY3RlZCkpKSwgeyAvKmNhcHR1cmUgKi8gdHJ1ZSwgLyogcGFzc2l2ZSAqLyBXVEY6
Om51bGxvcHQsIC8qIG9uY2UgKi8gdHJ1ZSB9KTsKKyAgICBwYWdlLT5jb250ZXh0TWVudUNvbnRy
b2xsZXIoKS5zaG93Q29udGV4dE1lbnVBdCgqdGFyZ2V0LmRvY3VtZW50KCkuZnJhbWUoKSwgYm91
bmRzLmNlbnRlcigpKTsKKyNlbmRpZgogCiAgICAgcmV0dXJuIHRydWU7CisjZWxzZSAvLyBVU0Uo
VUlDT05URVhUTUVOVSkgfHwgKEVOQUJMRShDT05URVhUX01FTlVTKSAmJiBVU0UoQUNDRVNTSUJJ
TElUWV9DT05URVhUX01FTlVTKSkKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKIH0KIAogI2Vu
ZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3Qu
aAppbmRleCAzMjUwZDYzZjcyNjYwNTMyNjEwODE1ZGMxMjRkZWQ0M2I3ZWFmNTFlLi45MDY1OTg4
ZjZmN2NiM2RhYWViNDM5NTcxMjIzNjIwMjE0MTZhMDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaApAQCAt
MzYsNiArMzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBdWRpb1RyYWNrOwogY2xh
c3MgQXVkaW9UcmFja0xpc3Q7CiBjbGFzcyBFbGVtZW50OworY2xhc3MgSFRNTEVsZW1lbnQ7CiBj
bGFzcyBIVE1MTWVkaWFFbGVtZW50OwogY2xhc3MgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFp
bmVyRWxlbWVudDsKIGNsYXNzIFRleHRUcmFjazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2JhY2tncm91bmQtY2xpY2st
ZGVsZWdhdGUtbm90aWZpZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRp
YS1jb250cm9scy9jb250cm9scy9iYWNrZ3JvdW5kLWNsaWNrLWRlbGVnYXRlLW5vdGlmaWVyLmpz
CmluZGV4IDZjOGJhOWVmYWFkNjJhZTllZTc0ZGY2MWY2MDY5MWQ4MTQ2NDVjOTcuLjgxNjA5ODE0
OTdjOTllZTZmYzMyMDcyMjE5ZTgzMTcyOWRkNjA5NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2JhY2tncm91bmQtY2xp
Y2stZGVsZWdhdGUtbm90aWZpZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvYmFja2dyb3VuZC1jbGljay1kZWxlZ2F0ZS1ub3Rp
Zmllci5qcwpAQCAtNDEsMTYgKzQxLDE4IEBAIGNsYXNzIEJhY2tncm91bmRDbGlja0RlbGVnYXRl
Tm90aWZpZXIKICAgICAgICAgaWYgKGV2ZW50LmN1cnJlbnRUYXJnZXQgIT09IG1lZGlhQ29udHJv
bHMuZWxlbWVudCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAvLyBPbmx5IG5vdGlm
eSB0aGF0IHRoZSBiYWNrZ3JvdW5kIHdhcyBjbGlja2VkIHdoZW4gdGhlICJtb3VzZWRvd24iIGV2
ZW50Ci0gICAgICAgIC8vIHdhcyBhbHNvIHJlY2VpdmVkLCB3aGljaCB3b3VsZG4ndCBoYXBwZW4g
aWYgdGhlICJtb3VzZWRvd24iIGV2ZW50IGNhdXNlZAotICAgICAgICAvLyB0aGUgdHJhY2tzIHBh
bmVsIHRvIGJlIGhpZGRlbiwgdW5sZXNzIHdlJ3JlIGluIGZ1bGxzY3JlZW4gaW4gd2hpY2ggY2Fz
ZQotICAgICAgICAvLyB3ZSBjYW4gc2ltcGx5IGNoZWNrIHRoYXQgdGhlIHBhbmVsIGlzIG5vdCBj
dXJyZW50bHkgcHJlc2VudGVkLgotICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gIm1vdXNlZG93
biIgJiYgIW1lZGlhQ29udHJvbHMudHJhY2tzUGFuZWwucHJlc2VudGVkKQorICAgICAgICAvLyBP
bmx5IG5vdGlmeSB0aGF0IHRoZSBiYWNrZ3JvdW5kIHdhcyBjbGlja2VkIHdoZW4gdGhlICJtb3Vz
ZWRvd24iIGV2ZW50IHdhcyBhbHNvIHJlY2VpdmVkLCB1bmxlc3MKKyAgICAgICAgLy8gd2UncmUg
aW4gZnVsbHNjcmVlbiBpbiB3aGljaCBjYXNlIHdlIGNhbiBzaW1wbHkgY2hlY2sgdGhhdCB0aGUg
cGFuZWwgaXMgbm90IGN1cnJlbnRseSBwcmVzZW50ZWQuCisgICAgICAgIHN3aXRjaCAoZXZlbnQu
dHlwZSkgeworICAgICAgICBjYXNlICJtb3VzZWRvd24iOgogICAgICAgICAgICAgdGhpcy5fcmVj
ZWl2ZWRNb3VzZWRvd24gPSB0cnVlOwotICAgICAgICBlbHNlIGlmIChldmVudC50eXBlID09PSAi
Y2xpY2siKSB7CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgY2FzZSAiY2xpY2siOgog
ICAgICAgICAgICAgaWYgKHRoaXMuX3JlY2VpdmVkTW91c2Vkb3duICYmIGV2ZW50LnRhcmdldCA9
PT0gbWVkaWFDb250cm9scy5lbGVtZW50ICYmIG1lZGlhQ29udHJvbHMuZGVsZWdhdGUgJiYgdHlw
ZW9mIG1lZGlhQ29udHJvbHMuZGVsZWdhdGUubWFjT1NDb250cm9sc0JhY2tncm91bmRXYXNDbGlj
a2VkID09PSAiZnVuY3Rpb24iKQogICAgICAgICAgICAgICAgIG1lZGlhQ29udHJvbHMuZGVsZWdh
dGUubWFjT1NDb250cm9sc0JhY2tncm91bmRXYXNDbGlja2VkKCk7CiAgICAgICAgICAgICBkZWxl
dGUgdGhpcy5fcmVjZWl2ZWRNb3VzZWRvd24KKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvY29udHJvbHMvaW5saW5lLW1lZGlhLWNvbnRyb2xzLmpzIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvaW5saW5lLW1lZGlh
LWNvbnRyb2xzLmpzCmluZGV4IDY2Yjc2OWVjZDUyMGU3NGM2NjNjODAwYWY1NmZiOTc0MzNjZmRm
YmEuLjE2N2Y5MmIzZmVlZjQwMWY4Y2ZjNjI3NThhZWI4ZmNlZTcyOTQyMmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2lu
bGluZS1tZWRpYS1jb250cm9scy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVy
bi1tZWRpYS1jb250cm9scy9jb250cm9scy9pbmxpbmUtbWVkaWEtY29udHJvbHMuanMKQEAgLTEy
NiwxMCArMTI2LDYgQEAgY2xhc3MgSW5saW5lTWVkaWFDb250cm9scyBleHRlbmRzIE1lZGlhQ29u
dHJvbHMKICAgICAgICAgaWYgKCF0aGlzLmJvdHRvbUNvbnRyb2xzQmFyKQogICAgICAgICAgICAg
cmV0dXJuOwogCi0gICAgICAgIC8vIEVuc3VyZSB0aGUgdHJhY2tzIHBhbmVsIGlzIGEgY2hpbGQg
aWYgaXQgd2VyZSBwcmVzZW50ZWQuCi0gICAgICAgIGlmICh0aGlzLnRyYWNrc1BhbmVsLnByZXNl
bnRlZCkKLSAgICAgICAgICAgIGNoaWxkcmVuLnB1c2godGhpcy50cmFja3NQYW5lbCk7Ci0KICAg
ICAgICAgLy8gVXBkYXRlIHRoZSB0b3AgbGVmdCBjb250cm9scyBiYXIuCiAgICAgICAgIHRoaXMu
X3RvcExlZnRDb250cm9sc0JhckNvbnRhaW5lci5jaGlsZHJlbiA9IHRoaXMuX3RvcExlZnRDb250
YWluZXJCdXR0b25zKCk7CiAgICAgICAgIHRoaXMuX3RvcExlZnRDb250cm9sc0JhckNvbnRhaW5l
ci5sYXlvdXQoKTsKQEAgLTI2Miw3ICsyNTgsNyBAQCBjbGFzcyBJbmxpbmVNZWRpYUNvbnRyb2xz
IGV4dGVuZHMgTWVkaWFDb250cm9scwogICAgICAgICAgICAgcmV0dXJuIFt0aGlzLm11dGVCdXR0
b24sIHRoaXMuYWlycGxheUJ1dHRvbiwgdGhpcy5vdmVyZmxvd0J1dHRvbl07CiAKICAgICAgICAg
aWYgKHRoaXMuX3Nob3VsZFVzZVNpbmdsZUJhckxheW91dCkKLSAgICAgICAgICAgIHJldHVybiBb
dGhpcy5tdXRlQnV0dG9uLCB0aGlzLmFpcnBsYXlCdXR0b24sIHRoaXMucGlwQnV0dG9uLCB0aGlz
LnRyYWNrc0J1dHRvbiwgdGhpcy5vdmVyZmxvd0J1dHRvbiwgdGhpcy5mdWxsc2NyZWVuQnV0dG9u
XTsKKyAgICAgICAgICAgIHJldHVybiBbdGhpcy5tdXRlQnV0dG9uLCB0aGlzLmFpcnBsYXlCdXR0
b24sIHRoaXMucGlwQnV0dG9uLCB0aGlzLnRyYWNrc0J1dHRvbiwgdGhpcy5mdWxsc2NyZWVuQnV0
dG9uLCB0aGlzLm92ZXJmbG93QnV0dG9uXTsKIAogICAgICAgICBjb25zdCBidXR0b25zID0gW107
CiAgICAgICAgIGlmICh0aGlzLnByZWZlcnJlZE11dGVCdXR0b25TdHlsZSA9PT0gQnV0dG9uLlN0
eWxlcy5CYXIpCkBAIC0yNzQsMTEgKzI3MCwxMiBAQCBjbGFzcyBJbmxpbmVNZWRpYUNvbnRyb2xz
IGV4dGVuZHMgTWVkaWFDb250cm9scwogICAgIF9kcm9wcGFibGVCdXR0b25zKCkKICAgICB7CiAg
ICAgICAgIGlmICh0aGlzLl9zaG91bGRVc2VTaW5nbGVCYXJMYXlvdXQpCi0gICAgICAgICAgICBy
ZXR1cm4gW3RoaXMuc2tpcEZvcndhcmRCdXR0b24sIHRoaXMuc2tpcEJhY2tCdXR0b24sIHRoaXMu
YWlycGxheUJ1dHRvbiwgdGhpcy50cmFja3NCdXR0b24sIHRoaXMub3ZlcmZsb3dCdXR0b24sIHRo
aXMucGlwQnV0dG9uLCB0aGlzLmZ1bGxzY3JlZW5CdXR0b24sIHRoaXMubXV0ZUJ1dHRvbl07Cisg
ICAgICAgICAgICByZXR1cm4gW3RoaXMuc2tpcEZvcndhcmRCdXR0b24sIHRoaXMuc2tpcEJhY2tC
dXR0b24sIHRoaXMuYWlycGxheUJ1dHRvbiwgdGhpcy50cmFja3NCdXR0b24sIHRoaXMucGlwQnV0
dG9uLCB0aGlzLm11dGVCdXR0b24sIHRoaXMuZnVsbHNjcmVlbkJ1dHRvbiwgdGhpcy5vdmVyZmxv
d0J1dHRvbl07CiAKLSAgICAgICAgY29uc3QgYnV0dG9ucyA9IFt0aGlzLnNraXBGb3J3YXJkQnV0
dG9uLCB0aGlzLnNraXBCYWNrQnV0dG9uLCB0aGlzLmFpcnBsYXlCdXR0b24sIHRoaXMudHJhY2tz
QnV0dG9uLCB0aGlzLm92ZXJmbG93QnV0dG9uXTsKKyAgICAgICAgY29uc3QgYnV0dG9ucyA9IFt0
aGlzLnNraXBGb3J3YXJkQnV0dG9uLCB0aGlzLnNraXBCYWNrQnV0dG9uLCB0aGlzLmFpcnBsYXlC
dXR0b24sIHRoaXMudHJhY2tzQnV0dG9uXTsKICAgICAgICAgaWYgKHRoaXMucHJlZmVycmVkTXV0
ZUJ1dHRvblN0eWxlID09PSBCdXR0b24uU3R5bGVzLkJhcikKICAgICAgICAgICAgIGJ1dHRvbnMu
cHVzaCh0aGlzLm11dGVCdXR0b24pOworICAgICAgICBidXR0b25zLnB1c2godGhpcy5vdmVyZmxv
d0J1dHRvbik7CiAgICAgICAgIHJldHVybiBidXR0b25zOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFj
b3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNv
bnRyb2xzLmNzcwppbmRleCBiYTcwYjQ0NTA1ZDkzNjc3OTI2NWIzZTg0ZjhhODRkZmRhMTVlZDgw
Li5lZTAwNTQ3Y2IxMmZiOTgwNWY5NzkyNTJhNTM0MmRiODVkYjJkZTViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9tYWNv
cy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlh
LWNvbnRyb2xzLmNzcwpAQCAtMjcsNyArMjcsNiBAQAogCiAubWVkaWEtY29udHJvbHMubWFjLmZ1
bGxzY3JlZW4gewogICAgIC0tY29udHJvbHMtYmFyLXdpZHRoOiA0NjhweDsKLSAgICAtLXRyYWNr
cy1wYW5lbC1yaWdodC1tYXJnaW46IDQwcHg7CiAKICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50
OwogICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFjb3MtZnVsbHNjcmVl
bi1tZWRpYS1jb250cm9scy5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL2NvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMuanMKaW5k
ZXggM2I4MDI0YTA1YzNkOTQ0NWI2OTBkYmYxMTlkNzVjMzlhZWZkYTVhNC4uZDI5YTMyZjgyYTQ1
NjJjZDE3MjIyYmZhYmYzMzIzNDYxNjMzMzg3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1t
ZWRpYS1jb250cm9scy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRp
YS1jb250cm9scy9jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLmpzCkBA
IC02NSw3ICs2NSw3IEBAIGNsYXNzIE1hY09TRnVsbHNjcmVlbk1lZGlhQ29udHJvbHMgZXh0ZW5k
cyBNZWRpYUNvbnRyb2xzCiAgICAgICAgIH0pOwogCiAgICAgICAgIHRoaXMuX3JpZ2h0Q29udGFp
bmVyID0gbmV3IEJ1dHRvbnNDb250YWluZXIoewotICAgICAgICAgICAgY2hpbGRyZW46IFt0aGlz
LmFpcnBsYXlCdXR0b24sIHRoaXMucGlwQnV0dG9uLCB0aGlzLnRyYWNrc0J1dHRvbiwgdGhpcy5m
dWxsc2NyZWVuQnV0dG9uXSwKKyAgICAgICAgICAgIGNoaWxkcmVuOiBbdGhpcy5haXJwbGF5QnV0
dG9uLCB0aGlzLnBpcEJ1dHRvbiwgdGhpcy50cmFja3NCdXR0b24sIHRoaXMuZnVsbHNjcmVlbkJ1
dHRvbiwgdGhpcy5vdmVyZmxvd0J1dHRvbl0sCiAgICAgICAgICAgICBjc3NDbGFzc05hbWU6ICJy
aWdodCIsCiAgICAgICAgICAgICBsZWZ0TWFyZ2luOiAxMiwKICAgICAgICAgICAgIHJpZ2h0TWFy
Z2luOiAxMgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvY29udHJvbHMvbWVkaWEtY29udHJvbHMuY3NzIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWVkaWEtY29udHJvbHMuY3NzCmlu
ZGV4IGQzMzk2OTZiYTIyZTgzYjNmNTBiMTMzMDIyNjVmZDMzMzVkNWFmNjMuLjQ4MTM4NjEyNWEy
MTdhYmM5ODVjM2NlN2E5NjMwMjBiMDI3ZGM2N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21lZGlhLWNvbnRyb2xzLmNz
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250
cm9scy9tZWRpYS1jb250cm9scy5jc3MKQEAgLTk3LDExICs5Nyw2IEBACiAgICAgdHJhbnNpdGlv
bjogb3BhY2l0eSAwLjFzIGxpbmVhcjsKIH0KIAotLm1lZGlhLWNvbnRyb2xzLnNob3dzLXRyYWNr
cy1wYW5lbCA+IC5jb250cm9scy1iYXIgPiAqLAotLm1lZGlhLWNvbnRyb2xzLnNob3dzLXRyYWNr
cy1wYW5lbCA+IGJ1dHRvbiB7Ci0gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Ci19Ci0KIC5tZWRp
YS1jb250cm9scy5mYWRlZCA+ICo6bm90KC5wbGFjYXJkKSB7CiAgICAgb3BhY2l0eTogMDsKICAg
ICBwb2ludGVyLWV2ZW50czogbm9uZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21lZGlhLWNvbnRyb2xzLmpzIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWVkaWEt
Y29udHJvbHMuanMKaW5kZXggMTVmMTQwNjJjY2ZlOTU5YTFkZGU4ZWU3Yzk3ZTg4M2Y2NDU2ZGEx
NC4uNTk0Y2FiODMxZTBmZDViMDEzN2JlOTNkYzFjMmE3Mjg2ZTljZTNkYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWVk
aWEtY29udHJvbHMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvY29udHJvbHMvbWVkaWEtY29udHJvbHMuanMKQEAgLTQ4LDggKzQ4LDYgQEAgY2xh
c3MgTWVkaWFDb250cm9scyBleHRlbmRzIExheW91dE5vZGUKICAgICAgICAgdGhpcy5zdGF0dXNM
YWJlbCA9IG5ldyBTdGF0dXNMYWJlbCh0aGlzKTsKICAgICAgICAgdGhpcy50aW1lQ29udHJvbCA9
IG5ldyBUaW1lQ29udHJvbCh0aGlzKTsKIAotICAgICAgICB0aGlzLnRyYWNrc1BhbmVsID0gbmV3
IFRyYWNrc1BhbmVsOwotCiAgICAgICAgIHRoaXMuYm90dG9tQ29udHJvbHNCYXIgPSBuZXcgQ29u
dHJvbHNCYXIoImJvdHRvbSIpOwogCiAgICAgICAgIHRoaXMuYXV0b0hpZGVDb250cm9sbGVyID0g
bmV3IEF1dG9IaWRlQ29udHJvbGxlcih0aGlzKTsKQEAgLTE3MCwzMyArMTY4LDYgQEAgY2xhc3Mg
TWVkaWFDb250cm9scyBleHRlbmRzIExheW91dE5vZGUKICAgICAgICAgcmV0dXJuIHRoaXMuX3Bs
YWNhcmQgJiYgdGhpcy5fcGxhY2FyZCAhPT0gdGhpcy5haXJwbGF5UGxhY2FyZDsKICAgICB9CiAK
LSAgICBzaG93VHJhY2tzUGFuZWwoKQotICAgIHsKLSAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNz
TGlzdC5hZGQoInNob3dzLXRyYWNrcy1wYW5lbCIpOwotCi0gICAgICAgIHRoaXMudHJhY2tzQnV0
dG9uLm9uID0gdHJ1ZTsKLSAgICAgICAgdGhpcy50cmFja3NCdXR0b24uZWxlbWVudC5ibHVyKCk7
Ci0gICAgICAgIHRoaXMuYXV0b0hpZGVDb250cm9sbGVyLmhhc1NlY29uZGFyeVVJQXR0YWNoZWQg
PSB0cnVlOwotICAgICAgICB0aGlzLnRyYWNrc1BhbmVsLnByZXNlbnRJblBhcmVudCh0aGlzKTsK
LQotICAgICAgICBjb25zdCBjb250cm9sc0JvdW5kcyA9IHRoaXMuZWxlbWVudC5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKTsKLSAgICAgICAgY29uc3QgY29udHJvbHNCYXJCb3VuZHMgPSB0aGlzLmJv
dHRvbUNvbnRyb2xzQmFyLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICAg
IGNvbnN0IHRyYWNrc0J1dHRvbkJvdW5kcyA9IHRoaXMudHJhY2tzQnV0dG9uLmVsZW1lbnQuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICAgIHRoaXMudHJhY2tzUGFuZWwucmlnaHRYID0g
dGhpcy53aWR0aCAtICh0cmFja3NCdXR0b25Cb3VuZHMucmlnaHQgLSBjb250cm9sc0JvdW5kcy5s
ZWZ0KTsKLSAgICAgICAgdGhpcy50cmFja3NQYW5lbC5ib3R0b21ZID0gdGhpcy5oZWlnaHQgLSAo
Y29udHJvbHNCYXJCb3VuZHMudG9wIC0gY29udHJvbHNCb3VuZHMudG9wKSArIDE7Ci0gICAgICAg
IHRoaXMudHJhY2tzUGFuZWwubWF4SGVpZ2h0ID0gdGhpcy5oZWlnaHQgLSB0aGlzLnRyYWNrc1Bh
bmVsLmJvdHRvbVkgLSAxMDsKLSAgICB9Ci0KLSAgICBoaWRlVHJhY2tzUGFuZWwoKQotICAgIHsK
LSAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoInNob3dzLXRyYWNrcy1wYW5l
bCIpOwotCi0gICAgICAgIHRoaXMudHJhY2tzQnV0dG9uLm9uID0gZmFsc2U7Ci0gICAgICAgIHRo
aXMudHJhY2tzQnV0dG9uLmVsZW1lbnQuZm9jdXMoKTsKLSAgICAgICAgdGhpcy5hdXRvSGlkZUNv
bnRyb2xsZXIuaGFzU2Vjb25kYXJ5VUlBdHRhY2hlZCA9IGZhbHNlOwotICAgICAgICB0aGlzLnRy
YWNrc1BhbmVsLmhpZGUoKTsKLSAgICB9Ci0KICAgICBmYWRlSW4oKQogICAgIHsKICAgICAgICAg
dGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoImZhZGUtaW4iKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3RyYWNrcy1i
dXR0b24uanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9j
b250cm9scy90cmFja3MtYnV0dG9uLmpzCmluZGV4IDM1YWQ1ZGE4NDg0MjAxMzg5ZGZhNjcwMDk5
MzkzMDQyZjRiMzc1YWMuLjkwOTVjZjNkMWNiZDdkNzFkNzRkYjZmNzgxN2M1ZTc4ODNlMWMxOWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L2NvbnRyb2xzL3RyYWNrcy1idXR0b24uanMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvdHJhY2tzLWJ1dHRvbi5qcwpAQCAtNDAsOCAr
NDAsOCBAQCBjbGFzcyBUcmFja3NCdXR0b24gZXh0ZW5kcyBCdXR0b24KICAgICBnZXQgY29udGV4
dE1lbnVPcHRpb25zKCkKICAgICB7CiAgICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICBpbmNs
dWRlQXVkaW9UcmFja3M6IHRydWUsCi0gICAgICAgICAgICBpbmNsdWRlVGV4dFRyYWNrczogdHJ1
ZSwKKyAgICAgICAgICAgIGluY2x1ZGVMYW5ndWFnZXM6IHRydWUsCisgICAgICAgICAgICBpbmNs
dWRlU3VidGl0bGVzOiB0cnVlLAogICAgICAgICB9OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvdHJhY2tz
LXBhbmVsLmNzcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L2NvbnRyb2xzL3RyYWNrcy1wYW5lbC5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDIzNmJkNzJjNzgwNzM0ZjA5M2ZhYWZiYWI2YTg2NWFlNmExY2E0YTYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvdHJhY2tzLXBhbmVsLmNzcworKysgL2Rldi9u
dWxsCkBAIC0xLDExMCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIElu
Yy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotLnRyYWNrcy1wYW5lbCB7Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAg
IGRpc3BsYXk6IGlubGluZS1ibG9jazsKLX0KLQotLnRyYWNrcy1wYW5lbCA+IC5zY3JvbGxhYmxl
LWNvbnRhaW5lciB7Ci0gICAgYm9yZGVyLXJhZGl1czogOHB4OwotfQotCi0udHJhY2tzLXBhbmVs
ID4gLnNjcm9sbGFibGUtY29udGFpbmVyIHsKLSAgICBwb3NpdGlvbjogcmVsYXRpdmU7Ci0gICAg
b3ZlcmZsb3cteTogc2Nyb2xsOwotfQotCi0udHJhY2tzLXBhbmVsICogewotICAgIGZvbnQtc2l6
ZTogMTRweDsKLSAgICBmb250LXdlaWdodDogNTAwOwotfQotCi0udHJhY2tzLXBhbmVsLmZhZGUt
b3V0IHsKLSAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5OwotICAgIHRyYW5zaXRpb24t
ZHVyYXRpb246IDI2NW1zOwotICAgIG9wYWNpdHk6IDA7Ci19Ci0KLS50cmFja3MtcGFuZWwgc2Vj
dGlvbiB7Ci0gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHZhcigtLXNlY29uZGFyeS1nbHlwaC1j
b2xvcik7Ci0gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKLX0KLQotLnRyYWNrcy1wYW5lbCBz
ZWN0aW9uOmZpcnN0LW9mLXR5cGUgewotICAgIGJvcmRlci10b3A6IDA7Ci19Ci0KLS50cmFja3Mt
cGFuZWwgc2VjdGlvbiA+IGgzIHsKLSAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1nbHlwaC1jb2xv
cik7Ci0gICAgbWl4LWJsZW5kLW1vZGU6IHBsdXMtbGlnaHRlcjsKLSAgICBwYWRkaW5nOiA1cHgg
MjBweCAxcHggMjFweDsKLSAgICBtYXJnaW46IDA7Ci19Ci0KLS50cmFja3MtcGFuZWwgc2VjdGlv
biA+IHVsIHsKLSAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7Ci0gICAgbWFyZ2luLXRvcDogMDsK
LSAgICBwYWRkaW5nOiAwOwotfQotCi0udHJhY2tzLXBhbmVsIHNlY3Rpb24gPiB1bCA+IGxpIHsK
LSAgICBwb3NpdGlvbjogcmVsYXRpdmU7Ci0gICAgcGFkZGluZzogMXB4IDIwcHggMXB4IDMzcHg7
Ci0gICAgY29sb3I6IHdoaXRlOwotfQotCi0udHJhY2tzLXBhbmVsIHNlY3Rpb24gPiB1bCA+IGxp
OmZvY3VzIHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjAsIDEwNSwgMjA5KTsKLSAgICBv
dXRsaW5lOiBub25lOwotfQotCi0udHJhY2tzLXBhbmVsIHNlY3Rpb24gPiB1bCA+IGxpLnNlbGVj
dGVkOmJlZm9yZSB7Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIHRvcDogM3B4OwotICAg
IGxlZnQ6IDEycHg7Ci0gICAgd2lkdGg6IDEycHg7Ci0gICAgZGlzcGxheTogaW5saW5lLWJsb2Nr
OwotICAgIGNvbnRlbnQ6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMzAwIDMwMCI+PHBvbHlnb24gZmls
bD0id2hpdGUiIHBvaW50cz0iMjUyLjMwMSw0LjQ3NyAxMjYuNjY3LDE5NC4xMDQgNDMuMzU4LDEw
OC4zIDYuODY4LDE2MS40MDggMTMyLjUxNSwyOTAuODE0IDI5Ny43MzIsNDkuOTI2Ii8+PC9zdmc+
Jyk7Ci19Ci0KLS50cmFja3MtcGFuZWwgc2VjdGlvbiA+IHVsID4gbGkuYW5pbWF0ZWQgewotICAg
IGFuaW1hdGlvbi1uYW1lOiB0cmFja3MtcGFuZWwtaXRlbS1zZWxlY3Rpb247Ci0gICAgYW5pbWF0
aW9uLWR1cmF0aW9uOiAxNTBtczsKLSAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBzdGVw
LWVuZDsKLSAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkczsKLX0KLQotQGtleWZyYW1l
cyB0cmFja3MtcGFuZWwtaXRlbS1zZWxlY3Rpb24gewotICAgIDAlLCA1NS41NSUgewotICAgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI2LCA2OCwgMjQzLCAwLjYpOwotICAgICAgICAtd2Vi
a2l0LWJhY2tkcm9wLWZpbHRlcjogc2F0dXJhdGUoMTgwJSkgYmx1cigyMHB4KTsKLSAgICB9Ci0K
LSAgICAyMi4yMiUgewotICAgICAgICBiYWNrZ3JvdW5kOiBub25lOwotICAgICAgICAtd2Via2l0
LWJhY2tkcm9wLWZpbHRlcjogbm9uZTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy90cmFja3MtcGFuZWwu
anMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9s
cy90cmFja3MtcGFuZWwuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzMDE3MDVj
ZDRhZDUwZDU5MTY4NWFiMzM1MzU5Y2UxZDJjNzg4MmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvY29udHJvbHMvdHJhY2tzLXBhbmVsLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MzQ4ICswLDAgQEAKLQotY2xhc3MgVHJhY2tzUGFuZWwgZXh0ZW5kcyBMYXlvdXROb2RlCi17Ci0K
LSAgICBjb25zdHJ1Y3RvcigpCi0gICAgewotICAgICAgICBzdXBlcihgPGRpdiBjbGFzcz0idHJh
Y2tzLXBhbmVsIj48L2Rpdj5gKTsKLSAgICAgICAgdGhpcy5fYmFja2dyb3VuZFRpbnQgPSBuZXcg
QmFja2dyb3VuZFRpbnQ7Ci0gICAgICAgIHRoaXMuX3Njcm9sbGFibGVDb250YWluZXIgPSBuZXcg
TGF5b3V0Tm9kZShgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZS1jb250YWluZXIiPjwvZGl2PmApOwot
ICAgICAgICB0aGlzLl9yaWdodFggPSAwOwotICAgICAgICB0aGlzLl9ib3R0b21ZID0gMDsKLSAg
ICAgICAgdGhpcy5fcHJlc2VudGVkID0gZmFsc2U7Ci0gICAgICAgIAotICAgICAgICB0aGlzLmNo
aWxkcmVuID0gW3RoaXMuX2JhY2tncm91bmRUaW50LCB0aGlzLl9zY3JvbGxhYmxlQ29udGFpbmVy
XTsKLSAgICB9Ci0KLSAgICAvLyBQdWJsaWMKLQotICAgIGdldCBwcmVzZW50ZWQoKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIHRoaXMuX3ByZXNlbnRlZDsKLSAgICB9Ci0KLSAgICBwcmVzZW50SW5Q
YXJlbnQobm9kZSkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9wcmVzZW50ZWQgJiYgdGhpcy5w
YXJlbnQgPT09IG5vZGUpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy5fcHJl
c2VudGVkID0gdHJ1ZTsKLQotICAgICAgICB0aGlzLl9zY3JvbGxhYmxlQ29udGFpbmVyLmNoaWxk
cmVuID0gdGhpcy5fY2hpbGRyZW5Gcm9tRGF0YVNvdXJjZSgpOwotCi0gICAgICAgIG5vZGUuYWRk
Q2hpbGQodGhpcyk7Ci0KLSAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIo
InRyYW5zaXRpb25lbmQiLCB0aGlzKTsKLSAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5y
ZW1vdmUoImZhZGUtb3V0Iik7Ci0KLSAgICAgICAgdGhpcy5fbW91c2Vkb3duVGFyZ2V0KCkuYWRk
RXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdGhpcywgdHJ1ZSk7Ci0gICAgICAgIHdpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcywgdHJ1ZSk7Ci0KLSAgICAgICAgdGhpcy5f
Zm9jdXNlZFRyYWNrTm9kZSA9IG51bGw7Ci0gICAgfQotCi0gICAgaGlkZSgpCi0gICAgewotICAg
ICAgICBpZiAoIXRoaXMuX3ByZXNlbnRlZCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAg
ICB0aGlzLl9wcmVzZW50ZWQgPSBmYWxzZTsKLQotICAgICAgICB0aGlzLl9tb3VzZWRvd25UYXJn
ZXQoKS5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCB0aGlzLCB0cnVlKTsKLSAgICAg
ICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLCB0aGlzLCB0cnVlKTsKLQot
ICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsIHRo
aXMpOwotCi0gICAgICAgIC8vIEVuc3VyZSBhIHRyYW5zaXRpb24gd2lsbCBpbmRlZWQgaGFwcGVu
IGJ5IHN0YXJ0aW5nIGl0IG9ubHkgb24gdGhlIG5leHQgZnJhbWUuCi0gICAgICAgIHdpbmRvdy5y
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geyB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgi
ZmFkZS1vdXQiKTsgfSk7Ci0gICAgfQotCi0gICAgZ2V0IG1heEhlaWdodCgpCi0gICAgewotICAg
ICAgICByZXR1cm4gdGhpcy5fbWF4SGVpZ2h0OwotICAgIH0KLQotICAgIHNldCBtYXhIZWlnaHQo
aGVpZ2h0KQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX21heEhlaWdodCA9PT0gaGVpZ2h0KQot
ICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMuX21heEhlaWdodCA9IGhlaWdodDsK
LSAgICAgICAgdGhpcy5tYXJrRGlydHlQcm9wZXJ0eSgibWF4SGVpZ2h0IikKLSAgICB9Ci0KLSAg
ICBnZXQgYm90dG9tWSgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fYm90dG9tWTsKLSAg
ICB9Ci0KLSAgICBzZXQgYm90dG9tWShib3R0b21ZKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMu
X2JvdHRvbVkgPT09IGJvdHRvbVkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhp
cy5fYm90dG9tWSA9IGJvdHRvbVk7Ci0gICAgICAgIHRoaXMubWFya0RpcnR5UHJvcGVydHkoImJv
dHRvbVkiKTsKLSAgICB9Ci0KLSAgICBnZXQgcmlnaHRYKCkKLSAgICB7Ci0gICAgICAgIHJldHVy
biB0aGlzLl9yaWdodFg7Ci0gICAgfQotCi0gICAgc2V0IHJpZ2h0WCh4KQotICAgIHsKLSAgICAg
ICAgaWYgKHRoaXMuX3JpZ2h0WCA9PT0geCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAg
ICB0aGlzLl9yaWdodFggPSB4OwotICAgICAgICB0aGlzLm1hcmtEaXJ0eVByb3BlcnR5KCJyaWdo
dFgiKTsKLSAgICB9Ci0KLSAgICAvLyBQcm90ZWN0ZWQKLQotICAgIHRyYWNrTm9kZVNlbGVjdGlv
bkFuaW1hdGlvbkRpZEVuZCh0cmFja05vZGUpCi0gICAgewotICAgICAgICBpZiAodGhpcy51aURl
bGVnYXRlICYmIHR5cGVvZiB0aGlzLnVpRGVsZWdhdGUudHJhY2tzUGFuZWxTZWxlY3Rpb25EaWRD
aGFuZ2UgPT09ICJmdW5jdGlvbiIpCi0gICAgICAgICAgICB0aGlzLnVpRGVsZWdhdGUudHJhY2tz
UGFuZWxTZWxlY3Rpb25EaWRDaGFuZ2UodHJhY2tOb2RlLmluZGV4LCB0cmFja05vZGUuc2VjdGlv
bkluZGV4KTsKLSAgICB9Ci0KLSAgICBtb3VzZU1vdmVkT3ZlclRyYWNrTm9kZSh0cmFja05vZGUp
Ci0gICAgewotICAgICAgICB0aGlzLl9mb2N1c1RyYWNrTm9kZSh0cmFja05vZGUpOwotICAgIH0K
LQotICAgIG1vdXNlRXhpdGVkVHJhY2tOb2RlKHRyYWNrTm9kZSkKLSAgICB7Ci0gICAgICAgIHRo
aXMuX2ZvY3VzZWRUcmFja05vZGUuZWxlbWVudC5ibHVyKCk7Ci0gICAgICAgIGRlbGV0ZSB0aGlz
Ll9mb2N1c2VkVHJhY2tOb2RlOwotICAgIH0KLQotICAgIGNvbW1pdFByb3BlcnR5KHByb3BlcnR5
TmFtZSkKLSAgICB7Ci0gICAgICAgIGlmIChwcm9wZXJ0eU5hbWUgPT09ICJyaWdodFgiKQotICAg
ICAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLnJpZ2h0ID0gYCR7dGhpcy5fcmlnaHRYfXB4YDsK
LSAgICAgICAgZWxzZSBpZiAocHJvcGVydHlOYW1lID09PSAiYm90dG9tWSIpCi0gICAgICAgICAg
ICB0aGlzLmVsZW1lbnQuc3R5bGUuYm90dG9tID0gYCR7dGhpcy5fYm90dG9tWX1weGA7Ci0gICAg
ICAgIGVsc2UgaWYgKHByb3BlcnR5TmFtZSA9PT0gIm1heEhlaWdodCIpIHsKLSAgICAgICAgICAg
IHRoaXMuZWxlbWVudC5zdHlsZS5tYXhIZWlnaHQgPSBgJHt0aGlzLl9tYXhIZWlnaHR9cHhgOwot
ICAgICAgICAgICAgdGhpcy5fc2Nyb2xsYWJsZUNvbnRhaW5lci5lbGVtZW50LnN0eWxlLm1heEhl
aWdodCA9IGAke3RoaXMuX21heEhlaWdodH1weGA7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAg
ICAgc3VwZXIuY29tbWl0UHJvcGVydHkocHJvcGVydHlOYW1lKTsKLSAgICB9Ci0KLSAgICBoYW5k
bGVFdmVudChldmVudCkKLSAgICB7Ci0gICAgICAgIHN3aXRjaCAoZXZlbnQudHlwZSkgewotICAg
ICAgICBjYXNlICJtb3VzZWRvd24iOgotICAgICAgICAgICAgdGhpcy5faGFuZGxlTW91c2Vkb3du
KGV2ZW50KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICJrZXlkb3duIjoKLSAg
ICAgICAgICAgIHRoaXMuX2hhbmRsZUtleWRvd24oZXZlbnQpOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgInRyYW5zaXRpb25lbmQiOgotICAgICAgICAgICAgdGhpcy5yZW1vdmUo
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8gUHJpdmF0
ZQotCi0gICAgX21vdXNlZG93blRhcmdldCgpCi0gICAgewotICAgICAgICBjb25zdCBtZWRpYUNv
bnRyb2xzID0gdGhpcy5wYXJlbnRPZlR5cGUoTWFjT1NGdWxsc2NyZWVuTWVkaWFDb250cm9scyk7
Ci0gICAgICAgIGlmIChtZWRpYUNvbnRyb2xzKQotICAgICAgICAgICAgcmV0dXJuIG1lZGlhQ29u
dHJvbHMuZWxlbWVudDsKLSAgICAgICAgcmV0dXJuIHdpbmRvdzsKLSAgICB9Ci0KLSAgICBfY2hp
bGRyZW5Gcm9tRGF0YVNvdXJjZSgpCi0gICAgewotICAgICAgICBjb25zdCBjaGlsZHJlbiA9IFtd
OwotCi0gICAgICAgIHRoaXMuX3RyYWNrTm9kZXMgPSBbXTsKLQotICAgICAgICBjb25zdCBkYXRh
U291cmNlID0gdGhpcy5kYXRhU291cmNlOwotICAgICAgICBpZiAoIWRhdGFTb3VyY2UpCi0gICAg
ICAgICAgICByZXR1cm4gY2hpbGRyZW47Ci0KLSAgICAgICAgY29uc3QgbnVtYmVyT2ZTZWN0aW9u
cyA9IGRhdGFTb3VyY2UudHJhY2tzUGFuZWxOdW1iZXJPZlNlY3Rpb25zKCk7Ci0gICAgICAgIGlm
IChudW1iZXJPZlNlY3Rpb25zID09PSAwKQotICAgICAgICAgICAgcmV0dXJuIGNoaWxkcmVuOwot
Ci0gICAgICAgIGZvciAobGV0IHNlY3Rpb25JbmRleCA9IDA7IHNlY3Rpb25JbmRleCA8IG51bWJl
ck9mU2VjdGlvbnM7ICsrc2VjdGlvbkluZGV4KSB7Ci0gICAgICAgICAgICBsZXQgc2VjdGlvbk5v
ZGUgPSBuZXcgTGF5b3V0Tm9kZShgPHNlY3Rpb24+PC9zZWN0aW9uPmApOwotICAgICAgICAgICAg
c2VjdGlvbk5vZGUuYWRkQ2hpbGQobmV3IExheW91dE5vZGUoYDxoMz4ke2RhdGFTb3VyY2UudHJh
Y2tzUGFuZWxUaXRsZUZvclNlY3Rpb24oc2VjdGlvbkluZGV4KX08L2gzPmApKTsKLQotICAgICAg
ICAgICAgbGV0IHRyYWNrc0xpc3ROb2RlID0gc2VjdGlvbk5vZGUuYWRkQ2hpbGQobmV3IExheW91
dE5vZGUoYDx1bD48L3VsPmApKTsKLSAgICAgICAgICAgIGxldCBudW1iZXJPZlRyYWNrcyA9IGRh
dGFTb3VyY2UudHJhY2tzUGFuZWxOdW1iZXJPZlRyYWNrc0luU2VjdGlvbihzZWN0aW9uSW5kZXgp
OwotICAgICAgICAgICAgZm9yIChsZXQgdHJhY2tJbmRleCA9IDA7IHRyYWNrSW5kZXggPCBudW1i
ZXJPZlRyYWNrczsgKyt0cmFja0luZGV4KSB7Ci0gICAgICAgICAgICAgICAgbGV0IHRyYWNrVGl0
bGUgPSBkYXRhU291cmNlLnRyYWNrc1BhbmVsVGl0bGVGb3JUcmFja0luU2VjdGlvbih0cmFja0lu
ZGV4LCBzZWN0aW9uSW5kZXgpOwotICAgICAgICAgICAgICAgIGxldCB0cmFja1NlbGVjdGVkID0g
ZGF0YVNvdXJjZS50cmFja3NQYW5lbElzVHJhY2tJblNlY3Rpb25TZWxlY3RlZCh0cmFja0luZGV4
LCBzZWN0aW9uSW5kZXgpOwotICAgICAgICAgICAgICAgIGxldCB0cmFja05vZGUgPSB0cmFja3NM
aXN0Tm9kZS5hZGRDaGlsZChuZXcgVHJhY2tOb2RlKHRyYWNrSW5kZXgsIHNlY3Rpb25JbmRleCwg
dHJhY2tUaXRsZSwgdHJhY2tTZWxlY3RlZCwgdGhpcykpOwotICAgICAgICAgICAgICAgIHRoaXMu
X3RyYWNrTm9kZXMucHVzaCh0cmFja05vZGUpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
Y2hpbGRyZW4ucHVzaChzZWN0aW9uTm9kZSk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4g
Y2hpbGRyZW47Ci0gICAgfQotCi0gICAgX2hhbmRsZU1vdXNlZG93bihldmVudCkKLSAgICB7Ci0g
ICAgICAgIGlmICh0aGlzLl9pc1BvaW50SW5UcmFja3NQYW5lbChuZXcgRE9NUG9pbnQoZXZlbnQu
Y2xpZW50WCwgZXZlbnQuY2xpZW50WSkpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAg
IHRoaXMuX2Rpc21pc3MoKTsKLQotICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwotICAg
ICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKLSAgICB9Ci0KLSAgICBfaXNQb2ludEluVHJh
Y2tzUGFuZWwocG9pbnQpCi0gICAgewotICAgICAgICBsZXQgYW5jZXN0b3IgPSB0aGlzLmVsZW1l
bnQucGFyZW50Tm9kZTsKLSAgICAgICAgd2hpbGUgKGFuY2VzdG9yICYmICEoYW5jZXN0b3IgaW5z
dGFuY2VvZiBTaGFkb3dSb290KSkKLSAgICAgICAgICAgIGFuY2VzdG9yID0gYW5jZXN0b3IucGFy
ZW50Tm9kZTsKLQotICAgICAgICBpZiAoIWFuY2VzdG9yKQotICAgICAgICAgICAgYW5jZXN0b3Ig
PSBkb2N1bWVudDsKLQotICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50LmNvbnRhaW5zKGFuY2Vz
dG9yLmVsZW1lbnRGcm9tUG9pbnQocG9pbnQueCwgcG9pbnQueSkpOwotICAgIH0KLQotICAgIF9o
YW5kbGVLZXlkb3duKGV2ZW50KQotICAgIHsKLSAgICAgICAgc3dpdGNoIChldmVudC5rZXkpIHsK
LSAgICAgICAgY2FzZSAiSG9tZSI6Ci0gICAgICAgIGNhc2UgIlBhZ2VVcCI6Ci0gICAgICAgICAg
ICB0aGlzLl9mb2N1c0ZpcnN0VHJhY2tOb2RlKCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSAiRW5kIjoKLSAgICAgICAgY2FzZSAiUGFnZURvd24iOgotICAgICAgICAgICAgdGhp
cy5fZm9jdXNMYXN0VHJhY2tOb2RlKCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSAiQXJyb3dEb3duIjoKLSAgICAgICAgICAgIGlmIChldmVudC5hbHRLZXkgfHwgZXZlbnQubWV0
YUtleSkKLSAgICAgICAgICAgICAgICB0aGlzLl9mb2N1c0xhc3RUcmFja05vZGUoKTsKLSAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICB0aGlzLl9mb2N1c05leHRUcmFja05vZGUoKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICJBcnJvd1VwIjoKLSAgICAgICAgICAg
IGlmIChldmVudC5hbHRLZXkgfHwgZXZlbnQubWV0YUtleSkKLSAgICAgICAgICAgICAgICB0aGlz
Ll9mb2N1c0ZpcnN0VHJhY2tOb2RlKCk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgdGhpcy5fZm9jdXNQcmV2aW91c1RyYWNrTm9kZSgpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgIiAiOgotICAgICAgICBjYXNlICJFbnRlciI6Ci0gICAgICAgICAgICBpZiAo
dGhpcy5fZm9jdXNlZFRyYWNrTm9kZSkKLSAgICAgICAgICAgICAgICB0aGlzLl9mb2N1c2VkVHJh
Y2tOb2RlLmFjdGl2YXRlKCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAiRXNj
YXBlIjoKLSAgICAgICAgICAgIHRoaXMuX2Rpc21pc3MoKTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAg
ICAgLy8gRW5zdXJlIHRoYXQgd2UgZG9uJ3QgbGV0IHRoZSBicm93c2VyIHJlYWN0IHRvIGEga2V5
IGNvZGUgd2UgaGFuZGxlZCwKLSAgICAgICAgLy8gZm9yIGluc3RhbmNlIHNjcm9sbGluZyB0aGUg
cGFnZSBpZiB3ZSBoYW5kbGVkIGFuIGFycm93IGtleS4KLSAgICAgICAgZXZlbnQucHJldmVudERl
ZmF1bHQoKTsKLSAgICB9Ci0KLSAgICBfZGlzbWlzcygpCi0gICAgewotICAgICAgICBpZiAodGhp
cy5wYXJlbnQgJiYgdHlwZW9mIHRoaXMucGFyZW50LmhpZGVUcmFja3NQYW5lbCA9PT0gImZ1bmN0
aW9uIikKLSAgICAgICAgICAgIHRoaXMucGFyZW50LmhpZGVUcmFja3NQYW5lbCgpOwotICAgIH0K
LQotICAgIF9mb2N1c1RyYWNrTm9kZSh0cmFja05vZGUpCi0gICAgewotICAgICAgICBpZiAoIXRy
YWNrTm9kZSB8fCB0cmFja05vZGUgPT09IHRoaXMuX2ZvY3VzZWRUcmFja05vZGUpCi0gICAgICAg
ICAgICByZXR1cm47Ci0KLSAgICAgICAgdHJhY2tOb2RlLmVsZW1lbnQuZm9jdXMoKTsKLSAgICAg
ICAgdGhpcy5fZm9jdXNlZFRyYWNrTm9kZSA9IHRyYWNrTm9kZTsKLSAgICB9Ci0KLSAgICBfZm9j
dXNQcmV2aW91c1RyYWNrTm9kZSgpCi0gICAgewotICAgICAgICBjb25zdCBwcmV2aW91c0luZGV4
ID0gdGhpcy5fZm9jdXNlZFRyYWNrTm9kZSA/IHRoaXMuX3RyYWNrTm9kZXMuaW5kZXhPZih0aGlz
Ll9mb2N1c2VkVHJhY2tOb2RlKSAtIDEgOiB0aGlzLl90cmFja05vZGVzLmxlbmd0aCAtIDE7Ci0g
ICAgICAgIHRoaXMuX2ZvY3VzVHJhY2tOb2RlKHRoaXMuX3RyYWNrTm9kZXNbcHJldmlvdXNJbmRl
eF0pOwotICAgIH0KLQotICAgIF9mb2N1c05leHRUcmFja05vZGUoKQotICAgIHsKLSAgICAgICAg
dGhpcy5fZm9jdXNUcmFja05vZGUodGhpcy5fdHJhY2tOb2Rlc1t0aGlzLl90cmFja05vZGVzLmlu
ZGV4T2YodGhpcy5fZm9jdXNlZFRyYWNrTm9kZSkgKyAxXSk7Ci0gICAgfQotCi0gICAgX2ZvY3Vz
Rmlyc3RUcmFja05vZGUoKQotICAgIHsKLSAgICAgICAgdGhpcy5fZm9jdXNUcmFja05vZGUodGhp
cy5fdHJhY2tOb2Rlc1swXSk7Ci0gICAgfQotCi0gICAgX2ZvY3VzTGFzdFRyYWNrTm9kZSgpCi0g
ICAgewotICAgICAgICB0aGlzLl9mb2N1c1RyYWNrTm9kZSh0aGlzLl90cmFja05vZGVzW3RoaXMu
X3RyYWNrTm9kZXMubGVuZ3RoIC0gMV0pOwotICAgIH0KLQotfQotCi1jbGFzcyBUcmFja05vZGUg
ZXh0ZW5kcyBMYXlvdXROb2RlCi17Ci0KLSAgICBjb25zdHJ1Y3RvcihpbmRleCwgc2VjdGlvbklu
ZGV4LCB0aXRsZSwgc2VsZWN0ZWQsIHBhbmVsKQotICAgIHsKLSAgICAgICAgc3VwZXIoYDxsaSB0
YWJpbmRleD0iMCI+JHt0aXRsZX08L2xpPmApOwotCi0gICAgICAgIHRoaXMuaW5kZXggPSBpbmRl
eDsKLSAgICAgICAgdGhpcy5zZWN0aW9uSW5kZXggPSBzZWN0aW9uSW5kZXg7Ci0gICAgICAgIHRo
aXMuX3BhbmVsID0gcGFuZWw7Ci0gICAgICAgIHRoaXMuX3NlbGVjdGVkID0gc2VsZWN0ZWQ7Ci0K
LSAgICAgICAgaWYgKHNlbGVjdGVkKQotICAgICAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlz
dC5hZGQoInNlbGVjdGVkIik7Ci0KLSAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoIm1vdXNlbW92ZSIsIHRoaXMpOwotICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigibW91c2VsZWF2ZSIsIHRoaXMpOwotICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigiY2xpY2siLCB0aGlzKTsKLSAgICB9Ci0KLSAgICAvLyBQdWJsaWMKLQotICAgIGFj
dGl2YXRlKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJh
bmltYXRpb25lbmQiLCB0aGlzKTsKLSAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQo
ImFuaW1hdGVkIik7Ci0gICAgfQotCi0gICAgLy8gUHJvdGVjdGVkCi0KLSAgICBoYW5kbGVFdmVu
dChldmVudCkKLSAgICB7Ci0gICAgICAgIHN3aXRjaCAoZXZlbnQudHlwZSkgewotICAgICAgICBj
YXNlICJtb3VzZW1vdmUiOgotICAgICAgICAgICAgdGhpcy5fcGFuZWwubW91c2VNb3ZlZE92ZXJU
cmFja05vZGUodGhpcyk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAibW91c2Vs
ZWF2ZSI6Ci0gICAgICAgICAgICB0aGlzLl9wYW5lbC5tb3VzZUV4aXRlZFRyYWNrTm9kZSh0aGlz
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICJjbGljayI6Ci0gICAgICAgICAg
ICB0aGlzLmFjdGl2YXRlKCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAiYW5p
bWF0aW9uZW5kIjoKLSAgICAgICAgICAgIHRoaXMuX2FuaW1hdGlvbkRpZEVuZCgpOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvLyBQcml2YXRlCi0KLSAgICBf
YW5pbWF0aW9uRGlkRW5kKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmVFdmVu
dExpc3RlbmVyKCJhbmltYXRpb25lbmQiLCB0aGlzKTsKLSAgICAgICAgdGhpcy5fcGFuZWwudHJh
Y2tOb2RlU2VsZWN0aW9uQW5pbWF0aW9uRGlkRW5kKHRoaXMpOwotICAgIH0KLQotfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvaW1hZ2Vz
L21hY09TL092ZXJmbG93LnN2ZyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL2ltYWdlcy9tYWNPUy9PdmVyZmxvdy5zdmcKaW5kZXggZWNmMWIyNDhjNThkY2Zi
OThkY2M1NzZhYmIzYTY3MmU4NjZiYWRkNi4uZjgxZGM3ZmU1YmMwNDZmNDdhYzM5MTQ1MzI3ODgw
ODBkYjBiYmIzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvaW1hZ2VzL21hY09TL092ZXJmbG93LnN2ZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9pbWFnZXMvbWFjT1MvT3ZlcmZsb3cuc3Zn
CkBAIC0xLDQgKzEsNCBAQAogPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4K
IDxzdmcgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTNweCIgdmlld0JveD0iMCAwIDE2IDEzIiB2ZXJz
aW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+Ci0gICAgPHBhdGgg
ZD0iTTMuNDY1NDIyOCw2LjUwMDEwMzIzIEMzLjQ2NTQyMjgsNS41Njc2NDczMSAyLjcwOTM2MjU4
LDQuODIgMS43NjAxMTUyNyw0LjgyIEMwLjgzNjA1NTA1NCw0LjgyIDAuMDgsNS41Njc2NDczMSAw
LjA4LDYuNTAwMTAzMjMgQzAuMDgsNy40MzI1NTkxNCAwLjgzNjA1NTA1NCw4LjE4MDIwNjQ1IDEu
NzYwMTE1MjcsOC4xODAyMDY0NSBDMi43MDkzNjI1OCw4LjE4MDIwNjQ1IDMuNDY1NDIyOCw3LjQz
MjU1OTE0IDMuNDY1NDIyOCw2LjUwMDEwMzIzIFogTTkuNjgxODE4NDksNi41MDAxMDMyMyBDOS42
ODE4MTg0OSw1LjU2NzY0NzMxIDguOTM0MTcxMTgsNC44MiA4LjAwMTcxNTI3LDQuODIgQzcuMDc3
NjU1MDUsNC44MiA2LjMzMDAwNzc0LDUuNTY3NjQ3MzEgNi4zMzAwMDc3NCw2LjUwMDEwMzIzIEM2
LjMzMDAwNzc0LDcuNDMyNTU5MTQgNy4wNzc2NTUwNSw4LjE4MDIwNjQ1IDguMDAxNzE1MjcsOC4x
ODAyMDY0NSBDOC45MzQxNzExOCw4LjE4MDIwNjQ1IDkuNjgxODE4NDksNy40MzI1NTkxNCA5LjY4
MTgxODQ5LDYuNTAwMTAzMjMgWiBNMTUuOTIzNDAxMyw2LjUwMDEwMzIzIEMxNS45MjM0MDEzLDUu
NTY3NjQ3MzEgMTUuMTc1NzcxMiw0LjgyIDE0LjI0MzMxNTMsNC44MiBDMTMuMjk0MDUwOCw0Ljgy
IDEyLjU0NjQwMzQsNS41Njc2NDczMSAxMi41NDY0MDM0LDYuNTAwMTAzMjMgQzEyLjU0NjQwMzQs
Ny40MzI1NTkxNCAxMy4yOTQwNTA4LDguMTgwMjA2NDUgMTQuMjQzMzE1Myw4LjE4MDIwNjQ1IEMx
NS4xNzU3NzEyLDguMTgwMjA2NDUgMTUuOTIzNDAxMyw3LjQzMjU1OTE0IDE1LjkyMzQwMTMsNi41
MDAxMDMyMyBaIi8+CisgICAgPHBhdGggZD0iTTguMzYwMjgwMjMsMTIuOTEwNzgyOSBDOC41NTIx
ODE0LDEyLjkxMDc4MjkgOC43MTQ1NjA0NywxMi44MzY5NzE2IDguODQwMDQwNywxMi43MTE0OTU5
IEwxNC42ODU4NTM1LDYuOTk4NjA4MTQgQzE0LjgyNTk4MTQsNi44NTgzNTkzIDE0LjkwNzE1NTgs
Ni42ODg2MDM0OSAxNC45MDcxNTU4LDYuNTA0MDc5MDcgQzE0LjkwNzE1NTgsNi4zMTIxNzc5MSAx
NC44MjU5ODE0LDYuMTI3NjUzNDkgMTQuNjg1ODUzNSw2LjAwOTU1IEw4Ljg0MDA0MDcsMC4yODky
Nzc5MDcgQzguNzA3MTgzNzIsMC4xNjM3OTc2NzQgOC41NTIxODE0LDAuMDkgOC4zNjAyODAyMyww
LjA5IEM3Ljk3NjQ2Mjc5LDAuMDkgNy42ODEyMjY3NCwwLjM4NTIzNjA0NyA3LjY4MTIyNjc0LDAu
NzY5MDM4MzcyIEM3LjY4MTIyNjc0LDAuOTQ2MTg2MDQ3IDcuNzYyNDE2MjgsMS4xMjMzMzM3MiA3
Ljg4MDUwNDY1LDEuMjQ4ODEzOTUgTDEzLjI1Mzg3MzMsNi41MDQwNzkwNyBMNy44ODA1MDQ2NSwx
MS43NTkzNDcxIEM3Ljc2MjQxNjI4LDExLjg4NDgyNCA3LjY4MTIyNjc0LDEyLjA1NDU4NjMgNy42
ODEyMjY3NCwxMi4yMzkxMTIyIEM3LjY4MTIyNjc0LDEyLjYyMjkyMzYgNy45NzY0NjI3OSwxMi45
MTA3ODI5IDguMzYwMjgwMjMsMTIuOTEwNzgyOSBaIE0xLjc2MTY2MTYzLDEyLjkxMDc4MjkgQzEu
OTUzNTc3OTEsMTIuOTEwNzgyOSAyLjExNTk1Njk4LDEyLjgzNjk3MTYgMi4yNDg4MTM5NSwxMi43
MTE0OTU5IEw4LjA5NDU2NjI4LDYuOTk4NjA4MTQgQzguMjM0OCw2Ljg1ODM1OTMgOC4zMDg2MTI3
OSw2LjY4ODYwMzQ5IDguMzA4NjEyNzksNi41MDQwNzkwNyBDOC4zMDg2MTI3OSw2LjMxMjE3Nzkx
IDguMjM0OCw2LjEyNzY1MzQ5IDguMDk0NTY2MjgsNi4wMDk1NSBMMi4yNDE0MzcyMSwwLjI4OTI3
NzkwNyBDMi4xMTU5NTY5OCwwLjE2Mzc5NzY3NCAxLjk1MzU3NzkxLDAuMDkgMS43NjE2NjE2Myww
LjA5IEMxLjM3Nzg1OTMsMC4wOSAxLjA5LDAuMzg1MjM2MDQ3IDEuMDksMC43NjkwMzgzNzIgQzEu
MDksMC45NDYxODYwNDcgMS4xNjM4MTI3OSwxLjEyMzMzMzcyIDEuMjgxOTAxMTYsMS4yNDg4MTM5
NSBMNi42NTUyNjk3Nyw2LjUwNDA3OTA3IEwxLjI4MTkwMTE2LDExLjc1OTM0NzEgQzEuMTYzODEy
NzksMTEuODg0ODI0IDEuMDksMTIuMDU0NTg2MyAxLjA5LDEyLjIzOTExMjIgQzEuMDksMTIuNjIy
OTIzNiAxLjM3Nzg1OTMsMTIuOTEwNzgyOSAxLjc2MTY2MTYzLDEyLjkxMDc4MjkgWiIvPgogPC9z
dmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250
cm9scy9qcy1maWxlcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL2pzLWZpbGVzCmluZGV4IGQxYzllOTFiNzQxNWZjY2Q3ZDZmZmQ5ODJiODBhNGIyY2Y3YmQ5
YTQuLjZhNzgzMGFhMDQ1ODMzMDI4NWFlYjNjYTA3N2MzOTllYWU5YTFiZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2pzLWZpbGVzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2pzLWZpbGVz
CkBAIC0yNiw3ICsyNiw2IEBAIGNvbnRyb2xzL292ZXJmbG93LWJ1dHRvbi5qcwogY29udHJvbHMv
YnV0dG9ucy1jb250YWluZXIuanMKIGNvbnRyb2xzL3N0YXR1cy1sYWJlbC5qcwogY29udHJvbHMv
Y29udHJvbHMtYmFyLmpzCi1jb250cm9scy90cmFja3MtcGFuZWwuanMKIGNvbnRyb2xzL2F1dG8t
aGlkZS1jb250cm9sbGVyLmpzCiBjb250cm9scy9tZWRpYS1jb250cm9scy5qcwogY29udHJvbHMv
YmFja2dyb3VuZC1jbGljay1kZWxlZ2F0ZS1ub3RpZmllci5qcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEvbWVkaWEtY29udHJv
bGxlci5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21l
ZGlhL21lZGlhLWNvbnRyb2xsZXIuanMKaW5kZXggYzNmMmYzNDJkNjVjYmViOWM4MTMxNGYzZDQ3
YjEzZDJiNjM4ZGJkOS4uZmY2YWRmZDhiM2ZmNDEyOGNjMGNmOTZlZmNjNmNkZjIwMWYxYzVlYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
bWVkaWEvbWVkaWEtY29udHJvbGxlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21v
ZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS9tZWRpYS1jb250cm9sbGVyLmpzCkBAIC0xMzIsMTQg
KzEzMiwxNCBAQCBjbGFzcyBNZWRpYUNvbnRyb2xsZXIKICAgICAgICAgcmV0dXJuICEhdGhpcy5o
b3N0Py5zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51OwogICAgIH0KIAotICAgIHNob3dNZWRp
YUNvbnRyb2xzQ29udGV4dE1lbnUoYnV0dG9uKQorICAgIHNob3dNZWRpYUNvbnRyb2xzQ29udGV4
dE1lbnUoYnV0dG9uLCBvcHRpb25zID0ge30pCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuY2Fu
U2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgICAgICBsZXQgYXV0b0hpZGVDb250cm9sbGVyID0gdGhpcy5jb250cm9scy5hdXRvSGlk
ZUNvbnRyb2xsZXI7CiAKLSAgICAgICAgbGV0IHdpbGxTaG93Q29udGV4dE1lbnUgPSB0aGlzLmhv
c3Quc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShidXR0b24uZWxlbWVudCwgYnV0dG9uLmNv
bnRleHRNZW51T3B0aW9ucywgKCkgPT4geworICAgICAgICBsZXQgd2lsbFNob3dDb250ZXh0TWVu
dSA9IHRoaXMuaG9zdC5zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KGJ1dHRvbi5lbGVtZW50
LCB7Li4uYnV0dG9uLmNvbnRleHRNZW51T3B0aW9ucywgLi4ub3B0aW9uc30sICgpID0+IHsKICAg
ICAgICAgICAgIGJ1dHRvbi5vbiA9IGZhbHNlOwogICAgICAgICAgICAgYXV0b0hpZGVDb250cm9s
bGVyLmhhc1NlY29uZGFyeVVJQXR0YWNoZWQgPSBmYWxzZTsKICAgICAgICAgfSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS90
cmFja3Mtc3VwcG9ydC5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL21lZGlhL3RyYWNrcy1zdXBwb3J0LmpzCmluZGV4IDY3ZmM5YzZmMjBmMjk3YWNlYWU3
MWVhMzBhNmRlZmY5MDI0M2VlOTEuLmU3N2ZiMmRhMzY0MWNiNGVhYTZlNjQ0MGEzZDA5MTliY2My
MWJjYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL21lZGlhL3RyYWNrcy1zdXBwb3J0LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhL3RyYWNrcy1zdXBwb3J0LmpzCkBAIC0yNiwx
NyArMjYsNiBAQAogY2xhc3MgVHJhY2tzU3VwcG9ydCBleHRlbmRzIE1lZGlhQ29udHJvbGxlclN1
cHBvcnQKIHsKIAotICAgIGNvbnN0cnVjdG9yKG1lZGlhQ29udHJvbGxlcikKLSAgICB7Ci0gICAg
ICAgIHN1cGVyKG1lZGlhQ29udHJvbGxlcik7Ci0KLSAgICAgICAgaWYgKCF0aGlzLmNvbnRyb2wp
Ci0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy5tZWRpYUNvbnRyb2xsZXIuY29u
dHJvbHMudHJhY2tzUGFuZWwuZGF0YVNvdXJjZSA9IHRoaXM7Ci0gICAgICAgIHRoaXMubWVkaWFD
b250cm9sbGVyLmNvbnRyb2xzLnRyYWNrc1BhbmVsLnVpRGVsZWdhdGUgPSB0aGlzOwotICAgIH0K
LQogICAgIC8vIFByb3RlY3RlZAogCiAgICAgZ2V0IGNvbnRyb2woKQpAQCAtNTYsODUgKzQ1LDE0
IEBAIGNsYXNzIFRyYWNrc1N1cHBvcnQgZXh0ZW5kcyBNZWRpYUNvbnRyb2xsZXJTdXBwb3J0CiAK
ICAgICBidXR0b25XYXNQcmVzc2VkKGNvbnRyb2wpCiAgICAgewotICAgICAgICBpZiAodGhpcy5t
ZWRpYUNvbnRyb2xsZXIuc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShjb250cm9sKSkKLSAg
ICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAodGhpcy5tZWRpYUNvbnRyb2xsZXIubGF5
b3V0VHJhaXRzICYgTGF5b3V0VHJhaXRzLm1hY09TKQotICAgICAgICAgICAgdGhpcy5tZWRpYUNv
bnRyb2xsZXIuY29udHJvbHMuc2hvd1RyYWNrc1BhbmVsKCk7Ci0gICAgfQotCi0gICAgdHJhY2tz
UGFuZWxOdW1iZXJPZlNlY3Rpb25zKCkKLSAgICB7Ci0gICAgICAgIGxldCBudW1iZXJPZlNlY3Rp
b25zID0gMDsKLSAgICAgICAgaWYgKHRoaXMuX2NhblBpY2tBdWRpb1RyYWNrcygpKQotICAgICAg
ICAgICAgbnVtYmVyT2ZTZWN0aW9ucysrOwotICAgICAgICBpZiAodGhpcy5fY2FuUGlja1RleHRU
cmFja3MoKSkKLSAgICAgICAgICAgIG51bWJlck9mU2VjdGlvbnMrKzsKLSAgICAgICAgcmV0dXJu
IG51bWJlck9mU2VjdGlvbnM7Ci0gICAgfQotCi0gICAgdHJhY2tzUGFuZWxUaXRsZUZvclNlY3Rp
b24oc2VjdGlvbkluZGV4KQotICAgIHsKLSAgICAgICAgaWYgKHNlY3Rpb25JbmRleCA9PSAwICYm
IHRoaXMuX2NhblBpY2tBdWRpb1RyYWNrcygpKQotICAgICAgICAgICAgcmV0dXJuIFVJU3RyaW5n
KCJBdWRpbyIpOwotICAgICAgICByZXR1cm4gVUlTdHJpbmcoIlN1YnRpdGxlcyIpOwotICAgIH0K
LQotICAgIHRyYWNrc1BhbmVsTnVtYmVyT2ZUcmFja3NJblNlY3Rpb24oc2VjdGlvbkluZGV4KQot
ICAgIHsKLSAgICAgICAgaWYgKHNlY3Rpb25JbmRleCA9PSAwICYmIHRoaXMuX2NhblBpY2tBdWRp
b1RyYWNrcygpKQotICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2F1ZGlvVHJhY2tzKCkubGVuZ3Ro
OwotICAgICAgICByZXR1cm4gdGhpcy5fdGV4dFRyYWNrcygpLmxlbmd0aDsKLSAgICB9Ci0KLSAg
ICB0cmFja3NQYW5lbFRpdGxlRm9yVHJhY2tJblNlY3Rpb24odHJhY2tJbmRleCwgc2VjdGlvbklu
ZGV4KQotICAgIHsKLSAgICAgICAgbGV0IHRyYWNrOwotICAgICAgICBpZiAoc2VjdGlvbkluZGV4
ID09IDAgJiYgdGhpcy5fY2FuUGlja0F1ZGlvVHJhY2tzKCkpCi0gICAgICAgICAgICB0cmFjayA9
IHRoaXMuX2F1ZGlvVHJhY2tzKClbdHJhY2tJbmRleF07Ci0gICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIHRyYWNrID0gdGhpcy5fdGV4dFRyYWNrcygpW3RyYWNrSW5kZXhdOwotCi0gICAgICAgIGlm
ICh0aGlzLm1lZGlhQ29udHJvbGxlci5ob3N0KQotICAgICAgICAgICAgcmV0dXJuIHRoaXMubWVk
aWFDb250cm9sbGVyLmhvc3QuZGlzcGxheU5hbWVGb3JUcmFjayh0cmFjayk7Ci0gICAgICAgIHJl
dHVybiB0cmFjay5sYWJlbDsKLSAgICB9Ci0KLSAgICB0cmFja3NQYW5lbElzVHJhY2tJblNlY3Rp
b25TZWxlY3RlZCh0cmFja0luZGV4LCBzZWN0aW9uSW5kZXgpCi0gICAgewotICAgICAgICBpZiAo
c2VjdGlvbkluZGV4ID09IDAgJiYgdGhpcy5fY2FuUGlja0F1ZGlvVHJhY2tzKCkpCi0gICAgICAg
ICAgICByZXR1cm4gdGhpcy5fYXVkaW9UcmFja3MoKVt0cmFja0luZGV4XS5lbmFibGVkOwotCi0g
ICAgICAgIGNvbnN0IHRleHRUcmFja3MgPSB0aGlzLl90ZXh0VHJhY2tzKCk7Ci0gICAgICAgIGNv
bnN0IHRyYWNrSXRlbSA9IHRleHRUcmFja3NbdHJhY2tJbmRleF07Ci0gICAgICAgIGNvbnN0IGhv
c3QgPSB0aGlzLm1lZGlhQ29udHJvbGxlci5ob3N0OwotICAgICAgICBjb25zdCB0cmFja0lzU2hv
d2luZyA9IHRyYWNrID0+IHRyYWNrLm1vZGUgPT09ICJzaG93aW5nIjsKLSAgICAgICAgY29uc3Qg
YWxsVHJhY2tzRGlzYWJsZWQgPSAhdGV4dFRyYWNrcy5zb21lKHRyYWNrSXNTaG93aW5nKTsKLSAg
ICAgICAgY29uc3QgdXNlc0F1dG9tYXRpY1RyYWNrID0gaG9zdCA/IChob3N0LmNhcHRpb25EaXNw
bGF5TW9kZSA9PT0gImF1dG9tYXRpYyIgJiYgYWxsVHJhY2tzRGlzYWJsZWQpIDogZmFsc2U7Ci0K
LSAgICAgICAgaWYgKGFsbFRyYWNrc0Rpc2FibGVkICYmIGhvc3QgJiYgdHJhY2tJdGVtID09PSBo
b3N0LmNhcHRpb25NZW51T2ZmSXRlbSAmJiAoaG9zdC5jYXB0aW9uRGlzcGxheU1vZGUgPT09ICJm
b3JjZWQtb25seSIgfHwgaG9zdC5jYXB0aW9uRGlzcGxheU1vZGUgPT09ICJtYW51YWwiKSkKLSAg
ICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBpZiAoaG9zdCAmJiB0cmFja0l0ZW0gPT09
IGhvc3QuY2FwdGlvbk1lbnVBdXRvbWF0aWNJdGVtICYmIHVzZXNBdXRvbWF0aWNUcmFjaykKLSAg
ICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICByZXR1cm4gIXVzZXNBdXRvbWF0aWNUcmFj
ayAmJiB0cmFja0lzU2hvd2luZyh0cmFja0l0ZW0pOwotICAgIH0KLQotICAgIHRyYWNrc1BhbmVs
U2VsZWN0aW9uRGlkQ2hhbmdlKHRyYWNrSW5kZXgsIHNlY3Rpb25JbmRleCkKLSAgICB7Ci0gICAg
ICAgIGlmIChzZWN0aW9uSW5kZXggPT0gMCAmJiB0aGlzLl9jYW5QaWNrQXVkaW9UcmFja3MoKSkK
LSAgICAgICAgICAgIHRoaXMuX2F1ZGlvVHJhY2tzKCkuZm9yRWFjaCgoYXVkaW9UcmFjaywgaW5k
ZXgpID0+IGF1ZGlvVHJhY2suZW5hYmxlZCA9IGluZGV4ID09PSB0cmFja0luZGV4KTsKLSAgICAg
ICAgZWxzZSBpZiAodGhpcy5tZWRpYUNvbnRyb2xsZXIuaG9zdCkgewotICAgICAgICAgICAgdGhp
cy5fdGV4dFRyYWNrcygpLmZvckVhY2godGV4dFRyYWNrID0+IHRleHRUcmFjay5tb2RlID0gImRp
c2FibGVkIik7Ci0gICAgICAgICAgICB0aGlzLm1lZGlhQ29udHJvbGxlci5ob3N0LnNldFNlbGVj
dGVkVGV4dFRyYWNrKHRoaXMuX3RleHRUcmFja3MoKVt0cmFja0luZGV4XSk7Ci0gICAgICAgIH0g
ZWxzZQotICAgICAgICAgICAgdGhpcy5fdGV4dFRyYWNrcygpLmZvckVhY2goKHRleHRUcmFjaywg
aW5kZXgpID0+IHRleHRUcmFjay5tb2RlID0gaW5kZXggPT09IHRyYWNrSW5kZXggPyAic2hvd2lu
ZyIgOiAiZGlzYWJsZWQiKTsKLQotICAgICAgICB0aGlzLm1lZGlhQ29udHJvbGxlci5jb250cm9s
cy5oaWRlVHJhY2tzUGFuZWwoKTsKKyAgICAgICAgdGhpcy5tZWRpYUNvbnRyb2xsZXIuc2hvd01l
ZGlhQ29udHJvbHNDb250ZXh0TWVudShjb250cm9sLCB7CisgICAgICAgICAgICBwcm9tb3RlU3Vi
TWVudXM6ICEhKHRoaXMubWVkaWFDb250cm9sbGVyLmxheW91dFRyYWl0cyAmIExheW91dFRyYWl0
cy5tYWNPUyksCisgICAgICAgIH0pOwogICAgIH0KIAogICAgIHN5bmNDb250cm9sKCkKICAgICB7
Ci0gICAgICAgIHRoaXMuY29udHJvbC5lbmFibGVkID0gKHRoaXMubWVkaWFDb250cm9sbGVyLmxh
eW91dFRyYWl0cyAmIExheW91dFRyYWl0cy5tYWNPUyB8fCB0aGlzLm1lZGlhQ29udHJvbGxlci5j
YW5TaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KSAmJiAodGhpcy5fY2FuUGlja0F1ZGlvVHJh
Y2tzKCkgfHwgdGhpcy5fY2FuUGlja1RleHRUcmFja3MoKSk7CisgICAgICAgIHRoaXMuY29udHJv
bC5lbmFibGVkID0gdGhpcy5tZWRpYUNvbnRyb2xsZXIuY2FuU2hvd01lZGlhQ29udHJvbHNDb250
ZXh0TWVudSAmJiAodGhpcy5fY2FuUGlja0F1ZGlvVHJhY2tzKCkgfHwgdGhpcy5fY2FuUGlja1Rl
eHRUcmFja3MoKSk7CiAgICAgfQogCiAgICAgLy8gUHJpdmF0ZQpAQCAtMTYzLDcgKzgxLDcgQEAg
Y2xhc3MgVHJhY2tzU3VwcG9ydCBleHRlbmRzIE1lZGlhQ29udHJvbGxlclN1cHBvcnQKIAogICAg
IF9zb3J0ZWRUcmFja0xpc3QodHJhY2tzKQogICAgIHsKLSAgICAgICAgcmV0dXJuIEFycmF5LmZy
b20odGhpcy5tZWRpYUNvbnRyb2xsZXIuaG9zdCA/IHRoaXMubWVkaWFDb250cm9sbGVyLmhvc3Qu
c29ydGVkVHJhY2tMaXN0Rm9yTWVudSh0cmFja3MpIDogdHJhY2tzKTsKKyAgICAgICAgcmV0dXJu
IHRoaXMubWVkaWFDb250cm9sbGVyLmhvc3QgPyB0aGlzLm1lZGlhQ29udHJvbGxlci5ob3N0LnNv
cnRlZFRyYWNrTGlzdEZvck1lbnUodHJhY2tzKSA6IEFycmF5LmZyb20odHJhY2tzKTsKICAgICB9
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBhMGMwNTRkYzQzOTg5NzU3Y2I5MzRkYjIyZjIxNzhmZjBiMTE4YjYwLi5lNzky
OTYxZTlhODRiODU1MTNjMDA5NmFmZGUxNDBiMzg3Y2U0Zjc2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDAzMiw4ICsxMDAz
Miw2IEBACiAJCTcxM0YxRDVDMjNERjI1NjAwMDNGNUVGQSAvKiBKU0dldEFuaW1hdGlvbnNPcHRp
b25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTR2V0QW5pbWF0
aW9uc09wdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MTQxMzE0NzFE
QzlENkFGMDAzMzYxMDcgLyogZnVsbHNjcmVlbi1zdXBwb3J0LmpzICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5qYXZhc2NyaXB0OyBwYXRoID0gImZ1bGxzY3JlZW4tc3VwcG9ydC5qcyI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxNDEzMTQ4MURDOUQ2RUYwMDMzNjEwNyAvKiBqcy1maWxl
cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSAianMtZmlsZXMiOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk3MTQ2REY4QjFERUZDMkVEMDA0NkY5OEIgLyogdHJhY2tzLXBhbmVsLmNzcyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQuY3NzOyBwYXRoID0gInRyYWNrcy1wYW5lbC5jc3MiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk3MTQ2REY4QzFERUZDMkVEMDA0NkY5OEIgLyogdHJhY2tzLXBh
bmVsLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gInRyYWNrcy1w
YW5lbC5qcyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxNDk1REQ4MjAyQjA2REMw
MEFERkQzNCAvKiBKU0VmZmVjdFRpbWluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0VmZmVjdFRpbWluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTcxNDk1RERBMjAyQjA2REUwMEFERkQzNCAvKiBKU0VmZmVjdFRpbWluZy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0VmZmVjdFRpbWluZy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3MTRDN0M2MDFGREFEMjc5MDBGMkJFRTEgLyogQW5pbWF0aW9uUGxh
eWJhY2tFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBbmlt
YXRpb25QbGF5YmFja0V2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIy
NjgwLDggKzIyNjc4LDYgQEAKIAkJCQk3MTZGQTBGQzFEQjI2NTkxMDA3MzIzQ0MgLyogdGltZS1s
YWJlbC5jc3MgKi8sCiAJCQkJNzE2RkEwRkQxREIyNjU5MTAwNzMyM0NDIC8qIHRpbWUtbGFiZWwu
anMgKi8sCiAJCQkJNzE2RkEwRkUxREIyNjU5MTAwNzMyM0NDIC8qIHRyYWNrcy1idXR0b24uanMg
Ki8sCi0JCQkJNzE0NkRGOEIxREVGQzJFRDAwNDZGOThCIC8qIHRyYWNrcy1wYW5lbC5jc3MgKi8s
Ci0JCQkJNzE0NkRGOEMxREVGQzJFRDAwNDZGOThCIC8qIHRyYWNrcy1wYW5lbC5qcyAqLywKIAkJ
CQk5NTUxOTU4RTI1RkE5RTMwMDBGNThDRjAgLyogd2F0Y2hvcy1hY3Rpdml0eS1pbmRpY2F0b3Iu
Y3NzICovLAogCQkJCTk1NTE5NThGMjVGQTlFMzEwMEY1OENGMCAvKiB3YXRjaG9zLWFjdGl2aXR5
LWluZGljYXRvci5qcyAqLywKIAkJCQk5NTUxOTU4RDI1RkE5RTMwMDBGNThDRjAgLyogd2F0Y2hv
cy1tZWRpYS1jb250cm9scy5jc3MgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRl
eCA4MWY4MDMwNTYyNzg2MGNmY2E1ODYxNDk0MmZkYzQwMmY5MWU4OTRkLi41NGI3MTQ1ZjZjNjUz
M2EzZmM2MDFmZjM1MzdlMjQ0NWJkYjNjN2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmgKQEAgLTU1OSw5ICs1NTksOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RJ
bWFnZUV4dHJhY3Rpb24oRWxlbWVudCYpIHsgfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVESUFf
Q09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVY
VF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAgICAgdmlydHVhbCB2b2lkIHNob3dNZWRp
YUNvbnRyb2xzQ29udGV4dE1lbnUoRmxvYXRSZWN0JiYsIFZlY3RvcjxNZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnVJdGVtPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE1lZGlhQ29udHJvbHNDb250
ZXh0TWVudUl0ZW06OklEKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxl
cihNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjppbnZhbGlkSUQpOyB9Ci0jZW5kaWYgLy8g
RU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjZW5kaWYgLy8gRU5BQkxFKE1F
RElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogCiBwcm90
ZWN0ZWQ6CiAgICAgdmlydHVhbCB+Q2hyb21lQ2xpZW50KCkgPSBkZWZhdWx0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRleHQuY3BwCmluZGV4IGJjODFkYzBmYjlhZGM1ZDJh
YTljNzhlMjRjZjFiMDE5MmRjODFkMGQuLmFjNDQ2MzFlYWNlZGVkNTE2NzYwZDVhZDIyMGEzMmU3
M2RiNzg2M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udGV4dC5jcHAK
QEAgLTM1LDggKzM1LDkgQEAgQ29udGV4dE1lbnVDb250ZXh0OjpDb250ZXh0TWVudUNvbnRleHQo
KQogewogfQogCi1Db250ZXh0TWVudUNvbnRleHQ6OkNvbnRleHRNZW51Q29udGV4dChjb25zdCBI
aXRUZXN0UmVzdWx0JiBoaXRUZXN0UmVzdWx0KQotICAgIDogbV9oaXRUZXN0UmVzdWx0KGhpdFRl
c3RSZXN1bHQpCitDb250ZXh0TWVudUNvbnRleHQ6OkNvbnRleHRNZW51Q29udGV4dChUeXBlIHR5
cGUsIGNvbnN0IEhpdFRlc3RSZXN1bHQmIGhpdFRlc3RSZXN1bHQpCisgICAgOiBtX3R5cGUodHlw
ZSkKKyAgICAsIG1faGl0VGVzdFJlc3VsdChoaXRUZXN0UmVzdWx0KQogI2lmIEVOQUJMRShTRVJW
SUNFX0NPTlRST0xTKQogICAgICwgbV9jb250cm9sbGVkSW1hZ2UobnVsbHB0cikKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRleHQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250ZXh0LmgKaW5kZXggZTVmMDA1MGIxNzVi
ZjMzMTUzNDBiMDRjMGJkYjRhYWU0Zjc0ZjRhYi4uNjEyNmM1MWFkNTM1YzcwYTYxMzE4ZmI5NWM5
ZGZlMzcwYzkxNDg4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVu
dUNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udGV4dC5o
CkBAIC0zNSw4ICszNSwyMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvbnRleHRN
ZW51Q29udGV4dCB7CiBwdWJsaWM6CisgICAgZW51bSBjbGFzcyBUeXBlIDogdWludDhfdCB7Cisg
ICAgICAgIENvbnRleHRNZW51LAorI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQorICAgICAg
ICBTZXJ2aWNlc01lbnUsCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCisjaWYg
RU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisgICAgICAgIE1lZGlhQ29udHJv
bHMsCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisgICAg
fTsKKwogICAgIENvbnRleHRNZW51Q29udGV4dCgpOwotICAgIENvbnRleHRNZW51Q29udGV4dChj
b25zdCBIaXRUZXN0UmVzdWx0Jik7CisgICAgQ29udGV4dE1lbnVDb250ZXh0KFR5cGUsIGNvbnN0
IEhpdFRlc3RSZXN1bHQmKTsKKworICAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlw
ZTsgfQogCiAgICAgY29uc3QgSGl0VGVzdFJlc3VsdCYgaGl0VGVzdFJlc3VsdCgpIGNvbnN0IHsg
cmV0dXJuIG1faGl0VGVzdFJlc3VsdDsgfQogCkBAIC01Miw2ICs2NCw3IEBAIHB1YmxpYzoKICNl
bmRpZgogCiBwcml2YXRlOgorICAgIFR5cGUgbV90eXBlIHsgVHlwZTo6Q29udGV4dE1lbnUgfTsK
ICAgICBIaXRUZXN0UmVzdWx0IG1faGl0VGVzdFJlc3VsdDsKICAgICBTdHJpbmcgbV9zZWxlY3Rl
ZFRleHQ7CiAgICAgSW50UmVjdCBtX3NlbGVjdGlvbkJvdW5kczsKQEAgLTYzLDQgKzc2LDIxIEBA
IHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorbmFtZXNwYWNlIFdURiB7CisK
K3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6Q29udGV4dE1lbnVDb250ZXh0
OjpUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29y
ZTo6Q29udGV4dE1lbnVDb250ZXh0OjpUeXBlLAorICAgICAgICBXZWJDb3JlOjpDb250ZXh0TWVu
dUNvbnRleHQ6OlR5cGU6OkNvbnRleHRNZW51CisjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMp
CisgICAgICAgICwgV2ViQ29yZTo6Q29udGV4dE1lbnVDb250ZXh0OjpUeXBlOjpTZXJ2aWNlc01l
bnUKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKKyNpZiBFTkFCTEUoTUVESUFf
Q09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyAgICAgICAgLCBXZWJDb3JlOjpDb250ZXh0TWVudUNv
bnRleHQ6OlR5cGU6Ok1lZGlhQ29udHJvbHMKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJP
TFNfQ09OVEVYVF9NRU5VUykKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKICNl
bmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29u
dGV4dE1lbnVDb250cm9sbGVyLmNwcAppbmRleCBkOWJkOWQ4ZWQ0ZDA5YzU0Nzk0NjY5YzBkOWMz
NzEyN2Y4OWU0ODYwLi43ODMxOTMxM2Y0Y2I2YTRlMWFlYjk4ZmM4ZGVkNDg4NTM0ZmEwZjkzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCkBAIC01
MCw3ICs1MCw2IEBACiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCi0jaW5j
bHVkZSAiSGl0VGVzdFJlcXVlc3QuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5j
bHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3Mu
aCIKQEAgLTEwMyw3ICsxMDIsOCBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6aGFuZGxl
Q29udGV4dE1lbnVFdmVudChFdmVudCYgZXZlbnQpCiAKICAgICBTZXRGb3JTY29wZTxib29sPiBp
c0hhbmRsaW5nQ29udGV4dE1lbnVFdmVudEZvclNjb3BlKG1faXNIYW5kbGluZ0NvbnRleHRNZW51
RXZlbnQsIHRydWUpOwogCi0gICAgbV9jb250ZXh0TWVudSA9IG1heWJlQ3JlYXRlQ29udGV4dE1l
bnUoZXZlbnQpOworICAgIGNvbnN0ZXhwciBPcHRpb25TZXQ8SGl0VGVzdFJlcXVlc3Q6OlJlcXVl
c3RUeXBlPiBoaXRUeXBlIHsgSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5LCBIaXRUZXN0UmVxdWVz
dDo6QWN0aXZlLCBIaXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50
LCBIaXRUZXN0UmVxdWVzdDo6QWxsb3dDaGlsZEZyYW1lQ29udGVudCB9OworICAgIG1fY29udGV4
dE1lbnUgPSBtYXliZUNyZWF0ZUNvbnRleHRNZW51KGV2ZW50LCBoaXRUeXBlLCBDb250ZXh0TWVu
dUNvbnRleHQ6OlR5cGU6OkNvbnRleHRNZW51KTsKICAgICBpZiAoIW1fY29udGV4dE1lbnUpCiAg
ICAgICAgIHJldHVybjsKIApAQCAtMTIxLDcgKzEyMSwxMyBAQCB2b2lkIENvbnRleHRNZW51Q29u
dHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2ZW50JiBldmVudCwgQ29udGV4dE1lbnVQcm92aWRl
ciYgcAogewogICAgIG1fbWVudVByb3ZpZGVyID0gJnByb3ZpZGVyOwogCi0gICAgbV9jb250ZXh0
TWVudSA9IG1heWJlQ3JlYXRlQ29udGV4dE1lbnUoZXZlbnQpOworICAgIGF1dG8gY29udGV4dFR5
cGUgPSBwcm92aWRlci5jb250ZXh0TWVudUNvbnRleHRUeXBlKCk7CisKKyAgICBPcHRpb25TZXQ8
SGl0VGVzdFJlcXVlc3Q6OlJlcXVlc3RUeXBlPiBoaXRUeXBlIHsgSGl0VGVzdFJlcXVlc3Q6OlJl
YWRPbmx5LCBIaXRUZXN0UmVxdWVzdDo6QWN0aXZlLCBIaXRUZXN0UmVxdWVzdDo6QWxsb3dDaGls
ZEZyYW1lQ29udGVudCB9OworICAgIGlmIChjb250ZXh0VHlwZSA9PSBDb250ZXh0TWVudUNvbnRl
eHQ6OlR5cGU6OkNvbnRleHRNZW51KQorICAgICAgICBoaXRUeXBlLmFkZChIaXRUZXN0UmVxdWVz
dDo6RGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50KTsKKworICAgIG1fY29udGV4dE1lbnUg
PSBtYXliZUNyZWF0ZUNvbnRleHRNZW51KGV2ZW50LCBXVEZNb3ZlKGhpdFR5cGUpLCBjb250ZXh0
VHlwZSk7CiAgICAgaWYgKCFtX2NvbnRleHRNZW51KSB7CiAgICAgICAgIGNsZWFyQ29udGV4dE1l
bnUoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTM1LDcgKzE0MSw3IEBAIHZvaWQgQ29udGV4dE1l
bnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnUoRXZlbnQmIGV2ZW50LCBDb250ZXh0TWVudVBy
b3ZpZGVyJiBwCiAgICAgc2hvd0NvbnRleHRNZW51KGV2ZW50KTsKIH0KIAotc3RkOjp1bmlxdWVf
cHRyPENvbnRleHRNZW51PiBDb250ZXh0TWVudUNvbnRyb2xsZXI6Om1heWJlQ3JlYXRlQ29udGV4
dE1lbnUoRXZlbnQmIGV2ZW50KQorc3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51PiBDb250ZXh0
TWVudUNvbnRyb2xsZXI6Om1heWJlQ3JlYXRlQ29udGV4dE1lbnUoRXZlbnQmIGV2ZW50LCBPcHRp
b25TZXQ8SGl0VGVzdFJlcXVlc3Q6OlJlcXVlc3RUeXBlPiBoaXRUeXBlLCBDb250ZXh0TWVudUNv
bnRleHQ6OlR5cGUgY29udGV4dFR5cGUpCiB7CiAgICAgaWYgKCFpczxNb3VzZUV2ZW50PihldmVu
dCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMTQ4LDE5ICsxNTQsMTggQEAgc3RkOjp1
bmlxdWVfcHRyPENvbnRleHRNZW51PiBDb250ZXh0TWVudUNvbnRyb2xsZXI6Om1heWJlQ3JlYXRl
Q29udGV4dE1lbnUoRXZlbnQKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAotICAgIGNvbnN0ZXhwciBPcHRpb25TZXQ8SGl0VGVzdFJlcXVlc3Q6OlJlcXVlc3RUeXBl
PiBoaXRUeXBlIHsgSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5LCBIaXRUZXN0UmVxdWVzdDo6QWN0
aXZlLCBIaXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50LCBIaXRU
ZXN0UmVxdWVzdDo6QWxsb3dDaGlsZEZyYW1lQ29udGVudCB9OwotICAgIGF1dG8gcmVzdWx0ID0g
ZnJhbWUtPmV2ZW50SGFuZGxlcigpLmhpdFRlc3RSZXN1bHRBdFBvaW50KG1vdXNlRXZlbnQuYWJz
b2x1dGVMb2NhdGlvbigpLCBoaXRUeXBlKTsKKyAgICBhdXRvIHJlc3VsdCA9IGZyYW1lLT5ldmVu
dEhhbmRsZXIoKS5oaXRUZXN0UmVzdWx0QXRQb2ludChtb3VzZUV2ZW50LmFic29sdXRlTG9jYXRp
b24oKSwgV1RGTW92ZShoaXRUeXBlKSk7CiAgICAgaWYgKCFyZXN1bHQuaW5uZXJOb25TaGFyZWRO
b2RlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgbV9jb250ZXh0ID0gQ29udGV4
dE1lbnVDb250ZXh0KHJlc3VsdCk7CisgICAgbV9jb250ZXh0ID0gQ29udGV4dE1lbnVDb250ZXh0
KGNvbnRleHRUeXBlLCByZXN1bHQpOwogCiAgICAgcmV0dXJuIG1ha2VVbmlxdWU8Q29udGV4dE1l
bnU+KCk7CiB9CiAKIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnUo
RXZlbnQmIGV2ZW50KQogewotICAgIGlmIChtX3BhZ2UuaW5zcGVjdG9yQ29udHJvbGxlcigpLmVu
YWJsZWQoKSkKKyAgICBpZiAoKCFtX21lbnVQcm92aWRlciB8fCBtX21lbnVQcm92aWRlci0+Y29u
dGV4dE1lbnVDb250ZXh0VHlwZSgpID09IENvbnRleHRNZW51Q29udGV4dDo6VHlwZTo6Q29udGV4
dE1lbnUpICYmIG1fcGFnZS5pbnNwZWN0b3JDb250cm9sbGVyKCkuZW5hYmxlZCgpKQogICAgICAg
ICBhZGRJbnNwZWN0RWxlbWVudEl0ZW0oKTsKIAogICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVk
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuaAppbmRleCA0
MDQ3OTM1OGZmYjdlMmZlNTIzNWI2ODQ4MzgwNWQ4NGMyOTBkNjkwLi5jMGNkNDU1MzdkNGZlNTZj
Zjk4MGE1YTI2Y2RiMjg0MGM3ZjQ4OGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NvbnRleHRNZW51Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4
dE1lbnVDb250cm9sbGVyLmgKQEAgLTI5LDEyICsyOSwxNSBAQAogCiAjaW5jbHVkZSAiQ29udGV4
dE1lbnVDb250ZXh0LmgiCiAjaW5jbHVkZSAiQ29udGV4dE1lbnVJdGVtLmgiCisjaW5jbHVkZSAi
SGl0VGVzdFJlcXVlc3QuaCIKKyNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29udGV4dE1lbnVDbGllbnQ7CiBjbGFzcyBDb250ZXh0TWVu
dVByb3ZpZGVyOwogY2xhc3MgRXZlbnQ7CitjbGFzcyBIaXRUZXN0UmVzdWx0OwogY2xhc3MgUGFn
ZTsKIAogY2xhc3MgQ29udGV4dE1lbnVDb250cm9sbGVyIHsKQEAgLTY3LDcgKzcwLDcgQEAgcHVi
bGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgc3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51
PiBtYXliZUNyZWF0ZUNvbnRleHRNZW51KEV2ZW50Jik7CisgICAgc3RkOjp1bmlxdWVfcHRyPENv
bnRleHRNZW51PiBtYXliZUNyZWF0ZUNvbnRleHRNZW51KEV2ZW50JiwgT3B0aW9uU2V0PEhpdFRl
c3RSZXF1ZXN0OjpSZXF1ZXN0VHlwZT4gaGl0VHlwZSwgQ29udGV4dE1lbnVDb250ZXh0OjpUeXBl
KTsKICAgICB2b2lkIHNob3dDb250ZXh0TWVudShFdmVudCYpOwogICAgIAogICAgIHZvaWQgYXBw
ZW5kSXRlbShDb250ZXh0TWVudUl0ZW0mLCBDb250ZXh0TWVudSogcGFyZW50TWVudSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51UHJvdmlkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVQcm92aWRlci5oCmluZGV4IGVmZGM0NzQ2ZDFjOTg2
MTAyNjhmZWIxZThlNWIxZjI0Y2NkMDQwMzEuLjIzYmVkNjg1OTRhYmEyZjQwYjM3NDdhODEzNWQ1
M2JlODE2OWNhYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVQ
cm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVQcm92aWRlci5o
CkBAIC0zMCw2ICszMCw5IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKENPTlRFWFRf
TUVOVVMpCisKKyNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRleHQuaCIKICNpbmNsdWRlICJDb250
ZXh0TWVudUl0ZW0uaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCkBAIC00NCw2ICs0
Nyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcG9wdWxhdGVDb250ZXh0TWVudShDb250
ZXh0TWVudSopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29udGV4dE1lbnVJdGVtU2VsZWN0ZWQo
Q29udGV4dE1lbnVBY3Rpb24sIGNvbnN0IFN0cmluZyYgdGl0bGUpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgY29udGV4dE1lbnVDbGVhcmVkKCkgPSAwOworICAgIHZpcnR1YWwgQ29udGV4dE1lbnVD
b250ZXh0OjpUeXBlIGNvbnRleHRNZW51Q29udGV4dFR5cGUoKSB7IHJldHVybiBDb250ZXh0TWVu
dUNvbnRleHQ6OlR5cGU6OkNvbnRleHRNZW51OyB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRfTUVOVVMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL01lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5oCmluZGV4IDFhMjEzZjNl
YzEzODQ1NzYzMzJiMWJkYzU4NDcxMTYwYzkwNGZmNTAuLjlhYjJlNmE2ZGRiMGRkZTYxODZlMTVh
NGYzNjgzNjI1OTJmNTQ1NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFD
b250cm9sc0NvbnRleHRNZW51SXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFD
b250cm9sc0NvbnRleHRNZW51SXRlbS5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25j
ZQogCi0jaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjaWYgRU5BQkxF
KE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogCiAj
aW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNDAs
NyArNDAsNyBAQCBzdHJ1Y3QgTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbSB7CiAgICAgSUQg
aWQgeyBpbnZhbGlkSUQgfTsKICAgICBTdHJpbmcgdGl0bGU7CiAgICAgU3RyaW5nIGljb247Ci0g
ICAgYm9vbCBpc0NoZWNrZWQgeyBmYWxzZSB9OworICAgIGJvb2wgY2hlY2tlZCB7IGZhbHNlIH07
CiAgICAgVmVjdG9yPE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0+IGNoaWxkcmVuOwogCiAg
ICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwpA
QCAtNTMsNyArNTMsNyBAQCB2b2lkIE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgaWQ7CiAgICAgZW5jb2Rl
ciA8PCB0aXRsZTsKICAgICBlbmNvZGVyIDw8IGljb247Ci0gICAgZW5jb2RlciA8PCBpc0NoZWNr
ZWQ7CisgICAgZW5jb2RlciA8PCBjaGVja2VkOwogICAgIGVuY29kZXIgPDwgY2hpbGRyZW47CiB9
CiAKQEAgLTY5LDE0ICs2OSwxNCBAQCBPcHRpb25hbDxNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJ
dGVtPiBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpkZWNvZGUoRGVjbwogICAgIERFQ09E
RShpZCwgSUQpOwogICAgIERFQ09ERSh0aXRsZSwgU3RyaW5nKTsKICAgICBERUNPREUoaWNvbiwg
U3RyaW5nKTsKLSAgICBERUNPREUoaXNDaGVja2VkLCBib29sKTsKKyAgICBERUNPREUoY2hlY2tl
ZCwgYm9vbCk7CiAgICAgREVDT0RFKGNoaWxkcmVuLCBWZWN0b3I8TWVkaWFDb250cm9sc0NvbnRl
eHRNZW51SXRlbT4pOwogCiAjdW5kZWYgREVDT0RFCiAKLSAgICByZXR1cm4ge3sgV1RGTW92ZSgq
aWQpLCBXVEZNb3ZlKCp0aXRsZSksIFdURk1vdmUoKmljb24pLCBXVEZNb3ZlKCppc0NoZWNrZWQp
LCBXVEZNb3ZlKCpjaGlsZHJlbikgfX07CisgICAgcmV0dXJuIHt7IFdURk1vdmUoKmlkKSwgV1RG
TW92ZSgqdGl0bGUpLCBXVEZNb3ZlKCppY29uKSwgV1RGTW92ZSgqY2hlY2tlZCksIFdURk1vdmUo
KmNoaWxkcmVuKSB9fTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8g
RU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjZW5kaWYgLy8gRU5BQkxFKE1F
RElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5jcHAKaW5kZXggNWFlMDI1ZTkxODBj
NWRmYjIxOTYyZTE3ZjE5ZTY3MDRkNWQ2ZDQyNS4uMDY5NTYyZDIzY2M5Y2M0OWI2Nzk5OTc0ZWRk
YzNkYTNjNmZiNThhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4
dE1lbnVJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0
ZW0uY3BwCkBAIC0zOCwyNiArMzgsMjkgQEAgQ29udGV4dE1lbnVJdGVtOjpDb250ZXh0TWVudUl0
ZW0oQ29udGV4dE1lbnVJdGVtVHlwZSB0eXBlLCBDb250ZXh0TWVudUFjdGlvbiBhY3QKICAgICAs
IG1fdGl0bGUodGl0bGUpCiAgICAgLCBtX2VuYWJsZWQodHJ1ZSkKICAgICAsIG1fY2hlY2tlZChm
YWxzZSkKKyAgICAsIG1faW5kZW50YXRpb25MZXZlbCgwKQogewogICAgIGlmIChzdWJNZW51KQog
ICAgICAgICBzZXRTdWJNZW51KHN1Yk1lbnUpOwogfQogCi1Db250ZXh0TWVudUl0ZW06OkNvbnRl
eHRNZW51SXRlbShDb250ZXh0TWVudUl0ZW1UeXBlIHR5cGUsIENvbnRleHRNZW51QWN0aW9uIGFj
dGlvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgYm9vbCBlbmFibGVkLCBib29sIGNoZWNrZWQpCitD
b250ZXh0TWVudUl0ZW06OkNvbnRleHRNZW51SXRlbShDb250ZXh0TWVudUl0ZW1UeXBlIHR5cGUs
IENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgYm9vbCBlbmFi
bGVkLCBib29sIGNoZWNrZWQsIHVuc2lnbmVkIGluZGVudGF0aW9uTGV2ZWwpCiAgICAgOiBtX3R5
cGUodHlwZSkKICAgICAsIG1fYWN0aW9uKGFjdGlvbikKICAgICAsIG1fdGl0bGUodGl0bGUpCiAg
ICAgLCBtX2VuYWJsZWQoZW5hYmxlZCkKICAgICAsIG1fY2hlY2tlZChjaGVja2VkKQorICAgICwg
bV9pbmRlbnRhdGlvbkxldmVsKGluZGVudGF0aW9uTGV2ZWwpCiB7CiB9CiAgICAgICAgIAotQ29u
dGV4dE1lbnVJdGVtOjpDb250ZXh0TWVudUl0ZW0oQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uLCBj
b25zdCBTdHJpbmcmIHRpdGxlLCBib29sIGVuYWJsZWQsIGJvb2wgY2hlY2tlZCwgY29uc3QgVmVj
dG9yPENvbnRleHRNZW51SXRlbT4mIHN1Yk1lbnVJdGVtcykKK0NvbnRleHRNZW51SXRlbTo6Q29u
dGV4dE1lbnVJdGVtKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY29uc3QgU3RyaW5nJiB0aXRs
ZSwgYm9vbCBlbmFibGVkLCBib29sIGNoZWNrZWQsIGNvbnN0IFZlY3RvcjxDb250ZXh0TWVudUl0
ZW0+JiBzdWJNZW51SXRlbXMsIHVuc2lnbmVkIGluZGVudGF0aW9uTGV2ZWwpCiAgICAgOiBtX3R5
cGUoU3VibWVudVR5cGUpCiAgICAgLCBtX2FjdGlvbihhY3Rpb24pCiAgICAgLCBtX3RpdGxlKHRp
dGxlKQogICAgICwgbV9lbmFibGVkKGVuYWJsZWQpCiAgICAgLCBtX2NoZWNrZWQoY2hlY2tlZCkK
KyAgICAsIG1faW5kZW50YXRpb25MZXZlbChpbmRlbnRhdGlvbkxldmVsKQogICAgICwgbV9zdWJN
ZW51SXRlbXMoc3ViTWVudUl0ZW1zKQogewogfQpAQCAtNjcsNiArNzAsNyBAQCBDb250ZXh0TWVu
dUl0ZW06OkNvbnRleHRNZW51SXRlbSgpCiAgICAgLCBtX2FjdGlvbihDb250ZXh0TWVudUl0ZW1U
YWdOb0FjdGlvbikKICAgICAsIG1fZW5hYmxlZChmYWxzZSkKICAgICAsIG1fY2hlY2tlZChmYWxz
ZSkKKyAgICAsIG1faW5kZW50YXRpb25MZXZlbCgwKQogewogfQogCkBAIC0xMDksNiArMTEzLDE2
IEBAIENvbnRleHRNZW51QWN0aW9uIENvbnRleHRNZW51SXRlbTo6YWN0aW9uKCkgY29uc3QKICAg
ICByZXR1cm4gbV9hY3Rpb247CiB9CiAKK3ZvaWQgQ29udGV4dE1lbnVJdGVtOjpzZXRJbmRlbnRh
dGlvbkxldmVsKHVuc2lnbmVkIGluZGVudGF0aW9uTGV2ZWwpCit7CisgICAgbV9pbmRlbnRhdGlv
bkxldmVsID0gaW5kZW50YXRpb25MZXZlbDsKK30KKwordW5zaWduZWQgQ29udGV4dE1lbnVJdGVt
OjppbmRlbnRhdGlvbkxldmVsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pbmRlbnRhdGlvbkxl
dmVsOworfQorCiB2b2lkIENvbnRleHRNZW51SXRlbTo6c2V0Q2hlY2tlZChib29sIGNoZWNrZWQp
CiB7CiAgICAgbV9jaGVja2VkID0gY2hlY2tlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29u
dGV4dE1lbnVJdGVtLmgKaW5kZXggZGExYTBhZTcyYmEzNDJhMzM5Y2ExMzExY2E3Zjk1NmJjOGFi
M2ExNS4uYWM2ZTlkNjc5MDgyM2ZhZmM3NDIxYmE4NDA0OTM0YjBkNmRmZTRkYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKQEAgLTE2Nyw3ICsxNjcsNyBAQCBj
bGFzcyBDb250ZXh0TWVudUl0ZW0gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgogICAgIFdFQkNPUkVfRVhQT1JUIENvbnRleHRNZW51SXRlbShDb250ZXh0TWVudUl0ZW1U
eXBlLCBDb250ZXh0TWVudUFjdGlvbiwgY29uc3QgU3RyaW5nJiwgQ29udGV4dE1lbnUqIHN1Yk1l
bnUgPSAwKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBDb250ZXh0TWVudUl0ZW0oQ29udGV4dE1lbnVJ
dGVtVHlwZSwgQ29udGV4dE1lbnVBY3Rpb24sIGNvbnN0IFN0cmluZyYsIGJvb2wgZW5hYmxlZCwg
Ym9vbCBjaGVja2VkKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBDb250ZXh0TWVudUl0ZW0oQ29udGV4
dE1lbnVJdGVtVHlwZSwgQ29udGV4dE1lbnVBY3Rpb24sIGNvbnN0IFN0cmluZyYsIGJvb2wgZW5h
YmxlZCwgYm9vbCBjaGVja2VkLCB1bnNpZ25lZCBpbmRlbnRhdGlvbkxldmVsID0gMCk7CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB+Q29udGV4dE1lbnVJdGVtKCk7CiAKQEAgLTE4Myw5ICsxODMsMTIg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0RW5hYmxlZChib29sID0gdHJ1ZSk7CiAgICAgV0VCQ09S
RV9FWFBPUlQgYm9vbCBlbmFibGVkKCkgY29uc3Q7CiAKKyAgICB2b2lkIHNldEluZGVudGF0aW9u
TGV2ZWwodW5zaWduZWQpOworICAgIFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkIGluZGVudGF0aW9u
TGV2ZWwoKSBjb25zdDsKKwogICAgIHZvaWQgc2V0U3ViTWVudShDb250ZXh0TWVudSopOwogCi0g
ICAgV0VCQ09SRV9FWFBPUlQgQ29udGV4dE1lbnVJdGVtKENvbnRleHRNZW51QWN0aW9uLCBjb25z
dCBTdHJpbmcmLCBib29sIGVuYWJsZWQsIGJvb2wgY2hlY2tlZCwgY29uc3QgVmVjdG9yPENvbnRl
eHRNZW51SXRlbT4mIHN1Yk1lbnVJdGVtcyk7CisgICAgV0VCQ09SRV9FWFBPUlQgQ29udGV4dE1l
bnVJdGVtKENvbnRleHRNZW51QWN0aW9uLCBjb25zdCBTdHJpbmcmLCBib29sIGVuYWJsZWQsIGJv
b2wgY2hlY2tlZCwgY29uc3QgVmVjdG9yPENvbnRleHRNZW51SXRlbT4mIHN1Yk1lbnVJdGVtcywg
dW5zaWduZWQgaW5kZW50YXRpb25MZXZlbCA9IDApOwogICAgIENvbnRleHRNZW51SXRlbSgpOwog
CiAgICAgYm9vbCBpc051bGwoKSBjb25zdDsKQEAgLTIwMCw2ICsyMDMsNyBAQCBwcml2YXRlOgog
ICAgIFN0cmluZyBtX3RpdGxlOwogICAgIGJvb2wgbV9lbmFibGVkOwogICAgIGJvb2wgbV9jaGVj
a2VkOworICAgIHVuc2lnbmVkIG1faW5kZW50YXRpb25MZXZlbDsKICAgICBWZWN0b3I8Q29udGV4
dE1lbnVJdGVtPiBtX3N1Yk1lbnVJdGVtczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZU1hYy5tbQppbmRleCA0NjNlYmEwNmNkMjk5MWZhZmYxN2EzNGMxZWQwOTdi
MWQ3MWUxYmY4Li5mMTU0YjVmNWEzZDczZTUwNzgxN2NiOTBiNjg4OWYxMDVlNzVkMzczIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC05NSw2ICs5NSwx
MCBAQAogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAKKyNpZiBVU0UoQVBQ
TEVfSU5URVJOQUxfU0RLKQorI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9SZW5kZXJUaGVtZU1h
Y0FkZGl0aW9ucy5jcHA+CisjZW5kaWYKKwogLy8gRklYTUU6IFRoaXMgc2hvdWxkIGdvIGludG8g
YW4gU1BJLmggZmlsZSBpbiB0aGUgc3BpIGRpcmVjdG9yeS4KIEBpbnRlcmZhY2UgTlNUZXh0Rmll
bGRDZWxsICgpCiAtIChDRkRpY3Rpb25hcnlSZWYpX2NvcmVVSURyYXdPcHRpb25zV2l0aEZyYW1l
OihOU1JlY3QpY2VsbEZyYW1lIGluVmlldzooTlNWaWV3ICopY29udHJvbFZpZXcgaW5jbHVkZUZv
Y3VzOihCT09MKWluY2x1ZGVGb2N1czsKQEAgLTMyNCw5ICszMjgsMTQgQEAgU3RyaW5nIFJlbmRl
clRoZW1lTWFjOjptZWRpYUNvbnRyb2xzU2NyaXB0KCkKICAgICBpZiAoUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5tb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxlZCgpKSB7
CiAgICAgICAgIGlmIChtX21lZGlhQ29udHJvbHNTY3JpcHQuaXNFbXB0eSgpKSB7CiAgICAgICAg
ICAgICBOU0J1bmRsZSAqYnVuZGxlID0gW05TQnVuZGxlIGJ1bmRsZUZvckNsYXNzOltXZWJDb3Jl
UmVuZGVyVGhlbWVCdW5kbGUgY2xhc3NdXTsKLSAgICAgICAgICAgIE5TU3RyaW5nICpsb2NhbGl6
ZWRTdHJpbmdzID0gW05TU3RyaW5nIHN0cmluZ1dpdGhDb250ZW50c09mRmlsZTpbYnVuZGxlIHBh
dGhGb3JSZXNvdXJjZTpAIm1vZGVybi1tZWRpYS1jb250cm9scy1sb2NhbGl6ZWQtc3RyaW5ncyIg
b2ZUeXBlOkAianMiXSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZyBlcnJvcjpuaWxdOwot
ICAgICAgICAgICAgTlNTdHJpbmcgKnNjcmlwdCA9IFtOU1N0cmluZyBzdHJpbmdXaXRoQ29udGVu
dHNPZkZpbGU6W2J1bmRsZSBwYXRoRm9yUmVzb3VyY2U6QCJtb2Rlcm4tbWVkaWEtY29udHJvbHMi
IG9mVHlwZTpAImpzIiBpbkRpcmVjdG9yeTpAIm1vZGVybi1tZWRpYS1jb250cm9scyJdIGVuY29k
aW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nIGVycm9yOm5pbF07Ci0gICAgICAgICAgICBtX21lZGlh
Q29udHJvbHNTY3JpcHQgPSBtYWtlU3RyaW5nKFN0cmluZyB7IGxvY2FsaXplZFN0cmluZ3MgfSwg
U3RyaW5nIHsgc2NyaXB0IH0pOworCisgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIHNjcmlwdEJ1
aWxkZXI7CisgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZChbTlNTdHJpbmcgc3RyaW5n
V2l0aENvbnRlbnRzT2ZGaWxlOltidW5kbGUgcGF0aEZvclJlc291cmNlOkAibW9kZXJuLW1lZGlh
LWNvbnRyb2xzLWxvY2FsaXplZC1zdHJpbmdzIiBvZlR5cGU6QCJqcyJdIGVuY29kaW5nOk5TVVRG
OFN0cmluZ0VuY29kaW5nIGVycm9yOm5pbF0pOworICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5h
cHBlbmQoW05TU3RyaW5nIHN0cmluZ1dpdGhDb250ZW50c09mRmlsZTpbYnVuZGxlIHBhdGhGb3JS
ZXNvdXJjZTpAIm1vZGVybi1tZWRpYS1jb250cm9scyIgb2ZUeXBlOkAianMiIGluRGlyZWN0b3J5
OkAibW9kZXJuLW1lZGlhLWNvbnRyb2xzIl0gZW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2Rpbmcg
ZXJyb3I6bmlsXSk7CisjaWYgZGVmaW5lZChSZW5kZXJUaGVtZU1hY0FkZGl0aW9uc19tZWRpYUNv
bnRyb2xzU2NyaXB0KQorICAgICAgICAgICAgUmVuZGVyVGhlbWVNYWNBZGRpdGlvbnNfbWVkaWFD
b250cm9sc1NjcmlwdAorI2VuZGlmCisgICAgICAgICAgICBtX21lZGlhQ29udHJvbHNTY3JpcHQg
PSBzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1f
bWVkaWFDb250cm9sc1NjcmlwdDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Db250ZXh0TWVudUNvbnRleHREYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nv
bnRleHRNZW51Q29udGV4dERhdGEuY3BwCmluZGV4IDg1ZjY1NDdhYTRjNzQ0Y2RjN2Q2MTAwODU1
NDY0ZmNjYjRjZTBkMDkuLjhiMDNhOGZhNDc1MDM3ZTQ2NjExOGM3ZjU5ZjAyYTFhYzAyNmEwZWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuY3Bw
CkBAIC0zMCw3ICszMCw2IEBACiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAKICNpbmNsdWRl
ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0NvbnRleHRNZW51
Q29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewpAQCAtNDYsOSArNDUsOSBAQCBDb250ZXh0TWVudUNvbnRleHREYXRhOjpD
b250ZXh0TWVudUNvbnRleHREYXRhKCkKIAogQ29udGV4dE1lbnVDb250ZXh0RGF0YTo6Q29udGV4
dE1lbnVDb250ZXh0RGF0YShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbWVudUxvY2F0aW9uLCBj
b25zdCBWZWN0b3I8V2ViS2l0OjpXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgbWVudUl0ZW1zLCBj
b25zdCBDb250ZXh0TWVudUNvbnRleHQmIGNvbnRleHQpCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09O
VFJPTFMpCi0gICAgOiBtX3R5cGUoY29udGV4dC5jb250cm9sbGVkSW1hZ2UoKSA/IFR5cGU6OlNl
cnZpY2VzTWVudSA6IFR5cGU6OkNvbnRleHRNZW51KQorICAgIDogbV90eXBlKGNvbnRleHQuY29u
dHJvbGxlZEltYWdlKCkgPyBUeXBlOjpTZXJ2aWNlc01lbnUgOiBjb250ZXh0LnR5cGUoKSkKICNl
bHNlCi0gICAgOiBtX3R5cGUoVHlwZTo6Q29udGV4dE1lbnUpCisgICAgOiBtX3R5cGUoY29udGV4
dC50eXBlKCkpCiAjZW5kaWYKICAgICAsIG1fbWVudUxvY2F0aW9uKG1lbnVMb2NhdGlvbikKICAg
ICAsIG1fbWVudUl0ZW1zKG1lbnVJdGVtcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRl
eHRNZW51Q29udGV4dERhdGEuaAppbmRleCAxZDk1OWE2ODY5OGE5OTJjZDhkOTcyZDMyYTk4ZDZj
MDA3MzU0NDA0Li40ZjdiN2E2MzFmYzU3MjQ5ZGNhNzNkMmNhOTljZGEwYzM4M2FkY2I4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db250ZXh0TWVudUNvbnRleHREYXRhLmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5oCkBAIC0yOCw5
ICsyOCw5IEBACiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKIAotI2luY2x1ZGUgIlNoYXJl
YWJsZUJpdG1hcC5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51SXRlbURhdGEuaCIKICNpbmNs
dWRlICJXZWJIaXRUZXN0UmVzdWx0RGF0YS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ29udGV4dE1l
bnVDb250ZXh0Lmg+CiAjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAogbmFtZXNwYWNlIElQ
QyB7CkBAIC0zOCwxOCArMzgsMTEgQEAgY2xhc3MgRGVjb2RlcjsKIGNsYXNzIEVuY29kZXI7CiB9
CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIENvbnRleHRNZW51Q29udGV4dDsKLX0KLQog
bmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIENvbnRleHRNZW51Q29udGV4dERhdGEgewogcHVi
bGljOgotICAgIGVudW0gY2xhc3MgVHlwZSA6IGJvb2wgewotICAgICAgICBDb250ZXh0TWVudSwK
LSAgICAgICAgU2VydmljZXNNZW51LAotICAgIH07CisgICAgdXNpbmcgVHlwZSA9IFdlYkNvcmU6
OkNvbnRleHRNZW51Q29udGV4dDo6VHlwZTsKIAogICAgIENvbnRleHRNZW51Q29udGV4dERhdGEo
KTsKICAgICBDb250ZXh0TWVudUNvbnRleHREYXRhKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBt
ZW51TG9jYXRpb24sIGNvbnN0IFZlY3RvcjxXZWJLaXQ6OldlYkNvbnRleHRNZW51SXRlbURhdGE+
JiBtZW51SXRlbXMsIGNvbnN0IFdlYkNvcmU6OkNvbnRleHRNZW51Q29udGV4dCYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcAppbmRleCA4OTQ2
YzM1NTE1MjNkODU2MzRkOTY5ZDQ0Mzk4N2NlZDk2MmIzNmE4Li4wYzVkYzc5NTZhOGUzMTY2NDA4
YjAwMmUwMDVmN2I1NGI3MDY1ZWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b250ZXh0TWVudUl0ZW1EYXRhLmNwcApAQCAtNDIsMjUgKzQyLDI4IEBAIFdlYkNvbnRleHRNZW51
SXRlbURhdGE6OldlYkNvbnRleHRNZW51SXRlbURhdGEoKQogICAgICwgbV9hY3Rpb24oV2ViQ29y
ZTo6Q29udGV4dE1lbnVJdGVtVGFnTm9BY3Rpb24pCiAgICAgLCBtX2VuYWJsZWQodHJ1ZSkKICAg
ICAsIG1fY2hlY2tlZChmYWxzZSkKKyAgICAsIG1faW5kZW50YXRpb25MZXZlbCgwKQogewogfQog
Ci1XZWJDb250ZXh0TWVudUl0ZW1EYXRhOjpXZWJDb250ZXh0TWVudUl0ZW1EYXRhKFdlYkNvcmU6
OkNvbnRleHRNZW51SXRlbVR5cGUgdHlwZSwgV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24gYWN0
aW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBib29sIGVuYWJsZWQsIGJvb2wgY2hlY2tlZCkKK1dl
YkNvbnRleHRNZW51SXRlbURhdGE6OldlYkNvbnRleHRNZW51SXRlbURhdGEoV2ViQ29yZTo6Q29u
dGV4dE1lbnVJdGVtVHlwZSB0eXBlLCBXZWJDb3JlOjpDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24s
IGNvbnN0IFN0cmluZyYgdGl0bGUsIGJvb2wgZW5hYmxlZCwgYm9vbCBjaGVja2VkLCB1bnNpZ25l
ZCBpbmRlbnRhdGlvbkxldmVsKQogICAgIDogbV90eXBlKHR5cGUpCiAgICAgLCBtX2FjdGlvbihh
Y3Rpb24pCiAgICAgLCBtX3RpdGxlKHRpdGxlKQogICAgICwgbV9lbmFibGVkKGVuYWJsZWQpCiAg
ICAgLCBtX2NoZWNrZWQoY2hlY2tlZCkKKyAgICAsIG1faW5kZW50YXRpb25MZXZlbChpbmRlbnRh
dGlvbkxldmVsKQogewogICAgIEFTU0VSVCh0eXBlID09IFdlYkNvcmU6OkFjdGlvblR5cGUgfHwg
dHlwZSA9PSBXZWJDb3JlOjpDaGVja2FibGVBY3Rpb25UeXBlIHx8IHR5cGUgPT0gV2ViQ29yZTo6
U2VwYXJhdG9yVHlwZSk7CiB9CiAKLVdlYkNvbnRleHRNZW51SXRlbURhdGE6OldlYkNvbnRleHRN
ZW51SXRlbURhdGEoV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24gYWN0aW9uLCBjb25zdCBTdHJp
bmcmIHRpdGxlLCBib29sIGVuYWJsZWQsIGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1E
YXRhPiYgc3VibWVudSkKK1dlYkNvbnRleHRNZW51SXRlbURhdGE6OldlYkNvbnRleHRNZW51SXRl
bURhdGEoV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24gYWN0aW9uLCBjb25zdCBTdHJpbmcmIHRp
dGxlLCBib29sIGVuYWJsZWQsIGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYg
c3VibWVudSwgdW5zaWduZWQgaW5kZW50YXRpb25MZXZlbCkKICAgICA6IG1fdHlwZShXZWJDb3Jl
OjpTdWJtZW51VHlwZSkKICAgICAsIG1fYWN0aW9uKGFjdGlvbikKICAgICAsIG1fdGl0bGUodGl0
bGUpCiAgICAgLCBtX2VuYWJsZWQoZW5hYmxlZCkKICAgICAsIG1fY2hlY2tlZChmYWxzZSkKKyAg
ICAsIG1faW5kZW50YXRpb25MZXZlbChpbmRlbnRhdGlvbkxldmVsKQogICAgICwgbV9zdWJtZW51
KHN1Ym1lbnUpCiB7CiB9CkBAIC03NywxNSArODAsMTYgQEAgV2ViQ29udGV4dE1lbnVJdGVtRGF0
YTo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YShjb25zdCBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0m
IGkKICAgICAKICAgICBtX2VuYWJsZWQgPSBpdGVtLmVuYWJsZWQoKTsKICAgICBtX2NoZWNrZWQg
PSBpdGVtLmNoZWNrZWQoKTsKKyAgICBtX2luZGVudGF0aW9uTGV2ZWwgPSBpdGVtLmluZGVudGF0
aW9uTGV2ZWwoKTsKIH0KIAogQ29udGV4dE1lbnVJdGVtIFdlYkNvbnRleHRNZW51SXRlbURhdGE6
OmNvcmUoKSBjb25zdAogewogICAgIGlmIChtX3R5cGUgIT0gU3VibWVudVR5cGUpCi0gICAgICAg
IHJldHVybiBDb250ZXh0TWVudUl0ZW0obV90eXBlLCBtX2FjdGlvbiwgbV90aXRsZSwgbV9lbmFi
bGVkLCBtX2NoZWNrZWQpOworICAgICAgICByZXR1cm4gQ29udGV4dE1lbnVJdGVtKG1fdHlwZSwg
bV9hY3Rpb24sIG1fdGl0bGUsIG1fZW5hYmxlZCwgbV9jaGVja2VkLCBtX2luZGVudGF0aW9uTGV2
ZWwpOwogICAgIAogICAgIFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+IHN1Yk1lbnVJdGVtcyA9IGNv
cmVJdGVtcyhtX3N1Ym1lbnUpOwotICAgIHJldHVybiBDb250ZXh0TWVudUl0ZW0obV9hY3Rpb24s
IG1fdGl0bGUsIG1fZW5hYmxlZCwgbV9jaGVja2VkLCBzdWJNZW51SXRlbXMpOworICAgIHJldHVy
biBDb250ZXh0TWVudUl0ZW0obV9hY3Rpb24sIG1fdGl0bGUsIG1fZW5hYmxlZCwgbV9jaGVja2Vk
LCBzdWJNZW51SXRlbXMsIG1faW5kZW50YXRpb25MZXZlbCk7CiB9CiAKIEFQSTo6T2JqZWN0KiBX
ZWJDb250ZXh0TWVudUl0ZW1EYXRhOjp1c2VyRGF0YSgpIGNvbnN0CkBAIC0xMDUsNiArMTA5LDcg
QEAgdm9pZCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbV90aXRsZTsKICAgICBlbmNvZGVyIDw8IG1fY2hl
Y2tlZDsKICAgICBlbmNvZGVyIDw8IG1fZW5hYmxlZDsKKyAgICBlbmNvZGVyIDw8IG1faW5kZW50
YXRpb25MZXZlbDsKICAgICBlbmNvZGVyIDw8IG1fc3VibWVudTsKIH0KIApAQCAtMTMwLDYgKzEz
NSwxMCBAQCBPcHRpb25hbDxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiBXZWJDb250ZXh0TWVudUl0
ZW1EYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
ZW5hYmxlZCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKKyAgICB1bnNpZ25lZCBp
bmRlbnRhdGlvbkxldmVsOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5kZW50YXRpb25MZXZl
bCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKICAgICBPcHRpb25hbDxWZWN0b3I8
V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4+IHN1Ym1lbnU7CiAgICAgZGVjb2RlciA+PiBzdWJtZW51
OwogICAgIGlmICghc3VibWVudSkKQEAgLTEzOSwxMCArMTQ4LDEwIEBAIE9wdGlvbmFsPFdlYkNv
bnRleHRNZW51SXRlbURhdGE+IFdlYkNvbnRleHRNZW51SXRlbURhdGE6OmRlY29kZShJUEM6OkRl
Y29kZXImIGRlCiAgICAgY2FzZSBXZWJDb3JlOjpBY3Rpb25UeXBlOgogICAgIGNhc2UgV2ViQ29y
ZTo6U2VwYXJhdG9yVHlwZToKICAgICBjYXNlIFdlYkNvcmU6OkNoZWNrYWJsZUFjdGlvblR5cGU6
Ci0gICAgICAgIHJldHVybiB7eyB0eXBlLCBhY3Rpb24sIHRpdGxlLCBlbmFibGVkLCBjaGVja2Vk
IH19OworICAgICAgICByZXR1cm4ge3sgdHlwZSwgYWN0aW9uLCB0aXRsZSwgZW5hYmxlZCwgY2hl
Y2tlZCwgaW5kZW50YXRpb25MZXZlbCB9fTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJD
b3JlOjpTdWJtZW51VHlwZToKLSAgICAgICAgcmV0dXJuIHt7IGFjdGlvbiwgdGl0bGUsIGVuYWJs
ZWQsIFdURk1vdmUoKnN1Ym1lbnUpIH19OworICAgICAgICByZXR1cm4ge3sgYWN0aW9uLCB0aXRs
ZSwgZW5hYmxlZCwgV1RGTW92ZSgqc3VibWVudSksIGluZGVudGF0aW9uTGV2ZWwgfX07CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuaAppbmRleCA0NWUzMWFlMzMzYTdi
N2E1OWZmNGMxNWQ4ZjVjOTNmYmM5MmU5NDQ1Li4xNTQyNzgyYTI3MjA3MDFhOWQzYmRhNDllZWUw
YzU0MDNjNWMwMWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb250ZXh0
TWVudUl0ZW1EYXRhLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29udGV4dE1lbnVJ
dGVtRGF0YS5oCkBAIC00NSwxNCArNDUsMTUgQEAgY2xhc3MgV2ViQ29udGV4dE1lbnVJdGVtRGF0
YSB7CiBwdWJsaWM6CiAgICAgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSgpOwogICAgIFdlYkNvbnRl
eHRNZW51SXRlbURhdGEoY29uc3QgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtJik7Ci0gICAgV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YShXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UeXBlLCBXZWJDb3Jl
OjpDb250ZXh0TWVudUFjdGlvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgYm9vbCBlbmFibGVkLCBi
b29sIGNoZWNrZWQpOwotICAgIFdlYkNvbnRleHRNZW51SXRlbURhdGEoV2ViQ29yZTo6Q29udGV4
dE1lbnVBY3Rpb24sIGNvbnN0IFN0cmluZyYgdGl0bGUsIGJvb2wgZW5hYmxlZCwgY29uc3QgVmVj
dG9yPFdlYkNvbnRleHRNZW51SXRlbURhdGE+JiBzdWJtZW51KTsKKyAgICBXZWJDb250ZXh0TWVu
dUl0ZW1EYXRhKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVR5cGUsIFdlYkNvcmU6OkNvbnRleHRN
ZW51QWN0aW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBib29sIGVuYWJsZWQsIGJvb2wgY2hlY2tl
ZCwgdW5zaWduZWQgaW5kZW50YXRpb25MZXZlbCA9IDApOworICAgIFdlYkNvbnRleHRNZW51SXRl
bURhdGEoV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24sIGNvbnN0IFN0cmluZyYgdGl0bGUsIGJv
b2wgZW5hYmxlZCwgY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbURhdGE+JiBzdWJtZW51
LCB1bnNpZ25lZCBpbmRlbnRhdGlvbkxldmVsID0gMCk7CiAKICAgICBXZWJDb3JlOjpDb250ZXh0
TWVudUl0ZW1UeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KICAgICBXZWJDb3Jl
OjpDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2FjdGlvbjsgfQog
ICAgIGNvbnN0IFN0cmluZyYgdGl0bGUoKSBjb25zdCB7IHJldHVybiBtX3RpdGxlOyB9CiAgICAg
Ym9vbCBlbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9lbmFibGVkOyB9CiAgICAgYm9vbCBjaGVj
a2VkKCkgY29uc3QgeyByZXR1cm4gbV9jaGVja2VkOyB9CisgICAgdW5zaWduZWQgaW5kZW50YXRp
b25MZXZlbCgpIGNvbnN0IHsgcmV0dXJuIG1faW5kZW50YXRpb25MZXZlbDsgfQogICAgIGNvbnN0
IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgc3VibWVudSgpIGNvbnN0IHsgcmV0dXJu
IG1fc3VibWVudTsgfQogICAgIAogICAgIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbSBjb3JlKCkg
Y29uc3Q7CkBAIC02OSw2ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fdGl0bGU7CiAg
ICAgYm9vbCBtX2VuYWJsZWQ7CiAgICAgYm9vbCBtX2NoZWNrZWQ7CisgICAgdW5zaWduZWQgbV9p
bmRlbnRhdGlvbkxldmVsOwogICAgIFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiBtX3N1
Ym1lbnU7CiAgICAgUmVmUHRyPEFQSTo6T2JqZWN0PiBtX3VzZXJEYXRhOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9y
VGVzdGluZy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGVGb3JUZXN0aW5nLmgKaW5kZXggNjJlNDY3MTQ0ZTkxOTRlYjBhNjgyYTA4YTI4NGQ1OTVm
OTVlM2Q5OC4uY2E0NTk5NmE3OGRlMjhhOTcyOTk1YTMxYmM0NTNhNzhmNGViOTUzNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVG
b3JUZXN0aW5nLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld1ByaXZhdGVGb3JUZXN0aW5nLmgKQEAgLTYzLDYgKzYzLDkgQEAgc3RydWN0IFdLQXBwQm91
bmROYXZpZ2F0aW9uVGVzdGluZ0RhdGEgewogCiAtICh2b2lkKV9zZXRTaGFyZVNoZWV0Q29tcGxl
dGVzSW1tZWRpYXRlbHlXaXRoUmVzb2x1dGlvbkZvclRlc3Rpbmc6KEJPT0wpcmVzb2x2ZWQ7CiAK
Ky0gKHZvaWQpX2RpZFNob3dDb250ZXh0TWVudTsKKy0gKHZvaWQpX2RpZERpc21pc3NDb250ZXh0
TWVudTsKKwogLSAodm9pZClfZGlkUHJlc2VudENvbnRhY3RQaWNrZXI7CiAtICh2b2lkKV9kaWRE
aXNtaXNzQ29udGFjdFBpY2tlcjsKIC0gKHZvaWQpX2Rpc21pc3NDb250YWN0UGlja2VyV2l0aENv
bnRhY3RzOihOU0FycmF5ICopY29udGFjdHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCmluZGV4IGFkMDg0ZDUyZjJiODZl
ZjcwNDExZmZmNWI3YzdjNGNjMGRmN2JjNzQuLjU0MjYwNjBiMjUwYWYzY2EzYzZiODRkZWUxYmM1
ZDU5NTUzOGQyOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdUZXN0aW5nLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCkBAIC03MSw2ICs3MSw5IEBAIC0gKE5TRGljdGlvbmFy
eSAqKV9jb250ZW50c09mVXNlckludGVyZmFjZUl0ZW06KE5TU3RyaW5nICopdXNlckludGVyZmFj
ZUl0ZW0KICAgICAgICAgcmV0dXJuIEB7IHVzZXJJbnRlcmZhY2VJdGVtOiBAeyBAIm1lc3NhZ2Ui
OiAoTlNTdHJpbmcgKiltZXNzYWdlLCBAImZvbnRTaXplIjogQChmb250U2l6ZSkgfSB9OwogICAg
IH0KIAorICAgIGlmIChOU0RpY3Rpb25hcnkgKmNvbnRlbnRzID0gX3BhZ2UtPmNvbnRlbnRzT2ZV
c2VySW50ZXJmYWNlSXRlbSh1c2VySW50ZXJmYWNlSXRlbSkpCisgICAgICAgIHJldHVybiBjb250
ZW50czsKKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgcmV0dXJuIFtfY29udGVudFZp
ZXcgX2NvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbTooTlNTdHJpbmcgKil1c2VySW50ZXJmYWNl
SXRlbV07CiAjZWxzZQpAQCAtMzA5LDYgKzMxMiwxNiBAQCAtICh2b2lkKV9zZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMRm9yVGVzdGluZzooTlNVUkwgKil1cmwg
YwogICAgIH0pOwogfQogCistICh2b2lkKV9kaWRTaG93Q29udGV4dE1lbnUKK3sKKyAgICAvLyBG
b3Igc3ViY2xhc3NlcyB0byBvdmVycmlkZS4KK30KKworLSAodm9pZClfZGlkRGlzbWlzc0NvbnRl
eHRNZW51Cit7CisgICAgLy8gRm9yIHN1YmNsYXNzZXMgdG8gb3ZlcnJpZGUuCit9CisKIC0gKHZv
aWQpX2RpZFByZXNlbnRDb250YWN0UGlja2VyCiB7CiAgICAgLy8gRm9yIHN1YmNsYXNzZXMgdG8g
b3ZlcnJpZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dL
V2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvaW9zL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmgKaW5kZXggODkzN2M4NGZjYzJh
MDA2NDcwZjJjMmM5YTg3MWE3Zjk5OTVmYTljMy4uOTM4OGFlYjRmMTY3MTgyMmJjNjRmOGFkOWVl
ZjcwNTFhODBhODg0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lv
cy9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdJT1MuaApAQCAtNjYsOCAr
NjYsNiBAQAogCiAtICh2b2lkKWFwcGx5QXV0b2NvcnJlY3Rpb246KE5TU3RyaW5nICopbmV3U3Ry
aW5nIHRvU3RyaW5nOihOU1N0cmluZyAqKW9sZFN0cmluZyB3aXRoQ29tcGxldGlvbkhhbmRsZXI6
KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyOwogCi0tICh2b2lkKV9kaWRTaG93Q29u
dGV4dE1lbnU7Ci0tICh2b2lkKV9kaWREaXNtaXNzQ29udGV4dE1lbnU7CiAtICh2b2lkKV9kb0Fm
dGVyUmVzZXR0aW5nU2luZ2xlVGFwR2VzdHVyZTooZGlzcGF0Y2hfYmxvY2tfdClhY3Rpb247CiAK
IC0gKE5TRGljdGlvbmFyeSAqKV9wcm9wZXJ0aWVzT2ZMYXllcldpdGhJRDoodW5zaWduZWQgbG9u
ZyBsb25nKWxheWVySUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
aW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
aW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0KaW5kZXggZWU5OTBlOGU3MGVjZWI2ZjAwYmY3MjNl
ZWVjNzQ3MTJlNDBiZWZiYi4uZDljNzk5YjhkZGQ1OTFhOGVjMThhMTA2Y2UxYmZiNDdjNzFiYjgz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdU
ZXN0aW5nSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJW
aWV3VGVzdGluZ0lPUy5tbQpAQCAtMTg0LDE2ICsxODQsNiBAQCAtIChOU1N0cmluZyAqKWZvcm1J
bnB1dExhYmVsCiAgICAgcmV0dXJuIFtfY29udGVudFZpZXcgZm9ybUlucHV0TGFiZWxdOwogfQog
Ci0tICh2b2lkKV9kaWRTaG93Q29udGV4dE1lbnUKLXsKLSAgICAvLyBGb3Igc3ViY2xhc3NlcyB0
byBvdmVycmlkZS4KLX0KLQotLSAodm9pZClfZGlkRGlzbWlzc0NvbnRleHRNZW51Ci17Ci0gICAg
Ly8gRm9yIHN1YmNsYXNzZXMgdG8gb3ZlcnJpZGUuCi19Ci0KIC0gKENHUmVjdClfaW5wdXRWaWV3
Qm91bmRzCiB7CiAgICAgcmV0dXJuIF9pbnB1dFZpZXdCb3VuZHM7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLV2ViVmlld1Rlc3RpbmdNYWMubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLV2ViVmlld1Rlc3RpbmdNYWMubW0KaW5kZXgg
YWZjYzMxYTA3MWE0ZWQ5MmY5MzViNmZjNTMwOTU5ZTUyZjNmNGYzNS4uMWUwNmM5ZGZhZDFhNjQx
NmQxOWU2ZjljMDcwMjhiNWFlNzgwMjQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdUZXN0aW5nTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3VGVzdGluZ01hYy5tbQpAQCAtMTE0LDkgKzExNCwx
MSBAQCAtIChOU1NldDxOU1ZpZXcgKj4gKilfcGRmSFVEcwogCiAtIChOU01lbnUgKilfYWN0aXZl
TWVudQogewotICAgIC8vIEZJWE1FOiBPbmx5IHRoZSBET00gcGFzdGUgYWNjZXNzIG1lbnUgaXMg
c3VwcG9ydGVkIGZvciBub3cuIEluIHRoZSBmdXR1cmUsIGl0IGNvdWxkIGJlCi0gICAgLy8gZXh0
ZW5kZWQgdG8gcmVjb2duaXplIHRoZSByZWd1bGFyIGNvbnRleHQgbWVudSBhcyB3ZWxsLgotICAg
IHJldHVybiBfaW1wbC0+ZG9tUGFzdGVNZW51KCk7CisgICAgaWYgKE5TTWVudSAqY29udGV4dE1l
bnUgPSBfcGFnZS0+cGxhdGZvcm1BY3RpdmVDb250ZXh0TWVudSgpKQorICAgICAgICByZXR1cm4g
Y29udGV4dE1lbnU7CisgICAgaWYgKE5TTWVudSAqZG9tUGFzdGVNZW51ID0gX2ltcGwtPmRvbVBh
c3RlTWVudSgpKQorICAgICAgICByZXR1cm4gZG9tUGFzdGVNZW51OworICAgIHJldHVybiBuaWw7
CiB9CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlBhZ2VQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFn
ZVByb3h5Q29jb2EubW0KaW5kZXggYzlkOTAyZGE4YTU1MzlhZTI1NzQyYzAxZjZkYjE3YzU3NGU5
OGE2ZC4uMmE5OWE1NDVkZWNmZjcwZGEwNmM1ZWIyYjliOGM3NmNmZWU5YzBmMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KQEAg
LTM5LDYgKzM5LDcgQEAKICNpbXBvcnQgIlNhZmVCcm93c2luZ1dhcm5pbmcuaCIKICNpbXBvcnQg
IlNoYXJlZEJ1ZmZlckNvcHkuaCIKICNpbXBvcnQgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2Uu
aCIKKyNpbXBvcnQgIldlYkNvbnRleHRNZW51UHJveHkuaCIKICNpbXBvcnQgIldlYlBhZ2UuaCIK
ICNpbXBvcnQgIldlYlBhZ2VNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUGFzdGVib2FyZFByb3h5
LmgiCkBAIC02NDIsNiArNjQzLDE2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXZva2VBY2Nlc3NU
b0Fzc2V0U2VydmljZXMoKQogICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNz
OjpSZXZva2VBY2Nlc3NUb0Fzc2V0U2VydmljZXMoKSwgMCk7CiB9CiAKK05TRGljdGlvbmFyeSAq
V2ViUGFnZVByb3h5Ojpjb250ZW50c09mVXNlckludGVyZmFjZUl0ZW0oTlNTdHJpbmcgKnVzZXJJ
bnRlcmZhY2VJdGVtKQoreworI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQorICAgIGlmIChtX2Fj
dGl2ZUNvbnRleHRNZW51ICYmIFt1c2VySW50ZXJmYWNlSXRlbSBpc0VxdWFsVG9TdHJpbmc6QCJt
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUiXSkKKyAgICAgICAgcmV0dXJuIEB7IHVzZXJJbnRlcmZh
Y2VJdGVtOiBtX2FjdGl2ZUNvbnRleHRNZW51LT5wbGF0Zm9ybURhdGEoKSB9OworI2VuZGlmIC8v
IEVOQUJMRShDT05URVhUX01FTlVTKQorCisgICAgcmV0dXJuIG5pbDsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IGI2YzA3NWIxYTk1OTJiMWI1MzQ1YWFlMmUwNzNlNmIy
M2Y1ZDA2NTkuLjZjNGM4M2QyMjU1NTk4ODU5YTU4MTdlZDg3NDhiNzYxNWJlNGJiNmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTM1NSw2ICszNTUsOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IGNyZWF0ZVBvcHVwTWVudVBy
b3h5KFdlYlBhZ2VQcm94eSYpID0gMDsKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICB2
aXJ0dWFsIFJlZjxXZWJDb250ZXh0TWVudVByb3h5PiBjcmVhdGVDb250ZXh0TWVudVByb3h5KFdl
YlBhZ2VQcm94eSYsIENvbnRleHRNZW51Q29udGV4dERhdGEmJiwgY29uc3QgVXNlckRhdGEmKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFNob3dDb250ZXh0TWVudSgpIHsgfQorICAgIHZpcnR1
YWwgdm9pZCBkaWREaXNtaXNzQ29udGV4dE1lbnUoKSB7IH0KICNlbmRpZgogCiAjaWYgRU5BQkxF
KElOUFVUX1RZUEVfQ09MT1IpCkBAIC01MjcsOSArNTI5LDkgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCByZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIGNvbnN0
IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uUmVzdWx0JiYpPiYmIGNvbXBsZXRpb24pIHsgY29t
cGxldGlvbih7IH0pOyB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05U
RVhUX01FTlVTKQorI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBV
U0UoVUlDT05URVhUTUVOVSkKICAgICB2aXJ0dWFsIHZvaWQgc2hvd01lZGlhQ29udHJvbHNDb250
ZXh0TWVudShXZWJDb3JlOjpGbG9hdFJlY3QmJiwgVmVjdG9yPFdlYkNvcmU6Ok1lZGlhQ29udHJv
bHNDb250ZXh0TWVudUl0ZW0+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVk
aWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6SUQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNv
bXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06Omlu
dmFsaWRJRCk7IH0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5V
UykKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNF
KFVJQ09OVEVYVE1FTlUpCiAgICAgCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgdm9p
ZCBkaWRQZXJmb3JtSW1tZWRpYXRlQWN0aW9uSGl0VGVzdChjb25zdCBXZWJIaXRUZXN0UmVzdWx0
RGF0YSYsIGJvb2wgY29udGVudFByZXZlbnRzRGVmYXVsdCwgQVBJOjpPYmplY3QqKSA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVudVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0TWVudVByb3h5LmgKaW5kZXggMmQy
YzU3NjVjMDFmMjY4MDc0OWE4ZjE5M2Q2MWZiNjY2YTA4YWI4Ni4uMWI4ZmNjODQ2NjRmMzA5YWZl
NWY0ZWFjZDI4YjU0MTNjMWIxYjkwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQ29udGV4dE1lbnVQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkNvbnRleHRNZW51UHJveHkuaApAQCAtMzMsNiArMzMsOCBAQAogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAorT0JKQ19DTEFTUyBOU01lbnU7
CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJDb250ZXh0TWVudUl0ZW07CkBAIC00
Niw2ICs0OCwxMSBAQCBwdWJsaWM6CiAKICAgICBXZWJQYWdlUHJveHkqIHBhZ2UoKSBjb25zdCB7
IHJldHVybiBtX3BhZ2UuZ2V0KCk7IH0KIAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZpcnR1
YWwgTlNNZW51ICpwbGF0Zm9ybU1lbnUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBOU0FycmF5
ICpwbGF0Zm9ybURhdGEoKSBjb25zdCA9IDA7CisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCisK
IHByb3RlY3RlZDoKICAgICBXZWJDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSYsIENvbnRl
eHRNZW51Q29udGV4dERhdGEmJiwgY29uc3QgVXNlckRhdGEmKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMGJiMmM1MDRjNTBmNzdiYWJmODRiYjUwNTdh
OWFhODViNDRiMDg5ZS4uNjE3NTljYTg0OWM0NDI2NzA3MDUzMjQ5ZjJhNWFmMjVmOTZkN2UwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC04MzE2LDE0ICs4
MzE2LDE0IEBAIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIFdl
YlBhZ2VQcm94eTo6bWVkaWFLZXlTeXN0ZW1QZXJtaXNzCiB9CiAjZW5kaWYKIAotI2lmIEVOQUJM
RShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorI2lmIEVOQUJMRShNRURJQV9DT05UUk9M
U19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKIAogdm9pZCBXZWJQYWdlUHJv
eHk6OnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoRmxvYXRSZWN0JiYgdGFyZ2V0RnJhbWUs
IFZlY3RvcjxNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiYmIGl0ZW1zLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBwYWdlQ2xpZW50KCkuc2hvd01lZGlhQ29udHJvbHNDb250ZXh0
TWVudShXVEZNb3ZlKHRhcmdldEZyYW1lKSwgV1RGTW92ZShpdGVtcyksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05U
RVhUX01FTlVTKQorI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVT
KSAmJiBVU0UoVUlDT05URVhUTUVOVSkKIAogCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdE5v
dGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0X3QgcmVxdWVzdElELCBjb25zdCBTdHJpbmcmIG9y
aWdpblN0cmluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggOTdi
NmQxMjk2MDY5YjFhMTA0M2Q5NzQ1NGExYWMzMDQxNTBjNTI0MC4uZjdiMzM5N2RiNmZlYzUwOWEw
ODE3MjJjZTgwZTIzZmIzOGY1ZWEyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKQEAgLTEzOCw2ICsxMzgsNyBAQAogI2luY2x1ZGUgIkVuZG93bWVudFN0YXRlVHJhY2tl
ci5oIgogI2VuZGlmCiAKK09CSkNfQ0xBU1MgTlNNZW51OwogT0JKQ19DTEFTUyBOU1RleHRBbHRl
cm5hdGl2ZXM7CiBPQkpDX0NMQVNTIE5TVmlldzsKIE9CSkNfQ0xBU1MgX1dLUmVtb3RlT2JqZWN0
UmVnaXN0cnk7CkBAIC0xNjI3LDkgKzE2MjgsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVX
aXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0KFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvblJlc3VsdCYm
LCBjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmIGxvY2F0aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgdGV4dEV4aXN0c0F0TG9j
YXRpb24pPiYmKTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRf
TUVOVVMpCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShV
SUNPTlRFWFRNRU5VKQogICAgIHZvaWQgc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShXZWJD
b3JlOjpGbG9hdFJlY3QmJiwgVmVjdG9yPFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVu
dUl0ZW0+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVkaWFDb250cm9sc0Nv
bnRleHRNZW51SXRlbTo6SUQpPiYmKTsKLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNf
Q09OVEVYVF9NRU5VUykKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9N
RU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAKICAgICBzdGF0aWMgV2ViUGFnZVByb3h5KiBu
b25FcGhlbWVyYWxXZWJQYWdlUHJveHkoKTsKIApAQCAtMTgwNSw2ICsxODA2LDcgQEAgcHVibGlj
OgogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKKyAgICBOU01lbnUgKnBsYXRm
b3JtQWN0aXZlQ29udGV4dE1lbnUoKSBjb25zdDsKICAgICB2b2lkIHBsYXRmb3JtRGlkU2VsZWN0
SXRlbUZyb21BY3RpdmVDb250ZXh0TWVudShjb25zdCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhJik7
CiAjZW5kaWYKIApAQCAtMTg3OCw2ICsxODgwLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFy
QXBwQm91bmROYXZpZ2F0aW9uRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogI2Vu
ZGlmCiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBOU0RpY3Rpb25hcnkgKmNvbnRlbnRzT2ZV
c2VySW50ZXJmYWNlSXRlbShOU1N0cmluZyAqdXNlckludGVyZmFjZUl0ZW0pOworI2VuZGlmIC8v
IFBMQVRGT1JNKENPQ09BKQorCiBwcml2YXRlOgogICAgIFdlYlBhZ2VQcm94eShQYWdlQ2xpZW50
JiwgV2ViUHJvY2Vzc1Byb3h5JiwgUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYpOwogICAg
IHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggODczMTc2ZDk1OTE2ZmYwNDhjMGI1MjI1
NWJkZTk4ZmE5MDMxZmQ1Ny4uYTkxZDk2N2ZmN2UxOWQ1NzRiNmYzZWIzODExMjUxMWE1MmFkNzI3
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgpAQCAtMjI0LDkgKzIyNCw5IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAg
UmVxdWVzdEltYWdlRXh0cmFjdGlvbihVUkwgaW1hZ2VVUkwsIFdlYktpdDo6U2hhcmVhYmxlQml0
bWFwOjpIYW5kbGUgaW1hZ2VEYXRhKSAtPiAoc3RydWN0IFdlYkNvcmU6OkltYWdlRXh0cmFjdGlv
blJlc3VsdCByZXN1bHQpIEFzeW5jCiAjZW5kaWYKIAotI2lmIEVOQUJMRShNRURJQV9DT05UUk9M
U19DT05URVhUX01FTlVTKQorI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVT
KSAmJiBVU0UoVUlDT05URVhUTUVOVSkKICAgICBTaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51
KFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRGcmFtZSwgVmVjdG9yPFdlYkNvcmU6Ok1lZGlhQ29u
dHJvbHNDb250ZXh0TWVudUl0ZW0+IGl0ZW1zKSAtPiAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0Nv
bnRleHRNZW51SXRlbTo6SUQgc2VsZWN0ZWRJdGVtSUQpIEFzeW5jCi0jZW5kaWYgLy8gRU5BQkxF
KE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NP
TlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogCiAjaWYgSEFWRShU
T1VDSF9CQVIpCiAgICAgU2V0SXNUb3VjaEJhclVwZGF0ZVN1cHJlc3NlZEZvckhpZGRlbkNvbnRl
bnRFZGl0YWJsZShib29sIGlzVG91Y2hCYXJVcGRhdGVTdXByZXNzZWQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDE0ZmJlOTVhMzM1
ZTY2NjBkZDhmMDhiMDQxNWUxNmU0OWY2MGNjMTQuLjI2NzhjMWE0MDQyYmQ1ZGNhNzIzOTkyODk0
YmM1MWM4MjZkYTYyYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5oCkBAIC0yNjcsOSArMjY3LDkgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
c2V0TW91c2VFdmVudFBvbGljeShXZWJDb3JlOjpNb3VzZUV2ZW50UG9saWN5KSBmaW5hbDsKIAot
I2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorI2lmIEVOQUJMRShNRURJ
QV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKICAgICB2b2lk
IHNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoV2ViQ29yZTo6RmxvYXRSZWN0JiYsIFZlY3Rv
cjxXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiYmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4mJikg
ZmluYWw7Ci0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisj
ZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNP
TlRFWFRNRU5VKQogCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICB2b2lkIHdy
aXRlUHJvbWlzZWRBdHRhY2htZW50VG9QYXN0ZWJvYXJkKFdlYkNvcmU6OlByb21pc2VkQXR0YWNo
bWVudEluZm8mJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MubW0KaW5kZXggYjlkODgzNWNkZWY2YWQ4Nzc4NzQ0YzY2NGIwMmQ2ODNh
MjdiYzE3ZS4uNTZkMGViMzA2OGUzZDczMmU2YWU2OTY3YzYwMDNjYzU1NmZmN2MyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAt
OTc1LDEyICs5NzUsMTIgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0TW91c2VFdmVudFBvbGlj
eShXZWJDb3JlOjpNb3VzZUV2ZW50UG9saWN5IHBvbGljeSkKICNlbmRpZgogfQogCi0jaWYgRU5B
QkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjaWYgRU5BQkxFKE1FRElBX0NPTlRS
T0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogdm9pZCBQYWdlQ2xpZW50
SW1wbDo6c2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShGbG9hdFJlY3QmJiB0YXJnZXRGcmFt
ZSwgVmVjdG9yPE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0+JiYgaXRlbXMsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6SUQpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIFttX2NvbnRlbnRWaWV3IF9zaG93TWVkaWFDb250cm9sc0Nv
bnRleHRNZW51OldURk1vdmUodGFyZ2V0RnJhbWUpIGl0ZW1zOldURk1vdmUoaXRlbXMpIGNvbXBs
ZXRpb25IYW5kbGVyOldURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXTsKIH0KLSNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyNlbmRpZiAvLyBFTkFCTEUoTUVE
SUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAKICNpZiBI
QVZFKFVJU0NST0xMVklFV19BU1lOQ0hST05PVVNfU0NST0xMX0VWRU5UX0hBTkRMSU5HKQogdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6aGFuZGxlQXN5bmNocm9ub3VzQ2FuY2VsYWJsZVNjcm9sbEV2ZW50
KFVJU2Nyb2xsVmlldyAqc2Nyb2xsVmlldywgVUlTY3JvbGxFdmVudCAqc2Nyb2xsRXZlbnQsIHZv
aWQgKF5jb21wbGV0aW9uKShCT09MIGhhbmRsZWQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmgKaW5kZXggNmM3MDlkNTYyYTMy
ZjIxNzhmMjY3YzljYTlhY2ZjYzY2OGRiZjY2Ni4uOTc2ODMwN2I2ZmVjYmM5ZmVhOTc0YzRiNGUy
NTdjYjhjOWFlY2RlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
QWN0aW9uU2hlZXRBc3Npc3RhbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tBY3Rpb25TaGVldEFzc2lzdGFudC5oCkBAIC0xMDMsOSArMTAzLDkgQEAgVUlDb250ZXh0TWVu
dUludGVyYWN0aW9uRGVsZWdhdGU+CiAtICh2b2lkKXNob3dMaW5rU2hlZXQ7CiAtICh2b2lkKXNo
b3dJbWFnZVNoZWV0OwogLSAodm9pZClzaG93RGF0YURldGVjdG9yc1VJRm9yUG9zaXRpb25JbmZv
cm1hdGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYp
cG9zaXRpb25JbmZvcm1hdGlvbjsKLSNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9N
RU5VUykKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJ
Q09OVEVYVE1FTlUpCiAtICh2b2lkKXNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnU6KFdlYkNv
cmU6OkZsb2F0UmVjdCYmKXRhcmdldEZyYW1lIGl0ZW1zOihWZWN0b3I8V2ViQ29yZTo6TWVkaWFD
b250cm9sc0NvbnRleHRNZW51SXRlbT4mJilpdGVtcyBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJ
RCk+JiYpY29tcGxldGlvbkhhbmRsZXI7Ci0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xT
X0NPTlRFWFRfTUVOVVMpCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRf
TUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogLSAodm9pZCljbGVhbnVwU2hlZXQ7CiAtICh2
b2lkKXVwZGF0ZVNoZWV0UG9zaXRpb247CiAtIChSZXRhaW5QdHI8TlNBcnJheTxfV0tFbGVtZW50
QWN0aW9uICo+PilkZWZhdWx0QWN0aW9uc0ZvckxpbmtTaGVldDooX1dLQWN0aXZhdGVkRWxlbWVu
dEluZm8gKillbGVtZW50SW5mbzsKQEAgLTEyMCw5ICsxMjAsOSBAQCBVSUNvbnRleHRNZW51SW50
ZXJhY3Rpb25EZWxlZ2F0ZT4KIAogQGludGVyZmFjZSBXS0FjdGlvblNoZWV0QXNzaXN0YW50IChX
S1Rlc3RpbmcpCiAtIChOU0FycmF5ICopY3VycmVudGx5QXZhaWxhYmxlQWN0aW9uVGl0bGVzOwot
I2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorI2lmIEVOQUJMRShNRURJ
QV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKIC0gKE5TQXJy
YXkgKiljdXJyZW50bHlBdmFpbGFibGVNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtczsKLSNl
bmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUp
CiBAZW5kCiAKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbQppbmRleCAx
MzdhZThlZTI2ZGMwY2E0ZTcxYjJlYmNhMDdiY2IzOTI4YWM5Nzg4Li5jMjZlMzgxZjkyZjJhOGY2
NjE3Yzg0ODkzZTQ0YjI4MzY3NGU2YWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbQpAQCAtMTAwLDE0ICsxMDAsMTYg
QEAgQGltcGxlbWVudGF0aW9uIFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgewogICAgIFJldGFpblB0
cjxfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbz4gX2VsZW1lbnRJbmZvOwogICAgIE9wdGlvbmFsPFdl
YktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24+IF9wb3NpdGlvbkluZm9ybWF0
aW9uOwogI2lmIFVTRShVSUNPTlRFWFRNRU5VKQorI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikK
ICAgICBSZXRhaW5QdHI8VUlDb250ZXh0TWVudUludGVyYWN0aW9uPiBfZGF0YURldGVjdG9yQ29u
dGV4dE1lbnVJbnRlcmFjdGlvbjsKLSNlbmRpZgorI2VuZGlmIC8vIEVOQUJMRShEQVRBX0RFVEVD
VElPTikKICNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKICAgICBSZXRh
aW5QdHI8VUlDb250ZXh0TWVudUludGVyYWN0aW9uPiBfbWVkaWFDb250cm9sc0NvbnRleHRNZW51
SW50ZXJhY3Rpb247CiAgICAgUmV0YWluUHRyPFVJTWVudT4gX21lZGlhQ29udHJvbHNDb250ZXh0
TWVudTsKICAgICBXZWJDb3JlOjpGbG9hdFJlY3QgX21lZGlhQ29udHJvbHNDb250ZXh0TWVudVRh
cmdldEZyYW1lOwogICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVkaWFDb250
cm9sc0NvbnRleHRNZW51SXRlbTo6SUQpPiBfbWVkaWFDb250cm9sc0NvbnRleHRNZW51Q2FsbGJh
Y2s7CiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjZW5k
aWYgLy8gVVNFKFVJQ09OVEVYVE1FTlUpCiAgICAgV2Vha09iakNQdHI8VUlWaWV3PiBfdmlldzsK
ICAgICBCT09MIF9uZWVkc0xpbmtJbmRpY2F0b3I7CiAgICAgQk9PTCBfaXNQcmVzZW50aW5nRERV
c2VySW50ZXJmYWNlOwpAQCAtMTMzLDEyICsxMzUsMTQgQEAgLSAoaWQpaW5pdFdpdGhWaWV3OihV
SVZpZXcgKil2aWV3CiAtICh2b2lkKWRlYWxsb2MKIHsKICAgICBbc2VsZiBjbGVhbnVwU2hlZXRd
OworI2lmIFVTRShVSUNPTlRFWFRNRU5VKQogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKICAg
ICBbc2VsZiBfcmVtb3ZlRGF0YURldGVjdG9yQ29udGV4dE1lbnVJbnRlcmFjdGlvbl07CiAjZW5k
aWYgLy8gRU5BQkxFKERBVEFfREVURUNUSU9OKQogI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19D
T05URVhUX01FTlVTKQogICAgIFtzZWxmIF9yZW1vdmVNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJ
bnRlcmFjdGlvbl07CiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVO
VVMpCisjZW5kaWYgLy8gVVNFKFVJQ09OVEVYVE1FTlUpCiAgICAgW3N1cGVyIGRlYWxsb2NdOwog
fQogCkBAIC03ODksNiArNzkzLDggQEAgLSAodm9pZClzaG93RGF0YURldGVjdG9yc1VJRm9yUG9z
aXRpb25JbmZvcm1hdGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm8KICNlbmRpZiAv
LyBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiB9CiAKKyNpZiBVU0UoVUlDT05URVhUTUVOVSkKKwog
I2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQogCiAtIChOU0FycmF5PFVJ
TWVudUVsZW1lbnQgKj4gKilfdWlNZW51RWxlbWVudHNGb3JNZWRpYUNvbnRyb2xDb250ZXh0TWVu
dUl0ZW1zOihWZWN0b3I8V2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbT4mJikg
aXRlbXMKQEAgLTgwNyw3ICs4MTMsNyBAQCAtIChOU0FycmF5PFVJTWVudUVsZW1lbnQgKj4gKilf
dWlNZW51RWxlbWVudHNGb3JNZWRpYUNvbnRyb2xDb250ZXh0TWVudUl0ZW1zOihWZQogCiAgICAg
ICAgICAgICBzdHJvbmdTZWxmLT5fbWVkaWFDb250cm9sc0NvbnRleHRNZW51Q2FsbGJhY2soc2Vs
ZWN0ZWRJdGVtSUQpOwogICAgICAgICB9XTsKLSAgICAgICAgaWYgKGl0ZW0uaXNDaGVja2VkKQor
ICAgICAgICBpZiAoaXRlbS5jaGVja2VkKQogICAgICAgICAgICAgYWN0aW9uLnN0YXRlID0gVUlN
ZW51RWxlbWVudFN0YXRlT247CiAgICAgICAgIHJldHVybiBhY3Rpb247CiAgICAgfSkuYXV0b3Jl
bGVhc2UoKTsKQEAgLTgzMyw4ICs4MzksNiBAQCAtICh2b2lkKXNob3dNZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnU6KFdlYkNvcmU6OkZsb2F0UmVjdCYmKXRhcmdldEZyYW1lIGl0ZW1zOihWZQogCiAj
ZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCiAKLSNpZiBVU0Uo
VUlDT05URVhUTUVOVSkKLQogc3RhdGljIE5TQXJyYXk8VUlNZW51RWxlbWVudCAqPiAqbWVudUVs
ZW1lbnRzRnJvbURlZmF1bHRBY3Rpb25zKFJldGFpblB0cjxOU0FycmF5PiBkZWZhdWx0RWxlbWVu
dEFjdGlvbnMsIFJldGFpblB0cjxfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbz4gZWxlbWVudEluZm8p
CiB7CiAgICAgaWYgKCFbZGVmYXVsdEVsZW1lbnRBY3Rpb25zIGNvdW50XSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApp
bmRleCAwM2NkNzQxM2U2NzQ5MGRjMDRiZTVjZWViMTVkMzEzMjU2NzFiNzRmLi44NjkzN2RjM2Fi
ZDRmNzQ4OTM5ZjM1NGJhY2ZjZGU3YzI2NWE2YzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC02ODAsOSAr
NjgwLDkgQEAgRk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dL
Q09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIC0gKHZvaWQpX3NldE1vdXNlRXZlbnRQ
b2xpY3k6KFdlYkNvcmU6Ok1vdXNlRXZlbnRQb2xpY3kpcG9saWN5OwogI2VuZGlmCiAKLSNpZiBF
TkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyNpZiBFTkFCTEUoTUVESUFfQ09O
VFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAtICh2b2lkKV9zaG93
TWVkaWFDb250cm9sc0NvbnRleHRNZW51OihXZWJDb3JlOjpGbG9hdFJlY3QmJil0YXJnZXRGcmFt
ZSBpdGVtczooVmVjdG9yPFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0+JiYp
aXRlbXMgY29tcGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6
TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6SUQpPiYmKWNvbXBsZXRpb25IYW5kbGVyOwot
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVO
VSkKIAogI2lmIEVOQUJMRShJT1NfRk9STV9DT05UUk9MX1JFRlJFU0gpCiAtIChCT09MKV9mb3Jt
Q29udHJvbFJlZnJlc2hFbmFibGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggZTQ2NzNiMjY2ZTU2MzEz
ODdiN2U0OTg5NGNmMmIzN2ZmYTU0NWViMi4uMDg3NjBmYWQ3NjQ1ZjUxYzZhYjZjNzg2NDFjMmQ2
ODgzMmNhNTZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC05MTI2LDE0ICs5MTI2LDE0IEBAIC0gKHZv
aWQpX3NldE1vdXNlRXZlbnRQb2xpY3k6KFdlYkNvcmU6Ok1vdXNlRXZlbnRQb2xpY3kpcG9saWN5
CiAKICNlbmRpZiAvLyBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkKIAotI2lmIEVOQUJM
RShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorI2lmIEVOQUJMRShNRURJQV9DT05UUk9M
U19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKIAogLSAodm9pZClfc2hvd01l
ZGlhQ29udHJvbHNDb250ZXh0TWVudTooV2ViQ29yZTo6RmxvYXRSZWN0JiYpdGFyZ2V0RnJhbWUg
aXRlbXM6KFZlY3RvcjxXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiYmKWl0
ZW1zIGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4mJiljb21wbGV0aW9uSGFuZGxlcgogewog
ICAgIFtfYWN0aW9uU2hlZXRBc3Npc3RhbnQgc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudTpX
VEZNb3ZlKHRhcmdldEZyYW1lKSBpdGVtczpXVEZNb3ZlKGl0ZW1zKSBjb21wbGV0aW9uSGFuZGxl
cjpXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV07CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoTUVE
SUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJP
TFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAKICNpZiBIQVZFKFVJX1BP
SU5URVJfSU5URVJBQ1RJT04pCiAKQEAgLTk2MDksMTAgKzk2MDksMTAgQEAgLSAoTlNEaWN0aW9u
YXJ5ICopX2NvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbTooTlNTdHJpbmcgKil1c2VySW50ZXJm
YWNlSXRlbQogICAgIH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRF
WFRfTUVOVVMpCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVT
RShVSUNPTlRFWFRNRU5VKQogICAgIGlmIChbdXNlckludGVyZmFjZUl0ZW0gaXNFcXVhbFRvU3Ry
aW5nOkAibWVkaWFDb250cm9sc0NvbnRleHRNZW51Il0pCiAgICAgICAgIHJldHVybiBAeyB1c2Vy
SW50ZXJmYWNlSXRlbTogW19hY3Rpb25TaGVldEFzc2lzdGFudCBjdXJyZW50bHlBdmFpbGFibGVN
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtc10gfTsKLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFf
Q09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNf
Q09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAKICAgICBpZiAoW3VzZXJJbnRl
cmZhY2VJdGVtIGlzRXF1YWxUb1N0cmluZzpAImZpbGVVcGxvYWRQYW5lbE1lbnUiXSkgewogICAg
ICAgICBpZiAoIV9maWxlVXBsb2FkUGFuZWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCmluZGV4IGMzN2ViMjNmZjU0MDZlOTMwNDNmOWY3ODg2
YmZlNjAyMmFjZjk5MmYuLjU5MzRkYTNkYzQyNGE2MjlkOTBhYzlmMTgzMTc1YWU3YTNiMzE5NTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1h
Yy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5o
CkBAIC0xMzcsNiArMTM3LDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViUG9wdXBNZW51UHJv
eHk+IGNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYpIG92ZXJyaWRlOwogI2lmIEVO
QUJMRShDT05URVhUX01FTlVTKQogICAgIFJlZjxXZWJDb250ZXh0TWVudVByb3h5PiBjcmVhdGVD
b250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSYsIENvbnRleHRNZW51Q29udGV4dERhdGEmJiwg
Y29uc3QgVXNlckRhdGEmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFNob3dDb250ZXh0TWVudSgp
IG92ZXJyaWRlOworICAgIHZvaWQgZGlkRGlzbWlzc0NvbnRleHRNZW51KCkgb3ZlcnJpZGU7CiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4IDU2YjQ0MDIxMzUzMmUz
YjVmOWYzZjYzYmE0OWY0OTRiOThjMWQ5NGIuLjE4ZjM3M2EyM2Q4N2Y0MGY3NWJhZDQ5YzBlYTMw
MjFjZWM1OWVhYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNs
aWVudEltcGxNYWMubW0KQEAgLTQ5LDcgKzQ5LDcgQEAKICNpbXBvcnQgIldLU3RyaW5nQ0YuaCIK
ICNpbXBvcnQgIldLVmlld0ludGVybmFsLmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdJbnRlcm5hbC5o
IgotI2ltcG9ydCAiV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdNYWMuaCIKKyNpbXBvcnQgIldL
V2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmgiCiAjaW1wb3J0ICJXZWJDb2xvclBpY2tlck1hYy5o
IgogI2ltcG9ydCAiV2ViQ29udGV4dE1lbnVQcm94eU1hYy5oIgogI2ltcG9ydCAiV2ViRGF0YUxp
c3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLmgiCkBAIC00OTYsMTEgKzQ5NiwyMyBAQCBSZWZQdHI8
V2ViUG9wdXBNZW51UHJveHk+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVQb3B1cE1lbnVQcm94eShX
ZWJQYWdlUHJveHkmIHBhZwogfQogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCisKIFJlZjxX
ZWJDb250ZXh0TWVudVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29udGV4dE1lbnVQcm94
eShXZWJQYWdlUHJveHkmIHBhZ2UsIENvbnRleHRNZW51Q29udGV4dERhdGEmJiBjb250ZXh0LCBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgcmV0dXJuIFdlYkNvbnRleHRNZW51UHJv
eHlNYWM6OmNyZWF0ZShtX3ZpZXcsIHBhZ2UsIFdURk1vdmUoY29udGV4dCksIHVzZXJEYXRhKTsK
IH0KLSNlbmRpZgorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRTaG93Q29udGV4dE1lbnUoKQor
eworICAgIFttX3dlYlZpZXcgX2RpZFNob3dDb250ZXh0TWVudV07Cit9CisKK3ZvaWQgUGFnZUNs
aWVudEltcGw6OmRpZERpc21pc3NDb250ZXh0TWVudSgpCit7CisgICAgW21fd2ViVmlldyBfZGlk
RGlzbWlzc0NvbnRleHRNZW51XTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShDT05URVhUX01FTlVT
KQogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCiBSZWZQdHI8V2ViQ29sb3JQaWNrZXI+
IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVDb2xvclBpY2tlcihXZWJQYWdlUHJveHkqIHBhZ2UsIGNv
bnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3IsIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IHJlY3QsIFZlY3RvcjxXZWJDb3JlOjpDb2xvcj4mJiBzdWdnZXN0aW9ucykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5oCmluZGV4
IDBiYjA3ZTY3OWYzMGU3YjM2ODJiMzczNmI1MzcyY2JiYjJkMzFlYzguLjU2MDYxYWZjM2QwM2Vi
MWQzZWQ5OWEzOWRhY2Q2Y2NhZDM2MTA5YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMuaApAQCAtMzUsNiArMzUsNyBAQCBP
QkpDX0NMQVNTIE5TTWVudTsKIE9CSkNfQ0xBU1MgTlNNZW51SXRlbTsKIE9CSkNfQ0xBU1MgTlNW
aWV3OwogT0JKQ19DTEFTUyBOU1dpbmRvdzsKK09CSkNfQ0xBU1MgV0tNZW51RGVsZWdhdGU7CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC03Miw3ICs3MywxMSBAQCBwcml2YXRlOgogICAgIHZv
aWQgc2V0dXBTZXJ2aWNlc01lbnUoKTsKICNlbmRpZgogCisgICAgTlNNZW51ICpwbGF0Zm9ybU1l
bnUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBOU0FycmF5ICpwbGF0Zm9ybURhdGEoKSBjb25zdCBv
dmVycmlkZTsKKwogICAgIFJldGFpblB0cjxOU01lbnU+IG1fbWVudTsKKyAgICBSZXRhaW5QdHI8
V0tNZW51RGVsZWdhdGU+IG1fbWVudURlbGVnYXRlOwogICAgIFdlYWtPYmpDUHRyPE5TVmlldz4g
bV93ZWJWaWV3OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQppbmRleCBmMGZhZjExNDA4ZGIwNTUzNWZiYzhmNDRi
ZjljZjEwZDg4NGZiYjY3Li42YmZmZDE0ZGU0NDgxYTRmNDZjYjcwMGVkN2EzNTA0YTU1NDY3NTc3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQ
cm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1l
bnVQcm94eU1hYy5tbQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW1wb3J0ICJBUElDb250ZXh0TWVu
dUNsaWVudC5oIgogI2ltcG9ydCAiTWVudVV0aWxpdGllcy5oIgorI2ltcG9ydCAiUGFnZUNsaWVu
dEltcGxNYWMuaCIKICNpbXBvcnQgIlNlcnZpY2VzQ29udHJvbGxlci5oIgogI2ltcG9ydCAiU2hh
cmVhYmxlQml0bWFwLmgiCiAjaW1wb3J0ICJXS01lbnVJdGVtSWRlbnRpZmllcnNQcml2YXRlLmgi
CkBAIC0xNDcsNiArMTQ4LDM4IEBAIC0gKHZvaWQpZm9yd2FyZENvbnRleHRNZW51QWN0aW9uOihp
ZClzZW5kZXIKIAogQGVuZAogCitAaW50ZXJmYWNlIFdLTWVudURlbGVnYXRlIDogTlNPYmplY3Qg
PE5TTWVudURlbGVnYXRlPiB7CisgICAgV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjKiBf
bWVudVByb3h5OworfQorLShpbnN0YW5jZXR5cGUpaW5pdFdpdGhNZW51UHJveHk6KFdlYktpdDo6
V2ViQ29udGV4dE1lbnVQcm94eU1hYyYpbWVudVByb3h5OworQGVuZAorCitAaW1wbGVtZW50YXRp
b24gV0tNZW51RGVsZWdhdGUKKworLShpbnN0YW5jZXR5cGUpaW5pdFdpdGhNZW51UHJveHk6KFdl
YktpdDo6V2ViQ29udGV4dE1lbnVQcm94eU1hYyYpbWVudVByb3h5Cit7CisgICAgaWYgKCEoc2Vs
ZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfbWVudVByb3h5
ID0gJm1lbnVQcm94eTsKKworICAgIHJldHVybiBzZWxmOworfQorCisjcHJhZ21hIG1hcmsgLSBO
U01lbnVEZWxlZ2F0ZQorCistICh2b2lkKW1lbnVXaWxsT3BlbjooTlNNZW51ICopbWVudQorewor
ICAgIF9tZW51UHJveHktPnBhZ2UoKS0+cGFnZUNsaWVudCgpLmRpZFNob3dDb250ZXh0TWVudSgp
OworfQorCistICh2b2lkKW1lbnVEaWRDbG9zZTooTlNNZW51ICopbWVudQoreworICAgIF9tZW51
UHJveHktPnBhZ2UoKS0+cGFnZUNsaWVudCgpLmRpZERpc21pc3NDb250ZXh0TWVudSgpOworfQor
CitAZW5kCisKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
QEAgLTQ5OSw2ICs1MzIsNyBAQCB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlNYWM6OmdldENvbnRl
eHRNZW51SXRlbShjb25zdCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhJiBpdAogICAgICAgICBbbWVu
dUl0ZW0gc2V0VGFnOml0ZW0uYWN0aW9uKCldOwogICAgICAgICBbbWVudUl0ZW0gc2V0RW5hYmxl
ZDppdGVtLmVuYWJsZWQoKV07CiAgICAgICAgIFttZW51SXRlbSBzZXRTdGF0ZTppdGVtLmNoZWNr
ZWQoKSA/IE5TQ29udHJvbFN0YXRlVmFsdWVPbiA6IE5TQ29udHJvbFN0YXRlVmFsdWVPZmZdOwor
ICAgICAgICBbbWVudUl0ZW0gc2V0SW5kZW50YXRpb25MZXZlbDppdGVtLmluZGVudGF0aW9uTGV2
ZWwoKV07CiAgICAgICAgIFttZW51SXRlbSBzZXRUYXJnZXQ6W1dLTWVudVRhcmdldCBzaGFyZWRN
ZW51VGFyZ2V0XV07CiAgICAgICAgIFttZW51SXRlbSBzZXRJZGVudGlmaWVyOm1lbnVJdGVtSWRl
bnRpZmllcihpdGVtLmFjdGlvbigpKV07CiAKQEAgLTUxNiw5ICs1NTAsMTAgQEAgdm9pZCBXZWJD
b250ZXh0TWVudVByb3h5TWFjOjpnZXRDb250ZXh0TWVudUl0ZW0oY29uc3QgV2ViQ29udGV4dE1l
bnVJdGVtRGF0YSYgaXQKICAgICAgICAgcmV0dXJuOwogCiAgICAgY2FzZSBXZWJDb3JlOjpTdWJt
ZW51VHlwZTogewotICAgICAgICBnZXRDb250ZXh0TWVudUZyb21JdGVtcyhpdGVtLnN1Ym1lbnUo
KSwgW2FjdGlvbiA9IGl0ZW0uYWN0aW9uKCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlciksIGVuYWJsZWQgPSBpdGVtLmVuYWJsZWQoKSwgdGl0bGUgPSBpdGVt
LnRpdGxlKCldKE5TTWVudSAqbWVudSkgbXV0YWJsZSB7CisgICAgICAgIGdldENvbnRleHRNZW51
RnJvbUl0ZW1zKGl0ZW0uc3VibWVudSgpLCBbYWN0aW9uID0gaXRlbS5hY3Rpb24oKSwgY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgZW5hYmxlZCA9IGl0ZW0u
ZW5hYmxlZCgpLCB0aXRsZSA9IGl0ZW0udGl0bGUoKSwgaW5kZW50YXRpb25MZXZlbCA9IGl0ZW0u
aW5kZW50YXRpb25MZXZlbCgpXShOU01lbnUgKm1lbnUpIG11dGFibGUgewogICAgICAgICAgICAg
YXV0byBtZW51SXRlbSA9IGFkb3B0TlMoW1tOU01lbnVJdGVtIGFsbG9jXSBpbml0V2l0aFRpdGxl
OnRpdGxlIGFjdGlvbjpudWxscHRyIGtleUVxdWl2YWxlbnQ6QCIiXSk7CiAgICAgICAgICAgICBb
bWVudUl0ZW0gc2V0RW5hYmxlZDplbmFibGVkXTsKKyAgICAgICAgICAgIFttZW51SXRlbSBzZXRJ
bmRlbnRhdGlvbkxldmVsOmluZGVudGF0aW9uTGV2ZWxdOwogICAgICAgICAgICAgW21lbnVJdGVt
IHNldFN1Ym1lbnU6bWVudV07CiAgICAgICAgICAgICBbbWVudUl0ZW0gc2V0SWRlbnRpZmllcjpt
ZW51SXRlbUlkZW50aWZpZXIoYWN0aW9uKV07CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihtZW51SXRlbS5nZXQoKSk7CkBAIC01NzEsMTAgKzYwNiwyMiBAQCB2b2lkIFdlYkNvbnRleHRN
ZW51UHJveHlNYWM6OnVzZUNvbnRleHRNZW51SXRlbXMoVmVjdG9yPFJlZjxXZWJDb250ZXh0TWVu
dUl0ZW0+PgogICAgICAgICB9CiAKICAgICAgICAgW1tXS01lbnVUYXJnZXQgc2hhcmVkTWVudVRh
cmdldF0gc2V0TWVudVByb3h5OnRoaXNdOwotICAgICAgICBwYWdlKCktPmNvbnRleHRNZW51Q2xp
ZW50KCkubWVudUZyb21Qcm9wb3NlZE1lbnUoKnBhZ2UoKSwgbWVudSwgbV9jb250ZXh0LndlYkhp
dFRlc3RSZXN1bHREYXRhKCksIG1fdXNlckRhdGEub2JqZWN0KCksIFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0oUmV0YWluUHRyPE5TTWVudT4mJiBtZW51KSB7
CisKKyAgICAgICAgYXV0byBtZW51RnJvbVByb3Bvc2VkTWVudSA9IFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0gKFJldGFpblB0cjxOU01lbnU+JiYgbWVudSkg
eworICAgICAgICAgICAgbV9tZW51RGVsZWdhdGUgPSBhZG9wdE5TKFtbV0tNZW51RGVsZWdhdGUg
YWxsb2NdIGluaXRXaXRoTWVudVByb3h5Oip0aGlzXSk7CisKICAgICAgICAgICAgIG1fbWVudSA9
IFdURk1vdmUobWVudSk7CisgICAgICAgICAgICBbbV9tZW51IHNldERlbGVnYXRlOm1fbWVudURl
bGVnYXRlLmdldCgpXTsKKwogICAgICAgICAgICAgV2ViQ29udGV4dE1lbnVQcm94eTo6dXNlQ29u
dGV4dE1lbnVJdGVtcyh7IH0pOwotICAgICAgICB9KTsKKyAgICAgICAgfTsKKworICAgICAgICBp
ZiAobV9jb250ZXh0LnR5cGUoKSAhPSBDb250ZXh0TWVudUNvbnRleHQ6OlR5cGU6OkNvbnRleHRN
ZW51KSB7CisgICAgICAgICAgICBtZW51RnJvbVByb3Bvc2VkTWVudShtZW51KTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHBhZ2UoKS0+Y29udGV4dE1lbnVDbGll
bnQoKS5tZW51RnJvbVByb3Bvc2VkTWVudSgqcGFnZSgpLCBtZW51LCBtX2NvbnRleHQud2ViSGl0
VGVzdFJlc3VsdERhdGEoKSwgbV91c2VyRGF0YS5vYmplY3QoKSwgV1RGTW92ZShtZW51RnJvbVBy
b3Bvc2VkTWVudSkpOwogICAgIH0pOwogfQogCkBAIC01ODMsNiArNjMwLDUzIEBAIE5TV2luZG93
ICpXZWJDb250ZXh0TWVudVByb3h5TWFjOjp3aW5kb3coKSBjb25zdAogICAgIHJldHVybiBbbV93
ZWJWaWV3IHdpbmRvd107CiB9CiAKK05TTWVudSAqV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6cGxh
dGZvcm1NZW51KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9tZW51LmdldCgpOworfQorCitzdGF0
aWMgTlNEaWN0aW9uYXJ5ICpjb250ZW50c09mQ29udGV4dE1lbnVJdGVtKE5TTWVudUl0ZW0gKml0
ZW0pCit7CisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSogcmVzdWx0ID0gTlNNdXRhYmxlRGljdGlv
bmFyeS5kaWN0aW9uYXJ5OworCisgICAgaWYgKGl0ZW0udGl0bGUubGVuZ3RoKQorICAgICAgICBy
ZXN1bHRbQCJ0aXRsZSJdID0gaXRlbS50aXRsZTsKKworICAgIGlmIChpdGVtLmlzU2VwYXJhdG9y
SXRlbSkKKyAgICAgICAgcmVzdWx0W0Aic2VwYXJhdG9yIl0gPSBAWUVTOworICAgIGVsc2UgaWYg
KCFpdGVtLmVuYWJsZWQpCisgICAgICAgIHJlc3VsdFtAImVuYWJsZWQiXSA9IEBOTzsKKworICAg
IGlmIChOU0ludGVnZXIgaW5kZW50YXRpb25MZXZlbCA9IGl0ZW0uaW5kZW50YXRpb25MZXZlbCkK
KyAgICAgICAgcmVzdWx0W0AiaW5kZW50YXRpb25MZXZlbCJdID0gW05TTnVtYmVyIG51bWJlcldp
dGhJbnRlZ2VyOmluZGVudGF0aW9uTGV2ZWxdOworCisgICAgaWYgKGl0ZW0uc3RhdGUgPT0gTlND
b250cm9sU3RhdGVWYWx1ZU9uKQorICAgICAgICByZXN1bHRbQCJjaGVja2VkIl0gPSBAWUVTOwor
CisgICAgaWYgKE5TQXJyYXk8TlNNZW51SXRlbSAqPiAqc3VibWVudUl0ZW1zID0gaXRlbS5zdWJt
ZW51Lml0ZW1BcnJheSkgeworICAgICAgICBOU011dGFibGVBcnJheSAqY2hpbGRyZW4gPSBbTlNN
dXRhYmxlQXJyYXkgYXJyYXlXaXRoQ2FwYWNpdHk6c3VibWVudUl0ZW1zLmNvdW50XTsKKyAgICAg
ICAgZm9yIChOU01lbnVJdGVtICpzdWJtZW51SXRlbSA6IHN1Ym1lbnVJdGVtcykKKyAgICAgICAg
ICAgIFtjaGlsZHJlbiBhZGRPYmplY3Q6Y29udGVudHNPZkNvbnRleHRNZW51SXRlbShzdWJtZW51
SXRlbSldOworICAgICAgICByZXN1bHRbQCJjaGlsZHJlbiJdID0gY2hpbGRyZW47CisgICAgfQor
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworTlNBcnJheSAqV2ViQ29udGV4dE1lbnVQcm94eU1h
Yzo6cGxhdGZvcm1EYXRhKCkgY29uc3QKK3sKKyAgICBOU011dGFibGVBcnJheSAqcmVzdWx0ID0g
TlNNdXRhYmxlQXJyYXkuYXJyYXk7CisKKyAgICBpZiAoTlNBcnJheTxOU01lbnVJdGVtICo+ICpz
dWJtZW51SXRlbXMgPSBbbV9tZW51IGl0ZW1BcnJheV0pIHsKKyAgICAgICAgTlNNdXRhYmxlQXJy
YXkgKmNoaWxkcmVuID0gW05TTXV0YWJsZUFycmF5IGFycmF5V2l0aENhcGFjaXR5OnN1Ym1lbnVJ
dGVtcy5jb3VudF07CisgICAgICAgIGZvciAoTlNNZW51SXRlbSAqc3VibWVudUl0ZW0gOiBzdWJt
ZW51SXRlbXMpCisgICAgICAgICAgICBbY2hpbGRyZW4gYWRkT2JqZWN0OmNvbnRlbnRzT2ZDb250
ZXh0TWVudUl0ZW0oc3VibWVudUl0ZW0pXTsKKyAgICAgICAgW3Jlc3VsdCBhZGRPYmplY3Q6QHsg
QCJjaGlsZHJlbiI6IGNoaWxkcmVuIH1dOworICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KaW5kZXggZjFi
MWZmZmMyMWEyOGMxZGRkMWIyMDE1MmE3NTQzYjhiNjMzZTExMi4uZjExNjE0MjEzNTMyZjg2NmQz
ZTJlM2YyNjg1OGY3ZmVhNmUwNzYxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV2ViUGFnZVByb3h5TWFjLm1tCkBAIC02MzMsNiArNjMzLDEzIEBAIE5TV2luZG93ICpXZWJQ
YWdlUHJveHk6OnBheW1lbnRDb29yZGluYXRvclByZXNlbnRpbmdXaW5kb3coY29uc3QgV2ViUGF5
bWVudENvb3JkCiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKIAorTlNNZW51ICpXZWJQYWdl
UHJveHk6OnBsYXRmb3JtQWN0aXZlQ29udGV4dE1lbnUoKSBjb25zdAoreworICAgIGlmIChtX2Fj
dGl2ZUNvbnRleHRNZW51KQorICAgICAgICByZXR1cm4gbV9hY3RpdmVDb250ZXh0TWVudS0+cGxh
dGZvcm1NZW51KCk7CisgICAgcmV0dXJuIG5pbDsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnBs
YXRmb3JtRGlkU2VsZWN0SXRlbUZyb21BY3RpdmVDb250ZXh0TWVudShjb25zdCBXZWJDb250ZXh0
TWVudUl0ZW1EYXRhJiBpdGVtKQogewogICAgIGlmIChpdGVtLmFjdGlvbigpID09IENvbnRleHRN
ZW51SXRlbVRhZ1Bhc3RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA0Njc0OWQzMDIxNzYz
ODdkOThiZTRiZDA1YmFmMWZmZDNhNWMzYmJlLi40YzBlMzNlY2RjOGUzYzFkZjAzMWQxODk5MzNk
MDA2YWI4OWIwN2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTQ1NCwxMyArMTQ1NCwx
MyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbihFbGVtZW50
JiBlbGVtZW50KQogCiAjZW5kaWYKIAotI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhU
X01FTlVTKQorI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBVU0Uo
VUlDT05URVhUTUVOVSkKIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNob3dNZWRpYUNvbnRyb2xz
Q29udGV4dE1lbnUoRmxvYXRSZWN0JiYgdGFyZ2V0RnJhbWUsIFZlY3RvcjxNZWRpYUNvbnRyb2xz
Q29udGV4dE1lbnVJdGVtPiYmIGl0ZW1zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE1lZGlhQ29u
dHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBt
X3BhZ2Uuc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShXVEZNb3ZlKHRhcmdldEZyYW1lKSwg
V1RGTW92ZShpdGVtcyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotI2VuZGlm
IC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorI2VuZGlmIC8vIEVOQUJM
RShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZWZmMmU5MDllNGUy
YWFjNTYzNWY5YzYwMTQ4N2RhZTNlY2RjNTU4Ni4uMTc5MmQ0MzQ4ZGU2NTA2NjA2ODA0YjZjNWVl
NDJjNTI0ZjNmNDNmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtNDE4LDkgKzQxOCw5IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdlYkNvcmU6OkVsZW1lbnQm
KSBmaW5hbDsKICNlbmRpZgogCi0jaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVO
VVMpCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNP
TlRFWFRNRU5VKQogICAgIHZvaWQgc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShXZWJDb3Jl
OjpGbG9hdFJlY3QmJiwgVmVjdG9yPFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0
ZW0+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRl
eHRNZW51SXRlbTo6SUQpPiYmKSBmaW5hbDsKLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJP
TFNfQ09OVEVYVF9NRU5VUykKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVY
VF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAKICAgICBtdXRhYmxlIGJvb2wgbV9jYWNo
ZWRNYWluRnJhbWVIYXNIb3Jpem9udGFsU2Nyb2xsYmFyIHsgZmFsc2UgfTsKICAgICBtdXRhYmxl
IGJvb2wgbV9jYWNoZWRNYWluRnJhbWVIYXNWZXJ0aWNhbFNjcm9sbGJhciB7IGZhbHNlIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGU2MmJj
MzQ1ZjA3MTUzY2M3Mzk0MWRlOTk5NDc4MWYxMmNiOTNhNTAuLmFkZjBmNzdjODNmNzJlMTAzM2Yy
MzM2NDRjZWEzNzJlMjQ5NTVjMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCkBAIC03MjgwLDEyICs3MjgwLDEyIEBAIHZvaWQgV2ViUGFnZTo6dXBk
YXRlV2l0aEltYWdlRXh0cmFjdGlvblJlc3VsdChJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJiByZXN1
bHQsIGNvCiAKICNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKIAotI2lmIEVOQUJM
RShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorI2lmIEVOQUJMRShNRURJQV9DT05UUk9M
U19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKIHZvaWQgV2ViUGFnZTo6c2hv
d01lZGlhQ29udHJvbHNDb250ZXh0TWVudShGbG9hdFJlY3QmJiB0YXJnZXRGcmFtZSwgVmVjdG9y
PE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0+JiYgaXRlbXMsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6SUQpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpT
aG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KFdURk1vdmUodGFyZ2V0RnJhbWUpLCBXVEZNb3Zl
KGl0ZW1zKSksIGNvbXBsZXRpb25IYW5kbGVyKTsKIH0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFf
Q09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNf
Q09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAKICNpZiAhUExBVEZPUk0oSU9T
X0ZBTUlMWSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmlu
ZGV4IDg0YzVjNDlkNzJkODMyNjNmOGZiZGE0NGRmODM4ZjFjNTI3ZWU4YjEuLjIwZWE3ZDg4NjU4
MzI3MmY1NTljNGU3YmI2ZWEyYmViZmIzMmRjYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEzODIsOSArMTM4Miw5IEBAIHB1YmxpYzoKICAgICB2
b2lkIHVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQoV2ViQ29yZTo6SW1hZ2VFeHRyYWN0
aW9uUmVzdWx0JiYsIGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0JiwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRQb2ludCYgbG9jYXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
OwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyNp
ZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1F
TlUpCiAgICAgdm9pZCBzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KFdlYkNvcmU6OkZsb2F0
UmVjdCYmLCBWZWN0b3I8V2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbT4mJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJ
dGVtOjpJRCk+JiYpOwotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01F
TlVTKQorI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBV
U0UoVUlDT05URVhUTUVOVSkKIAogI2lmIFBMQVRGT1JNKFdJTikKICAgICB1aW50NjRfdCBuYXRp
dmVXaW5kb3dIYW5kbGUoKSB7IHJldHVybiBtX25hdGl2ZVdpbmRvd0hhbmRsZTsgfQpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGMxNGY2NTgxYWYy
OWM4YTFkY2VhY2Q1OTU5ZmU3NTBlM2VjZDc2OTcuLjlkNDZjMmIwM2FjY2NlZTUzZDFiMDM4NDg5
OGZiOGY3YmZhYmRiOWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAyMS0wMy0xNSAgRGV2aW4gUm91c3NvICA8ZHJv
dXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBjaGFuZ2UgZm9yIHRoZSBsYW5ndWFn
ZS9zdWJ0aXRsZSB0cmFja3MgYnV0dG9uIHRvIHVzZSBhbiBgTlNNZW51YCBpbnN0ZWFkIG9mIHdl
YiBjb250ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjMyMzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc1NDYyMzQwPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9j
b2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9j
b2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtUZXN0UnVubmVyV0tXZWJW
aWV3IF9kaWRTaG93Q29udGV4dE1lbnVdKToKKyAgICAgICAgKC1bVGVzdFJ1bm5lcldLV2ViVmll
dyBfZGlkRGlzbWlzc0NvbnRleHRNZW51XSk6CisgICAgICAgICgtW1Rlc3RSdW5uZXJXS1dlYlZp
ZXcgcmVzZXRJbnRlcmFjdGlvbkNhbGxiYWNrc10pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAoV1RSOjpV
SVNjcmlwdENvbnRyb2xsZXJDb2NvYTo6c2V0RGlkU2hvd0NvbnRleHRNZW51Q2FsbGJhY2spOiBB
ZGRlZC4KKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyQ29jb2E6OnNldERpZERpc21p
c3NDb250ZXh0TWVudUNhbGxiYWNrKTogQWRkZWQuCisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29u
dHJvbGxlckNvY29hOjppc1Nob3dpbmdDb250ZXh0TWVudSBjb25zdCk6IEFkZGVkLgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5oOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbToKKyAgICAg
ICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVySU9TOjpzZXREaWRTaG93Q29udGV4dE1lbnVDYWxs
YmFjayk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcklPUzo6c2V0
RGlkRGlzbWlzc0NvbnRleHRNZW51Q2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpV
SVNjcmlwdENvbnRyb2xsZXJJT1M6OmlzU2hvd2luZ0NvbnRleHRNZW51IGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgTW92ZSB0aGVzZSBtZXRob2RzIHNvIHRoZXkgY2FuIGJlIHVzZWQgb24gbWFj
T1MgdG9vLgorCiAyMDIxLTAzLTEyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBFbmFibGUgdmlkZW8gY2FwdHVyZSBpbiBHUFVQcm9jZXNzIGJ5IGRlZmF1bHQg
b24gaU9TCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5u
ZXJXS1dlYlZpZXcuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldL
V2ViVmlldy5oCmluZGV4IDA2YTVhNjNiM2RiOWNkOWE0MWI5MTRhZTJjOTk1OGZlZjhiNTVkZmIu
LjIzMjg5YTYxMmY1Nzc2MmJjYWQxNDkxZWY0MDY3ZjNkYmRhNDFhNzEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5oCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5oCkBAIC0zNSw4
ICszNSw2IEBACiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGlkU3RhcnRG
b3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJhY2spKHZvaWQpOwogQHByb3BlcnR5IChub25hdG9t
aWMsIGNvcHkpIHZvaWQgKF5kaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJhY2spKHZv
aWQpOwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWRTaG93Q29udGV4dE1l
bnVDYWxsYmFjaykodm9pZCk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRp
ZERpc21pc3NDb250ZXh0TWVudUNhbGxiYWNrKSh2b2lkKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBjb3B5KSB2b2lkIChed2lsbEJlZ2luWm9vbWluZ0NhbGxiYWNrKSh2b2lkKTsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGlkRW5kWm9vbWluZ0NhbGxiYWNrKSh2b2lkKTsK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGlkU2hvd0tleWJvYXJkQ2FsbGJh
Y2spKHZvaWQpOwpAQCAtNjUsMTIgKzYzLDE0IEBACiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHksIGdldHRlcj1pc1Nob3dpbmdLZXlib2FyZCkgQk9PTCBzaG93aW5nS2V5Ym9hcmQ7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc0Rpc21pc3NpbmdNZW51KSBC
T09MIGRpc21pc3NpbmdNZW51OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0
ZXI9aXNTaG93aW5nUG9wb3ZlcikgQk9PTCBzaG93aW5nUG9wb3ZlcjsKLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzU2hvd2luZ0NvbnRleHRNZW51KSBCT09MIHNob3dp
bmdDb250ZXh0TWVudTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIEJPT0wgdXNlc1Nh
ZmFyaUxpa2VSb3RhdGlvbjsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVy
PWlzSW50ZXJhY3RpbmdXaXRoRm9ybUNvbnRyb2wpIEJPT0wgaW50ZXJhY3RpbmdXaXRoRm9ybUNv
bnRyb2w7CiAKICNlbmRpZgogCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRl
cj1pc1Nob3dpbmdDb250ZXh0TWVudSkgQk9PTCBzaG93aW5nQ29udGV4dE1lbnU7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRpZFNob3dDb250ZXh0TWVudUNhbGxiYWNrKSh2
b2lkKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGlkRGlzbWlzc0NvbnRl
eHRNZW51Q2FsbGJhY2spKHZvaWQpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBn
ZXR0ZXI9aXNTaG93aW5nTWVudSkgQk9PTCBzaG93aW5nTWVudTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBjb3B5KSB2b2lkICheZGlkU2hvd01lbnVDYWxsYmFjaykodm9pZCk7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRpZEhpZGVNZW51Q2FsbGJhY2spKHZvaWQpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3
Lm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1t
CmluZGV4IDhiMDZhZTVhMmRiMjFkNTIyNTFjN2ZhZmY2MGJmNzVjNTVhZmU1OTcuLjFjNDViZmQy
Mzk5YTI0ZmNiYTQ3Y2UwZWIwMGYyYjRkOGU2ODA1YTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5tbQorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcubW0KQEAgLTEzNiw2ICsxMzYs
MjYgQEAgLSAodm9pZClkZWFsbG9jCiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQogCistICh2b2lk
KV9kaWRTaG93Q29udGV4dE1lbnUKK3sKKyAgICBpZiAoc2VsZi5zaG93aW5nQ29udGV4dE1lbnUp
CisgICAgICAgIHJldHVybjsKKworICAgIHNlbGYuc2hvd2luZ0NvbnRleHRNZW51ID0gWUVTOwor
ICAgIGlmIChzZWxmLmRpZFNob3dDb250ZXh0TWVudUNhbGxiYWNrKQorICAgICAgICBzZWxmLmRp
ZFNob3dDb250ZXh0TWVudUNhbGxiYWNrKCk7Cit9CisKKy0gKHZvaWQpX2RpZERpc21pc3NDb250
ZXh0TWVudQoreworICAgIGlmICghc2VsZi5zaG93aW5nQ29udGV4dE1lbnUpCisgICAgICAgIHJl
dHVybjsKKworICAgIHNlbGYuc2hvd2luZ0NvbnRleHRNZW51ID0gTk87CisgICAgaWYgKHNlbGYu
ZGlkRGlzbWlzc0NvbnRleHRNZW51Q2FsbGJhY2spCisgICAgICAgIHNlbGYuZGlkRGlzbWlzc0Nv
bnRleHRNZW51Q2FsbGJhY2soKTsKK30KKwogLSAodm9pZClfZGlkU2hvd01lbnUKIHsKICAgICBp
ZiAoc2VsZi5zaG93aW5nTWVudSkKQEAgLTE3NCw2ICsxOTQsOCBAQCAtICh2b2lkKWRpc21pc3NB
Y3RpdmVNZW51CiAKIC0gKHZvaWQpcmVzZXRJbnRlcmFjdGlvbkNhbGxiYWNrcwogeworICAgIHNl
bGYuZGlkU2hvd0NvbnRleHRNZW51Q2FsbGJhY2sgPSBuaWw7CisgICAgc2VsZi5kaWREaXNtaXNz
Q29udGV4dE1lbnVDYWxsYmFjayA9IG5pbDsKICAgICBzZWxmLmRpZFNob3dNZW51Q2FsbGJhY2sg
PSBuaWw7CiAgICAgc2VsZi5kaWRIaWRlTWVudUNhbGxiYWNrID0gbmlsOwogICAgIHNlbGYuZGlk
U2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFjayA9IG5pbDsKQEAgLTE4MSw4ICsyMDMsNiBAQCAtICh2
b2lkKXJlc2V0SW50ZXJhY3Rpb25DYWxsYmFja3MKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQog
ICAgIHNlbGYuZGlkU3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJhY2sgPSBuaWw7CiAg
ICAgc2VsZi5kaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJhY2sgPSBuaWw7Ci0gICAg
c2VsZi5kaWRTaG93Q29udGV4dE1lbnVDYWxsYmFjayA9IG5pbDsKLSAgICBzZWxmLmRpZERpc21p
c3NDb250ZXh0TWVudUNhbGxiYWNrID0gbmlsOwogICAgIHNlbGYud2lsbEJlZ2luWm9vbWluZ0Nh
bGxiYWNrID0gbmlsOwogICAgIHNlbGYuZGlkRW5kWm9vbWluZ0NhbGxiYWNrID0gbmlsOwogICAg
IHNlbGYuZGlkU2hvd0tleWJvYXJkQ2FsbGJhY2sgPSBuaWw7CkBAIC0yMzgsMjYgKzI1OCw2IEBA
IC0gKHZvaWQpaW1tZWRpYXRlbHlEaXNtaXNzQ29udGV4dE1lbnVJZk5lZWRlZAogI2VuZGlmCiB9
CiAKLS0gKHZvaWQpX2RpZFNob3dDb250ZXh0TWVudQotewotICAgIGlmIChzZWxmLnNob3dpbmdD
b250ZXh0TWVudSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgc2VsZi5zaG93aW5nQ29udGV4dE1l
bnUgPSBZRVM7Ci0gICAgaWYgKHNlbGYuZGlkU2hvd0NvbnRleHRNZW51Q2FsbGJhY2spCi0gICAg
ICAgIHNlbGYuZGlkU2hvd0NvbnRleHRNZW51Q2FsbGJhY2soKTsKLX0KLQotLSAodm9pZClfZGlk
RGlzbWlzc0NvbnRleHRNZW51Ci17Ci0gICAgaWYgKCFzZWxmLnNob3dpbmdDb250ZXh0TWVudSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgc2VsZi5zaG93aW5nQ29udGV4dE1lbnUgPSBOTzsKLSAg
ICBpZiAoc2VsZi5kaWREaXNtaXNzQ29udGV4dE1lbnVDYWxsYmFjaykKLSAgICAgICAgc2VsZi5k
aWREaXNtaXNzQ29udGV4dE1lbnVDYWxsYmFjaygpOwotfQotCiAtIChCT09MKWJlY29tZUZpcnN0
UmVzcG9uZGVyCiB7CiAgICAgQk9PTCB3YXNGaXJzdFJlc3BvbmRlciA9IHNlbGYuaXNGaXJzdFJl
c3BvbmRlcjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3Jp
cHRDb250cm9sbGVyQ29jb2EuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3Jp
cHRDb250cm9sbGVyQ29jb2EuaAppbmRleCBlOGNkYzNjZjBjMTE1NDFhODdkYWM4NTAxZTcwOGY2
ODhlYWNiMTg0Li41NTA4YzEzMGRmMjk0NzQyNDUzODBkZThkMTcxZDlmMDA5ODk1MjVkIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNv
Y29hLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9VSVNjcmlwdENvbnRyb2xs
ZXJDb2NvYS5oCkBAIC01Myw2ICs1MywxMCBAQCBwcml2YXRlOgogICAgIEpTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBmaXJzdFJlZG9MYWJlbCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIE5TVW5kb01h
bmFnZXIgKnBsYXRmb3JtVW5kb01hbmFnZXIoKSBjb25zdCBvdmVycmlkZTsKIAorICAgIHZvaWQg
c2V0RGlkU2hvd0NvbnRleHRNZW51Q2FsbGJhY2soSlNWYWx1ZVJlZikgb3ZlcnJpZGU7CisgICAg
dm9pZCBzZXREaWREaXNtaXNzQ29udGV4dE1lbnVDYWxsYmFjayhKU1ZhbHVlUmVmKSBvdmVycmlk
ZTsKKyAgICBib29sIGlzU2hvd2luZ0NvbnRleHRNZW51KCkgY29uc3Qgb3ZlcnJpZGU7CisKICAg
ICB2b2lkIHNldERpZFNob3dNZW51Q2FsbGJhY2soSlNWYWx1ZVJlZikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBzZXREaWRIaWRlTWVudUNhbGxiYWNrKEpTVmFsdWVSZWYpIG92ZXJyaWRlOwogICAgIHZv
aWQgZGlzbWlzc01lbnUoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0gYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tCmluZGV4IGJiNTRhMmExNjRi
YTU4ZGNkYzQ4ZDE2NzZkNDVhOWFjOGNiNDc2NGEuLjVkNjgyNDk3YWQyNzQwY2FkNTNjZDI0MDU0
YzM0N2Q5YmI2NjAzZWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2Ev
VUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9j
b2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9y
dCA8V2ViS2l0L1dLVVJMQ0YuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+
CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaD4KKyNpbXBvcnQg
PHd0Zi9CbG9ja1B0ci5oPgogCiBAaW50ZXJmYWNlIFdLV2ViVmlldyAoV0tXZWJWaWV3SW50ZXJu
YWwpCiAtICh2b2lkKXBhc3RlOihpZClzZW5kZXI7CkBAIC0xNzIsNiArMTczLDMxIEBAIE5TVW5k
b01hbmFnZXIgKlVJU2NyaXB0Q29udHJvbGxlckNvY29hOjpwbGF0Zm9ybVVuZG9NYW5hZ2VyKCkg
Y29uc3QKICAgICByZXR1cm4gcGxhdGZvcm1Db250ZW50VmlldygpLnVuZG9NYW5hZ2VyOwogfQog
Cit2b2lkIFVJU2NyaXB0Q29udHJvbGxlckNvY29hOjpzZXREaWRTaG93Q29udGV4dE1lbnVDYWxs
YmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0
RGlkU2hvd0NvbnRleHRNZW51Q2FsbGJhY2soY2FsbGJhY2spOworICAgIHdlYlZpZXcoKS5kaWRT
aG93Q29udGV4dE1lbnVDYWxsYmFjayA9IG1ha2VCbG9ja1B0cihbdGhpcywgc3Ryb25nVGhpcyA9
IG1ha2VSZWYoKnRoaXMpXSB7CisgICAgICAgIGlmICghbV9jb250ZXh0KQorICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICBtX2NvbnRleHQtPmZpcmVDYWxsYmFjayhDYWxsYmFja1R5cGVEaWRT
aG93Q29udGV4dE1lbnUpOworICAgIH0pLmdldCgpOworfQorCit2b2lkIFVJU2NyaXB0Q29udHJv
bGxlckNvY29hOjpzZXREaWREaXNtaXNzQ29udGV4dE1lbnVDYWxsYmFjayhKU1ZhbHVlUmVmIGNh
bGxiYWNrKQoreworICAgIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkRGlzbWlzc0NvbnRleHRN
ZW51Q2FsbGJhY2soY2FsbGJhY2spOworICAgIHdlYlZpZXcoKS5kaWREaXNtaXNzQ29udGV4dE1l
bnVDYWxsYmFjayA9IG1ha2VCbG9ja1B0cihbdGhpcywgc3Ryb25nVGhpcyA9IG1ha2VSZWYoKnRo
aXMpXSB7CisgICAgICAgIGlmICghbV9jb250ZXh0KQorICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICBtX2NvbnRleHQtPmZpcmVDYWxsYmFjayhDYWxsYmFja1R5cGVEaWREaXNtaXNzQ29udGV4
dE1lbnUpOworICAgIH0pLmdldCgpOworfQorCitib29sIFVJU2NyaXB0Q29udHJvbGxlckNvY29h
Ojppc1Nob3dpbmdDb250ZXh0TWVudSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHdlYlZpZXcoKS5p
c1Nob3dpbmdDb250ZXh0TWVudTsKK30KKwogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXJDb2NvYTo6
c2V0RGlkU2hvd01lbnVDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQogewogICAgIFVJU2Ny
aXB0Q29udHJvbGxlcjo6c2V0RGlkU2hvd01lbnVDYWxsYmFjayhjYWxsYmFjayk7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MuaCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5oCmluZGV4
IDdhMzY5MGNkMTgyOTAxMmU3MTUxYTVmMmZkNGFmMGQxMDI1ODE2YzEuLjM5YmY4YWVmOWY1MjI1
MjA2N2MwMDM3MDI0YzQ1YmEzMzRhZDY2ODkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5oCkBAIC0xNDAsMTUgKzE0MCwxMiBAQCBw
cml2YXRlOgogICAgIHZvaWQgc2V0QWxsb3dzVmlld3BvcnRTaHJpbmtUb0ZpdChib29sKSBvdmVy
cmlkZTsKICAgICB2b2lkIGNvcHlUZXh0KEpTU3RyaW5nUmVmKSBvdmVycmlkZTsKICAgICB2b2lk
IGluc3RhbGxUYXBHZXN0dXJlT25XaW5kb3coSlNWYWx1ZVJlZikgb3ZlcnJpZGU7Ci0gICAgYm9v
bCBpc1Nob3dpbmdDb250ZXh0TWVudSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgc2V0U3Bl
bGxDaGVja2VyUmVzdWx0cyhKU1ZhbHVlUmVmKSBvdmVycmlkZSB7IH0KIAogICAgIGJvb2wgbWF5
Q29udGFpbkVkaXRhYmxlRWxlbWVudHNJblJlY3QodW5zaWduZWQgeCwgdW5zaWduZWQgeSwgdW5z
aWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHNldERp
ZFN0YXJ0Rm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKEpTVmFsdWVSZWYpIG92ZXJyaWRl
OwogICAgIHZvaWQgc2V0RGlkRW5kRm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKEpTVmFs
dWVSZWYpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0RGlkU2hvd0NvbnRleHRNZW51Q2FsbGJhY2so
SlNWYWx1ZVJlZikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXREaWREaXNtaXNzQ29udGV4dE1lbnVD
YWxsYmFjayhKU1ZhbHVlUmVmKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFdpbGxCZWdpblpvb21p
bmdDYWxsYmFjayhKU1ZhbHVlUmVmKSBvdmVycmlkZTsKICAgICB2b2lkIHNldERpZEVuZFpvb21p
bmdDYWxsYmFjayhKU1ZhbHVlUmVmKSBvdmVycmlkZTsKICAgICB2b2lkIHNldERpZFNob3dLZXli
b2FyZENhbGxiYWNrKEpTVmFsdWVSZWYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCmluZGV4IGE4NzRmYjI1NzRj
YjI4YmIzMzMwMmZmYTRkMmZiZmQxM2M1YTZiYTQuLjcwYmFmODMyNGQ3MjYyZGRiZmE2Yjg1ZWE4
MjQ2ODY0OWJlZGQzZWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJ
U2NyaXB0Q29udHJvbGxlcklPUy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9V
SVNjcmlwdENvbnRyb2xsZXJJT1MubW0KQEAgLTkyMiwyNiArOTIyLDYgQEAgdm9pZCBVSVNjcmlw
dENvbnRyb2xsZXJJT1M6OnNldERpZEVuZEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjayhK
U1ZhbHVlUmVmIGMKICAgICAgICAgbV9jb250ZXh0LT5maXJlQ2FsbGJhY2soQ2FsbGJhY2tUeXBl
RGlkRW5kRm9ybUNvbnRyb2xJbnRlcmFjdGlvbik7CiAgICAgfSkuZ2V0KCk7CiB9Ci0gICAgCi12
b2lkIFVJU2NyaXB0Q29udHJvbGxlcklPUzo6c2V0RGlkU2hvd0NvbnRleHRNZW51Q2FsbGJhY2so
SlNWYWx1ZVJlZiBjYWxsYmFjaykKLXsKLSAgICBVSVNjcmlwdENvbnRyb2xsZXI6OnNldERpZFNo
b3dDb250ZXh0TWVudUNhbGxiYWNrKGNhbGxiYWNrKTsKLSAgICB3ZWJWaWV3KCkuZGlkU2hvd0Nv
bnRleHRNZW51Q2FsbGJhY2sgPSBtYWtlQmxvY2tQdHIoW3RoaXMsIHN0cm9uZ1RoaXMgPSBtYWtl
UmVmKCp0aGlzKV0gewotICAgICAgICBpZiAoIW1fY29udGV4dCkKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgbV9jb250ZXh0LT5maXJlQ2FsbGJhY2soQ2FsbGJhY2tUeXBlRGlkU2hvd0Nv
bnRleHRNZW51KTsKLSAgICB9KS5nZXQoKTsKLX0KLQotdm9pZCBVSVNjcmlwdENvbnRyb2xsZXJJ
T1M6OnNldERpZERpc21pc3NDb250ZXh0TWVudUNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2sp
Ci17Ci0gICAgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWREaXNtaXNzQ29udGV4dE1lbnVDYWxs
YmFjayhjYWxsYmFjayk7Ci0gICAgd2ViVmlldygpLmRpZERpc21pc3NDb250ZXh0TWVudUNhbGxi
YWNrID0gbWFrZUJsb2NrUHRyKFt0aGlzLCBzdHJvbmdUaGlzID0gbWFrZVJlZigqdGhpcyldIHsK
LSAgICAgICAgaWYgKCFtX2NvbnRleHQpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1f
Y29udGV4dC0+ZmlyZUNhbGxiYWNrKENhbGxiYWNrVHlwZURpZERpc21pc3NDb250ZXh0TWVudSk7
Ci0gICAgfSkuZ2V0KCk7Ci19CiAKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVySU9TOjpzZXRXaWxs
QmVnaW5ab29taW5nQ2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKIHsKQEAgLTEyNjgsMTEg
KzEyNDgsNiBAQCB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcklPUzo6aW5zdGFsbFRhcEdlc3R1cmVP
bldpbmRvdyhKU1ZhbHVlUmVmIGNhbGxiYWNrKQogICAgIH0pLmdldCgpOwogfQogCi1ib29sIFVJ
U2NyaXB0Q29udHJvbGxlcklPUzo6aXNTaG93aW5nQ29udGV4dE1lbnUoKSBjb25zdAotewotICAg
IHJldHVybiB3ZWJWaWV3KCkuc2hvd2luZ0NvbnRleHRNZW51OwotfQotCiB9CiAKICNlbmRpZiAv
LyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDMwYTQ1ZWExYzdmNmE2MjUxNzc5NGRkMGNj
MjAyZTY1NDQ4ZDllYTguLjg4NTI1NDMxNTQ2MWEyNmU0NTMyZWY1NWU3OGNhYjkyZTc4MjNjZjIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMTIgQEAKKzIwMjEtMDMtMTUgIERldmluIFJvdXNzbyAgPGRyb3Vz
c29AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gY2hhbmdlIGZvciB0aGUgbGFuZ3VhZ2Uv
c3VidGl0bGUgdHJhY2tzIGJ1dHRvbiB0byB1c2UgYW4gYE5TTWVudWAgaW5zdGVhZCBvZiB3ZWIg
Y29udGVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjIzMjM5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NTQ2MjM0MD4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC9hdXRvLXRleHQtdHJhY2suaHRtbDogQWRkZWQuCisgICAg
ICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2F1dG8tdGV4
dC10cmFjay1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9jbGljay10cmFjay1pbi1jb250ZXh0bWVudS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvY2xpY2stdHJhY2staW4tY29udGV4dG1lbnUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaGlkZGVu
LXRyYWNrcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvaGlkZGVuLXRyYWNrcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9vZmYtdGV4
dC10cmFjay5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvb2ZmLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvc2hvdy1j
b250ZXh0bWVudS10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9z
aG93LWNvbnRleHRtZW51LXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24tZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvdGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90
ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3Ry
YWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBv
cnQtYXV0by10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0
LWNsaWNrLXRyYWNrLWluLWNvbnRleHRtZW51Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9y
dC1jbGljay10cmFjay1pbi1jb250ZXh0bWVudS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFj
a3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1o
aWRkZW4tdHJhY2tzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LW9mZi10
ZXh0LXRyYWNrLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1zaG93LWNvbnRleHRtZW51LXRo
ZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1z
dXBwb3J0LXNob3ctY29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRv
bi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVj
dGVkLXZpYS1tZWRpYS1hcGkuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LXRleHQtdHJh
Y2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
IE1vdmUgdGhlIGlPUyB0cmFja3Mgc3VwcG9ydCB0ZXN0cyBvdXQgb2YgYW4gaU9TIGZvbGRlciBz
aW5jZSBtYWNPUyBub3cgYWxzbyB1c2VzIGEgY29udGV4dG1lbnUuCisKKyAgICAgICAgKiBtZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLWxvYWRlci5q
czoKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcmVzb3VyY2VzL21lZGlh
LWNvbnRyb2xzLXV0aWxzLmpzOgorICAgICAgICAoc2hvd1RyYWNrc1BhbmVsKTogRGVsZXRlZC4K
KyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNr
cy1wYW5lbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1w
YW5lbC1jb250cm9scy1iYXItcmVtYWlucy12aXNpYmxlLWFmdGVyLWNsaWNraW5nLW92ZXItaXQu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1jb250cm9scy1iYXItcmVtYWlucy12aXNpYmxlLWFmdGVy
LWNsaWNraW5nLW92ZXItaXQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWhpZGUuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXBhbmVsL3RyYWNrcy1wYW5lbC1oaWRlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1o
aWRlLWNsaWNrLW91dHNpZGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1oaWRlLWNsaWNrLW91dHNp
ZGUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWhpZGUtZXNjLWtleS5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwv
dHJhY2tzLXBhbmVsLWhpZGUtZXNjLWtleS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwt
cG9wdWxhdGlvbi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXBvcHVsYXRpb24tZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
cGFuZWwvdHJhY2tzLXBhbmVsLXBvc2l0aW9uLWFuZC1zaXplLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFu
ZWwtcG9zaXRpb24tYW5kLXNpemUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXByZXZl
bnQtY29udHJvbHMtYmFyLWZyb20tZmFkaW5nLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcHJldmVu
dC1jb250cm9scy1iYXItZnJvbS1mYWRpbmctZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVs
LXByZXZlbnQtZGVmYXVsdC1vbi1rZXlkb3duLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcHJldmVu
dC1kZWZhdWx0LW9uLWtleWRvd24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXJpZ2h0
LXguaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1yaWdodC14LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4K
KyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNr
cy1wYW5lbC1zZWxlY3QtdHJhY2std2l0aC1rZXlib2FyZC5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVs
LXNlbGVjdC10cmFjay13aXRoLWtleWJvYXJkLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5l
bC1zZWxlY3QtdHJhY2std2l0aC1tb3VzZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXNlbGVjdC10
cmFjay13aXRoLW1vdXNlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC11cC1jbGljay1v
dXRzaWRlLW1lZGlhLWRvZXMtbm90LWRpbWlzcy1tZWRpYS1jb250cm9scy13aGVuLW1lZGlhLWlz
LXBhdXNlZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXVwLWNsaWNrLW91dHNpZGUtbWVkaWEtZG9l
cy1ub3QtZGltaXNzLW1lZGlhLWNvbnRyb2xzLXdoZW4tbWVkaWEtaXMtcGF1c2VkLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXBhbmVsL3RyYWNrcy1wYW5lbC11cC1jbGljay1vdmVyLW1lZGlhLWRvZXMtbm90LWRpbWlz
cy1tZWRpYS1jb250cm9scy13aGVuLW1lZGlhLWlzLXBsYXlpbmcuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1w
YW5lbC11cC1jbGljay1vdmVyLW1lZGlhLWRvZXMtbm90LWRpbWlzcy1tZWRpYS1jb250cm9scy13
aGVuLW1lZGlhLWlzLXBsYXlpbmctZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBv
cnQtYXV0by10ZXh0LXRyYWNrLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1hdXRvLXRl
eHQtdHJhY2stZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtY2xpY2stdHJh
Y2staW4tcGFuZWwuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWNsaWNrLXRyYWNrLWlu
LXBhbmVsLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWhpZGRlbi10cmFj
a3MuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWhpZGRlbi10cmFja3MtZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJhY2suaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
bWFjL3RyYWNrcy1zdXBwb3J0LW9mZi10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4K
KyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFj
L3RyYWNrcy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90
cmFja3Mtc3VwcG9ydC1zaG93LWFuZC1wb3B1bGF0ZS1wYW5lbC1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNvbnRyb2xzLmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNv
bnRyb2xzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwt
ZnVsbHNjcmVlbi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1mdWxs
c2NyZWVuLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwt
dGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tz
LXN1cHBvcnQtc2hvdy1wYW5lbC10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXRleHQtdHJhY2stc2VsZWN0ZWQt
dmlhLW1lZGlhLWFwaS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1z
ZWxlY3RlZC12aWEtbWVkaWEtYXBpLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgUmVt
b3ZlIGV2ZXJ5dGhpbmcgcmVsYXRlZCB0byBgVHJhY2tzUGFuZWxgIG5vdyB0aGF0IG1hY09TIGFs
c28gdXNlcyBhIGNvbnRleHRtZW51LgorCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L2NhcHRpb25zLW9mZnNldC13aXRoLWNvbnRyb2xzLWJhci5o
dG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LWNhcHRpb25zLW9mZnNldC13aXRoLWNvbnRy
b2xzLWJhci5odG1sLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC9jYXB0aW9ucy1vZmZzZXQtd2l0aC1jb250cm9scy1iYXItZXhwZWN0ZWQudHh0
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LWNhcHRpb25zLW9mZnNldC13aXRoLWNvbnRyb2xz
LWJhci1leHBlY3RlZC50eHQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1zdXBwb3J0L25vLXRyYWNrcy5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0
LW5vLXRyYWNrcy5odG1sLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3Mtc3VwcG9ydC9uby10cmFja3MtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1z
dXBwb3J0LW5vLXRyYWNrcy1leHBlY3RlZC50eHQuCisgICAgICAgIFJlbmFtZWQgdGhlc2UgdGVz
dHMgdG8gcmVtb3ZlIHRoZSByZWR1bmRhbnQgInRyYWNrcy1zdXBwb3J0Ii4KKworICAgICAgICAq
IG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9y
dC1hdWRpby10cmFja3MuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtYXVkaW8tdHJhY2tzLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFja3MuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
dHJhY2tzLXN1cHBvcnQtdGV4dC10cmFja3MtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICBUaGVzZSB0ZXN0cyBhcmUgY292ZXJlZCBieSB0aGUgb3RoZXIgYWRkZWQvcmVuYW1lZCB0ZXN0
cyBhYm92ZS4KKworICAgICAgICAqIHJlc291cmNlcy91aS1oZWxwZXIuanM6CisgICAgICAgICh3
aW5kb3cuVUlIZWxwZXIuY2hvb3NlTWVudUFjdGlvbik6IEFkZGVkLgorICAgICAgICAod2luZG93
LlVJSGVscGVyLmFzeW5jIGNob29zZU1lbnVBY3Rpb24pOiBEZWxldGVkLgorICAgICAgICBVc2Ug
YFVJU2NyaXB0Q29udHJvbGxlci5wcm90b3R5cGUuY2hvb3NlTWVudUFjdGlvbmAgaW5zdGVhZCBv
ZiBhIGNvbWJpbmF0aW9uIG9mCisgICAgICAgIGBVSVNjcmlwdENvbnRyb2xsZXIucHJvdG90eXBl
LnJlY3RGb3JNZW51QWN0aW9uYCBhbmQgYFVJU2NyaXB0Q29udHJvbGxlci5wcm90b3R5cGUuYWN0
aXZhdGVBdGAKKyAgICAgICAgc2luY2UgYFVJU2NyaXB0Q29udHJvbGxlcjo6Y2hvb3NlTWVudUFj
dGlvbmAgYmFzaWNhbGx5IGRvZXMgdGhhdCBhbnl3YXlzLgorCisgICAgICAgICogVGVzdEV4cGVj
dGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjEtMDMtMTIgIFJvYmVydCBKZW5uZXIgIDxq
ZW5uZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFsgTWFjT1Mgd2syIF0gaW5zcGVjdG9yL2RlYnVn
Z2VyL2JyZWFrcG9pbnRzL3Jlc29sdmVkLWR1bXAtYWxsLWlubGluZS1zY3JpcHQtcGF1c2UtbG9j
YXRpb25zLmh0bWwgaXMgZmxha2V5IHRpbWluZyBvdXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDU1
YTg4YjkyYTk4Zjg1YzlhM2YxMTY1MzcwMzc0OWYxMDQ3MzAyZTQuLjIxMmE3MjMyM2U5NGZlMDRj
OWZjYzk1MzQwZDM3ZGE5OTkxNWUwMDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNjQsNiArNjQs
NyBAQCBmYXN0L3RleHQvbWFjIFsgU2tpcCBdCiBzY3JvbGxpbmdjb29yZGluYXRvciBbIFNraXAg
XQogbWVkaWEvbWFjIFsgU2tpcCBdCiBtZWRpYS9pb3MgWyBTa2lwIF0KK21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydCBbIFNraXAgXQogZmFzdC90ZXh0LWF1dG9zaXpp
bmcgWyBTa2lwIF0KIGZhc3QvY3NzL3ZhcmlhYmxlcy9lbnYvaW9zIFsgU2tpcCBdCiBodHRwL3Rl
c3RzL2V2ZW50cy90b3VjaC9pb3MgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtbG9hZGVy
LmpzIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Jlc291cmNlcy9t
ZWRpYS1jb250cm9scy1sb2FkZXIuanMKaW5kZXggM2Q0OWFmY2RlNTBjZTE5MzEwZjhmM2MxZGE4
Y2JmZmJhNGQ1NzEzMy4uOGVmMmIzNDg3NWI4NDliZjI5ODEwY2M0NjZlYWI0ZjQ4YTE1YzA2MCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Jlc291
cmNlcy9tZWRpYS1jb250cm9scy1sb2FkZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy1sb2FkZXIuanMKQEAg
LTYsNyArNiw3IEBACiAgICAgY29uc3QgbGF5b3V0VGVzdHNQYXRoID0gd2luZG93LmxvY2F0aW9u
LmhyZWYuc3Vic3RyKDAsIHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoIi9MYXlvdXRUZXN0
cy8iKSk7CiAgICAgY29uc3QgbW9kdWxlUGF0aCA9IGxheW91dFRlc3RzUGF0aCA/IGxheW91dFRl
c3RzUGF0aCArICIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMi
IDogIi9tb2Rlcm4tbWVkaWEtY29udHJvbHMiOwogCi0gICAgWyJhY3Rpdml0eS1pbmRpY2F0b3Ii
LCAiYWlycGxheS1idXR0b24iLCAiYmFja2dyb3VuZC10aW50IiwgImJ1dHRvbiIsICJidXR0b25z
LWNvbnRhaW5lciIsICJjb250cm9scy1iYXIiLCAiaW5saW5lLW1lZGlhLWNvbnRyb2xzIiwgIm1h
Y29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMiLCAibWFjb3MtaW5saW5lLW1lZGlhLWNvbnRy
b2xzIiwgIm1lZGlhLWNvbnRyb2xzIiwgIm1lZGlhLWRvY3VtZW50IiwgInBsYWNhcmQiLCAic2xp
ZGVyIiwgInN0YXR1cy1sYWJlbCIsICJ0ZXh0LXRyYWNrcyIsICJ0aW1lLWxhYmVsIiwgInRyYWNr
cy1wYW5lbCJdLmZvckVhY2goY3NzRmlsZSA9PiB7CisgICAgWyJhY3Rpdml0eS1pbmRpY2F0b3Ii
LCAiYWlycGxheS1idXR0b24iLCAiYmFja2dyb3VuZC10aW50IiwgImJ1dHRvbiIsICJidXR0b25z
LWNvbnRhaW5lciIsICJjb250cm9scy1iYXIiLCAiaW5saW5lLW1lZGlhLWNvbnRyb2xzIiwgIm1h
Y29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMiLCAibWFjb3MtaW5saW5lLW1lZGlhLWNvbnRy
b2xzIiwgIm1lZGlhLWNvbnRyb2xzIiwgIm1lZGlhLWRvY3VtZW50IiwgInBsYWNhcmQiLCAic2xp
ZGVyIiwgInN0YXR1cy1sYWJlbCIsICJ0ZXh0LXRyYWNrcyIsICJ0aW1lLWxhYmVsIl0uZm9yRWFj
aChjc3NGaWxlID0+IHsKICAgICAgICAgZG9jdW1lbnQud3JpdGUoYDxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9IiR7bW9kdWxlUGF0aH0vY29udHJvbHMvJHtjc3NG
aWxlfS5jc3MiPmApOwogICAgIH0pOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzIGIv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Jlc291cmNlcy9tZWRpYS1j
b250cm9scy11dGlscy5qcwppbmRleCAyZGM4ZjRiNTIxYWE3MmI1NDc1YjBjMzYyMGU5NjViMjY3
N2Y1NDg3Li5mNmU4NWExN2QwMGRlNDAzMzFmZDE4MGNjOTFmYzQ5ZjM2MmU3NTEwIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcmVzb3VyY2VzL21l
ZGlhLWNvbnRyb2xzLXV0aWxzLmpzCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMKQEAgLTgzLDI2ICs4
Myw2IEBAIGZ1bmN0aW9uIHByZXNzQXRQb2ludCh4LCB5LCBjb250aW51YXRpb24pCiAgICAgfQog
fQogCi1mdW5jdGlvbiBzaG93VHJhY2tzUGFuZWwoc2hhZG93Um9vdCwgY29udGludWF0aW9uKQot
ewotICAgIGlmICh0eXBlb2YgY29udGludWF0aW9uICE9PSAiZnVuY3Rpb24iKQotICAgICAgICBj
b250aW51YXRpb24gPSBuZXcgRnVuY3Rpb247Ci0KLSAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQo
InNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9
PiB7Ci0gICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVj
dG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIs
ICgpID0+IHsKLSAgICAgICAgICAgIGRlYnVnKCI9PiBUcmFja3MgYnV0dG9uIGlzIHZpc2libGUu
IikKLSAgICAgICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgICAgIGRlYnVnKCJQcmVzc2luZyBv
biB0aGUgdHJhY2tzIGJ1dHRvbi4iKTsKLSAgICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRv
d1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKTsKLSAgICAgICAgICAgIHNob3Vs
ZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVs
JykiLCAibnVsbCIsICgpID0+IHsKLSAgICAgICAgICAgICAgICBkZWJ1ZygiPT4gVHJhY2tzIHBh
bmVsIGlzIHZpc2libGUuIikKLSAgICAgICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAg
ICAgICAgY29udGludWF0aW9uKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAg
fSk7Ci19Ci0KIGZ1bmN0aW9uIGdldFRyYWNrc0NvbnRleHRNZW51KCkKIHsKICAgICByZXR1cm4g
bmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWNvbnRyb2xz
LWJhci1yZW1haW5zLXZpc2libGUtYWZ0ZXItY2xpY2tpbmctb3Zlci1pdC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3Ry
YWNrcy1wYW5lbC1jb250cm9scy1iYXItcmVtYWlucy12aXNpYmxlLWFmdGVyLWNsaWNraW5nLW92
ZXItaXQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNDE5MTNj
M2VkYzY1ZDQ1MzhjYWI5NzhmOGY5NzRiYjQ0ZTUxZmJhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWNvbnRyb2xzLWJhci1yZW1haW5zLXZp
c2libGUtYWZ0ZXItY2xpY2tpbmctb3Zlci1pdC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwxOSArMCwwIEBACi1DbGlja2luZyBvbiB0aGUgY29udHJvbHMgYmFyIHRvIGRpc21pc3Mg
dGhlIHRyYWNrcyBwYW5lbCBzaG91bGQgbm90IGhpZGUgdGhlIGNvbnRyb2xzIGJhciwgb25seSB0
aGUgdHJhY2sgcGFuZWwuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50
UmVjdCgpLndpZHRoID4gMCBiZWNhbWUgdHJ1ZQotUEFTUyBzaGFkb3dSb290LmNvbnRhaW5zKHNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpKSBiZWNhbWUgdHJ1ZQotUEFT
UyBtZWRpYS5jdXJyZW50VGltZSA+IDAuMjUwIGJlY2FtZSB0cnVlCi0KLVdlJ3ZlIHdhaXRlZCBs
b25nIGVub3VnaCBzbyB0aGF0IHRoZSBjb250cm9scyBiYXIgc2hvdWxkIGJlIGZhZGVkIHNob3Vs
ZCB0aGUgdHJhY2tzIHBhbmVsIG5vdCBiZSB2aXNpYmxlLgotUEFTUyBzaGFkb3dSb290LnF1ZXJ5
U2VsZWN0b3IoJy5tZWRpYS1jb250cm9scycpLmNsYXNzTGlzdC5jb250YWlucygnZmFkZWQnKSBp
cyBmYWxzZQotCi1DbGljayBvbiB0aGUgY29udHJvbHMgYmFyIHRvIGRpc21pc3MgdGhlIHBhbmVs
LCB0aGUgY29udHJvbHMgYmFyIHNob3VsZCByZW1haW4gdmlzaWJsZS4KLVBBU1Mgc2hhZG93Um9v
dC5jb250YWlucyhzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKSkgYmVj
YW1lIGZhbHNlCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLm1lZGlhLWNvbnRyb2xz
JykuY2xhc3NMaXN0LmNvbnRhaW5zKCdmYWRlZCcpIGlzIGZhbHNlCi1QQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwt
Y29udHJvbHMtYmFyLXJlbWFpbnMtdmlzaWJsZS1hZnRlci1jbGlja2luZy1vdmVyLWl0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3Ry
YWNrcy1wYW5lbC1jb250cm9scy1iYXItcmVtYWlucy12aXNpYmxlLWFmdGVyLWNsaWNraW5nLW92
ZXItaXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTg4MWZhZjgzZTBmMGRm
Y2M4MmE3MTkzNDEzODQ5Y2Q2NDdkZGEzMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1jb250cm9scy1iYXItcmVtYWlucy12aXNpYmxlLWFm
dGVyLWNsaWNraW5nLW92ZXItaXQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAK
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy1sb2FkZXIuanMiIHR5
cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0
PgotPGJvZHk+Ci08dmlkZW8gc3JjPSIuLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0
eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDY0MHB4OyBo
ZWlnaHQ6IDM2MHB4OyIgY29udHJvbHMgYXV0b3BsYXkgZGF0YS1hdXRvLWhpZGUtZGVsYXk9IjI1
MCI+PC92aWRlbz4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbigiQ2xpY2tpbmcgb24gdGhlIGNvbnRy
b2xzIGJhciB0byBkaXNtaXNzIHRoZSB0cmFja3MgcGFuZWwgc2hvdWxkIG5vdCBoaWRlIHRoZSBj
b250cm9scyBiYXIsIG9ubHkgdGhlIHRyYWNrIHBhbmVsLiIpOwotCi1jb25zdCBtZWRpYSA9IGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Ci1jb25zdCBzaGFkb3dSb290ID0gd2luZG93
LmludGVybmFscy5zaGFkb3dSb290KG1lZGlhKTsKLQotc2hvdWxkQmVjb21lRXF1YWwoInNoYWRv
d1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpLndpZHRoID4gMCIsICJ0cnVlIiwgKCkgPT4gewotICAgIHByZXNzT25FbGVtZW50KHNoYWRv
d1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpLCAoKSA9PiB7Ci0gICAgICAgIHNo
b3VsZEJlY29tZUVxdWFsKCJzaGFkb3dSb290LmNvbnRhaW5zKHNoYWRvd1Jvb3QucXVlcnlTZWxl
Y3RvcignLnRyYWNrcy1wYW5lbCcpKSIsICJ0cnVlIiwgKCkgPT4gewotICAgICAgICAgICAgc2hv
dWxkQmVjb21lRXF1YWwoIm1lZGlhLmN1cnJlbnRUaW1lID4gMC4yNTAiLCAidHJ1ZSIsICgpID0+
IHsKLQotICAgICAgICAgICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgICAgICAgICBkZWJ1Zygi
V2UndmUgd2FpdGVkIGxvbmcgZW5vdWdoIHNvIHRoYXQgdGhlIGNvbnRyb2xzIGJhciBzaG91bGQg
YmUgZmFkZWQgc2hvdWxkIHRoZSB0cmFja3MgcGFuZWwgbm90IGJlIHZpc2libGUuIik7Ci0gICAg
ICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcubWVk
aWEtY29udHJvbHMnKS5jbGFzc0xpc3QuY29udGFpbnMoJ2ZhZGVkJykiKTsKLQotICAgICAgICAg
ICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgICAgICAgICBkZWJ1ZygiQ2xpY2sgb24gdGhlIGNv
bnRyb2xzIGJhciB0byBkaXNtaXNzIHRoZSBwYW5lbCwgdGhlIGNvbnRyb2xzIGJhciBzaG91bGQg
cmVtYWluIHZpc2libGUuIik7Ci0gICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3Zl
VG8oNjMyLCAzMzkpOwotICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwot
ICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLQotICAgICAgICAgICAgICAg
IHNob3VsZEJlY29tZUVxdWFsKCJzaGFkb3dSb290LmNvbnRhaW5zKHNoYWRvd1Jvb3QucXVlcnlT
ZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpKSIsICJmYWxzZSIsICgpID0+IHsKLSAgICAgICAgICAg
ICAgICAgICAgc2hvdWxkQmVGYWxzZSgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcubWVkaWEt
Y29udHJvbHMnKS5jbGFzc0xpc3QuY29udGFpbnMoJ2ZhZGVkJykiKTsKLSAgICAgICAgICAgICAg
ICAgICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAgICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgp
OwotICAgICAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0g
ICAgfSk7Ci19KTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5l
bC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGQ4ZmQ5NjMyZjEzYWQ2NjY1MTkwMzQ5MWM5M2E3OTUyMDBmNGM0NmQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotVGVzdGluZyB0aGUgVHJh
Y2tzUGFuZWwgY2xhc3MgcHJvcGVydGllcy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgot
Ci0KLUJhc2ljIHByb3BlcnRpZXMKLVBBU1MgdHJhY2tzUGFuZWwuZWxlbWVudC5sb2NhbE5hbWUg
aXMgImRpdiIKLVBBU1MgdHJhY2tzUGFuZWwuZWxlbWVudC5jbGFzc05hbWUgaXMgInRyYWNrcy1w
YW5lbCIKLVBBU1MgdHJhY2tzUGFuZWwucHJlc2VudGVkIGlzIGZhbHNlCi1QQVNTIHRyYWNrc1Bh
bmVsLnJpZ2h0WCBpcyAwCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVT
VCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1oaWRlLWNsaWNrLW91dHNpZGUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1wYW5lbC90cmFja3MtcGFuZWwtaGlkZS1jbGljay1vdXRzaWRlLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDM3M2I3NWNlNDIyM2ZjYjY4MDdjMzE5YThjNGVl
OTk0OTM0MDNlNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3Ry
YWNrcy1wYW5lbC1oaWRlLWNsaWNrLW91dHNpZGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMTcgKzAsMCBAQAotVGVzdGluZyBhIFRyYWNrc1BhbmVsIGlzIGhpZGRlbiB1cG9uIGNs
aWNraW5nIG91dHNpZGUgb2YgaXQuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1t
ZWRpYUNvbnRyb2xzLnNob3dUcmFja3NQYW5lbCgpCi1QQVNTIGRvY3VtZW50LmJvZHkuY29udGFp
bnMobWVkaWFDb250cm9scy50cmFja3NQYW5lbC5lbGVtZW50KSBiZWNhbWUgdHJ1ZQotUEFTUyBt
ZWRpYUNvbnRyb2xzLnRyYWNrc1BhbmVsLnByZXNlbnRlZCBpcyB0cnVlCi0KLUNsaWNraW5nIG91
dHNpZGUgb2YgdGhlIHBhbmVsCi1QQVNTIGRvY3VtZW50LmJvZHkuY29udGFpbnMobWVkaWFDb250
cm9scy50cmFja3NQYW5lbC5lbGVtZW50KSBiZWNhbWUgZmFsc2UKLVBBU1MgbWVkaWFDb250cm9s
cy50cmFja3NQYW5lbC5wcmVzZW50ZWQgaXMgZmFsc2UKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWhpZGUt
Y2xpY2stb3V0c2lkZS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtaGlkZS1jbGljay1vdXRzaWRlLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNmOTgwNDJjNDI4NWQ2MTgzZWFkNWM1NzZlM2Zh
YTkzMWEyYTEzNTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90
cmFja3MtcGFuZWwtaGlkZS1jbGljay1vdXRzaWRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwz
MyArMCwwIEBACi08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtbG9h
ZGVyLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPGJvZHk+Ci08c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
LQotZGVzY3JpcHRpb24oIlRlc3RpbmcgYSA8Y29kZT5UcmFja3NQYW5lbDwvY29kZT4gaXMgaGlk
ZGVuIHVwb24gY2xpY2tpbmcgb3V0c2lkZSBvZiBpdC4iKTsKLQotY29uc3QgbWVkaWFDb250cm9s
cyA9IG5ldyBNYWNPU0lubGluZU1lZGlhQ29udHJvbHMoeyB3aWR0aDogNjgwLCBoZWlnaHQ6IDMw
MCB9KTsKLWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobWVkaWFDb250cm9scy5lbGVtZW50KTsK
LQotZGVidWcoIm1lZGlhQ29udHJvbHMuc2hvd1RyYWNrc1BhbmVsKCkiKTsKLW1lZGlhQ29udHJv
bHMuc2hvd1RyYWNrc1BhbmVsKCk7Ci0KLXNob3VsZEJlY29tZUVxdWFsKCJkb2N1bWVudC5ib2R5
LmNvbnRhaW5zKG1lZGlhQ29udHJvbHMudHJhY2tzUGFuZWwuZWxlbWVudCkiLCAidHJ1ZSIsICgp
ID0+IHsKLSAgICBzaG91bGRCZVRydWUoIm1lZGlhQ29udHJvbHMudHJhY2tzUGFuZWwucHJlc2Vu
dGVkIik7Ci0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJDbGlja2luZyBvdXRzaWRlIG9mIHRo
ZSBwYW5lbCIpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDEwLCAxMCk7Ci0gICAgZXZl
bnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotICAgIHNo
b3VsZEJlY29tZUVxdWFsKCJkb2N1bWVudC5ib2R5LmNvbnRhaW5zKG1lZGlhQ29udHJvbHMudHJh
Y2tzUGFuZWwuZWxlbWVudCkiLCAiZmFsc2UiLCAoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlRmFs
c2UoIm1lZGlhQ29udHJvbHMudHJhY2tzUGFuZWwucHJlc2VudGVkIik7Ci0gICAgICAgIGRlYnVn
KCIiKTsKLSAgICAgICAgbWVkaWFDb250cm9scy5lbGVtZW50LnJlbW92ZSgpOwotICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKLSAgICB9KTsKLX0pOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
cGFuZWwvdHJhY2tzLXBhbmVsLWhpZGUtZXNjLWtleS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1o
aWRlLWVzYy1rZXktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk
ZTc1NjdkZDg2YWMxZDg3OGI1ZjE4MDM2ZWJkZjg4OThkNWJjZWIzLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWhpZGUtZXNjLWtleS1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1UZXN0aW5nIGEgVHJhY2tz
UGFuZWwgaXMgaGlkZGVuIHVwb24gaGl0dGluZyB0aGUgRXNjLiBrZXkuCi0KLU9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KLQotCi1tZWRpYUNvbnRyb2xzLnNob3dUcmFja3NQYW5lbCgpCi0KLVBy
ZXNzaW5nIHRoZSBFc2NhcGUga2V5Ci0KLVRyYW5zaXRpb24gZW5kZWQKLVBBU1MgbWVkaWFDb250
cm9scy50cmFja3NQYW5lbC5wcmVzZW50ZWQgaXMgZmFsc2UKLQotUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWhp
ZGUtZXNjLWtleS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtaGlkZS1lc2Mta2V5Lmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDcwZTliMGQyMWY0ZTc4N2NlMGZkNTBjZTNiYzI1ZGEwNmU5ODc2
MmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFu
ZWwtaGlkZS1lc2Mta2V5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtbG9hZGVyLmpzIiB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPGJvZHk+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24o
IlRlc3RpbmcgYSA8Y29kZT5UcmFja3NQYW5lbDwvY29kZT4gaXMgaGlkZGVuIHVwb24gaGl0dGlu
ZyB0aGUgRXNjLiBrZXkuIik7Ci0KLWNvbnN0IG1lZGlhQ29udHJvbHMgPSBuZXcgTWFjT1NJbmxp
bmVNZWRpYUNvbnRyb2xzKHsgd2lkdGg6IDY4MCwgaGVpZ2h0OiAzMDAgfSk7Ci1kb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKG1lZGlhQ29udHJvbHMuZWxlbWVudCk7Ci0KLWRlYnVnKCJtZWRpYUNv
bnRyb2xzLnNob3dUcmFja3NQYW5lbCgpIik7Ci1tZWRpYUNvbnRyb2xzLnNob3dUcmFja3NQYW5l
bCgpOwotCi1zY2hlZHVsZXIuZnJhbWVEaWRGaXJlID0gZnVuY3Rpb24oKQotewotICAgIHdpbmRv
dy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewotICAgICAgICBkZWJ1ZygiIik7Ci0gICAg
ICAgIGRlYnVnKCJQcmVzc2luZyB0aGUgRXNjYXBlIGtleSIpOwotICAgICAgICBldmVudFNlbmRl
ci5rZXlEb3duKCJFc2NhcGUiKTsKLSAgICAgICAgbWVkaWFDb250cm9scy50cmFja3NQYW5lbC5l
bGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLCAoZXZlbnQpID0+IHsKLSAg
ICAgICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgICAgIGRlYnVnKCJUcmFuc2l0aW9uIGVuZGVk
Iik7Ci0gICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJtZWRpYUNvbnRyb2xzLnRyYWNrc1BhbmVs
LnByZXNlbnRlZCIpOwotCi0gICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICBtZWRp
YUNvbnRyb2xzLmVsZW1lbnQucmVtb3ZlKCk7Ci0gICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
LSAgICAgICAgfSk7Ci0gICAgfSk7Ci0gICAgc2NoZWR1bGVyLmZyYW1lRGlkRmlyZSA9IG51bGw7
Ci19Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtaGlkZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1oaWRlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYjYzNjQ1MGFmNmExOGViZmYwNGNjOTljNzA4ZTRmY2U2YjFiOWM0Yi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1o
aWRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRlc3Rpbmcg
YSBUcmFja3NQYW5lbCBpcyBoaWRkZW4gd2l0aCBhbiBhbmltYXRpb24uCi0KLU9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KLQotCi10cmFja3NQYW5lbC5wcmVzZW50SW5QYXJlbnQoY29udGFpbmVy
KQotUEFTUyB0cmFja3NQYW5lbC5wcmVzZW50ZWQgaXMgdHJ1ZQotCi10cmFja3NQYW5lbC5oaWRl
KCkKLVBBU1MgdHJhY2tzUGFuZWwucHJlc2VudGVkIGlzIGZhbHNlCi0KLVRyYW5zaXRpb24gZW5k
ZWQKLVBBU1MgdHJhY2tzUGFuZWwucHJlc2VudGVkIGlzIGZhbHNlCi0KLVBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5l
bC1oaWRlLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1oaWRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDc4OGEyMjgwZDAzOThiYjY1NmQwZWUzYTQyNDlhM2UzYzc4ZmM0OGYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtaGlkZS5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL21lZGlhLWNvbnRyb2xzLWxvYWRlci5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3Nj
cmlwdD4KLTxib2R5PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJUZXN0aW5nIGEgPGNvZGU+VHJh
Y2tzUGFuZWw8L2NvZGU+IGlzIGhpZGRlbiB3aXRoIGFuIGFuaW1hdGlvbi4iKTsKLQotY29uc3Qg
dHJhY2tzUGFuZWwgPSBuZXcgVHJhY2tzUGFuZWw7Ci1jb25zdCBjb250YWluZXIgPSBuZXcgTGF5
b3V0Tm9kZTsKLQotZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb250YWluZXIuZWxlbWVudCk7
Ci0KLWRlYnVnKCJ0cmFja3NQYW5lbC5wcmVzZW50SW5QYXJlbnQoY29udGFpbmVyKSIpOwotdHJh
Y2tzUGFuZWwucHJlc2VudEluUGFyZW50KGNvbnRhaW5lcik7Ci0KLXNjaGVkdWxlci5mcmFtZURp
ZEZpcmUgPSBmdW5jdGlvbigpCi17Ci0gICAgc2hvdWxkQmVUcnVlKCJ0cmFja3NQYW5lbC5wcmVz
ZW50ZWQiKTsKLQotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygidHJhY2tzUGFuZWwuaGlkZSgp
Iik7Ci0gICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAgICAgIHRy
YWNrc1BhbmVsLmhpZGUoKTsKLSAgICAgICAgc2hvdWxkQmVGYWxzZSgidHJhY2tzUGFuZWwucHJl
c2VudGVkIik7Ci0gICAgICAgIHRyYWNrc1BhbmVsLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi
dHJhbnNpdGlvbmVuZCIsIChldmVudCkgPT4gewotICAgICAgICAgICAgZGVidWcoIiIpOwotICAg
ICAgICAgICAgZGVidWcoIlRyYW5zaXRpb24gZW5kZWQiKTsKLSAgICAgICAgICAgIHNob3VsZEJl
RmFsc2UoInRyYWNrc1BhbmVsLnByZXNlbnRlZCIpOwotICAgICAgICAgICAgZGVidWcoIiIpOwot
ICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotICAgIHNj
aGVkdWxlci5mcmFtZURpZEZpcmUgPSBudWxsOwotfQotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3MtcGFuZWwvdHJhY2tzLXBhbmVsLXBvcHVsYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwt
cG9wdWxhdGlvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcz
MzlmYjAzN2ExNmQ4ZGEwMGY3YTgzMzcyZmI2MWVmMWFhNjczMzMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcG9wdWxhdGlvbi1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi1Qb3B1bGF0aW5nIGEgVHJhY2tz
UGFuZWwgaW5zdGFuY2UuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHRy
YWNrc1BhbmVsLnByZXNlbnRlZCBpcyB0cnVlCi1QQVNTIHRyYWNrc1BhbmVsLnBhcmVudCBpcyBj
b250YWluZXIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuLmxlbmd0aCBpcyBudW1iZXJP
ZlNlY3Rpb25zCi0KLUhpZXJhcmNoeSBmb3Igc2VjdGlvbiAjMAotUEFTUyBzY3JvbGxDb250YWlu
ZXIuY2hpbGRyZW5bMF0uZWxlbWVudC5sb2NhbE5hbWUgaXMgInNlY3Rpb24iCi1QQVNTIHNjcm9s
bENvbnRhaW5lci5jaGlsZHJlblswXS5jaGlsZHJlbi5sZW5ndGggaXMgMgotUEFTUyBzY3JvbGxD
b250YWluZXIuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF0uZWxlbWVudC5sb2NhbE5hbWUgaXMgImgz
IgotUEFTUyBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF0uZWxlbWVudC50
ZXh0Q29udGVudCBpcyAiVGl0bGUgIzAiCi1QQVNTIHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblsw
XS5jaGlsZHJlblsxXS5lbGVtZW50LmxvY2FsTmFtZSBpcyAidWwiCi1QQVNTIHNjcm9sbENvbnRh
aW5lci5jaGlsZHJlblswXS5jaGlsZHJlblsxXS5jaGlsZHJlbi5sZW5ndGggaXMgMwotUEFTUyBz
Y3JvbGxDb250YWluZXIuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMV0uY2hpbGRyZW5bdHJhY2tJbmRl
eF0uZWxlbWVudC5sb2NhbE5hbWUgaXMgImxpIgotUEFTUyBzY3JvbGxDb250YWluZXIuY2hpbGRy
ZW5bMF0uY2hpbGRyZW5bMV0uY2hpbGRyZW5bdHJhY2tJbmRleF0uZWxlbWVudC5jbGFzc05hbWUg
aXMgIiIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzFdLmNoaWxk
cmVuW3RyYWNrSW5kZXhdLmVsZW1lbnQudGV4dENvbnRlbnQgaXMgIlRyYWNrIDB4MCIKLVBBU1Mg
c2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzFdLmNoaWxkcmVuW3RyYWNrSW5k
ZXhdLmVsZW1lbnQubG9jYWxOYW1lIGlzICJsaSIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxk
cmVuWzBdLmNoaWxkcmVuWzFdLmNoaWxkcmVuW3RyYWNrSW5kZXhdLmVsZW1lbnQuY2xhc3NOYW1l
IGlzICJzZWxlY3RlZCIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWzBdLmNoaWxkcmVu
WzFdLmNoaWxkcmVuW3RyYWNrSW5kZXhdLmVsZW1lbnQudGV4dENvbnRlbnQgaXMgIlRyYWNrIDB4
MSIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzFdLmNoaWxkcmVu
W3RyYWNrSW5kZXhdLmVsZW1lbnQubG9jYWxOYW1lIGlzICJsaSIKLVBBU1Mgc2Nyb2xsQ29udGFp
bmVyLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzFdLmNoaWxkcmVuW3RyYWNrSW5kZXhdLmVsZW1lbnQu
Y2xhc3NOYW1lIGlzICIiCi1QQVNTIHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblswXS5jaGlsZHJl
blsxXS5jaGlsZHJlblt0cmFja0luZGV4XS5lbGVtZW50LnRleHRDb250ZW50IGlzICJUcmFjayAw
eDIiCi0KLUhpZXJhcmNoeSBmb3Igc2VjdGlvbiAjMQotUEFTUyBzY3JvbGxDb250YWluZXIuY2hp
bGRyZW5bMV0uZWxlbWVudC5sb2NhbE5hbWUgaXMgInNlY3Rpb24iCi1QQVNTIHNjcm9sbENvbnRh
aW5lci5jaGlsZHJlblsxXS5jaGlsZHJlbi5sZW5ndGggaXMgMgotUEFTUyBzY3JvbGxDb250YWlu
ZXIuY2hpbGRyZW5bMV0uY2hpbGRyZW5bMF0uZWxlbWVudC5sb2NhbE5hbWUgaXMgImgzIgotUEFT
UyBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5bMV0uY2hpbGRyZW5bMF0uZWxlbWVudC50ZXh0Q29u
dGVudCBpcyAiVGl0bGUgIzEiCi1QQVNTIHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblsxXS5jaGls
ZHJlblsxXS5lbGVtZW50LmxvY2FsTmFtZSBpcyAidWwiCi1QQVNTIHNjcm9sbENvbnRhaW5lci5j
aGlsZHJlblsxXS5jaGlsZHJlblsxXS5jaGlsZHJlbi5sZW5ndGggaXMgNQotUEFTUyBzY3JvbGxD
b250YWluZXIuY2hpbGRyZW5bMV0uY2hpbGRyZW5bMV0uY2hpbGRyZW5bdHJhY2tJbmRleF0uZWxl
bWVudC5sb2NhbE5hbWUgaXMgImxpIgotUEFTUyBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5bMV0u
Y2hpbGRyZW5bMV0uY2hpbGRyZW5bdHJhY2tJbmRleF0uZWxlbWVudC5jbGFzc05hbWUgaXMgIiIK
LVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWzFdLmNoaWxkcmVuWzFdLmNoaWxkcmVuW3Ry
YWNrSW5kZXhdLmVsZW1lbnQudGV4dENvbnRlbnQgaXMgIlRyYWNrIDF4MCIKLVBBU1Mgc2Nyb2xs
Q29udGFpbmVyLmNoaWxkcmVuWzFdLmNoaWxkcmVuWzFdLmNoaWxkcmVuW3RyYWNrSW5kZXhdLmVs
ZW1lbnQubG9jYWxOYW1lIGlzICJsaSIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWzFd
LmNoaWxkcmVuWzFdLmNoaWxkcmVuW3RyYWNrSW5kZXhdLmVsZW1lbnQuY2xhc3NOYW1lIGlzICIi
Ci1QQVNTIHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblsxXS5jaGlsZHJlblsxXS5jaGlsZHJlblt0
cmFja0luZGV4XS5lbGVtZW50LnRleHRDb250ZW50IGlzICJUcmFjayAxeDEiCi1QQVNTIHNjcm9s
bENvbnRhaW5lci5jaGlsZHJlblsxXS5jaGlsZHJlblsxXS5jaGlsZHJlblt0cmFja0luZGV4XS5l
bGVtZW50LmxvY2FsTmFtZSBpcyAibGkiCi1QQVNTIHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblsx
XS5jaGlsZHJlblsxXS5jaGlsZHJlblt0cmFja0luZGV4XS5lbGVtZW50LmNsYXNzTmFtZSBpcyAi
IgotUEFTUyBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5bMV0uY2hpbGRyZW5bMV0uY2hpbGRyZW5b
dHJhY2tJbmRleF0uZWxlbWVudC50ZXh0Q29udGVudCBpcyAiVHJhY2sgMXgyIgotUEFTUyBzY3Jv
bGxDb250YWluZXIuY2hpbGRyZW5bMV0uY2hpbGRyZW5bMV0uY2hpbGRyZW5bdHJhY2tJbmRleF0u
ZWxlbWVudC5sb2NhbE5hbWUgaXMgImxpIgotUEFTUyBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5b
MV0uY2hpbGRyZW5bMV0uY2hpbGRyZW5bdHJhY2tJbmRleF0uZWxlbWVudC5jbGFzc05hbWUgaXMg
InNlbGVjdGVkIgotUEFTUyBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5bMV0uY2hpbGRyZW5bMV0u
Y2hpbGRyZW5bdHJhY2tJbmRleF0uZWxlbWVudC50ZXh0Q29udGVudCBpcyAiVHJhY2sgMXgzIgot
UEFTUyBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5bMV0uY2hpbGRyZW5bMV0uY2hpbGRyZW5bdHJh
Y2tJbmRleF0uZWxlbWVudC5sb2NhbE5hbWUgaXMgImxpIgotUEFTUyBzY3JvbGxDb250YWluZXIu
Y2hpbGRyZW5bMV0uY2hpbGRyZW5bMV0uY2hpbGRyZW5bdHJhY2tJbmRleF0uZWxlbWVudC5jbGFz
c05hbWUgaXMgIiIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWzFdLmNoaWxkcmVuWzFd
LmNoaWxkcmVuW3RyYWNrSW5kZXhdLmVsZW1lbnQudGV4dENvbnRlbnQgaXMgIlRyYWNrIDF4NCIK
LQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
cGFuZWwvdHJhY2tzLXBhbmVsLXBvcHVsYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXBvcHVsYXRpb24u
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDY4NGU0ZWVmZDU2MDNjN2JkM2Nm
YWI3MTgxM2RjN2MyNGNhMmIzZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXBhbmVsL3RyYWNrcy1wYW5lbC1wb3B1bGF0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3
MSArMCwwIEBACi08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtbG9h
ZGVyLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPGJvZHk+Ci08c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLWRlc2NyaXB0aW9uKCJQb3B1bGF0aW5nIGEgPGNv
ZGU+VHJhY2tzUGFuZWw8L2NvZGU+IGluc3RhbmNlLiIpOwotCi1jb25zdCB0cmFja3NQYW5lbCA9
IG5ldyBUcmFja3NQYW5lbDsKLQotY29uc3QgbnVtYmVyT2ZTZWN0aW9ucyA9IDI7Ci1jb25zdCBu
dW1iZXJPZlRyYWNrc0luU2VjdGlvbiA9IFszLCA1XTsKLWNvbnN0IHNlbGVjdGVkVHJhY2tzID0g
W1swLCAxXSwgWzEsIDNdXTsKLQotdHJhY2tzUGFuZWwuZGF0YVNvdXJjZSA9IHsKLSAgICB0cmFj
a3NQYW5lbE51bWJlck9mU2VjdGlvbnM6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBudW1iZXJPZlNlY3Rpb25zOwotICAgIH0sCi0KLSAgICB0cmFja3NQYW5lbFRpdGxlRm9yU2Vj
dGlvbjogZnVuY3Rpb24oc2VjdGlvbkluZGV4KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGBUaXRs
ZSAjJHtzZWN0aW9uSW5kZXh9YDsKLSAgICB9LAotCi0gICAgdHJhY2tzUGFuZWxOdW1iZXJPZlRy
YWNrc0luU2VjdGlvbjogZnVuY3Rpb24oc2VjdGlvbkluZGV4KQotICAgIHsKLSAgICAgICAgcmV0
dXJuIG51bWJlck9mVHJhY2tzSW5TZWN0aW9uW3NlY3Rpb25JbmRleF07Ci0gICAgfSwKLQotICAg
IHRyYWNrc1BhbmVsVGl0bGVGb3JUcmFja0luU2VjdGlvbjogZnVuY3Rpb24odHJhY2tJbmRleCwg
c2VjdGlvbkluZGV4KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGBUcmFjayAke3NlY3Rpb25JbmRl
eH14JHt0cmFja0luZGV4fWA7Ci0gICAgfSwKLQotICAgIHRyYWNrc1BhbmVsSXNUcmFja0luU2Vj
dGlvblNlbGVjdGVkOiBmdW5jdGlvbih0cmFja0luZGV4LCBzZWN0aW9uSW5kZXgpCi0gICAgewot
ICAgICAgICByZXR1cm4gc2VsZWN0ZWRUcmFja3Muc29tZShzZWxlY3RlZFRyYWNrID0+IHNlbGVj
dGVkVHJhY2tbMF0gPT09IHNlY3Rpb25JbmRleCAmJiBzZWxlY3RlZFRyYWNrWzFdID09PSB0cmFj
a0luZGV4KTsKLSAgICB9Ci19OwotCi1jb25zdCBjb250YWluZXIgPSBuZXcgTGF5b3V0Tm9kZTsK
LXRyYWNrc1BhbmVsLnByZXNlbnRJblBhcmVudChjb250YWluZXIpOwotCi1jb25zdCBzY3JvbGxD
b250YWluZXIgPSB0cmFja3NQYW5lbC5jaGlsZHJlblsxXTsKLQotc2hvdWxkQmVUcnVlKCJ0cmFj
a3NQYW5lbC5wcmVzZW50ZWQiKTsKLXNob3VsZEJlKCJ0cmFja3NQYW5lbC5wYXJlbnQiLCAiY29u
dGFpbmVyIik7Ci1zaG91bGRCZSgic2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuLmxlbmd0aCIsICJu
dW1iZXJPZlNlY3Rpb25zIik7Ci0KLWxldCBzZWN0aW9uSW5kZXgsIHRyYWNrSW5kZXg7Ci1mb3Ig
KHNlY3Rpb25JbmRleCA9IDA7IHNlY3Rpb25JbmRleCA8IG51bWJlck9mU2VjdGlvbnM7ICsrc2Vj
dGlvbkluZGV4KSB7Ci0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKGBIaWVyYXJjaHkgZm9yIHNl
Y3Rpb24gIyR7c2VjdGlvbkluZGV4fWApOwotICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZyhgc2Ny
b2xsQ29udGFpbmVyLmNoaWxkcmVuWyR7c2VjdGlvbkluZGV4fV0uZWxlbWVudC5sb2NhbE5hbWVg
LCAic2VjdGlvbiIpOwotICAgIHNob3VsZEJlKGBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5bJHtz
ZWN0aW9uSW5kZXh9XS5jaGlsZHJlbi5sZW5ndGhgLCAiMiIpOwotICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZyhgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWyR7c2VjdGlvbkluZGV4fV0uY2hpbGRy
ZW5bMF0uZWxlbWVudC5sb2NhbE5hbWVgLCAiaDMiKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoYHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblske3NlY3Rpb25JbmRleH1dLmNoaWxkcmVuWzBd
LmVsZW1lbnQudGV4dENvbnRlbnRgLCB0cmFja3NQYW5lbC5kYXRhU291cmNlLnRyYWNrc1BhbmVs
VGl0bGVGb3JTZWN0aW9uKHNlY3Rpb25JbmRleCkpOwotICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
Zyhgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWyR7c2VjdGlvbkluZGV4fV0uY2hpbGRyZW5bMV0u
ZWxlbWVudC5sb2NhbE5hbWVgLCAidWwiKTsKLSAgICBzaG91bGRCZShgc2Nyb2xsQ29udGFpbmVy
LmNoaWxkcmVuWyR7c2VjdGlvbkluZGV4fV0uY2hpbGRyZW5bMV0uY2hpbGRyZW4ubGVuZ3RoYCwg
YCR7bnVtYmVyT2ZUcmFja3NJblNlY3Rpb25bc2VjdGlvbkluZGV4XX1gKTsKLSAgICBmb3IgKHRy
YWNrSW5kZXggPSAwOyB0cmFja0luZGV4IDwgbnVtYmVyT2ZUcmFja3NJblNlY3Rpb25bc2VjdGlv
bkluZGV4XTsgKyt0cmFja0luZGV4KSB7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZyhg
c2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWyR7c2VjdGlvbkluZGV4fV0uY2hpbGRyZW5bMV0uY2hp
bGRyZW5bdHJhY2tJbmRleF0uZWxlbWVudC5sb2NhbE5hbWVgLCAibGkiKTsKLSAgICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKGBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5bJHtzZWN0aW9uSW5k
ZXh9XS5jaGlsZHJlblsxXS5jaGlsZHJlblt0cmFja0luZGV4XS5lbGVtZW50LmNsYXNzTmFtZWAs
IHNlbGVjdGVkVHJhY2tzLnNvbWUoc2VsZWN0ZWRUcmFjayA9PiBzZWxlY3RlZFRyYWNrWzBdID09
PSBzZWN0aW9uSW5kZXggJiYgc2VsZWN0ZWRUcmFja1sxXSA9PT0gdHJhY2tJbmRleCkgPyAic2Vs
ZWN0ZWQiIDogIiIpOwotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoYHNjcm9sbENvbnRh
aW5lci5jaGlsZHJlblske3NlY3Rpb25JbmRleH1dLmNoaWxkcmVuWzFdLmNoaWxkcmVuW3RyYWNr
SW5kZXhdLmVsZW1lbnQudGV4dENvbnRlbnRgLCB0cmFja3NQYW5lbC5kYXRhU291cmNlLnRyYWNr
c1BhbmVsVGl0bGVGb3JUcmFja0luU2VjdGlvbih0cmFja0luZGV4LCBzZWN0aW9uSW5kZXgpKTsK
LSAgICB9Ci19Ci0KLWRlYnVnKCIiKTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVs
L3RyYWNrcy1wYW5lbC1wb3NpdGlvbi1hbmQtc2l6ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1w
b3NpdGlvbi1hbmQtc2l6ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDIwMDk0ZDIzMzNlMTBkNTM0MTY3ZjFmZWNmMzI2NzliYmZkMGMxM2IuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcG9zaXRpb24tYW5k
LXNpemUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGVzdGlu
ZyBwb3NpdGlvbmluZyBhbmQgc2l6aW5nIG9mIHRoZSB0cmFja3MgcGFuZWwuCi0KLU9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIG1lZGlhQ29udHJvbHMudHJhY2tzQnV0dG9uLmVs
ZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQgYmVjYW1lIGRpZmZlcmVudCBmcm9t
IDAKLW1lZGlhQ29udHJvbHMuc2hvd1RyYWNrc1BhbmVsKCkKLVBBU1MgbWVkaWFDb250cm9scy50
cmFja3NQYW5lbC5lbGVtZW50LnN0eWxlLnJpZ2h0IGlzICIyMnB4IgotUEFTUyBtZWRpYUNvbnRy
b2xzLnRyYWNrc1BhbmVsLmVsZW1lbnQuc3R5bGUuYm90dG9tIGlzICIzOHB4IgotUEFTUyBnZXRD
b21wdXRlZFN0eWxlKG1lZGlhQ29udHJvbHMudHJhY2tzUGFuZWwuZWxlbWVudCkuaGVpZ2h0IGlz
ICIyNTJweCIKLVBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShtZWRpYUNvbnRyb2xzLnRyYWNrc1BhbmVs
LmVsZW1lbnQubGFzdEVsZW1lbnRDaGlsZCkuaGVpZ2h0IGlzICIyNTJweCIKLVBBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShtZWRpYUNvbnRyb2xzLnRyYWNrc1BhbmVsLmVsZW1lbnQubGFzdEVsZW1lbnRD
aGlsZCkub3ZlcmZsb3dZIGlzICJzY3JvbGwiCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wb3NpdGlvbi1h
bmQtc2l6ZS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcG9zaXRpb24tYW5kLXNpemUuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNTJhNTc3NWMxMDM1NWQ5NDU5NTFiYWY1ZjNmMDNjNzZjYWM0
YTU2Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1w
YW5lbC1wb3NpdGlvbi1hbmQtc2l6ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjcgKzAsMCBA
QAotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLWxvYWRlci5qcyIg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KLTxib2R5PgotPHN0eWxlIHR5cGU9InRl
eHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KLSAgICAKLSAgICAubWVkaWEtY29udHJvbHMgewotICAg
ICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgICAgIHRvcDogMDsKLSAgICAgICAgbGVmdDog
MDsKLSAgICB9Ci0gICAgCi08L3N0eWxlPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
PgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJUZXN0aW5n
IHBvc2l0aW9uaW5nIGFuZCBzaXppbmcgb2YgdGhlIHRyYWNrcyBwYW5lbC4iKTsKLQotY29uc3Qg
bWVkaWFDb250cm9scyA9IG5ldyBNYWNPU0lubGluZU1lZGlhQ29udHJvbHMoeyB3aWR0aDogNjgw
LCBoZWlnaHQ6IDMwMCB9KTsKLQotbWVkaWFDb250cm9scy50cmFja3NQYW5lbC5kYXRhU291cmNl
ID0gewotICAgIHRyYWNrc1BhbmVsTnVtYmVyT2ZTZWN0aW9uczogZnVuY3Rpb24oKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIDE7Ci0gICAgfSwKLQotICAgIHRyYWNrc1BhbmVsVGl0bGVGb3JTZWN0
aW9uOiBmdW5jdGlvbihzZWN0aW9uSW5kZXgpCi0gICAgewotICAgICAgICByZXR1cm4gYFRpdGxl
YDsKLSAgICB9LAotCi0gICAgdHJhY2tzUGFuZWxOdW1iZXJPZlRyYWNrc0luU2VjdGlvbjogZnVu
Y3Rpb24oc2VjdGlvbkluZGV4KQotICAgIHsKLSAgICAgICAgcmV0dXJuIDIwOwotICAgIH0sCi0K
LSAgICB0cmFja3NQYW5lbFRpdGxlRm9yVHJhY2tJblNlY3Rpb246IGZ1bmN0aW9uKHRyYWNrSW5k
ZXgsIHNlY3Rpb25JbmRleCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBgVHJhY2tgOwotICAgIH0s
Ci0KLSAgICB0cmFja3NQYW5lbElzVHJhY2tJblNlY3Rpb25TZWxlY3RlZDogZnVuY3Rpb24odHJh
Y2tJbmRleCwgc2VjdGlvbkluZGV4KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IH0KLX07Ci0KLWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobWVkaWFDb250cm9scy5lbGVtZW50
KTsKLQotc2hvdWxkQmVjb21lRGlmZmVyZW50KCJtZWRpYUNvbnRyb2xzLnRyYWNrc0J1dHRvbi5l
bGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0IiwgIjAiLCAoKSA9PiB7Ci0gICAg
ZGVidWcoIm1lZGlhQ29udHJvbHMuc2hvd1RyYWNrc1BhbmVsKCkiKTsKLSAgICBtZWRpYUNvbnRy
b2xzLnNob3dUcmFja3NQYW5lbCgpOwotICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUo
KCkgPT4gewotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm1lZGlhQ29udHJvbHMudHJh
Y2tzUGFuZWwuZWxlbWVudC5zdHlsZS5yaWdodCIsICIyMnB4Iik7Ci0gICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygibWVkaWFDb250cm9scy50cmFja3NQYW5lbC5lbGVtZW50LnN0eWxlLmJv
dHRvbSIsICIzOHB4Iik7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0Q29tcHV0
ZWRTdHlsZShtZWRpYUNvbnRyb2xzLnRyYWNrc1BhbmVsLmVsZW1lbnQpLmhlaWdodCIsICIyNTJw
eCIpOwotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldENvbXB1dGVkU3R5bGUobWVk
aWFDb250cm9scy50cmFja3NQYW5lbC5lbGVtZW50Lmxhc3RFbGVtZW50Q2hpbGQpLmhlaWdodCIs
ICIyNTJweCIpOwotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldENvbXB1dGVkU3R5
bGUobWVkaWFDb250cm9scy50cmFja3NQYW5lbC5lbGVtZW50Lmxhc3RFbGVtZW50Q2hpbGQpLm92
ZXJmbG93WSIsICJzY3JvbGwiKTsKLSAgICAgICAgZGVidWcoIiIpOwotICAgICAgICBtZWRpYUNv
bnRyb2xzLmVsZW1lbnQucmVtb3ZlKCk7Ci0gICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgIH0p
OwotfSk7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcHJl
dmVudC1jb250cm9scy1iYXItZnJvbS1mYWRpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcHJl
dmVudC1jb250cm9scy1iYXItZnJvbS1mYWRpbmctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBlYzE4YTFlYTIzNjgwMzI1MGUxY2NiYmM0N2NlMDA1MzhhMTc2YjEx
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVs
LXByZXZlbnQtY29udHJvbHMtYmFyLWZyb20tZmFkaW5nLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDIxICswLDAgQEAKLVNob3dpbmcgdGhlIHRyYWNrcyBwYW5lbCBzaG91bGQgc3Vz
cGVuZCB0aGUgYXV0by1oaWRlIGJlaGF2aW9yIHVudGlsIGl0J3MgaGlkZGVuLgotCi1PbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCi0KLQotbWVkaWFDb250cm9scy5zaG93VHJhY2tzUGFuZWwoKQot
UEFTUyBtZWRpYUNvbnRyb2xzLnRyYWNrc1BhbmVsLmVsZW1lbnQucGFyZW50Tm9kZSBiZWNhbWUg
bWVkaWFDb250cm9scy5lbGVtZW50Ci0KLVdlJ3ZlIHdhaXRlZCBsb25nIGVub3VnaCBzbyB0aGF0
IHRoZSBjb250cm9scyBiYXIgc2hvdWxkIGJlIGZhZGVkIHNob3VsZCB0aGUgdHJhY2tzIHBhbmVs
IG5vdCBiZSB2aXNpYmxlCi1QQVNTIG1lZGlhQ29udHJvbHMuZmFkZWQgaXMgZmFsc2UKLQotTm93
IGVudGVyIGFuZCBleGl0IHRoZSBtZWRpYSBjb250cm9scywgdGhlIGNvbnRyb2xzIGJhciBzaG91
bGQgcmVtYWluIHZpc2libGUKLVBBU1MgbWVkaWFDb250cm9scy5mYWRlZCBpcyBmYWxzZQotCi1t
ZWRpYUNvbnRyb2xzLmhpZGVUcmFja3NQYW5lbCgpCi1QQVNTIG1lZGlhQ29udHJvbHMuZmFkZWQg
YmVjYW1lIHRydWUKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENP
TVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXByZXZlbnQtY29udHJvbHMtYmFyLWZyb20t
ZmFkaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wcmV2ZW50LWNvbnRyb2xzLWJhci1mcm9tLWZhZGluZy5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmOTYwYzRhNDcyY2UxNjJlOTdlOTM1
ZDc4MDgzNjVkMTkzZGFiODZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
cGFuZWwvdHJhY2tzLXBhbmVsLXByZXZlbnQtY29udHJvbHMtYmFyLWZyb20tZmFkaW5nLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvbWVkaWEtY29udHJvbHMtbG9hZGVyLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2Ny
aXB0PgotPGJvZHk+Ci08c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgotICAg
IAotICAgIC5tZWRpYS1jb250cm9scyB7Ci0gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAg
ICAgICAgdG9wOiAwOwotICAgICAgICBsZWZ0OiAwOwotICAgIH0KLSAgICAKLTwvc3R5bGU+Ci08
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKLQotZGVzY3JpcHRpb24oIlNob3dpbmcgdGhlIHRyYWNrcyBwYW5lbCBzaG91bGQgc3Vz
cGVuZCB0aGUgYXV0by1oaWRlIGJlaGF2aW9yIHVudGlsIGl0J3MgaGlkZGVuLiIpOwotCi1jb25z
dCBtZWRpYUNvbnRyb2xzID0gbmV3IE1hY09TSW5saW5lTWVkaWFDb250cm9scyh7IHdpZHRoOiA2
ODAsIGhlaWdodDogMzAwIH0pOwotCi1kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG1lZGlhQ29u
dHJvbHMuZWxlbWVudCk7Ci0KLWxldCB0cmFja0VsZW1lbnQ7Ci0KLW1lZGlhQ29udHJvbHMuYXV0
b0hpZGVDb250cm9sbGVyLmF1dG9IaWRlRGVsYXkgPSAyNTA7Ci1tZWRpYUNvbnRyb2xzLmF1dG9I
aWRlQ29udHJvbGxlci5mYWRlc1doaWxlSWRsZSA9IHRydWU7Ci0KLWRlYnVnKCJtZWRpYUNvbnRy
b2xzLnNob3dUcmFja3NQYW5lbCgpIik7Ci1tZWRpYUNvbnRyb2xzLnNob3dUcmFja3NQYW5lbCgp
OwotCi1zaG91bGRCZWNvbWVFcXVhbCgibWVkaWFDb250cm9scy50cmFja3NQYW5lbC5lbGVtZW50
LnBhcmVudE5vZGUiLCAibWVkaWFDb250cm9scy5lbGVtZW50IiwgKCkgPT4gewotICAgIC8vIExl
dCdzIHdhaXQgYSB3aGlsZSB0byBzZWUgdGhhdCB0aGUgY29udHJvbHMgYmFyIGlzIHN0aWxsIHZp
c2libGUuCi0gICAgc2V0VGltZW91dCgoKSA9PiB7Ci0gICAgICAgIGRlYnVnKCIiKTsKLSAgICAg
ICAgZGVidWcoIldlJ3ZlIHdhaXRlZCBsb25nIGVub3VnaCBzbyB0aGF0IHRoZSBjb250cm9scyBi
YXIgc2hvdWxkIGJlIGZhZGVkIHNob3VsZCB0aGUgdHJhY2tzIHBhbmVsIG5vdCBiZSB2aXNpYmxl
Iik7Ci0gICAgICAgIHNob3VsZEJlRmFsc2UoIm1lZGlhQ29udHJvbHMuZmFkZWQiKTsKLQotICAg
ICAgICBkZWJ1ZygiIik7Ci0gICAgICAgIGRlYnVnKCJOb3cgZW50ZXIgYW5kIGV4aXQgdGhlIG1l
ZGlhIGNvbnRyb2xzLCB0aGUgY29udHJvbHMgYmFyIHNob3VsZCByZW1haW4gdmlzaWJsZSIpOwot
ICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg3MDAsIDEwKTsKLSAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VNb3ZlVG8oNjUwLCAxMCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKDcwMCwgMTApOwotICAgICAgICBzaG91bGRCZUZhbHNlKCJtZWRpYUNvbnRyb2xzLmZhZGVk
Iik7Ci0KLSAgICAgICAgLy8gQW5kIG5vdyBkaXNtaXNzIHRoZSB0cmFja3MgcGFuZWwgYW5kIGNo
ZWNrIHRoYXQgdGhlIGNvbnRyb2xzIGJhcgotICAgICAgICAvLyBmYWRlcyBvdXQgYXMgd2VsbC4K
LSAgICAgICAgZGVidWcoIiIpOwotICAgICAgICBkZWJ1ZygibWVkaWFDb250cm9scy5oaWRlVHJh
Y2tzUGFuZWwoKSIpOwotICAgICAgICBtZWRpYUNvbnRyb2xzLmhpZGVUcmFja3NQYW5lbCgpOwot
ICAgICAgICBzaG91bGRCZWNvbWVFcXVhbCgibWVkaWFDb250cm9scy5mYWRlZCIsICJ0cnVlIiwg
KCkgPT4gewotICAgICAgICAgICAgZGVidWcoIiIpOwotICAgICAgICAgICAgbWVkaWFDb250cm9s
cy5lbGVtZW50LnJlbW92ZSgpOwotICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAg
IH0pOwotICAgIH0sIG1lZGlhQ29udHJvbHMuYXV0b0hpZGVDb250cm9sbGVyLmF1dG9IaWRlRGVs
YXkpOwotfSk7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwt
cHJldmVudC1kZWZhdWx0LW9uLWtleWRvd24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcHJldmVu
dC1kZWZhdWx0LW9uLWtleWRvd24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMjFiYTZkOTU4MDZhOWQ4NDFlOGFmZWI1MjU3NDc3OTUwMjk0ODRlLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXByZXZlbnQt
ZGVmYXVsdC1vbi1rZXlkb3duLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICsw
LDAgQEAKLVRlc3RpbmcgYSBUcmFja3NQYW5lbCBjYWxscyBwcmV2ZW50RGVmYXVsdCgpIG9uIGV2
ZW50cyBpdCBoYW5kbGVzLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotbWVkaWFD
b250cm9scy5zaG93VHJhY2tzUGFuZWwoKQotCi1QcmVzc2luZyB0aGUgQXJyb3dEb3duIGtleQot
UEFTUyBldmVudC5kZWZhdWx0UHJldmVudGVkIGlzIHRydWUKLVByZXNzaW5nIHRoZSBBcnJvd1Jp
Z2h0IGtleQotUEFTUyBldmVudC5kZWZhdWx0UHJldmVudGVkIGlzIGZhbHNlCi0KLVBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNr
cy1wYW5lbC1wcmV2ZW50LWRlZmF1bHQtb24ta2V5ZG93bi5odG1sIGIvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcHJldmVu
dC1kZWZhdWx0LW9uLWtleWRvd24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
N2Y1YzkwMGEwY2MzNjJlNDkxMTUwYTNlYmQyZjU5MWY0ZmQzNDYxMS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wcmV2ZW50LWRlZmF1bHQt
b24ta2V5ZG93bi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLWxvYWRlci5qcyIgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij48L3NjcmlwdD4KLTxib2R5IHN0eWxlPSJoZWlnaHQ6IDMwMDBweCI+Ci08c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKLQotZGVzY3JpcHRpb24oIlRlc3RpbmcgYSA8Y29kZT5UcmFja3NQYW5lbDwvY29kZT4gY2Fs
bHMgcHJldmVudERlZmF1bHQoKSBvbiBldmVudHMgaXQgaGFuZGxlcy4iKTsKLQotY29uc3QgbWVk
aWFDb250cm9scyA9IG5ldyBNYWNPU0lubGluZU1lZGlhQ29udHJvbHMoeyB3aWR0aDogNjgwLCBo
ZWlnaHQ6IDMwMCB9KTsKLWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobWVkaWFDb250cm9scy5l
bGVtZW50KTsKLQotZGVidWcoIm1lZGlhQ29udHJvbHMuc2hvd1RyYWNrc1BhbmVsKCkiKTsKLW1l
ZGlhQ29udHJvbHMuc2hvd1RyYWNrc1BhbmVsKCk7Ci0KLXNjaGVkdWxlci5mcmFtZURpZEZpcmUg
PSBmdW5jdGlvbigpCi17Ci0gICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7
Ci0gICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgZGVidWcoIlByZXNzaW5nIHRoZSBBcnJvd0Rv
d24ga2V5Iik7Ci0gICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oIkFycm93RG93biIpOwotICAg
ICAgICBkZWJ1ZygiUHJlc3NpbmcgdGhlIEFycm93UmlnaHQga2V5Iik7Ci0gICAgICAgIGV2ZW50
U2VuZGVyLmtleURvd24oIkFycm93UmlnaHQiKTsKLSAgICAgICAgZGVidWcoIiIpOwotICAgICAg
ICBtZWRpYUNvbnRyb2xzLmVsZW1lbnQucmVtb3ZlKCk7Ci0gICAgICAgIGZpbmlzaEpTVGVzdCgp
OwotICAgIH0pOwotICAgIHNjaGVkdWxlci5mcmFtZURpZEZpcmUgPSBudWxsOwotfQotCi1kb2N1
bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCBldmVudCA9PiB7Ci0gICAgaWYg
KGV2ZW50LmtleSA9PT0gIkFycm93UmlnaHQiKQotICAgICAgICBzaG91bGRCZUZhbHNlKCJldmVu
dC5kZWZhdWx0UHJldmVudGVkIik7Ci0gICAgZWxzZSBpZiAoZXZlbnQua2V5ID09PSAiQXJyb3dE
b3duIikKLSAgICAgICAgc2hvdWxkQmVUcnVlKCJldmVudC5kZWZhdWx0UHJldmVudGVkIik7Ci19
KTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1yaWdodC14
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXJpZ2h0LXgtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyNDUzMzcxNWY4OWE5NDJjN2QxMjViZTdiMDIzMDQ2ZGQzNDk0
NzNjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBh
bmVsLXJpZ2h0LXgtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAot
VGVzdGluZyB0aGUgVHJhY2tzUGFuZWwgY2xhc3MuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KLQotCi10cmFja3NQYW5lbC5yaWdodFggPSAxMAotUEFTUyB0cmFja3NQYW5lbC5lbGVtZW50
LnN0eWxlLnJpZ2h0IGlzICIxMHB4IgotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
Ci0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcmlnaHQteC5odG1sIGIv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFj
a3MtcGFuZWwtcmlnaHQteC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YWI3
MWUyYWNmMWZiNzNlNTdiMjZiYWZhMGQxYTAxZjBjMjQxMzY4Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXJpZ2h0LXguaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDI2ICswLDAgQEAKLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRp
YS1jb250cm9scy1sb2FkZXIuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzIiB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPGJvZHk+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24o
IlRlc3RpbmcgdGhlIDxjb2RlPlRyYWNrc1BhbmVsPC9jb2RlPiBjbGFzcy4iKTsKLQotY29uc3Qg
dHJhY2tzUGFuZWwgPSBuZXcgVHJhY2tzUGFuZWw7Ci0KLXRyYWNrc1BhbmVsLnJpZ2h0WCA9IDEw
OwotZGVidWcoInRyYWNrc1BhbmVsLnJpZ2h0WCA9IDEwIik7Ci0KLXNjaGVkdWxlci5mcmFtZURp
ZEZpcmUgPSBmdW5jdGlvbigpCi17Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0cmFja3NQ
YW5lbC5lbGVtZW50LnN0eWxlLnJpZ2h0IiwgIjEwcHgiKTsKLQotICAgIGRlYnVnKCIiKTsKLSAg
ICBmaW5pc2hNZWRpYUNvbnRyb2xzVGVzdCgpOwotfTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1zZWxlY3QtdHJhY2std2l0aC1rZXlib2FyZC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBh
bmVsL3RyYWNrcy1wYW5lbC1zZWxlY3QtdHJhY2std2l0aC1rZXlib2FyZC1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4NTIzNDFjNWFkMjJjMmViYTIzMDA4N2Fh
NjM5OTI4ZWRhMWM1MjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5l
bC90cmFja3MtcGFuZWwtc2VsZWN0LXRyYWNrLXdpdGgta2V5Ym9hcmQtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotU2VsZWN0aW5nIGEgdHJhY2sgaW4gYSBUcmFj
a3NQYW5lbCB3aXRoIHRoZSBrZXlib2FyZC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgot
Ci0KLW1lZGlhQ29udHJvbHMuc2hvd1RyYWNrc1BhbmVsKCkKLQotRm9jdXNpbmcgdGhlIHNlY29u
ZCB0cmFjayBieSBwcmVzc2luZyB0aGUgZG93biBhcnJvdyBrZXkgdHdpY2UKLU9idGFpbmVkIGZv
Y3VzIGV2ZW50Ci0KLUFjdGl2YXRpbmcgdGhlIGZvY3VzZWQgdHJhY2sgYnkgcHJlc3NpbmcgdGhl
IEVudGVyIGtleQotbWVkaWFDb250cm9scy50cmFja3NQYW5lbC51aURlbGVnYXRlLnRyYWNrc1Bh
bmVsU2VsZWN0aW9uRGlkQ2hhbmdlKCkgY2FsbGVkCi1zZWN0aW9uSW5kZXggPSAwCi10cmFja0lu
ZGV4ID0gMQotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExF
VEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtc2VsZWN0LXRyYWNrLXdpdGgta2V5Ym9hcmQuaHRt
bCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwv
dHJhY2tzLXBhbmVsLXNlbGVjdC10cmFjay13aXRoLWtleWJvYXJkLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGQxNGJjMzdhOGI3MTUyNjc1NDM2ZDc4ZTM3YmIyZDQ4NjJhOTNm
ZjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFu
ZWwtc2VsZWN0LXRyYWNrLXdpdGgta2V5Ym9hcmQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDkx
ICswLDAgQEAKLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy1sb2Fk
ZXIuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08Ym9keT4KLTxzdHlsZSB0
eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+Ci0gICAgCi0gICAgLm1lZGlhLWNvbnRyb2xz
IHsKLSAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwotICAgICAgICB0b3A6IDA7Ci0gICAgICAg
IGxlZnQ6IDA7Ci0gICAgfQotICAgIAotPC9zdHlsZT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbigi
U2VsZWN0aW5nIGEgdHJhY2sgaW4gYSA8Y29kZT5UcmFja3NQYW5lbDwvY29kZT4gd2l0aCB0aGUg
a2V5Ym9hcmQuIik7Ci0KLWNvbnN0IG1lZGlhQ29udHJvbHMgPSBuZXcgTWFjT1NJbmxpbmVNZWRp
YUNvbnRyb2xzKHsgd2lkdGg6IDY4MCwgaGVpZ2h0OiAzMDAgfSk7Ci0KLW1lZGlhQ29udHJvbHMu
dHJhY2tzUGFuZWwuZGF0YVNvdXJjZSA9IHsKLSAgICB0cmFja3NQYW5lbE51bWJlck9mU2VjdGlv
bnM6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiAxOwotICAgIH0sCi0KLSAgICB0
cmFja3NQYW5lbFRpdGxlRm9yU2VjdGlvbjogZnVuY3Rpb24oc2VjdGlvbkluZGV4KQotICAgIHsK
LSAgICAgICAgcmV0dXJuIGBUaXRsZWA7Ci0gICAgfSwKLQotICAgIHRyYWNrc1BhbmVsTnVtYmVy
T2ZUcmFja3NJblNlY3Rpb246IGZ1bmN0aW9uKHNlY3Rpb25JbmRleCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiAzOwotICAgIH0sCi0KLSAgICB0cmFja3NQYW5lbFRpdGxlRm9yVHJhY2tJblNlY3Rp
b246IGZ1bmN0aW9uKHRyYWNrSW5kZXgsIHNlY3Rpb25JbmRleCkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBgVHJhY2tgOwotICAgIH0sCi0KLSAgICB0cmFja3NQYW5lbElzVHJhY2tJblNlY3Rpb25T
ZWxlY3RlZDogZnVuY3Rpb24odHJhY2tJbmRleCwgc2VjdGlvbkluZGV4KQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLX07Ci0KLW1lZGlhQ29udHJvbHMudHJhY2tzUGFuZWwu
dWlEZWxlZ2F0ZSA9IHsKLSAgICB0cmFja3NQYW5lbFNlbGVjdGlvbkRpZENoYW5nZTogZnVuY3Rp
b24odHJhY2tJbmRleCwgc2VjdGlvbkluZGV4KQotICAgIHsKLSAgICAgICAgZGVidWcoIm1lZGlh
Q29udHJvbHMudHJhY2tzUGFuZWwudWlEZWxlZ2F0ZS50cmFja3NQYW5lbFNlbGVjdGlvbkRpZENo
YW5nZSgpIGNhbGxlZCIpOwotICAgICAgICBkZWJ1Zyhgc2VjdGlvbkluZGV4ID0gJHtzZWN0aW9u
SW5kZXh9YCk7Ci0gICAgICAgIGRlYnVnKGB0cmFja0luZGV4ID0gJHt0cmFja0luZGV4fWApOwot
Ci0gICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgbWVkaWFDb250cm9scy5lbGVtZW50LnJlbW92
ZSgpOwotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICB9Ci19OwotCi1kb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKG1lZGlhQ29udHJvbHMuZWxlbWVudCk7Ci0KLWxldCB0cmFja0VsZW1lbnQ7
Ci0KLWRlYnVnKCJtZWRpYUNvbnRyb2xzLnNob3dUcmFja3NQYW5lbCgpIik7Ci1tZWRpYUNvbnRy
b2xzLnNob3dUcmFja3NQYW5lbCgpOwotCi1zY2hlZHVsZXIuZnJhbWVEaWRGaXJlID0gZnVuY3Rp
b24oKQotewotICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewotICAgICAg
ICBkZWJ1ZygiIik7Ci0gICAgICAgIGRlYnVnKCJGb2N1c2luZyB0aGUgc2Vjb25kIHRyYWNrIGJ5
IHByZXNzaW5nIHRoZSBkb3duIGFycm93IGtleSB0d2ljZSIpOwotCi0gICAgICAgIHRyYWNrRWxl
bWVudCA9IG1lZGlhQ29udHJvbHMudHJhY2tzUGFuZWwuZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxs
KCJsaSIpWzFdOwotICAgICAgICB0cmFja0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMi
LCAoKSA9PiB7Ci0gICAgICAgICAgICBkZWJ1ZygiT2J0YWluZWQgZm9jdXMgZXZlbnQiKTsKLQot
ICAgICAgICAgICAgZGVidWcoIiIpOwotICAgICAgICAgICAgZGVidWcoIkFjdGl2YXRpbmcgdGhl
IGZvY3VzZWQgdHJhY2sgYnkgcHJlc3NpbmcgdGhlIEVudGVyIGtleSIpOwotICAgICAgICAgICAg
d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiBldmVudFNlbmRlci5rZXlEb3duKCJF
bnRlciIpKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiQXJy
b3dEb3duIik7Ci0gICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oIkFycm93RG93biIpOwotICAg
IH0pOwotICAgIHNjaGVkdWxlci5mcmFtZURpZEZpcmUgPSBudWxsOwotfQotCi08L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXNlbGVjdC10cmFjay13aXRoLW1vdXNl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXNlbGVjdC10cmFjay13aXRoLW1vdXNlLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzgyYjE5OGMzMjkyZDA3Mjk2MDhm
NGIxMzhiNWUzYTAxMGQyNTVhYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXBhbmVsL3RyYWNrcy1wYW5lbC1zZWxlY3QtdHJhY2std2l0aC1tb3VzZS1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1TZWxlY3RpbmcgYSB0cmFjayBpbiBhIFRy
YWNrc1BhbmVsIHdpdGggdGhlIG1vdXNlLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0K
LQotUEFTUyBtZWRpYUNvbnRyb2xzLnRyYWNrc0J1dHRvbi5lbGVtZW50LmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpLnJpZ2h0IGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCi1tZWRpYUNvbnRyb2xzLnNo
b3dUcmFja3NQYW5lbCgpCi0KLU1vdXNpbmcgb3ZlciB0aGUgc2Vjb25kIHRyYWNrIGluIHRoZSBw
YW5lbAotT2J0YWluZWQgZm9jdXMgZXZlbnQKLQotQ2xpY2tpbmcgb24gZm9jdXNlZCB0cmFjawot
bWVkaWFDb250cm9scy50cmFja3NQYW5lbC51aURlbGVnYXRlLnRyYWNrc1BhbmVsU2VsZWN0aW9u
RGlkQ2hhbmdlKCkgY2FsbGVkCi1zZWN0aW9uSW5kZXggPSAwCi10cmFja0luZGV4ID0gMQotCi1Q
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5l
bC90cmFja3MtcGFuZWwtc2VsZWN0LXRyYWNrLXdpdGgtbW91c2UuaHRtbCBiL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXNl
bGVjdC10cmFjay13aXRoLW1vdXNlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDVlMzhiMTNiYWIzNTRhYjEyZjU3NTQyNDAxYmQ0NDk5ZThjYzg0MzAuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtc2VsZWN0LXRyYWNrLXdp
dGgtbW91c2UuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDkwICswLDAgQEAKLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy1sb2FkZXIuanMiIHR5cGU9InRleHQvamF2
YXNjcmlwdCI+PC9zY3JpcHQ+Ci08Ym9keT4KLTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9
InNjcmVlbiI+Ci0gICAgCi0gICAgLm1lZGlhLWNvbnRyb2xzIHsKLSAgICAgICAgcG9zaXRpb246
IGFic29sdXRlOwotICAgICAgICB0b3A6IDA7Ci0gICAgICAgIGxlZnQ6IDA7Ci0gICAgfQotICAg
IAotPC9zdHlsZT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbigiU2VsZWN0aW5nIGEgdHJhY2sgaW4g
YSA8Y29kZT5UcmFja3NQYW5lbDwvY29kZT4gd2l0aCB0aGUgbW91c2UuIik7Ci0KLWNvbnN0IG1l
ZGlhQ29udHJvbHMgPSBuZXcgTWFjT1NJbmxpbmVNZWRpYUNvbnRyb2xzKHsgd2lkdGg6IDY4MCwg
aGVpZ2h0OiAzMDAgfSk7Ci0KLW1lZGlhQ29udHJvbHMudHJhY2tzUGFuZWwuZGF0YVNvdXJjZSA9
IHsKLSAgICB0cmFja3NQYW5lbE51bWJlck9mU2VjdGlvbnM6IGZ1bmN0aW9uKCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiAxOwotICAgIH0sCi0KLSAgICB0cmFja3NQYW5lbFRpdGxlRm9yU2VjdGlv
bjogZnVuY3Rpb24oc2VjdGlvbkluZGV4KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGBUaXRsZWA7
Ci0gICAgfSwKLQotICAgIHRyYWNrc1BhbmVsTnVtYmVyT2ZUcmFja3NJblNlY3Rpb246IGZ1bmN0
aW9uKHNlY3Rpb25JbmRleCkKLSAgICB7Ci0gICAgICAgIHJldHVybiAzOwotICAgIH0sCi0KLSAg
ICB0cmFja3NQYW5lbFRpdGxlRm9yVHJhY2tJblNlY3Rpb246IGZ1bmN0aW9uKHRyYWNrSW5kZXgs
IHNlY3Rpb25JbmRleCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBgVHJhY2tgOwotICAgIH0sCi0K
LSAgICB0cmFja3NQYW5lbElzVHJhY2tJblNlY3Rpb25TZWxlY3RlZDogZnVuY3Rpb24odHJhY2tJ
bmRleCwgc2VjdGlvbkluZGV4KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0K
LX07Ci0KLW1lZGlhQ29udHJvbHMudHJhY2tzUGFuZWwudWlEZWxlZ2F0ZSA9IHsKLSAgICB0cmFj
a3NQYW5lbFNlbGVjdGlvbkRpZENoYW5nZTogZnVuY3Rpb24odHJhY2tJbmRleCwgc2VjdGlvbklu
ZGV4KQotICAgIHsKLSAgICAgICAgZGVidWcoIm1lZGlhQ29udHJvbHMudHJhY2tzUGFuZWwudWlE
ZWxlZ2F0ZS50cmFja3NQYW5lbFNlbGVjdGlvbkRpZENoYW5nZSgpIGNhbGxlZCIpOwotICAgICAg
ICBkZWJ1Zyhgc2VjdGlvbkluZGV4ID0gJHtzZWN0aW9uSW5kZXh9YCk7Ci0gICAgICAgIGRlYnVn
KGB0cmFja0luZGV4ID0gJHt0cmFja0luZGV4fWApOwotCi0gICAgICAgIGRlYnVnKCIiKTsKLSAg
ICAgICAgbWVkaWFDb250cm9scy5lbGVtZW50LnJlbW92ZSgpOwotICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKLSAgICB9Ci19OwotCi1kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG1lZGlhQ29udHJv
bHMuZWxlbWVudCk7Ci0KLWxldCB0cmFja0VsZW1lbnQ7Ci0KLXNob3VsZEJlY29tZURpZmZlcmVu
dCgibWVkaWFDb250cm9scy50cmFja3NCdXR0b24uZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJl
Y3QoKS5yaWdodCIsICIwIiwgKCkgPT4gewotICAgIGRlYnVnKCJtZWRpYUNvbnRyb2xzLnNob3dU
cmFja3NQYW5lbCgpIik7Ci0gICAgbWVkaWFDb250cm9scy5zaG93VHJhY2tzUGFuZWwoKTsKLQot
ICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewotICAgICAgICBkZWJ1Zygi
Iik7Ci0gICAgICAgIGRlYnVnKCJNb3VzaW5nIG92ZXIgdGhlIHNlY29uZCB0cmFjayBpbiB0aGUg
cGFuZWwiKTsKLQotICAgICAgICB0cmFja0VsZW1lbnQgPSBtZWRpYUNvbnRyb2xzLnRyYWNrc1Bh
bmVsLmVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgibGkiKVsxXTsKLSAgICAgICAgdHJhY2tFbGVt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgKCkgPT4gewotICAgICAgICAgICAgZGVidWco
Ik9idGFpbmVkIGZvY3VzIGV2ZW50Iik7Ci0KLSAgICAgICAgICAgIGRlYnVnKCIiKTsKLSAgICAg
ICAgICAgIGRlYnVnKCJDbGlja2luZyBvbiBmb2N1c2VkIHRyYWNrIik7Ci0gICAgICAgICAgICBl
dmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAo
KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgY29uc3QgYm91bmRzID0gdHJhY2tFbGVtZW50Lmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhi
b3VuZHMubGVmdCArIDEsIGJvdW5kcy50b3AgKyAxKTsKLSAgICB9KTsKLX0pOwotCi08L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXVwLWNsaWNrLW91dHNpZGUtbWVk
aWEtZG9lcy1ub3QtZGltaXNzLW1lZGlhLWNvbnRyb2xzLXdoZW4tbWVkaWEtaXMtcGF1c2VkLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3MtcGFuZWwvdHJhY2tzLXBhbmVsLXVwLWNsaWNrLW91dHNpZGUtbWVkaWEtZG9lcy1ub3QtZGlt
aXNzLW1lZGlhLWNvbnRyb2xzLXdoZW4tbWVkaWEtaXMtcGF1c2VkLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTM5N2VjMTQwMmVkZjRiNGE0OTIyZjhlMGQ1YjQ0
ZjJiYWRjMTI5Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3Ry
YWNrcy1wYW5lbC11cC1jbGljay1vdXRzaWRlLW1lZGlhLWRvZXMtbm90LWRpbWlzcy1tZWRpYS1j
b250cm9scy13aGVuLW1lZGlhLWlzLXBhdXNlZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwyMyArMCwwIEBACi1DbGlja2luZyBvdXRzaWRlIHRoZSBtZWRpYSB3aGVuIHRoZSB0cmFj
a3MgcGFuZWwgaXMgdXAgc2hvdWxkIGRpc21pc3MgdGhlIHRyYWNrcyBwYW5lbCBidXQgbm90IHRo
ZSBtZWRpYSBjb250cm9scy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLU1lZGlh
IHN0YXJ0ZWQgcGxheWluZyBhbmQgd2FzIHBhdXNlZC4KLQotUEFTUyBzaGFkb3dSb290LnF1ZXJ5
U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAotUEFT
UyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAotPT4gVHJhY2tzIGJ1dHRv
biBpcyB2aXNpYmxlLgotCi1QcmVzc2luZyBvbiB0aGUgdHJhY2tzIGJ1dHRvbi4KLVBBU1Mgc2hh
ZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykgYmVjYW1lIGRpZmZlcmVudCBm
cm9tIG51bGwKLT0+IFRyYWNrcyBwYW5lbCBpcyB2aXNpYmxlLgotCi1DbGlja2luZyBvdXRzaWRl
IHRoZSBtZWRpYSB0byBkaXNtaXNzIHRoZSB0cmFja3MgcGFuZWwuCi1QQVNTIHNoYWRvd1Jvb3Qu
cXVlcnlTZWxlY3RvcignLm1lZGlhLWNvbnRyb2xzJykuY2xhc3NMaXN0LmNvbnRhaW5zKCdmYWRl
ZCcpIGlzIGZhbHNlCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5l
bCcpLmNsYXNzTGlzdC5jb250YWlucygnZmFkZS1vdXQnKSBpcyB0cnVlCi0KLVBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1w
YW5lbC11cC1jbGljay1vdXRzaWRlLW1lZGlhLWRvZXMtbm90LWRpbWlzcy1tZWRpYS1jb250cm9s
cy13aGVuLW1lZGlhLWlzLXBhdXNlZC5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtdXAtY2xpY2stb3V0c2lkZS1t
ZWRpYS1kb2VzLW5vdC1kaW1pc3MtbWVkaWEtY29udHJvbHMtd2hlbi1tZWRpYS1pcy1wYXVzZWQu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjBmMjViMjAwNmY2ZmM5ZTZmNmIy
MzQ0NjhlNThkMDgxMjMyMDZlMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXBhbmVsL3RyYWNrcy1wYW5lbC11cC1jbGljay1vdXRzaWRlLW1lZGlhLWRvZXMtbm90LWRpbWlz
cy1tZWRpYS1jb250cm9scy13aGVuLW1lZGlhLWlzLXBhdXNlZC5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMzQgKzAsMCBAQAotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRy
b2xzLXV0aWxzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPGJvZHk+Ci08
dmlkZW8gc3JjPSIuLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJwb3NpdGlv
bjogYWJzb2x1dGU7IGxlZnQ6IDEwcHg7IHRvcDogMTBweDsgd2lkdGg6IDY0MHB4OyBoZWlnaHQ6
IDM2MHB4OyIgY29udHJvbHMgYXV0b3BsYXk+PC92aWRlbz4KLTxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlv
bigiQ2xpY2tpbmcgb3V0c2lkZSB0aGUgbWVkaWEgd2hlbiB0aGUgdHJhY2tzIHBhbmVsIGlzIHVw
IHNob3VsZCBkaXNtaXNzIHRoZSB0cmFja3MgcGFuZWwgYnV0IG5vdCB0aGUgbWVkaWEgY29udHJv
bHMuIik7Ci0KLWNvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsK
LWNvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOwot
Ci1tZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4gewotICAgIG1lZGlhLnBhdXNl
KCk7Ci0KLSAgICBkZWJ1ZygiTWVkaWEgc3RhcnRlZCBwbGF5aW5nIGFuZCB3YXMgcGF1c2VkLiIp
OwotICAgIGRlYnVnKCIiKTsKLSAgICBzaG93VHJhY2tzUGFuZWwoc2hhZG93Um9vdCwgKCkgPT4g
ewotICAgICAgICBkZWJ1ZygiQ2xpY2tpbmcgb3V0c2lkZSB0aGUgbWVkaWEgdG8gZGlzbWlzcyB0
aGUgdHJhY2tzIHBhbmVsLiIpOwotICAgICAgICBwcmVzc0F0UG9pbnQoNSwgNSwgKCkgPT4gewot
ICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBzaG91bGRCZUZhbHNlKCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5tZWRpYS1jb250cm9s
cycpLmNsYXNzTGlzdC5jb250YWlucygnZmFkZWQnKSIpOwotICAgICAgICAgICAgICAgIHNob3Vs
ZEJlVHJ1ZSgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykuY2xhc3NM
aXN0LmNvbnRhaW5zKCdmYWRlLW91dCcpIik7Ci0gICAgICAgICAgICAgICAgZGVidWcoIiIpOwot
ICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAg
IH0pOwotICAgIH0pOwotfSk7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFj
a3MtcGFuZWwtdXAtY2xpY2stb3Zlci1tZWRpYS1kb2VzLW5vdC1kaW1pc3MtbWVkaWEtY29udHJv
bHMtd2hlbi1tZWRpYS1pcy1wbGF5aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXVwLWNsaWNr
LW92ZXItbWVkaWEtZG9lcy1ub3QtZGltaXNzLW1lZGlhLWNvbnRyb2xzLXdoZW4tbWVkaWEtaXMt
cGxheWluZy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMwNGE3
ZTI3MmRkYzVmMTNkNDQyZWM1NmFlODJkNjgxNTVlMjEyNjguLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtdXAtY2xpY2stb3Zlci1tZWRpYS1k
b2VzLW5vdC1kaW1pc3MtbWVkaWEtY29udHJvbHMtd2hlbi1tZWRpYS1pcy1wbGF5aW5nLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLUNsaWNraW5nIG92ZXIgdGhl
IG1lZGlhIHdoZW4gdGhlIHRyYWNrcyBwYW5lbCBpcyB1cCBhbmQgdGhlIG1lZGlhIGlzIHBsYXlp
bmcgc2hvdWxkIGRpc21pc3MgdGhlIHRyYWNrcyBwYW5lbCBidXQgbm90IHRoZSBtZWRpYSBjb250
cm9scy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLU1lZGlhIHN0YXJ0ZWQgcGxh
eWluZy4KLQotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBi
ZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3Io
J2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlm
ZmVyZW50IGZyb20gMAotPT4gVHJhY2tzIGJ1dHRvbiBpcyB2aXNpYmxlLgotCi1QcmVzc2luZyBv
biB0aGUgdHJhY2tzIGJ1dHRvbi4KLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJh
Y2tzLXBhbmVsJykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKLT0+IFRyYWNrcyBwYW5lbCBp
cyB2aXNpYmxlLgotCi1DbGlja2luZyBvdmVyIHRoZSBtZWRpYSB0byBkaXNtaXNzIHRoZSB0cmFj
a3MgcGFuZWwuCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLm1lZGlhLWNvbnRyb2xz
JykuY2xhc3NMaXN0LmNvbnRhaW5zKCdmYWRlZCcpIGlzIGZhbHNlCi1QQVNTIHNoYWRvd1Jvb3Qu
cXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpLmNsYXNzTGlzdC5jb250YWlucygnZmFkZS1v
dXQnKSBpcyB0cnVlCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBD
T01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC11cC1jbGljay1vdmVyLW1lZGlhLWRvZXMt
bm90LWRpbWlzcy1tZWRpYS1jb250cm9scy13aGVuLW1lZGlhLWlzLXBsYXlpbmcuaHRtbCBiL0xh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tz
LXBhbmVsLXVwLWNsaWNrLW92ZXItbWVkaWEtZG9lcy1ub3QtZGltaXNzLW1lZGlhLWNvbnRyb2xz
LXdoZW4tbWVkaWEtaXMtcGxheWluZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA1NjIzZmRkMWYxMDVlZjgxNTJlZGRjODU0N2VhMjU2YjY4YWM1OGZhLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXVwLWNsaWNrLW92ZXIt
bWVkaWEtZG9lcy1ub3QtZGltaXNzLW1lZGlhLWNvbnRyb2xzLXdoZW4tbWVkaWEtaXMtcGxheWlu
Zy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
Pjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8gc3JjPSIuLi8uLi9jb250ZW50L0NDK1N1YnRpdGxl
cy5tb3YiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDEwcHg7IHRvcDogMTBweDsg
d2lkdGg6IDY0MHB4OyBoZWlnaHQ6IDM2MHB4OyIgY29udHJvbHMgYXV0b3BsYXk+PC92aWRlbz4K
LTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOwotCi1kZXNjcmlwdGlvbigiQ2xpY2tpbmcgb3ZlciB0aGUgbWVkaWEgd2hlbiB0aGUg
dHJhY2tzIHBhbmVsIGlzIHVwIGFuZCB0aGUgbWVkaWEgaXMgcGxheWluZyBzaG91bGQgZGlzbWlz
cyB0aGUgdHJhY2tzIHBhbmVsIGJ1dCBub3QgdGhlIG1lZGlhIGNvbnRyb2xzLiIpOwotCi1jb25z
dCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Ci1jb25zdCBzaGFkb3dS
b290ID0gd2luZG93LmludGVybmFscy5zaGFkb3dSb290KG1lZGlhKTsKLQotbWVkaWEuYWRkRXZl
bnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKLSAgICBkZWJ1ZygiTWVkaWEgc3RhcnRlZCBwbGF5
aW5nLiIpOwotICAgIGRlYnVnKCIiKTsKLSAgICBzaG93VHJhY2tzUGFuZWwoc2hhZG93Um9vdCwg
KCkgPT4gewotICAgICAgICBkZWJ1ZygiQ2xpY2tpbmcgb3ZlciB0aGUgbWVkaWEgdG8gZGlzbWlz
cyB0aGUgdHJhY2tzIHBhbmVsLiIpOwotICAgICAgICBwcmVzc0F0UG9pbnQoMTEsIDExLCAoKSA9
PiB7Ci0gICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewotICAgICAgICAg
ICAgICAgIHNob3VsZEJlRmFsc2UoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLm1lZGlhLWNv
bnRyb2xzJykuY2xhc3NMaXN0LmNvbnRhaW5zKCdmYWRlZCcpIik7Ci0gICAgICAgICAgICAgICAg
c2hvdWxkQmVUcnVlKCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5j
bGFzc0xpc3QuY29udGFpbnMoJ2ZhZGUtb3V0JykiKTsKLSAgICAgICAgICAgICAgICBkZWJ1Zygi
Iik7Ci0gICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgICAgICB9KTsKLSAg
ICAgICAgfSk7Ci0gICAgfSk7Ci19KTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVs
L3RyYWNrcy1wYW5lbC5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNGExN2JiYWU3MzNhOGE1ZjgxODY3OGJkMDhjZDgwYjViOTliYWQ1Ni4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L21lZGlhLWNvbnRyb2xzLWxvYWRlci5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3Njcmlw
dD4KLTxib2R5PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi1kZXNjcmlwdGlv
bigiVGVzdGluZyB0aGUgPGNvZGU+VHJhY2tzUGFuZWw8L2NvZGU+IGNsYXNzIHByb3BlcnRpZXMu
Iik7Ci0KLWNvbnN0IHRyYWNrc1BhbmVsID0gbmV3IFRyYWNrc1BhbmVsOwotCi1kZWJ1ZygiQmFz
aWMgcHJvcGVydGllcyIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0cmFja3NQYW5lbC5lbGVt
ZW50LmxvY2FsTmFtZSIsICJkaXYiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygidHJhY2tzUGFu
ZWwuZWxlbWVudC5jbGFzc05hbWUiLCAidHJhY2tzLXBhbmVsIik7Ci1zaG91bGRCZUZhbHNlKCJ0
cmFja3NQYW5lbC5wcmVzZW50ZWQiKTsKLXNob3VsZEJlKCJ0cmFja3NQYW5lbC5yaWdodFgiLCAi
MCIpOwotCi1kZWJ1ZygiIik7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2F1
dG8tdGV4dC10cmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvYXV0by10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xNjdjYTZlMDBiNjM1ZDEwYmExZjc0OTk2MTdjMDAyMzBlZDk2YjFjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1zdXBwb3J0L2F1dG8tdGV4dC10cmFjay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBA
QAorRW5zdXJlIHdlIGhhdmUgdGhlIEF1dG8gdGV4dCB0cmFjayBzZWxlY3RlZCBieSBkZWZhdWx0
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzaGFkb3dSb290LnF1ZXJ5
U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAorUEFT
UyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAorU2V0dGluZyBjYXB0aW9u
IGRpc3BsYXkgbW9kZSB0byAnYXV0b21hdGljJy4uLgorVGFwcGluZyB0cmFja3MgYnV0dG9uLi4u
CitQQVNTIGNoZWNrZWRJdGVtcy5sZW5ndGggaXMgMQorUEFTUyBjaGVja2VkSXRlbXNbMF0udGl0
bGUgaXMgIkF1dG8gKFJlY29tbWVuZGVkKSIKK1NldHRpbmcgY2FwdGlvbiBkaXNwbGF5IG1vZGUg
dG8gJ2ZvcmNlZG9ubHknLi4uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2F1dG8tdGV4dC10cmFjay5odG1sIGIvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2F1dG8tdGV4dC10
cmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzY2YyNDg2Y2IzZDE4ODgxMThmMmVkZGU2NjNlZDhlYTYy
MTkzNTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvYXV0by10ZXh0LXRyYWNrLmh0bWwKQEAgLTAsMCArMSw1
MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLWNv
bnRyb2xzLXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8dmlkZW8gc3JjPSIuLi8uLi9j
b250ZW50L2NvdW50aW5nLXN1YnRpdGxlZC5tNHYiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7
IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDQwMHB4OyIgYXV0b3BsYXkgY29udHJvbHMgbXV0ZWQg
cGxheXNpbmxpbmU+PC92aWRlbz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKwor
d2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitkZXNjcmlwdGlvbigiRW5zdXJlIHdlIGhh
dmUgdGhlIEF1dG8gdGV4dCB0cmFjayBzZWxlY3RlZCBieSBkZWZhdWx0LiIpOworCitjb25zdCBt
ZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Citjb25zdCBzaGFkb3dSb290
ID0gd2luZG93LmludGVybmFscy5zaGFkb3dSb290KG1lZGlhKTsKKworbGV0IGNoZWNrZWRJdGVt
cyA9IG51bGw7CisKK21lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7CisgICAg
bWVkaWEucGF1c2UoKTsKKworICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5x
dWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykiLCAibnVsbCIsICgpID0+IHsKKyAgICAgICAg
c2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50
cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCIsICIwIiwgYXN5bmMgKCkgPT4g
eworICAgICAgICAgICAgZGVidWcoIlNldHRpbmcgY2FwdGlvbiBkaXNwbGF5IG1vZGUgdG8gJ2F1
dG9tYXRpYycuLi4iKTsKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0Q2FwdGlvbkRp
c3BsYXlNb2RlKCJhdXRvbWF0aWMiKTsKKworICAgICAgICAgICAgZGVidWcoIlRhcHBpbmcgdHJh
Y2tzIGJ1dHRvbi4uLiIpOworICAgICAgICAgICAgbGV0IFtjb250ZXh0bWVudV0gPSBhd2FpdCBQ
cm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgZ2V0VHJhY2tzQ29udGV4dE1lbnUoKSwKKyAg
ICAgICAgICAgICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1
dHRvbi50cmFja3MiKSksCisgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgIGxldCBzdWJ0aXRs
ZXNNZW51ID0gY29udGV4dG1lbnVbMF0uY2hpbGRyZW4uZmluZCgoc3VibWVudSkgPT4gc3VibWVu
dS50aXRsZSA9PT0gIlN1YnRpdGxlcyIpOworICAgICAgICAgICAgaWYgKHN1YnRpdGxlc01lbnUu
Y2hpbGRyZW4/Lmxlbmd0aCkgeworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmNob29z
ZU1lbnVBY3Rpb24oc3VidGl0bGVzTWVudS50aXRsZSk7CisgICAgICAgICAgICAgICAgYXdhaXQg
VUlIZWxwZXIuZGVsYXlGb3IoNTAwKTsgLy8gZ2l2ZSB0aW1lIGZvciB0aGUgVUlNZW51IHRvIGFu
aW1hdGUKKyAgICAgICAgICAgICAgICBjb250ZXh0bWVudSA9IFtzdWJ0aXRsZXNNZW51XTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGNoZWNrZWRJdGVtcyA9IGNvbnRleHRtZW51WzBdLmNo
aWxkcmVuLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5jaGVja2VkKTsKKyAgICAgICAgICAgIHNob3Vs
ZEJlKCJjaGVja2VkSXRlbXMubGVuZ3RoIiwgIjEiKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygiY2hlY2tlZEl0ZW1zWzBdLnRpdGxlIiwgIkF1dG8gKFJlY29tbWVuZGVkKSIp
OworCisgICAgICAgICAgICBkZWJ1ZygiU2V0dGluZyBjYXB0aW9uIGRpc3BsYXkgbW9kZSB0byAn
Zm9yY2Vkb25seScuLi4iKTsKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0Q2FwdGlv
bkRpc3BsYXlNb2RlKCJmb3JjZWRvbmx5Iik7CisKKyAgICAgICAgICAgIG1lZGlhLnJlbW92ZSgp
OworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0pOworICAgIH0pOworfSk7
CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2NhcHRpb25zLW9mZnNldC13aXRo
LWNvbnRyb2xzLWJhci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvY2FwdGlvbnMtb2Zmc2V0LXdpdGgtY29udHJvbHMt
YmFyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NjlkYjVmNzgxNGVmODUwNmRkOTg5MmY2YTA2
YTljZTRlOGZlOWE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2NhcHRpb25zLW9mZnNldC13aXRoLWNvbnRy
b2xzLWJhci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorRW5zdXJlIHRoYXQgdGhlIGNh
cHRpb25zIGNvbnRhaW5lciBhY2NvdW50cyBmb3IgdGhlIGNvbnRyb2xzIGJhciB3aGVuIHZpc2li
bGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoc2hhZG93Um9vdC5sYXN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkKS5oZWlnaHQg
aXMgImNhbGMoMTAwJSAtIDM3cHgpIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9jYXB0aW9ucy1vZmZzZXQtd2l0aC1jb250cm9s
cy1iYXIuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC9jYXB0aW9ucy1vZmZzZXQtd2l0aC1jb250cm9scy1iYXIuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iZGE1MTQxYWIwMmVkMDk5YjAyYzkxMWEzOGQxZDM4ODQzZmEwYjMxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1z
dXBwb3J0L2NhcHRpb25zLW9mZnNldC13aXRoLWNvbnRyb2xzLWJhci5odG1sCkBAIC0wLDAgKzEs
MjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlh
LWNvbnRyb2xzLXV0aWxzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgorPGJv
ZHk+Cis8dmlkZW8gc3JjPSIuLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJw
b3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDQwMHB4OyIgYXV0b3Bs
YXkgY29udHJvbHMgbXV0ZWQgcGxheXNpbmxpbmU+PC92aWRlbz4KKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitkZXNjcmlw
dGlvbigiRW5zdXJlIHRoYXQgdGhlIGNhcHRpb25zIGNvbnRhaW5lciBhY2NvdW50cyBmb3IgdGhl
IGNvbnRyb2xzIGJhciB3aGVuIHZpc2libGUuIik7CisKK2NvbnN0IG1lZGlhID0gZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcigidmlkZW8iKTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJu
YWxzLnNoYWRvd1Jvb3QobWVkaWEpOworCittZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5Iiwg
KCkgPT4geworICAgIG1lZGlhLnBhdXNlKCk7CisKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
ImdldENvbXB1dGVkU3R5bGUoc2hhZG93Um9vdC5sYXN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVu
dENoaWxkKS5oZWlnaHQiLCAiY2FsYygxMDAlIC0gMzdweCkiKTsKKyAgICBtZWRpYS5yZW1vdmUo
KTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
c3VwcG9ydC9jbGljay10cmFjay1pbi1jb250ZXh0bWVudS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvY2xpY2stdHJh
Y2staW4tY29udGV4dG1lbnUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5ZDdjMzdiNGQyYTVh
Zjg5OTYwZDUxZmFjN2JhYjZlMzNlNzE2MWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvY2xpY2stdHJhY2st
aW4tY29udGV4dG1lbnUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjYgQEAKK0NsaWNraW5nIG9u
IGEgdHJhY2sgaW4gdGhlIHRyYWNrcyBjb250ZXh0bWVudS4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK0F1ZGlvIHRyYWNrICdFbmdsaXNoIFNvdW5kJyBpcyBlbmFibGVkLgorQXVk
aW8gdHJhY2sgJ0ZyZW5jaCBTb3VuZCcgaXMgZGlzYWJsZWQuCitBdWRpbyB0cmFjayAnU3Bhbmlz
aCBTb3VuZCcgaXMgZGlzYWJsZWQuCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0
dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQQVNTIHNoYWRvd1Jvb3Qu
cXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndp
ZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KK1Nl
bGVjdGluZyAnRnJlbmNoJyB0cmFjay4uLgorQXVkaW8gdHJhY2tzIGNoYW5nZWQuCitBdWRpbyB0
cmFjayAnRW5nbGlzaCBTb3VuZCcgaXMgZGlzYWJsZWQuCitBdWRpbyB0cmFjayAnRnJlbmNoIFNv
dW5kJyBpcyBlbmFibGVkLgorQXVkaW8gdHJhY2sgJ1NwYW5pc2ggU291bmQnIGlzIGRpc2FibGVk
LgorVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uCitTZWxlY3RpbmcgJ1NwYW5pc2gnIHRyYWNrLi4u
CitBdWRpbyB0cmFja3MgY2hhbmdlZC4KK0F1ZGlvIHRyYWNrICdFbmdsaXNoIFNvdW5kJyBpcyBk
aXNhYmxlZC4KK0F1ZGlvIHRyYWNrICdGcmVuY2ggU291bmQnIGlzIGRpc2FibGVkLgorQXVkaW8g
dHJhY2sgJ1NwYW5pc2ggU291bmQnIGlzIGVuYWJsZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2NsaWNrLXRyYWNrLWluLWNv
bnRleHRtZW51Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXN1cHBvcnQvY2xpY2stdHJhY2staW4tY29udGV4dG1lbnUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45OTcxMDQzM2FkOTIwMjI2ZjhkMmY2MjU0MTE1NTRjNWQ3N2YwZGI3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L2NsaWNrLXRyYWNrLWluLWNvbnRleHRtZW51Lmh0bWwKQEAgLTAsMCArMSw5NyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0
aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVs
cGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8dmlkZW8gc3JjPSIuLi8uLi9jb250ZW50L2F1
ZGlvLXRyYWNrcy5tcDQiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDog
MDsgd2lkdGg6IDQwMHB4OyIgY29udHJvbHMgYXV0b3BsYXkgbXV0ZWQgcGxheXNpbmxpbmU+PC92
aWRlbz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKword2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOworCitkZXNjcmlwdGlvbigiQ2xpY2tpbmcgb24gYSB0cmFjayBpbiB0aGUg
dHJhY2tzIGNvbnRleHRtZW51LiIpOworCitjb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoInZpZGVvIik7Citjb25zdCBzaGFkb3dSb290ID0gd2luZG93LmludGVybmFscy5zaGFk
b3dSb290KG1lZGlhKTsKKworbGV0IHNlbGVjdGVkVHJhY2sgPSBudWxsOworCittZWRpYS5hZGRF
dmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4geworICAgIG1lZGlhLnBhdXNlKCk7CisKKyAgICBk
dW1wQXVkaW9UcmFja3NFbmFibGVkU3RhdGUoKTsKKworICAgIG1lZGlhLmF1ZGlvVHJhY2tzLmFk
ZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIGhhbmRsZUF1ZGlvVHJhY2tzQ2hhbmdlKTsKKworICAg
IHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24u
dHJhY2tzJykiLCAibnVsbCIsICgpID0+IHsKKyAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50
KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKS53aWR0aCIsICIwIiwgKCkgPT4geworICAgICAgICAgICAgY2xpY2tPblRyYWNr
c0J1dHRvbihjbGlja09uRnJlbmNoQXVkaW9UcmFjayk7CisgICAgICAgIH0pOworICAgIH0pOwor
fSk7CisKK2Z1bmN0aW9uIGNsaWNrT25UcmFja3NCdXR0b24oY29udGludWF0aW9uKQoreworICAg
IGRlYnVnKCJUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4iKTsKKyAgICBwcmVzc09uRWxlbWVudChz
aGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSwgKCkgPT4geworICAgICAg
ICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNvbnRpbnVhdGlvbik7CisgICAgfSk7Cit9
CisKK2FzeW5jIGZ1bmN0aW9uIGNsaWNrT25GcmVuY2hBdWRpb1RyYWNrKCkKK3sKKyAgICBkZWJ1
ZygiU2VsZWN0aW5nICdGcmVuY2gnIHRyYWNrLi4uIik7CisgICAgbGV0IGNvbnRleHRtZW51ID0g
YXdhaXQgZ2V0VHJhY2tzQ29udGV4dE1lbnUoKTsKKyAgICBsZXQgbGFuZ3VhZ2VzTWVudSA9IGNv
bnRleHRtZW51WzBdLmNoaWxkcmVuLmZpbmQoKHN1Ym1lbnUpID0+IHN1Ym1lbnUudGl0bGUgPT09
ICJMYW5ndWFnZXMiKTsKKyAgICBpZiAobGFuZ3VhZ2VzTWVudS5jaGlsZHJlbj8ubGVuZ3RoKSB7
CisgICAgICAgIGF3YWl0IFVJSGVscGVyLmNob29zZU1lbnVBY3Rpb24obGFuZ3VhZ2VzTWVudS50
aXRsZSk7CisgICAgICAgIGF3YWl0IFVJSGVscGVyLmRlbGF5Rm9yKDUwMCk7IC8vIGdpdmUgdGlt
ZSBmb3IgdGhlIFVJTWVudSB0byBhbmltYXRlCisgICAgfQorICAgIGF3YWl0IFVJSGVscGVyLmNo
b29zZU1lbnVBY3Rpb24oIkZyZW5jaCBTb3VuZCIpOworfQorCithc3luYyBmdW5jdGlvbiBjbGlj
a09uU3BhbmlzaEF1ZGlvVHJhY2soKQoreworICAgIGRlYnVnKCJTZWxlY3RpbmcgJ1NwYW5pc2gn
IHRyYWNrLi4uIik7CisgICAgbGV0IGNvbnRleHRtZW51ID0gYXdhaXQgZ2V0VHJhY2tzQ29udGV4
dE1lbnUoKTsKKyAgICBsZXQgbGFuZ3VhZ2VzTWVudSA9IGNvbnRleHRtZW51WzBdLmNoaWxkcmVu
LmZpbmQoKHN1Ym1lbnUpID0+IHN1Ym1lbnUudGl0bGUgPT09ICJMYW5ndWFnZXMiKTsKKyAgICBp
ZiAobGFuZ3VhZ2VzTWVudS5jaGlsZHJlbj8ubGVuZ3RoKSB7CisgICAgICAgIGF3YWl0IFVJSGVs
cGVyLmNob29zZU1lbnVBY3Rpb24obGFuZ3VhZ2VzTWVudS50aXRsZSk7CisgICAgICAgIGF3YWl0
IFVJSGVscGVyLmRlbGF5Rm9yKDUwMCk7IC8vIGdpdmUgdGltZSBmb3IgdGhlIFVJTWVudSB0byBh
bmltYXRlCisgICAgfQorICAgIGF3YWl0IFVJSGVscGVyLmNob29zZU1lbnVBY3Rpb24oIlNwYW5p
c2ggU291bmQiKTsKK30KKworYXN5bmMgZnVuY3Rpb24gaGFuZGxlQXVkaW9UcmFja3NDaGFuZ2Uo
KQoreworICAgIGxldCBuZXdTZWxlY3RlZFRyYWNrID0gQXJyYXkuZnJvbShtZWRpYS5hdWRpb1Ry
YWNrcykuZmluZCgoYXVkaW9UcmFjaykgPT4gYXVkaW9UcmFjay5lbmFibGVkKTsKKyAgICBpZiAo
c2VsZWN0ZWRUcmFjayA9PT0gbmV3U2VsZWN0ZWRUcmFjaykKKyAgICAgICAgcmV0dXJuOworICAg
IHNlbGVjdGVkVHJhY2sgPSBuZXdTZWxlY3RlZFRyYWNrOworCisgICAgZGVidWcoIkF1ZGlvIHRy
YWNrcyBjaGFuZ2VkLiIpOworCisgICAgZHVtcEF1ZGlvVHJhY2tzRW5hYmxlZFN0YXRlKCk7CisK
KyAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yQ29udGV4dE1lbnVUb0hpZGUoKTsKKworICAgIHN3
aXRjaCAoc2VsZWN0ZWRUcmFjay5sYWJlbCkgeworICAgIGNhc2UgIkZyZW5jaCBTb3VuZCI6Cisg
ICAgICAgIGNsaWNrT25UcmFja3NCdXR0b24oY2xpY2tPblNwYW5pc2hBdWRpb1RyYWNrKTsKKyAg
ICAgICAgYnJlYWs7CisKKyAgICBjYXNlICJTcGFuaXNoIFNvdW5kIjoKKyAgICAgICAgbWVkaWEu
cmVtb3ZlKCk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICBicmVhazsKKyAgICB9
Cit9CisKK2Z1bmN0aW9uIGR1bXBBdWRpb1RyYWNrc0VuYWJsZWRTdGF0ZSgpCit7CisgICAgZm9y
IChsZXQgYXVkaW9UcmFjayBvZiBtZWRpYS5hdWRpb1RyYWNrcykKKyAgICAgICAgZGVidWcoYEF1
ZGlvIHRyYWNrICcke2F1ZGlvVHJhY2subGFiZWx9JyBpcyAke2F1ZGlvVHJhY2suZW5hYmxlZCA/
ICJlbmFibGVkIiA6ICJkaXNhYmxlZCJ9LmApOworfQorCis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC9oaWRkZW4tdHJhY2tzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9oaWRkZW4tdHJhY2tzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zMWQ1NDAyMGYyNDc0ZTVlYjAzNjYzNTllZjM4NDZmOTMyZmYy
Y2I5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L2hpZGRlbi10cmFja3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTUgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCB0aGUgdHJhY2tzIGNvbnRleHRtZW51IGRv
ZXNuJ3Qgc2hvdyBhbnkgdHJhY2sgYXMgc2VsZWN0ZWQgaWYgYWxsIHRoZSB0ZXh0IHRyYWNrcyBm
b3IgYSBtZWRpYSBlbGVtZW50IGFyZSBtYXJrZWQgYXMgImhpZGRlbiIuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9u
LnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQQVNTIHNoYWRvd1Jvb3QucXVl
cnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRo
IGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitTZXR0aW5nIG1vZGUgdG8gJ2hpZGRlbicgZm9yIGFs
bCB0ZXh0IHRyYWNrcyB2aWEgSmF2YVNjcmlwdC4uLgorVGFwcGluZyB0cmFja3MgYnV0dG9uLi4u
CitQQVNTIGNoZWNrZWRJdGVtcy5sZW5ndGggaXMgMQorUEFTUyBjaGVja2VkSXRlbXNbMF0udGl0
bGUgaXMgIk9mZiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvaGlkZGVuLXRyYWNrcy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2hpZGRlbi10cmFja3MuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mNjEzZmM4ZTZlMzA3Mzc0ZDgxNjVkZDc3ZTIxNTZhMWVlNmM3MjU3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1zdXBwb3J0L2hpZGRlbi10cmFja3MuaHRtbApAQCAtMCwwICsxLDUwIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzx2aWRlbyBzcmM9Ii4uLy4uL2NvbnRlbnQvY291bnRp
bmctc3VidGl0bGVkLm00diIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9w
OiAwOyB3aWR0aDogNDAwcHg7IiBjb250cm9scyBhdXRvcGxheSBtdXRlZCBwbGF5c2lubGluZT48
L3ZpZGVvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCit3aW5kb3cuanNUZXN0
SXNBc3luYyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKGBUaGlzIHRlc3QgY2hlY2tzIHRoYXQgdGhl
IHRyYWNrcyBjb250ZXh0bWVudSBkb2Vzbid0IHNob3cgYW55IHRyYWNrIGFzIHNlbGVjdGVkIGlm
IGFsbCB0aGUgdGV4dCB0cmFja3MgZm9yIGEgbWVkaWEgZWxlbWVudCBhcmUgbWFya2VkIGFzICJo
aWRkZW4iLmApOworCitjb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVv
Iik7Citjb25zdCBzaGFkb3dSb290ID0gd2luZG93LmludGVybmFscy5zaGFkb3dSb290KG1lZGlh
KTsKKworbGV0IGNoZWNrZWRJdGVtcyA9IG51bGw7CisKK21lZGlhLmFkZEV2ZW50TGlzdGVuZXIo
InBsYXkiLCAoKSA9PiB7CisgICAgbWVkaWEucGF1c2UoKTsKKworICAgIHNob3VsZEJlY29tZURp
ZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykiLCAibnVs
bCIsICgpID0+IHsKKyAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1
ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0
aCIsICIwIiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgZGVidWcoIlNldHRpbmcgbW9kZSB0
byAnaGlkZGVuJyBmb3IgYWxsIHRleHQgdHJhY2tzIHZpYSBKYXZhU2NyaXB0Li4uIik7CisgICAg
ICAgICAgICBmb3IgKGxldCB0ZXh0VHJhY2sgb2YgbWVkaWEudGV4dFRyYWNrcykKKyAgICAgICAg
ICAgICAgICB0ZXh0VHJhY2subW9kZSA9ICJoaWRkZW4iOworCisgICAgICAgICAgICBkZWJ1Zygi
VGFwcGluZyB0cmFja3MgYnV0dG9uLi4uIik7CisgICAgICAgICAgICBsZXQgW2NvbnRleHRtZW51
XSA9IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBnZXRUcmFja3NDb250ZXh0
TWVudSgpLAorICAgICAgICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlT
ZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKSwKKyAgICAgICAgICAgIF0pOworICAgICAgICAgICAg
bGV0IHN1YnRpdGxlc01lbnUgPSBjb250ZXh0bWVudVswXS5jaGlsZHJlbi5maW5kKChzdWJtZW51
KSA9PiBzdWJtZW51LnRpdGxlID09PSAiU3VidGl0bGVzIik7CisgICAgICAgICAgICBpZiAoc3Vi
dGl0bGVzTWVudS5jaGlsZHJlbj8ubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgYXdhaXQgVUlI
ZWxwZXIuY2hvb3NlTWVudUFjdGlvbihzdWJ0aXRsZXNNZW51LnRpdGxlKTsKKyAgICAgICAgICAg
ICAgICBhd2FpdCBVSUhlbHBlci5kZWxheUZvcig1MDApOyAvLyBnaXZlIHRpbWUgZm9yIHRoZSBV
SU1lbnUgdG8gYW5pbWF0ZQorICAgICAgICAgICAgICAgIGNvbnRleHRtZW51ID0gW3N1YnRpdGxl
c01lbnVdOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2hlY2tlZEl0ZW1zID0gY29udGV4
dG1lbnVbMF0uY2hpbGRyZW4uZmlsdGVyKChpdGVtKSA9PiBpdGVtLmNoZWNrZWQpOworICAgICAg
ICAgICAgc2hvdWxkQmUoImNoZWNrZWRJdGVtcy5sZW5ndGgiLCAiMSIpOworICAgICAgICAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjaGVja2VkSXRlbXNbMF0udGl0bGUiLCAiT2ZmIik7CisK
KyAgICAgICAgICAgIG1lZGlhLnJlbW92ZSgpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7
CisgICAgICAgIH0pOworICAgIH0pOworfSk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1z
dXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lv
cy90cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA1NDQ0YjY5NTQ3NWFhNDQyMTc4MjU5ZWI4OTdhZjQ3YzYyMGFj
ZGE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJh
Y2tzLXN1cHBvcnQtYXV0by10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDU5ICswLDAgQEAKLUVuc3VyZSB3ZSBoYXZlIHRoZSBBdXRvIHRleHQgdHJhY2sgc2VsZWN0
ZWQgYnkgZGVmYXVsdC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgc2hh
ZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykgYmVjYW1lIGRpZmZlcmVudCBm
cm9tIG51bGwKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJyku
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKLVNl
dHRpbmcgY2FwdGlvbiBkaXNwbGF5IG1vZGUgdG8gJ2F1dG9tYXRpYycuLi4KLVRhcHBpbmcgdHJh
Y2tzIGJ1dHRvbi4uLgotWwotICB7Ci0gICAgImNoaWxkcmVuIjogWwotICAgICAgewotICAgICAg
ICAidGl0bGUiOiAiTGFuZ3VhZ2VzIiwKLSAgICAgICAgImNoaWxkcmVuIjogWwotICAgICAgICAg
IHsKLSAgICAgICAgICAgICJ0aXRsZSI6ICJFbmdsaXNoIFNvdW5kIiwKLSAgICAgICAgICAgICJj
aGVja2VkIjogdHJ1ZQotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgInRp
dGxlIjogIkZyZW5jaCBTb3VuZCIKLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAg
ICAgICJ0aXRsZSI6ICJTcGFuaXNoIFNvdW5kIgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAg
ICAgfSwKLSAgICAgIHsKLSAgICAgICAgInRpdGxlIjogIlN1YnRpdGxlcyIsCi0gICAgICAgICJj
aGlsZHJlbiI6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICAidGl0bGUiOiAiT2ZmIgotICAg
ICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgInRpdGxlIjogIkF1dG8gKFJlY29t
bWVuZGVkKSIsCi0gICAgICAgICAgICAiY2hlY2tlZCI6IHRydWUKLSAgICAgICAgICB9LAotICAg
ICAgICAgIHsKLSAgICAgICAgICAgICJ0aXRsZSI6ICJFbmdsaXNoIFN1YnRpdGxlcyIKLSAgICAg
ICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgICJ0aXRsZSI6ICJGcmVuY2ggU3VidGl0
bGVzIgotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgInRpdGxlIjogIkdl
cm1hbiBTdWJ0aXRsZXMiCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICAi
dGl0bGUiOiAiU3BhbmlzaCBTdWJ0aXRsZXMiCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAg
ICB9Ci0gICAgXQotICB9Ci1dCi1TZXR0aW5nIGNhcHRpb24gZGlzcGxheSBtb2RlIHRvICdmb3Jj
ZWRvbmx5Jy4uLgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBM
RVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtYXV0by10ZXh0LXRyYWNrLmh0bWwg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
aW9zL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmNWJlYmMxODVmNDE5MTJjMjJiNWE3YTQ5OGU1MDc5MDMxNTYwNTZjLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1
cHBvcnQtYXV0by10ZXh0LXRyYWNrLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvbWVkaWEtY29u
dHJvbHMtdXRpbHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291
cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08Ym9keT4KLTx2aWRlbyBzcmM9Ii4u
Ly4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVzLm1vdiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0
ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDogMzAwcHg7IiBhdXRvcGxheSBjb250cm9scyBtdXRl
ZCBwbGF5c2lubGluZT48L3ZpZGVvPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgot
Ci13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJFbnN1cmUgd2Ug
aGF2ZSB0aGUgQXV0byB0ZXh0IHRyYWNrIHNlbGVjdGVkIGJ5IGRlZmF1bHQuIik7Ci0KLWNvbnN0
IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jv
b3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOwotCi1tZWRpYS5hZGRFdmVu
dExpc3RlbmVyKCJwbGF5IiwgKCkgPT4gewotICAgIG1lZGlhLnBhdXNlKCk7Ci0KLSAgICBzaG91
bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNr
cycpIiwgIm51bGwiLCAoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hh
ZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCkud2lkdGgiLCAiMCIsIGFzeW5jICgpID0+IHsKLSAgICAgICAgICAgIGRlYnVnKCJTZXR0
aW5nIGNhcHRpb24gZGlzcGxheSBtb2RlIHRvICdhdXRvbWF0aWMnLi4uIik7Ci0gICAgICAgICAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldENhcHRpb25EaXNwbGF5TW9kZSgiYXV0b21hdGljIik7Ci0K
LSAgICAgICAgICAgIGRlYnVnKCJUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4iKTsKLSAgICAgICAg
ICAgIGxldCBbY29udGV4dG1lbnVdID0gYXdhaXQgUHJvbWlzZS5hbGwoWwotICAgICAgICAgICAg
ICAgIGdldFRyYWNrc0NvbnRleHRNZW51KCksCi0gICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1l
bnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpLAotICAgICAgICAg
ICAgXSk7Ci0gICAgICAgICAgICBkZWJ1ZyhKU09OLnN0cmluZ2lmeShjb250ZXh0bWVudSwgbnVs
bCwgMikpOwotCi0gICAgICAgICAgICBkZWJ1ZygiU2V0dGluZyBjYXB0aW9uIGRpc3BsYXkgbW9k
ZSB0byAnZm9yY2Vkb25seScuLi4iKTsKLSAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
Q2FwdGlvbkRpc3BsYXlNb2RlKCJmb3JjZWRvbmx5Iik7Ci0KLSAgICAgICAgICAgIG1lZGlhLnJl
bW92ZSgpOwotICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgIH0pOwotICAgIH0p
OwotfSk7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mt
c3VwcG9ydC1jbGljay10cmFjay1pbi1jb250ZXh0bWVudS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNr
cy1zdXBwb3J0LWNsaWNrLXRyYWNrLWluLWNvbnRleHRtZW51LWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGJjZjA1Mjk2ZjBlNmIyM2RjZjUyYzU2MjhkYzFlZTAz
NjRjNjIxNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9z
L3RyYWNrcy1zdXBwb3J0LWNsaWNrLXRyYWNrLWluLWNvbnRleHRtZW51LWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLUNsaWNraW5nIG9uIGEgdHJhY2sgaW4gdGhl
IHRyYWNrcyBjb250ZXh0bWVudS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLW1l
ZGlhLmF1ZGlvVHJhY2tzWzBdLmVuYWJsZWQgPSB0cnVlCi1tZWRpYS5hdWRpb1RyYWNrc1sxXS5l
bmFibGVkID0gZmFsc2UKLW1lZGlhLmF1ZGlvVHJhY2tzWzJdLmVuYWJsZWQgPSBmYWxzZQotUEFT
UyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNhbWUgZGlmZmVy
ZW50IGZyb20gbnVsbAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFj
a3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20g
MAotVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uCi1TZWxlY3Rpbmcgc2Vjb25kIGF1ZGlvIHRyYWNr
Li4uCi1BdWRpbyB0cmFja3MgY2hhbmdlZC4KLW1lZGlhLmF1ZGlvVHJhY2tzWzBdLmVuYWJsZWQg
PSBmYWxzZQotbWVkaWEuYXVkaW9UcmFja3NbMV0uZW5hYmxlZCA9IHRydWUKLW1lZGlhLmF1ZGlv
VHJhY2tzWzJdLmVuYWJsZWQgPSBmYWxzZQotVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uCi1TZWxl
Y3RpbmcgdGhpcmQgYXVkaW8gdHJhY2suLi4KLUF1ZGlvIHRyYWNrcyBjaGFuZ2VkLgotbWVkaWEu
YXVkaW9UcmFja3NbMF0uZW5hYmxlZCA9IGZhbHNlCi1tZWRpYS5hdWRpb1RyYWNrc1sxXS5lbmFi
bGVkID0gZmFsc2UKLW1lZGlhLmF1ZGlvVHJhY2tzWzJdLmVuYWJsZWQgPSB0cnVlCi1QQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lv
cy90cmFja3Mtc3VwcG9ydC1jbGljay10cmFjay1pbi1jb250ZXh0bWVudS5odG1sIGIvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFj
a3Mtc3VwcG9ydC1jbGljay10cmFjay1pbi1jb250ZXh0bWVudS5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3ZmVlYjZkYTJmODAxZGYxZGI4NGFiYTBmMTk4YzJkODBmODRmZTEz
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tz
LXN1cHBvcnQtY2xpY2stdHJhY2staW4tY29udGV4dG1lbnUuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDkxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxib2R5Pgot
PHZpZGVvIHNyYz0iLi4vLi4vLi4vY29udGVudC9hdWRpby10cmFja3MubXA0IiBzdHlsZT0icG9z
aXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiAzMDBweDsiIGNvbnRyb2xz
IGF1dG9wbGF5IG11dGVkIHBsYXlzaW5saW5lPjwvdmlkZW8+Ci08c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRp
b24oIkNsaWNraW5nIG9uIGEgdHJhY2sgaW4gdGhlIHRyYWNrcyBjb250ZXh0bWVudS4iKTsKLQot
Y29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qgc2hh
ZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7Ci0KLWxldCBwcmV2
aW91c2x5U2VsZWN0ZWRUcmFjayA9IDA7Ci0KLW1lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInBsYXki
LCAoKSA9PiB7Ci0gICAgbWVkaWEucGF1c2UoKTsKLQotICAgIGR1bXBBdWRpb1RyYWNrc0VuYWJs
ZWRTdGF0ZSgpOwotCi0gICAgbWVkaWEuYXVkaW9UcmFja3MuYWRkRXZlbnRMaXN0ZW5lcigiY2hh
bmdlIiwgaGFuZGxlQXVkaW9UcmFja3NDaGFuZ2UpOwotCi0gICAgc2hvdWxkQmVjb21lRGlmZmVy
ZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSIsICJudWxsIiwg
KCkgPT4gewotICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlT
ZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIiwg
IjAiLCAoKSA9PiB7Ci0gICAgICAgICAgICBjbGlja09uVHJhY2tzQnV0dG9uKGNsaWNrT25TZWNv
bmRBdWRpb1RyYWNrKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19KTsKLQotZnVuY3Rpb24gY2xp
Y2tPblRyYWNrc0J1dHRvbihjb250aW51YXRpb24pCi17Ci0gICAgZGVidWcoIlRhcHBpbmcgdHJh
Y2tzIGJ1dHRvbi4uLiIpOwotICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxl
Y3RvcigiYnV0dG9uLnRyYWNrcyIpLCAoKSA9PiB7Ci0gICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5p
bWF0aW9uRnJhbWUoY29udGludWF0aW9uKTsKLSAgICB9KTsKLX0KLQotYXN5bmMgZnVuY3Rpb24g
Y2xpY2tPblNlY29uZEF1ZGlvVHJhY2soKQotewotICAgIGRlYnVnKCJTZWxlY3Rpbmcgc2Vjb25k
IGF1ZGlvIHRyYWNrLi4uIik7Ci0gICAgbGV0IGNvbnRleHRtZW51ID0gYXdhaXQgZ2V0VHJhY2tz
Q29udGV4dE1lbnUoKTsKLSAgICBsZXQgbGFuZ3VhZ2VzTWVudSA9IGNvbnRleHRtZW51WzBdLmNo
aWxkcmVuWzBdOwotICAgIGF3YWl0IFVJSGVscGVyLmNob29zZU1lbnVBY3Rpb24obGFuZ3VhZ2Vz
TWVudS50aXRsZSk7Ci0gICAgYXdhaXQgVUlIZWxwZXIuZGVsYXlGb3IoNTAwKTsgLy8gZ2l2ZSB0
aW1lIGZvciB0aGUgVUlNZW51IHRvIGFuaW1hdGUKLSAgICBhd2FpdCBVSUhlbHBlci5jaG9vc2VN
ZW51QWN0aW9uKGxhbmd1YWdlc01lbnUuY2hpbGRyZW5bMV0udGl0bGUpOwotfQotCi1hc3luYyBm
dW5jdGlvbiBjbGlja09uVGhpcmRBdWRpb1RyYWNrKCkKLXsKLSAgICBkZWJ1ZygiU2VsZWN0aW5n
IHRoaXJkIGF1ZGlvIHRyYWNrLi4uIik7Ci0gICAgbGV0IGNvbnRleHRtZW51ID0gYXdhaXQgZ2V0
VHJhY2tzQ29udGV4dE1lbnUoKTsKLSAgICBsZXQgbGFuZ3VhZ2VzTWVudSA9IGNvbnRleHRtZW51
WzBdLmNoaWxkcmVuWzBdOwotICAgIGF3YWl0IFVJSGVscGVyLmNob29zZU1lbnVBY3Rpb24obGFu
Z3VhZ2VzTWVudS50aXRsZSk7Ci0gICAgYXdhaXQgVUlIZWxwZXIuZGVsYXlGb3IoNTAwKTsgLy8g
Z2l2ZSB0aW1lIGZvciB0aGUgVUlNZW51IHRvIGFuaW1hdGUKLSAgICBhd2FpdCBVSUhlbHBlci5j
aG9vc2VNZW51QWN0aW9uKGxhbmd1YWdlc01lbnUuY2hpbGRyZW5bMl0udGl0bGUpOwotfQotCi1h
c3luYyBmdW5jdGlvbiBoYW5kbGVBdWRpb1RyYWNrc0NoYW5nZSgpCi17Ci0gICAgY29uc3QgbmV3
U2VsZWN0ZWRUcmFjayA9IEFycmF5LmZyb20obWVkaWEuYXVkaW9UcmFja3MpLmZpbmRJbmRleCh0
cmFjayA9PiB0cmFjay5lbmFibGVkKTsKLSAgICBpZiAocHJldmlvdXNseVNlbGVjdGVkVHJhY2sg
PT09IG5ld1NlbGVjdGVkVHJhY2spCi0gICAgICAgIHJldHVybjsKLQotICAgIHByZXZpb3VzbHlT
ZWxlY3RlZFRyYWNrID0gbmV3U2VsZWN0ZWRUcmFjazsKLQotICAgIGRlYnVnKCJBdWRpbyB0cmFj
a3MgY2hhbmdlZC4iKTsKLQotICAgIGR1bXBBdWRpb1RyYWNrc0VuYWJsZWRTdGF0ZSgpOwotCi0g
ICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvckNvbnRleHRNZW51VG9IaWRlKCk7Ci0KLSAgICBpZiAo
bWVkaWEuYXVkaW9UcmFja3NbMV0uZW5hYmxlZCkKLSAgICAgICAgY2xpY2tPblRyYWNrc0J1dHRv
bihjbGlja09uVGhpcmRBdWRpb1RyYWNrKTsKLSAgICBlbHNlIGlmIChtZWRpYS5hdWRpb1RyYWNr
c1syXS5lbmFibGVkKSB7Ci0gICAgICAgIG1lZGlhLnJlbW92ZSgpOwotICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIGR1bXBBdWRpb1RyYWNrc0VuYWJsZWRTdGF0
ZSgpCi17Ci0gICAgQXJyYXkuZnJvbShtZWRpYS5hdWRpb1RyYWNrcykuZm9yRWFjaCgoYXVkaW9U
cmFjaywgaW5kZXgpID0+IHsKLSAgICAgICAgZGVidWcoYG1lZGlhLmF1ZGlvVHJhY2tzWyR7aW5k
ZXh9XS5lbmFibGVkID0gJHttZWRpYS5hdWRpb1RyYWNrc1tpbmRleF0uZW5hYmxlZH1gKTsKLSAg
ICB9KTsKLX0KLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNr
cy1zdXBwb3J0LWhpZGRlbi10cmFja3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1o
aWRkZW4tdHJhY2tzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OGI4NjU2Zjg4OTg2YjVjZjBjZGY0MTE2YmY3YzJjZjJkNGZmOTc3NS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWhpZGRlbi10
cmFja3MtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotVGhpcyB0
ZXN0IGNoZWNrcyB0aGF0IHRoZSB0cmFja3MgY29udGV4dG1lbnUgZG9lc24ndCBzaG93IGFueSB0
cmFjayBhcyBzZWxlY3RlZCBpZiBhbGwgdGhlIHRleHQgdHJhY2tzIGZvciBhIG1lZGlhIGVsZW1l
bnQgYXJlIG1hcmtlZCBhcyAiaGlkZGVuIi4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgot
Ci0KLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykgYmVjYW1l
IGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0
b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggYmVjYW1lIGRpZmZlcmVu
dCBmcm9tIDAKLVNldHRpbmcgbW9kZSB0byAnaGlkZGVuJyBmb3IgYWxsIHRleHQgdHJhY2tzIHZp
YSBKYXZhU2NyaXB0Li4uCi1UYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KLVsKLSAgewotICAgICJj
aGlsZHJlbiI6IFsKLSAgICAgIHsKLSAgICAgICAgInRpdGxlIjogIkxhbmd1YWdlcyIsCi0gICAg
ICAgICJjaGlsZHJlbiI6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICAidGl0bGUiOiAiRW5n
bGlzaCBTb3VuZCIsCi0gICAgICAgICAgICAiY2hlY2tlZCI6IHRydWUKLSAgICAgICAgICB9LAot
ICAgICAgICAgIHsKLSAgICAgICAgICAgICJ0aXRsZSI6ICJGcmVuY2ggU291bmQiCi0gICAgICAg
ICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICAidGl0bGUiOiAiU3BhbmlzaCBTb3VuZCIK
LSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgICJ0aXRs
ZSI6ICJTdWJ0aXRsZXMiLAotICAgICAgICAiY2hpbGRyZW4iOiBbCi0gICAgICAgICAgewotICAg
ICAgICAgICAgInRpdGxlIjogIk9mZiIsCi0gICAgICAgICAgICAiY2hlY2tlZCI6IHRydWUKLSAg
ICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgICJ0aXRsZSI6ICJBdXRvIChSZWNv
bW1lbmRlZCkiCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICAidGl0bGUi
OiAiRW5nbGlzaCBTdWJ0aXRsZXMiCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAg
ICAgICAidGl0bGUiOiAiRnJlbmNoIFN1YnRpdGxlcyIKLSAgICAgICAgICB9LAotICAgICAgICAg
IHsKLSAgICAgICAgICAgICJ0aXRsZSI6ICJHZXJtYW4gU3VidGl0bGVzIgotICAgICAgICAgIH0s
Ci0gICAgICAgICAgewotICAgICAgICAgICAgInRpdGxlIjogIlNwYW5pc2ggU3VidGl0bGVzIgot
ICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfQotICAgIF0KLSAgfQotXQotUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3Mv
dHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1oaWRk
ZW4tdHJhY2tzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlkZTRmOGQ2ODM2
ZGNmYmViYjIyYTJkMTU4MjlmYzI1YjI1YmFjZTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci08Ym9keT4KLTx2aWRlbyBzcmM9Ii4uLy4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVz
Lm1vdiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDog
MzAwcHg7IiBjb250cm9scyBhdXRvcGxheSBtdXRlZCBwbGF5c2lubGluZT48L3ZpZGVvPgotPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRy
dWU7Ci0KLWRlc2NyaXB0aW9uKGBUaGlzIHRlc3QgY2hlY2tzIHRoYXQgdGhlIHRyYWNrcyBjb250
ZXh0bWVudSBkb2Vzbid0IHNob3cgYW55IHRyYWNrIGFzIHNlbGVjdGVkIGlmIGFsbCB0aGUgdGV4
dCB0cmFja3MgZm9yIGEgbWVkaWEgZWxlbWVudCBhcmUgbWFya2VkIGFzICJoaWRkZW4iLmApOwot
Ci1jb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Ci1jb25zdCBz
aGFkb3dSb290ID0gd2luZG93LmludGVybmFscy5zaGFkb3dSb290KG1lZGlhKTsKLQotbWVkaWEu
YWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKLSAgICBtZWRpYS5wYXVzZSgpOwotCi0g
ICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRv
bi50cmFja3MnKSIsICJudWxsIiwgKCkgPT4gewotICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJl
bnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpLndpZHRoIiwgIjAiLCBhc3luYyAoKSA9PiB7Ci0gICAgICAgICAgICBkZWJ1
ZygiU2V0dGluZyBtb2RlIHRvICdoaWRkZW4nIGZvciBhbGwgdGV4dCB0cmFja3MgdmlhIEphdmFT
Y3JpcHQuLi4iKTsKLSAgICAgICAgICAgIEFycmF5LmZyb20obWVkaWEudGV4dFRyYWNrcykuZm9y
RWFjaCh0cmFjayA9PiB0cmFjay5tb2RlID0gImhpZGRlbiIpOwotCi0gICAgICAgICAgICBkZWJ1
ZygiVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uIik7Ci0gICAgICAgICAgICBsZXQgW2NvbnRleHRt
ZW51XSA9IGF3YWl0IFByb21pc2UuYWxsKFsKLSAgICAgICAgICAgICAgICBnZXRUcmFja3NDb250
ZXh0TWVudSgpLAotICAgICAgICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVl
cnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKSwKLSAgICAgICAgICAgIF0pOwotICAgICAgICAg
ICAgZGVidWcoSlNPTi5zdHJpbmdpZnkoY29udGV4dG1lbnUsIG51bGwsIDIpKTsKLQotICAgICAg
ICAgICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAg
ICAgfSk7Ci0gICAgfSk7Ci19KTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBv
cnQvaW9zL3RyYWNrcy1zdXBwb3J0LW9mZi10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJh
Y2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBkYWNlY2QzMTBlZTI2MmY3NTdmMDAyMTU1YTg4ZDE5NWVmNmQ5Mzc5Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1
cHBvcnQtb2ZmLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNTcg
KzAsMCBAQAotRW5zdXJlIHdlIGhhdmUgdGhlIE9mZiB0ZXh0IHRyYWNrIHNlbGVjdGVkIGJ5IGRl
ZmF1bHQuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHNoYWRvd1Jvb3Qu
cXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxs
Ci1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5k
aW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCi1UYXBwaW5nIHRy
YWNrcyBidXR0b24uLi4KLVsKLSAgewotICAgICJjaGlsZHJlbiI6IFsKLSAgICAgIHsKLSAgICAg
ICAgInRpdGxlIjogIkxhbmd1YWdlcyIsCi0gICAgICAgICJjaGlsZHJlbiI6IFsKLSAgICAgICAg
ICB7Ci0gICAgICAgICAgICAidGl0bGUiOiAiRW5nbGlzaCBTb3VuZCIsCi0gICAgICAgICAgICAi
Y2hlY2tlZCI6IHRydWUKLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgICJ0
aXRsZSI6ICJGcmVuY2ggU291bmQiCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAg
ICAgICAidGl0bGUiOiAiU3BhbmlzaCBTb3VuZCIKLSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAg
ICAgIH0sCi0gICAgICB7Ci0gICAgICAgICJ0aXRsZSI6ICJTdWJ0aXRsZXMiLAotICAgICAgICAi
Y2hpbGRyZW4iOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgInRpdGxlIjogIk9mZiIsCi0g
ICAgICAgICAgICAiY2hlY2tlZCI6IHRydWUKLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAg
ICAgICAgICAgICJ0aXRsZSI6ICJBdXRvIChSZWNvbW1lbmRlZCkiCi0gICAgICAgICAgfSwKLSAg
ICAgICAgICB7Ci0gICAgICAgICAgICAidGl0bGUiOiAiRW5nbGlzaCBTdWJ0aXRsZXMiCi0gICAg
ICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICAidGl0bGUiOiAiRnJlbmNoIFN1YnRp
dGxlcyIKLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgICJ0aXRsZSI6ICJH
ZXJtYW4gU3VidGl0bGVzIgotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAg
InRpdGxlIjogIlNwYW5pc2ggU3VidGl0bGVzIgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAg
ICAgfQotICAgIF0KLSAgfQotXQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1U
RVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJh
Y2suaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
c3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJhY2suaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMGViMzEzNDg0ZWE0ODIzOGYyMzZjNzBlODk3MzA3OWQ2ZTNi
M2VhZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3Ry
YWNrcy1zdXBwb3J0LW9mZi10ZXh0LXRyYWNrLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvbWVk
aWEtY29udHJvbHMtdXRpbHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4u
L3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08Ym9keT4KLTx2aWRlbyBz
cmM9Ii4uLy4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVzLm1vdiIgc3R5bGU9InBvc2l0aW9uOiBh
YnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDogMzAwcHg7IiBjb250cm9scyBhdXRvcGxh
eSBtdXRlZCBwbGF5c2lubGluZT48L3ZpZGVvPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJFbnN1
cmUgd2UgaGF2ZSB0aGUgT2ZmIHRleHQgdHJhY2sgc2VsZWN0ZWQgYnkgZGVmYXVsdC4iKTsKLQot
Y29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qgc2hh
ZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlhLmFk
ZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7Ci0gICAgbWVkaWEucGF1c2UoKTsKLQotICAg
IHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24u
dHJhY2tzJykiLCAibnVsbCIsICgpID0+IHsKLSAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50
KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKS53aWR0aCIsICIwIiwgYXN5bmMgKCkgPT4gewotICAgICAgICAgICAgZGVidWco
IlRhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLiIpOwotICAgICAgICAgICAgbGV0IFtjb250ZXh0bWVu
dV0gPSBhd2FpdCBQcm9taXNlLmFsbChbCi0gICAgICAgICAgICAgICAgZ2V0VHJhY2tzQ29udGV4
dE1lbnUoKSwKLSAgICAgICAgICAgICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5
U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSksCi0gICAgICAgICAgICBdKTsKLSAgICAgICAgICAg
IGRlYnVnKEpTT04uc3RyaW5naWZ5KGNvbnRleHRtZW51LCBudWxsLCAyKSk7Ci0KLSAgICAgICAg
ICAgIG1lZGlhLnJlbW92ZSgpOwotICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAg
IH0pOwotICAgIH0pOwotfSk7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L2lvcy90cmFja3Mtc3VwcG9ydC1zaG93LWNvbnRleHRtZW51LXRoZW4tZG91YmxlLWNsaWNrLW9u
LXRyYWNrcy1idXR0b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1zaG93LWNvbnRl
eHRtZW51LXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24tZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YWZhNzUwNjhlYzIzZGFlMDU1MGY0OGY1ZTBm
ZDQ4Y2NkMjc0YmVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC9pb3MvdHJhY2tzLXN1cHBvcnQtc2hvdy1jb250ZXh0bWVudS10aGVuLWRvdWJsZS1jbGljay1v
bi10cmFja3MtYnV0dG9uLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAg
QEAKLUVuc3VyZSB0aGF0IGNsaWNraW5nIHRoZSB0cmFja3MgYnV0dG9uIHdoZW4gdGhlIHRyYWNr
cyBjb250ZXh0bWVudSBpcyBzaG93biBtYWtlcyB0aGUgY29udGV4dG1lbnUgaGlkZS4KLQotT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCdidXR0b24udHJhY2tzJykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1Mgc2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCkud2lkdGggYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKLVRhcHBpbmcgdHJhY2tzIGJ1dHRvbi4u
LgotQ29udGV4dCBtZW51IHNob3duLgotVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uCi1Db250ZXh0
IG1lbnUgaGlkZGVuLgotVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uCi1Db250ZXh0IG1lbnUgc2hv
d24uCi1UYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KLUNvbnRleHQgbWVudSBoaWRkZW4uCi1QQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L2lvcy90cmFja3Mtc3VwcG9ydC1zaG93LWNvbnRleHRtZW51LXRoZW4tZG91YmxlLWNsaWNrLW9u
LXRyYWNrcy1idXR0b24uaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtc2hvdy1jb250ZXh0bWVudS10
aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDlkZWYyYzA3MzQxMDAyOTI5Y2JlMWQ2Y2VjNWY2ODBiYjIwYTNlZDcuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3Vw
cG9ydC1zaG93LWNvbnRleHRtZW51LXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24u
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KLTxib2R5PgotPHZpZGVvIHNyYz0iLi4vLi4vLi4vY29udGVudC9DQytTdWJ0
aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdp
ZHRoOiAzMDBweDsiIGNvbnRyb2xzIGF1dG9wbGF5IG11dGVkIHBsYXlzaW5saW5lPjwvdmlkZW8+
Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oIkVuc3VyZSB0aGF0IGNsaWNraW5nIHRoZSB0cmFja3Mg
YnV0dG9uIHdoZW4gdGhlIHRyYWNrcyBjb250ZXh0bWVudSBpcyBzaG93biBtYWtlcyB0aGUgY29u
dGV4dG1lbnUgaGlkZS4iKTsKLQotY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCJ2aWRlbyIpOwotY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9v
dChtZWRpYSk7Ci0KLW1lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7Ci0gICAg
bWVkaWEucGF1c2UoKTsKLQotICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5x
dWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykiLCAibnVsbCIsICgpID0+IHsKLSAgICAgICAg
c2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50
cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCIsICIwIiwgYXN5bmMgKCkgPT4g
ewotICAgICAgICAgICAgZGVidWcoIlRhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLiIpOwotICAgICAg
ICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWwotICAgICAgICAgICAgICAgIFVJSGVscGVyLndhaXRG
b3JDb250ZXh0TWVudVRvU2hvdygpLAotICAgICAgICAgICAgICAgIHByZXNzT25FbGVtZW50KHNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKSwKLSAgICAgICAgICAgIF0p
OwotICAgICAgICAgICAgZGVidWcoIkNvbnRleHQgbWVudSBzaG93bi4iKTsKLQotICAgICAgICAg
ICAgZGVidWcoIlRhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLiIpOwotICAgICAgICAgICAgYXdhaXQg
UHJvbWlzZS5hbGwoWwotICAgICAgICAgICAgICAgIFVJSGVscGVyLndhaXRGb3JDb250ZXh0TWVu
dVRvSGlkZSgpLAotICAgICAgICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVl
cnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKSwKLSAgICAgICAgICAgIF0pOwotICAgICAgICAg
ICAgZGVidWcoIkNvbnRleHQgbWVudSBoaWRkZW4uIik7Ci0KLSAgICAgICAgICAgIGRlYnVnKCJU
YXBwaW5nIHRyYWNrcyBidXR0b24uLi4iKTsKLSAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxs
KFsKLSAgICAgICAgICAgICAgICBVSUhlbHBlci53YWl0Rm9yQ29udGV4dE1lbnVUb1Nob3coKSwK
LSAgICAgICAgICAgICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3Io
ImJ1dHRvbi50cmFja3MiKSksCi0gICAgICAgICAgICBdKTsKLSAgICAgICAgICAgIGRlYnVnKCJD
b250ZXh0IG1lbnUgc2hvd24uIik7Ci0KLSAgICAgICAgICAgIGRlYnVnKCJUYXBwaW5nIHRyYWNr
cyBidXR0b24uLi4iKTsKLSAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsKLSAgICAgICAg
ICAgICAgICBVSUhlbHBlci53YWl0Rm9yQ29udGV4dE1lbnVUb0hpZGUoKSwKLSAgICAgICAgICAg
ICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFj
a3MiKSksCi0gICAgICAgICAgICBdKTsKLSAgICAgICAgICAgIGRlYnVnKCJDb250ZXh0IG1lbnUg
aGlkZGVuLiIpOwotCi0gICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsKLSAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0pOwotCi08L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxl
Y3RlZC12aWEtbWVkaWEtYXBpLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtdGV4dC10
cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNTcwYzhiNWZkNWJjMjNjZjgwMDhkZDc1OTA1MmI3NjYyYzc3MjJkNC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1z
dXBwb3J0LXRleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi1UaGlzIHRlc3QgY2hlY2tzIHRoYXQgc2V0dGlu
ZyBhbiBlbWJlZGRlZCB0ZXh0IHRyYWNrIGFzIHNlbGVjdGVkIHZpYSB0aGUgSFRNTE1lZGlhRWxl
bWVudCBKUyBBUElzIHdpbGwgY29ycmVjdGx5IHNob3cgdGhpcyB0cmFjayBhcyBzZWxlY3RlZCwg
YW5kIHRoYXQgc2VsZWN0aW5nIHRoZSAiQXV0b21hdGljIChSZWNvbW1lbmRlZCkiIHRyYWNrIHdp
bGwgcmV2ZXJ0IGJhY2sgdG8gc2VsZWN0aW5nIHRoYXQgZW50cnkuCi0KLU9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KLQotCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRy
YWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlT
ZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJl
Y2FtZSBkaWZmZXJlbnQgZnJvbSAwCi1TZXR0aW5nIG1vZGUgdG8gJ3Nob3dpbmcnIGZvciBmaXJz
dCB0ZXh0IHRyYWNrIHZpYSBKYXZhU2NyaXB0Li4uCi1UYXBwaW5nIHRyYWNrcyBidXR0b24uLi4K
LVsKLSAgewotICAgICJjaGlsZHJlbiI6IFsKLSAgICAgIHsKLSAgICAgICAgInRpdGxlIjogIlN1
YnRpdGxlcyIsCi0gICAgICAgICJjaGlsZHJlbiI6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAg
ICAidGl0bGUiOiAiT2ZmIgotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAg
InRpdGxlIjogIkF1dG8gKFJlY29tbWVuZGVkKSIKLSAgICAgICAgICB9LAotICAgICAgICAgIHsK
LSAgICAgICAgICAgICJ0aXRsZSI6ICJFbmdsaXNoIiwKLSAgICAgICAgICAgICJjaGVja2VkIjog
dHJ1ZQotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgInRpdGxlIjogIkZy
ZW5jaCIKLSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAgIH0KLSAgICBdCi0gIH0KLV0KLVNl
bGVjdGluZyBmaXJzdCB0ZXh0IHRyYWNrLi4uCi1QQVNTIG1lZGlhLnRleHRUcmFja3NbMF0ubW9k
ZSBpcyAnZGlzYWJsZWQnCi1QQVNTIG1lZGlhLnRleHRUcmFja3NbMV0ubW9kZSBpcyAnc2hvd2lu
ZycKLVRhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLgotWwotICB7Ci0gICAgImNoaWxkcmVuIjogWwot
ICAgICAgewotICAgICAgICAidGl0bGUiOiAiU3VidGl0bGVzIiwKLSAgICAgICAgImNoaWxkcmVu
IjogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgICJ0aXRsZSI6ICJPZmYiCi0gICAgICAgICAg
fSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICAidGl0bGUiOiAiQXV0byAoUmVjb21tZW5kZWQp
IiwKLSAgICAgICAgICAgICJjaGVja2VkIjogdHJ1ZQotICAgICAgICAgIH0sCi0gICAgICAgICAg
ewotICAgICAgICAgICAgInRpdGxlIjogIkVuZ2xpc2giCi0gICAgICAgICAgfSwKLSAgICAgICAg
ICB7Ci0gICAgICAgICAgICAidGl0bGUiOiAiRnJlbmNoIgotICAgICAgICAgIH0KLSAgICAgICAg
XQotICAgICAgfQotICAgIF0KLSAgfQotXQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtdGV4dC10
cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LXRleHQt
dHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAxZGJhZTkzYzA3Zjk0YTIzZjY0OGRiZDUwYTk0OTI1OTY1MGQ5YjkzLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQt
dGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw2MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08Ym9keT4KLTx2
aWRlbyBzcmM9Ii4uLy4uLy4uL2NvbnRlbnQvY291bnRpbmctc3VidGl0bGVkLm00diIgc3R5bGU9
InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDogMzAwcHg7IiBjb250
cm9scyBhdXRvcGxheSBtdXRlZCBwbGF5c2lubGluZT48L3ZpZGVvPgotPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2Ny
aXB0aW9uKGBUaGlzIHRlc3QgY2hlY2tzIHRoYXQgc2V0dGluZyBhbiBlbWJlZGRlZCB0ZXh0IHRy
YWNrIGFzIHNlbGVjdGVkIHZpYSB0aGUgSFRNTE1lZGlhRWxlbWVudCBKUyBBUElzIHdpbGwgY29y
cmVjdGx5IHNob3cgdGhpcyB0cmFjayBhcyBzZWxlY3RlZCwgYW5kIHRoYXQgc2VsZWN0aW5nIHRo
ZSAKLSJBdXRvbWF0aWMgKFJlY29tbWVuZGVkKSIgdHJhY2sgd2lsbCByZXZlcnQgYmFjayB0byBz
ZWxlY3RpbmcgdGhhdCBlbnRyeS5gKTsKLQotY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hh
ZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7
Ci0gICAgbWVkaWEucGF1c2UoKTsKLQotICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykiLCAibnVsbCIsICgpID0+IHsKLSAg
ICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1
dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCIsICIwIiwgYXN5bmMg
KCkgPT4gewotICAgICAgICAgICAgZGVidWcoIlNldHRpbmcgbW9kZSB0byAnc2hvd2luZycgZm9y
IGZpcnN0IHRleHQgdHJhY2sgdmlhIEphdmFTY3JpcHQuLi4iKTsKLSAgICAgICAgICAgIG1lZGlh
LnRleHRUcmFja3NbMF0ubW9kZSA9ICJzaG93aW5nIjsKLQotICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIGRlYnVnKCJUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4iKTsKLSAgICAgICAgICAg
ICAgICBsZXQgW2NvbnRleHRtZW51XSA9IGF3YWl0IFByb21pc2UuYWxsKFsKLSAgICAgICAgICAg
ICAgICAgICAgZ2V0VHJhY2tzQ29udGV4dE1lbnUoKSwKLSAgICAgICAgICAgICAgICAgICAgcHJl
c3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpLAot
ICAgICAgICAgICAgICAgIF0pOwotICAgICAgICAgICAgICAgIGRlYnVnKEpTT04uc3RyaW5naWZ5
KGNvbnRleHRtZW51LCBudWxsLCAyKSk7Ci0KLSAgICAgICAgICAgICAgICBkZWJ1ZygiU2VsZWN0
aW5nIGZpcnN0IHRleHQgdHJhY2suLi4iKTsKLSAgICAgICAgICAgICAgICBsZXQgc3VidGl0bGVz
TWVudSA9IGNvbnRleHRtZW51WzBdLmNoaWxkcmVuWzBdOwotICAgICAgICAgICAgICAgIGF3YWl0
IFVJSGVscGVyLmNob29zZU1lbnVBY3Rpb24oc3VidGl0bGVzTWVudS50aXRsZSk7Ci0gICAgICAg
ICAgICAgICAgYXdhaXQgVUlIZWxwZXIuZGVsYXlGb3IoNTAwKTsgLy8gZ2l2ZSB0aW1lIGZvciB0
aGUgVUlNZW51IHRvIGFuaW1hdGUKLSAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5jaG9v
c2VNZW51QWN0aW9uKHN1YnRpdGxlc01lbnUuY2hpbGRyZW5bMV0udGl0bGUpOwotICAgICAgICAg
ICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JDb250ZXh0TWVudVRvSGlkZSgpOwotICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICBzaG91bGRCZSgibWVkaWEudGV4dFRyYWNrc1swXS5tb2Rl
IiwgIidkaXNhYmxlZCciKTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJtZWRpYS50ZXh0VHJhY2tz
WzFdLm1vZGUiLCAiJ3Nob3dpbmcnIik7Ci0KLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICBkZWJ1ZygiVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uIik7Ci0gICAgICAgICAgICAgICAgbGV0
IFtjb250ZXh0bWVudV0gPSBhd2FpdCBQcm9taXNlLmFsbChbCi0gICAgICAgICAgICAgICAgICAg
IGdldFRyYWNrc0NvbnRleHRNZW51KCksCi0gICAgICAgICAgICAgICAgICAgIHByZXNzT25FbGVt
ZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKSwKLSAgICAgICAg
ICAgICAgICBdKTsKLSAgICAgICAgICAgICAgICBkZWJ1ZyhKU09OLnN0cmluZ2lmeShjb250ZXh0
bWVudSwgbnVsbCwgMikpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBtZWRpYS5yZW1v
dmUoKTsKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9KTsKLSAgICB9KTsK
LX0pOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1
cHBvcnQtYXV0by10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtYXV0
by10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YWRhYzBiNzU1Y2NiYTk4MDY5ODk0MzVlNGZiYjc4NTM1MDZhZDk3ZS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4
dC10cmFjay1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi1FbnN1
cmUgd2UgaGF2ZSB0aGUgQXV0byB0ZXh0IHRyYWNrIHNlbGVjdGVkIGJ5IGRlZmF1bHQuCi0KLU9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCi1QQVNTIHNoYWRv
d1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlT
ZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCi1QQVNT
IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnbGkuc2VsZWN0ZWQnKVsxXS50ZXh0Q29udGVu
dCBpcyAiQXV0byAoUmVjb21tZW5kZWQpIgotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1hdXRv
LXRleHQtdHJhY2suaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtYXV0by10ZXh0LXRyYWNrLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEzZmY3NzlmMjkzZmYxY2M1NzhkNTdiNjU4
YmNiNDMwZmM1ZmFkMzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L21hYy90cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJhY2suaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDM1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8gc3JjPSIuLi8uLi8uLi9jb250ZW50L0NDK1N1
YnRpdGxlcy5tb3YiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsg
d2lkdGg6IDY0MHB4OyBoZWlnaHQ6IDM2MHB4OyIgY29udHJvbHMgYXV0b3BsYXk+PC92aWRlbz4K
LTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOwotCi1kZXNjcmlwdGlvbigiRW5zdXJlIHdlIGhhdmUgdGhlIEF1dG8gdGV4dCB0cmFj
ayBzZWxlY3RlZCBieSBkZWZhdWx0LiIpOwotCi1jb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoInZpZGVvIik7Ci1jb25zdCBzaGFkb3dSb290ID0gd2luZG93LmludGVybmFscy5z
aGFkb3dSb290KG1lZGlhKTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+
IHsKLSAgICBtZWRpYS5wYXVzZSgpOwotCi0gICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFk
b3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSIsICJudWxsIiwgKCkgPT4gewot
ICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcign
YnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIiwgIjAiLCAoKSA9
PiB7Ci0gICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldENhcHRpb25EaXNwbGF5TW9kZSgi
YXV0b21hdGljIik7Ci0gICAgICAgICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5
U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSk7Ci0gICAgICAgICAgICBzaG91bGRCZWNvbWVEaWZm
ZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpIiwgIm51bGwi
LCAoKSA9PiB7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzaGFkb3dS
b290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpLnNlbGVjdGVkJylbMV0udGV4dENvbnRlbnQiLCAiQXV0
byAoUmVjb21tZW5kZWQpIik7Ci0gICAgICAgICAgICAgICAgZGVidWcoIiIpOwotICAgICAgICAg
ICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0Q2FwdGlvbkRpc3BsYXlNb2RlKCJmb3JjZWRvbmx5
Iik7Ci0gICAgICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAgICAgICAgICAgICAgZmlu
aXNoSlNUZXN0KCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19KTsK
LQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0
LWNsaWNrLXRyYWNrLWluLXBhbmVsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtY2xp
Y2stdHJhY2staW4tcGFuZWwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA1Mjk0MTEwNWJmYTljZWYyNmY3YzMwZjhiOWRjNTMyNjkzZjM1YjJmLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtY2xp
Y2stdHJhY2staW4tcGFuZWwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAs
MCBAQAotQ2xpY2tpbmcgb24gYSB0cmFjayBpbiB0aGUgdHJhY2tzIHBhbmVsLgotCi1PbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCi0KLQotbWVkaWEuYXVkaW9UcmFja3NbMF0uZW5hYmxlZCA9IHRy
dWUKLW1lZGlhLmF1ZGlvVHJhY2tzWzFdLmVuYWJsZWQgPSBmYWxzZQotbWVkaWEuYXVkaW9UcmFj
a3NbMl0uZW5hYmxlZCA9IGZhbHNlCi0KLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdi
dXR0b24udHJhY2tzJykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1Mgc2hhZG93Um9v
dC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCku
d2lkdGggYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKLQotQ2xpY2tpbmcgb24gdGhlIHRyYWNrcyBi
dXR0b24KLUNsaWNraW5nIG9uIHNlY29uZCBhdWRpbyB0cmFjayBpbiB0cmFja3MgcGFuZWwKLQot
T2J0YWluZWQgY2hhbmdlIGV2ZW50IG9uIG1lZGlhIGF1ZGlvIHRyYWNrcwotbWVkaWEuYXVkaW9U
cmFja3NbMF0uZW5hYmxlZCA9IGZhbHNlCi1tZWRpYS5hdWRpb1RyYWNrc1sxXS5lbmFibGVkID0g
dHJ1ZQotbWVkaWEuYXVkaW9UcmFja3NbMl0uZW5hYmxlZCA9IGZhbHNlCi0KLUNsaWNraW5nIG9u
IHRoZSB0cmFja3MgYnV0dG9uCi1DbGlja2luZyBvbiB0aGlyZCBhdWRpbyB0cmFjayBpbiB0cmFj
a3MgcGFuZWwKLQotT2J0YWluZWQgY2hhbmdlIGV2ZW50IG9uIG1lZGlhIGF1ZGlvIHRyYWNrcwot
bWVkaWEuYXVkaW9UcmFja3NbMF0uZW5hYmxlZCA9IGZhbHNlCi1tZWRpYS5hdWRpb1RyYWNrc1sx
XS5lbmFibGVkID0gZmFsc2UKLW1lZGlhLmF1ZGlvVHJhY2tzWzJdLmVuYWJsZWQgPSB0cnVlCi0K
LVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWNsaWNrLXRyYWNrLWluLXBhbmVsLmh0bWwgYi9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3Ry
YWNrcy1zdXBwb3J0LWNsaWNrLXRyYWNrLWluLXBhbmVsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDlmYjJjYjNjM2EzMDdjMDllM2M5YzBmZmVhZTllNjI0NzE1MTQ5ODcuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3Vw
cG9ydC1jbGljay10cmFjay1pbi1wYW5lbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTcgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxib2R5PgotPHZpZGVvIHNyYz0iLi4vLi4vLi4v
Y29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0
OiAwOyB0b3A6IDA7IHdpZHRoOiA2NDBweDsgaGVpZ2h0OiAzNjBweDsiIGNvbnRyb2xzIGF1dG9w
bGF5PjwvdmlkZW8+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXdpbmRvdy5q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oIkNsaWNraW5nIG9uIGEgdHJhY2sg
aW4gdGhlIHRyYWNrcyBwYW5lbC4iKTsKLQotY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hh
ZG93Um9vdChtZWRpYSk7Ci0KLWxldCBwcmV2aW91c2x5U2VsZWN0ZWRUcmFjayA9IDA7Ci0KLW1l
ZGlhLmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7Ci0gICAgbWVkaWEucGF1c2UoKTsK
LQotICAgIGR1bXBBdWRpb1RyYWNrc0VuYWJsZWRTdGF0ZSgpOwotCi0gICAgbWVkaWEuYXVkaW9U
cmFja3MuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgYXVkaW9UcmFja3NEaWRDaGFuZ2UpOwot
Ci0gICAgZGVidWcoIiIpOwotICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5x
dWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykiLCAibnVsbCIsICgpID0+IHsKLSAgICAgICAg
c2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50
cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCIsICIwIiwgKCkgPT4gewotICAg
ICAgICAgICAgY2xpY2tPblRyYWNrc0J1dHRvbihjbGlja09uU2Vjb25kQXVkaW9UcmFjayk7Ci0g
ICAgICAgIH0pOwotICAgIH0pOwotfSk7Ci0KLWZ1bmN0aW9uIGNsaWNrT25UcmFja3NCdXR0b24o
Y29udGludWF0aW9uKQotewotICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4g
ewotICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgIGRlYnVnKCJDbGlja2luZyBvbiB0aGUgdHJh
Y2tzIGJ1dHRvbiIpOwotICAgICAgICBjbGlja09uRWxlbWVudChzaGFkb3dSb290Lmxhc3RDaGls
ZC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpOwotICAgICAgICB3aW5kb3cucmVxdWVz
dEFuaW1hdGlvbkZyYW1lKGNvbnRpbnVhdGlvbik7Ci0gICAgfSk7Ci19Ci0KLWZ1bmN0aW9uIGNs
aWNrT25TZWNvbmRBdWRpb1RyYWNrKCkKLXsKLSAgICBkZWJ1ZygiQ2xpY2tpbmcgb24gc2Vjb25k
IGF1ZGlvIHRyYWNrIGluIHRyYWNrcyBwYW5lbCIpOwotICAgIGNsaWNrT25BdWRpb1RyYWNrQXRJ
bmRleCgxKTsKLX0KLQotZnVuY3Rpb24gY2xpY2tPblRoaXJkQXVkaW9UcmFjaygpCi17Ci0gICAg
ZGVidWcoIkNsaWNraW5nIG9uIHRoaXJkIGF1ZGlvIHRyYWNrIGluIHRyYWNrcyBwYW5lbCIpOwot
ICAgIGNsaWNrT25BdWRpb1RyYWNrQXRJbmRleCgyKTsKLX0KLQotZnVuY3Rpb24gY2xpY2tPbkF1
ZGlvVHJhY2tBdEluZGV4KGluZGV4KQotewotICAgIGNsaWNrT25FbGVtZW50KHNoYWRvd1Jvb3Qu
bGFzdENoaWxkLnF1ZXJ5U2VsZWN0b3JBbGwoImxpIilbaW5kZXhdKTsKLX0KLQotZnVuY3Rpb24g
Y2xpY2tPbkVsZW1lbnQoZWxlbWVudCkKLXsKLSAgICBjb25zdCBib3VuZHMgPSBlbGVtZW50Lmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGJvdW5k
cy5sZWZ0ICsgMSwgYm91bmRzLnRvcCArIDEpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigp
OwotICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLX0KLQotZnVuY3Rpb24gYXVkaW9UcmFja3NE
aWRDaGFuZ2UoKQotewotICAgIGNvbnN0IG5ld1NlbGVjdGVkVHJhY2sgPSBBcnJheS5mcm9tKG1l
ZGlhLmF1ZGlvVHJhY2tzKS5maW5kSW5kZXgodHJhY2sgPT4gdHJhY2suZW5hYmxlZCk7Ci0gICAg
aWYgKHByZXZpb3VzbHlTZWxlY3RlZFRyYWNrID09PSBuZXdTZWxlY3RlZFRyYWNrKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBwcmV2aW91c2x5U2VsZWN0ZWRUcmFjayA9IG5ld1NlbGVjdGVkVHJh
Y2s7Ci0KLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIk9idGFpbmVkIGNoYW5nZSBldmVudCBv
biBtZWRpYSBhdWRpbyB0cmFja3MiKTsKLQotICAgIGR1bXBBdWRpb1RyYWNrc0VuYWJsZWRTdGF0
ZSgpOwotCi0gICAgaWYgKG1lZGlhLmF1ZGlvVHJhY2tzWzFdLmVuYWJsZWQpCi0gICAgICAgIHNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnRyYWNrcy1wYW5lbCIpLmFkZEV2ZW50TGlzdGVuZXIo
InRyYW5zaXRpb25lbmQiLCBldmVudCA9PiBjbGlja09uVHJhY2tzQnV0dG9uKGNsaWNrT25UaGly
ZEF1ZGlvVHJhY2spKTsKLSAgICBlbHNlIGlmIChtZWRpYS5hdWRpb1RyYWNrc1syXS5lbmFibGVk
KSB7Ci0gICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAgICAg
IGZpbmlzaEpTVGVzdCgpOwotICAgIH0KLX0KLQotZnVuY3Rpb24gZHVtcEF1ZGlvVHJhY2tzRW5h
YmxlZFN0YXRlKCkKLXsKLSAgICBBcnJheS5mcm9tKG1lZGlhLmF1ZGlvVHJhY2tzKS5mb3JFYWNo
KChhdWRpb1RyYWNrLCBpbmRleCkgPT4gewotICAgICAgICBkZWJ1ZyhgbWVkaWEuYXVkaW9UcmFj
a3NbJHtpbmRleH1dLmVuYWJsZWQgPSAke21lZGlhLmF1ZGlvVHJhY2tzW2luZGV4XS5lbmFibGVk
fWApOwotICAgIH0pOwotfQotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9t
YWMvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1z
dXBwb3J0LWhpZGRlbi10cmFja3MtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA3YWQzZmMxOTZiNjU5OTVmM2E3MDRjN2MyMTc4MGY1MzMyNmFiODRlLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQt
aGlkZGVuLXRyYWNrcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBA
Ci1UaGlzIHRlc3QgY2hlY2tzIHRoYXQgdGhlIHRyYWNrcyBwYW5lbCBkb2Vzbid0IHNob3cgYW55
IHRyYWNrIGFzIHNlbGVjdGVkIGlmIGFsbCB0aGUgdGV4dCB0cmFja3MgZm9yIGEgbWVkaWEgZWxl
bWVudCBhcmUgbWFya2VkIGFzICJoaWRkZW4iLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
Ci0KLQotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNh
bWUgZGlmZmVyZW50IGZyb20gbnVsbAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1
dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVy
ZW50IGZyb20gMAotCi09PT0gSW5pdGlhbCBzdGF0ZSA9PT0KLQotW3hdIE9mZgotWy1dIEF1dG8g
KFJlY29tbWVuZGVkKQotWy1dIEVuZ2xpc2ggU3VidGl0bGVzCi1bLV0gRnJlbmNoIFN1YnRpdGxl
cwotWy1dIEdlcm1hbiBTdWJ0aXRsZXMKLVstXSBTcGFuaXNoIFN1YnRpdGxlcwotCi1QQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21h
Yy90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWhp
ZGRlbi10cmFja3MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzlhMmI1Mzc2
NzExY2ZkOTJhOGM0ZDlkOTE4MTZjYmVlZGMwZTgzZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWhpZGRlbi10cmFja3MuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08
Ym9keT4KLTx2aWRlbyBzcmM9Ii4uLy4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVzLm1vdiIgc3R5
bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDogNjQwcHg7IGhl
aWdodDogMzYwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgotPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2Ny
aXB0aW9uKGBUaGlzIHRlc3QgY2hlY2tzIHRoYXQgdGhlIHRyYWNrcyBwYW5lbCBkb2Vzbid0IHNo
b3cgYW55IHRyYWNrIGFzIHNlbGVjdGVkIGlmIGFsbCB0aGUgdGV4dCB0cmFja3MgZm9yIGEgbWVk
aWEgZWxlbWVudCBhcmUgbWFya2VkIGFzICJoaWRkZW4iLmApOwotCi1jb25zdCBtZWRpYSA9IGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Ci1jb25zdCBzaGFkb3dSb290ID0gd2luZG93
LmludGVybmFscy5zaGFkb3dSb290KG1lZGlhKTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigi
cGxheSIsICgpID0+IHsKLSAgICBtZWRpYS5wYXVzZSgpOwotCi0gICAgc2hvdWxkQmVjb21lRGlm
ZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSIsICJudWxs
IiwgKCkgPT4gewotICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVl
cnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRo
IiwgIjAiLCBydW5UZXN0KTsKLSAgICB9KTsKLX0pOwotCi1hc3luYyBmdW5jdGlvbiBydW5UZXN0
KCkKLXsKLSAgICAvLyBTdGFydCBieSBtYWtpbmcgc3VyZSBhbGwgdHJhY2tzIGFyZSBtYXJrZWQg
YXMgImhpZGRlbiIuCi0gICAgQXJyYXkuZnJvbShtZWRpYS50ZXh0VHJhY2tzKS5mb3JFYWNoKHRy
YWNrID0+IHRyYWNrLm1vZGUgPSAiaGlkZGVuIik7Ci0KLSAgICAvLyBOZXh0LCBicmluZyB1cCB0
aGUgdHJhY2tzIG1lbnUgYnkgY2xpY2tpbmcgb24gdGhlIHRyYWNrcyBidXR0b24uCi0gICAgYXdh
aXQgY2xpY2tPblRyYWNrc0J1dHRvbigpOwotICAgIC8vIER1bXAgdGhlIHN0YXRlIG9mIHRoZSB0
cmFja3MgbWVudSBmb3IgdGV4dCB0cmFja3MsIHdoaWNoIHNob3VsZCBzaG93IHRoZSBmaXJzdCBl
bWJlZGRlZCB0ZXh0IHRyYWNrIGFzIHNlbGVjdGVkLgotICAgIGR1bXBUZXh0VHJhY2tzTGlzdE5v
ZGVzKCJJbml0aWFsIHN0YXRlIik7Ci0KLSAgICBmaW5pc2hUZXN0KCk7Ci19Ci0KLWZ1bmN0aW9u
IHRleHRUcmFja3NMaXN0Tm9kZXMoKQotewotICAgIHJldHVybiBzaGFkb3dSb290LnF1ZXJ5U2Vs
ZWN0b3JBbGwoIi50cmFja3MtcGFuZWwgc2VjdGlvbjpsYXN0LW9mLXR5cGUgPiB1bCA+IGxpIik7
Ci19Ci0KLWZ1bmN0aW9uIGR1bXBUZXh0VHJhY2tzTGlzdE5vZGVzKG1zZykKLXsKLSAgICBkZWJ1
ZygiIik7Ci0gICAgZGVidWcoYD09PSAke21zZ30gPT09YCk7Ci0gICAgZGVidWcoIiIpOwotICAg
IEFycmF5LmZyb20odGV4dFRyYWNrc0xpc3ROb2RlcygpKS5mb3JFYWNoKGxpID0+IGRlYnVnKGAk
e2xpLmNsYXNzTGlzdC5jb250YWlucygic2VsZWN0ZWQiKSA/ICJbeF0iIDogIlstXSJ9ICR7bGku
dGV4dENvbnRlbnR9YCkpOwotfQotCi1hc3luYyBmdW5jdGlvbiBjbGlja09uVHJhY2tzQnV0dG9u
KCkKLXsKLSAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpOwotICAg
IGNsaWNrT25FbGVtZW50KHNoYWRvd1Jvb3QubGFzdENoaWxkLnF1ZXJ5U2VsZWN0b3IoImJ1dHRv
bi50cmFja3MiKSk7Ci0gICAgYXdhaXQgbmV3IFByb21pc2UocmVxdWVzdEFuaW1hdGlvbkZyYW1l
KTsKLX0KLQotZnVuY3Rpb24gY2xpY2tPbkVsZW1lbnQoZWxlbWVudCkKLXsKLSAgICBjb25zdCBi
b3VuZHMgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKGJvdW5kcy5sZWZ0ICsgMSwgYm91bmRzLnRvcCArIDEpOwotICAgIGV2ZW50
U2VuZGVyLm1vdXNlRG93bigpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLX0KLQotZnVu
Y3Rpb24gZmluaXNoVGVzdCgpCi17Ci0gICAgZGVidWcoIiIpOwotICAgIG1lZGlhLnJlbW92ZSgp
OwotICAgIGZpbmlzaEpTVGVzdCgpOwotfQotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
c3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21h
Yy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGZiM2UzMTgwNWRlZTgyN2Y4YjdlOGFmMTFhMGZiYjk2NTA1ZTgx
N2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFj
a3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwxNCArMCwwIEBACi1FbnN1cmUgd2UgaGF2ZSB0aGUgT2ZmIHRleHQgdHJhY2sgc2VsZWN0ZWQg
YnkgZGVmYXVsdC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgc2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykgYmVjYW1lIGRpZmZlcmVudCBmcm9t
IG51bGwKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKLVBBU1Mg
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykgYmVjYW1lIGRpZmZlcmVu
dCBmcm9tIG51bGwKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdsaS5zZWxlY3Rl
ZCcpWzFdLnRleHRDb250ZW50IGlzICJPZmYiCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LW9m
Zi10ZXh0LXRyYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LW9mZi10ZXh0LXRyYWNrLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY2MDgwODc4NDQ1NTBkOTdlN2NhYzg3YWIy
NmQ1M2RkNjg0MWNkM2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L21hYy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMzMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlw
dCI+PC9zY3JpcHQ+Ci08Ym9keT4KLTx2aWRlbyBzcmM9Ii4uLy4uLy4uL2NvbnRlbnQvQ0MrU3Vi
dGl0bGVzLm1vdiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3
aWR0aDogNjQwcHg7IGhlaWdodDogMzYwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgot
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJFbnN1cmUgd2UgaGF2ZSB0aGUgT2ZmIHRleHQgdHJhY2sg
c2VsZWN0ZWQgYnkgZGVmYXVsdC4iKTsKLQotY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hh
ZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7
Ci0gICAgbWVkaWEucGF1c2UoKTsKLQotICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykiLCAibnVsbCIsICgpID0+IHsKLSAg
ICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1
dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCIsICIwIiwgKCkgPT4g
ewotICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJi
dXR0b24udHJhY2tzIikpOwotICAgICAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFk
b3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKSIsICJudWxsIiwgKCkgPT4gewot
ICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic2hhZG93Um9vdC5xdWVyeVNl
bGVjdG9yQWxsKCdsaS5zZWxlY3RlZCcpWzFdLnRleHRDb250ZW50IiwgIk9mZiIpOwotICAgICAg
ICAgICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsKLSAg
ICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9
KTsKLSAgICB9KTsKLX0pOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9t
YWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1hbmQtcG9wdWxhdGUtcGFuZWwtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21h
Yy90cmFja3Mtc3VwcG9ydC1zaG93LWFuZC1wb3B1bGF0ZS1wYW5lbC1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA1MmQ2Y2IxOTg3ODgwNTg5Y2EwZWM4YWRlMDAw
NzExN2IzYWQ1MDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LWFuZC1wb3B1bGF0ZS1wYW5lbC1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1TaG93aW5nIGFuZCBwb3B1bGF0aW5nIHRo
ZSB0cmFja3MgcGFuZWwuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1BdWRpbwot
ICBFbmdsaXNoIFNvdW5kCi0gIEZyZW5jaCBTb3VuZAotICBTcGFuaXNoIFNvdW5kCi0KLVN1YnRp
dGxlcwotICBPZmYKLSAgQXV0byAoUmVjb21tZW5kZWQpCi0gIEVuZ2xpc2ggU3VidGl0bGVzCi0g
IEZyZW5jaCBTdWJ0aXRsZXMKLSAgR2VybWFuIFN1YnRpdGxlcwotICBTcGFuaXNoIFN1YnRpdGxl
cwotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LWFuZC1wb3B1bGF0ZS1wYW5lbC5odG1s
IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LWFuZC1wb3B1bGF0ZS1wYW5lbC5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhM2IzYWI3YmFlMzI0YjgxYmQxYWYwM2M0Yzk1MTgzOTZi
OTJkZDQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMv
dHJhY2tzLXN1cHBvcnQtc2hvdy1hbmQtcG9wdWxhdGUtcGFuZWwuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDQ2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08Ym9keT4KLTx2aWRlbyBz
cmM9Ii4uLy4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVzLm1vdiIgc3R5bGU9IndpZHRoOiA2NDBw
eDsgaGVpZ2h0OiAzNjBweDsiIGNvbnRyb2xzIGF1dG9wbGF5PjwvdmlkZW8+Ci08c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQot
ZGVzY3JpcHRpb24oIlNob3dpbmcgYW5kIHBvcHVsYXRpbmcgdGhlIHRyYWNrcyBwYW5lbC4iKTsK
LQotY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qg
c2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlh
LmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7Ci0gICAgbWVkaWEucGF1c2UoKTsKLSAg
ICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKLSAgICAgICAgY2xpY2tPblRy
YWNrc0J1dHRvbigpOwotICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+
IHsKLSAgICAgICAgICAgIGxpc3RDb250ZW50c09mVHJhY2tzUGFuZWwoKTsKLSAgICAgICAgICAg
IG1lZGlhLnJlbW92ZSgpOwotICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgIH0p
OwotICAgIH0pOwotfSk7Ci0KLWZ1bmN0aW9uIGNsaWNrT25UcmFja3NCdXR0b24oKQotewotICAg
IGNvbnN0IGJvdW5kcyA9IHNoYWRvd1Jvb3QubGFzdENoaWxkLnF1ZXJ5U2VsZWN0b3IoImJ1dHRv
bi50cmFja3MiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICBldmVudFNlbmRlci5tb3Vz
ZU1vdmVUbyhib3VuZHMubGVmdCArIDEsIGJvdW5kcy50b3AgKyAxKTsKLSAgICBldmVudFNlbmRl
ci5tb3VzZURvd24oKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci19Ci0KLWZ1bmN0aW9u
IGxpc3RDb250ZW50c09mVHJhY2tzUGFuZWwoKQotewotICAgIGZvciAobGV0IHNlY3Rpb24gb2Yg
c2hhZG93Um9vdC5sYXN0Q2hpbGQucXVlcnlTZWxlY3RvckFsbCgic2VjdGlvbiIpKSB7Ci0gICAg
ICAgIGRlYnVnKHNlY3Rpb24ucXVlcnlTZWxlY3RvcigiaDMiKS50ZXh0Q29udGVudCk7Ci0gICAg
ICAgIGZvciAobGV0IGl0ZW0gb2Ygc2VjdGlvbi5xdWVyeVNlbGVjdG9yQWxsKCJsaSIpKQotICAg
ICAgICAgICAgZGVidWcoIiAgIiArIGl0ZW0udGV4dENvbnRlbnQpOwotICAgICAgICBkZWJ1Zygi
Iik7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMv
dHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1hZnRlci1kcmFnZ2luZy1jb250cm9scy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmctY29udHJv
bHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOTg0MzBiZjM4
ZjEyNjYwYjhlZmNjNzk2MTZlZjE4NGI1MTA4NGU5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1hZnRlci1k
cmFnZ2luZy1jb250cm9scy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCww
IEBACi1UZXN0aW5nIHRoZSBkaXNwbGF5IG9mIGEgdHJhY2tzIHBhbmVsIGFmdGVyIGRyYWdnaW5n
IHRoZSBjb250cm9scyBiYXIgaW4gZnVsbHNjcmVlbi4KLQotT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgotCi0KLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24uZnVsbHNjcmVl
bicpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCi1QQVNT
IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlT
ZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0IGlz
IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpLnJpZ2h0Ci1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1w
YW5lbCcpLnN0eWxlLmJvdHRvbSBpcyAiMTUxcHgiCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0
LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmctY29udHJvbHMuaHRtbCBiL0xheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBv
cnQtc2hvdy1wYW5lbC1hZnRlci1kcmFnZ2luZy1jb250cm9scy5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBmYWJhYjkwNTg1OGZjYWVmOThiMjk4Y2U3NzBmOWIxYjY2ODY2ODE5
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tz
LXN1cHBvcnQtc2hvdy1wYW5lbC1hZnRlci1kcmFnZ2luZy1jb250cm9scy5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsNTkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMiIHR5cGU9InRleHQvamF2
YXNjcmlwdCI+PC9zY3JpcHQ+Ci08Ym9keT4KLTx2aWRlbyBzcmM9Ii4uLy4uLy4uL2NvbnRlbnQv
Q0MrU3VidGl0bGVzLm1vdiIgc3R5bGU9IndpZHRoOiAzMjBweDsgaGVpZ2h0OiAyNDBweDsiIGNv
bnRyb2xzIGF1dG9wbGF5PjwvdmlkZW8+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+
Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oIlRlc3Rpbmcg
dGhlIGRpc3BsYXkgb2YgYSB0cmFja3MgcGFuZWwgYWZ0ZXIgZHJhZ2dpbmcgdGhlIGNvbnRyb2xz
IGJhciBpbiBmdWxsc2NyZWVuLiIpOwotCi1jb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoInZpZGVvIik7Ci1jb25zdCBzaGFkb3dSb290ID0gd2luZG93LmludGVybmFscy5zaGFk
b3dSb290KG1lZGlhKTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0YmVnaW5mdWxs
c2NyZWVuIiwgKCkgPT4gewotICAgIGRlYnVnKCJ3ZWJraXRiZWdpbmZ1bGxzY3JlZW4iKTsKLX0p
OwotCi1tZWRpYS5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRmdWxsc2NyZWVuY2hhbmdlIiwgKCkg
PT4gewotICAgIGlmICghbWVkaWEud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4pCi0gICAgICAg
IHJldHVybjsKLQotICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewotICAg
ICAgICBjb25zdCBib3VuZHMgPSBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb250cm9scy1i
YXIiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VN
b3ZlVG8oYm91bmRzLmxlZnQgKyAxMTgsIGJvdW5kcy50b3AgKyAxMCk7Ci0gICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlRG93bigpOwotICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhib3Vu
ZHMubGVmdCArIDY4LCBib3VuZHMudG9wIC0gNDApOwotICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZVVwKCk7Ci0KLSAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKLSAgICAgICAg
ICAgIGNsaWNrT25CdXR0b24oInRyYWNrcyIsICgpID0+IHsKLSAgICAgICAgICAgICAgICByZXF1
ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewotICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgi
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGll
bnRSZWN0KCkucmlnaHQiLCAic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVs
JykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQiKQotICAgICAgICAgICAgICAgICAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1w
YW5lbCcpLnN0eWxlLmJvdHRvbSIsICIxNTFweCIpOwotCi0gICAgICAgICAgICAgICAgICAgIGRl
YnVnKCIiKTsKLSAgICAgICAgICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAgICAgICAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAg
ICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotfSk7Ci0KLW1lZGlhLmFkZEV2ZW50TGlzdGVu
ZXIoInBsYXkiLCAoKSA9PiB7Ci0gICAgbWVkaWEucGF1c2UoKTsKLSAgICB3aW5kb3cucmVxdWVz
dEFuaW1hdGlvbkZyYW1lKCgpID0+IGNsaWNrT25CdXR0b24oImZ1bGxzY3JlZW4iKSk7Ci19KTsK
LQotZnVuY3Rpb24gY2xpY2tPbkJ1dHRvbihuYW1lLCBjb250aW51YXRpb24pCi17Ci0gICAgc2hv
dWxkQmVjb21lRGlmZmVyZW50KGBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi4ke25h
bWV9JykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClgLCAiMCIsICgpID0+IHsKLSAgICAgICAgcHJl
c3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKGBidXR0b24uJHtuYW1lfWApLCBj
b250aW51YXRpb24pOwotICAgIH0pOwotfQotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
c3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1mdWxsc2NyZWVuLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3Vw
cG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1mdWxsc2NyZWVuLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTI1M2VhMGZlNDA1OTY5MjE0YTg3Mjdl
NTE5ZTE2MWMyZjY3ODk1NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtZnVsbHNjcmVlbi1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1TaG93aW5nIHRoZSB0cmFja3MgcGFu
ZWwgaW4gZnVsbHNjcmVlbi4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mg
aW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi5mdWxsc2Ny
ZWVuIikgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1MgaW50ZXJuYWxzLnNoYWRvd1Jv
b3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi5mdWxsc2NyZWVuIikuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCkud2lkdGggYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKLXdlYmtpdGZ1bGxzY3Jl
ZW5jaGFuZ2UgZXZlbnQgaXMgZmlyZWQKLVBBU1MgaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50
YXRpb25Nb2RlKG1lZGlhKSBiZWNhbWUgZmFsc2UKLVBBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3Qo
bWVkaWEpLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSBiZWNhbWUgZGlmZmVyZW50IGZy
b20gbnVsbAotUEFTUyBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3Rvcigi
YnV0dG9uLnRyYWNrcyIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZm
ZXJlbnQgZnJvbSAwCi1QQVNTIGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVj
dG9yKCJidXR0b24udHJhY2tzIikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQgYmVjYW1l
IDU4MgotUEFTUyBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcignLnRy
YWNrcy1wYW5lbCcpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCi1QQVNTIGludGVybmFscy5z
aGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykuc3R5bGUucmln
aHQgaXMgIjIxOHB4IgotUEFTUyBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxl
Y3RvcignLnRyYWNrcy1wYW5lbCcpLnN0eWxlLmJvdHRvbSBpcyAiMTAxcHgiCi0KLXdlYmtpdGZ1
bGxzY3JlZW5jaGFuZ2UgZXZlbnQgaXMgZmlyZWQKLVBBU1MgaW50ZXJuYWxzLmlzQ2hhbmdpbmdQ
cmVzZW50YXRpb25Nb2RlKG1lZGlhKSBiZWNhbWUgZmFsc2UKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBw
b3J0LXNob3ctcGFuZWwtZnVsbHNjcmVlbi5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBh
bmVsLWZ1bGxzY3JlZW4uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGU2YWEw
ZGVlMmY3ZDZjYTU3YWU3ZDVkZGVhMjgyYWU4YWI1ZTBhZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtZnVs
bHNjcmVlbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMt
dXRpbHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08Ym9keT4KLTx2aWRl
byBzcmM9Ii4uLy4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVzLm1vdiIgc3R5bGU9IndpZHRoOiAz
MjBweDsgaGVpZ2h0OiAyNDBweDsiIGNvbnRyb2xzIGF1dG9wbGF5PjwvdmlkZW8+Ci08c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
LQotZGVzY3JpcHRpb24oIlNob3dpbmcgdGhlIHRyYWNrcyBwYW5lbCBpbiBmdWxsc2NyZWVuLiIp
OwotCi1zZXRUaW1lb3V0KCgpID0+IHsKLSAgICBkZWJ1ZygiRkFJTDogZGlkIG5vdCBlbmQgZmFz
dCBlbm91Z2giKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0sIDEwMDAwKTsKLQotaW50ZXJuYWxz
LnNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKHRydWUpOwotCi1jb25zdCBtZWRp
YSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Ci0KLW1lZGlhLmFkZEV2ZW50TGlz
dGVuZXIoIndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UiLCAoKSA9PiB7Ci0gICAgZGVidWcoIndlYmtp
dGZ1bGxzY3JlZW5jaGFuZ2UgZXZlbnQgaXMgZmlyZWQiKTsKLSAgICBzaG91bGRCZWNvbWVFcXVh
bCgiaW50ZXJuYWxzLmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKG1lZGlhKSIsICJmYWxzZSIs
ICgpID0+IHsKLSAgICAgICAgaWYgKCFtZWRpYS53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbikg
ewotICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAgICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKLSAgICAgICAgfQotCi0gICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudChgaW50ZXJuYWxz
LnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKWAsICJudWxs
IiwgKCkgPT4gewotICAgICAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KGBpbnRlcm5hbHMu
c2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpLmdldEJvdW5k
aW5nQ2xpZW50UmVjdCgpLndpZHRoYCwgIjAiLCAoKSA9PiB7Ci0gICAgICAgICAgICAgICAgc2hv
dWxkQmVjb21lRXF1YWwoYGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9y
KCJidXR0b24udHJhY2tzIikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHRgLCAiNTgyIiwg
YXN5bmMgKCkgPT4gewotICAgICAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5yZW5kZXJp
bmdVcGRhdGUoKTsKLSAgICAgICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoaW50ZXJuYWxz
LnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSk7Ci0gICAg
ICAgICAgICAgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudChgaW50ZXJuYWxzLnNoYWRvd1Jv
b3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKWAsICJudWxsIiwgKCkgPT4g
ewotICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJpbnRlcm5h
bHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpLnN0eWxl
LnJpZ2h0IiwgIjIxOHB4Iik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCcudHJh
Y2tzLXBhbmVsJykuc3R5bGUuYm90dG9tIiwgIjEwMXB4Iik7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtZWRpYS53ZWJraXRFeGl0
RnVsbHNjcmVlbigpOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9
KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0pOwotCi1tZWRpYS5h
ZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4gewotICAgIG1lZGlhLnBhdXNlKCk7Ci0gICAg
c2hvdWxkQmVjb21lRGlmZmVyZW50KGBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlT
ZWxlY3RvcigiYnV0dG9uLmZ1bGxzY3JlZW4iKWAsICJudWxsIiwgKCkgPT4gewotICAgICAgICBz
aG91bGRCZWNvbWVEaWZmZXJlbnQoYGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNl
bGVjdG9yKCJidXR0b24uZnVsbHNjcmVlbiIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRo
YCwgIjAiLCAoKSA9PiB7Ci0gICAgICAgICAgICBwcmVzc09uRWxlbWVudChpbnRlcm5hbHMuc2hh
ZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcihgYnV0dG9uLmZ1bGxzY3JlZW5gKSk7Ci0gICAg
ICAgIH0pOwotICAgIH0pOwotfSk7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9uLXRy
YWNrcy1idXR0b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLXRo
ZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA5OGJkNzc4YzI4MjJmODNmNGNmZThlMTM0MTUyZjA3YTI0YzE0
NmFhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJh
Y2tzLXN1cHBvcnQtc2hvdy1wYW5lbC10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9u
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLUVuc3VyZSB0aGF0
IGRvdWJsZS1jbGlja2luZyB0aGUgdHJhY2tzIGJ1dHRvbiB3aGVuIHRoZSB0cmFja3MgcGFuZWwg
bWFrZXMgdGhlIHBhbmVsIGFwcGVhciBhZ2Fpbi4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgotCi0KLU1lZGlhIHN0YXJ0ZWQgcGxheWluZwotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0
b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAotUEFTUyBzaGFk
b3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJl
Y3QoKS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5
U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAotUEFT
UyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKSBpcyBub3QgbnVsbAot
Ci1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1z
dXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9u
LXRyYWNrcy1idXR0b24uaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC10aGVuLWRv
dWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDc1ZWQwNDJkNDdjZDFhYjFiYWZhMDY2ZWFmOTg0YTg2NmU3YzYzY2QuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1z
aG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24uaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDQxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzIiB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8gc3JjPSIuLi8uLi8uLi9jb250ZW50
L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRv
cDogMDsgd2lkdGg6IDY0MHB4OyBoZWlnaHQ6IDM2MHB4OyIgY29udHJvbHMgYXV0b3BsYXk+PC92
aWRlbz4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbigiRW5zdXJlIHRoYXQgZG91YmxlLWNsaWNraW5n
IHRoZSB0cmFja3MgYnV0dG9uIHdoZW4gdGhlIHRyYWNrcyBwYW5lbCBtYWtlcyB0aGUgcGFuZWwg
YXBwZWFyIGFnYWluLiIpOwotCi1jb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
InZpZGVvIik7Ci1jb25zdCBzaGFkb3dSb290ID0gd2luZG93LmludGVybmFscy5zaGFkb3dSb290
KG1lZGlhKTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKLSAgICBt
ZWRpYS5wYXVzZSgpOwotCi0gICAgZGVidWcoIk1lZGlhIHN0YXJ0ZWQgcGxheWluZyIpOwotICAg
IHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24u
dHJhY2tzJykiLCAibnVsbCIsICgpID0+IHsKLSAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50
KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKS53aWR0aCIsICIwIiwgKCkgPT4gewotICAgICAgICAgICAgcHJlc3NPbkVsZW1l
bnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpOwotICAgICAgICAg
ICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFj
a3MtcGFuZWwnKSIsICJudWxsIiwgKCkgPT4gewotICAgICAgICAgICAgICAgIHByZXNzT25FbGVt
ZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKTsKLSAgICAgICAg
ICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewotICAgICAgICAgICAgICAgICAg
ICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3Mi
KSk7Ci0gICAgICAgICAgICAgICAgICAgIC8vIEdpdmUgdGhlIHRyYW5zaXRpb25lbmQgZXZlbnQg
dGltZSB0byBmaXJlIGlmIGl0IHdlcmUgdG8gaGFwcGVuLCB3aGljaCBpdCBzaG91bGQgbm90Lgot
ICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHNob3VsZE5vdEJlKCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFu
ZWwnKSIsICJudWxsIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICAgICAgICAgICAgICB9LCA1MDApOwotICAgICAg
ICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotfSk7
Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9y
dC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGktZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFj
a3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGktZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YzhjNzM0NTYwYmU4ODhlMmU0OGUxOWZl
NWFkM2Q2NWM1MTkzYTUzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3Vw
cG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBp
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLVRoaXMgdGVzdCBj
aGVja3MgdGhhdCBzZXR0aW5nIGFuIGVtYmVkZGVkIHRleHQgdHJhY2sgYXMgc2VsZWN0ZWQgdmlh
IHRoZSBIVE1MTWVkaWFFbGVtZW50IEpTIEFQSXMgd2lsbCBjb3JyZWN0bHkgc2hvdyB0aGlzIHRy
YWNrIGFzIHNlbGVjdGVkLCBhbmQgdGhhdCBzZWxlY3RpbmcgdGhlICJBdXRvbWF0aWMgKFJlY29t
bWVuZGVkKSIgdHJhY2sgd2lsbCByZXZlcnQgYmFjayB0byBzZWxlY3RpbmcgdGhhdCBlbnRyeS4K
LQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNl
bGVjdG9yKCdidXR0b24udHJhY2tzJykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1Mg
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGll
bnRSZWN0KCkud2lkdGggYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKLQotPT09IEluaXRpYWwgc3Rh
dGUgPT09Ci0KLVstXSBPZmYKLVstXSBBdXRvIChSZWNvbW1lbmRlZCkKLVt4XSBFbmdsaXNoIFN1
YnRpdGxlcwotWy1dIEZyZW5jaCBTdWJ0aXRsZXMKLVstXSBHZXJtYW4gU3VidGl0bGVzCi1bLV0g
U3BhbmlzaCBTdWJ0aXRsZXMKLQotPT09IEFmdGVyIHBpY2tpbmcgYXV0byB0cmFjayBpbnRlcmFj
dGl2ZWx5ID09PQotCi1bLV0gT2ZmCi1beF0gQXV0byAoUmVjb21tZW5kZWQpCi1bLV0gRW5nbGlz
aCBTdWJ0aXRsZXMKLVstXSBGcmVuY2ggU3VidGl0bGVzCi1bLV0gR2VybWFuIFN1YnRpdGxlcwot
Wy1dIFNwYW5pc2ggU3VidGl0bGVzCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
LQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXRleHQtdHJh
Y2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC10ZXh0LXRy
YWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNDAyMmViOTZkZjk0NGVmMWE4MjNiZTkxZjFmOTBkZDM5YjczMDA1Mi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXRl
eHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
ODggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxib2R5PgotPHZpZGVvIHNyYz0iLi4v
Li4vLi4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRl
OyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiA2NDBweDsgaGVpZ2h0OiAzNjBweDsiIGNvbnRyb2xz
IGF1dG9wbGF5PjwvdmlkZW8+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXdp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oYFRoaXMgdGVzdCBjaGVj
a3MgdGhhdCBzZXR0aW5nIGFuIGVtYmVkZGVkIHRleHQgdHJhY2sgYXMgc2VsZWN0ZWQgdmlhIHRo
ZSBIVE1MTWVkaWFFbGVtZW50IEpTIEFQSXMgd2lsbCBjb3JyZWN0bHkgc2hvdyB0aGlzIHRyYWNr
IGFzIHNlbGVjdGVkLCBhbmQgdGhhdCBzZWxlY3RpbmcgdGhlIAotIkF1dG9tYXRpYyAoUmVjb21t
ZW5kZWQpIiB0cmFjayB3aWxsIHJldmVydCBiYWNrIHRvIHNlbGVjdGluZyB0aGF0IGVudHJ5LmAp
OwotCi1jb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Ci1jb25z
dCBzaGFkb3dSb290ID0gd2luZG93LmludGVybmFscy5zaGFkb3dSb290KG1lZGlhKTsKLQotbWVk
aWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKLSAgICBtZWRpYS5wYXVzZSgpOwot
Ci0gICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1
dHRvbi50cmFja3MnKSIsICJudWxsIiwgKCkgPT4gewotICAgICAgICBzaG91bGRCZWNvbWVEaWZm
ZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5k
aW5nQ2xpZW50UmVjdCgpLndpZHRoIiwgIjAiLCBydW5UZXN0KTsKLSAgICB9KTsKLX0pOwotCi1h
c3luYyBmdW5jdGlvbiBydW5UZXN0KCkKLXsKLSAgICAvLyBTdGFydCBieSBzZWxlY3Rpbmcgb25l
IG9mIHRoZSB0ZXh0IHRyYWNrcyB1c2luZyB0aGUgbWVkaWEgSlMgQVBJLgotICAgIC8vIFRoaXMg
d2lsbCBjYXVzZSB0ZXh0VHJhY2tzRGlkQ2hhbmdlIHRvIGJlIGNhbGxlZCBmb3IgdGhlIGZpcnN0
IHRpbWUuCi0gICAgbWVkaWEudGV4dFRyYWNrc1swXS5tb2RlID0gInNob3dpbmciOwotCi0gICAg
Ly8gTmV4dCwgYnJpbmcgdXAgdGhlIHRyYWNrcyBtZW51IGJ5IGNsaWNraW5nIG9uIHRoZSB0cmFj
a3MgYnV0dG9uLgotICAgIGF3YWl0IGNsaWNrT25UcmFja3NCdXR0b24oKTsKLSAgICAvLyBEdW1w
IHRoZSBzdGF0ZSBvZiB0aGUgdHJhY2tzIG1lbnUgZm9yIHRleHQgdHJhY2tzLCB3aGljaCBzaG91
bGQgc2hvdyB0aGUgZmlyc3QgZW1iZWRkZWQgdGV4dCB0cmFjayBhcyBzZWxlY3RlZC4KLSAgICBk
dW1wVGV4dFRyYWNrc0xpc3ROb2RlcygiSW5pdGlhbCBzdGF0ZSIpOwotICAgIC8vIE5vdywgc2Vs
ZWN0IHRoZSAiQXV0b21hdGljIChSZWNvbW1lbmRlZCkiIHRleHQgdHJhY2suIAotICAgIGF3YWl0
IGNsaWNrT25UZXh0VHJhY2tBdEluZGV4KDEpOwotICAgIC8vIFdhaXQgZm9yIHRoZSBzZWxlY3Rp
b24gdG8gaGF2ZSBnb25lIHRocm91Z2ggYW5kIHRoZSBwYW5lbCB0byBoYXZlIHRyYW5zaXRpb25l
ZCBvdXQgb2Ygdmlldy4KLSAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNoYWRvd1Jv
b3QucXVlcnlTZWxlY3RvcigiLnRyYWNrcy1wYW5lbCIpLmFkZEV2ZW50TGlzdGVuZXIoInRyYW5z
aXRpb25lbmQiLCByZXNvbHZlLCB7IG9uY2U6IHRydWUgfSkpOwotCi0gICAgLy8gTm93LCBicmlu
ZyB1cCB0aGUgdHJhY2tzIG1lbnUgYWdhaW4gYnkgY2xpY2tpbmcgb24gdGhlIHRyYWNrcyBidXR0
b24uCi0gICAgYXdhaXQgY2xpY2tPblRyYWNrc0J1dHRvbigpOwotICAgIC8vIER1bXAgdGhlIHN0
YXRlIG9mIHRoZSB0cmFja3MgbWVudSBmb3IgdGV4dCB0cmFja3MsIHdoaWNoIHNob3VsZCBub3cg
c2hvdyAiQXV0b21hdGljIChSZWNvbW1lbmRlZCkiIGFzIHNlbGVjdGVkLgotICAgIGR1bXBUZXh0
VHJhY2tzTGlzdE5vZGVzKCJBZnRlciBwaWNraW5nIGF1dG8gdHJhY2sgaW50ZXJhY3RpdmVseSIp
OwotCi0gICAgZmluaXNoVGVzdCgpOwotfQotCi1mdW5jdGlvbiB0ZXh0VHJhY2tzTGlzdE5vZGVz
KCkKLXsKLSAgICByZXR1cm4gc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCIudHJhY2tzLXBh
bmVsIHNlY3Rpb246bGFzdC1vZi10eXBlID4gdWwgPiBsaSIpOwotfQotCi1mdW5jdGlvbiBkdW1w
VGV4dFRyYWNrc0xpc3ROb2Rlcyhtc2cpCi17Ci0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKGA9
PT0gJHttc2d9ID09PWApOwotICAgIGRlYnVnKCIiKTsKLSAgICBBcnJheS5mcm9tKHRleHRUcmFj
a3NMaXN0Tm9kZXMoKSkuZm9yRWFjaChsaSA9PiBkZWJ1ZyhgJHtsaS5jbGFzc0xpc3QuY29udGFp
bnMoInNlbGVjdGVkIikgPyAiW3hdIiA6ICJbLV0ifSAke2xpLnRleHRDb250ZW50fWApKTsKLX0K
LQotYXN5bmMgZnVuY3Rpb24gY2xpY2tPblRyYWNrc0J1dHRvbigpCi17Ci0gICAgYXdhaXQgbmV3
IFByb21pc2UocmVxdWVzdEFuaW1hdGlvbkZyYW1lKTsKLSAgICBjbGlja09uRWxlbWVudChzaGFk
b3dSb290Lmxhc3RDaGlsZC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpOwotICAgIGF3
YWl0IG5ldyBQcm9taXNlKHJlcXVlc3RBbmltYXRpb25GcmFtZSk7Ci19Ci0KLWZ1bmN0aW9uIGNs
aWNrT25UZXh0VHJhY2tBdEluZGV4KGluZGV4KQotewotICAgIGNsaWNrT25FbGVtZW50KHRleHRU
cmFja3NMaXN0Tm9kZXMoKVtpbmRleF0pOwotfQotCi1mdW5jdGlvbiBjbGlja09uRWxlbWVudChl
bGVtZW50KQotewotICAgIGNvbnN0IGJvdW5kcyA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYm91bmRzLmxlZnQgKyAxLCBib3Vu
ZHMudG9wICsgMSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgZXZlbnRTZW5k
ZXIubW91c2VVcCgpOwotfQotCi1mdW5jdGlvbiBmaW5pc2hUZXN0KCkKLXsKLSAgICBkZWJ1Zygi
Iik7Ci0gICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19Ci0KLTwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L25vLXRyYWNrcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbm8t
dHJhY2tzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMDUxNDJkMTI5ZjJkODUyOWUwYzM4MTNj
NTNiNDVkNDZlYjdkMTcwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L25vLXRyYWNrcy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMSBAQAorVGVzdGluZyB0aGUgVHJhY2tzU3VwcG9ydCBiZWhhdmlvciB3aXRo
IG5vIHRyYWNrcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCkud2lkdGggaXMgMAorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L25vLXRyYWNrcy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L25vLXRyYWNrcy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmU2ODY2NmZmNTdmNWViOWU1YmZhZTYxNmQxNjdmOGIxZjJkMDhlZTUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXN1cHBvcnQvbm8tdHJhY2tzLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLWxvYWRlci5qcyIgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij48L3NjcmlwdD4KKzxib2R5PgorPHZpZGVvIHNyYz0iLi4vLi4vY29udGVudC90ZXN0Lm1w
NCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDogNDAw
cHg7IiBhdXRvcGxheSBjb250cm9scyBtdXRlZCBwbGF5c2lubGluZT48L3ZpZGVvPgorPGRpdiBp
ZD0ic2hhZG93Ij48L2Rpdj4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKword2lu
ZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitkZXNjcmlwdGlvbigiVGVzdGluZyB0aGUgPGNv
ZGU+VHJhY2tzU3VwcG9ydDwvY29kZT4gYmVoYXZpb3Igd2l0aCBubyB0cmFja3MuIik7CisKK2Nv
bnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKK2NvbnN0IHNoYWRv
d1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOworCittZWRpYS5hZGRF
dmVudExpc3RlbmVyKCJwbGF5IiwgZnVuY3Rpb24oKSB7CisgICAgbWVkaWEucGF1c2UoKTsKKwor
ICAgIHNob3VsZEJlKCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCIsICIwIik7CisKKyAgICBkZWJ1ZygiIik7Cisg
ICAgbWVkaWEucmVtb3ZlKCk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKworPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvb2ZmLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L29mZi10
ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmUwZDk2Y2MwN2U4ZTExNmQzNWFi
MjcyNThlMDE1Y2EyZDkxMTI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L29mZi10ZXh0LXRyYWNrLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitFbnN1cmUgd2UgaGF2ZSB0aGUgT2ZmIHRleHQgdHJh
Y2sgc2VsZWN0ZWQgYnkgZGVmYXVsdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykgYmVjYW1lIGRp
ZmZlcmVudCBmcm9tIG51bGwKK1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24u
dHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggYmVjYW1lIGRpZmZlcmVudCBm
cm9tIDAKK1RhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLgorUEFTUyBjaGVja2VkSXRlbXMubGVuZ3Ro
IGlzIDEKK1BBU1MgY2hlY2tlZEl0ZW1zWzBdLnRpdGxlIGlzICJPZmYiCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L29mZi10ZXh0
LXRyYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvb2ZmLXRleHQtdHJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjcwM2EwMDZhODBl
MGMyMWRmZDI0ZjQxN2Y1YTU4NDA1ZjlhNDViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L29mZi10ZXh0LXRy
YWNrLmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPGJvZHk+
Cis8dmlkZW8gc3JjPSIuLi8uLi9jb250ZW50L2NvdW50aW5nLXN1YnRpdGxlZC5tNHYiIHN0eWxl
PSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDQwMHB4OyIgYXV0
b3BsYXkgY29udHJvbHMgbXV0ZWQgcGxheXNpbmxpbmU+PC92aWRlbz4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitkZXNj
cmlwdGlvbigiRW5zdXJlIHdlIGhhdmUgdGhlIE9mZiB0ZXh0IHRyYWNrIHNlbGVjdGVkIGJ5IGRl
ZmF1bHQuIik7CisKK2NvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8i
KTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEp
OworCitsZXQgY2hlY2tlZEl0ZW1zID0gbnVsbDsKKworbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigi
cGxheSIsICgpID0+IHsKKyAgICBtZWRpYS5wYXVzZSgpOworCisgICAgc2hvdWxkQmVjb21lRGlm
ZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSIsICJudWxs
IiwgKCkgPT4geworICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVl
cnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRo
IiwgIjAiLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBkZWJ1ZygiVGFwcGluZyB0cmFja3Mg
YnV0dG9uLi4uIik7CisgICAgICAgICAgICBsZXQgW2NvbnRleHRtZW51XSA9IGF3YWl0IFByb21p
c2UuYWxsKFsKKyAgICAgICAgICAgICAgICBnZXRUcmFja3NDb250ZXh0TWVudSgpLAorICAgICAg
ICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9u
LnRyYWNrcyIpKSwKKyAgICAgICAgICAgIF0pOworICAgICAgICAgICAgbGV0IHN1YnRpdGxlc01l
bnUgPSBjb250ZXh0bWVudVswXS5jaGlsZHJlbi5maW5kKChzdWJtZW51KSA9PiBzdWJtZW51LnRp
dGxlID09PSAiU3VidGl0bGVzIik7CisgICAgICAgICAgICBpZiAoc3VidGl0bGVzTWVudS5jaGls
ZHJlbj8ubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuY2hvb3NlTWVu
dUFjdGlvbihzdWJ0aXRsZXNNZW51LnRpdGxlKTsKKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhl
bHBlci5kZWxheUZvcig1MDApOyAvLyBnaXZlIHRpbWUgZm9yIHRoZSBVSU1lbnUgdG8gYW5pbWF0
ZQorICAgICAgICAgICAgICAgIGNvbnRleHRtZW51ID0gW3N1YnRpdGxlc01lbnVdOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgY2hlY2tlZEl0ZW1zID0gY29udGV4dG1lbnVbMF0uY2hpbGRy
ZW4uZmlsdGVyKChpdGVtKSA9PiBpdGVtLmNoZWNrZWQpOworICAgICAgICAgICAgc2hvdWxkQmUo
ImNoZWNrZWRJdGVtcy5sZW5ndGgiLCAiMSIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJjaGVja2VkSXRlbXNbMF0udGl0bGUiLCAiT2ZmIik7CisKKyAgICAgICAgICAgIG1l
ZGlhLnJlbW92ZSgpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0pOwor
ICAgIH0pOworfSk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3Nob3ctY29u
dGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
c2hvdy1jb250ZXh0bWVudS10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44YWZhNzUwNjhlYzIzZGFlMDU1MGY0OGY1ZTBmZDQ4Y2NkMjc0
YmVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L3Nob3ctY29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2st
b24tdHJhY2tzLWJ1dHRvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorRW5zdXJlIHRo
YXQgY2xpY2tpbmcgdGhlIHRyYWNrcyBidXR0b24gd2hlbiB0aGUgdHJhY2tzIGNvbnRleHRtZW51
IGlzIHNob3duIG1ha2VzIHRoZSBjb250ZXh0bWVudSBoaWRlLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFj
a3MnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAorUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2Vs
ZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNh
bWUgZGlmZmVyZW50IGZyb20gMAorVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uCitDb250ZXh0IG1l
bnUgc2hvd24uCitUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KK0NvbnRleHQgbWVudSBoaWRkZW4u
CitUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KK0NvbnRleHQgbWVudSBzaG93bi4KK1RhcHBpbmcg
dHJhY2tzIGJ1dHRvbi4uLgorQ29udGV4dCBtZW51IGhpZGRlbi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvc2hvdy1jb250ZXh0
bWVudS10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLmh0bWwgYi9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvc2hvdy1jb250ZXh0
bWVudS10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjkwM2IxMDYzMTNiNDVjYWYzYzFmNGYxOTUwYjVkM2NjYTNmMWQ3YwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC9zaG93LWNvbnRleHRtZW51LXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24uaHRt
bApAQCAtMCwwICsxLDU3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzx2aWRl
byBzcmM9Ii4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVzLm1vdiIgc3R5bGU9InBvc2l0aW9uOiBh
YnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDogNDAwcHg7IiBhdXRvcGxheSBjb250cm9s
cyBtdXRlZCBwbGF5c2lubGluZT48L3ZpZGVvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPgorCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKCJFbnN1
cmUgdGhhdCBjbGlja2luZyB0aGUgdHJhY2tzIGJ1dHRvbiB3aGVuIHRoZSB0cmFja3MgY29udGV4
dG1lbnUgaXMgc2hvd24gbWFrZXMgdGhlIGNvbnRleHRtZW51IGhpZGUuIik7CisKK2NvbnN0IG1l
ZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKK2NvbnN0IHNoYWRvd1Jvb3Qg
PSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOworCittZWRpYS5hZGRFdmVudExp
c3RlbmVyKCJwbGF5IiwgKCkgPT4geworICAgIG1lZGlhLnBhdXNlKCk7CisKKyAgICBzaG91bGRC
ZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycp
IiwgIm51bGwiLCAoKSA9PiB7CisgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCkud2lkdGgiLCAiMCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGRlYnVnKCJUYXBwaW5n
IHRyYWNrcyBidXR0b24uLi4iKTsKKyAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsKKyAg
ICAgICAgICAgICAgICBVSUhlbHBlci53YWl0Rm9yQ29udGV4dE1lbnVUb1Nob3coKSwKKyAgICAg
ICAgICAgICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRv
bi50cmFja3MiKSksCisgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgIGRlYnVnKCJDb250ZXh0
IG1lbnUgc2hvd24uIik7CisKKyAgICAgICAgICAgIGRlYnVnKCJUYXBwaW5nIHRyYWNrcyBidXR0
b24uLi4iKTsKKyAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAg
ICBVSUhlbHBlci53YWl0Rm9yQ29udGV4dE1lbnVUb0hpZGUoKSwKKyAgICAgICAgICAgICAgICBw
cmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSks
CisgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgIGRlYnVnKCJDb250ZXh0IG1lbnUgaGlkZGVu
LiIpOworCisgICAgICAgICAgICBkZWJ1ZygiVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uIik7Cisg
ICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgVUlIZWxwZXIu
d2FpdEZvckNvbnRleHRNZW51VG9TaG93KCksCisgICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1l
bnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpLAorICAgICAgICAg
ICAgXSk7CisgICAgICAgICAgICBkZWJ1ZygiQ29udGV4dCBtZW51IHNob3duLiIpOworCisgICAg
ICAgICAgICBkZWJ1ZygiVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uIik7CisgICAgICAgICAgICBh
d2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgVUlIZWxwZXIud2FpdEZvckNvbnRl
eHRNZW51VG9IaWRlKCksCisgICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9v
dC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpLAorICAgICAgICAgICAgXSk7CisgICAg
ICAgICAgICBkZWJ1ZygiQ29udGV4dCBtZW51IGhpZGRlbi4iKTsKKworICAgICAgICAgICAgbWVk
aWEucmVtb3ZlKCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSk7Cisg
ICAgfSk7Cit9KTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdGV4dC10cmFj
ay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90ZXh0LXRyYWNrLXNlbGVjdGVk
LXZpYS1tZWRpYS1hcGktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjNjE3ZDkxY2ZmMjc3Nzc2
YTAzMTMzYzQ4ZWI0OTcwZmQyMjA3ZWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdGV4dC10cmFjay1zZWxl
Y3RlZC12aWEtbWVkaWEtYXBpLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIxIEBACitUaGlzIHRl
c3QgY2hlY2tzIHRoYXQgc2V0dGluZyBhbiBlbWJlZGRlZCB0ZXh0IHRyYWNrIGFzIHNlbGVjdGVk
IHZpYSB0aGUgSFRNTE1lZGlhRWxlbWVudCBKUyBBUElzIHdpbGwgY29ycmVjdGx5IHNob3cgdGhp
cyB0cmFjayBhcyBzZWxlY3RlZCwgYW5kIHRoYXQgc2VsZWN0aW5nIHRoZSAiQXV0b21hdGljIChS
ZWNvbW1lbmRlZCkiIHRyYWNrIHdpbGwgcmV2ZXJ0IGJhY2sgdG8gc2VsZWN0aW5nIHRoYXQgZW50
cnkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHNoYWRvd1Jvb3QucXVl
cnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQ
QVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitTZXR0aW5nIG1vZGUg
dG8gJ3Nob3dpbmcnIGZvciAnRW5nbGlzaCcgdGV4dCB0cmFjayB2aWEgSmF2YVNjcmlwdC4uLgor
VGFwcGluZyB0cmFja3MgYnV0dG9uLi4uCitQQVNTIGNvbnRleHRtZW51SXRlbSgnRW5nbGlzaCcp
LmNoZWNrZWQgaXMgdHJ1ZQorUEFTUyBjb250ZXh0bWVudUl0ZW0oJ0ZyZW5jaCcpLmNoZWNrZWQg
aXMgdW5kZWZpbmVkLgorU2VsZWN0aW5nICdGcmVuY2gnIHRleHQgdHJhY2suLi4KK1BBU1Mgc3Vi
dGl0bGVUcmFjaygnZW4nKS5tb2RlIGlzICdkaXNhYmxlZCcKK1BBU1Mgc3VidGl0bGVUcmFjaygn
ZnInKS5tb2RlIGlzICdzaG93aW5nJworVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uCitQQVNTIGNv
bnRleHRtZW51SXRlbSgnRW5nbGlzaCcpLmNoZWNrZWQgaXMgdW5kZWZpbmVkLgorUEFTUyBjb250
ZXh0bWVudUl0ZW0oJ0ZyZW5jaCcpLmNoZWNrZWQgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90ZXh0LXRyYWNrLXNl
bGVjdGVkLXZpYS1tZWRpYS1hcGkuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1h
cGkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wYWZjMTMzZDRlM2Q4ZTYwOTk4MTUzNDNiY2EyMWZlODU4ZWI0
YzI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS5o
dG1sCkBAIC0wLDAgKzEsODIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxib2R5PgorPHZp
ZGVvIHNyYz0iLi4vLi4vY29udGVudC9jb3VudGluZy1zdWJ0aXRsZWQubTR2IiBzdHlsZT0icG9z
aXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiA0MDBweDsiIGF1dG9wbGF5
IGNvbnRyb2xzIG11dGVkIHBsYXlzaW5saW5lPjwvdmlkZW8+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCI+CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZGVzY3JpcHRp
b24oYFRoaXMgdGVzdCBjaGVja3MgdGhhdCBzZXR0aW5nIGFuIGVtYmVkZGVkIHRleHQgdHJhY2sg
YXMgc2VsZWN0ZWQgdmlhIHRoZSBIVE1MTWVkaWFFbGVtZW50IEpTIEFQSXMgd2lsbCBjb3JyZWN0
bHkgc2hvdyB0aGlzIHRyYWNrIGFzIHNlbGVjdGVkLCBhbmQgdGhhdCBzZWxlY3RpbmcgdGhlIAor
IkF1dG9tYXRpYyAoUmVjb21tZW5kZWQpIiB0cmFjayB3aWxsIHJldmVydCBiYWNrIHRvIHNlbGVj
dGluZyB0aGF0IGVudHJ5LmApOworCitjb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoInZpZGVvIik7Citjb25zdCBzaGFkb3dSb290ID0gd2luZG93LmludGVybmFscy5zaGFkb3dS
b290KG1lZGlhKTsKKworbGV0IGNvbnRleHRtZW51ID0gbnVsbDsKKworZnVuY3Rpb24gc3VidGl0
bGVUcmFjayhsYW5ndWFnZSkgeworICAgIHJldHVybiBBcnJheS5mcm9tKG1lZGlhLnRleHRUcmFj
a3MpLmZpbmQoKHRleHRUcmFjaykgPT4gdGV4dFRyYWNrLmtpbmQgPT09ICJzdWJ0aXRsZXMiICYm
IHRleHRUcmFjay5sYW5ndWFnZSA9PT0gbGFuZ3VhZ2UpOworfQorCitmdW5jdGlvbiBjb250ZXh0
bWVudUl0ZW0odGl0bGUpIHsKKyAgICByZXR1cm4gY29udGV4dG1lbnVbMF0uY2hpbGRyZW4uZmlu
ZCgoaXRlbSkgPT4gaXRlbS50aXRsZSA9PT0gdGl0bGUpOworfQorCittZWRpYS5hZGRFdmVudExp
c3RlbmVyKCJwbGF5IiwgKCkgPT4geworICAgIG1lZGlhLnBhdXNlKCk7CisKKyAgICBzaG91bGRC
ZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycp
IiwgIm51bGwiLCAoKSA9PiB7CisgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCkud2lkdGgiLCAiMCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGRlYnVnKCJTZXR0aW5n
IG1vZGUgdG8gJ3Nob3dpbmcnIGZvciAnRW5nbGlzaCcgdGV4dCB0cmFjayB2aWEgSmF2YVNjcmlw
dC4uLiIpOworICAgICAgICAgICAgc3VidGl0bGVUcmFjaygiZW4iKS5tb2RlID0gInNob3dpbmci
OworCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZGVidWcoIlRhcHBpbmcgdHJhY2tz
IGJ1dHRvbi4uLiIpOworICAgICAgICAgICAgICAgIFtjb250ZXh0bWVudV0gPSBhd2FpdCBQcm9t
aXNlLmFsbChbCisgICAgICAgICAgICAgICAgICAgIGdldFRyYWNrc0NvbnRleHRNZW51KCksCisg
ICAgICAgICAgICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cigiYnV0dG9uLnRyYWNrcyIpKSwKKyAgICAgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgICAg
ICBsZXQgc3VidGl0bGVzTWVudSA9IGNvbnRleHRtZW51WzBdLmNoaWxkcmVuLmZpbmQoKHN1Ym1l
bnUpID0+IHN1Ym1lbnUudGl0bGUgPT09ICJTdWJ0aXRsZXMiKTsKKyAgICAgICAgICAgICAgICBp
ZiAoc3VidGl0bGVzTWVudS5jaGlsZHJlbj8ubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAg
IGF3YWl0IFVJSGVscGVyLmNob29zZU1lbnVBY3Rpb24oc3VidGl0bGVzTWVudS50aXRsZSk7Cisg
ICAgICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmRlbGF5Rm9yKDUwMCk7IC8vIGdpdmUg
dGltZSBmb3IgdGhlIFVJTWVudSB0byBhbmltYXRlCisgICAgICAgICAgICAgICAgICAgIGNvbnRl
eHRtZW51ID0gW3N1YnRpdGxlc01lbnVdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICBzaG91bGRCZVRydWUoImNvbnRleHRtZW51SXRlbSgnRW5nbGlzaCcpLmNoZWNrZWQiKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZVVuZGVmaW5lZCgiY29udGV4dG1lbnVJdGVtKCdGcmVu
Y2gnKS5jaGVja2VkIik7CisKKyAgICAgICAgICAgICAgICBkZWJ1ZygiU2VsZWN0aW5nICdGcmVu
Y2gnIHRleHQgdHJhY2suLi4iKTsKKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5jaG9v
c2VNZW51QWN0aW9uKCJGcmVuY2giKTsKKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53
YWl0Rm9yQ29udGV4dE1lbnVUb0hpZGUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
c2hvdWxkQmUoInN1YnRpdGxlVHJhY2soJ2VuJykubW9kZSIsICInZGlzYWJsZWQnIik7CisgICAg
ICAgICAgICBzaG91bGRCZSgic3VidGl0bGVUcmFjaygnZnInKS5tb2RlIiwgIidzaG93aW5nJyIp
OworCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZGVidWcoIlRhcHBpbmcgdHJhY2tz
IGJ1dHRvbi4uLiIpOworICAgICAgICAgICAgICAgIFtjb250ZXh0bWVudV0gPSBhd2FpdCBQcm9t
aXNlLmFsbChbCisgICAgICAgICAgICAgICAgICAgIGdldFRyYWNrc0NvbnRleHRNZW51KCksCisg
ICAgICAgICAgICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cigiYnV0dG9uLnRyYWNrcyIpKSwKKyAgICAgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgICAg
ICBsZXQgc3VidGl0bGVzTWVudSA9IGNvbnRleHRtZW51WzBdLmNoaWxkcmVuLmZpbmQoKHN1Ym1l
bnUpID0+IHN1Ym1lbnUudGl0bGUgPT09ICJTdWJ0aXRsZXMiKTsKKyAgICAgICAgICAgICAgICBp
ZiAoc3VidGl0bGVzTWVudS5jaGlsZHJlbj8ubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAg
IGF3YWl0IFVJSGVscGVyLmNob29zZU1lbnVBY3Rpb24oc3VidGl0bGVzTWVudS50aXRsZSk7Cisg
ICAgICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmRlbGF5Rm9yKDUwMCk7IC8vIGdpdmUg
dGltZSBmb3IgdGhlIFVJTWVudSB0byBhbmltYXRlCisgICAgICAgICAgICAgICAgICAgIGNvbnRl
eHRtZW51ID0gW3N1YnRpdGxlc01lbnVdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICBzaG91bGRCZVVuZGVmaW5lZCgiY29udGV4dG1lbnVJdGVtKCdFbmdsaXNoJykuY2hlY2tl
ZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiY29udGV4dG1lbnVJdGVtKCdGcmVu
Y2gnKS5jaGVja2VkIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1lZGlhLnJlbW92
ZSgpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0pOworICAgIH0pOwor
fSk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LWF1
ZGlvLXRyYWNrcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtYXVkaW8tdHJhY2tzLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjlhNDdkYjhiZTFlNjg4Y2Iz
YTNkN2I3NzA5NDc0NGE2YTE2ZjJlOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtYXVkaW8tdHJhY2tzLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLVRlc3RpbmcgdGhlIFRyYWNrc1N1cHBvcnQgYmVo
YXZpb3Igd2l0aCBhdWRpbyB0cmFja3MuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQot
Ci1UaGUgdHJhY2tzIGJ1dHRvbiBzaG91bGQgYmUgZGlzYWJsZWQgaW5pdGlhbGx5IGFzIHdlIHdh
aXQgZm9yIG1ldGFkYXRhIGFuZCBhdWRpbyB0cmFja3MgdG8gYmUgYWRkZWQuCi1QQVNTIG1lZGlh
Q29udHJvbGxlci5jb250cm9scy50cmFja3NCdXR0b24uZW5hYmxlZCBpcyBmYWxzZQotCi1FdmVu
dHVhbGx5IHRoZSBhdWRpbyB0cmFja3Mgd2lsbCBiZSBhZGRlZCBhbmQgdGhlIHRyYWNrcyBidXR0
b24gd2lsbCBiZSBlbmFibGVkLgotUEFTUyBtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMudHJhY2tz
QnV0dG9uLmVuYWJsZWQgYmVjYW1lIHRydWUKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1hdWRpby10
cmFja3MuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1hdWRpby10cmFja3MuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNzg3ODZhYzQ4YjI5Y2Q2YjMyODUxYmM5MjBjN2JmYmQ3ZDg2NWQ0
OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1
cHBvcnQtYXVkaW8tdHJhY2tzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtbG9hZGVyLmpzIiB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8gc3JjPSIuLi8uLi9j
b250ZW50L2F1ZGlvLXRyYWNrcy5tcDQiIHN0eWxlPSJ3aWR0aDogMzIwcHg7IGhlaWdodDogMjQw
cHg7IiBjb250cm9scz48L3ZpZGVvPgotPGRpdiBpZD0ic2hhZG93Ij48L2Rpdj4KLTxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwot
Ci1kZXNjcmlwdGlvbigiVGVzdGluZyB0aGUgPGNvZGU+VHJhY2tzU3VwcG9ydDwvY29kZT4gYmVo
YXZpb3Igd2l0aCBhdWRpbyB0cmFja3MuIik7Ci0KLWNvbnN0IHNoYWRvd1Jvb3QgPSBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKCJkaXYjc2hhZG93IikuYXR0YWNoU2hhZG93KHsgbW9kZTogIm9wZW4i
IH0pOwotY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwotY29u
c3QgbWVkaWFDb250cm9sbGVyID0gY3JlYXRlQ29udHJvbHMoc2hhZG93Um9vdCwgbWVkaWEsIG51
bGwpOwotCi1kZWJ1ZygiVGhlIHRyYWNrcyBidXR0b24gc2hvdWxkIGJlIGRpc2FibGVkIGluaXRp
YWxseSBhcyB3ZSB3YWl0IGZvciBtZXRhZGF0YSBhbmQgYXVkaW8gdHJhY2tzIHRvIGJlIGFkZGVk
LiIpOwotc2hvdWxkQmVGYWxzZSgibWVkaWFDb250cm9sbGVyLmNvbnRyb2xzLnRyYWNrc0J1dHRv
bi5lbmFibGVkIik7Ci0KLWRlYnVnKCIiKTsKLWRlYnVnKCJFdmVudHVhbGx5IHRoZSBhdWRpbyB0
cmFja3Mgd2lsbCBiZSBhZGRlZCBhbmQgdGhlIHRyYWNrcyBidXR0b24gd2lsbCBiZSBlbmFibGVk
LiIpOwotc2hvdWxkQmVjb21lRXF1YWwoIm1lZGlhQ29udHJvbGxlci5jb250cm9scy50cmFja3NC
dXR0b24uZW5hYmxlZCIsICJ0cnVlIiwgKCkgPT4gewotICAgIGRlYnVnKCIiKTsKLSAgICBzaGFk
b3dSb290Lmhvc3QucmVtb3ZlKCk7Ci0gICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAgZmluaXNoSlNU
ZXN0KCk7Ci19KTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1
cHBvcnQtY2FwdGlvbnMtb2Zmc2V0LXdpdGgtY29udHJvbHMtYmFyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFj
a3Mtc3VwcG9ydC1jYXB0aW9ucy1vZmZzZXQtd2l0aC1jb250cm9scy1iYXItZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOWE5NDk3MzMxZWZjNDIxMTIzOGQ5ZTE1
ZmEzNWY5MGFiYWIzNmYzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3Vw
cG9ydC90cmFja3Mtc3VwcG9ydC1jYXB0aW9ucy1vZmZzZXQtd2l0aC1jb250cm9scy1iYXItZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotRW5zdXJlIHRoYXQgdGhl
IGNhcHRpb25zIGNvbnRhaW5lciBhY2NvdW50cyBmb3IgdGhlIGNvbnRyb3NsIGJhciB3aGVuIHZp
c2libGUuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIGdldENvbXB1dGVk
U3R5bGUoc2hhZG93Um9vdC5sYXN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkKS5oZWln
aHQgaXMgImNhbGMoMTAwJSAtIDM3cHgpIgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1jYXB0aW9ucy1v
ZmZzZXQtd2l0aC1jb250cm9scy1iYXIuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1jYXB0aW9ucy1vZmZz
ZXQtd2l0aC1jb250cm9scy1iYXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OTc1MzRlNjU0NjQ4NzMyNTdhYzlkYjJjMTE2YzNiM2E3OTMzMzJlZC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtY2FwdGlvbnMtb2Zm
c2V0LXdpdGgtY29udHJvbHMtYmFyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250
cm9scy11dGlscy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KLTxib2R5Pgot
PHZpZGVvIHNyYz0iLi4vLi4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRp
b246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiA2NDBweDsgaGVpZ2h0OiAzNjBw
eDsiIGNvbnRyb2xzIGF1dG9wbGF5PjwvdmlkZW8+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oIkVu
c3VyZSB0aGF0IHRoZSBjYXB0aW9ucyBjb250YWluZXIgYWNjb3VudHMgZm9yIHRoZSBjb250cm9z
bCBiYXIgd2hlbiB2aXNpYmxlLiIpOwotCi1jb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoInZpZGVvIik7Ci1jb25zdCBzaGFkb3dSb290ID0gd2luZG93LmludGVybmFscy5zaGFk
b3dSb290KG1lZGlhKTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsK
LSAgICBtZWRpYS5wYXVzZSgpOwotCi0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRDb21w
dXRlZFN0eWxlKHNoYWRvd1Jvb3QubGFzdEVsZW1lbnRDaGlsZC5maXJzdEVsZW1lbnRDaGlsZCku
aGVpZ2h0IiwgImNhbGMoMTAwJSAtIDM3cHgpIik7Ci0gICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAg
ZmluaXNoSlNUZXN0KCk7Ci19KTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
dHJhY2tzLXN1cHBvcnQtbm8tdHJhY2tzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1uby10
cmFja3MtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYzQ0Yzc4
NWRmMWE1MGUwYTFmOTkwYzc2YWI0NThlNTcxZjQ5MmEwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1uby10cmFja3MtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotVGVzdGluZyB0aGUgVHJhY2tzU3Vw
cG9ydCBiZWhhdmlvciB3aXRoIG5vIHRyYWNrcy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgotCi0KLVBBU1MgbWVkaWFDb250cm9sbGVyLmNvbnRyb2xzLnRyYWNrc0J1dHRvbi5lbmFibGVk
IGlzIGZhbHNlCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01Q
TEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtbm8tdHJhY2tzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1
cHBvcnQtbm8tdHJhY2tzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUwMmVi
NGI2MjcyZTFlMmZhZmFjYzRiYTljYTYwMTdmOWE0ZmVkMDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LW5vLXRyYWNrcy5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L21lZGlhLWNvbnRyb2xzLWxvYWRlci5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3Njcmlw
dD4KLTxib2R5PgotPHZpZGVvIHNyYz0iLi4vLi4vY29udGVudC90ZXN0Lm1wNCIgc3R5bGU9Indp
ZHRoOiAzMjBweDsgaGVpZ2h0OiAyNDBweDsiPjwvdmlkZW8+Ci08ZGl2IGlkPSJzaGFkb3ciPjwv
ZGl2PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJUZXN0aW5nIHRoZSA8Y29kZT5UcmFja3NTdXBw
b3J0PC9jb2RlPiBiZWhhdmlvciB3aXRoIG5vIHRyYWNrcy4iKTsKLQotY29uc3Qgc2hhZG93Um9v
dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRpdiNzaGFkb3ciKS5hdHRhY2hTaGFkb3coeyBt
b2RlOiAib3BlbiIgfSk7Ci1jb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZp
ZGVvIik7Ci1jb25zdCBtZWRpYUNvbnRyb2xsZXIgPSBjcmVhdGVDb250cm9scyhzaGFkb3dSb290
LCBtZWRpYSwgbnVsbCk7Ci0KLW1lZGlhLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlZG1ldGFkYXRh
IiwgZnVuY3Rpb24oKSB7Ci0gICAgc2hvdWxkQmVGYWxzZSgibWVkaWFDb250cm9sbGVyLmNvbnRy
b2xzLnRyYWNrc0J1dHRvbi5lbmFibGVkIik7Ci0gICAgZGVidWcoIiIpOwotICAgIHNoYWRvd1Jv
b3QuaG9zdC5yZW1vdmUoKTsKLSAgICBtZWRpYS5yZW1vdmUoKTsKLSAgICBmaW5pc2hKU1Rlc3Qo
KTsKLX0pOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9y
dC10ZXh0LXRyYWNrcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFja3MtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YjkzZjU2MDg5ZGYyZjZi
NTUxMzFlNzJkNmQ0NDI3NjI1NmNlNWY1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrcy1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi1UZXN0aW5nIHRoZSBUcmFja3NTdXBwb3J0IGJl
aGF2aW9yIHdpdGggdGV4dCB0cmFja3MuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQot
Ci1UaGUgdHJhY2tzIGJ1dHRvbiBzaG91bGQgYmUgZGlzYWJsZWQgaW5pdGlhbGx5IGFzIHdlIHdh
aXQgZm9yIG1ldGFkYXRhIGFuZCB0ZXh0IHRyYWNrcyB0byBiZSBhZGRlZC4KLVBBU1MgbWVkaWFD
b250cm9sbGVyLmNvbnRyb2xzLnRyYWNrc0J1dHRvbi5lbmFibGVkIGlzIGZhbHNlCi0KLUV2ZW50
dWFsbHkgdGhlIHRleHQgdHJhY2tzIHdpbGwgYmUgYWRkZWQgYW5kIHRoZSB0cmFja3MgYnV0dG9u
IHdpbGwgYmUgZW5hYmxlZC4KLVBBU1MgbWVkaWFDb250cm9sbGVyLmNvbnRyb2xzLnRyYWNrc0J1
dHRvbi5lbmFibGVkIGJlY2FtZSB0cnVlCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFj
a3MuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
c3VwcG9ydC90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA1MTc5NjZkNzM3MmI4YWUxYmFiMzhmYjA3OTMwNTAyNGNjZDhiYjBiLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9y
dC10ZXh0LXRyYWNrcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLWxvYWRlci5qcyIgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KLTxib2R5PgotPHZpZGVvIHNyYz0iLi4vLi4vY29udGVu
dC9jb3VudGluZy1zdWJ0aXRsZWQubTR2IiBzdHlsZT0id2lkdGg6IDMyMHB4OyBoZWlnaHQ6IDI0
MHB4OyIgcHJlbG9hZD0icHJlbG9hZCIgY29udHJvbHM+PC92aWRlbz4KLTxkaXYgaWQ9InNoYWRv
dyI+PC9kaXY+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXdpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oIlRlc3RpbmcgdGhlIDxjb2RlPlRyYWNr
c1N1cHBvcnQ8L2NvZGU+IGJlaGF2aW9yIHdpdGggdGV4dCB0cmFja3MuIik7Ci0KLWNvbnN0IHNo
YWRvd1Jvb3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkaXYjc2hhZG93IikuYXR0YWNoU2hh
ZG93KHsgbW9kZTogIm9wZW4iIH0pOwotY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yKCJ2aWRlbyIpOwotY29uc3QgbWVkaWFDb250cm9sbGVyID0gY3JlYXRlQ29udHJvbHMoc2hh
ZG93Um9vdCwgbWVkaWEsIG51bGwpOwotCi1kZWJ1ZygiVGhlIHRyYWNrcyBidXR0b24gc2hvdWxk
IGJlIGRpc2FibGVkIGluaXRpYWxseSBhcyB3ZSB3YWl0IGZvciBtZXRhZGF0YSBhbmQgdGV4dCB0
cmFja3MgdG8gYmUgYWRkZWQuIik7Ci1zaG91bGRCZUZhbHNlKCJtZWRpYUNvbnRyb2xsZXIuY29u
dHJvbHMudHJhY2tzQnV0dG9uLmVuYWJsZWQiKTsKLQotZGVidWcoIiIpOwotZGVidWcoIkV2ZW50
dWFsbHkgdGhlIHRleHQgdHJhY2tzIHdpbGwgYmUgYWRkZWQgYW5kIHRoZSB0cmFja3MgYnV0dG9u
IHdpbGwgYmUgZW5hYmxlZC4iKTsKLXNob3VsZEJlY29tZUVxdWFsKCJtZWRpYUNvbnRyb2xsZXIu
Y29udHJvbHMudHJhY2tzQnV0dG9uLmVuYWJsZWQiLCAidHJ1ZSIsICgpID0+IHsKLSAgICBkZWJ1
ZygiIik7Ci0gICAgc2hhZG93Um9vdC5ob3N0LnJlbW92ZSgpOwotICAgIG1lZGlhLnJlbW92ZSgp
OwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBlZjdmZGViM2M4ODcw
NTNjMTk3ZWE1ZGVkMjQ2MDdiMzgyMmRiNmY0Li4zZjlkYTRiNzM0MmY3Nzk5NDQ0NmU3MzRjMTdj
MThjMjliODJlNTU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtMjk1NSw4ICsyOTU1LDYgQEAgbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3NjcnVi
YmVyLXN1cHBvcnQvc2NydWJiZXItc3VwcG9ydC1jbGljay5odG1sIFsgU2tpcAogbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3NjcnViYmVyLXN1cHBvcnQvc2NydWJiZXItc3VwcG9ydC1kcmFn
Lmh0bWwgWyBTa2lwIF0KIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9zbGlkZXIvc2xpZGVy
LXZhbHVlLmh0bWwgWyBTa2lwIF0KIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90ZXh0LXRy
YWNrcyBbIFNraXAgXQotbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbCBb
IFNraXAgXQotbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0IFsgU2tp
cCBdCiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdm9sdW1lLXN1cHBvcnQgWyBTa2lwIF0K
IAogd2Via2l0Lm9yZy9iLzE3ODEyNyBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEt
Y29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLXZpZGVvLXdpdGgtb25seS1hdWRpby5odG1sIFsg
U2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggMzNhOTQ0MDRkNzA5MjMwYWU3Y2Y5MTM3MDdlMDBkZmU2ZjVhZGVhMy4uOGFmZmE0YWVi
NDlhY2RmNDQ0NjU3NGQ1OTczYmZlZjNlY2ZiYjdhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTksNiArMTksNyBAQCBmYXN0L3Njcm9s
bGluZy9tYWMgWyBQYXNzIF0KIGZhc3QvdmlzdWFsLXZpZXdwb3J0L3RpbGVkLWRyYXdpbmcgWyBQ
YXNzIF0KIGZhc3Qvd2ViLXNoYXJlIFsgUGFzcyBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYi1zaGFyZSBbIFBhc3MgXQorbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1zdXBwb3J0IFsgUGFzcyBdCiBzY3JvbGxpbmdjb29yZGluYXRvciBbIFBhc3MgXQogc2Ny
b2xsaW5nY29vcmRpbmF0b3IvaW9zIFsgU2tpcCBdCiBzd2lwZSBbIFBhc3MgXQpAQCAtODAxLDgg
KzgwMiw2IEBAIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtc3Vj
Y2Vzcy1sb2NhbC5odHRwcy5odG1sIFsgU2tpcCBdCiBbIE1vamF2ZSBdIGh0dHAvd3B0L3dlYmF1
dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1uZmMuaHR0cHMuaHRtbCBbIFNr
aXAgXQogWyBNb2phdmUgXSBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwt
Z2V0LXN1Y2Nlc3MtbmZjLmh0dHBzLmh0bWwgWyBTa2lwIF0KIAotd2Via2l0Lm9yZy9iLzE4Mzg3
OCBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC11
cC1jbGljay1vdmVyLW1lZGlhLWRvZXMtbm90LWRpbWlzcy1tZWRpYS1jb250cm9scy13aGVuLW1l
ZGlhLWlzLXBsYXlpbmcuaHRtbCBbIFBhc3MgVGltZW91dCBdIAotCiB3ZWJraXQub3JnL2IvMTk0
ODI2IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1ub3QtYmxvY2stdG9wLWxl
dmVsLW5hdmlnYXRpb24tcmVkaXJlY3QuaHRtbCBbIFBhc3MgVGltZW91dCBdCiAKIHdlYmtpdC5v
cmcvYi8xODczOTEgYWNjZXNzaWJpbGl0eS9tYWMvYXN5bmMtaW5jcmVtZW50LWRlY3JlbWVudC1h
Y3Rpb24uaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCBhYzk2NTBkNzA3ZmQxZjU4YmI2ZWRhM2EwMmY4YjBmMjYzMWFkYjlhLi45NzJm
NDhmZTU4NDdiODc3ZGI1Njk5ZGIyNzIyNTc4Mjg4ODcxYWQxIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTI2NCw3ICsxMjY0LDYgQEAgbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWRvY3VtZW50cy9tZWRpYS1kb2N1bWVudC1hdWRpby1p
b3Mtc2l6aW5nLmh0bWwKIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1kb2N1bWVu
dHMvbWVkaWEtZG9jdW1lbnQtdmlkZW8taXBob25lLXNpemluZy5odG1sIFsgU2tpcCBdCiBtZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtZG9jdW1lbnRzL21lZGlhLWRvY3VtZW50LXZp
ZGVvLWlwYWQtc2l6aW5nLmh0bWwgWyBTa2lwIF0KIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy9zY3J1YmJlci1zdXBwb3J0L2lwYWQgWyBTa2lwIF0KLW1lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9pb3MgWyBTa2lwIF0KIAogIyBUaGVzZSB0ZXN0cyBhcmUgdGlt
aW5nLXJlbGF0ZWQgYW5kIGNhbiBmYWlsIGR1ZSB0byBwZXJmb3JtYW5jZSBpc3N1ZXMgb24gYm90
cwogd2Via2l0Lm9yZy9iLzE2OTg3NiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEt
Y29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWF1dG8taGlkZS1tb3VzZS1lbnRlci1hbmQtbW91
c2UtbGVhdmUuaHRtbCBbIFBhc3MgVGltZW91dCBdCkBAIC0xMjgwLDggKzEyNzksNiBAQCB3ZWJr
aXQub3JnL2IvMTc4MTI3IG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9s
bGVyL21lZGlhLWNvbnRyb2xsZQogIyBvbiBpT1MsIGFuZCB0aGUgYnVnIGl0IHdhcyBjcmVhdGVk
IHRvIHJlZ3Jlc3Npb24tdGVzdCB3YXMgaU9TLW9ubHksIHNvIHRoZXJlIGlzIG5vIGh1cnJ5IHRv
IG1ha2UgaXQgd29yayBvbiBNYWMuCiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEt
ZG9jdW1lbnRzL2JhY2tncm91bmQtY29sb3ItYW5kLWNlbnRlcmluZy5odG1sIFsgUGFzcyBJbWFn
ZU9ubHlGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzE2OTE1OCBtZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0
ZXItZHJhZ2dpbmctY29udHJvbHMuaHRtbCBbIFNraXAgXQotCiB3ZWJraXQub3JnL2IvMTc4MDgz
IG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcGFpbnQtdG8tY2FudmFzLmh0bWwgWyBG
YWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzE3MzA2OCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9nZXRLZXkuaHRtbCBbIFBhc3MgRmFpbHVy
ZSBdCkBAIC0yMjg1LDggKzIyODIsNiBAQCB3ZWJraXQub3JnL2IvMjIyMTE4IFsgQmlnU3VyKyBd
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb3VudGVyLQogCiB3ZWJr
aXQub3JnL2IvMjIyMTg1IG1lZGlhL21lZGlhLWV4dGVuc2lvbi13aXRoLWZyYWdtZW50Lmh0bWwg
WyBDcmFzaCBdCiAKLXdlYmtpdC5vcmcvYi8yMjIxOTcgbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LWF1ZGlvLXRyYWNrcy5odG1sIFsgUGFz
cyBUaW1lb3V0IF0KLQogd2Via2l0Lm9yZy9iLzIyMjIwNSBjc3MzL2NhbGMvdHJhbnNmb3Jtcy10
cmFuc2xhdGUuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8y
MjIxOTUgaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLXRyYW5zaXRpb24uaHRtbCBb
IFBhc3MgVGltZW91dCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVs
cGVyLmpzIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwppbmRleCAxZWQyZWEz
MjgxZmJlYjQ0NzY3NzI4ZGY5YjAzNzUyNDQwMzhmNzRhLi5jOTkyZWJmYjFjM2JlNTk0MzNmMjQw
ZjJlM2ZmNzY3MzFhNzMzZTY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWkt
aGVscGVyLmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKQEAgLTEy
MTksMTEgKzEyMTksMTcgQEAgd2luZG93LlVJSGVscGVyID0gY2xhc3MgVUlIZWxwZXIgewogICAg
ICAgICB9KTsKICAgICB9CiAKLSAgICBzdGF0aWMgYXN5bmMgY2hvb3NlTWVudUFjdGlvbihhY3Rp
b24pCisgICAgc3RhdGljIGNob29zZU1lbnVBY3Rpb24oYWN0aW9uKQogICAgIHsKLSAgICAgICAg
Y29uc3QgbWVudVJlY3QgPSBhd2FpdCB0aGlzLnJlY3RGb3JNZW51QWN0aW9uKGFjdGlvbik7Ci0g
ICAgICAgIGlmIChtZW51UmVjdCkKLSAgICAgICAgICAgIGF3YWl0IHRoaXMuYWN0aXZhdGVBdCht
ZW51UmVjdC5sZWZ0ICsgbWVudVJlY3Qud2lkdGggLyAyLCBtZW51UmVjdC50b3AgKyBtZW51UmVj
dC5oZWlnaHQgLyAyKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAgICAgICAgICAgICAgKCgp
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLmNob29zZU1lbnVBY3Rpb24o
IiR7YWN0aW9ufSIsICgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxl
ci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIH0pKCk7CisgICAgICAgICAgICBgLCByZXNvbHZlKTsKKyAgICAgICAgfSk7CiAgICAg
fQogCiAgICAgc3RhdGljIHdhaXRGb3JFdmVudCh0YXJnZXQsIGV2ZW50TmFtZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423367</attachid>
            <date>2021-03-16 11:26:43 -0700</date>
            <delta_ts>2021-03-16 12:49:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223239-20210316122641.patch</filename>
            <type>text/plain</type>
            <size>316087</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggMjc1YmU3ZDZmY2M0ODhlNWE1N2YwOGI4NGRlNzg4MTRjMGI0MmM1Zi4uN2ZjMDZjNzhj
MjEyMTdjMWE1ZDU5YjQyZGQ1Y2IwOWIzNzE3MWVmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAy
MS0wMy0xNiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW21h
Y09TXSBjaGFuZ2UgZm9yIHRoZSBsYW5ndWFnZS9zdWJ0aXRsZSB0cmFja3MgYnV0dG9uIHRvIHVz
ZSBhbiBgTlNNZW51YCBpbnN0ZWFkIG9mIHdlYiBjb250ZW50CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjMyMzkKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzc1NDYyMzQwPgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAg
ICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg6CisgICAgICAgIFR1cm4gb24gYEVOQUJM
RV9NRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTYCBmb3IgbWFjT1MuCisKIDIwMjEtMDMtMTIg
IExhdXJvIE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihy
Mjc0MzI3KSBbR0xJQl0gMkQgQ2FudmFzIHRlc3RzIHRpbWluZyBvdXQgYWZ0ZXIgZW5hYmxpbmcg
R1BVUHJvY2VzIGluIHRlc3RpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlMWFjZWMzMTUzZTE2NjVhNzM0ZWRl
MjI5ZTJmN2FlOWM5MjBhOGMzLi40ZmUzNWE1OWM2ZmQ1ZjE0MTRmY2I1OTk2ZDA4MmQ5MTBhMjdl
MjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTE4IEBACisyMDIxLTAzLTE2ICBEZXZpbiBSb3Vz
c28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIGNoYW5nZSBmb3IgdGhl
IGxhbmd1YWdlL3N1YnRpdGxlIHRyYWNrcyBidXR0b24gdG8gdXNlIGFuIGBOU01lbnVgIGluc3Rl
YWQgb2Ygd2ViIGNvbnRlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyMzIzOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzU0NjIzNDA+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIFRlc3RzOiBtZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvYXV0by10ZXh0LXRyYWNrLmh0bWwK
KyAgICAgICAgICAgICAgIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC9jYXB0aW9ucy1vZmZzZXQtd2l0aC1jb250cm9scy1iYXIuaHRtbAorICAgICAgICAgICAgICAg
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2NsaWNrLXRyYWNrLWlu
LWNvbnRleHRtZW51Lmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9oaWRkZW4tdHJhY2tzLmh0bWwKKyAgICAgICAgICAgICAgIG1l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9uby10cmFja3MuaHRtbAor
ICAgICAgICAgICAgICAgbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L29mZi10ZXh0LXRyYWNrLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC9zaG93LWNvbnRleHRtZW51LXRoZW4tZG91YmxlLWNsaWNr
LW9uLXRyYWNrcy1idXR0b24uaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFw
aS5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hv
c3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51UHJvdmlkZXI6
OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRN
ZW51UHJvdmlkZXI6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudVByb3ZpZGVyKTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVQcm92aWRlcjo6fk1lZGlh
Q29udHJvbHNDb250ZXh0TWVudVByb3ZpZGVyKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVQcm92aWRlcjo6cG9wdWxhdGVDb250ZXh0TWVudSk6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51UHJvdmlkZXI6
OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRp
YUNvbnRyb2xzQ29udGV4dE1lbnVQcm92aWRlcjo6Y29udGV4dE1lbnVDbGVhcmVkKTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVQcm92aWRlcjo6Y29u
dGV4dE1lbnVDb250ZXh0VHlwZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250
cm9sc0NvbnRleHRNZW51RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVFdmVudExpc3RlbmVyOjpvcGVyYXRvcj09
IGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1l
bnVFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFDb250cm9sc0NvbnRleHRNZW51RXZlbnRMaXN0ZW5lcjo6TWVkaWFDb250cm9sc0NvbnRl
eHRNZW51RXZlbnRMaXN0ZW5lcik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250
cm9sc0hvc3Q6OnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUpOgorICAgICAgICBDcmVhdGUg
cGxhdGZvcm0tYWdub3N0aWMgaGVscGVyIGZ1bmN0aW9ucyBhbmQgdHlwZXMgZm9yIGNyZWF0aW5n
IHN1Ym1lbnVzIGFuZCBtZW51IGl0ZW1zIHNvCisgICAgICAgIHRoYXQgdGhpcyBsb2dpYyBhZGRl
ZCBmb3IgaU9TIGNhbiBhbHNvIGJlIHVzZWQgZm9yIG1hY09TLgorCisgICAgICAgICogcGFnZS9D
b250ZXh0TWVudUNvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udGV4
dDo6dHlwZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVDb250ZXh0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udGV4dDo6Q29udGV4dE1lbnVD
b250ZXh0KToKKyAgICAgICAgTW92ZSBgV2ViS2l0OjpDb250ZXh0TWVudUNvbnRleHREYXRhOjpU
eXBlYCB0byBgV2ViQ29yZTo6Q29udGV4dG1lbnVDb250ZXh0OjpUeXBlYCBzbyB0aGF0CisgICAg
ICAgIGl0IGNhbiBiZSB1c2VkIGluIFdlYkNvcmUgYXMgd2VsbC4KKworICAgICAgICAqIHBhZ2Uv
Q29udGV4dE1lbnVQcm92aWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVQcm92
aWRlcjo6Y29udGV4dE1lbnVDb250ZXh0VHlwZSk6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvQ29u
dGV4dE1lbnVDb250cm9sbGVyLmg6CisgICAgICAgICogcGFnZS9Db250ZXh0TWVudUNvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyOjpoYW5kbGVD
b250ZXh0TWVudUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxl
cjo6c2hvd0NvbnRleHRNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJv
bGxlcjo6bWF5YmVDcmVhdGVDb250ZXh0TWVudSk6CisgICAgICAgIEFsbG93IHRoZSBgQ29udGV4
dE1lbnVQcm92aWRlcmAgdG8gZnVydGhlciBjdXN0b21pemUgdGhlIGBDb250ZXh0TWVudWAgdGhh
dCdzIGNyZWF0ZWQsIHN1Y2gKKyAgICAgICAgYXMgYWxsb3dpbmcgdGhlIGhpdCB0ZXN0IHRvIGlu
Y2x1ZGUgVUEgc2hhZG93IHJvb3RzIGFuZCBjb250cm9sbGluZyAiSW5zcGVjdCBFbGVtZW50Ii4K
KworICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oOgorICAgICAgICAqIHBsYXRm
b3JtL0NvbnRleHRNZW51SXRlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUl0
ZW06OkNvbnRleHRNZW51SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06
OnNldEluZGVudGF0aW9uTGV2ZWwpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRN
ZW51SXRlbTo6aW5kZW50YXRpb25MZXZlbCBjb25zdCk6IEFkZGVkLgorICAgICAgICBQcm92aWRl
IGEgd2F5IHRvIGV2ZW50dWFsbHkgc2V0IHRoZSBgLVtOU01lbnVJdGVtIHNldEluZGVudGF0aW9u
TGV2ZWw6XWAuCisKKyAgICAgICAgKiBNb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250
cm9scy90cmFja3MtcGFuZWwuanM6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvY29udHJvbHMvdHJhY2tzLXBhbmVsLmNzczogUmVtb3ZlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9iYWNrZ3JvdW5kLWNs
aWNrLWRlbGVnYXRlLW5vdGlmaWVyLmpzOgorICAgICAgICAoQmFja2dyb3VuZENsaWNrRGVsZWdh
dGVOb3RpZmllci5wcm90b3R5cGUuaGFuZGxlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJv
bHMuY3NzOgorICAgICAgICAoLm1lZGlhLWNvbnRyb2xzLm1hYy5mdWxsc2NyZWVuKToKKyAgICAg
ICAgKiBNb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9tZWRpYS1jb250cm9s
cy5qczoKKyAgICAgICAgKE1lZGlhQ29udHJvbHMucHJvdG90eXBlLnNob3dUcmFja3NQYW5lbCk6
IERlbGV0ZWQuCisgICAgICAgIChNZWRpYUNvbnRyb2xzLnByb3RvdHlwZS5oaWRlVHJhY2tzUGFu
ZWwpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2Nv
bnRyb2xzL21lZGlhLWNvbnRyb2xzLmNzczoKKyAgICAgICAgKC5tZWRpYS1jb250cm9scy5zaG93
cy10cmFja3MtcGFuZWwgPiAuY29udHJvbHMtYmFyID4gKiwgLm1lZGlhLWNvbnRyb2xzLnNob3dz
LXRyYWNrcy1wYW5lbCA+IGJ1dHRvbik6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvbWVkaWEvdHJhY2tzLXN1cHBvcnQuanM6CisgICAgICAgIChUcmFj
a3NTdXBwb3J0LnByb3RvdHlwZS5idXR0b25XYXNQcmVzc2VkKToKKyAgICAgICAgKFRyYWNrc1N1
cHBvcnQucHJvdG90eXBlLnN5bmNDb250cm9sKToKKyAgICAgICAgKFRyYWNrc1N1cHBvcnQucHJv
dG90eXBlLl9zb3J0ZWRUcmFja0xpc3QpOgorICAgICAgICAoVHJhY2tzU3VwcG9ydCk6IERlbGV0
ZWQuCisgICAgICAgIChUcmFja3NTdXBwb3J0LnByb3RvdHlwZS50cmFja3NQYW5lbE51bWJlck9m
U2VjdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAoVHJhY2tzU3VwcG9ydC5wcm90b3R5cGUudHJh
Y2tzUGFuZWxUaXRsZUZvclNlY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoVHJhY2tzU3VwcG9y
dC5wcm90b3R5cGUudHJhY2tzUGFuZWxOdW1iZXJPZlRyYWNrc0luU2VjdGlvbik6IERlbGV0ZWQu
CisgICAgICAgIChUcmFja3NTdXBwb3J0LnByb3RvdHlwZS50cmFja3NQYW5lbFRpdGxlRm9yVHJh
Y2tJblNlY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoVHJhY2tzU3VwcG9ydC5wcm90b3R5cGUu
dHJhY2tzUGFuZWxJc1RyYWNrSW5TZWN0aW9uU2VsZWN0ZWQpOiBEZWxldGVkLgorICAgICAgICAo
VHJhY2tzU3VwcG9ydC5wcm90b3R5cGUudHJhY2tzUGFuZWxTZWxlY3Rpb25EaWRDaGFuZ2UpOiBE
ZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2pzLWZpbGVz
OgorICAgICAgICBSZW1vdmUgZXZlcnl0aGluZyByZWxhdGVkIHRvIGBUcmFja3NQYW5lbGAgbm93
IHRoYXQgbWFjT1MgYWxzbyB1c2VzIGEgY29udGV4dG1lbnUuCisKKyAgICAgICAgKiBNb2R1bGVz
L21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9pbmxpbmUtbWVkaWEtY29udHJvbHMuanM6
CisgICAgICAgIChJbmxpbmVNZWRpYUNvbnRyb2xzLnByb3RvdHlwZS5sYXlvdXQpOgorICAgICAg
ICAoSW5saW5lTWVkaWFDb250cm9scy5wcm90b3R5cGUuX3JpZ2h0Q29udGFpbmVyQnV0dG9ucyk6
CisgICAgICAgIChJbmxpbmVNZWRpYUNvbnRyb2xzLnByb3RvdHlwZS5fZHJvcHBhYmxlQnV0dG9u
cyk6CisgICAgICAgICogTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFj
b3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy5qczoKKyAgICAgICAgKE1hY09TRnVsbHNjcmVl
bk1lZGlhQ29udHJvbHMpOgorICAgICAgICBUaGUgYE92ZXJmbG93QnV0dG9uYCBzaG91bGQgYmUg
dGhlIGxhc3QgcmlnaHQgY29udGFpbmVyIGJ1dHRvbiB0byBiZSBkcm9wcGVkLgorCisgICAgICAg
ICogTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEvbWVkaWEtY29udHJvbGxlci5q
czoKKyAgICAgICAgKE1lZGlhQ29udHJvbGxlci5wcm90b3R5cGUuc2hvd01lZGlhQ29udHJvbHND
b250ZXh0TWVudSk6CisgICAgICAgIFByb3ZpZGUgYSB3YXkgZm9yIGNhbGxlcnMgdG8gcHJvdmlk
ZSBhZGRpdGlvbmFsIG9wdGlvbnMuCisKKyAgICAgICAgKiBwYWdlL01lZGlhQ29udHJvbHNDb250
ZXh0TWVudUl0ZW0uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVu
dUl0ZW06OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnVJdGVtOjpkZWNvZGUpOgorICAgICAgICBEcml2ZS1ieTogUmVuYW1lIGBpc0NoZWNr
ZWRgIHRvIGBjaGVja2VkYCB0byBtYXRjaCBgQ29udGV4dE1lbnVJdGVtYC4KKworICAgICAgICAq
IE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3RyYWNrcy1idXR0b24uanM6
CisgICAgICAgIChUcmFja3NCdXR0b24ucHJvdG90eXBlLmdldCBjb250ZXh0TWVudU9wdGlvbnMp
OgorICAgICAgICBEcml2ZS1ieTogUmVuYW1lIG9iamVjdCBrZXlzIGZvciBjbGFyaXR5LgorCisg
ICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgQmUgbW9yZSBleHBsaWNpdCB3
aXRoIGNvbXBpbGVyIGZsYWdzLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6Om1lZGlhQ29udHJvbHNTY3Jp
cHQpOgorCisgICAgICAgICogTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvaW1hZ2VzL21h
Y09TL092ZXJmbG93LnN2ZzoKKyAgICAgICAgUmV3b3JrIHRoaXMgIi4uLiIgaWNvbiB0byBiZSAi
Pj4iIHRvIG1hdGNoIHNpbWlsYXIgaWNvbnMgZWxzZXdoZXJlIG9uIG1hY09TLgorCisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTAzLTEyICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtzZWxlY3Rv
cnNdIDpmb2N1cy12aXNpYmxlIG1hdGNoZXMgYm9keSBhZnRlciBrZXlib2FyZCBldmVudApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCA0YWI4YjVlNjMyMzY5ZjVmMzhkNGNlYWNjMzc5M2FkYjQyNmJiNjZjLi4wOTM3ZDk4
OWJlMjM1ODI3NWU0NDgyZjNkZmU3ZDQ5YjI5YTRmNTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDgy
IEBACisyMDIxLTAzLTE2ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAg
ICAgICBbbWFjT1NdIGNoYW5nZSBmb3IgdGhlIGxhbmd1YWdlL3N1YnRpdGxlIHRyYWNrcyBidXR0
b24gdG8gdXNlIGFuIGBOU01lbnVgIGluc3RlYWQgb2Ygd2ViIGNvbnRlbnQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzIzOQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNzU0NjIzNDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29u
LgorCisgICAgICAgICogU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuaDoKKyAgICAgICAg
KiBTaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNv
bnRleHRNZW51Q29udGV4dERhdGE6OkNvbnRleHRNZW51Q29udGV4dERhdGEpOgorICAgICAgICBN
b3ZlIGBXZWJLaXQ6OkNvbnRleHRNZW51Q29udGV4dERhdGE6OlR5cGVgIHRvIGBXZWJDb3JlOjpD
b250ZXh0bWVudUNvbnRleHQ6OlR5cGVgIHNvIHRoYXQKKyAgICAgICAgaXQgY2FuIGJlIHVzZWQg
aW4gV2ViQ29yZSBhcyB3ZWxsLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvbnRleHRNZW51SXRl
bURhdGEuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51SXRlbURhdGE6OldlYkNvbnRleHRNZW51SXRl
bURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudUl0ZW1EYXRhOjpjb3JlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6ZGVjb2RlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6aW5kZW50YXRpb25MZXZl
bCBjb25zdCk6IEFkZGVkLgorICAgICAgICBQcm92aWRlIGEgd2F5IHRvIGV2ZW50dWFsbHkgc2V0
IHRoZSBgLVtOU01lbnVJdGVtIHNldEluZGVudGF0aW9uTGV2ZWw6XWAuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMv
V2ViQ29udGV4dE1lbnVQcm94eU1hYy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29u
dGV4dE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKC1bV0tNZW51RGVsZWdhdGUgaW5pdFdpdGhN
ZW51UHJveHk6XSk6IEFkZGVkLgorICAgICAgICAoLVtXS01lbnVEZWxlZ2F0ZSBtZW51V2lsbE9w
ZW46XSk6IEFkZGVkLgorICAgICAgICAoLVtXS01lbnVEZWxlZ2F0ZSBtZW51RGlkQ2xvc2U6XSk6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjpnZXRDb250
ZXh0TWVudUl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjp1
c2VDb250ZXh0TWVudUl0ZW1zKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94
eU1hYzo6cGxhdGZvcm1NZW51IGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OmNvbnRl
bnRzT2ZDb250ZXh0TWVudUl0ZW0pOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4
dE1lbnVQcm94eU1hYzo6cGxhdGZvcm1EYXRhIGNvbnN0KTogQWRkZWQuCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBgLVtOU01lbnVJdGVtIHNldEluZGVudGF0aW9uTGV2ZWw6XWAuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgX2NvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbTpdKToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IF9kaWRTaG93Q29udGV4dE1lbnVdKTogQWRkZWQuCisgICAgICAgICgtW1dL
V2ViVmlldyBfZGlkRGlzbWlzc0NvbnRleHRNZW51XSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvaW9zL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IF9kaWRTaG93Q29udGV4dE1lbnVdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tXZWJW
aWV3IF9kaWREaXNtaXNzQ29udGV4dE1lbnVdKTogRGVsZXRlZC4KKyAgICAgICAgTW92ZSB0aGVz
ZSBtZXRob2RzIHNvIHRoZXkgY2FuIGJlIHVzZWQgb24gbWFjT1MgdG9vLgorCisgICAgICAgICog
VUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudDo6ZGlk
U2hvd0NvbnRleHRNZW51KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnQ6OmRp
ZERpc21pc3NDb250ZXh0TWVudSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFn
ZUNsaWVudEltcGxNYWMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBs
TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkU2hvd0NvbnRleHRN
ZW51KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWREaXNtaXNz
Q29udGV4dE1lbnUpOiBBZGRlZC4KKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGBkaWRTaG93Q29u
dGV4dE1lbnVgL2BkaWREaXNtaXNzQ29udGV4dE1lbnVgIGZvciB0ZXN0cy4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvbWFjL1dLV2ViVmlld1Rlc3RpbmdNYWMubW06CisgICAgICAgICgtW1dL
V2ViVmlldyBfYWN0aXZlTWVudV0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdl
UHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250ZW50c09m
VXNlckludGVyZmFjZUl0ZW0pOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBh
Z2VQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpwbGF0Zm9ybUFj
dGl2ZUNvbnRleHRNZW51IGNvbnN0KTogQWRkZWQuCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBg
Y29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtYCBmb3IgdGVzdHMuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
QWN0aW9uU2hlZXRBc3Npc3RhbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQWN0aW9u
U2hlZXRBc3Npc3RhbnQubW06CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgQmUgbW9yZSBl
eHBsaWNpdCB3aXRoIGNvbXBpbGVyIGZsYWdzLgorCiAyMDIxLTAzLTEyICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgdmlkZW8gY2FwdHVyZSBpbiBH
UFVQcm9jZXNzIGJ5IGRlZmF1bHQgb24gaU9TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybUVuYWJsZUNvY29hLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29h
LmgKaW5kZXggMjQzZGYyNWE2NzZkNzlkYjdkMzg1YjU3YjdjMjNjN2QwZGM5ZWFlOS4uZDljZDJk
MGIwNGQ0ZGI3ZWMyZjkxODJhZDQ1NDhiOWQ3ZmY4NTY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
RW5hYmxlQ29jb2EuaApAQCAtMzI0LDYgKzMyNCwxMCBAQAogI2RlZmluZSBFTkFCTEVfTUVESUFf
Q09OVFJPTFNfU0NSSVBUIDEKICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX0NP
TlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFBMQVRGT1JNKE1BQykKKyNkZWZpbmUgRU5BQkxFX01F
RElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMgMQorI2VuZGlmCisKICNpZiAhZGVmaW5lZChFTkFC
TEVfTUVESUFfU0VTU0lPTikgJiYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBM
RVRWKQogI2RlZmluZSBFTkFCTEVfTUVESUFfU0VTU0lPTiAxCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hv
c3QuY3BwCmluZGV4IGY5YjFhNGQ0MjM3MGI2ZTU1MmIxYmMxYzA4NTVkNTEyNDQ0ZWQ4M2QuLjkw
NzEyNTgxMmNkN2I0ZGJhNTQ2ZjQ1YjBhYjA5OTQ1MjIzZWFhMGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0
LmNwcApAQCAtMjksMTYgKzI5LDI3IEBACiAKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xzSG9zdC5o
IgogCisjaW5jbHVkZSAiQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMuaCIKICNpbmNsdWRlICJBdWRp
b1RyYWNrTGlzdC5oIgorI2luY2x1ZGUgIkNhcHRpb25Vc2VyUHJlZmVyZW5jZXMuaCIKICNpbmNs
dWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKLSNpbmNsdWRlICJDYXB0
aW9uVXNlclByZWZlcmVuY2VzLmgiCisjaW5jbHVkZSAiQ29udGV4dE1lbnUuaCIKKyNpbmNsdWRl
ICJDb250ZXh0TWVudUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJDb250ZXh0TWVudUl0ZW0uaCIK
KyNpbmNsdWRlICJDb250ZXh0TWVudVByb3ZpZGVyLmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNp
bmNsdWRlICJFdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1
ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiSFRN
TEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiTG9j
YWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYUNv
bnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiTWVkaWFDb250cm9s
c0NvbnRleHRNZW51SXRlbS5oIgorI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJQYWdlLmgi
CiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKQEAgLTQ2
LDYgKzU3LDcgQEAKICNpbmNsdWRlICJUZXh0VHJhY2tMaXN0LmgiCiAjaW5jbHVkZSAiVm9pZENh
bGxiYWNrLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSlNWYWx1ZUlubGluZXMuaD4K
KyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvSlNPTlZh
bHVlcy5oPgogI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9VVUlELmg+CkBA
IC01NywxMCArNjksNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBkZWZpbmVkKE1l
ZGlhQ29udHJvbHNIb3N0QWRkaXRpb25zX21lbWJlcnMpCi1NZWRpYUNvbnRyb2xzSG9zdEFkZGl0
aW9uc19tZW1iZXJzCi0jZW5kaWYKLQogY29uc3QgQXRvbVN0cmluZyYgTWVkaWFDb250cm9sc0hv
c3Q6OmF1dG9tYXRpY0tleXdvcmQoKQogewogICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYXV0b21hdGljKCJhdXRvbWF0aWMiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CkBAIC0zNTQsMTUgKzM2MiwxMTMgQEAgU3RyaW5nIE1l
ZGlhQ29udHJvbHNIb3N0Ojpmb3JtYXR0ZWRTdHJpbmdGb3JEdXJhdGlvbihkb3VibGUgZHVyYXRp
b25JblNlY29uZHMpCiAjZGVmaW5lIE1lZGlhQ29udHJvbHNIb3N0QWRkaXRpb25zX3Nob3dNZWRp
YUNvbnRyb2xzQ29udGV4dE1lbnVfTWVudURhdGFfc3dpdGNoT24KICNlbmRpZgogCisjaWYgRU5B
QkxFKENPTlRFWFRfTUVOVVMpICYmIFVTRShBQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMpCitj
bGFzcyBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVQcm92aWRlciBmaW5hbCA6IHB1YmxpYyBDb250
ZXh0TWVudVByb3ZpZGVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE1lZGlhQ29udHJvbHND
b250ZXh0TWVudVByb3ZpZGVyPiBjcmVhdGUoVmVjdG9yPENvbnRleHRNZW51SXRlbT4mJiBpdGVt
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYgY2FsbGJhY2spCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVQcm92
aWRlcihXVEZNb3ZlKGl0ZW1zKSwgV1RGTW92ZShjYWxsYmFjaykpKTsKKyAgICB9CisKK3ByaXZh
dGU6CisgICAgTWVkaWFDb250cm9sc0NvbnRleHRNZW51UHJvdmlkZXIoVmVjdG9yPENvbnRleHRN
ZW51SXRlbT4mJiBpdGVtcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYgY2Fs
bGJhY2spCisgICAgICAgIDogbV9pdGVtcyhXVEZNb3ZlKGl0ZW1zKSkKKyAgICAgICAgLCBtX2Nh
bGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKQorICAgIHsKKyAgICB9CisKKyAgICB+TWVkaWFDb250
cm9sc0NvbnRleHRNZW51UHJvdmlkZXIoKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgY29udGV4
dE1lbnVDbGVhcmVkKCk7CisgICAgfQorCisgICAgdm9pZCBwb3B1bGF0ZUNvbnRleHRNZW51KENv
bnRleHRNZW51KiBtZW51KSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgZm9yIChhdXRvJiBpdGVt
IDogbV9pdGVtcykKKyAgICAgICAgICAgIG1lbnUtPmFwcGVuZEl0ZW0oaXRlbSk7CisgICAgfQor
CisgICAgdm9pZCBjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rp
b24sIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2NhbGxiYWNrKGFj
dGlvbiAtIENvbnRleHRNZW51SXRlbUJhc2VDdXN0b21UYWcpOworICAgIH0KKworICAgIHZvaWQg
Y29udGV4dE1lbnVDbGVhcmVkKCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIGlmIChtX2NhbGxi
YWNrKQorICAgICAgICAgICAgbV9jYWxsYmFjayhDb250ZXh0TWVudUl0ZW1UYWdOb0FjdGlvbik7
CisgICAgICAgIG1faXRlbXMuY2xlYXIoKTsKKyAgICB9CisKKyAgICBDb250ZXh0TWVudUNvbnRl
eHQ6OlR5cGUgY29udGV4dE1lbnVDb250ZXh0VHlwZSgpIG92ZXJyaWRlCisgICAgeworICAgICAg
ICByZXR1cm4gQ29udGV4dE1lbnVDb250ZXh0OjpUeXBlOjpNZWRpYUNvbnRyb2xzOworICAgIH0K
KworICAgIFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+IG1faXRlbXM7CisgICAgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCh1aW50NjRfdCk+IG1fY2FsbGJhY2s7Cit9OworCitjbGFzcyBNZWRpYUNvbnRy
b2xzQ29udGV4dE1lbnVFdmVudExpc3RlbmVyIGZpbmFsIDogcHVibGljIEV2ZW50TGlzdGVuZXIg
eworcHVibGljOgorICAgIHN0YXRpYyBSZWY8TWVkaWFDb250cm9sc0NvbnRleHRNZW51RXZlbnRM
aXN0ZW5lcj4gY3JlYXRlKFJlZjxNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVQcm92aWRlcj4mJiBj
b250ZXh0TWVudVByb3ZpZGVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
TWVkaWFDb250cm9sc0NvbnRleHRNZW51RXZlbnRMaXN0ZW5lcihXVEZNb3ZlKGNvbnRleHRNZW51
UHJvdmlkZXIpKSk7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEV2ZW50TGlz
dGVuZXImIG90aGVyKSBjb25zdCBvdmVycmlkZQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMg
PT0gJm90aGVyOworICAgIH0KKworICAgIHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIEV2ZW50JiBldmVudCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIEFTU0VSVChl
dmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmNvbnRleHRtZW51RXZlbnQpOworCisgICAgICAg
IGF1dG8qIHRhcmdldCA9IGV2ZW50LnRhcmdldCgpOworICAgICAgICBpZiAoIWlzPE5vZGU+KHRh
cmdldCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGF1dG8mIG5vZGUgPSBkb3duY2Fz
dDxOb2RlPigqdGFyZ2V0KTsKKworICAgICAgICBhdXRvKiBwYWdlID0gbm9kZS5kb2N1bWVudCgp
LnBhZ2UoKTsKKyAgICAgICAgaWYgKCFwYWdlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIHBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLnNob3dDb250ZXh0TWVudShldmVudCwg
bV9jb250ZXh0TWVudVByb3ZpZGVyKTsKKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsK
KyAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgIGV2ZW50LnN0b3BJbW1l
ZGlhdGVQcm9wYWdhdGlvbigpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBNZWRpYUNvbnRyb2xz
Q29udGV4dE1lbnVFdmVudExpc3RlbmVyKFJlZjxNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVQcm92
aWRlcj4mJiBjb250ZXh0TWVudVByb3ZpZGVyKQorICAgICAgICA6IEV2ZW50TGlzdGVuZXIoRXZl
bnRMaXN0ZW5lcjo6Q1BQRXZlbnRMaXN0ZW5lclR5cGUpCisgICAgICAgICwgbV9jb250ZXh0TWVu
dVByb3ZpZGVyKFdURk1vdmUoY29udGV4dE1lbnVQcm92aWRlcikpCisgICAgeworICAgIH0KKwor
ICAgIFJlZjxNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVQcm92aWRlcj4gbV9jb250ZXh0TWVudVBy
b3ZpZGVyOworfTsKKworI2VuZGlmIC8vIEVOQUJMRShDT05URVhUX01FTlVTKSAmJiBVU0UoQUND
RVNTSUJJTElUWV9DT05URVhUX01FTlVTKQorCiBib29sIE1lZGlhQ29udHJvbHNIb3N0OjpzaG93
TWVkaWFDb250cm9sc0NvbnRleHRNZW51KEhUTUxFbGVtZW50JiB0YXJnZXQsIFN0cmluZyYmIG9w
dGlvbnNKU09OU3RyaW5nLCBSZWY8Vm9pZENhbGxiYWNrPiYmIGNhbGxiYWNrKQogewotICAgIGlm
IChtX3Nob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVDYWxsYmFjaykKKyNpZiBVU0UoVUlDT05U
RVhUTUVOVSkgfHwgKEVOQUJMRShDT05URVhUX01FTlVTKSAmJiBVU0UoQUNDRVNTSUJJTElUWV9D
T05URVhUX01FTlVTKSkKKyAgICBpZiAobV9zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51Q2Fs
bGJhY2spIHsKKyNpZiBVU0UoVUlDT05URVhUTUVOVSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwor
I2VsaWYgKEVOQUJMRShDT05URVhUX01FTlVTKSAmJiBVU0UoQUNDRVNTSUJJTElUWV9DT05URVhU
X01FTlVTKSkKKyAgICAgICAgLy8gRklYTUU6IGBjb250ZXh0TWVudUNsZWFyZWRgIGlzIGludm9r
ZWQgYmV0d2VlbiBzaG93IGFuZCBpdGVtIHNlbGVjdGVkIHNvIHdlIG1heSBoYXZlIGEgcGVuZGlu
ZyBjYWxsYmFjay4KKyAgICAgICAgc3RkOjpleGNoYW5nZShtX3Nob3dNZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnVDYWxsYmFjaywgbnVsbHB0ciktPmhhbmRsZUV2ZW50KCk7CisjZW5kaWYKKyAgICB9
CiAKICAgICBtX3Nob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVDYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spOwogCiAgICAgYXV0byBpbnZva2VDYWxsYmFja0F0U2NvcGVFeGl0ID0gbWFrZVNj
b3BlRXhpdChbJiwgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7Ci0gICAgICAgIHN0
ZDo6ZXhjaGFuZ2UobV9zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51Q2FsbGJhY2ssIG51bGxw
dHIpLT5oYW5kbGVFdmVudCgpOworICAgICAgICBpZiAobV9zaG93TWVkaWFDb250cm9sc0NvbnRl
eHRNZW51Q2FsbGJhY2spCisgICAgICAgICAgICBzdGQ6OmV4Y2hhbmdlKG1fc2hvd01lZGlhQ29u
dHJvbHNDb250ZXh0TWVudUNhbGxiYWNrLCBudWxscHRyKS0+aGFuZGxlRXZlbnQoKTsKICAgICB9
KTsKIAogICAgIGlmICghbV9tZWRpYUVsZW1lbnQpCkBAIC0zODIsNDQgKzQ4OCw1NyBAQCBib29s
IE1lZGlhQ29udHJvbHNIb3N0OjpzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KEhUTUxFbGVt
ZW50JiB0YXJnZXQsIFN0cmluZwogICAgIGlmICghb3B0aW9uc0pTT05PYmplY3QpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAorI2lmIFVTRShVSUNPTlRFWFRNRU5VKQorICAgIHVzaW5nIE1lbnVJ
dGVtID0gTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTsKKyAgICB1c2luZyBNZW51SXRlbUlk
ZW50aWZpZXIgPSBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRDsKKyAgICBjb25zdGV4
cHIgYXV0byBpbnZhbGlkTWVudUl0ZW1JZGVudGlmaWVyID0gTWVkaWFDb250cm9sc0NvbnRleHRN
ZW51SXRlbTo6aW52YWxpZElEOworI2VsaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpICYmIFVTRShB
Q0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMpCisgICAgdXNpbmcgTWVudUl0ZW0gPSBDb250ZXh0
TWVudUl0ZW07CisgICAgdXNpbmcgTWVudUl0ZW1JZGVudGlmaWVyID0gdWludDY0X3Q7CisgICAg
Y29uc3RleHByIGF1dG8gaW52YWxpZE1lbnVJdGVtSWRlbnRpZmllciA9IENvbnRleHRNZW51SXRl
bVRhZ05vQWN0aW9uOworI2VuZGlmCisKICAgICB1c2luZyBNZW51RGF0YSA9IFZhcmlhbnQ8UmVm
UHRyPEF1ZGlvVHJhY2s+LCBSZWZQdHI8VGV4dFRyYWNrPiBNZWRpYUNvbnRyb2xzSG9zdEFkZGl0
aW9uc19zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51X01lbnVEYXRhPjsKLSAgICBIYXNoTWFw
PE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklELCBNZW51RGF0YT4gaWRNYXA7Ci0gICAg
YXV0byBnZW5lcmF0ZUlEID0gWyZdIChNZW51RGF0YSBkYXRhKSB7Ci0gICAgICAgIGF1dG8gaWQg
PSBpZE1hcC5zaXplKCkgKyAxOwotICAgICAgICBpZE1hcC5hZGQoaWQsIGRhdGEpOwotICAgICAg
ICByZXR1cm4gaWQ7CisgICAgSGFzaE1hcDxNZW51SXRlbUlkZW50aWZpZXIsIE1lbnVEYXRhPiBp
ZE1hcDsKKworICAgIGF1dG8gY3JlYXRlU3VibWVudSA9IFtdIChjb25zdCBTdHJpbmcmIHRpdGxl
LCBjb25zdCBTdHJpbmcmIGljb24sIFZlY3RvcjxNZW51SXRlbT4mJiBjaGlsZHJlbikgLT4gTWVu
dUl0ZW0geworI2lmIFVTRShVSUNPTlRFWFRNRU5VKQorICAgICAgICByZXR1cm4geyBNZWRpYUNv
bnRyb2xzQ29udGV4dE1lbnVJdGVtOjppbnZhbGlkSUQsIHRpdGxlLCBpY29uLCAvKiBjaGVja2Vk
ICovIGZhbHNlLCBXVEZNb3ZlKGNoaWxkcmVuKSB9OworI2VsaWYgRU5BQkxFKENPTlRFWFRfTUVO
VVMpICYmIFVTRShBQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMpCisgICAgICAgIFVOVVNFRF9Q
QVJBTShpY29uKTsKKyAgICAgICAgcmV0dXJuIHsgQ29udGV4dE1lbnVJdGVtVGFnTm9BY3Rpb24s
IHRpdGxlLCAvKiBlbmFibGVkICovIHRydWUsIC8qIGNoZWNrZWQgKi8gZmFsc2UsIFdURk1vdmUo
Y2hpbGRyZW4pIH07CisjZW5kaWYKICAgICB9OwogCi0gICAgVmVjdG9yPE1lZGlhQ29udHJvbHND
b250ZXh0TWVudUl0ZW0+IGl0ZW1zOworICAgIGF1dG8gY3JlYXRlTWVudUl0ZW0gPSBbJl0gKE1l
bnVEYXRhIGRhdGEsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGJvb2wgY2hlY2tlZCA9IGZhbHNlKSAt
PiBNZW51SXRlbSB7CisgICAgICAgIGF1dG8gaWQgPSBpZE1hcC5zaXplKCkgKyAxOworICAgICAg
ICBpZE1hcC5hZGQoaWQsIGRhdGEpOwogCi0gICAgaWYgKG9wdGlvbnNKU09OT2JqZWN0LT5nZXRC
b29sZWFuKCJpbmNsdWRlQXVkaW9UcmFja3MiX3MpLnZhbHVlT3IoZmFsc2UpKSB7CisjaWYgVVNF
KFVJQ09OVEVYVE1FTlUpCisgICAgICAgIHJldHVybiB7IGlkLCB0aXRsZSwgLyogaWNvbiAqLyBu
dWxsU3RyaW5nKCksIGNoZWNrZWQsIC8qIGNoaWxkcmVuICovIHsgfSB9OworI2VsaWYgRU5BQkxF
KENPTlRFWFRfTUVOVVMpICYmIFVTRShBQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMpCisgICAg
ICAgIHJldHVybiB7IENoZWNrYWJsZUFjdGlvblR5cGUsIHN0YXRpY19jYXN0PENvbnRleHRNZW51
QWN0aW9uPihDb250ZXh0TWVudUl0ZW1CYXNlQ3VzdG9tVGFnICsgaWQpLCB0aXRsZSwgLyogZW5h
YmxlZCAqLyB0cnVlLCBjaGVja2VkIH07CisjZW5kaWYKKyAgICB9OworCisgICAgVmVjdG9yPE1l
bnVJdGVtPiBpdGVtczsKKworICAgIGlmIChvcHRpb25zSlNPTk9iamVjdC0+Z2V0Qm9vbGVhbigi
aW5jbHVkZUxhbmd1YWdlcyJfcykudmFsdWVPcihmYWxzZSkpIHsKICAgICAgICAgaWYgKGF1dG8q
IGF1ZGlvVHJhY2tzID0gbWVkaWFFbGVtZW50LmF1ZGlvVHJhY2tzKCk7IGF1ZGlvVHJhY2tzICYm
IGF1ZGlvVHJhY2tzLT5sZW5ndGgoKSA+IDEpIHsKLSAgICAgICAgICAgIE1lZGlhQ29udHJvbHND
b250ZXh0TWVudUl0ZW0gYXVkaW9UcmFja3NJdGVtOwotICAgICAgICAgICAgYXVkaW9UcmFja3NJ
dGVtLnRpdGxlID0gV0VCX1VJX1NUUklOR19LRVkoIkxhbmd1YWdlcyIsICJMYW5ndWFnZXMgKE1l
ZGlhIENvbnRyb2xzIE1lbnUpIiwgIkxhbmd1YWdlcyBtZWRpYSBjb250cm9scyBjb250ZXh0IG1l
bnUgdGl0bGUiKTsKLSAgICAgICAgICAgIGF1ZGlvVHJhY2tzSXRlbS5pY29uID0gImdsb2JlIl9z
OwotICAgICAgICAgICAgYXVkaW9UcmFja3NJdGVtLmNoaWxkcmVuLnJlc2VydmVDYXBhY2l0eShh
dWRpb1RyYWNrcy0+bGVuZ3RoKCkpOworICAgICAgICAgICAgVmVjdG9yPE1lbnVJdGVtPiBsYW5n
dWFnZU1lbnVJdGVtczsKIAogICAgICAgICAgICAgYXV0byYgY2FwdGlvblByZWZlcmVuY2VzID0g
cGFnZS0+Z3JvdXAoKS5jYXB0aW9uUHJlZmVyZW5jZXMoKTsKKyAgICAgICAgICAgIGZvciAoYXV0
byYgYXVkaW9UcmFjayA6IGNhcHRpb25QcmVmZXJlbmNlcy5zb3J0ZWRUcmFja0xpc3RGb3JNZW51
KGF1ZGlvVHJhY2tzKSkKKyAgICAgICAgICAgICAgICBsYW5ndWFnZU1lbnVJdGVtcy5hcHBlbmQo
Y3JlYXRlTWVudUl0ZW0oYXVkaW9UcmFjaywgY2FwdGlvblByZWZlcmVuY2VzLmRpc3BsYXlOYW1l
Rm9yVHJhY2soYXVkaW9UcmFjay5nZXQoKSksIGF1ZGlvVHJhY2stPmVuYWJsZWQoKSkpOwogCi0g
ICAgICAgICAgICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2sgOiBjYXB0aW9uUHJlZmVyZW5jZXMuc29y
dGVkVHJhY2tMaXN0Rm9yTWVudShhdWRpb1RyYWNrcykpIHsKLSAgICAgICAgICAgICAgICBNZWRp
YUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtIGF1ZGlvVHJhY2tJdGVtOwotICAgICAgICAgICAgICAg
IGF1ZGlvVHJhY2tJdGVtLmlkID0gZ2VuZXJhdGVJRChhdWRpb1RyYWNrKTsKLSAgICAgICAgICAg
ICAgICBhdWRpb1RyYWNrSXRlbS50aXRsZSA9IGNhcHRpb25QcmVmZXJlbmNlcy5kaXNwbGF5TmFt
ZUZvclRyYWNrKGF1ZGlvVHJhY2suZ2V0KCkpOwotICAgICAgICAgICAgICAgIGF1ZGlvVHJhY2tJ
dGVtLmlzQ2hlY2tlZCA9IGF1ZGlvVHJhY2stPmVuYWJsZWQoKTsKLSAgICAgICAgICAgICAgICBh
dWRpb1RyYWNrc0l0ZW0uY2hpbGRyZW4uYXBwZW5kKFdURk1vdmUoYXVkaW9UcmFja0l0ZW0pKTsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKCFhdWRpb1RyYWNrc0l0ZW0uY2hpbGRy
ZW4uaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIGl0ZW1zLmFwcGVuZChXVEZNb3ZlKGF1ZGlv
VHJhY2tzSXRlbSkpOworICAgICAgICAgICAgaWYgKCFsYW5ndWFnZU1lbnVJdGVtcy5pc0VtcHR5
KCkpCisgICAgICAgICAgICAgICAgaXRlbXMuYXBwZW5kKGNyZWF0ZVN1Ym1lbnUoV0VCX1VJX1NU
UklOR19LRVkoIkxhbmd1YWdlcyIsICJMYW5ndWFnZXMgKE1lZGlhIENvbnRyb2xzIE1lbnUpIiwg
Ikxhbmd1YWdlcyBtZWRpYSBjb250cm9scyBjb250ZXh0IG1lbnUgdGl0bGUiKSwgImdsb2JlIl9z
LCBXVEZNb3ZlKGxhbmd1YWdlTWVudUl0ZW1zKSkpOwogICAgICAgICB9CiAgICAgfQogCi0gICAg
aWYgKG9wdGlvbnNKU09OT2JqZWN0LT5nZXRCb29sZWFuKCJpbmNsdWRlVGV4dFRyYWNrcyJfcyku
dmFsdWVPcihmYWxzZSkpIHsKKyAgICBpZiAob3B0aW9uc0pTT05PYmplY3QtPmdldEJvb2xlYW4o
ImluY2x1ZGVTdWJ0aXRsZXMiX3MpLnZhbHVlT3IoZmFsc2UpKSB7CiAgICAgICAgIGlmIChhdXRv
KiB0ZXh0VHJhY2tzID0gbWVkaWFFbGVtZW50LnRleHRUcmFja3MoKTsgdGV4dFRyYWNrcyAmJiB0
ZXh0VHJhY2tzLT5sZW5ndGgoKSkgewotICAgICAgICAgICAgTWVkaWFDb250cm9sc0NvbnRleHRN
ZW51SXRlbSB0ZXh0VHJhY2tzSXRlbTsKLSAgICAgICAgICAgIHRleHRUcmFja3NJdGVtLnRpdGxl
ID0gV0VCX1VJX1NUUklOR19LRVkoIlN1YnRpdGxlcyIsICJTdWJ0aXRsZXMgKE1lZGlhIENvbnRy
b2xzIE1lbnUpIiwgIlN1YnRpdGxlcyBtZWRpYSBjb250cm9scyBjb250ZXh0IG1lbnUgdGl0bGUi
KTsKLSAgICAgICAgICAgIHRleHRUcmFja3NJdGVtLmljb24gPSAiY2FwdGlvbnMuYnViYmxlIl9z
OwotICAgICAgICAgICAgdGV4dFRyYWNrc0l0ZW0uY2hpbGRyZW4ucmVzZXJ2ZUNhcGFjaXR5KHRl
eHRUcmFja3MtPmxlbmd0aCgpKTsKKyAgICAgICAgICAgIFZlY3RvcjxNZW51SXRlbT4gc3VidGl0
bGVNZW51SXRlbXM7CiAKICAgICAgICAgICAgIGF1dG8mIGNhcHRpb25QcmVmZXJlbmNlcyA9IHBh
Z2UtPmdyb3VwKCkuY2FwdGlvblByZWZlcmVuY2VzKCk7CiAgICAgICAgICAgICBhdXRvIHNvcnRl
ZFRleHRUcmFja3MgPSBjYXB0aW9uUHJlZmVyZW5jZXMuc29ydGVkVHJhY2tMaXN0Rm9yTWVudSh0
ZXh0VHJhY2tzLCB7IFRleHRUcmFjazo6S2luZDo6U3VidGl0bGVzLCBUZXh0VHJhY2s6OktpbmQ6
OkNhcHRpb25zLCBUZXh0VHJhY2s6OktpbmQ6OkRlc2NyaXB0aW9ucyB9KTsKQEAgLTQyNywyNCAr
NTQ2LDE5IEBAIGJvb2wgTWVkaWFDb250cm9sc0hvc3Q6OnNob3dNZWRpYUNvbnRyb2xzQ29udGV4
dE1lbnUoSFRNTEVsZW1lbnQmIHRhcmdldCwgU3RyaW5nCiAgICAgICAgICAgICAgICAgcmV0dXJu
IHRleHRUcmFjay0+bW9kZSgpID09IFRleHRUcmFjazo6TW9kZTo6U2hvd2luZzsKICAgICAgICAg
ICAgIH0pOwogICAgICAgICAgICAgYm9vbCB1c2VzQXV0b21hdGljVHJhY2sgPSBjYXB0aW9uUHJl
ZmVyZW5jZXMuY2FwdGlvbkRpc3BsYXlNb2RlKCkgPT0gQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6
QXV0b21hdGljICYmIGFsbFRyYWNrc0Rpc2FibGVkOwotCiAgICAgICAgICAgICBmb3IgKGF1dG8m
IHRleHRUcmFjayA6IHNvcnRlZFRleHRUcmFja3MpIHsKLSAgICAgICAgICAgICAgICBNZWRpYUNv
bnRyb2xzQ29udGV4dE1lbnVJdGVtIHRleHRUcmFja0l0ZW07Ci0gICAgICAgICAgICAgICAgdGV4
dFRyYWNrSXRlbS5pZCA9IGdlbmVyYXRlSUQodGV4dFRyYWNrKTsKLSAgICAgICAgICAgICAgICB0
ZXh0VHJhY2tJdGVtLnRpdGxlID0gY2FwdGlvblByZWZlcmVuY2VzLmRpc3BsYXlOYW1lRm9yVHJh
Y2sodGV4dFRyYWNrLmdldCgpKTsKKyAgICAgICAgICAgICAgICBib29sIGNoZWNrZWQgPSBmYWxz
ZTsKICAgICAgICAgICAgICAgICBpZiAoYWxsVHJhY2tzRGlzYWJsZWQgJiYgdGV4dFRyYWNrID09
ICZUZXh0VHJhY2s6OmNhcHRpb25NZW51T2ZmSXRlbSgpICYmIChjYXB0aW9uUHJlZmVyZW5jZXMu
Y2FwdGlvbkRpc3BsYXlNb2RlKCkgPT0gQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6Rm9yY2VkT25s
eSB8fCBjYXB0aW9uUHJlZmVyZW5jZXMuY2FwdGlvbkRpc3BsYXlNb2RlKCkgPT0gQ2FwdGlvblVz
ZXJQcmVmZXJlbmNlczo6TWFudWFsKSkKLSAgICAgICAgICAgICAgICAgICAgdGV4dFRyYWNrSXRl
bS5pc0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBjaGVja2VkID0gdHJ1ZTsK
ICAgICAgICAgICAgICAgICBlbHNlIGlmICh1c2VzQXV0b21hdGljVHJhY2sgJiYgdGV4dFRyYWNr
ID09ICZUZXh0VHJhY2s6OmNhcHRpb25NZW51QXV0b21hdGljSXRlbSgpKQotICAgICAgICAgICAg
ICAgICAgICB0ZXh0VHJhY2tJdGVtLmlzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICAgICAg
ICAgIGNoZWNrZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgIGVsc2UgaWYgKCF1c2VzQXV0b21h
dGljVHJhY2sgJiYgdGV4dFRyYWNrLT5tb2RlKCkgPT0gVGV4dFRyYWNrOjpNb2RlOjpTaG93aW5n
KQotICAgICAgICAgICAgICAgICAgICB0ZXh0VHJhY2tJdGVtLmlzQ2hlY2tlZCA9IHRydWU7Ci0g
ICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICB0ZXh0VHJhY2tJdGVtLmlz
Q2hlY2tlZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgIHRleHRUcmFja3NJdGVtLmNoaWxkcmVu
LmFwcGVuZChXVEZNb3ZlKHRleHRUcmFja0l0ZW0pKTsKKyAgICAgICAgICAgICAgICAgICAgY2hl
Y2tlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgc3VidGl0bGVNZW51SXRlbXMuYXBwZW5kKGNy
ZWF0ZU1lbnVJdGVtKHRleHRUcmFjaywgY2FwdGlvblByZWZlcmVuY2VzLmRpc3BsYXlOYW1lRm9y
VHJhY2sodGV4dFRyYWNrLmdldCgpKSwgY2hlY2tlZCkpOwogICAgICAgICAgICAgfQogCi0gICAg
ICAgICAgICBpZiAoIXRleHRUcmFja3NJdGVtLmNoaWxkcmVuLmlzRW1wdHkoKSkKLSAgICAgICAg
ICAgICAgICBpdGVtcy5hcHBlbmQoV1RGTW92ZSh0ZXh0VHJhY2tzSXRlbSkpOworICAgICAgICAg
ICAgaWYgKCFzdWJ0aXRsZU1lbnVJdGVtcy5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgaXRl
bXMuYXBwZW5kKGNyZWF0ZVN1Ym1lbnUoV0VCX1VJX1NUUklOR19LRVkoIlN1YnRpdGxlcyIsICJT
dWJ0aXRsZXMgKE1lZGlhIENvbnRyb2xzIE1lbnUpIiwgIlN1YnRpdGxlcyBtZWRpYSBjb250cm9s
cyBjb250ZXh0IG1lbnUgdGl0bGUiKSwgImNhcHRpb25zLmJ1YmJsZSJfcywgV1RGTW92ZShzdWJ0
aXRsZU1lbnVJdGVtcykpKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtNDUyLDEzICs1NjYsMzIg
QEAgYm9vbCBNZWRpYUNvbnRyb2xzSG9zdDo6c2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShI
VE1MRWxlbWVudCYgdGFyZ2V0LCBTdHJpbmcKICAgICBNZWRpYUNvbnRyb2xzSG9zdEFkZGl0aW9u
c19zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51X29wdGlvbnMKICNlbmRpZgogCisjaWYgRU5B
QkxFKENPTlRFWFRfTUVOVVMpICYmIFVTRShBQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMpCisg
ICAgaWYgKG9wdGlvbnNKU09OT2JqZWN0LT5nZXRCb29sZWFuKCJwcm9tb3RlU3ViTWVudXMiX3Mp
LnZhbHVlT3IoZmFsc2UpKSB7CisgICAgICAgIGZvciAoYXV0byYmIGl0ZW0gOiBzdGQ6OmV4Y2hh
bmdlKGl0ZW1zLCB7IH0pKSB7CisgICAgICAgICAgICBpZiAoIWl0ZW1zLmlzRW1wdHkoKSkKKyAg
ICAgICAgICAgICAgICBpdGVtcy5hcHBlbmQoeyBTZXBhcmF0b3JUeXBlLCBpbnZhbGlkTWVudUl0
ZW1JZGVudGlmaWVyLCAvKiB0aXRsZSAqLyBudWxsU3RyaW5nKCkgfSk7CisKKyAgICAgICAgICAg
IEFTU0VSVChpdGVtLnR5cGUoKSA9PSBTdWJtZW51VHlwZSk7CisgICAgICAgICAgICBpdGVtcy5h
cHBlbmQoeyBBY3Rpb25UeXBlLCBpbnZhbGlkTWVudUl0ZW1JZGVudGlmaWVyLCBpdGVtLnRpdGxl
KCksIC8qIGVuYWJsZWQgKi8gZmFsc2UsIC8qIGNoZWNrZWQgKi8gZmFsc2UgfSk7CisgICAgICAg
ICAgICBpdGVtcy5hcHBlbmRWZWN0b3IoV1RGOjptYXAoaXRlbS5zdWJNZW51SXRlbXMoKSwgW10g
KGNvbnN0IGF1dG8mIGl0ZW0pIC0+IENvbnRleHRNZW51SXRlbSB7CisgICAgICAgICAgICAgICAg
Ly8gVGhlIGRpc2FibGVkIGlubGluZSBpdGVtIHVzZWQgaW5zdGVhZCBvZiBhbiBhY3R1YWwgc3Vi
bWVudSBzaG91bGQgYmUgaW5kZW50ZWQgbGVzcyB0aGFuIHRoZSBzdWJtZW51IGl0ZW1zLgorICAg
ICAgICAgICAgICAgIGNvbnN0ZXhwciB1bnNpZ25lZCBpbmRlbnRhdGlvbkxldmVsID0gMTsKKyAg
ICAgICAgICAgICAgICBpZiAoaXRlbS50eXBlKCkgPT0gU3VibWVudVR5cGUpCisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiB7IGl0ZW0uYWN0aW9uKCksIGl0ZW0udGl0bGUoKSwgaXRlbS5lbmFi
bGVkKCksIGl0ZW0uY2hlY2tlZCgpLCBpdGVtLnN1Yk1lbnVJdGVtcygpLCBpbmRlbnRhdGlvbkxl
dmVsIH07CisgICAgICAgICAgICAgICAgcmV0dXJuIHsgaXRlbS50eXBlKCksIGl0ZW0uYWN0aW9u
KCksIGl0ZW0udGl0bGUoKSwgaXRlbS5lbmFibGVkKCksIGl0ZW0uY2hlY2tlZCgpLCBpbmRlbnRh
dGlvbkxldmVsIH07CisgICAgICAgICAgICB9KSk7CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYg
Ly8gRU5BQkxFKENPTlRFWFRfTUVOVVMpICYmIFVTRShBQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVO
VVMpCisKICAgICBpZiAoaXRlbXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICBBU1NFUlQoIWlkTWFwLmlzRW1wdHkoKSk7CiAKLSAgICBwYWdlLT5jaHJvbWUoKS5jbGll
bnQoKS5zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KHRhcmdldC5ib3VuZHNJblJvb3RWaWV3
U3BhY2UoKSwgV1RGTW92ZShpdGVtcyksIFt3ZWFrTWVkaWFFbGVtZW50ID0gbWFrZVdlYWtQdHIo
bWVkaWFFbGVtZW50KSwgaWRNYXAgPSBXVEZNb3ZlKGlkTWFwKSwgaW52b2tlQ2FsbGJhY2tBdFNj
b3BlRXhpdCA9IFdURk1vdmUoaW52b2tlQ2FsbGJhY2tBdFNjb3BlRXhpdCldIChNZWRpYUNvbnRy
b2xzQ29udGV4dE1lbnVJdGVtOjpJRCBzZWxlY3RlZEl0ZW1JRCkgewotICAgICAgICBpZiAoc2Vs
ZWN0ZWRJdGVtSUQgPT0gTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6aW52YWxpZElEKQor
ICAgIGF1dG8gaGFuZGxlSXRlbVNlbGVjdGVkID0gW3dlYWtNZWRpYUVsZW1lbnQgPSBtYWtlV2Vh
a1B0cihtZWRpYUVsZW1lbnQpLCBpZE1hcCA9IFdURk1vdmUoaWRNYXApLCBpbnZva2VDYWxsYmFj
a0F0U2NvcGVFeGl0ID0gV1RGTW92ZShpbnZva2VDYWxsYmFja0F0U2NvcGVFeGl0KV0gKE1lbnVJ
dGVtSWRlbnRpZmllciBzZWxlY3RlZEl0ZW1JRCkgeworICAgICAgICBpZiAoc2VsZWN0ZWRJdGVt
SUQgPT0gaW52YWxpZE1lbnVJdGVtSWRlbnRpZmllcikKICAgICAgICAgICAgIHJldHVybjsKIAog
ICAgICAgICBpZiAoIXdlYWtNZWRpYUVsZW1lbnQpCkBAIC00ODMsOSArNjE2LDIwIEBAIGJvb2wg
TWVkaWFDb250cm9sc0hvc3Q6OnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoSFRNTEVsZW1l
bnQmIHRhcmdldCwgU3RyaW5nCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBNZWRpYUNvbnRy
b2xzSG9zdEFkZGl0aW9uc19zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51X01lbnVEYXRhX3N3
aXRjaE9uCiAgICAgICAgICk7Ci0gICAgfSk7CisgICAgfTsKKworICAgIGF1dG8gYm91bmRzID0g
dGFyZ2V0LmJvdW5kc0luUm9vdFZpZXdTcGFjZSgpOworI2lmIFVTRShVSUNPTlRFWFRNRU5VKQor
ICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUo
Ym91bmRzLCBXVEZNb3ZlKGl0ZW1zKSwgV1RGTW92ZShoYW5kbGVJdGVtU2VsZWN0ZWQpKTsKKyNl
bGlmIEVOQUJMRShDT05URVhUX01FTlVTKSAmJiBVU0UoQUNDRVNTSUJJTElUWV9DT05URVhUX01F
TlVTKQorICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5jb250ZXh0bWVu
dUV2ZW50LCBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVFdmVudExpc3RlbmVyOjpjcmVhdGUoTWVk
aWFDb250cm9sc0NvbnRleHRNZW51UHJvdmlkZXI6OmNyZWF0ZShXVEZNb3ZlKGl0ZW1zKSwgV1RG
TW92ZShoYW5kbGVJdGVtU2VsZWN0ZWQpKSksIHsgLypjYXB0dXJlICovIHRydWUsIC8qIHBhc3Np
dmUgKi8gV1RGOjpudWxsb3B0LCAvKiBvbmNlICovIHRydWUgfSk7CisgICAgcGFnZS0+Y29udGV4
dE1lbnVDb250cm9sbGVyKCkuc2hvd0NvbnRleHRNZW51QXQoKnRhcmdldC5kb2N1bWVudCgpLmZy
YW1lKCksIGJvdW5kcy5jZW50ZXIoKSk7CisjZW5kaWYKIAogICAgIHJldHVybiB0cnVlOworI2Vs
c2UgLy8gVVNFKFVJQ09OVEVYVE1FTlUpIHx8IChFTkFCTEUoQ09OVEVYVF9NRU5VUykgJiYgVVNF
KEFDQ0VTU0lCSUxJVFlfQ09OVEVYVF9NRU5VUykpCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlm
CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRy
b2xzSG9zdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29u
dHJvbHNIb3N0LmgKaW5kZXggMzI1MGQ2M2Y3MjY2MDUzMjYxMDgxNWRjMTI0ZGVkNDNiN2VhZjUx
ZS4uOTA2NTk4OGY2ZjdjYjNkYWFlYjQzOTU3MTIyMzYyMDIxNDE2YTA5MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNI
b3N0LmgKQEAgLTM2LDYgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQXVkaW9U
cmFjazsKIGNsYXNzIEF1ZGlvVHJhY2tMaXN0OwogY2xhc3MgRWxlbWVudDsKK2NsYXNzIEhUTUxF
bGVtZW50OwogY2xhc3MgSFRNTE1lZGlhRWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbFRleHRU
cmFja0NvbnRhaW5lckVsZW1lbnQ7CiBjbGFzcyBUZXh0VHJhY2s7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9iYWNrZ3Jv
dW5kLWNsaWNrLWRlbGVnYXRlLW5vdGlmaWVyLmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvYmFja2dyb3VuZC1jbGljay1kZWxlZ2F0ZS1u
b3RpZmllci5qcwppbmRleCA2YzhiYTllZmFhZDYyYWU5ZWU3NGRmNjFmNjA2OTFkODE0NjQ1Yzk3
Li44MTYwOTgxNDk3Yzk5ZWU2ZmMzMjA3MjIxOWU4MzE3MjlkZDYwOTViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9iYWNr
Z3JvdW5kLWNsaWNrLWRlbGVnYXRlLW5vdGlmaWVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2JhY2tncm91bmQtY2xpY2stZGVs
ZWdhdGUtbm90aWZpZXIuanMKQEAgLTQxLDE2ICs0MSwxOCBAQCBjbGFzcyBCYWNrZ3JvdW5kQ2xp
Y2tEZWxlZ2F0ZU5vdGlmaWVyCiAgICAgICAgIGlmIChldmVudC5jdXJyZW50VGFyZ2V0ICE9PSBt
ZWRpYUNvbnRyb2xzLmVsZW1lbnQpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgLy8g
T25seSBub3RpZnkgdGhhdCB0aGUgYmFja2dyb3VuZCB3YXMgY2xpY2tlZCB3aGVuIHRoZSAibW91
c2Vkb3duIiBldmVudAotICAgICAgICAvLyB3YXMgYWxzbyByZWNlaXZlZCwgd2hpY2ggd291bGRu
J3QgaGFwcGVuIGlmIHRoZSAibW91c2Vkb3duIiBldmVudCBjYXVzZWQKLSAgICAgICAgLy8gdGhl
IHRyYWNrcyBwYW5lbCB0byBiZSBoaWRkZW4sIHVubGVzcyB3ZSdyZSBpbiBmdWxsc2NyZWVuIGlu
IHdoaWNoIGNhc2UKLSAgICAgICAgLy8gd2UgY2FuIHNpbXBseSBjaGVjayB0aGF0IHRoZSBwYW5l
bCBpcyBub3QgY3VycmVudGx5IHByZXNlbnRlZC4KLSAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09
ICJtb3VzZWRvd24iICYmICFtZWRpYUNvbnRyb2xzLnRyYWNrc1BhbmVsLnByZXNlbnRlZCkKKyAg
ICAgICAgLy8gT25seSBub3RpZnkgdGhhdCB0aGUgYmFja2dyb3VuZCB3YXMgY2xpY2tlZCB3aGVu
IHRoZSAibW91c2Vkb3duIiBldmVudCB3YXMgYWxzbyByZWNlaXZlZCwgdW5sZXNzCisgICAgICAg
IC8vIHdlJ3JlIGluIGZ1bGxzY3JlZW4gaW4gd2hpY2ggY2FzZSB3ZSBjYW4gc2ltcGx5IGNoZWNr
IHRoYXQgdGhlIHBhbmVsIGlzIG5vdCBjdXJyZW50bHkgcHJlc2VudGVkLgorICAgICAgICBzd2l0
Y2ggKGV2ZW50LnR5cGUpIHsKKyAgICAgICAgY2FzZSAibW91c2Vkb3duIjoKICAgICAgICAgICAg
IHRoaXMuX3JlY2VpdmVkTW91c2Vkb3duID0gdHJ1ZTsKLSAgICAgICAgZWxzZSBpZiAoZXZlbnQu
dHlwZSA9PT0gImNsaWNrIikgeworICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGNhc2Ug
ImNsaWNrIjoKICAgICAgICAgICAgIGlmICh0aGlzLl9yZWNlaXZlZE1vdXNlZG93biAmJiBldmVu
dC50YXJnZXQgPT09IG1lZGlhQ29udHJvbHMuZWxlbWVudCAmJiBtZWRpYUNvbnRyb2xzLmRlbGVn
YXRlICYmIHR5cGVvZiBtZWRpYUNvbnRyb2xzLmRlbGVnYXRlLm1hY09TQ29udHJvbHNCYWNrZ3Jv
dW5kV2FzQ2xpY2tlZCA9PT0gImZ1bmN0aW9uIikKICAgICAgICAgICAgICAgICBtZWRpYUNvbnRy
b2xzLmRlbGVnYXRlLm1hY09TQ29udHJvbHNCYWNrZ3JvdW5kV2FzQ2xpY2tlZCgpOwogICAgICAg
ICAgICAgZGVsZXRlIHRoaXMuX3JlY2VpdmVkTW91c2Vkb3duCisgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2lubGluZS1tZWRpYS1jb250cm9scy5qcyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2lu
bGluZS1tZWRpYS1jb250cm9scy5qcwppbmRleCA2NmI3NjllY2Q1MjBlNzRjNjYzYzgwMGFmNTZm
Yjk3NDMzY2ZkZmJhLi4xNjdmOTJiM2ZlZWY0MDFmOGNmYzYyNzU4YWViOGZjZWU3Mjk0MjJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9j
b250cm9scy9pbmxpbmUtbWVkaWEtY29udHJvbHMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvaW5saW5lLW1lZGlhLWNvbnRyb2xz
LmpzCkBAIC0xMjYsMTAgKzEyNiw2IEBAIGNsYXNzIElubGluZU1lZGlhQ29udHJvbHMgZXh0ZW5k
cyBNZWRpYUNvbnRyb2xzCiAgICAgICAgIGlmICghdGhpcy5ib3R0b21Db250cm9sc0JhcikKICAg
ICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAvLyBFbnN1cmUgdGhlIHRyYWNrcyBwYW5lbCBp
cyBhIGNoaWxkIGlmIGl0IHdlcmUgcHJlc2VudGVkLgotICAgICAgICBpZiAodGhpcy50cmFja3NQ
YW5lbC5wcmVzZW50ZWQpCi0gICAgICAgICAgICBjaGlsZHJlbi5wdXNoKHRoaXMudHJhY2tzUGFu
ZWwpOwotCiAgICAgICAgIC8vIFVwZGF0ZSB0aGUgdG9wIGxlZnQgY29udHJvbHMgYmFyLgogICAg
ICAgICB0aGlzLl90b3BMZWZ0Q29udHJvbHNCYXJDb250YWluZXIuY2hpbGRyZW4gPSB0aGlzLl90
b3BMZWZ0Q29udGFpbmVyQnV0dG9ucygpOwogICAgICAgICB0aGlzLl90b3BMZWZ0Q29udHJvbHNC
YXJDb250YWluZXIubGF5b3V0KCk7CkBAIC0yNjIsNyArMjU4LDcgQEAgY2xhc3MgSW5saW5lTWVk
aWFDb250cm9scyBleHRlbmRzIE1lZGlhQ29udHJvbHMKICAgICAgICAgICAgIHJldHVybiBbdGhp
cy5tdXRlQnV0dG9uLCB0aGlzLmFpcnBsYXlCdXR0b24sIHRoaXMub3ZlcmZsb3dCdXR0b25dOwog
CiAgICAgICAgIGlmICh0aGlzLl9zaG91bGRVc2VTaW5nbGVCYXJMYXlvdXQpCi0gICAgICAgICAg
ICByZXR1cm4gW3RoaXMubXV0ZUJ1dHRvbiwgdGhpcy5haXJwbGF5QnV0dG9uLCB0aGlzLnBpcEJ1
dHRvbiwgdGhpcy50cmFja3NCdXR0b24sIHRoaXMub3ZlcmZsb3dCdXR0b24sIHRoaXMuZnVsbHNj
cmVlbkJ1dHRvbl07CisgICAgICAgICAgICByZXR1cm4gW3RoaXMubXV0ZUJ1dHRvbiwgdGhpcy5h
aXJwbGF5QnV0dG9uLCB0aGlzLnBpcEJ1dHRvbiwgdGhpcy50cmFja3NCdXR0b24sIHRoaXMuZnVs
bHNjcmVlbkJ1dHRvbiwgdGhpcy5vdmVyZmxvd0J1dHRvbl07CiAKICAgICAgICAgY29uc3QgYnV0
dG9ucyA9IFtdOwogICAgICAgICBpZiAodGhpcy5wcmVmZXJyZWRNdXRlQnV0dG9uU3R5bGUgPT09
IEJ1dHRvbi5TdHlsZXMuQmFyKQpAQCAtMjc0LDExICsyNzAsMTIgQEAgY2xhc3MgSW5saW5lTWVk
aWFDb250cm9scyBleHRlbmRzIE1lZGlhQ29udHJvbHMKICAgICBfZHJvcHBhYmxlQnV0dG9ucygp
CiAgICAgewogICAgICAgICBpZiAodGhpcy5fc2hvdWxkVXNlU2luZ2xlQmFyTGF5b3V0KQotICAg
ICAgICAgICAgcmV0dXJuIFt0aGlzLnNraXBGb3J3YXJkQnV0dG9uLCB0aGlzLnNraXBCYWNrQnV0
dG9uLCB0aGlzLmFpcnBsYXlCdXR0b24sIHRoaXMudHJhY2tzQnV0dG9uLCB0aGlzLm92ZXJmbG93
QnV0dG9uLCB0aGlzLnBpcEJ1dHRvbiwgdGhpcy5mdWxsc2NyZWVuQnV0dG9uLCB0aGlzLm11dGVC
dXR0b25dOworICAgICAgICAgICAgcmV0dXJuIFt0aGlzLnNraXBGb3J3YXJkQnV0dG9uLCB0aGlz
LnNraXBCYWNrQnV0dG9uLCB0aGlzLmFpcnBsYXlCdXR0b24sIHRoaXMudHJhY2tzQnV0dG9uLCB0
aGlzLnBpcEJ1dHRvbiwgdGhpcy5tdXRlQnV0dG9uLCB0aGlzLmZ1bGxzY3JlZW5CdXR0b24sIHRo
aXMub3ZlcmZsb3dCdXR0b25dOwogCi0gICAgICAgIGNvbnN0IGJ1dHRvbnMgPSBbdGhpcy5za2lw
Rm9yd2FyZEJ1dHRvbiwgdGhpcy5za2lwQmFja0J1dHRvbiwgdGhpcy5haXJwbGF5QnV0dG9uLCB0
aGlzLnRyYWNrc0J1dHRvbiwgdGhpcy5vdmVyZmxvd0J1dHRvbl07CisgICAgICAgIGNvbnN0IGJ1
dHRvbnMgPSBbdGhpcy5za2lwRm9yd2FyZEJ1dHRvbiwgdGhpcy5za2lwQmFja0J1dHRvbiwgdGhp
cy5haXJwbGF5QnV0dG9uLCB0aGlzLnRyYWNrc0J1dHRvbl07CiAgICAgICAgIGlmICh0aGlzLnBy
ZWZlcnJlZE11dGVCdXR0b25TdHlsZSA9PT0gQnV0dG9uLlN0eWxlcy5CYXIpCiAgICAgICAgICAg
ICBidXR0b25zLnB1c2godGhpcy5tdXRlQnV0dG9uKTsKKyAgICAgICAgYnV0dG9ucy5wdXNoKHRo
aXMub3ZlcmZsb3dCdXR0b24pOwogICAgICAgICByZXR1cm4gYnV0dG9uczsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2Nv
bnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMuY3NzIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFjb3MtZnVsbHNjcmVl
bi1tZWRpYS1jb250cm9scy5jc3MKaW5kZXggYmE3MGI0NDUwNWQ5MzY3NzkyNjViM2U4NGY4YTg0
ZGZkYTE1ZWQ4MC4uZWUwMDU0N2NiMTJmYjk4MDVmOTc5MjUyYTUzNDJkYjg1ZGIyZGU1YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29u
dHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy5jc3MKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFjb3MtZnVsbHNj
cmVlbi1tZWRpYS1jb250cm9scy5jc3MKQEAgLTI3LDcgKzI3LDYgQEAKIAogLm1lZGlhLWNvbnRy
b2xzLm1hYy5mdWxsc2NyZWVuIHsKICAgICAtLWNvbnRyb2xzLWJhci13aWR0aDogNDY4cHg7Ci0g
ICAgLS10cmFja3MtcGFuZWwtcmlnaHQtbWFyZ2luOiA0MHB4OwogCiAgICAgd2lkdGg6IDEwMCUg
IWltcG9ydGFudDsKICAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21hY29z
LWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21v
ZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRy
b2xzLmpzCmluZGV4IDNiODAyNGEwNWMzZDk0NDViNjkwZGJmMTE5ZDc1YzM5YWVmZGE1YTQuLmQy
OWEzMmY4MmE0NTYyY2QxNzIyMmJmYWJmMzMyMzQ2MTYzMzM4NzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21hY29zLWZ1
bGxzY3JlZW4tbWVkaWEtY29udHJvbHMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250
cm9scy5qcwpAQCAtNjUsNyArNjUsNyBAQCBjbGFzcyBNYWNPU0Z1bGxzY3JlZW5NZWRpYUNvbnRy
b2xzIGV4dGVuZHMgTWVkaWFDb250cm9scwogICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9y
aWdodENvbnRhaW5lciA9IG5ldyBCdXR0b25zQ29udGFpbmVyKHsKLSAgICAgICAgICAgIGNoaWxk
cmVuOiBbdGhpcy5haXJwbGF5QnV0dG9uLCB0aGlzLnBpcEJ1dHRvbiwgdGhpcy50cmFja3NCdXR0
b24sIHRoaXMuZnVsbHNjcmVlbkJ1dHRvbl0sCisgICAgICAgICAgICBjaGlsZHJlbjogW3RoaXMu
YWlycGxheUJ1dHRvbiwgdGhpcy5waXBCdXR0b24sIHRoaXMudHJhY2tzQnV0dG9uLCB0aGlzLmZ1
bGxzY3JlZW5CdXR0b24sIHRoaXMub3ZlcmZsb3dCdXR0b25dLAogICAgICAgICAgICAgY3NzQ2xh
c3NOYW1lOiAicmlnaHQiLAogICAgICAgICAgICAgbGVmdE1hcmdpbjogMTIsCiAgICAgICAgICAg
ICByaWdodE1hcmdpbjogMTIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21lZGlhLWNvbnRyb2xzLmNzcyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21lZGlhLWNvbnRy
b2xzLmNzcwppbmRleCBkMzM5Njk2YmEyMmU4M2IzZjUwYjEzMzAyMjY1ZmQzMzM1ZDVhZjYzLi40
ODEzODYxMjVhMjE3YWJjOTg1YzNjZTdhOTYzMDIwYjAyN2RjNjdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9tZWRpYS1j
b250cm9scy5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvY29udHJvbHMvbWVkaWEtY29udHJvbHMuY3NzCkBAIC05NywxMSArOTcsNiBAQAogICAg
IHRyYW5zaXRpb246IG9wYWNpdHkgMC4xcyBsaW5lYXI7CiB9CiAKLS5tZWRpYS1jb250cm9scy5z
aG93cy10cmFja3MtcGFuZWwgPiAuY29udHJvbHMtYmFyID4gKiwKLS5tZWRpYS1jb250cm9scy5z
aG93cy10cmFja3MtcGFuZWwgPiBidXR0b24gewotICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwot
fQotCiAubWVkaWEtY29udHJvbHMuZmFkZWQgPiAqOm5vdCgucGxhY2FyZCkgewogICAgIG9wYWNp
dHk6IDA7CiAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9tZWRpYS1jb250cm9s
cy5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRy
b2xzL21lZGlhLWNvbnRyb2xzLmpzCmluZGV4IDE1ZjE0MDYyY2NmZTk1OWExZGRlOGVlN2M5N2U4
ODNmNjQ1NmRhMTQuLjU5NGNhYjgzMWUwZmQ1YjAxMzdiZTkzZGMxYzJhNzI4NmU5Y2UzZGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2Nv
bnRyb2xzL21lZGlhLWNvbnRyb2xzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21lZGlhLWNvbnRyb2xzLmpzCkBAIC00OCw4ICs0
OCw2IEBAIGNsYXNzIE1lZGlhQ29udHJvbHMgZXh0ZW5kcyBMYXlvdXROb2RlCiAgICAgICAgIHRo
aXMuc3RhdHVzTGFiZWwgPSBuZXcgU3RhdHVzTGFiZWwodGhpcyk7CiAgICAgICAgIHRoaXMudGlt
ZUNvbnRyb2wgPSBuZXcgVGltZUNvbnRyb2wodGhpcyk7CiAKLSAgICAgICAgdGhpcy50cmFja3NQ
YW5lbCA9IG5ldyBUcmFja3NQYW5lbDsKLQogICAgICAgICB0aGlzLmJvdHRvbUNvbnRyb2xzQmFy
ID0gbmV3IENvbnRyb2xzQmFyKCJib3R0b20iKTsKIAogICAgICAgICB0aGlzLmF1dG9IaWRlQ29u
dHJvbGxlciA9IG5ldyBBdXRvSGlkZUNvbnRyb2xsZXIodGhpcyk7CkBAIC0xNzAsMzMgKzE2OCw2
IEBAIGNsYXNzIE1lZGlhQ29udHJvbHMgZXh0ZW5kcyBMYXlvdXROb2RlCiAgICAgICAgIHJldHVy
biB0aGlzLl9wbGFjYXJkICYmIHRoaXMuX3BsYWNhcmQgIT09IHRoaXMuYWlycGxheVBsYWNhcmQ7
CiAgICAgfQogCi0gICAgc2hvd1RyYWNrc1BhbmVsKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuZWxl
bWVudC5jbGFzc0xpc3QuYWRkKCJzaG93cy10cmFja3MtcGFuZWwiKTsKLQotICAgICAgICB0aGlz
LnRyYWNrc0J1dHRvbi5vbiA9IHRydWU7Ci0gICAgICAgIHRoaXMudHJhY2tzQnV0dG9uLmVsZW1l
bnQuYmx1cigpOwotICAgICAgICB0aGlzLmF1dG9IaWRlQ29udHJvbGxlci5oYXNTZWNvbmRhcnlV
SUF0dGFjaGVkID0gdHJ1ZTsKLSAgICAgICAgdGhpcy50cmFja3NQYW5lbC5wcmVzZW50SW5QYXJl
bnQodGhpcyk7Ci0KLSAgICAgICAgY29uc3QgY29udHJvbHNCb3VuZHMgPSB0aGlzLmVsZW1lbnQu
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICAgIGNvbnN0IGNvbnRyb2xzQmFyQm91bmRz
ID0gdGhpcy5ib3R0b21Db250cm9sc0Jhci5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
OwotICAgICAgICBjb25zdCB0cmFja3NCdXR0b25Cb3VuZHMgPSB0aGlzLnRyYWNrc0J1dHRvbi5l
bGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgICB0aGlzLnRyYWNrc1BhbmVs
LnJpZ2h0WCA9IHRoaXMud2lkdGggLSAodHJhY2tzQnV0dG9uQm91bmRzLnJpZ2h0IC0gY29udHJv
bHNCb3VuZHMubGVmdCk7Ci0gICAgICAgIHRoaXMudHJhY2tzUGFuZWwuYm90dG9tWSA9IHRoaXMu
aGVpZ2h0IC0gKGNvbnRyb2xzQmFyQm91bmRzLnRvcCAtIGNvbnRyb2xzQm91bmRzLnRvcCkgKyAx
OwotICAgICAgICB0aGlzLnRyYWNrc1BhbmVsLm1heEhlaWdodCA9IHRoaXMuaGVpZ2h0IC0gdGhp
cy50cmFja3NQYW5lbC5ib3R0b21ZIC0gMTA7Ci0gICAgfQotCi0gICAgaGlkZVRyYWNrc1BhbmVs
KCkKLSAgICB7Ci0gICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCJzaG93cy10
cmFja3MtcGFuZWwiKTsKLQotICAgICAgICB0aGlzLnRyYWNrc0J1dHRvbi5vbiA9IGZhbHNlOwot
ICAgICAgICB0aGlzLnRyYWNrc0J1dHRvbi5lbGVtZW50LmZvY3VzKCk7Ci0gICAgICAgIHRoaXMu
YXV0b0hpZGVDb250cm9sbGVyLmhhc1NlY29uZGFyeVVJQXR0YWNoZWQgPSBmYWxzZTsKLSAgICAg
ICAgdGhpcy50cmFja3NQYW5lbC5oaWRlKCk7Ci0gICAgfQotCiAgICAgZmFkZUluKCkKICAgICB7
CiAgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJmYWRlLWluIik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9s
cy90cmFja3MtYnV0dG9uLmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvY29udHJvbHMvdHJhY2tzLWJ1dHRvbi5qcwppbmRleCAzNWFkNWRhODQ4NDIwMTM4
OWRmYTY3MDA5OTM5MzA0MmY0YjM3NWFjLi45MDk1Y2YzZDFjYmQ3ZDcxZDc0ZGI2Zjc4MTdjNWU3
ODgzZTFjMTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRp
YS1jb250cm9scy9jb250cm9scy90cmFja3MtYnV0dG9uLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3RyYWNrcy1idXR0b24uanMK
QEAgLTQwLDggKzQwLDggQEAgY2xhc3MgVHJhY2tzQnV0dG9uIGV4dGVuZHMgQnV0dG9uCiAgICAg
Z2V0IGNvbnRleHRNZW51T3B0aW9ucygpCiAgICAgewogICAgICAgICByZXR1cm4gewotICAgICAg
ICAgICAgaW5jbHVkZUF1ZGlvVHJhY2tzOiB0cnVlLAotICAgICAgICAgICAgaW5jbHVkZVRleHRU
cmFja3M6IHRydWUsCisgICAgICAgICAgICBpbmNsdWRlTGFuZ3VhZ2VzOiB0cnVlLAorICAgICAg
ICAgICAgaW5jbHVkZVN1YnRpdGxlczogdHJ1ZSwKICAgICAgICAgfTsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRy
b2xzL3RyYWNrcy1wYW5lbC5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRp
YS1jb250cm9scy9jb250cm9scy90cmFja3MtcGFuZWwuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAyMzZiZDcyYzc4MDczNGYwOTNmYWFmYmFiNmE4NjVhZTZhMWNhNGE2Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3RyYWNrcy1wYW5lbC5jc3MK
KysrIC9kZXYvbnVsbApAQCAtMSwxMTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLS50cmFja3MtcGFuZWwgewotICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKLSAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ci19Ci0KLS50cmFja3MtcGFuZWwgPiAu
c2Nyb2xsYWJsZS1jb250YWluZXIgewotICAgIGJvcmRlci1yYWRpdXM6IDhweDsKLX0KLQotLnRy
YWNrcy1wYW5lbCA+IC5zY3JvbGxhYmxlLWNvbnRhaW5lciB7Ci0gICAgcG9zaXRpb246IHJlbGF0
aXZlOwotICAgIG92ZXJmbG93LXk6IHNjcm9sbDsKLX0KLQotLnRyYWNrcy1wYW5lbCAqIHsKLSAg
ICBmb250LXNpemU6IDE0cHg7Ci0gICAgZm9udC13ZWlnaHQ6IDUwMDsKLX0KLQotLnRyYWNrcy1w
YW5lbC5mYWRlLW91dCB7Ci0gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTsKLSAgICB0
cmFuc2l0aW9uLWR1cmF0aW9uOiAyNjVtczsKLSAgICBvcGFjaXR5OiAwOwotfQotCi0udHJhY2tz
LXBhbmVsIHNlY3Rpb24gewotICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCB2YXIoLS1zZWNvbmRh
cnktZ2x5cGgtY29sb3IpOwotICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07Ci19Ci0KLS50cmFj
a3MtcGFuZWwgc2VjdGlvbjpmaXJzdC1vZi10eXBlIHsKLSAgICBib3JkZXItdG9wOiAwOwotfQot
Ci0udHJhY2tzLXBhbmVsIHNlY3Rpb24gPiBoMyB7Ci0gICAgY29sb3I6IHZhcigtLXByaW1hcnkt
Z2x5cGgtY29sb3IpOwotICAgIG1peC1ibGVuZC1tb2RlOiBwbHVzLWxpZ2h0ZXI7Ci0gICAgcGFk
ZGluZzogNXB4IDIwcHggMXB4IDIxcHg7Ci0gICAgbWFyZ2luOiAwOwotfQotCi0udHJhY2tzLXBh
bmVsIHNlY3Rpb24gPiB1bCB7Ci0gICAgbGlzdC1zdHlsZS10eXBlOiBub25lOwotICAgIG1hcmdp
bi10b3A6IDA7Ci0gICAgcGFkZGluZzogMDsKLX0KLQotLnRyYWNrcy1wYW5lbCBzZWN0aW9uID4g
dWwgPiBsaSB7Ci0gICAgcG9zaXRpb246IHJlbGF0aXZlOwotICAgIHBhZGRpbmc6IDFweCAyMHB4
IDFweCAzM3B4OwotICAgIGNvbG9yOiB3aGl0ZTsKLX0KLQotLnRyYWNrcy1wYW5lbCBzZWN0aW9u
ID4gdWwgPiBsaTpmb2N1cyB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwLCAxMDUsIDIw
OSk7Ci0gICAgb3V0bGluZTogbm9uZTsKLX0KLQotLnRyYWNrcy1wYW5lbCBzZWN0aW9uID4gdWwg
PiBsaS5zZWxlY3RlZDpiZWZvcmUgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6
IDNweDsKLSAgICBsZWZ0OiAxMnB4OwotICAgIHdpZHRoOiAxMnB4OwotICAgIGRpc3BsYXk6IGlu
bGluZS1ibG9jazsKLSAgICBjb250ZW50OiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDMwMCAzMDAiPjxw
b2x5Z29uIGZpbGw9IndoaXRlIiBwb2ludHM9IjI1Mi4zMDEsNC40NzcgMTI2LjY2NywxOTQuMTA0
IDQzLjM1OCwxMDguMyA2Ljg2OCwxNjEuNDA4IDEzMi41MTUsMjkwLjgxNCAyOTcuNzMyLDQ5Ljky
NiIvPjwvc3ZnPicpOwotfQotCi0udHJhY2tzLXBhbmVsIHNlY3Rpb24gPiB1bCA+IGxpLmFuaW1h
dGVkIHsKLSAgICBhbmltYXRpb24tbmFtZTogdHJhY2tzLXBhbmVsLWl0ZW0tc2VsZWN0aW9uOwot
ICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMTUwbXM7Ci0gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5j
dGlvbjogc3RlcC1lbmQ7Ci0gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7Ci19Ci0K
LUBrZXlmcmFtZXMgdHJhY2tzLXBhbmVsLWl0ZW0tc2VsZWN0aW9uIHsKLSAgICAwJSwgNTUuNTUl
IHsKLSAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNiwgNjgsIDI0MywgMC42KTsKLSAg
ICAgICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IHNhdHVyYXRlKDE4MCUpIGJsdXIoMjBweCk7
Ci0gICAgfQotCi0gICAgMjIuMjIlIHsKLSAgICAgICAgYmFja2dyb3VuZDogbm9uZTsKLSAgICAg
ICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IG5vbmU7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvdHJh
Y2tzLXBhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvY29udHJvbHMvdHJhY2tzLXBhbmVsLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBkMzAxNzA1Y2Q0YWQ1MGQ1OTE2ODVhYjMzNTM1OWNlMWQyYzc4ODJhLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3RyYWNrcy1wYW5lbC5qcworKysgL2Rldi9u
dWxsCkBAIC0xLDM0OCArMCwwIEBACi0KLWNsYXNzIFRyYWNrc1BhbmVsIGV4dGVuZHMgTGF5b3V0
Tm9kZQotewotCi0gICAgY29uc3RydWN0b3IoKQotICAgIHsKLSAgICAgICAgc3VwZXIoYDxkaXYg
Y2xhc3M9InRyYWNrcy1wYW5lbCI+PC9kaXY+YCk7Ci0gICAgICAgIHRoaXMuX2JhY2tncm91bmRU
aW50ID0gbmV3IEJhY2tncm91bmRUaW50OwotICAgICAgICB0aGlzLl9zY3JvbGxhYmxlQ29udGFp
bmVyID0gbmV3IExheW91dE5vZGUoYDxkaXYgY2xhc3M9InNjcm9sbGFibGUtY29udGFpbmVyIj48
L2Rpdj5gKTsKLSAgICAgICAgdGhpcy5fcmlnaHRYID0gMDsKLSAgICAgICAgdGhpcy5fYm90dG9t
WSA9IDA7Ci0gICAgICAgIHRoaXMuX3ByZXNlbnRlZCA9IGZhbHNlOwotICAgICAgICAKLSAgICAg
ICAgdGhpcy5jaGlsZHJlbiA9IFt0aGlzLl9iYWNrZ3JvdW5kVGludCwgdGhpcy5fc2Nyb2xsYWJs
ZUNvbnRhaW5lcl07Ci0gICAgfQotCi0gICAgLy8gUHVibGljCi0KLSAgICBnZXQgcHJlc2VudGVk
KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9wcmVzZW50ZWQ7Ci0gICAgfQotCi0gICAg
cHJlc2VudEluUGFyZW50KG5vZGUpCi0gICAgewotICAgICAgICBpZiAodGhpcy5fcHJlc2VudGVk
ICYmIHRoaXMucGFyZW50ID09PSBub2RlKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAg
IHRoaXMuX3ByZXNlbnRlZCA9IHRydWU7Ci0KLSAgICAgICAgdGhpcy5fc2Nyb2xsYWJsZUNvbnRh
aW5lci5jaGlsZHJlbiA9IHRoaXMuX2NoaWxkcmVuRnJvbURhdGFTb3VyY2UoKTsKLQotICAgICAg
ICBub2RlLmFkZENoaWxkKHRoaXMpOwotCi0gICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmVFdmVu
dExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIiwgdGhpcyk7Ci0gICAgICAgIHRoaXMuZWxlbWVudC5j
bGFzc0xpc3QucmVtb3ZlKCJmYWRlLW91dCIpOwotCi0gICAgICAgIHRoaXMuX21vdXNlZG93blRh
cmdldCgpLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHRoaXMsIHRydWUpOwotICAgICAg
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMsIHRydWUpOwotCi0gICAg
ICAgIHRoaXMuX2ZvY3VzZWRUcmFja05vZGUgPSBudWxsOwotICAgIH0KLQotICAgIGhpZGUoKQot
ICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9wcmVzZW50ZWQpCi0gICAgICAgICAgICByZXR1cm47
Ci0KLSAgICAgICAgdGhpcy5fcHJlc2VudGVkID0gZmFsc2U7Ci0KLSAgICAgICAgdGhpcy5fbW91
c2Vkb3duVGFyZ2V0KCkucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdGhpcywgdHJ1
ZSk7Ci0gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcywg
dHJ1ZSk7Ci0KLSAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRp
b25lbmQiLCB0aGlzKTsKLQotICAgICAgICAvLyBFbnN1cmUgYSB0cmFuc2l0aW9uIHdpbGwgaW5k
ZWVkIGhhcHBlbiBieSBzdGFydGluZyBpdCBvbmx5IG9uIHRoZSBuZXh0IGZyYW1lLgotICAgICAg
ICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsgdGhpcy5lbGVtZW50LmNsYXNz
TGlzdC5hZGQoImZhZGUtb3V0Iik7IH0pOwotICAgIH0KLQotICAgIGdldCBtYXhIZWlnaHQoKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX21heEhlaWdodDsKLSAgICB9Ci0KLSAgICBzZXQg
bWF4SGVpZ2h0KGhlaWdodCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9tYXhIZWlnaHQgPT09
IGhlaWdodCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB0aGlzLl9tYXhIZWlnaHQg
PSBoZWlnaHQ7Ci0gICAgICAgIHRoaXMubWFya0RpcnR5UHJvcGVydHkoIm1heEhlaWdodCIpCi0g
ICAgfQotCi0gICAgZ2V0IGJvdHRvbVkoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2Jv
dHRvbVk7Ci0gICAgfQotCi0gICAgc2V0IGJvdHRvbVkoYm90dG9tWSkKLSAgICB7Ci0gICAgICAg
IGlmICh0aGlzLl9ib3R0b21ZID09PSBib3R0b21ZKQotICAgICAgICAgICAgcmV0dXJuOwotCi0g
ICAgICAgIHRoaXMuX2JvdHRvbVkgPSBib3R0b21ZOwotICAgICAgICB0aGlzLm1hcmtEaXJ0eVBy
b3BlcnR5KCJib3R0b21ZIik7Ci0gICAgfQotCi0gICAgZ2V0IHJpZ2h0WCgpCi0gICAgewotICAg
ICAgICByZXR1cm4gdGhpcy5fcmlnaHRYOwotICAgIH0KLQotICAgIHNldCByaWdodFgoeCkKLSAg
ICB7Ci0gICAgICAgIGlmICh0aGlzLl9yaWdodFggPT09IHgpCi0gICAgICAgICAgICByZXR1cm47
Ci0KLSAgICAgICAgdGhpcy5fcmlnaHRYID0geDsKLSAgICAgICAgdGhpcy5tYXJrRGlydHlQcm9w
ZXJ0eSgicmlnaHRYIik7Ci0gICAgfQotCi0gICAgLy8gUHJvdGVjdGVkCi0KLSAgICB0cmFja05v
ZGVTZWxlY3Rpb25BbmltYXRpb25EaWRFbmQodHJhY2tOb2RlKQotICAgIHsKLSAgICAgICAgaWYg
KHRoaXMudWlEZWxlZ2F0ZSAmJiB0eXBlb2YgdGhpcy51aURlbGVnYXRlLnRyYWNrc1BhbmVsU2Vs
ZWN0aW9uRGlkQ2hhbmdlID09PSAiZnVuY3Rpb24iKQotICAgICAgICAgICAgdGhpcy51aURlbGVn
YXRlLnRyYWNrc1BhbmVsU2VsZWN0aW9uRGlkQ2hhbmdlKHRyYWNrTm9kZS5pbmRleCwgdHJhY2tO
b2RlLnNlY3Rpb25JbmRleCk7Ci0gICAgfQotCi0gICAgbW91c2VNb3ZlZE92ZXJUcmFja05vZGUo
dHJhY2tOb2RlKQotICAgIHsKLSAgICAgICAgdGhpcy5fZm9jdXNUcmFja05vZGUodHJhY2tOb2Rl
KTsKLSAgICB9Ci0KLSAgICBtb3VzZUV4aXRlZFRyYWNrTm9kZSh0cmFja05vZGUpCi0gICAgewot
ICAgICAgICB0aGlzLl9mb2N1c2VkVHJhY2tOb2RlLmVsZW1lbnQuYmx1cigpOwotICAgICAgICBk
ZWxldGUgdGhpcy5fZm9jdXNlZFRyYWNrTm9kZTsKLSAgICB9Ci0KLSAgICBjb21taXRQcm9wZXJ0
eShwcm9wZXJ0eU5hbWUpCi0gICAgewotICAgICAgICBpZiAocHJvcGVydHlOYW1lID09PSAicmln
aHRYIikKLSAgICAgICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5yaWdodCA9IGAke3RoaXMuX3Jp
Z2h0WH1weGA7Ci0gICAgICAgIGVsc2UgaWYgKHByb3BlcnR5TmFtZSA9PT0gImJvdHRvbVkiKQot
ICAgICAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmJvdHRvbSA9IGAke3RoaXMuX2JvdHRvbVl9
cHhgOwotICAgICAgICBlbHNlIGlmIChwcm9wZXJ0eU5hbWUgPT09ICJtYXhIZWlnaHQiKSB7Ci0g
ICAgICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUubWF4SGVpZ2h0ID0gYCR7dGhpcy5fbWF4SGVp
Z2h0fXB4YDsKLSAgICAgICAgICAgIHRoaXMuX3Njcm9sbGFibGVDb250YWluZXIuZWxlbWVudC5z
dHlsZS5tYXhIZWlnaHQgPSBgJHt0aGlzLl9tYXhIZWlnaHR9cHhgOwotICAgICAgICB9IGVsc2UK
LSAgICAgICAgICAgIHN1cGVyLmNvbW1pdFByb3BlcnR5KHByb3BlcnR5TmFtZSk7Ci0gICAgfQot
Ci0gICAgaGFuZGxlRXZlbnQoZXZlbnQpCi0gICAgewotICAgICAgICBzd2l0Y2ggKGV2ZW50LnR5
cGUpIHsKLSAgICAgICAgY2FzZSAibW91c2Vkb3duIjoKLSAgICAgICAgICAgIHRoaXMuX2hhbmRs
ZU1vdXNlZG93bihldmVudCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAia2V5
ZG93biI6Ci0gICAgICAgICAgICB0aGlzLl9oYW5kbGVLZXlkb3duKGV2ZW50KTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlICJ0cmFuc2l0aW9uZW5kIjoKLSAgICAgICAgICAgIHRo
aXMucmVtb3ZlKCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLQotICAg
IC8vIFByaXZhdGUKLQotICAgIF9tb3VzZWRvd25UYXJnZXQoKQotICAgIHsKLSAgICAgICAgY29u
c3QgbWVkaWFDb250cm9scyA9IHRoaXMucGFyZW50T2ZUeXBlKE1hY09TRnVsbHNjcmVlbk1lZGlh
Q29udHJvbHMpOwotICAgICAgICBpZiAobWVkaWFDb250cm9scykKLSAgICAgICAgICAgIHJldHVy
biBtZWRpYUNvbnRyb2xzLmVsZW1lbnQ7Ci0gICAgICAgIHJldHVybiB3aW5kb3c7Ci0gICAgfQot
Ci0gICAgX2NoaWxkcmVuRnJvbURhdGFTb3VyY2UoKQotICAgIHsKLSAgICAgICAgY29uc3QgY2hp
bGRyZW4gPSBbXTsKLQotICAgICAgICB0aGlzLl90cmFja05vZGVzID0gW107Ci0KLSAgICAgICAg
Y29uc3QgZGF0YVNvdXJjZSA9IHRoaXMuZGF0YVNvdXJjZTsKLSAgICAgICAgaWYgKCFkYXRhU291
cmNlKQotICAgICAgICAgICAgcmV0dXJuIGNoaWxkcmVuOwotCi0gICAgICAgIGNvbnN0IG51bWJl
ck9mU2VjdGlvbnMgPSBkYXRhU291cmNlLnRyYWNrc1BhbmVsTnVtYmVyT2ZTZWN0aW9ucygpOwot
ICAgICAgICBpZiAobnVtYmVyT2ZTZWN0aW9ucyA9PT0gMCkKLSAgICAgICAgICAgIHJldHVybiBj
aGlsZHJlbjsKLQotICAgICAgICBmb3IgKGxldCBzZWN0aW9uSW5kZXggPSAwOyBzZWN0aW9uSW5k
ZXggPCBudW1iZXJPZlNlY3Rpb25zOyArK3NlY3Rpb25JbmRleCkgewotICAgICAgICAgICAgbGV0
IHNlY3Rpb25Ob2RlID0gbmV3IExheW91dE5vZGUoYDxzZWN0aW9uPjwvc2VjdGlvbj5gKTsKLSAg
ICAgICAgICAgIHNlY3Rpb25Ob2RlLmFkZENoaWxkKG5ldyBMYXlvdXROb2RlKGA8aDM+JHtkYXRh
U291cmNlLnRyYWNrc1BhbmVsVGl0bGVGb3JTZWN0aW9uKHNlY3Rpb25JbmRleCl9PC9oMz5gKSk7
Ci0KLSAgICAgICAgICAgIGxldCB0cmFja3NMaXN0Tm9kZSA9IHNlY3Rpb25Ob2RlLmFkZENoaWxk
KG5ldyBMYXlvdXROb2RlKGA8dWw+PC91bD5gKSk7Ci0gICAgICAgICAgICBsZXQgbnVtYmVyT2ZU
cmFja3MgPSBkYXRhU291cmNlLnRyYWNrc1BhbmVsTnVtYmVyT2ZUcmFja3NJblNlY3Rpb24oc2Vj
dGlvbkluZGV4KTsKLSAgICAgICAgICAgIGZvciAobGV0IHRyYWNrSW5kZXggPSAwOyB0cmFja0lu
ZGV4IDwgbnVtYmVyT2ZUcmFja3M7ICsrdHJhY2tJbmRleCkgewotICAgICAgICAgICAgICAgIGxl
dCB0cmFja1RpdGxlID0gZGF0YVNvdXJjZS50cmFja3NQYW5lbFRpdGxlRm9yVHJhY2tJblNlY3Rp
b24odHJhY2tJbmRleCwgc2VjdGlvbkluZGV4KTsKLSAgICAgICAgICAgICAgICBsZXQgdHJhY2tT
ZWxlY3RlZCA9IGRhdGFTb3VyY2UudHJhY2tzUGFuZWxJc1RyYWNrSW5TZWN0aW9uU2VsZWN0ZWQo
dHJhY2tJbmRleCwgc2VjdGlvbkluZGV4KTsKLSAgICAgICAgICAgICAgICBsZXQgdHJhY2tOb2Rl
ID0gdHJhY2tzTGlzdE5vZGUuYWRkQ2hpbGQobmV3IFRyYWNrTm9kZSh0cmFja0luZGV4LCBzZWN0
aW9uSW5kZXgsIHRyYWNrVGl0bGUsIHRyYWNrU2VsZWN0ZWQsIHRoaXMpKTsKLSAgICAgICAgICAg
ICAgICB0aGlzLl90cmFja05vZGVzLnB1c2godHJhY2tOb2RlKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGNoaWxkcmVuLnB1c2goc2VjdGlvbk5vZGUpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgcmV0dXJuIGNoaWxkcmVuOwotICAgIH0KLQotICAgIF9oYW5kbGVNb3VzZWRvd24oZXZlbnQp
Ci0gICAgewotICAgICAgICBpZiAodGhpcy5faXNQb2ludEluVHJhY2tzUGFuZWwobmV3IERPTVBv
aW50KGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkpKSkKLSAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICB0aGlzLl9kaXNtaXNzKCk7Ci0KLSAgICAgICAgZXZlbnQucHJldmVudERlZmF1
bHQoKTsKLSAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgfQotCi0gICAgX2lz
UG9pbnRJblRyYWNrc1BhbmVsKHBvaW50KQotICAgIHsKLSAgICAgICAgbGV0IGFuY2VzdG9yID0g
dGhpcy5lbGVtZW50LnBhcmVudE5vZGU7Ci0gICAgICAgIHdoaWxlIChhbmNlc3RvciAmJiAhKGFu
Y2VzdG9yIGluc3RhbmNlb2YgU2hhZG93Um9vdCkpCi0gICAgICAgICAgICBhbmNlc3RvciA9IGFu
Y2VzdG9yLnBhcmVudE5vZGU7Ci0KLSAgICAgICAgaWYgKCFhbmNlc3RvcikKLSAgICAgICAgICAg
IGFuY2VzdG9yID0gZG9jdW1lbnQ7Ci0KLSAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5jb250
YWlucyhhbmNlc3Rvci5lbGVtZW50RnJvbVBvaW50KHBvaW50LngsIHBvaW50LnkpKTsKLSAgICB9
Ci0KLSAgICBfaGFuZGxlS2V5ZG93bihldmVudCkKLSAgICB7Ci0gICAgICAgIHN3aXRjaCAoZXZl
bnQua2V5KSB7Ci0gICAgICAgIGNhc2UgIkhvbWUiOgotICAgICAgICBjYXNlICJQYWdlVXAiOgot
ICAgICAgICAgICAgdGhpcy5fZm9jdXNGaXJzdFRyYWNrTm9kZSgpOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgIkVuZCI6Ci0gICAgICAgIGNhc2UgIlBhZ2VEb3duIjoKLSAgICAg
ICAgICAgIHRoaXMuX2ZvY3VzTGFzdFRyYWNrTm9kZSgpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgIkFycm93RG93biI6Ci0gICAgICAgICAgICBpZiAoZXZlbnQuYWx0S2V5IHx8
IGV2ZW50Lm1ldGFLZXkpCi0gICAgICAgICAgICAgICAgdGhpcy5fZm9jdXNMYXN0VHJhY2tOb2Rl
KCk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgdGhpcy5fZm9jdXNOZXh0VHJh
Y2tOb2RlKCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAiQXJyb3dVcCI6Ci0g
ICAgICAgICAgICBpZiAoZXZlbnQuYWx0S2V5IHx8IGV2ZW50Lm1ldGFLZXkpCi0gICAgICAgICAg
ICAgICAgdGhpcy5fZm9jdXNGaXJzdFRyYWNrTm9kZSgpOwotICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIHRoaXMuX2ZvY3VzUHJldmlvdXNUcmFja05vZGUoKTsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlICIgIjoKLSAgICAgICAgY2FzZSAiRW50ZXIiOgotICAgICAg
ICAgICAgaWYgKHRoaXMuX2ZvY3VzZWRUcmFja05vZGUpCi0gICAgICAgICAgICAgICAgdGhpcy5f
Zm9jdXNlZFRyYWNrTm9kZS5hY3RpdmF0ZSgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgIkVzY2FwZSI6Ci0gICAgICAgICAgICB0aGlzLl9kaXNtaXNzKCk7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotCi0gICAgICAgIC8vIEVuc3VyZSB0aGF0IHdlIGRvbid0IGxldCB0aGUgYnJvd3NlciByZWFj
dCB0byBhIGtleSBjb2RlIHdlIGhhbmRsZWQsCi0gICAgICAgIC8vIGZvciBpbnN0YW5jZSBzY3Jv
bGxpbmcgdGhlIHBhZ2UgaWYgd2UgaGFuZGxlZCBhbiBhcnJvdyBrZXkuCi0gICAgICAgIGV2ZW50
LnByZXZlbnREZWZhdWx0KCk7Ci0gICAgfQotCi0gICAgX2Rpc21pc3MoKQotICAgIHsKLSAgICAg
ICAgaWYgKHRoaXMucGFyZW50ICYmIHR5cGVvZiB0aGlzLnBhcmVudC5oaWRlVHJhY2tzUGFuZWwg
PT09ICJmdW5jdGlvbiIpCi0gICAgICAgICAgICB0aGlzLnBhcmVudC5oaWRlVHJhY2tzUGFuZWwo
KTsKLSAgICB9Ci0KLSAgICBfZm9jdXNUcmFja05vZGUodHJhY2tOb2RlKQotICAgIHsKLSAgICAg
ICAgaWYgKCF0cmFja05vZGUgfHwgdHJhY2tOb2RlID09PSB0aGlzLl9mb2N1c2VkVHJhY2tOb2Rl
KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRyYWNrTm9kZS5lbGVtZW50LmZvY3Vz
KCk7Ci0gICAgICAgIHRoaXMuX2ZvY3VzZWRUcmFja05vZGUgPSB0cmFja05vZGU7Ci0gICAgfQot
Ci0gICAgX2ZvY3VzUHJldmlvdXNUcmFja05vZGUoKQotICAgIHsKLSAgICAgICAgY29uc3QgcHJl
dmlvdXNJbmRleCA9IHRoaXMuX2ZvY3VzZWRUcmFja05vZGUgPyB0aGlzLl90cmFja05vZGVzLmlu
ZGV4T2YodGhpcy5fZm9jdXNlZFRyYWNrTm9kZSkgLSAxIDogdGhpcy5fdHJhY2tOb2Rlcy5sZW5n
dGggLSAxOwotICAgICAgICB0aGlzLl9mb2N1c1RyYWNrTm9kZSh0aGlzLl90cmFja05vZGVzW3By
ZXZpb3VzSW5kZXhdKTsKLSAgICB9Ci0KLSAgICBfZm9jdXNOZXh0VHJhY2tOb2RlKCkKLSAgICB7
Ci0gICAgICAgIHRoaXMuX2ZvY3VzVHJhY2tOb2RlKHRoaXMuX3RyYWNrTm9kZXNbdGhpcy5fdHJh
Y2tOb2Rlcy5pbmRleE9mKHRoaXMuX2ZvY3VzZWRUcmFja05vZGUpICsgMV0pOwotICAgIH0KLQot
ICAgIF9mb2N1c0ZpcnN0VHJhY2tOb2RlKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2ZvY3VzVHJh
Y2tOb2RlKHRoaXMuX3RyYWNrTm9kZXNbMF0pOwotICAgIH0KLQotICAgIF9mb2N1c0xhc3RUcmFj
a05vZGUoKQotICAgIHsKLSAgICAgICAgdGhpcy5fZm9jdXNUcmFja05vZGUodGhpcy5fdHJhY2tO
b2Rlc1t0aGlzLl90cmFja05vZGVzLmxlbmd0aCAtIDFdKTsKLSAgICB9Ci0KLX0KLQotY2xhc3Mg
VHJhY2tOb2RlIGV4dGVuZHMgTGF5b3V0Tm9kZQotewotCi0gICAgY29uc3RydWN0b3IoaW5kZXgs
IHNlY3Rpb25JbmRleCwgdGl0bGUsIHNlbGVjdGVkLCBwYW5lbCkKLSAgICB7Ci0gICAgICAgIHN1
cGVyKGA8bGkgdGFiaW5kZXg9IjAiPiR7dGl0bGV9PC9saT5gKTsKLQotICAgICAgICB0aGlzLmlu
ZGV4ID0gaW5kZXg7Ci0gICAgICAgIHRoaXMuc2VjdGlvbkluZGV4ID0gc2VjdGlvbkluZGV4Owot
ICAgICAgICB0aGlzLl9wYW5lbCA9IHBhbmVsOwotICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IHNl
bGVjdGVkOwotCi0gICAgICAgIGlmIChzZWxlY3RlZCkKLSAgICAgICAgICAgIHRoaXMuZWxlbWVu
dC5jbGFzc0xpc3QuYWRkKCJzZWxlY3RlZCIpOwotCi0gICAgICAgIHRoaXMuZWxlbWVudC5hZGRF
dmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCB0aGlzKTsKLSAgICAgICAgdGhpcy5lbGVtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLCB0aGlzKTsKLSAgICAgICAgdGhpcy5lbGVtZW50
LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcyk7Ci0gICAgfQotCi0gICAgLy8gUHVibGlj
Ci0KLSAgICBhY3RpdmF0ZSgpCi0gICAgewotICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigiYW5pbWF0aW9uZW5kIiwgdGhpcyk7Ci0gICAgICAgIHRoaXMuZWxlbWVudC5jbGFz
c0xpc3QuYWRkKCJhbmltYXRlZCIpOwotICAgIH0KLQotICAgIC8vIFByb3RlY3RlZAotCi0gICAg
aGFuZGxlRXZlbnQoZXZlbnQpCi0gICAgewotICAgICAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHsK
LSAgICAgICAgY2FzZSAibW91c2Vtb3ZlIjoKLSAgICAgICAgICAgIHRoaXMuX3BhbmVsLm1vdXNl
TW92ZWRPdmVyVHJhY2tOb2RlKHRoaXMpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgIm1vdXNlbGVhdmUiOgotICAgICAgICAgICAgdGhpcy5fcGFuZWwubW91c2VFeGl0ZWRUcmFj
a05vZGUodGhpcyk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAiY2xpY2siOgot
ICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZSgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgImFuaW1hdGlvbmVuZCI6Ci0gICAgICAgICAgICB0aGlzLl9hbmltYXRpb25EaWRFbmQo
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8gUHJpdmF0
ZQotCi0gICAgX2FuaW1hdGlvbkRpZEVuZCgpCi0gICAgewotICAgICAgICB0aGlzLmVsZW1lbnQu
cmVtb3ZlRXZlbnRMaXN0ZW5lcigiYW5pbWF0aW9uZW5kIiwgdGhpcyk7Ci0gICAgICAgIHRoaXMu
X3BhbmVsLnRyYWNrTm9kZVNlbGVjdGlvbkFuaW1hdGlvbkRpZEVuZCh0aGlzKTsKLSAgICB9Ci0K
LX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL2ltYWdlcy9tYWNPUy9PdmVyZmxvdy5zdmcgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21v
ZGVybi1tZWRpYS1jb250cm9scy9pbWFnZXMvbWFjT1MvT3ZlcmZsb3cuc3ZnCmluZGV4IGVjZjFi
MjQ4YzU4ZGNmYjk4ZGNjNTc2YWJiM2E2NzJlODY2YmFkZDYuLmY4MWRjN2ZlNWJjMDQ2ZjQ3YWMz
OTE0NTMyNzg4MDgwZGIwYmJiMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL2ltYWdlcy9tYWNPUy9PdmVyZmxvdy5zdmcKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvaW1hZ2VzL21hY09TL092
ZXJmbG93LnN2ZwpAQCAtMSw0ICsxLDQgQEAKIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9
IlVURi04Ij8+CiA8c3ZnIHdpZHRoPSIxNnB4IiBoZWlnaHQ9IjEzcHgiIHZpZXdCb3g9IjAgMCAx
NiAxMyIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgot
ICAgIDxwYXRoIGQ9Ik0zLjQ2NTQyMjgsNi41MDAxMDMyMyBDMy40NjU0MjI4LDUuNTY3NjQ3MzEg
Mi43MDkzNjI1OCw0LjgyIDEuNzYwMTE1MjcsNC44MiBDMC44MzYwNTUwNTQsNC44MiAwLjA4LDUu
NTY3NjQ3MzEgMC4wOCw2LjUwMDEwMzIzIEMwLjA4LDcuNDMyNTU5MTQgMC44MzYwNTUwNTQsOC4x
ODAyMDY0NSAxLjc2MDExNTI3LDguMTgwMjA2NDUgQzIuNzA5MzYyNTgsOC4xODAyMDY0NSAzLjQ2
NTQyMjgsNy40MzI1NTkxNCAzLjQ2NTQyMjgsNi41MDAxMDMyMyBaIE05LjY4MTgxODQ5LDYuNTAw
MTAzMjMgQzkuNjgxODE4NDksNS41Njc2NDczMSA4LjkzNDE3MTE4LDQuODIgOC4wMDE3MTUyNyw0
LjgyIEM3LjA3NzY1NTA1LDQuODIgNi4zMzAwMDc3NCw1LjU2NzY0NzMxIDYuMzMwMDA3NzQsNi41
MDAxMDMyMyBDNi4zMzAwMDc3NCw3LjQzMjU1OTE0IDcuMDc3NjU1MDUsOC4xODAyMDY0NSA4LjAw
MTcxNTI3LDguMTgwMjA2NDUgQzguOTM0MTcxMTgsOC4xODAyMDY0NSA5LjY4MTgxODQ5LDcuNDMy
NTU5MTQgOS42ODE4MTg0OSw2LjUwMDEwMzIzIFogTTE1LjkyMzQwMTMsNi41MDAxMDMyMyBDMTUu
OTIzNDAxMyw1LjU2NzY0NzMxIDE1LjE3NTc3MTIsNC44MiAxNC4yNDMzMTUzLDQuODIgQzEzLjI5
NDA1MDgsNC44MiAxMi41NDY0MDM0LDUuNTY3NjQ3MzEgMTIuNTQ2NDAzNCw2LjUwMDEwMzIzIEMx
Mi41NDY0MDM0LDcuNDMyNTU5MTQgMTMuMjk0MDUwOCw4LjE4MDIwNjQ1IDE0LjI0MzMxNTMsOC4x
ODAyMDY0NSBDMTUuMTc1NzcxMiw4LjE4MDIwNjQ1IDE1LjkyMzQwMTMsNy40MzI1NTkxNCAxNS45
MjM0MDEzLDYuNTAwMTAzMjMgWiIvPgorICAgIDxwYXRoIGQ9Ik04LjM2MDI4MDIzLDEyLjkxMDc4
MjkgQzguNTUyMTgxNCwxMi45MTA3ODI5IDguNzE0NTYwNDcsMTIuODM2OTcxNiA4Ljg0MDA0MDcs
MTIuNzExNDk1OSBMMTQuNjg1ODUzNSw2Ljk5ODYwODE0IEMxNC44MjU5ODE0LDYuODU4MzU5MyAx
NC45MDcxNTU4LDYuNjg4NjAzNDkgMTQuOTA3MTU1OCw2LjUwNDA3OTA3IEMxNC45MDcxNTU4LDYu
MzEyMTc3OTEgMTQuODI1OTgxNCw2LjEyNzY1MzQ5IDE0LjY4NTg1MzUsNi4wMDk1NSBMOC44NDAw
NDA3LDAuMjg5Mjc3OTA3IEM4LjcwNzE4MzcyLDAuMTYzNzk3Njc0IDguNTUyMTgxNCwwLjA5IDgu
MzYwMjgwMjMsMC4wOSBDNy45NzY0NjI3OSwwLjA5IDcuNjgxMjI2NzQsMC4zODUyMzYwNDcgNy42
ODEyMjY3NCwwLjc2OTAzODM3MiBDNy42ODEyMjY3NCwwLjk0NjE4NjA0NyA3Ljc2MjQxNjI4LDEu
MTIzMzMzNzIgNy44ODA1MDQ2NSwxLjI0ODgxMzk1IEwxMy4yNTM4NzMzLDYuNTA0MDc5MDcgTDcu
ODgwNTA0NjUsMTEuNzU5MzQ3MSBDNy43NjI0MTYyOCwxMS44ODQ4MjQgNy42ODEyMjY3NCwxMi4w
NTQ1ODYzIDcuNjgxMjI2NzQsMTIuMjM5MTEyMiBDNy42ODEyMjY3NCwxMi42MjI5MjM2IDcuOTc2
NDYyNzksMTIuOTEwNzgyOSA4LjM2MDI4MDIzLDEyLjkxMDc4MjkgWiBNMS43NjE2NjE2MywxMi45
MTA3ODI5IEMxLjk1MzU3NzkxLDEyLjkxMDc4MjkgMi4xMTU5NTY5OCwxMi44MzY5NzE2IDIuMjQ4
ODEzOTUsMTIuNzExNDk1OSBMOC4wOTQ1NjYyOCw2Ljk5ODYwODE0IEM4LjIzNDgsNi44NTgzNTkz
IDguMzA4NjEyNzksNi42ODg2MDM0OSA4LjMwODYxMjc5LDYuNTA0MDc5MDcgQzguMzA4NjEyNzks
Ni4zMTIxNzc5MSA4LjIzNDgsNi4xMjc2NTM0OSA4LjA5NDU2NjI4LDYuMDA5NTUgTDIuMjQxNDM3
MjEsMC4yODkyNzc5MDcgQzIuMTE1OTU2OTgsMC4xNjM3OTc2NzQgMS45NTM1Nzc5MSwwLjA5IDEu
NzYxNjYxNjMsMC4wOSBDMS4zNzc4NTkzLDAuMDkgMS4wOSwwLjM4NTIzNjA0NyAxLjA5LDAuNzY5
MDM4MzcyIEMxLjA5LDAuOTQ2MTg2MDQ3IDEuMTYzODEyNzksMS4xMjMzMzM3MiAxLjI4MTkwMTE2
LDEuMjQ4ODEzOTUgTDYuNjU1MjY5NzcsNi41MDQwNzkwNyBMMS4yODE5MDExNiwxMS43NTkzNDcx
IEMxLjE2MzgxMjc5LDExLjg4NDgyNCAxLjA5LDEyLjA1NDU4NjMgMS4wOSwxMi4yMzkxMTIyIEMx
LjA5LDEyLjYyMjkyMzYgMS4zNzc4NTkzLDEyLjkxMDc4MjkgMS43NjE2NjE2MywxMi45MTA3ODI5
IFoiLz4KIDwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvanMtZmlsZXMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1t
ZWRpYS1jb250cm9scy9qcy1maWxlcwppbmRleCBkMWM5ZTkxYjc0MTVmY2NkN2Q2ZmZkOTgyYjgw
YTRiMmNmN2JkOWE0Li42YTc4MzBhYTA0NTgzMzAyODVhZWIzY2EwNzdjMzk5ZWFlOWExYmYyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9q
cy1maWxlcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9s
cy9qcy1maWxlcwpAQCAtMjYsNyArMjYsNiBAQCBjb250cm9scy9vdmVyZmxvdy1idXR0b24uanMK
IGNvbnRyb2xzL2J1dHRvbnMtY29udGFpbmVyLmpzCiBjb250cm9scy9zdGF0dXMtbGFiZWwuanMK
IGNvbnRyb2xzL2NvbnRyb2xzLWJhci5qcwotY29udHJvbHMvdHJhY2tzLXBhbmVsLmpzCiBjb250
cm9scy9hdXRvLWhpZGUtY29udHJvbGxlci5qcwogY29udHJvbHMvbWVkaWEtY29udHJvbHMuanMK
IGNvbnRyb2xzL2JhY2tncm91bmQtY2xpY2stZGVsZWdhdGUtbm90aWZpZXIuanMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhL21l
ZGlhLWNvbnRyb2xsZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1j
b250cm9scy9tZWRpYS9tZWRpYS1jb250cm9sbGVyLmpzCmluZGV4IGMzZjJmMzQyZDY1Y2JlYjlj
ODEzMTRmM2Q0N2IxM2QyYjYzOGRiZDkuLmZmNmFkZmQ4YjNmZjQxMjhjYzBjZjk2ZWZjYzZjZGYy
MDFmMWM1ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL21lZGlhL21lZGlhLWNvbnRyb2xsZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEvbWVkaWEtY29udHJvbGxlci5qcwpA
QCAtMTMyLDE0ICsxMzIsMTQgQEAgY2xhc3MgTWVkaWFDb250cm9sbGVyCiAgICAgICAgIHJldHVy
biAhIXRoaXMuaG9zdD8uc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudTsKICAgICB9CiAKLSAg
ICBzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KGJ1dHRvbikKKyAgICBzaG93TWVkaWFDb250
cm9sc0NvbnRleHRNZW51KGJ1dHRvbiwgb3B0aW9ucyA9IHt9KQogICAgIHsKICAgICAgICAgaWYg
KCF0aGlzLmNhblNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICAgICAgbGV0IGF1dG9IaWRlQ29udHJvbGxlciA9IHRoaXMuY29udHJv
bHMuYXV0b0hpZGVDb250cm9sbGVyOwogCi0gICAgICAgIGxldCB3aWxsU2hvd0NvbnRleHRNZW51
ID0gdGhpcy5ob3N0LnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoYnV0dG9uLmVsZW1lbnQs
IGJ1dHRvbi5jb250ZXh0TWVudU9wdGlvbnMsICgpID0+IHsKKyAgICAgICAgbGV0IHdpbGxTaG93
Q29udGV4dE1lbnUgPSB0aGlzLmhvc3Quc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShidXR0
b24uZWxlbWVudCwgey4uLmJ1dHRvbi5jb250ZXh0TWVudU9wdGlvbnMsIC4uLm9wdGlvbnN9LCAo
KSA9PiB7CiAgICAgICAgICAgICBidXR0b24ub24gPSBmYWxzZTsKICAgICAgICAgICAgIGF1dG9I
aWRlQ29udHJvbGxlci5oYXNTZWNvbmRhcnlVSUF0dGFjaGVkID0gZmFsc2U7CiAgICAgICAgIH0p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvbWVkaWEvdHJhY2tzLXN1cHBvcnQuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVy
bi1tZWRpYS1jb250cm9scy9tZWRpYS90cmFja3Mtc3VwcG9ydC5qcwppbmRleCA2N2ZjOWM2ZjIw
ZjI5N2FjZWFlNzFlYTMwYTZkZWZmOTAyNDNlZTkxLi5lNzdmYjJkYTM2NDFjYjRlYWE2ZTY0NDBh
M2QwOTE5YmNjMjFiY2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVy
bi1tZWRpYS1jb250cm9scy9tZWRpYS90cmFja3Mtc3VwcG9ydC5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS90cmFja3Mtc3VwcG9ydC5q
cwpAQCAtMjYsMTcgKzI2LDYgQEAKIGNsYXNzIFRyYWNrc1N1cHBvcnQgZXh0ZW5kcyBNZWRpYUNv
bnRyb2xsZXJTdXBwb3J0CiB7CiAKLSAgICBjb25zdHJ1Y3RvcihtZWRpYUNvbnRyb2xsZXIpCi0g
ICAgewotICAgICAgICBzdXBlcihtZWRpYUNvbnRyb2xsZXIpOwotCi0gICAgICAgIGlmICghdGhp
cy5jb250cm9sKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMubWVkaWFDb250
cm9sbGVyLmNvbnRyb2xzLnRyYWNrc1BhbmVsLmRhdGFTb3VyY2UgPSB0aGlzOwotICAgICAgICB0
aGlzLm1lZGlhQ29udHJvbGxlci5jb250cm9scy50cmFja3NQYW5lbC51aURlbGVnYXRlID0gdGhp
czsKLSAgICB9Ci0KICAgICAvLyBQcm90ZWN0ZWQKIAogICAgIGdldCBjb250cm9sKCkKQEAgLTU2
LDg1ICs0NSwxNCBAQCBjbGFzcyBUcmFja3NTdXBwb3J0IGV4dGVuZHMgTWVkaWFDb250cm9sbGVy
U3VwcG9ydAogCiAgICAgYnV0dG9uV2FzUHJlc3NlZChjb250cm9sKQogICAgIHsKLSAgICAgICAg
aWYgKHRoaXMubWVkaWFDb250cm9sbGVyLnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoY29u
dHJvbCkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKHRoaXMubWVkaWFDb250
cm9sbGVyLmxheW91dFRyYWl0cyAmIExheW91dFRyYWl0cy5tYWNPUykKLSAgICAgICAgICAgIHRo
aXMubWVkaWFDb250cm9sbGVyLmNvbnRyb2xzLnNob3dUcmFja3NQYW5lbCgpOwotICAgIH0KLQot
ICAgIHRyYWNrc1BhbmVsTnVtYmVyT2ZTZWN0aW9ucygpCi0gICAgewotICAgICAgICBsZXQgbnVt
YmVyT2ZTZWN0aW9ucyA9IDA7Ci0gICAgICAgIGlmICh0aGlzLl9jYW5QaWNrQXVkaW9UcmFja3Mo
KSkKLSAgICAgICAgICAgIG51bWJlck9mU2VjdGlvbnMrKzsKLSAgICAgICAgaWYgKHRoaXMuX2Nh
blBpY2tUZXh0VHJhY2tzKCkpCi0gICAgICAgICAgICBudW1iZXJPZlNlY3Rpb25zKys7Ci0gICAg
ICAgIHJldHVybiBudW1iZXJPZlNlY3Rpb25zOwotICAgIH0KLQotICAgIHRyYWNrc1BhbmVsVGl0
bGVGb3JTZWN0aW9uKHNlY3Rpb25JbmRleCkKLSAgICB7Ci0gICAgICAgIGlmIChzZWN0aW9uSW5k
ZXggPT0gMCAmJiB0aGlzLl9jYW5QaWNrQXVkaW9UcmFja3MoKSkKLSAgICAgICAgICAgIHJldHVy
biBVSVN0cmluZygiQXVkaW8iKTsKLSAgICAgICAgcmV0dXJuIFVJU3RyaW5nKCJTdWJ0aXRsZXMi
KTsKLSAgICB9Ci0KLSAgICB0cmFja3NQYW5lbE51bWJlck9mVHJhY2tzSW5TZWN0aW9uKHNlY3Rp
b25JbmRleCkKLSAgICB7Ci0gICAgICAgIGlmIChzZWN0aW9uSW5kZXggPT0gMCAmJiB0aGlzLl9j
YW5QaWNrQXVkaW9UcmFja3MoKSkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLl9hdWRpb1RyYWNr
cygpLmxlbmd0aDsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3RleHRUcmFja3MoKS5sZW5ndGg7Ci0g
ICAgfQotCi0gICAgdHJhY2tzUGFuZWxUaXRsZUZvclRyYWNrSW5TZWN0aW9uKHRyYWNrSW5kZXgs
IHNlY3Rpb25JbmRleCkKLSAgICB7Ci0gICAgICAgIGxldCB0cmFjazsKLSAgICAgICAgaWYgKHNl
Y3Rpb25JbmRleCA9PSAwICYmIHRoaXMuX2NhblBpY2tBdWRpb1RyYWNrcygpKQotICAgICAgICAg
ICAgdHJhY2sgPSB0aGlzLl9hdWRpb1RyYWNrcygpW3RyYWNrSW5kZXhdOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICB0cmFjayA9IHRoaXMuX3RleHRUcmFja3MoKVt0cmFja0luZGV4XTsKLQot
ICAgICAgICBpZiAodGhpcy5tZWRpYUNvbnRyb2xsZXIuaG9zdCkKLSAgICAgICAgICAgIHJldHVy
biB0aGlzLm1lZGlhQ29udHJvbGxlci5ob3N0LmRpc3BsYXlOYW1lRm9yVHJhY2sodHJhY2spOwot
ICAgICAgICByZXR1cm4gdHJhY2subGFiZWw7Ci0gICAgfQotCi0gICAgdHJhY2tzUGFuZWxJc1Ry
YWNrSW5TZWN0aW9uU2VsZWN0ZWQodHJhY2tJbmRleCwgc2VjdGlvbkluZGV4KQotICAgIHsKLSAg
ICAgICAgaWYgKHNlY3Rpb25JbmRleCA9PSAwICYmIHRoaXMuX2NhblBpY2tBdWRpb1RyYWNrcygp
KQotICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2F1ZGlvVHJhY2tzKClbdHJhY2tJbmRleF0uZW5h
YmxlZDsKLQotICAgICAgICBjb25zdCB0ZXh0VHJhY2tzID0gdGhpcy5fdGV4dFRyYWNrcygpOwot
ICAgICAgICBjb25zdCB0cmFja0l0ZW0gPSB0ZXh0VHJhY2tzW3RyYWNrSW5kZXhdOwotICAgICAg
ICBjb25zdCBob3N0ID0gdGhpcy5tZWRpYUNvbnRyb2xsZXIuaG9zdDsKLSAgICAgICAgY29uc3Qg
dHJhY2tJc1Nob3dpbmcgPSB0cmFjayA9PiB0cmFjay5tb2RlID09PSAic2hvd2luZyI7Ci0gICAg
ICAgIGNvbnN0IGFsbFRyYWNrc0Rpc2FibGVkID0gIXRleHRUcmFja3Muc29tZSh0cmFja0lzU2hv
d2luZyk7Ci0gICAgICAgIGNvbnN0IHVzZXNBdXRvbWF0aWNUcmFjayA9IGhvc3QgPyAoaG9zdC5j
YXB0aW9uRGlzcGxheU1vZGUgPT09ICJhdXRvbWF0aWMiICYmIGFsbFRyYWNrc0Rpc2FibGVkKSA6
IGZhbHNlOwotCi0gICAgICAgIGlmIChhbGxUcmFja3NEaXNhYmxlZCAmJiBob3N0ICYmIHRyYWNr
SXRlbSA9PT0gaG9zdC5jYXB0aW9uTWVudU9mZkl0ZW0gJiYgKGhvc3QuY2FwdGlvbkRpc3BsYXlN
b2RlID09PSAiZm9yY2VkLW9ubHkiIHx8IGhvc3QuY2FwdGlvbkRpc3BsYXlNb2RlID09PSAibWFu
dWFsIikpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKGhvc3QgJiYgdHJh
Y2tJdGVtID09PSBob3N0LmNhcHRpb25NZW51QXV0b21hdGljSXRlbSAmJiB1c2VzQXV0b21hdGlj
VHJhY2spCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgcmV0dXJuICF1c2VzQXV0
b21hdGljVHJhY2sgJiYgdHJhY2tJc1Nob3dpbmcodHJhY2tJdGVtKTsKLSAgICB9Ci0KLSAgICB0
cmFja3NQYW5lbFNlbGVjdGlvbkRpZENoYW5nZSh0cmFja0luZGV4LCBzZWN0aW9uSW5kZXgpCi0g
ICAgewotICAgICAgICBpZiAoc2VjdGlvbkluZGV4ID09IDAgJiYgdGhpcy5fY2FuUGlja0F1ZGlv
VHJhY2tzKCkpCi0gICAgICAgICAgICB0aGlzLl9hdWRpb1RyYWNrcygpLmZvckVhY2goKGF1ZGlv
VHJhY2ssIGluZGV4KSA9PiBhdWRpb1RyYWNrLmVuYWJsZWQgPSBpbmRleCA9PT0gdHJhY2tJbmRl
eCk7Ci0gICAgICAgIGVsc2UgaWYgKHRoaXMubWVkaWFDb250cm9sbGVyLmhvc3QpIHsKLSAgICAg
ICAgICAgIHRoaXMuX3RleHRUcmFja3MoKS5mb3JFYWNoKHRleHRUcmFjayA9PiB0ZXh0VHJhY2su
bW9kZSA9ICJkaXNhYmxlZCIpOwotICAgICAgICAgICAgdGhpcy5tZWRpYUNvbnRyb2xsZXIuaG9z
dC5zZXRTZWxlY3RlZFRleHRUcmFjayh0aGlzLl90ZXh0VHJhY2tzKClbdHJhY2tJbmRleF0pOwot
ICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHRoaXMuX3RleHRUcmFja3MoKS5mb3JFYWNoKCh0
ZXh0VHJhY2ssIGluZGV4KSA9PiB0ZXh0VHJhY2subW9kZSA9IGluZGV4ID09PSB0cmFja0luZGV4
ID8gInNob3dpbmciIDogImRpc2FibGVkIik7Ci0KLSAgICAgICAgdGhpcy5tZWRpYUNvbnRyb2xs
ZXIuY29udHJvbHMuaGlkZVRyYWNrc1BhbmVsKCk7CisgICAgICAgIHRoaXMubWVkaWFDb250cm9s
bGVyLnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoY29udHJvbCwgeworICAgICAgICAgICAg
cHJvbW90ZVN1Yk1lbnVzOiAhISh0aGlzLm1lZGlhQ29udHJvbGxlci5sYXlvdXRUcmFpdHMgJiBM
YXlvdXRUcmFpdHMubWFjT1MpLAorICAgICAgICB9KTsKICAgICB9CiAKICAgICBzeW5jQ29udHJv
bCgpCiAgICAgewotICAgICAgICB0aGlzLmNvbnRyb2wuZW5hYmxlZCA9ICh0aGlzLm1lZGlhQ29u
dHJvbGxlci5sYXlvdXRUcmFpdHMgJiBMYXlvdXRUcmFpdHMubWFjT1MgfHwgdGhpcy5tZWRpYUNv
bnRyb2xsZXIuY2FuU2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudSkgJiYgKHRoaXMuX2NhblBp
Y2tBdWRpb1RyYWNrcygpIHx8IHRoaXMuX2NhblBpY2tUZXh0VHJhY2tzKCkpOworICAgICAgICB0
aGlzLmNvbnRyb2wuZW5hYmxlZCA9IHRoaXMubWVkaWFDb250cm9sbGVyLmNhblNob3dNZWRpYUNv
bnRyb2xzQ29udGV4dE1lbnUgJiYgKHRoaXMuX2NhblBpY2tBdWRpb1RyYWNrcygpIHx8IHRoaXMu
X2NhblBpY2tUZXh0VHJhY2tzKCkpOwogICAgIH0KIAogICAgIC8vIFByaXZhdGUKQEAgLTE2Myw3
ICs4MSw3IEBAIGNsYXNzIFRyYWNrc1N1cHBvcnQgZXh0ZW5kcyBNZWRpYUNvbnRyb2xsZXJTdXBw
b3J0CiAKICAgICBfc29ydGVkVHJhY2tMaXN0KHRyYWNrcykKICAgICB7Ci0gICAgICAgIHJldHVy
biBBcnJheS5mcm9tKHRoaXMubWVkaWFDb250cm9sbGVyLmhvc3QgPyB0aGlzLm1lZGlhQ29udHJv
bGxlci5ob3N0LnNvcnRlZFRyYWNrTGlzdEZvck1lbnUodHJhY2tzKSA6IHRyYWNrcyk7CisgICAg
ICAgIHJldHVybiB0aGlzLm1lZGlhQ29udHJvbGxlci5ob3N0ID8gdGhpcy5tZWRpYUNvbnRyb2xs
ZXIuaG9zdC5zb3J0ZWRUcmFja0xpc3RGb3JNZW51KHRyYWNrcykgOiBBcnJheS5mcm9tKHRyYWNr
cyk7CiAgICAgfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggYTBjMDU0ZGM0Mzk4OTc1N2NiOTM0ZGIyMmYyMTc4ZmYwYjEx
OGI2MC4uZTc5Mjk2MWU5YTg0Yjg1NTEzYzAwOTZhZmRlMTQwYjM4N2NlNGY3NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTAw
MzIsOCArMTAwMzIsNiBAQAogCQk3MTNGMUQ1QzIzREYyNTYwMDAzRjVFRkEgLyogSlNHZXRBbmlt
YXRpb25zT3B0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0dldEFuaW1hdGlvbnNPcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzE0MTMxNDcxREM5RDZBRjAwMzM2MTA3IC8qIGZ1bGxzY3JlZW4tc3VwcG9ydC5qcyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9ICJmdWxsc2NyZWVuLXN1cHBvcnQuanMi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MTQxMzE0ODFEQzlENkVGMDAzMzYxMDcg
LyoganMtZmlsZXMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gImpzLWZpbGVzIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNzE0NkRGOEIxREVGQzJFRDAwNDZGOThCIC8qIHRyYWNrcy1w
YW5lbC5jc3MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LmNzczsgcGF0aCA9ICJ0cmFja3MtcGFuZWwuY3NzIjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNzE0NkRGOEMxREVGQzJFRDAwNDZGOThCIC8q
IHRyYWNrcy1wYW5lbC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9
ICJ0cmFja3MtcGFuZWwuanMiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MTQ5NURE
ODIwMkIwNkRDMDBBREZEMzQgLyogSlNFZmZlY3RUaW1pbmcuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNFZmZlY3RUaW1pbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3MTQ5NUREQTIwMkIwNkRFMDBBREZEMzQgLyogSlNFZmZlY3RUaW1pbmcu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFZmZlY3RUaW1pbmcuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzE0QzdDNjAxRkRBRDI3OTAwRjJCRUUxIC8qIEFu
aW1hdGlvblBsYXliYWNrRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQW5pbWF0aW9uUGxheWJhY2tFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yMjY4MCw4ICsyMjY3OCw2IEBACiAJCQkJNzE2RkEwRkMxREIyNjU5MTAwNzMyM0ND
IC8qIHRpbWUtbGFiZWwuY3NzICovLAogCQkJCTcxNkZBMEZEMURCMjY1OTEwMDczMjNDQyAvKiB0
aW1lLWxhYmVsLmpzICovLAogCQkJCTcxNkZBMEZFMURCMjY1OTEwMDczMjNDQyAvKiB0cmFja3Mt
YnV0dG9uLmpzICovLAotCQkJCTcxNDZERjhCMURFRkMyRUQwMDQ2Rjk4QiAvKiB0cmFja3MtcGFu
ZWwuY3NzICovLAotCQkJCTcxNDZERjhDMURFRkMyRUQwMDQ2Rjk4QiAvKiB0cmFja3MtcGFuZWwu
anMgKi8sCiAJCQkJOTU1MTk1OEUyNUZBOUUzMDAwRjU4Q0YwIC8qIHdhdGNob3MtYWN0aXZpdHkt
aW5kaWNhdG9yLmNzcyAqLywKIAkJCQk5NTUxOTU4RjI1RkE5RTMxMDBGNThDRjAgLyogd2F0Y2hv
cy1hY3Rpdml0eS1pbmRpY2F0b3IuanMgKi8sCiAJCQkJOTU1MTk1OEQyNUZBOUUzMDAwRjU4Q0Yw
IC8qIHdhdGNob3MtbWVkaWEtY29udHJvbHMuY3NzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKaW5kZXggODFmODAzMDU2Mjc4NjBjZmNhNTg2MTQ5NDJmZGM0MDJmOTFlODk0ZC4uNTRi
NzE0NWY2YzY1MzNhM2ZjNjAxZmYzNTM3ZTI0NDViZGIzYzdlYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCkBAIC01NTksOSArNTU5LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKEVsZW1lbnQmKSB7IH0KICNlbmRpZgogCi0jaWYgRU5B
QkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjaWYgRU5BQkxFKE1FRElBX0NPTlRS
T0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogICAgIHZpcnR1YWwgdm9p
ZCBzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KEZsb2F0UmVjdCYmLCBWZWN0b3I8TWVkaWFD
b250cm9sc0NvbnRleHRNZW51SXRlbT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNZWRpYUNv
bnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxl
dGlvbkhhbmRsZXIoTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6aW52YWxpZElEKTsgfQot
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVO
VSkKIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfkNocm9tZUNsaWVudCgpID0gZGVmYXVsdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250ZXh0LmNwcAppbmRleCBiYzgxZGMw
ZmI5YWRjNWQyYWE5Yzc4ZTI0Y2YxYjAxOTJkYzgxZDBkLi5hYzQ0NjMxZWFjZWRlZDUxNjc2MGQ1
YWQyMjBhMzJlNzNkYjc4NjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRl
eHRNZW51Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNv
bnRleHQuY3BwCkBAIC0zNSw4ICszNSw5IEBAIENvbnRleHRNZW51Q29udGV4dDo6Q29udGV4dE1l
bnVDb250ZXh0KCkKIHsKIH0KIAotQ29udGV4dE1lbnVDb250ZXh0OjpDb250ZXh0TWVudUNvbnRl
eHQoY29uc3QgSGl0VGVzdFJlc3VsdCYgaGl0VGVzdFJlc3VsdCkKLSAgICA6IG1faGl0VGVzdFJl
c3VsdChoaXRUZXN0UmVzdWx0KQorQ29udGV4dE1lbnVDb250ZXh0OjpDb250ZXh0TWVudUNvbnRl
eHQoVHlwZSB0eXBlLCBjb25zdCBIaXRUZXN0UmVzdWx0JiBoaXRUZXN0UmVzdWx0KQorICAgIDog
bV90eXBlKHR5cGUpCisgICAgLCBtX2hpdFRlc3RSZXN1bHQoaGl0VGVzdFJlc3VsdCkKICNpZiBF
TkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICAsIG1fY29udHJvbGxlZEltYWdlKG51bGxwdHIp
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250
ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udGV4dC5oCmluZGV4IGU1
ZjAwNTBiMTc1YmYzMzE1MzQwYjA0YzBiZGI0YWFlNGY3NGY0YWIuLjYxMjZjNTFhZDUzNWM3MGE2
MTMxOGZiOTVjOWRmZTM3MGM5MTQ4ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q29udGV4dE1lbnVDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVu
dUNvbnRleHQuaApAQCAtMzUsOCArMzUsMjAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBDb250ZXh0TWVudUNvbnRleHQgewogcHVibGljOgorICAgIGVudW0gY2xhc3MgVHlwZSA6IHVp
bnQ4X3QgeworICAgICAgICBDb250ZXh0TWVudSwKKyNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9M
UykKKyAgICAgICAgU2VydmljZXNNZW51LAorI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX0NPTlRS
T0xTKQorI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorICAgICAgICBN
ZWRpYUNvbnRyb2xzLAorI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01F
TlVTKQorICAgIH07CisKICAgICBDb250ZXh0TWVudUNvbnRleHQoKTsKLSAgICBDb250ZXh0TWVu
dUNvbnRleHQoY29uc3QgSGl0VGVzdFJlc3VsdCYpOworICAgIENvbnRleHRNZW51Q29udGV4dChU
eXBlLCBjb25zdCBIaXRUZXN0UmVzdWx0Jik7CisKKyAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJl
dHVybiBtX3R5cGU7IH0KIAogICAgIGNvbnN0IEhpdFRlc3RSZXN1bHQmIGhpdFRlc3RSZXN1bHQo
KSBjb25zdCB7IHJldHVybiBtX2hpdFRlc3RSZXN1bHQ7IH0KIApAQCAtNTIsNiArNjQsNyBAQCBw
dWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKKyAgICBUeXBlIG1fdHlwZSB7IFR5cGU6OkNvbnRl
eHRNZW51IH07CiAgICAgSGl0VGVzdFJlc3VsdCBtX2hpdFRlc3RSZXN1bHQ7CiAgICAgU3RyaW5n
IG1fc2VsZWN0ZWRUZXh0OwogICAgIEludFJlY3QgbV9zZWxlY3Rpb25Cb3VuZHM7CkBAIC02Myw0
ICs3NiwyMSBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK25hbWVzcGFj
ZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkNvbnRleHRN
ZW51Q29udGV4dDo6VHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAg
ICAgIFdlYkNvcmU6OkNvbnRleHRNZW51Q29udGV4dDo6VHlwZSwKKyAgICAgICAgV2ViQ29yZTo6
Q29udGV4dE1lbnVDb250ZXh0OjpUeXBlOjpDb250ZXh0TWVudQorI2lmIEVOQUJMRShTRVJWSUNF
X0NPTlRST0xTKQorICAgICAgICAsIFdlYkNvcmU6OkNvbnRleHRNZW51Q29udGV4dDo6VHlwZTo6
U2VydmljZXNNZW51CisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCisjaWYgRU5B
QkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisgICAgICAgICwgV2ViQ29yZTo6Q29u
dGV4dE1lbnVDb250ZXh0OjpUeXBlOjpNZWRpYUNvbnRyb2xzCisjZW5kaWYgLy8gRU5BQkxFKE1F
RElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdURgorCiAjZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRfTUVOVVMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKaW5kZXggZDliZDlkOGVkNGQwOWM1NDc5
NDY2OWMwZDljMzcxMjdmODllNDg2MC4uNzgzMTkzMTNmNGNiNmE0ZTFhZWI5OGZjOGRlZDQ4ODUz
NGZhMGY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVy
LmNwcApAQCAtNTAsNyArNTAsNiBAQAogI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5j
bHVkZSAiSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVu
dC5oIgotI2luY2x1ZGUgIkhpdFRlc3RSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3Vs
dC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJMb2NhbGl6
ZWRTdHJpbmdzLmgiCkBAIC0xMDMsNyArMTAyLDggQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xs
ZXI6OmhhbmRsZUNvbnRleHRNZW51RXZlbnQoRXZlbnQmIGV2ZW50KQogCiAgICAgU2V0Rm9yU2Nv
cGU8Ym9vbD4gaXNIYW5kbGluZ0NvbnRleHRNZW51RXZlbnRGb3JTY29wZShtX2lzSGFuZGxpbmdD
b250ZXh0TWVudUV2ZW50LCB0cnVlKTsKIAotICAgIG1fY29udGV4dE1lbnUgPSBtYXliZUNyZWF0
ZUNvbnRleHRNZW51KGV2ZW50KTsKKyAgICBjb25zdGV4cHIgT3B0aW9uU2V0PEhpdFRlc3RSZXF1
ZXN0OjpSZXF1ZXN0VHlwZT4gaGl0VHlwZSB7IEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSwgSGl0
VGVzdFJlcXVlc3Q6OkFjdGl2ZSwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hh
ZG93Q29udGVudCwgSGl0VGVzdFJlcXVlc3Q6OkFsbG93Q2hpbGRGcmFtZUNvbnRlbnQgfTsKKyAg
ICBtX2NvbnRleHRNZW51ID0gbWF5YmVDcmVhdGVDb250ZXh0TWVudShldmVudCwgaGl0VHlwZSwg
Q29udGV4dE1lbnVDb250ZXh0OjpUeXBlOjpDb250ZXh0TWVudSk7CiAgICAgaWYgKCFtX2NvbnRl
eHRNZW51KQogICAgICAgICByZXR1cm47CiAKQEAgLTEyMSw3ICsxMjEsMTMgQEAgdm9pZCBDb250
ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVudShFdmVudCYgZXZlbnQsIENvbnRleHRN
ZW51UHJvdmlkZXImIHAKIHsKICAgICBtX21lbnVQcm92aWRlciA9ICZwcm92aWRlcjsKIAotICAg
IG1fY29udGV4dE1lbnUgPSBtYXliZUNyZWF0ZUNvbnRleHRNZW51KGV2ZW50KTsKKyAgICBhdXRv
IGNvbnRleHRUeXBlID0gcHJvdmlkZXIuY29udGV4dE1lbnVDb250ZXh0VHlwZSgpOworCisgICAg
T3B0aW9uU2V0PEhpdFRlc3RSZXF1ZXN0OjpSZXF1ZXN0VHlwZT4gaGl0VHlwZSB7IEhpdFRlc3RS
ZXF1ZXN0OjpSZWFkT25seSwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSwgSGl0VGVzdFJlcXVlc3Q6
OkFsbG93Q2hpbGRGcmFtZUNvbnRlbnQgfTsKKyAgICBpZiAoY29udGV4dFR5cGUgPT0gQ29udGV4
dE1lbnVDb250ZXh0OjpUeXBlOjpDb250ZXh0TWVudSkKKyAgICAgICAgaGl0VHlwZS5hZGQoSGl0
VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCk7CisKKyAgICBtX2Nv
bnRleHRNZW51ID0gbWF5YmVDcmVhdGVDb250ZXh0TWVudShldmVudCwgV1RGTW92ZShoaXRUeXBl
KSwgY29udGV4dFR5cGUpOwogICAgIGlmICghbV9jb250ZXh0TWVudSkgewogICAgICAgICBjbGVh
ckNvbnRleHRNZW51KCk7CiAgICAgICAgIHJldHVybjsKQEAgLTEzNSw3ICsxNDEsNyBAQCB2b2lk
IENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2ZW50JiBldmVudCwgQ29u
dGV4dE1lbnVQcm92aWRlciYgcAogICAgIHNob3dDb250ZXh0TWVudShldmVudCk7CiB9CiAKLXN0
ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudT4gQ29udGV4dE1lbnVDb250cm9sbGVyOjptYXliZUNy
ZWF0ZUNvbnRleHRNZW51KEV2ZW50JiBldmVudCkKK3N0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVu
dT4gQ29udGV4dE1lbnVDb250cm9sbGVyOjptYXliZUNyZWF0ZUNvbnRleHRNZW51KEV2ZW50JiBl
dmVudCwgT3B0aW9uU2V0PEhpdFRlc3RSZXF1ZXN0OjpSZXF1ZXN0VHlwZT4gaGl0VHlwZSwgQ29u
dGV4dE1lbnVDb250ZXh0OjpUeXBlIGNvbnRleHRUeXBlKQogewogICAgIGlmICghaXM8TW91c2VF
dmVudD4oZXZlbnQpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTE0OCwxOSArMTU0LDE4
IEBAIHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudT4gQ29udGV4dE1lbnVDb250cm9sbGVyOjpt
YXliZUNyZWF0ZUNvbnRleHRNZW51KEV2ZW50CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKLSAgICBjb25zdGV4cHIgT3B0aW9uU2V0PEhpdFRlc3RSZXF1ZXN0OjpS
ZXF1ZXN0VHlwZT4gaGl0VHlwZSB7IEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSwgSGl0VGVzdFJl
cXVlc3Q6OkFjdGl2ZSwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29u
dGVudCwgSGl0VGVzdFJlcXVlc3Q6OkFsbG93Q2hpbGRGcmFtZUNvbnRlbnQgfTsKLSAgICBhdXRv
IHJlc3VsdCA9IGZyYW1lLT5ldmVudEhhbmRsZXIoKS5oaXRUZXN0UmVzdWx0QXRQb2ludChtb3Vz
ZUV2ZW50LmFic29sdXRlTG9jYXRpb24oKSwgaGl0VHlwZSk7CisgICAgYXV0byByZXN1bHQgPSBm
cmFtZS0+ZXZlbnRIYW5kbGVyKCkuaGl0VGVzdFJlc3VsdEF0UG9pbnQobW91c2VFdmVudC5hYnNv
bHV0ZUxvY2F0aW9uKCksIFdURk1vdmUoaGl0VHlwZSkpOwogICAgIGlmICghcmVzdWx0LmlubmVy
Tm9uU2hhcmVkTm9kZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIG1fY29udGV4
dCA9IENvbnRleHRNZW51Q29udGV4dChyZXN1bHQpOworICAgIG1fY29udGV4dCA9IENvbnRleHRN
ZW51Q29udGV4dChjb250ZXh0VHlwZSwgcmVzdWx0KTsKIAogICAgIHJldHVybiBtYWtlVW5pcXVl
PENvbnRleHRNZW51PigpOwogfQogCiB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0Nv
bnRleHRNZW51KEV2ZW50JiBldmVudCkKIHsKLSAgICBpZiAobV9wYWdlLmluc3BlY3RvckNvbnRy
b2xsZXIoKS5lbmFibGVkKCkpCisgICAgaWYgKCghbV9tZW51UHJvdmlkZXIgfHwgbV9tZW51UHJv
dmlkZXItPmNvbnRleHRNZW51Q29udGV4dFR5cGUoKSA9PSBDb250ZXh0TWVudUNvbnRleHQ6OlR5
cGU6OkNvbnRleHRNZW51KSAmJiBtX3BhZ2UuaW5zcGVjdG9yQ29udHJvbGxlcigpLmVuYWJsZWQo
KSkKICAgICAgICAgYWRkSW5zcGVjdEVsZW1lbnRJdGVtKCk7CiAKICAgICBldmVudC5zZXREZWZh
dWx0SGFuZGxlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVu
dUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVy
LmgKaW5kZXggNDA0NzkzNThmZmI3ZTJmZTUyMzViNjg0ODM4MDVkODRjMjkwZDY5MC4uYzBjZDQ1
NTM3ZDRmZTU2Y2Y5ODBhNWEyNmNkYjI4NDBjN2Y0ODhlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5oCkBAIC0yOSwxMiArMjksMTUgQEAKIAogI2luY2x1
ZGUgIkNvbnRleHRNZW51Q29udGV4dC5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51SXRlbS5oIgor
I2luY2x1ZGUgIkhpdFRlc3RSZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvbnRleHRNZW51Q2xpZW50OwogY2xhc3Mg
Q29udGV4dE1lbnVQcm92aWRlcjsKIGNsYXNzIEV2ZW50OworY2xhc3MgSGl0VGVzdFJlc3VsdDsK
IGNsYXNzIFBhZ2U7CiAKIGNsYXNzIENvbnRleHRNZW51Q29udHJvbGxlciB7CkBAIC02Nyw3ICs3
MCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIHN0ZDo6dW5pcXVlX3B0cjxD
b250ZXh0TWVudT4gbWF5YmVDcmVhdGVDb250ZXh0TWVudShFdmVudCYpOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxDb250ZXh0TWVudT4gbWF5YmVDcmVhdGVDb250ZXh0TWVudShFdmVudCYsIE9wdGlv
blNldDxIaXRUZXN0UmVxdWVzdDo6UmVxdWVzdFR5cGU+IGhpdFR5cGUsIENvbnRleHRNZW51Q29u
dGV4dDo6VHlwZSk7CiAgICAgdm9pZCBzaG93Q29udGV4dE1lbnUoRXZlbnQmKTsKICAgICAKICAg
ICB2b2lkIGFwcGVuZEl0ZW0oQ29udGV4dE1lbnVJdGVtJiwgQ29udGV4dE1lbnUqIHBhcmVudE1l
bnUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudVByb3ZpZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51UHJvdmlkZXIuaAppbmRleCBlZmRj
NDc0NmQxYzk4NjEwMjY4ZmViMWU4ZTViMWYyNGNjZDA0MDMxLi4yM2JlZDY4NTk0YWJhMmY0MGIz
NzQ3YTgxMzVkNTNiZTgxNjljYWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnRleHRNZW51UHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51
UHJvdmlkZXIuaApAQCAtMzAsNiArMzAsOSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJM
RShDT05URVhUX01FTlVTKQorCisjaW5jbHVkZSAiQ29udGV4dE1lbnVDb250ZXh0LmgiCiAjaW5j
bHVkZSAiQ29udGV4dE1lbnVJdGVtLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIApA
QCAtNDQsNiArNDcsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBvcHVsYXRlQ29udGV4
dE1lbnUoQ29udGV4dE1lbnUqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNvbnRleHRNZW51SXRl
bVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGNvbnRleHRNZW51Q2xlYXJlZCgpID0gMDsKKyAgICB2aXJ0dWFsIENv
bnRleHRNZW51Q29udGV4dDo6VHlwZSBjb250ZXh0TWVudUNvbnRleHRUeXBlKCkgeyByZXR1cm4g
Q29udGV4dE1lbnVDb250ZXh0OjpUeXBlOjpDb250ZXh0TWVudTsgfTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShDT05URVhUX01FTlVTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaAppbmRl
eCAxYTIxM2YzZWMxMzg0NTc2MzMyYjFiZGM1ODQ3MTE2MGM5MDRmZjUwLi45YWIyZTZhNmRkYjBk
ZGU2MTg2ZTE1YTRmMzY4MzYyNTkyZjU0NTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL01lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL01lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaApAQCAtMjUsNyArMjUsNyBAQAogCiAj
cHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQor
I2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhU
TUVOVSkKIAogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KQEAgLTQwLDcgKzQwLDcgQEAgc3RydWN0IE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0g
ewogICAgIElEIGlkIHsgaW52YWxpZElEIH07CiAgICAgU3RyaW5nIHRpdGxlOwogICAgIFN0cmlu
ZyBpY29uOwotICAgIGJvb2wgaXNDaGVja2VkIHsgZmFsc2UgfTsKKyAgICBib29sIGNoZWNrZWQg
eyBmYWxzZSB9OwogICAgIFZlY3RvcjxNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiBjaGls
ZHJlbjsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXIm
KSBjb25zdDsKQEAgLTUzLDcgKzUzLDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJ
dGVtOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGlkOwog
ICAgIGVuY29kZXIgPDwgdGl0bGU7CiAgICAgZW5jb2RlciA8PCBpY29uOwotICAgIGVuY29kZXIg
PDwgaXNDaGVja2VkOworICAgIGVuY29kZXIgPDwgY2hlY2tlZDsKICAgICBlbmNvZGVyIDw8IGNo
aWxkcmVuOwogfQogCkBAIC02OSwxNCArNjksMTQgQEAgT3B0aW9uYWw8TWVkaWFDb250cm9sc0Nv
bnRleHRNZW51SXRlbT4gTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6ZGVjb2RlKERlY28K
ICAgICBERUNPREUoaWQsIElEKTsKICAgICBERUNPREUodGl0bGUsIFN0cmluZyk7CiAgICAgREVD
T0RFKGljb24sIFN0cmluZyk7Ci0gICAgREVDT0RFKGlzQ2hlY2tlZCwgYm9vbCk7CisgICAgREVD
T0RFKGNoZWNrZWQsIGJvb2wpOwogICAgIERFQ09ERShjaGlsZHJlbiwgVmVjdG9yPE1lZGlhQ29u
dHJvbHNDb250ZXh0TWVudUl0ZW0+KTsKIAogI3VuZGVmIERFQ09ERQogCi0gICAgcmV0dXJuIHt7
IFdURk1vdmUoKmlkKSwgV1RGTW92ZSgqdGl0bGUpLCBXVEZNb3ZlKCppY29uKSwgV1RGTW92ZSgq
aXNDaGVja2VkKSwgV1RGTW92ZSgqY2hpbGRyZW4pIH19OworICAgIHJldHVybiB7eyBXVEZNb3Zl
KCppZCksIFdURk1vdmUoKnRpdGxlKSwgV1RGTW92ZSgqaWNvbiksIFdURk1vdmUoKmNoZWNrZWQp
LCBXVEZNb3ZlKCpjaGlsZHJlbikgfX07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAot
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVO
VSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uY3BwCmluZGV4IDVh
ZTAyNWU5MTgwYzVkZmIyMTk2MmUxN2YxOWU2NzA0ZDVkNmQ0MjUuLjA2OTU2MmQyM2NjOWNjNDli
Njc5OTk3NGVkZGMzZGEzYzZmYjU4YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0NvbnRleHRNZW51SXRlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29u
dGV4dE1lbnVJdGVtLmNwcApAQCAtMzgsMjYgKzM4LDI5IEBAIENvbnRleHRNZW51SXRlbTo6Q29u
dGV4dE1lbnVJdGVtKENvbnRleHRNZW51SXRlbVR5cGUgdHlwZSwgQ29udGV4dE1lbnVBY3Rpb24g
YWN0CiAgICAgLCBtX3RpdGxlKHRpdGxlKQogICAgICwgbV9lbmFibGVkKHRydWUpCiAgICAgLCBt
X2NoZWNrZWQoZmFsc2UpCisgICAgLCBtX2luZGVudGF0aW9uTGV2ZWwoMCkKIHsKICAgICBpZiAo
c3ViTWVudSkKICAgICAgICAgc2V0U3ViTWVudShzdWJNZW51KTsKIH0KIAotQ29udGV4dE1lbnVJ
dGVtOjpDb250ZXh0TWVudUl0ZW0oQ29udGV4dE1lbnVJdGVtVHlwZSB0eXBlLCBDb250ZXh0TWVu
dUFjdGlvbiBhY3Rpb24sIGNvbnN0IFN0cmluZyYgdGl0bGUsIGJvb2wgZW5hYmxlZCwgYm9vbCBj
aGVja2VkKQorQ29udGV4dE1lbnVJdGVtOjpDb250ZXh0TWVudUl0ZW0oQ29udGV4dE1lbnVJdGVt
VHlwZSB0eXBlLCBDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvbnN0IFN0cmluZyYgdGl0bGUs
IGJvb2wgZW5hYmxlZCwgYm9vbCBjaGVja2VkLCB1bnNpZ25lZCBpbmRlbnRhdGlvbkxldmVsKQog
ICAgIDogbV90eXBlKHR5cGUpCiAgICAgLCBtX2FjdGlvbihhY3Rpb24pCiAgICAgLCBtX3RpdGxl
KHRpdGxlKQogICAgICwgbV9lbmFibGVkKGVuYWJsZWQpCiAgICAgLCBtX2NoZWNrZWQoY2hlY2tl
ZCkKKyAgICAsIG1faW5kZW50YXRpb25MZXZlbChpbmRlbnRhdGlvbkxldmVsKQogewogfQogICAg
ICAgICAKLUNvbnRleHRNZW51SXRlbTo6Q29udGV4dE1lbnVJdGVtKENvbnRleHRNZW51QWN0aW9u
IGFjdGlvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgYm9vbCBlbmFibGVkLCBib29sIGNoZWNrZWQs
IGNvbnN0IFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+JiBzdWJNZW51SXRlbXMpCitDb250ZXh0TWVu
dUl0ZW06OkNvbnRleHRNZW51SXRlbShDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvbnN0IFN0
cmluZyYgdGl0bGUsIGJvb2wgZW5hYmxlZCwgYm9vbCBjaGVja2VkLCBjb25zdCBWZWN0b3I8Q29u
dGV4dE1lbnVJdGVtPiYgc3ViTWVudUl0ZW1zLCB1bnNpZ25lZCBpbmRlbnRhdGlvbkxldmVsKQog
ICAgIDogbV90eXBlKFN1Ym1lbnVUeXBlKQogICAgICwgbV9hY3Rpb24oYWN0aW9uKQogICAgICwg
bV90aXRsZSh0aXRsZSkKICAgICAsIG1fZW5hYmxlZChlbmFibGVkKQogICAgICwgbV9jaGVja2Vk
KGNoZWNrZWQpCisgICAgLCBtX2luZGVudGF0aW9uTGV2ZWwoaW5kZW50YXRpb25MZXZlbCkKICAg
ICAsIG1fc3ViTWVudUl0ZW1zKHN1Yk1lbnVJdGVtcykKIHsKIH0KQEAgLTY3LDYgKzcwLDcgQEAg
Q29udGV4dE1lbnVJdGVtOjpDb250ZXh0TWVudUl0ZW0oKQogICAgICwgbV9hY3Rpb24oQ29udGV4
dE1lbnVJdGVtVGFnTm9BY3Rpb24pCiAgICAgLCBtX2VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2No
ZWNrZWQoZmFsc2UpCisgICAgLCBtX2luZGVudGF0aW9uTGV2ZWwoMCkKIHsKIH0KIApAQCAtMTA5
LDYgKzExMywxNiBAQCBDb250ZXh0TWVudUFjdGlvbiBDb250ZXh0TWVudUl0ZW06OmFjdGlvbigp
IGNvbnN0CiAgICAgcmV0dXJuIG1fYWN0aW9uOwogfQogCit2b2lkIENvbnRleHRNZW51SXRlbTo6
c2V0SW5kZW50YXRpb25MZXZlbCh1bnNpZ25lZCBpbmRlbnRhdGlvbkxldmVsKQoreworICAgIG1f
aW5kZW50YXRpb25MZXZlbCA9IGluZGVudGF0aW9uTGV2ZWw7Cit9CisKK3Vuc2lnbmVkIENvbnRl
eHRNZW51SXRlbTo6aW5kZW50YXRpb25MZXZlbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faW5k
ZW50YXRpb25MZXZlbDsKK30KKwogdm9pZCBDb250ZXh0TWVudUl0ZW06OnNldENoZWNrZWQoYm9v
bCBjaGVja2VkKQogewogICAgIG1fY2hlY2tlZCA9IGNoZWNrZWQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCmluZGV4IGRhMWEwYWU3MmJhMzQyYTMzOWNhMTMxMWNh
N2Y5NTZiYzhhYjNhMTUuLmFjNmU5ZDY3OTA4MjNmYWZjNzQyMWJhODQwNDkzNGIwZDZkZmU0ZGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCkBAIC0xNjcsNyAr
MTY3LDcgQEAgY2xhc3MgQ29udGV4dE1lbnVJdGVtIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBDb250ZXh0TWVudUl0ZW0oQ29udGV4
dE1lbnVJdGVtVHlwZSwgQ29udGV4dE1lbnVBY3Rpb24sIGNvbnN0IFN0cmluZyYsIENvbnRleHRN
ZW51KiBzdWJNZW51ID0gMCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgQ29udGV4dE1lbnVJdGVtKENv
bnRleHRNZW51SXRlbVR5cGUsIENvbnRleHRNZW51QWN0aW9uLCBjb25zdCBTdHJpbmcmLCBib29s
IGVuYWJsZWQsIGJvb2wgY2hlY2tlZCk7CisgICAgV0VCQ09SRV9FWFBPUlQgQ29udGV4dE1lbnVJ
dGVtKENvbnRleHRNZW51SXRlbVR5cGUsIENvbnRleHRNZW51QWN0aW9uLCBjb25zdCBTdHJpbmcm
LCBib29sIGVuYWJsZWQsIGJvb2wgY2hlY2tlZCwgdW5zaWduZWQgaW5kZW50YXRpb25MZXZlbCA9
IDApOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgfkNvbnRleHRNZW51SXRlbSgpOwogCkBAIC0xODMs
OSArMTgzLDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEVuYWJsZWQoYm9vbCA9IHRydWUpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZW5hYmxlZCgpIGNvbnN0OwogCisgICAgdm9pZCBzZXRJ
bmRlbnRhdGlvbkxldmVsKHVuc2lnbmVkKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBp
bmRlbnRhdGlvbkxldmVsKCkgY29uc3Q7CisKICAgICB2b2lkIHNldFN1Yk1lbnUoQ29udGV4dE1l
bnUqKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIENvbnRleHRNZW51SXRlbShDb250ZXh0TWVudUFj
dGlvbiwgY29uc3QgU3RyaW5nJiwgYm9vbCBlbmFibGVkLCBib29sIGNoZWNrZWQsIGNvbnN0IFZl
Y3RvcjxDb250ZXh0TWVudUl0ZW0+JiBzdWJNZW51SXRlbXMpOworICAgIFdFQkNPUkVfRVhQT1JU
IENvbnRleHRNZW51SXRlbShDb250ZXh0TWVudUFjdGlvbiwgY29uc3QgU3RyaW5nJiwgYm9vbCBl
bmFibGVkLCBib29sIGNoZWNrZWQsIGNvbnN0IFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+JiBzdWJN
ZW51SXRlbXMsIHVuc2lnbmVkIGluZGVudGF0aW9uTGV2ZWwgPSAwKTsKICAgICBDb250ZXh0TWVu
dUl0ZW0oKTsKIAogICAgIGJvb2wgaXNOdWxsKCkgY29uc3Q7CkBAIC0yMDAsNiArMjAzLDcgQEAg
cHJpdmF0ZToKICAgICBTdHJpbmcgbV90aXRsZTsKICAgICBib29sIG1fZW5hYmxlZDsKICAgICBi
b29sIG1fY2hlY2tlZDsKKyAgICB1bnNpZ25lZCBtX2luZGVudGF0aW9uTGV2ZWw7CiAgICAgVmVj
dG9yPENvbnRleHRNZW51SXRlbT4gbV9zdWJNZW51SXRlbXM7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggNDYzZWJhMDZjZDI5OTFmYWZmMTdh
MzRjMWVkMDk3YjFkNzFlMWJmOC4uZjE1NGI1ZjVhM2Q3M2U1MDc4MTdjYjkwYjY4ODlmMTA1ZTc1
ZDM3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAt
OTUsNiArOTUsMTAgQEAKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogCisj
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvUmVu
ZGVyVGhlbWVNYWNBZGRpdGlvbnMuY3BwPgorI2VuZGlmCisKIC8vIEZJWE1FOiBUaGlzIHNob3Vs
ZCBnbyBpbnRvIGFuIFNQSS5oIGZpbGUgaW4gdGhlIHNwaSBkaXJlY3RvcnkuCiBAaW50ZXJmYWNl
IE5TVGV4dEZpZWxkQ2VsbCAoKQogLSAoQ0ZEaWN0aW9uYXJ5UmVmKV9jb3JlVUlEcmF3T3B0aW9u
c1dpdGhGcmFtZTooTlNSZWN0KWNlbGxGcmFtZSBpblZpZXc6KE5TVmlldyAqKWNvbnRyb2xWaWV3
IGluY2x1ZGVGb2N1czooQk9PTClpbmNsdWRlRm9jdXM7CkBAIC0zMjQsOSArMzI4LDE0IEBAIFN0
cmluZyBSZW5kZXJUaGVtZU1hYzo6bWVkaWFDb250cm9sc1NjcmlwdCgpCiAgICAgaWYgKFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkubW9kZXJuTWVkaWFDb250cm9sc0Vu
YWJsZWQoKSkgewogICAgICAgICBpZiAobV9tZWRpYUNvbnRyb2xzU2NyaXB0LmlzRW1wdHkoKSkg
ewogICAgICAgICAgICAgTlNCdW5kbGUgKmJ1bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JDbGFz
czpbV2ViQ29yZVJlbmRlclRoZW1lQnVuZGxlIGNsYXNzXV07Ci0gICAgICAgICAgICBOU1N0cmlu
ZyAqbG9jYWxpemVkU3RyaW5ncyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoQ29udGVudHNPZkZpbGU6
W2J1bmRsZSBwYXRoRm9yUmVzb3VyY2U6QCJtb2Rlcm4tbWVkaWEtY29udHJvbHMtbG9jYWxpemVk
LXN0cmluZ3MiIG9mVHlwZTpAImpzIl0gZW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmcgZXJy
b3I6bmlsXTsKLSAgICAgICAgICAgIE5TU3RyaW5nICpzY3JpcHQgPSBbTlNTdHJpbmcgc3RyaW5n
V2l0aENvbnRlbnRzT2ZGaWxlOltidW5kbGUgcGF0aEZvclJlc291cmNlOkAibW9kZXJuLW1lZGlh
LWNvbnRyb2xzIiBvZlR5cGU6QCJqcyIgaW5EaXJlY3Rvcnk6QCJtb2Rlcm4tbWVkaWEtY29udHJv
bHMiXSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZyBlcnJvcjpuaWxdOwotICAgICAgICAg
ICAgbV9tZWRpYUNvbnRyb2xzU2NyaXB0ID0gbWFrZVN0cmluZyhTdHJpbmcgeyBsb2NhbGl6ZWRT
dHJpbmdzIH0sIFN0cmluZyB7IHNjcmlwdCB9KTsKKworICAgICAgICAgICAgU3RyaW5nQnVpbGRl
ciBzY3JpcHRCdWlsZGVyOworICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQoW05TU3Ry
aW5nIHN0cmluZ1dpdGhDb250ZW50c09mRmlsZTpbYnVuZGxlIHBhdGhGb3JSZXNvdXJjZTpAIm1v
ZGVybi1tZWRpYS1jb250cm9scy1sb2NhbGl6ZWQtc3RyaW5ncyIgb2ZUeXBlOkAianMiXSBlbmNv
ZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZyBlcnJvcjpuaWxdKTsKKyAgICAgICAgICAgIHNjcmlw
dEJ1aWxkZXIuYXBwZW5kKFtOU1N0cmluZyBzdHJpbmdXaXRoQ29udGVudHNPZkZpbGU6W2J1bmRs
ZSBwYXRoRm9yUmVzb3VyY2U6QCJtb2Rlcm4tbWVkaWEtY29udHJvbHMiIG9mVHlwZTpAImpzIiBp
bkRpcmVjdG9yeTpAIm1vZGVybi1tZWRpYS1jb250cm9scyJdIGVuY29kaW5nOk5TVVRGOFN0cmlu
Z0VuY29kaW5nIGVycm9yOm5pbF0pOworI2lmIGRlZmluZWQoUmVuZGVyVGhlbWVNYWNBZGRpdGlv
bnNfbWVkaWFDb250cm9sc1NjcmlwdCkKKyAgICAgICAgICAgIFJlbmRlclRoZW1lTWFjQWRkaXRp
b25zX21lZGlhQ29udHJvbHNTY3JpcHQKKyNlbmRpZgorICAgICAgICAgICAgbV9tZWRpYUNvbnRy
b2xzU2NyaXB0ID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpOwogICAgICAgICB9CiAgICAgICAg
IHJldHVybiBtX21lZGlhQ29udHJvbHNTY3JpcHQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db250ZXh0TWVudUNvbnRleHREYXRhLmNwcAppbmRleCA4NWY2NTQ3YWE0Yzc0NGNk
YzdkNjEwMDg1NTQ2NGZjY2I0Y2UwZDA5Li44YjAzYThmYTQ3NTAzN2U0NjYxMThjN2Y1OWYwMmEx
YWMwMjZhMGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db250ZXh0TWVudUNv
bnRleHREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db250ZXh0TWVudUNvbnRl
eHREYXRhLmNwcApAQCAtMzAsNyArMzAsNiBAQAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQog
CiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9D
b250ZXh0TWVudUNvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ2LDkgKzQ1LDkgQEAgQ29udGV4dE1lbnVDb250
ZXh0RGF0YTo6Q29udGV4dE1lbnVDb250ZXh0RGF0YSgpCiAKIENvbnRleHRNZW51Q29udGV4dERh
dGE6OkNvbnRleHRNZW51Q29udGV4dERhdGEoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIG1lbnVM
b2NhdGlvbiwgY29uc3QgVmVjdG9yPFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIG1l
bnVJdGVtcywgY29uc3QgQ29udGV4dE1lbnVDb250ZXh0JiBjb250ZXh0KQogI2lmIEVOQUJMRShT
RVJWSUNFX0NPTlRST0xTKQotICAgIDogbV90eXBlKGNvbnRleHQuY29udHJvbGxlZEltYWdlKCkg
PyBUeXBlOjpTZXJ2aWNlc01lbnUgOiBUeXBlOjpDb250ZXh0TWVudSkKKyAgICA6IG1fdHlwZShj
b250ZXh0LmNvbnRyb2xsZWRJbWFnZSgpID8gVHlwZTo6U2VydmljZXNNZW51IDogY29udGV4dC50
eXBlKCkpCiAjZWxzZQotICAgIDogbV90eXBlKFR5cGU6OkNvbnRleHRNZW51KQorICAgIDogbV90
eXBlKGNvbnRleHQudHlwZSgpKQogI2VuZGlmCiAgICAgLCBtX21lbnVMb2NhdGlvbihtZW51TG9j
YXRpb24pCiAgICAgLCBtX21lbnVJdGVtcyhtZW51SXRlbXMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Db250ZXh0TWVudUNvbnRleHREYXRhLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Db250ZXh0TWVudUNvbnRleHREYXRhLmgKaW5kZXggMWQ5NTlhNjg2OThhOTkyY2Q4ZDk3
MmQzMmE5OGQ2YzAwNzM1NDQwNC4uNGY3YjdhNjMxZmM1NzI0OWRjYTczZDJjYTk5Y2RhMGMzODNh
ZGNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0
RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEu
aApAQCAtMjgsOSArMjgsOSBAQAogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAKLSNpbmNs
dWRlICJTaGFyZWFibGVCaXRtYXAuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudUl0ZW1EYXRh
LmgiCiAjaW5jbHVkZSAiV2ViSGl0VGVzdFJlc3VsdERhdGEuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0NvbnRleHRNZW51Q29udGV4dC5oPgogI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5h
bWVzcGFjZSBJUEMgewpAQCAtMzgsMTggKzM4LDExIEBAIGNsYXNzIERlY29kZXI7CiBjbGFzcyBF
bmNvZGVyOwogfQogCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBDb250ZXh0TWVudUNvbnRl
eHQ7Ci19Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBDb250ZXh0TWVudUNvbnRleHRE
YXRhIHsKIHB1YmxpYzoKLSAgICBlbnVtIGNsYXNzIFR5cGUgOiBib29sIHsKLSAgICAgICAgQ29u
dGV4dE1lbnUsCi0gICAgICAgIFNlcnZpY2VzTWVudSwKLSAgICB9OworICAgIHVzaW5nIFR5cGUg
PSBXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRleHQ6OlR5cGU7CiAKICAgICBDb250ZXh0TWVudUNv
bnRleHREYXRhKCk7CiAgICAgQ29udGV4dE1lbnVDb250ZXh0RGF0YShjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgbWVudUxvY2F0aW9uLCBjb25zdCBWZWN0b3I8V2ViS2l0OjpXZWJDb250ZXh0TWVu
dUl0ZW1EYXRhPiYgbWVudUl0ZW1zLCBjb25zdCBXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRleHQm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURh
dGEuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5jcHAK
aW5kZXggODk0NmMzNTUxNTIzZDg1NjM0ZDk2OWQ0NDM5ODdjZWQ5NjJiMzZhOC4uMGM1ZGM3OTU2
YThlMzE2NjQwOGIwMDJlMDA1ZjdiNTRiNzA2NWViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5jcHAKQEAgLTQyLDI1ICs0MiwyOCBAQCBXZWJD
b250ZXh0TWVudUl0ZW1EYXRhOjpXZWJDb250ZXh0TWVudUl0ZW1EYXRhKCkKICAgICAsIG1fYWN0
aW9uKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ05vQWN0aW9uKQogICAgICwgbV9lbmFibGVk
KHRydWUpCiAgICAgLCBtX2NoZWNrZWQoZmFsc2UpCisgICAgLCBtX2luZGVudGF0aW9uTGV2ZWwo
MCkKIHsKIH0KIAotV2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6V2ViQ29udGV4dE1lbnVJdGVtRGF0
YShXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UeXBlIHR5cGUsIFdlYkNvcmU6OkNvbnRleHRNZW51
QWN0aW9uIGFjdGlvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgYm9vbCBlbmFibGVkLCBib29sIGNo
ZWNrZWQpCitXZWJDb250ZXh0TWVudUl0ZW1EYXRhOjpXZWJDb250ZXh0TWVudUl0ZW1EYXRhKFdl
YkNvcmU6OkNvbnRleHRNZW51SXRlbVR5cGUgdHlwZSwgV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rp
b24gYWN0aW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBib29sIGVuYWJsZWQsIGJvb2wgY2hlY2tl
ZCwgdW5zaWduZWQgaW5kZW50YXRpb25MZXZlbCkKICAgICA6IG1fdHlwZSh0eXBlKQogICAgICwg
bV9hY3Rpb24oYWN0aW9uKQogICAgICwgbV90aXRsZSh0aXRsZSkKICAgICAsIG1fZW5hYmxlZChl
bmFibGVkKQogICAgICwgbV9jaGVja2VkKGNoZWNrZWQpCisgICAgLCBtX2luZGVudGF0aW9uTGV2
ZWwoaW5kZW50YXRpb25MZXZlbCkKIHsKICAgICBBU1NFUlQodHlwZSA9PSBXZWJDb3JlOjpBY3Rp
b25UeXBlIHx8IHR5cGUgPT0gV2ViQ29yZTo6Q2hlY2thYmxlQWN0aW9uVHlwZSB8fCB0eXBlID09
IFdlYkNvcmU6OlNlcGFyYXRvclR5cGUpOwogfQogCi1XZWJDb250ZXh0TWVudUl0ZW1EYXRhOjpX
ZWJDb250ZXh0TWVudUl0ZW1EYXRhKFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwg
Y29uc3QgU3RyaW5nJiB0aXRsZSwgYm9vbCBlbmFibGVkLCBjb25zdCBWZWN0b3I8V2ViQ29udGV4
dE1lbnVJdGVtRGF0YT4mIHN1Ym1lbnUpCitXZWJDb250ZXh0TWVudUl0ZW1EYXRhOjpXZWJDb250
ZXh0TWVudUl0ZW1EYXRhKFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY29uc3Qg
U3RyaW5nJiB0aXRsZSwgYm9vbCBlbmFibGVkLCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJ
dGVtRGF0YT4mIHN1Ym1lbnUsIHVuc2lnbmVkIGluZGVudGF0aW9uTGV2ZWwpCiAgICAgOiBtX3R5
cGUoV2ViQ29yZTo6U3VibWVudVR5cGUpCiAgICAgLCBtX2FjdGlvbihhY3Rpb24pCiAgICAgLCBt
X3RpdGxlKHRpdGxlKQogICAgICwgbV9lbmFibGVkKGVuYWJsZWQpCiAgICAgLCBtX2NoZWNrZWQo
ZmFsc2UpCisgICAgLCBtX2luZGVudGF0aW9uTGV2ZWwoaW5kZW50YXRpb25MZXZlbCkKICAgICAs
IG1fc3VibWVudShzdWJtZW51KQogewogfQpAQCAtNzcsMTUgKzgwLDE2IEBAIFdlYkNvbnRleHRN
ZW51SXRlbURhdGE6OldlYkNvbnRleHRNZW51SXRlbURhdGEoY29uc3QgV2ViQ29yZTo6Q29udGV4
dE1lbnVJdGVtJiBpCiAgICAgCiAgICAgbV9lbmFibGVkID0gaXRlbS5lbmFibGVkKCk7CiAgICAg
bV9jaGVja2VkID0gaXRlbS5jaGVja2VkKCk7CisgICAgbV9pbmRlbnRhdGlvbkxldmVsID0gaXRl
bS5pbmRlbnRhdGlvbkxldmVsKCk7CiB9CiAKIENvbnRleHRNZW51SXRlbSBXZWJDb250ZXh0TWVu
dUl0ZW1EYXRhOjpjb3JlKCkgY29uc3QKIHsKICAgICBpZiAobV90eXBlICE9IFN1Ym1lbnVUeXBl
KQotICAgICAgICByZXR1cm4gQ29udGV4dE1lbnVJdGVtKG1fdHlwZSwgbV9hY3Rpb24sIG1fdGl0
bGUsIG1fZW5hYmxlZCwgbV9jaGVja2VkKTsKKyAgICAgICAgcmV0dXJuIENvbnRleHRNZW51SXRl
bShtX3R5cGUsIG1fYWN0aW9uLCBtX3RpdGxlLCBtX2VuYWJsZWQsIG1fY2hlY2tlZCwgbV9pbmRl
bnRhdGlvbkxldmVsKTsKICAgICAKICAgICBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiBzdWJNZW51
SXRlbXMgPSBjb3JlSXRlbXMobV9zdWJtZW51KTsKLSAgICByZXR1cm4gQ29udGV4dE1lbnVJdGVt
KG1fYWN0aW9uLCBtX3RpdGxlLCBtX2VuYWJsZWQsIG1fY2hlY2tlZCwgc3ViTWVudUl0ZW1zKTsK
KyAgICByZXR1cm4gQ29udGV4dE1lbnVJdGVtKG1fYWN0aW9uLCBtX3RpdGxlLCBtX2VuYWJsZWQs
IG1fY2hlY2tlZCwgc3ViTWVudUl0ZW1zLCBtX2luZGVudGF0aW9uTGV2ZWwpOwogfQogCiBBUEk6
Ok9iamVjdCogV2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6dXNlckRhdGEoKSBjb25zdApAQCAtMTA1
LDYgKzEwOSw3IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6ZW5jb2RlKElQQzo6RW5j
b2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1fdGl0bGU7CiAgICAgZW5jb2Rl
ciA8PCBtX2NoZWNrZWQ7CiAgICAgZW5jb2RlciA8PCBtX2VuYWJsZWQ7CisgICAgZW5jb2RlciA8
PCBtX2luZGVudGF0aW9uTGV2ZWw7CiAgICAgZW5jb2RlciA8PCBtX3N1Ym1lbnU7CiB9CiAKQEAg
LTEzMCw2ICsxMzUsMTAgQEAgT3B0aW9uYWw8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4gV2ViQ29u
dGV4dE1lbnVJdGVtRGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGUKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKGVuYWJsZWQpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCisgICAg
dW5zaWduZWQgaW5kZW50YXRpb25MZXZlbDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZGVu
dGF0aW9uTGV2ZWwpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCiAgICAgT3B0aW9u
YWw8VmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbURhdGE+PiBzdWJtZW51OwogICAgIGRlY29kZXIg
Pj4gc3VibWVudTsKICAgICBpZiAoIXN1Ym1lbnUpCkBAIC0xMzksMTAgKzE0OCwxMCBAQCBPcHRp
b25hbDxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhOjpkZWNv
ZGUoSVBDOjpEZWNvZGVyJiBkZQogICAgIGNhc2UgV2ViQ29yZTo6QWN0aW9uVHlwZToKICAgICBj
YXNlIFdlYkNvcmU6OlNlcGFyYXRvclR5cGU6CiAgICAgY2FzZSBXZWJDb3JlOjpDaGVja2FibGVB
Y3Rpb25UeXBlOgotICAgICAgICByZXR1cm4ge3sgdHlwZSwgYWN0aW9uLCB0aXRsZSwgZW5hYmxl
ZCwgY2hlY2tlZCB9fTsKKyAgICAgICAgcmV0dXJuIHt7IHR5cGUsIGFjdGlvbiwgdGl0bGUsIGVu
YWJsZWQsIGNoZWNrZWQsIGluZGVudGF0aW9uTGV2ZWwgfX07CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgV2ViQ29yZTo6U3VibWVudVR5cGU6Ci0gICAgICAgIHJldHVybiB7eyBhY3Rpb24sIHRp
dGxlLCBlbmFibGVkLCBXVEZNb3ZlKCpzdWJtZW51KSB9fTsKKyAgICAgICAgcmV0dXJuIHt7IGFj
dGlvbiwgdGl0bGUsIGVuYWJsZWQsIFdURk1vdmUoKnN1Ym1lbnUpLCBpbmRlbnRhdGlvbkxldmVs
IH19OwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmgKaW5kZXggNDVl
MzFhZTMzM2E3YjdhNTlmZjRjMTVkOGY1YzkzZmJjOTJlOTQ0NS4uMTU0Mjc4MmEyNzIwNzAxYTlk
M2JkYTQ5ZWVlMGM1NDAzYzVjMDFmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNv
bnRleHRNZW51SXRlbURhdGEuaApAQCAtNDUsMTQgKzQ1LDE1IEBAIGNsYXNzIFdlYkNvbnRleHRN
ZW51SXRlbURhdGEgewogcHVibGljOgogICAgIFdlYkNvbnRleHRNZW51SXRlbURhdGEoKTsKICAg
ICBXZWJDb250ZXh0TWVudUl0ZW1EYXRhKGNvbnN0IFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbSYp
OwotICAgIFdlYkNvbnRleHRNZW51SXRlbURhdGEoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVHlw
ZSwgV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24sIGNvbnN0IFN0cmluZyYgdGl0bGUsIGJvb2wg
ZW5hYmxlZCwgYm9vbCBjaGVja2VkKTsKLSAgICBXZWJDb250ZXh0TWVudUl0ZW1EYXRhKFdlYkNv
cmU6OkNvbnRleHRNZW51QWN0aW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBib29sIGVuYWJsZWQs
IGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgc3VibWVudSk7CisgICAgV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YShXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UeXBlLCBXZWJDb3Jl
OjpDb250ZXh0TWVudUFjdGlvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgYm9vbCBlbmFibGVkLCBi
b29sIGNoZWNrZWQsIHVuc2lnbmVkIGluZGVudGF0aW9uTGV2ZWwgPSAwKTsKKyAgICBXZWJDb250
ZXh0TWVudUl0ZW1EYXRhKFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uLCBjb25zdCBTdHJpbmcm
IHRpdGxlLCBib29sIGVuYWJsZWQsIGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRh
PiYgc3VibWVudSwgdW5zaWduZWQgaW5kZW50YXRpb25MZXZlbCA9IDApOwogCiAgICAgV2ViQ29y
ZTo6Q29udGV4dE1lbnVJdGVtVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAg
ICAgV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24gYWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9h
Y3Rpb247IH0KICAgICBjb25zdCBTdHJpbmcmIHRpdGxlKCkgY29uc3QgeyByZXR1cm4gbV90aXRs
ZTsgfQogICAgIGJvb2wgZW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5hYmxlZDsgfQogICAg
IGJvb2wgY2hlY2tlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hlY2tlZDsgfQorICAgIHVuc2lnbmVk
IGluZGVudGF0aW9uTGV2ZWwoKSBjb25zdCB7IHJldHVybiBtX2luZGVudGF0aW9uTGV2ZWw7IH0K
ICAgICBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIHN1Ym1lbnUoKSBjb25z
dCB7IHJldHVybiBtX3N1Ym1lbnU7IH0KICAgICAKICAgICBXZWJDb3JlOjpDb250ZXh0TWVudUl0
ZW0gY29yZSgpIGNvbnN0OwpAQCAtNjksNiArNzAsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBt
X3RpdGxlOwogICAgIGJvb2wgbV9lbmFibGVkOwogICAgIGJvb2wgbV9jaGVja2VkOworICAgIHVu
c2lnbmVkIG1faW5kZW50YXRpb25MZXZlbDsKICAgICBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVt
RGF0YT4gbV9zdWJtZW51OwogICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gbV91c2VyRGF0YTsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
UHJpdmF0ZUZvclRlc3RpbmcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oCmluZGV4IDYyZTQ2NzE0NGU5MTk0ZWIwYTY4MmEw
OGEyODRkNTk1Zjk1ZTNkOTguLmNhNDU5OTZhNzhkZTI4YTk3Mjk5NWEzMWJjNDUzYTc4ZjRlYjk1
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdQcml2YXRlRm9yVGVzdGluZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oCkBAIC02Myw2ICs2Myw5IEBAIHN0cnVj
dCBXS0FwcEJvdW5kTmF2aWdhdGlvblRlc3RpbmdEYXRhIHsKIAogLSAodm9pZClfc2V0U2hhcmVT
aGVldENvbXBsZXRlc0ltbWVkaWF0ZWx5V2l0aFJlc29sdXRpb25Gb3JUZXN0aW5nOihCT09MKXJl
c29sdmVkOwogCistICh2b2lkKV9kaWRTaG93Q29udGV4dE1lbnU7CistICh2b2lkKV9kaWREaXNt
aXNzQ29udGV4dE1lbnU7CisKIC0gKHZvaWQpX2RpZFByZXNlbnRDb250YWN0UGlja2VyOwogLSAo
dm9pZClfZGlkRGlzbWlzc0NvbnRhY3RQaWNrZXI7CiAtICh2b2lkKV9kaXNtaXNzQ29udGFjdFBp
Y2tlcldpdGhDb250YWN0czooTlNBcnJheSAqKWNvbnRhY3RzOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQppbmRleCBhZDA4
NGQ1MmYyYjg2ZWY3MDQxMWZmZjViN2M3YzRjYzBkZjdiYzc0Li41NDI2MDYwYjI1MGFmM2NhM2M2
Yjg0ZGVlMWJjNWQ1OTU1MzhkMjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQpAQCAtNzEsNiArNzEsOSBAQCAtIChO
U0RpY3Rpb25hcnkgKilfY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtOihOU1N0cmluZyAqKXVz
ZXJJbnRlcmZhY2VJdGVtCiAgICAgICAgIHJldHVybiBAeyB1c2VySW50ZXJmYWNlSXRlbTogQHsg
QCJtZXNzYWdlIjogKE5TU3RyaW5nICopbWVzc2FnZSwgQCJmb250U2l6ZSI6IEAoZm9udFNpemUp
IH0gfTsKICAgICB9CiAKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjb250ZW50cyA9IF9wYWdlLT5j
b250ZW50c09mVXNlckludGVyZmFjZUl0ZW0odXNlckludGVyZmFjZUl0ZW0pKQorICAgICAgICBy
ZXR1cm4gY29udGVudHM7CisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHJldHVybiBb
X2NvbnRlbnRWaWV3IF9jb250ZW50c09mVXNlckludGVyZmFjZUl0ZW06KE5TU3RyaW5nICopdXNl
ckludGVyZmFjZUl0ZW1dOwogI2Vsc2UKQEAgLTMwOSw2ICszMTIsMTYgQEAgLSAodm9pZClfc2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3Rpbmc6KE5T
VVJMICopdXJsIGMKICAgICB9KTsKIH0KIAorLSAodm9pZClfZGlkU2hvd0NvbnRleHRNZW51Cit7
CisgICAgLy8gRm9yIHN1YmNsYXNzZXMgdG8gb3ZlcnJpZGUuCit9CisKKy0gKHZvaWQpX2RpZERp
c21pc3NDb250ZXh0TWVudQoreworICAgIC8vIEZvciBzdWJjbGFzc2VzIHRvIG92ZXJyaWRlLgor
fQorCiAtICh2b2lkKV9kaWRQcmVzZW50Q29udGFjdFBpY2tlcgogewogICAgIC8vIEZvciBzdWJj
bGFzc2VzIHRvIG92ZXJyaWRlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2lvcy9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oCmluZGV4IDg5
MzdjODRmY2MyYTAwNjQ3MGYyYzJjOWE4NzFhN2Y5OTk1ZmE5YzMuLjkzODhhZWI0ZjE2NzE4MjJi
YzY0ZjhhZDllZWY3MDUxYTgwYTg4NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9pb3MvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdJT1MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmgK
QEAgLTY2LDggKzY2LDYgQEAKIAogLSAodm9pZClhcHBseUF1dG9jb3JyZWN0aW9uOihOU1N0cmlu
ZyAqKW5ld1N0cmluZyB0b1N0cmluZzooTlNTdHJpbmcgKilvbGRTdHJpbmcgd2l0aENvbXBsZXRp
b25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcjsKIAotLSAodm9pZClf
ZGlkU2hvd0NvbnRleHRNZW51OwotLSAodm9pZClfZGlkRGlzbWlzc0NvbnRleHRNZW51OwogLSAo
dm9pZClfZG9BZnRlclJlc2V0dGluZ1NpbmdsZVRhcEdlc3R1cmU6KGRpc3BhdGNoX2Jsb2NrX3Qp
YWN0aW9uOwogCiAtIChOU0RpY3Rpb25hcnkgKilfcHJvcGVydGllc09mTGF5ZXJXaXRoSUQ6KHVu
c2lnbmVkIGxvbmcgbG9uZylsYXllcklEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tCmluZGV4IGVlOTkwZThlNzBlY2Vi
NmYwMGJmNzIzZWVlYzc0NzEyZTQwYmVmYmIuLmQ5Yzc5OWI4ZGRkNTkxYThlYzE4YTEwNmNlMWJm
YjQ3YzcxYmI4MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3Mv
V0tXZWJWaWV3VGVzdGluZ0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
aW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0KQEAgLTE4NCwxNiArMTg0LDYgQEAgLSAoTlNTdHJp
bmcgKilmb3JtSW5wdXRMYWJlbAogICAgIHJldHVybiBbX2NvbnRlbnRWaWV3IGZvcm1JbnB1dExh
YmVsXTsKIH0KIAotLSAodm9pZClfZGlkU2hvd0NvbnRleHRNZW51Ci17Ci0gICAgLy8gRm9yIHN1
YmNsYXNzZXMgdG8gb3ZlcnJpZGUuCi19Ci0KLS0gKHZvaWQpX2RpZERpc21pc3NDb250ZXh0TWVu
dQotewotICAgIC8vIEZvciBzdWJjbGFzc2VzIHRvIG92ZXJyaWRlLgotfQotCiAtIChDR1JlY3Qp
X2lucHV0Vmlld0JvdW5kcwogewogICAgIHJldHVybiBfaW5wdXRWaWV3Qm91bmRzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdUZXN0aW5nTWFj
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdUZXN0aW5nTWFj
Lm1tCmluZGV4IGFmY2MzMWEwNzFhNGVkOTJmOTM1YjZmYzUzMDk1OWU1MmYzZjRmMzUuLjFlMDZj
OWRmYWQxYTY0MTZkMTllNmY5YzA3MDI4YjVhZTc4MDI0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3VGVzdGluZ01hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLV2ViVmlld1Rlc3RpbmdNYWMubW0KQEAgLTEx
NCw5ICsxMTQsMTEgQEAgLSAoTlNTZXQ8TlNWaWV3ICo+ICopX3BkZkhVRHMKIAogLSAoTlNNZW51
ICopX2FjdGl2ZU1lbnUKIHsKLSAgICAvLyBGSVhNRTogT25seSB0aGUgRE9NIHBhc3RlIGFjY2Vz
cyBtZW51IGlzIHN1cHBvcnRlZCBmb3Igbm93LiBJbiB0aGUgZnV0dXJlLCBpdCBjb3VsZCBiZQot
ICAgIC8vIGV4dGVuZGVkIHRvIHJlY29nbml6ZSB0aGUgcmVndWxhciBjb250ZXh0IG1lbnUgYXMg
d2VsbC4KLSAgICByZXR1cm4gX2ltcGwtPmRvbVBhc3RlTWVudSgpOworICAgIGlmIChOU01lbnUg
KmNvbnRleHRNZW51ID0gX3BhZ2UtPnBsYXRmb3JtQWN0aXZlQ29udGV4dE1lbnUoKSkKKyAgICAg
ICAgcmV0dXJuIGNvbnRleHRNZW51OworICAgIGlmIChOU01lbnUgKmRvbVBhc3RlTWVudSA9IF9p
bXBsLT5kb21QYXN0ZU1lbnUoKSkKKyAgICAgICAgcmV0dXJuIGRvbVBhc3RlTWVudTsKKyAgICBy
ZXR1cm4gbmlsOwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCmluZGV4IGM5ZDkwMmRhOGE1NTM5YWUyNTc0MmMwMWY2
ZGIxN2M1NzRlOThhNmQuLjJhOTlhNTQ1ZGVjZmY3MGRhMDZjNWViMmI5YjhjNzZjZmVlOWMwZjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNv
Y29hLm1tCkBAIC0zOSw2ICszOSw3IEBACiAjaW1wb3J0ICJTYWZlQnJvd3NpbmdXYXJuaW5nLmgi
CiAjaW1wb3J0ICJTaGFyZWRCdWZmZXJDb3B5LmgiCiAjaW1wb3J0ICJTaGFyZWRCdWZmZXJEYXRh
UmVmZXJlbmNlLmgiCisjaW1wb3J0ICJXZWJDb250ZXh0TWVudVByb3h5LmgiCiAjaW1wb3J0ICJX
ZWJQYWdlLmgiCiAjaW1wb3J0ICJXZWJQYWdlTWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlBhc3Rl
Ym9hcmRQcm94eS5oIgpAQCAtNjQyLDYgKzY0MywxNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmV2
b2tlQWNjZXNzVG9Bc3NldFNlcnZpY2VzKCkKICAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6
V2ViUHJvY2Vzczo6UmV2b2tlQWNjZXNzVG9Bc3NldFNlcnZpY2VzKCksIDApOwogfQogCitOU0Rp
Y3Rpb25hcnkgKldlYlBhZ2VQcm94eTo6Y29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtKE5TU3Ry
aW5nICp1c2VySW50ZXJmYWNlSXRlbSkKK3sKKyNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKKyAg
ICBpZiAobV9hY3RpdmVDb250ZXh0TWVudSAmJiBbdXNlckludGVyZmFjZUl0ZW0gaXNFcXVhbFRv
U3RyaW5nOkAibWVkaWFDb250cm9sc0NvbnRleHRNZW51Il0pCisgICAgICAgIHJldHVybiBAeyB1
c2VySW50ZXJmYWNlSXRlbTogbV9hY3RpdmVDb250ZXh0TWVudS0+cGxhdGZvcm1EYXRhKCkgfTsK
KyNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKKworICAgIHJldHVybiBuaWw7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCBiNmMwNzViMWE5NTkyYjFiNTM0NWFh
ZTJlMDczZTZiMjNmNWQwNjU5Li42YzRjODNkMjI1NTU5ODg1OWE1ODE3ZWQ4NzQ4Yjc2MTViZTRi
YjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0zNTUsNiArMzU1LDgg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBjcmVhdGVQ
b3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmKSA9IDA7CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVO
VVMpCiAgICAgdmlydHVhbCBSZWY8V2ViQ29udGV4dE1lbnVQcm94eT4gY3JlYXRlQ29udGV4dE1l
bnVQcm94eShXZWJQYWdlUHJveHkmLCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYsIGNvbnN0IFVz
ZXJEYXRhJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTaG93Q29udGV4dE1lbnUoKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgZGlkRGlzbWlzc0NvbnRleHRNZW51KCkgeyB9CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQpAQCAtNTI3LDkgKzUyOSw5IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEltYWdlRXh0cmFjdGlvbihjb25zdCBVUkwmIGltYWdl
VVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvblJlc3VsdCYmKT4mJiBjb21wbGV0
aW9uKSB7IGNvbXBsZXRpb24oeyB9KTsgfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVESUFfQ09O
VFJPTFNfQ09OVEVYVF9NRU5VUykKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9N
RU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAgICAgdmlydHVhbCB2b2lkIHNob3dNZWRpYUNv
bnRyb2xzQ29udGV4dE1lbnUoV2ViQ29yZTo6RmxvYXRSZWN0JiYsIFZlY3RvcjxXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1l
bnVJdGVtOjppbnZhbGlkSUQpOyB9Ci0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NP
TlRFWFRfTUVOVVMpCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVO
VVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogICAgIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2
aXJ0dWFsIHZvaWQgZGlkUGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRlc3QoY29uc3QgV2ViSGl0
VGVzdFJlc3VsdERhdGEmLCBib29sIGNvbnRlbnRQcmV2ZW50c0RlZmF1bHQsIEFQSTo6T2JqZWN0
KikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1l
bnVQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5o
CmluZGV4IDJkMmM1NzY1YzAxZjI2ODA3NDlhOGYxOTNkNjFmYjY2NmEwOGFiODYuLjFiOGZjYzg0
NjY0ZjMwOWFmZTVmNGVhY2QyOGI1NDEzYzFiMWI5MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJDb250ZXh0TWVudVByb3h5LmgKQEAgLTMzLDYgKzMzLDggQEAKICNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKK09CSkNfQ0xB
U1MgTlNNZW51OworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQ29udGV4dE1lbnVJ
dGVtOwpAQCAtNDYsNiArNDgsMTEgQEAgcHVibGljOgogCiAgICAgV2ViUGFnZVByb3h5KiBwYWdl
KCkgY29uc3QgeyByZXR1cm4gbV9wYWdlLmdldCgpOyB9CiAKKyNpZiBQTEFURk9STShDT0NPQSkK
KyAgICB2aXJ0dWFsIE5TTWVudSAqcGxhdGZvcm1NZW51KCkgY29uc3QgPSAwOworICAgIHZpcnR1
YWwgTlNBcnJheSAqcGxhdGZvcm1EYXRhKCkgY29uc3QgPSAwOworI2VuZGlmIC8vIFBMQVRGT1JN
KENPQ09BKQorCiBwcm90ZWN0ZWQ6CiAgICAgV2ViQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJv
eHkmLCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYsIGNvbnN0IFVzZXJEYXRhJik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDBiYjJjNTA0YzUwZjc3YmFi
Zjg0YmI1MDU3YTlhYTg1YjQ0YjA4OWUuLjYxNzU5Y2E4NDljNDQyNjcwNzA1MzI0OWYyYTVhZjI1
Zjk2ZDdlMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAt
ODMxNiwxNCArODMxNiwxNCBAQCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5JiBXZWJQYWdlUHJveHk6Om1lZGlhS2V5U3lzdGVtUGVybWlzcwogfQogI2VuZGlmCiAK
LSNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyNpZiBFTkFCTEUoTUVE
SUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAKIHZvaWQg
V2ViUGFnZVByb3h5OjpzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KEZsb2F0UmVjdCYmIHRh
cmdldEZyYW1lLCBWZWN0b3I8TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbT4mJiBpdGVtcywg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgcGFnZUNsaWVudCgpLnNob3dNZWRpYUNvbnRy
b2xzQ29udGV4dE1lbnUoV1RGTW92ZSh0YXJnZXRGcmFtZSksIFdURk1vdmUoaXRlbXMpLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09O
VFJPTFNfQ09OVEVYVF9NRU5VUykKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09O
VEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAKIAogdm9pZCBXZWJQYWdlUHJveHk6
OnJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3Qg
U3RyaW5nJiBvcmlnaW5TdHJpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CmluZGV4IDk3YjZkMTI5NjA2OWIxYTEwNDNkOTc0NTRhMWFjMzA0MTUwYzUyNDAuLmY3YjMzOTdk
YjZmZWM1MDlhMDgxNzIyY2U4MGUyM2ZiMzhmNWVhMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCkBAIC0xMzgsNiArMTM4LDcgQEAKICNpbmNsdWRlICJFbmRvd21lbnRT
dGF0ZVRyYWNrZXIuaCIKICNlbmRpZgogCitPQkpDX0NMQVNTIE5TTWVudTsKIE9CSkNfQ0xBU1Mg
TlNUZXh0QWx0ZXJuYXRpdmVzOwogT0JKQ19DTEFTUyBOU1ZpZXc7CiBPQkpDX0NMQVNTIF9XS1Jl
bW90ZU9iamVjdFJlZ2lzdHJ5OwpAQCAtMTYyNyw5ICsxNjI4LDkgQEAgcHVibGljOgogICAgIHZv
aWQgdXBkYXRlV2l0aEltYWdlRXh0cmFjdGlvblJlc3VsdChXZWJDb3JlOjpJbWFnZUV4dHJhY3Rp
b25SZXN1bHQmJiwgY29uc3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQmLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFBvaW50JiBsb2NhdGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHRleHRF
eGlzdHNBdExvY2F0aW9uKT4mJik7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShNRURJQV9DT05UUk9M
U19DT05URVhUX01FTlVTKQorI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVT
KSAmJiBVU0UoVUlDT05URVhUTUVOVSkKICAgICB2b2lkIHNob3dNZWRpYUNvbnRyb2xzQ29udGV4
dE1lbnUoV2ViQ29yZTo6RmxvYXRSZWN0JiYsIFZlY3RvcjxXZWJDb3JlOjpNZWRpYUNvbnRyb2xz
Q29udGV4dE1lbnVJdGVtPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok1lZGlh
Q29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4mJik7Ci0jZW5kaWYgLy8gRU5BQkxFKE1FRElB
X0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xT
X0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogCiAgICAgc3RhdGljIFdlYlBh
Z2VQcm94eSogbm9uRXBoZW1lcmFsV2ViUGFnZVByb3h5KCk7CiAKQEAgLTE4MDUsNiArMTgwNiw3
IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCisgICAgTlNN
ZW51ICpwbGF0Zm9ybUFjdGl2ZUNvbnRleHRNZW51KCkgY29uc3Q7CiAgICAgdm9pZCBwbGF0Zm9y
bURpZFNlbGVjdEl0ZW1Gcm9tQWN0aXZlQ29udGV4dE1lbnUoY29uc3QgV2ViQ29udGV4dE1lbnVJ
dGVtRGF0YSYpOwogI2VuZGlmCiAKQEAgLTE4NzgsNiArMTg4MCwxMCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBjbGVhckFwcEJvdW5kTmF2aWdhdGlvbkRhdGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgTlNEaWN0aW9uYXJ5ICpj
b250ZW50c09mVXNlckludGVyZmFjZUl0ZW0oTlNTdHJpbmcgKnVzZXJJbnRlcmZhY2VJdGVtKTsK
KyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKKwogcHJpdmF0ZToKICAgICBXZWJQYWdlUHJveHko
UGFnZUNsaWVudCYsIFdlYlByb2Nlc3NQcm94eSYsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9u
PiYmKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDg3MzE3NmQ5NTkxNmZm
MDQ4YzBiNTIyNTViZGU5OGZhOTAzMWZkNTcuLmE5MWQ5NjdmZjdlMTlkNTc0YjZmM2ViMzgxMTI1
MTFhNTJhZDcyNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KQEAgLTIyNCw5ICsyMjQsOSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJv
eHkgewogICAgIFJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oVVJMIGltYWdlVVJMLCBXZWJLaXQ6OlNo
YXJlYWJsZUJpdG1hcDo6SGFuZGxlIGltYWdlRGF0YSkgLT4gKHN0cnVjdCBXZWJDb3JlOjpJbWFn
ZUV4dHJhY3Rpb25SZXN1bHQgcmVzdWx0KSBBc3luYwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVE
SUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09O
VEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAgICAgU2hvd01lZGlhQ29udHJvbHND
b250ZXh0TWVudShXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0RnJhbWUsIFZlY3RvcjxXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiBpdGVtcykgLT4gKFdlYkNvcmU6Ok1lZGlh
Q29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEIHNlbGVjdGVkSXRlbUlEKSBBc3luYwotI2VuZGlm
IC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorI2VuZGlmIC8vIEVOQUJM
RShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKIAog
I2lmIEhBVkUoVE9VQ0hfQkFSKQogICAgIFNldElzVG91Y2hCYXJVcGRhdGVTdXByZXNzZWRGb3JI
aWRkZW5Db250ZW50RWRpdGFibGUoYm9vbCBpc1RvdWNoQmFyVXBkYXRlU3VwcmVzc2VkKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAppbmRleCAx
NGZiZTk1YTMzNWU2NjYwZGQ4ZjA4YjA0MTVlMTZlNDlmNjBjYzE0Li4yNjc4YzFhNDA0MmJkNWRj
YTcyMzk5Mjg5NGJjNTFjODI2ZGE2MmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtMjY3LDkgKzI2Nyw5IEBAIHByaXZhdGU6CiAK
ICAgICB2b2lkIHNldE1vdXNlRXZlbnRQb2xpY3koV2ViQ29yZTo6TW91c2VFdmVudFBvbGljeSkg
ZmluYWw7CiAKLSNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyNpZiBF
TkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUp
CiAgICAgdm9pZCBzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KFdlYkNvcmU6OkZsb2F0UmVj
dCYmLCBWZWN0b3I8V2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbT4mJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVt
OjpJRCk+JiYpIGZpbmFsOwotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhU
X01FTlVTKQorI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAm
JiBVU0UoVUlDT05URVhUTUVOVSkKIAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAg
ICAgdm9pZCB3cml0ZVByb21pc2VkQXR0YWNobWVudFRvUGFzdGVib2FyZChXZWJDb3JlOjpQcm9t
aXNlZEF0dGFjaG1lbnRJbmZvJiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGI5ZDg4MzVjZGVmNmFkODc3ODc0NGM2
NjRiMDJkNjgzYTI3YmMxN2UuLjU2ZDBlYjMwNjhlM2Q3MzJlNmFlNjk2N2M2MDAzY2M1NTZmZjdj
MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MubW0KQEAgLTk3NSwxMiArOTc1LDEyIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldE1vdXNl
RXZlbnRQb2xpY3koV2ViQ29yZTo6TW91c2VFdmVudFBvbGljeSBwb2xpY3kpCiAjZW5kaWYKIH0K
IAotI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorI2lmIEVOQUJMRShN
RURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKIHZvaWQg
UGFnZUNsaWVudEltcGw6OnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoRmxvYXRSZWN0JiYg
dGFyZ2V0RnJhbWUsIFZlY3RvcjxNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiYmIGl0ZW1z
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklE
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBbbV9jb250ZW50VmlldyBfc2hvd01lZGlh
Q29udHJvbHNDb250ZXh0TWVudTpXVEZNb3ZlKHRhcmdldEZyYW1lKSBpdGVtczpXVEZNb3ZlKGl0
ZW1zKSBjb21wbGV0aW9uSGFuZGxlcjpXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV07CiB9Ci0j
ZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjZW5kaWYgLy8g
RU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5V
KQogCiAjaWYgSEFWRShVSVNDUk9MTFZJRVdfQVNZTkNIUk9OT1VTX1NDUk9MTF9FVkVOVF9IQU5E
TElORykKIHZvaWQgUGFnZUNsaWVudEltcGw6OmhhbmRsZUFzeW5jaHJvbm91c0NhbmNlbGFibGVT
Y3JvbGxFdmVudChVSVNjcm9sbFZpZXcgKnNjcm9sbFZpZXcsIFVJU2Nyb2xsRXZlbnQgKnNjcm9s
bEV2ZW50LCB2b2lkICheY29tcGxldGlvbikoQk9PTCBoYW5kbGVkKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oCmluZGV4IDZj
NzA5ZDU2MmEzMmYyMTc4ZjI2N2M5Y2E5YWNmY2M2NjhkYmY2NjYuLjk3NjgzMDdiNmZlY2JjOWZl
YTk3NGM0YjRlMjU3Y2I4YzlhZWNkZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaApAQCAtMTAzLDkgKzEwMyw5IEBAIFVJ
Q29udGV4dE1lbnVJbnRlcmFjdGlvbkRlbGVnYXRlPgogLSAodm9pZClzaG93TGlua1NoZWV0Owog
LSAodm9pZClzaG93SW1hZ2VTaGVldDsKIC0gKHZvaWQpc2hvd0RhdGFEZXRlY3RvcnNVSUZvclBv
c2l0aW9uSW5mb3JtYXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb24mKXBvc2l0aW9uSW5mb3JtYXRpb247Ci0jaWYgRU5BQkxFKE1FRElBX0NPTlRST0xT
X0NPTlRFWFRfTUVOVVMpCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMp
ICYmIFVTRShVSUNPTlRFWFRNRU5VKQogLSAodm9pZClzaG93TWVkaWFDb250cm9sc0NvbnRleHRN
ZW51OihXZWJDb3JlOjpGbG9hdFJlY3QmJil0YXJnZXRGcmFtZSBpdGVtczooVmVjdG9yPFdlYkNv
cmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0+JiYpaXRlbXMgY29tcGxldGlvbkhhbmRs
ZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRN
ZW51SXRlbTo6SUQpPiYmKWNvbXBsZXRpb25IYW5kbGVyOwotI2VuZGlmIC8vIEVOQUJMRShNRURJ
QV9DT05UUk9MU19DT05URVhUX01FTlVTKQorI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9M
U19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKIC0gKHZvaWQpY2xlYW51cFNo
ZWV0OwogLSAodm9pZCl1cGRhdGVTaGVldFBvc2l0aW9uOwogLSAoUmV0YWluUHRyPE5TQXJyYXk8
X1dLRWxlbWVudEFjdGlvbiAqPj4pZGVmYXVsdEFjdGlvbnNGb3JMaW5rU2hlZXQ6KF9XS0FjdGl2
YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm87CkBAIC0xMjAsOSArMTIwLDkgQEAgVUlDb250
ZXh0TWVudUludGVyYWN0aW9uRGVsZWdhdGU+CiAKIEBpbnRlcmZhY2UgV0tBY3Rpb25TaGVldEFz
c2lzdGFudCAoV0tUZXN0aW5nKQogLSAoTlNBcnJheSAqKWN1cnJlbnRseUF2YWlsYWJsZUFjdGlv
blRpdGxlczsKLSNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyNpZiBF
TkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUp
CiAtIChOU0FycmF5ICopY3VycmVudGx5QXZhaWxhYmxlTWVkaWFDb250cm9sc0NvbnRleHRNZW51
SXRlbXM7Ci0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisj
ZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNP
TlRFWFRNRU5VKQogQGVuZAogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQu
bW0KaW5kZXggMTM3YWU4ZWUyNmRjMGNhNGU3MWIyZWJjYTA3YmNiMzkyOGFjOTc4OC4uYzI2ZTM4
MWY5MmYyYThmNjYxN2M4NDg5M2U0NGIyODM2NzRlNmFhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0KQEAgLTEwMCwx
NCArMTAwLDE2IEBAIEBpbXBsZW1lbnRhdGlvbiBXS0FjdGlvblNoZWV0QXNzaXN0YW50IHsKICAg
ICBSZXRhaW5QdHI8X1dLQWN0aXZhdGVkRWxlbWVudEluZm8+IF9lbGVtZW50SW5mbzsKICAgICBP
cHRpb25hbDxXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uPiBfcG9zaXRp
b25JbmZvcm1hdGlvbjsKICNpZiBVU0UoVUlDT05URVhUTUVOVSkKKyNpZiBFTkFCTEUoREFUQV9E
RVRFQ1RJT04pCiAgICAgUmV0YWluUHRyPFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbj4gX2RhdGFE
ZXRlY3RvckNvbnRleHRNZW51SW50ZXJhY3Rpb247Ci0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUo
REFUQV9ERVRFQ1RJT04pCiAjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMp
CiAgICAgUmV0YWluUHRyPFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbj4gX21lZGlhQ29udHJvbHND
b250ZXh0TWVudUludGVyYWN0aW9uOwogICAgIFJldGFpblB0cjxVSU1lbnU+IF9tZWRpYUNvbnRy
b2xzQ29udGV4dE1lbnU7CiAgICAgV2ViQ29yZTo6RmxvYXRSZWN0IF9tZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnVUYXJnZXRGcmFtZTsKICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6
Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4gX21lZGlhQ29udHJvbHNDb250ZXh0
TWVudUNhbGxiYWNrOwogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01F
TlVTKQorI2VuZGlmIC8vIFVTRShVSUNPTlRFWFRNRU5VKQogICAgIFdlYWtPYmpDUHRyPFVJVmll
dz4gX3ZpZXc7CiAgICAgQk9PTCBfbmVlZHNMaW5rSW5kaWNhdG9yOwogICAgIEJPT0wgX2lzUHJl
c2VudGluZ0REVXNlckludGVyZmFjZTsKQEAgLTEzMywxMiArMTM1LDE0IEBAIC0gKGlkKWluaXRX
aXRoVmlldzooVUlWaWV3ICopdmlldwogLSAodm9pZClkZWFsbG9jCiB7CiAgICAgW3NlbGYgY2xl
YW51cFNoZWV0XTsKKyNpZiBVU0UoVUlDT05URVhUTUVOVSkKICNpZiBFTkFCTEUoREFUQV9ERVRF
Q1RJT04pCiAgICAgW3NlbGYgX3JlbW92ZURhdGFEZXRlY3RvckNvbnRleHRNZW51SW50ZXJhY3Rp
b25dOwogI2VuZGlmIC8vIEVOQUJMRShEQVRBX0RFVEVDVElPTikKICNpZiBFTkFCTEUoTUVESUFf
Q09OVFJPTFNfQ09OVEVYVF9NRU5VUykKICAgICBbc2VsZiBfcmVtb3ZlTWVkaWFDb250cm9sc0Nv
bnRleHRNZW51SW50ZXJhY3Rpb25dOwogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19D
T05URVhUX01FTlVTKQorI2VuZGlmIC8vIFVTRShVSUNPTlRFWFRNRU5VKQogICAgIFtzdXBlciBk
ZWFsbG9jXTsKIH0KIApAQCAtNzg5LDYgKzc5Myw4IEBAIC0gKHZvaWQpc2hvd0RhdGFEZXRlY3Rv
cnNVSUZvclBvc2l0aW9uSW5mb3JtYXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZv
CiAjZW5kaWYgLy8gRU5BQkxFKERBVEFfREVURUNUSU9OKQogfQogCisjaWYgVVNFKFVJQ09OVEVY
VE1FTlUpCisKICNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKIAogLSAo
TlNBcnJheTxVSU1lbnVFbGVtZW50ICo+ICopX3VpTWVudUVsZW1lbnRzRm9yTWVkaWFDb250cm9s
Q29udGV4dE1lbnVJdGVtczooVmVjdG9yPFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVu
dUl0ZW0+JiYpIGl0ZW1zCkBAIC04MDcsNyArODEzLDcgQEAgLSAoTlNBcnJheTxVSU1lbnVFbGVt
ZW50ICo+ICopX3VpTWVudUVsZW1lbnRzRm9yTWVkaWFDb250cm9sQ29udGV4dE1lbnVJdGVtczoo
VmUKIAogICAgICAgICAgICAgc3Ryb25nU2VsZi0+X21lZGlhQ29udHJvbHNDb250ZXh0TWVudUNh
bGxiYWNrKHNlbGVjdGVkSXRlbUlEKTsKICAgICAgICAgfV07Ci0gICAgICAgIGlmIChpdGVtLmlz
Q2hlY2tlZCkKKyAgICAgICAgaWYgKGl0ZW0uY2hlY2tlZCkKICAgICAgICAgICAgIGFjdGlvbi5z
dGF0ZSA9IFVJTWVudUVsZW1lbnRTdGF0ZU9uOwogICAgICAgICByZXR1cm4gYWN0aW9uOwogICAg
IH0pLmF1dG9yZWxlYXNlKCk7CkBAIC04MzMsOCArODM5LDYgQEAgLSAodm9pZClzaG93TWVkaWFD
b250cm9sc0NvbnRleHRNZW51OihXZWJDb3JlOjpGbG9hdFJlY3QmJil0YXJnZXRGcmFtZSBpdGVt
czooVmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQog
Ci0jaWYgVVNFKFVJQ09OVEVYVE1FTlUpCi0KIHN0YXRpYyBOU0FycmF5PFVJTWVudUVsZW1lbnQg
Kj4gKm1lbnVFbGVtZW50c0Zyb21EZWZhdWx0QWN0aW9ucyhSZXRhaW5QdHI8TlNBcnJheT4gZGVm
YXVsdEVsZW1lbnRBY3Rpb25zLCBSZXRhaW5QdHI8X1dLQWN0aXZhdGVkRWxlbWVudEluZm8+IGVs
ZW1lbnRJbmZvKQogewogICAgIGlmICghW2RlZmF1bHRFbGVtZW50QWN0aW9ucyBjb3VudF0pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLmgKaW5kZXggMDNjZDc0MTNlNjc0OTBkYzA0YmU1Y2VlYjE1ZDMxMzI1NjcxYjc0Zi4u
ODY5MzdkYzNhYmQ0Zjc0ODkzOWYzNTRiYWNmY2RlN2MyNjVhNmM5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApA
QCAtNjgwLDkgKzY4MCw5IEBAIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04o
REVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAtICh2b2lkKV9zZXRN
b3VzZUV2ZW50UG9saWN5OihXZWJDb3JlOjpNb3VzZUV2ZW50UG9saWN5KXBvbGljeTsKICNlbmRp
ZgogCi0jaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjaWYgRU5BQkxF
KE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogLSAo
dm9pZClfc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudTooV2ViQ29yZTo6RmxvYXRSZWN0JiYp
dGFyZ2V0RnJhbWUgaXRlbXM6KFZlY3RvcjxXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1l
bnVJdGVtPiYmKWl0ZW1zIGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4mJiljb21wbGV0aW9u
SGFuZGxlcjsKLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykK
KyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJ
Q09OVEVYVE1FTlUpCiAKICNpZiBFTkFCTEUoSU9TX0ZPUk1fQ09OVFJPTF9SRUZSRVNIKQogLSAo
Qk9PTClfZm9ybUNvbnRyb2xSZWZyZXNoRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IGU0Njcz
YjI2NmU1NjMxMzg3YjdlNDk4OTRjZjJiMzdmZmE1NDVlYjIuLjA4NzYwZmFkNzY0NWY1MWM2YWI2
Yzc4NjQxYzJkNjg4MzJjYTU2YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtOTEyNiwxNCArOTEyNiwx
NCBAQCAtICh2b2lkKV9zZXRNb3VzZUV2ZW50UG9saWN5OihXZWJDb3JlOjpNb3VzZUV2ZW50UG9s
aWN5KXBvbGljeQogCiAjZW5kaWYgLy8gSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpCiAK
LSNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyNpZiBFTkFCTEUoTUVE
SUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAKIC0gKHZv
aWQpX3Nob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnU6KFdlYkNvcmU6OkZsb2F0UmVjdCYmKXRh
cmdldEZyYW1lIGl0ZW1zOihWZWN0b3I8V2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51
SXRlbT4mJilpdGVtcyBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCk+JiYpY29tcGxldGlvbkhh
bmRsZXIKIHsKICAgICBbX2FjdGlvblNoZWV0QXNzaXN0YW50IHNob3dNZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnU6V1RGTW92ZSh0YXJnZXRGcmFtZSkgaXRlbXM6V1RGTW92ZShpdGVtcykgY29tcGxl
dGlvbkhhbmRsZXI6V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildOwogfQogCi0jZW5kaWYgLy8g
RU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjZW5kaWYgLy8gRU5BQkxFKE1F
RElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogCiAjaWYg
SEFWRShVSV9QT0lOVEVSX0lOVEVSQUNUSU9OKQogCkBAIC05NjA5LDEwICs5NjA5LDEwIEBAIC0g
KE5TRGljdGlvbmFyeSAqKV9jb250ZW50c09mVXNlckludGVyZmFjZUl0ZW06KE5TU3RyaW5nICop
dXNlckludGVyZmFjZUl0ZW0KICAgICB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShNRURJQV9DT05U
Uk9MU19DT05URVhUX01FTlVTKQorI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01F
TlVTKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKICAgICBpZiAoW3VzZXJJbnRlcmZhY2VJdGVtIGlz
RXF1YWxUb1N0cmluZzpAIm1lZGlhQ29udHJvbHNDb250ZXh0TWVudSJdKQogICAgICAgICByZXR1
cm4gQHsgdXNlckludGVyZmFjZUl0ZW06IFtfYWN0aW9uU2hlZXRBc3Npc3RhbnQgY3VycmVudGx5
QXZhaWxhYmxlTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbXNdIH07Ci0jZW5kaWYgLy8gRU5B
QkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjZW5kaWYgLy8gRU5BQkxFKE1FRElB
X0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogCiAgICAgaWYg
KFt1c2VySW50ZXJmYWNlSXRlbSBpc0VxdWFsVG9TdHJpbmc6QCJmaWxlVXBsb2FkUGFuZWxNZW51
Il0pIHsKICAgICAgICAgaWYgKCFfZmlsZVVwbG9hZFBhbmVsKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAppbmRleCBjMzdlYjIzZmY1NDA2ZTkz
MDQzZjlmNzg4NmJmZTYwMjJhY2Y5OTJmLi41OTM0ZGEzZGM0MjRhNjI5ZDkwYWM5ZjE4MzE3NWFl
N2EzYjMxOTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNs
aWVudEltcGxNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGxNYWMuaApAQCAtMTM3LDYgKzEzNyw4IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYlBv
cHVwTWVudVByb3h5PiBjcmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmKSBvdmVycmlk
ZTsKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICBSZWY8V2ViQ29udGV4dE1lbnVQcm94
eT4gY3JlYXRlQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJveHkmLCBDb250ZXh0TWVudUNvbnRl
eHREYXRhJiYsIGNvbnN0IFVzZXJEYXRhJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRTaG93Q29u
dGV4dE1lbnUoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZERpc21pc3NDb250ZXh0TWVudSgpIG92
ZXJyaWRlOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQppbmRleCA1NmI0
NDAyMTM1MzJlM2I1ZjlmM2Y2M2JhNDlmNDk0Yjk4YzFkOTRiLi4xOGYzNzNhMjNkODdmNDBmNzVi
YWQ0OWMwZWEzMDIxY2VjNTllYWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCkBAIC00OSw3ICs0OSw3IEBACiAjaW1wb3J0ICJXS1N0
cmluZ0NGLmgiCiAjaW1wb3J0ICJXS1ZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJWaWV3
SW50ZXJuYWwuaCIKLSNpbXBvcnQgIldLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nTWFjLmgiCisj
aW1wb3J0ICJXS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oIgogI2ltcG9ydCAiV2ViQ29sb3JQ
aWNrZXJNYWMuaCIKICNpbXBvcnQgIldlYkNvbnRleHRNZW51UHJveHlNYWMuaCIKICNpbXBvcnQg
IldlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bk1hYy5oIgpAQCAtNDk2LDExICs0OTYsMjMg
QEAgUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlUG9wdXBN
ZW51UHJveHkoV2ViUGFnZVByb3h5JiBwYWcKIH0KIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVT
KQorCiBSZWY8V2ViQ29udGV4dE1lbnVQcm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZUNvbnRl
eHRNZW51UHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYg
Y29udGV4dCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIHJldHVybiBXZWJDb250
ZXh0TWVudVByb3h5TWFjOjpjcmVhdGUobV92aWV3LCBwYWdlLCBXVEZNb3ZlKGNvbnRleHQpLCB1
c2VyRGF0YSk7CiB9Ci0jZW5kaWYKKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkU2hvd0NvbnRl
eHRNZW51KCkKK3sKKyAgICBbbV93ZWJWaWV3IF9kaWRTaG93Q29udGV4dE1lbnVdOworfQorCit2
b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWREaXNtaXNzQ29udGV4dE1lbnUoKQoreworICAgIFttX3dl
YlZpZXcgX2RpZERpc21pc3NDb250ZXh0TWVudV07Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoQ09O
VEVYVF9NRU5VUykKIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogUmVmUHRyPFdlYkNv
bG9yUGlja2VyPiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29sb3JQaWNrZXIoV2ViUGFnZVByb3h5
KiBwYWdlLCBjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiByZWN0LCBWZWN0b3I8V2ViQ29yZTo6Q29sb3I+JiYgc3VnZ2VzdGlvbnMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94
eU1hYy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlN
YWMuaAppbmRleCAwYmIwN2U2NzlmMzBlN2IzNjgyYjM3MzZiNTM3MmNiYmIyZDMxZWM4Li41NjA2
MWFmYzNkMDNlYjFkM2VkOTlhMzlkYWNkNmNjYWQzNjEwOWJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLmgKQEAgLTM1LDYg
KzM1LDcgQEAgT0JKQ19DTEFTUyBOU01lbnU7CiBPQkpDX0NMQVNTIE5TTWVudUl0ZW07CiBPQkpD
X0NMQVNTIE5TVmlldzsKIE9CSkNfQ0xBU1MgTlNXaW5kb3c7CitPQkpDX0NMQVNTIFdLTWVudURl
bGVnYXRlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNzIsNyArNzMsMTEgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHNldHVwU2VydmljZXNNZW51KCk7CiAjZW5kaWYKIAorICAgIE5TTWVudSAq
cGxhdGZvcm1NZW51KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgTlNBcnJheSAqcGxhdGZvcm1EYXRh
KCkgY29uc3Qgb3ZlcnJpZGU7CisKICAgICBSZXRhaW5QdHI8TlNNZW51PiBtX21lbnU7CisgICAg
UmV0YWluUHRyPFdLTWVudURlbGVnYXRlPiBtX21lbnVEZWxlZ2F0ZTsKICAgICBXZWFrT2JqQ1B0
cjxOU1ZpZXc+IG1fd2ViVmlldzsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KaW5kZXggZjBmYWYxMTQwOGRiMDU1
MzVmYmM4ZjQ0YmY5Y2YxMGQ4ODRmYmI2Ny4uNmJmZmQxNGRlNDQ4MWE0ZjQ2Y2I3MDBlZDdhMzUw
NGE1NTQ2NzU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNv
bnRleHRNZW51UHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dl
YkNvbnRleHRNZW51UHJveHlNYWMubW0KQEAgLTMwLDYgKzMwLDcgQEAKIAogI2ltcG9ydCAiQVBJ
Q29udGV4dE1lbnVDbGllbnQuaCIKICNpbXBvcnQgIk1lbnVVdGlsaXRpZXMuaCIKKyNpbXBvcnQg
IlBhZ2VDbGllbnRJbXBsTWFjLmgiCiAjaW1wb3J0ICJTZXJ2aWNlc0NvbnRyb2xsZXIuaCIKICNp
bXBvcnQgIlNoYXJlYWJsZUJpdG1hcC5oIgogI2ltcG9ydCAiV0tNZW51SXRlbUlkZW50aWZpZXJz
UHJpdmF0ZS5oIgpAQCAtMTQ3LDYgKzE0OCwzOCBAQCAtICh2b2lkKWZvcndhcmRDb250ZXh0TWVu
dUFjdGlvbjooaWQpc2VuZGVyCiAKIEBlbmQKIAorQGludGVyZmFjZSBXS01lbnVEZWxlZ2F0ZSA6
IE5TT2JqZWN0IDxOU01lbnVEZWxlZ2F0ZT4geworICAgIFdlYktpdDo6V2ViQ29udGV4dE1lbnVQ
cm94eU1hYyogX21lbnVQcm94eTsKK30KKy0oaW5zdGFuY2V0eXBlKWluaXRXaXRoTWVudVByb3h5
OihXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWMmKW1lbnVQcm94eTsKK0BlbmQKKworQGlt
cGxlbWVudGF0aW9uIFdLTWVudURlbGVnYXRlCisKKy0oaW5zdGFuY2V0eXBlKWluaXRXaXRoTWVu
dVByb3h5OihXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWMmKW1lbnVQcm94eQoreworICAg
IGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAg
X21lbnVQcm94eSA9ICZtZW51UHJveHk7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworI3ByYWdt
YSBtYXJrIC0gTlNNZW51RGVsZWdhdGUKKworLSAodm9pZCltZW51V2lsbE9wZW46KE5TTWVudSAq
KW1lbnUKK3sKKyAgICBfbWVudVByb3h5LT5wYWdlKCktPnBhZ2VDbGllbnQoKS5kaWRTaG93Q29u
dGV4dE1lbnUoKTsKK30KKworLSAodm9pZCltZW51RGlkQ2xvc2U6KE5TTWVudSAqKW1lbnUKK3sK
KyAgICBfbWVudVByb3h5LT5wYWdlKCktPnBhZ2VDbGllbnQoKS5kaWREaXNtaXNzQ29udGV4dE1l
bnUoKTsKK30KKworQGVuZAorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCkBAIC00OTksNiArNTMyLDcgQEAgdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFj
OjpnZXRDb250ZXh0TWVudUl0ZW0oY29uc3QgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYgaXQKICAg
ICAgICAgW21lbnVJdGVtIHNldFRhZzppdGVtLmFjdGlvbigpXTsKICAgICAgICAgW21lbnVJdGVt
IHNldEVuYWJsZWQ6aXRlbS5lbmFibGVkKCldOwogICAgICAgICBbbWVudUl0ZW0gc2V0U3RhdGU6
aXRlbS5jaGVja2VkKCkgPyBOU0NvbnRyb2xTdGF0ZVZhbHVlT24gOiBOU0NvbnRyb2xTdGF0ZVZh
bHVlT2ZmXTsKKyAgICAgICAgW21lbnVJdGVtIHNldEluZGVudGF0aW9uTGV2ZWw6aXRlbS5pbmRl
bnRhdGlvbkxldmVsKCldOwogICAgICAgICBbbWVudUl0ZW0gc2V0VGFyZ2V0OltXS01lbnVUYXJn
ZXQgc2hhcmVkTWVudVRhcmdldF1dOwogICAgICAgICBbbWVudUl0ZW0gc2V0SWRlbnRpZmllcjpt
ZW51SXRlbUlkZW50aWZpZXIoaXRlbS5hY3Rpb24oKSldOwogCkBAIC01MTYsOSArNTUwLDEwIEBA
IHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6Z2V0Q29udGV4dE1lbnVJdGVtKGNvbnN0IFdl
YkNvbnRleHRNZW51SXRlbURhdGEmIGl0CiAgICAgICAgIHJldHVybjsKIAogICAgIGNhc2UgV2Vi
Q29yZTo6U3VibWVudVR5cGU6IHsKLSAgICAgICAgZ2V0Q29udGV4dE1lbnVGcm9tSXRlbXMoaXRl
bS5zdWJtZW51KCksIFthY3Rpb24gPSBpdGVtLmFjdGlvbigpLCBjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBlbmFibGVkID0gaXRlbS5lbmFibGVkKCksIHRp
dGxlID0gaXRlbS50aXRsZSgpXShOU01lbnUgKm1lbnUpIG11dGFibGUgeworICAgICAgICBnZXRD
b250ZXh0TWVudUZyb21JdGVtcyhpdGVtLnN1Ym1lbnUoKSwgW2FjdGlvbiA9IGl0ZW0uYWN0aW9u
KCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGVuYWJs
ZWQgPSBpdGVtLmVuYWJsZWQoKSwgdGl0bGUgPSBpdGVtLnRpdGxlKCksIGluZGVudGF0aW9uTGV2
ZWwgPSBpdGVtLmluZGVudGF0aW9uTGV2ZWwoKV0oTlNNZW51ICptZW51KSBtdXRhYmxlIHsKICAg
ICAgICAgICAgIGF1dG8gbWVudUl0ZW0gPSBhZG9wdE5TKFtbTlNNZW51SXRlbSBhbGxvY10gaW5p
dFdpdGhUaXRsZTp0aXRsZSBhY3Rpb246bnVsbHB0ciBrZXlFcXVpdmFsZW50OkAiIl0pOwogICAg
ICAgICAgICAgW21lbnVJdGVtIHNldEVuYWJsZWQ6ZW5hYmxlZF07CisgICAgICAgICAgICBbbWVu
dUl0ZW0gc2V0SW5kZW50YXRpb25MZXZlbDppbmRlbnRhdGlvbkxldmVsXTsKICAgICAgICAgICAg
IFttZW51SXRlbSBzZXRTdWJtZW51Om1lbnVdOwogICAgICAgICAgICAgW21lbnVJdGVtIHNldElk
ZW50aWZpZXI6bWVudUl0ZW1JZGVudGlmaWVyKGFjdGlvbildOwogICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIobWVudUl0ZW0uZ2V0KCkpOwpAQCAtNTcxLDEwICs2MDYsMjIgQEAgdm9pZCBX
ZWJDb250ZXh0TWVudVByb3h5TWFjOjp1c2VDb250ZXh0TWVudUl0ZW1zKFZlY3RvcjxSZWY8V2Vi
Q29udGV4dE1lbnVJdGVtPj4KICAgICAgICAgfQogCiAgICAgICAgIFtbV0tNZW51VGFyZ2V0IHNo
YXJlZE1lbnVUYXJnZXRdIHNldE1lbnVQcm94eTp0aGlzXTsKLSAgICAgICAgcGFnZSgpLT5jb250
ZXh0TWVudUNsaWVudCgpLm1lbnVGcm9tUHJvcG9zZWRNZW51KCpwYWdlKCksIG1lbnUsIG1fY29u
dGV4dC53ZWJIaXRUZXN0UmVzdWx0RGF0YSgpLCBtX3VzZXJEYXRhLm9iamVjdCgpLCBbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldKFJldGFpblB0cjxOU01lbnU+
JiYgbWVudSkgeworCisgICAgICAgIGF1dG8gbWVudUZyb21Qcm9wb3NlZE1lbnUgPSBbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldIChSZXRhaW5QdHI8TlNNZW51
PiYmIG1lbnUpIHsKKyAgICAgICAgICAgIG1fbWVudURlbGVnYXRlID0gYWRvcHROUyhbW1dLTWVu
dURlbGVnYXRlIGFsbG9jXSBpbml0V2l0aE1lbnVQcm94eToqdGhpc10pOworCiAgICAgICAgICAg
ICBtX21lbnUgPSBXVEZNb3ZlKG1lbnUpOworICAgICAgICAgICAgW21fbWVudSBzZXREZWxlZ2F0
ZTptX21lbnVEZWxlZ2F0ZS5nZXQoKV07CisKICAgICAgICAgICAgIFdlYkNvbnRleHRNZW51UHJv
eHk6OnVzZUNvbnRleHRNZW51SXRlbXMoeyB9KTsKLSAgICAgICAgfSk7CisgICAgICAgIH07CisK
KyAgICAgICAgaWYgKG1fY29udGV4dC50eXBlKCkgIT0gQ29udGV4dE1lbnVDb250ZXh0OjpUeXBl
OjpDb250ZXh0TWVudSkgeworICAgICAgICAgICAgbWVudUZyb21Qcm9wb3NlZE1lbnUobWVudSk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBwYWdlKCktPmNvbnRl
eHRNZW51Q2xpZW50KCkubWVudUZyb21Qcm9wb3NlZE1lbnUoKnBhZ2UoKSwgbWVudSwgbV9jb250
ZXh0LndlYkhpdFRlc3RSZXN1bHREYXRhKCksIG1fdXNlckRhdGEub2JqZWN0KCksIFdURk1vdmUo
bWVudUZyb21Qcm9wb3NlZE1lbnUpKTsKICAgICB9KTsKIH0KIApAQCAtNTgzLDYgKzYzMCw1MyBA
QCBOU1dpbmRvdyAqV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6d2luZG93KCkgY29uc3QKICAgICBy
ZXR1cm4gW21fd2ViVmlldyB3aW5kb3ddOwogfQogCitOU01lbnUgKldlYkNvbnRleHRNZW51UHJv
eHlNYWM6OnBsYXRmb3JtTWVudSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbWVudS5nZXQoKTsK
K30KKworc3RhdGljIE5TRGljdGlvbmFyeSAqY29udGVudHNPZkNvbnRleHRNZW51SXRlbShOU01l
bnVJdGVtICppdGVtKQoreworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIHJlc3VsdCA9IE5TTXV0
YWJsZURpY3Rpb25hcnkuZGljdGlvbmFyeTsKKworICAgIGlmIChpdGVtLnRpdGxlLmxlbmd0aCkK
KyAgICAgICAgcmVzdWx0W0AidGl0bGUiXSA9IGl0ZW0udGl0bGU7CisKKyAgICBpZiAoaXRlbS5p
c1NlcGFyYXRvckl0ZW0pCisgICAgICAgIHJlc3VsdFtAInNlcGFyYXRvciJdID0gQFlFUzsKKyAg
ICBlbHNlIGlmICghaXRlbS5lbmFibGVkKQorICAgICAgICByZXN1bHRbQCJlbmFibGVkIl0gPSBA
Tk87CisKKyAgICBpZiAoTlNJbnRlZ2VyIGluZGVudGF0aW9uTGV2ZWwgPSBpdGVtLmluZGVudGF0
aW9uTGV2ZWwpCisgICAgICAgIHJlc3VsdFtAImluZGVudGF0aW9uTGV2ZWwiXSA9IFtOU051bWJl
ciBudW1iZXJXaXRoSW50ZWdlcjppbmRlbnRhdGlvbkxldmVsXTsKKworICAgIGlmIChpdGVtLnN0
YXRlID09IE5TQ29udHJvbFN0YXRlVmFsdWVPbikKKyAgICAgICAgcmVzdWx0W0AiY2hlY2tlZCJd
ID0gQFlFUzsKKworICAgIGlmIChOU0FycmF5PE5TTWVudUl0ZW0gKj4gKnN1Ym1lbnVJdGVtcyA9
IGl0ZW0uc3VibWVudS5pdGVtQXJyYXkpIHsKKyAgICAgICAgTlNNdXRhYmxlQXJyYXkgKmNoaWxk
cmVuID0gW05TTXV0YWJsZUFycmF5IGFycmF5V2l0aENhcGFjaXR5OnN1Ym1lbnVJdGVtcy5jb3Vu
dF07CisgICAgICAgIGZvciAoTlNNZW51SXRlbSAqc3VibWVudUl0ZW0gOiBzdWJtZW51SXRlbXMp
CisgICAgICAgICAgICBbY2hpbGRyZW4gYWRkT2JqZWN0OmNvbnRlbnRzT2ZDb250ZXh0TWVudUl0
ZW0oc3VibWVudUl0ZW0pXTsKKyAgICAgICAgcmVzdWx0W0AiY2hpbGRyZW4iXSA9IGNoaWxkcmVu
OworICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK05TQXJyYXkgKldlYkNvbnRleHRN
ZW51UHJveHlNYWM6OnBsYXRmb3JtRGF0YSgpIGNvbnN0Cit7CisgICAgTlNNdXRhYmxlQXJyYXkg
KnJlc3VsdCA9IE5TTXV0YWJsZUFycmF5LmFycmF5OworCisgICAgaWYgKE5TQXJyYXk8TlNNZW51
SXRlbSAqPiAqc3VibWVudUl0ZW1zID0gW21fbWVudSBpdGVtQXJyYXldKSB7CisgICAgICAgIE5T
TXV0YWJsZUFycmF5ICpjaGlsZHJlbiA9IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhDYXBhY2l0
eTpzdWJtZW51SXRlbXMuY291bnRdOworICAgICAgICBmb3IgKE5TTWVudUl0ZW0gKnN1Ym1lbnVJ
dGVtIDogc3VibWVudUl0ZW1zKQorICAgICAgICAgICAgW2NoaWxkcmVuIGFkZE9iamVjdDpjb250
ZW50c09mQ29udGV4dE1lbnVJdGVtKHN1Ym1lbnVJdGVtKV07CisgICAgICAgIFtyZXN1bHQgYWRk
T2JqZWN0OkB7IEAiY2hpbGRyZW4iOiBjaGlsZHJlbiB9XTsKKyAgICB9CisKKyAgICByZXR1cm4g
cmVzdWx0OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JN
KE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJv
eHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1t
CmluZGV4IGYxYjFmZmZjMjFhMjhjMWRkZDFiMjAxNTJhNzU0M2I4YjYzM2UxMTIuLmYxMTYxNDIx
MzUzMmY4NjZkM2UyZTNmMjY4NThmN2ZlYTZlMDc2MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQpAQCAtNjMzLDYgKzYzMywxMyBAQCBOU1dp
bmRvdyAqV2ViUGFnZVByb3h5OjpwYXltZW50Q29vcmRpbmF0b3JQcmVzZW50aW5nV2luZG93KGNv
bnN0IFdlYlBheW1lbnRDb29yZAogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAKK05TTWVu
dSAqV2ViUGFnZVByb3h5OjpwbGF0Zm9ybUFjdGl2ZUNvbnRleHRNZW51KCkgY29uc3QKK3sKKyAg
ICBpZiAobV9hY3RpdmVDb250ZXh0TWVudSkKKyAgICAgICAgcmV0dXJuIG1fYWN0aXZlQ29udGV4
dE1lbnUtPnBsYXRmb3JtTWVudSgpOworICAgIHJldHVybiBuaWw7Cit9CisKIHZvaWQgV2ViUGFn
ZVByb3h5OjpwbGF0Zm9ybURpZFNlbGVjdEl0ZW1Gcm9tQWN0aXZlQ29udGV4dE1lbnUoY29uc3Qg
V2ViQ29udGV4dE1lbnVJdGVtRGF0YSYgaXRlbSkKIHsKICAgICBpZiAoaXRlbS5hY3Rpb24oKSA9
PSBDb250ZXh0TWVudUl0ZW1UYWdQYXN0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggNDY3
NDlkMzAyMTc2Mzg3ZDk4YmU0YmQwNWJhZjFmZmQzYTVjM2JiZS4uNGMwZTMzZWNkYzhlM2MxZGYw
MzFkMTg5OTMzZDAwNmFiODliMDdiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTE0NTQs
MTMgKzE0NTQsMTMgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RJbWFnZUV4dHJhY3Rp
b24oRWxlbWVudCYgZWxlbWVudCkKIAogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVESUFfQ09OVFJP
TFNfQ09OVEVYVF9NRU5VUykKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5V
UykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzaG93TWVk
aWFDb250cm9sc0NvbnRleHRNZW51KEZsb2F0UmVjdCYmIHRhcmdldEZyYW1lLCBWZWN0b3I8TWVk
aWFDb250cm9sc0NvbnRleHRNZW51SXRlbT4mJiBpdGVtcywgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgbV9wYWdlLnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoV1RGTW92ZSh0YXJn
ZXRGcmFtZSksIFdURk1vdmUoaXRlbXMpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9
CiAKLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyNlbmRp
ZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVY
VE1FTlUpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGVm
ZjJlOTA5ZTRlMmFhYzU2MzVmOWM2MDE0ODdkYWUzZWNkYzU1ODYuLjE3OTJkNDM0OGRlNjUwNjYw
NjgwNGI2YzVlZTQyYzUyNGYzZjQzZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTQxOCw5ICs0
MTgsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdEltYWdlRXh0cmFjdGlvbihXZWJDb3Jl
OjpFbGVtZW50JikgZmluYWw7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19D
T05URVhUX01FTlVTKQorI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAm
JiBVU0UoVUlDT05URVhUTUVOVSkKICAgICB2b2lkIHNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1l
bnUoV2ViQ29yZTo6RmxvYXRSZWN0JiYsIFZlY3RvcjxXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnVJdGVtPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok1lZGlhQ29u
dHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4mJikgZmluYWw7Ci0jZW5kaWYgLy8gRU5BQkxFKE1F
RElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRS
T0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogCiAgICAgbXV0YWJsZSBi
b29sIG1fY2FjaGVkTWFpbkZyYW1lSGFzSG9yaXpvbnRhbFNjcm9sbGJhciB7IGZhbHNlIH07CiAg
ICAgbXV0YWJsZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFzVmVydGljYWxTY3JvbGxiYXIgeyBm
YWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApp
bmRleCBlNjJiYzM0NWYwNzE1M2NjNzM5NDFkZTk5OTQ3ODFmMTJjYjkzYTUwLi5hZGYwZjc3Yzgz
ZjcyZTEwMzNmMjMzNjQ0Y2VhMzcyZTI0OTU1YzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNzI4MCwxMiArNzI4MCwxMiBAQCB2b2lkIFdl
YlBhZ2U6OnVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQoSW1hZ2VFeHRyYWN0aW9uUmVz
dWx0JiYgcmVzdWx0LCBjbwogCiAjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCiAK
LSNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyNpZiBFTkFCTEUoTUVE
SUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiB2b2lkIFdl
YlBhZ2U6OnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoRmxvYXRSZWN0JiYgdGFyZ2V0RnJh
bWUsIFZlY3RvcjxNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiYmIGl0ZW1zLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6U2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShXVEZNb3ZlKHRhcmdldEZyYW1l
KSwgV1RGTW92ZShpdGVtcykpLCBjb21wbGV0aW9uSGFuZGxlcik7CiB9Ci0jZW5kaWYgLy8gRU5B
QkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjZW5kaWYgLy8gRU5BQkxFKE1FRElB
X0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogCiAjaWYgIVBM
QVRGT1JNKElPU19GQU1JTFkpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAppbmRleCA4NGM1YzQ5ZDcyZDgzMjYzZjhmYmRhNDRkZjgzOGYxYzUyN2VlOGIxLi4y
MGVhN2Q4ODY1ODMyNzJmNTU5YzRlN2JiNmVhMmJlYmZiMzJkY2E0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMzgyLDkgKzEzODIsOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCB1cGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0KFdlYkNvcmU6Oklt
YWdlRXh0cmFjdGlvblJlc3VsdCYmLCBjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGxvY2F0aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRf
TUVOVVMpCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShV
SUNPTlRFWFRNRU5VKQogICAgIHZvaWQgc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShXZWJD
b3JlOjpGbG9hdFJlY3QmJiwgVmVjdG9yPFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVu
dUl0ZW0+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVkaWFDb250cm9sc0Nv
bnRleHRNZW51SXRlbTo6SUQpPiYmKTsKLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNf
Q09OVEVYVF9NRU5VUykKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9N
RU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAKICNpZiBQTEFURk9STShXSU4pCiAgICAgdWlu
dDY0X3QgbmF0aXZlV2luZG93SGFuZGxlKCkgeyByZXR1cm4gbV9uYXRpdmVXaW5kb3dIYW5kbGU7
IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBj
MTRmNjU4MWFmMjljOGExZGNlYWNkNTk1OWZlNzUwZTNlY2Q3Njk3Li40YmM1YWRjYjYxMmI5YWQ4
MDk1MTY2MWRjOTY4N2E1YzAzYzliNGNjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMjEtMDMtMTYgIERldmluIFJv
dXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gY2hhbmdlIGZvciB0
aGUgbGFuZ3VhZ2Uvc3VidGl0bGUgdHJhY2tzIGJ1dHRvbiB0byB1c2UgYW4gYE5TTWVudWAgaW5z
dGVhZCBvZiB3ZWIgY29udGVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjIzMjM5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NTQ2MjM0MD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcubW06CisgICAgICAgICgtW1Rlc3RSdW5u
ZXJXS1dlYlZpZXcgX2RpZFNob3dDb250ZXh0TWVudV0pOgorICAgICAgICAoLVtUZXN0UnVubmVy
V0tXZWJWaWV3IF9kaWREaXNtaXNzQ29udGV4dE1lbnVdKToKKyAgICAgICAgKC1bVGVzdFJ1bm5l
cldLV2ViVmlldyByZXNldEludGVyYWN0aW9uQ2FsbGJhY2tzXSk6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5oOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW06CisgICAgICAg
IChXVFI6OlVJU2NyaXB0Q29udHJvbGxlckNvY29hOjpzZXREaWRTaG93Q29udGV4dE1lbnVDYWxs
YmFjayk6IEFkZGVkLgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXJDb2NvYTo6c2V0
RGlkRGlzbWlzc0NvbnRleHRNZW51Q2FsbGJhY2spOiBBZGRlZC4KKyAgICAgICAgKFdUUjo6VUlT
Y3JpcHRDb250cm9sbGVyQ29jb2E6OmlzU2hvd2luZ0NvbnRleHRNZW51IGNvbnN0KTogQWRkZWQu
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLmg6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1t
OgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXJJT1M6OnNldERpZFNob3dDb250ZXh0
TWVudUNhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVy
SU9TOjpzZXREaWREaXNtaXNzQ29udGV4dE1lbnVDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAg
IChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcklPUzo6aXNTaG93aW5nQ29udGV4dE1lbnUgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICBNb3ZlIHRoZXNlIG1ldGhvZHMgc28gdGhleSBjYW4gYmUgdXNl
ZCBvbiBtYWNPUyB0b28uCisKIDIwMjEtMDMtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIEVuYWJsZSB2aWRlbyBjYXB0dXJlIGluIEdQVVByb2Nlc3MgYnkg
ZGVmYXVsdCBvbiBpT1MKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2Ev
VGVzdFJ1bm5lcldLV2ViVmlldy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0
UnVubmVyV0tXZWJWaWV3LmgKaW5kZXggMDZhNWE2M2IzZGI5Y2Q5YTQxYjkxNGFlMmM5OTU4ZmVm
OGI1NWRmYi4uMjMyODlhNjEyZjU3NzYyYmNhZDE0OTFlZjQwNjdmM2RiZGE0MWE3MSAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3LmgK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3LmgK
QEAgLTM1LDggKzM1LDYgQEAKIAogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5k
aWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjaykodm9pZCk7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRpZEVuZEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxs
YmFjaykodm9pZCk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRpZFNob3dD
b250ZXh0TWVudUNhbGxiYWNrKSh2b2lkKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2
b2lkICheZGlkRGlzbWlzc0NvbnRleHRNZW51Q2FsbGJhY2spKHZvaWQpOwogQHByb3BlcnR5IChu
b25hdG9taWMsIGNvcHkpIHZvaWQgKF53aWxsQmVnaW5ab29taW5nQ2FsbGJhY2spKHZvaWQpOwog
QHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWRFbmRab29taW5nQ2FsbGJhY2sp
KHZvaWQpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWRTaG93S2V5Ym9h
cmRDYWxsYmFjaykodm9pZCk7CkBAIC02NSwxMiArNjMsMTQgQEAKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSwgZ2V0dGVyPWlzU2hvd2luZ0tleWJvYXJkKSBCT09MIHNob3dpbmdLZXli
b2FyZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzRGlzbWlzc2lu
Z01lbnUpIEJPT0wgZGlzbWlzc2luZ01lbnU7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHksIGdldHRlcj1pc1Nob3dpbmdQb3BvdmVyKSBCT09MIHNob3dpbmdQb3BvdmVyOwotQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9aXNTaG93aW5nQ29udGV4dE1lbnUpIEJP
T0wgc2hvd2luZ0NvbnRleHRNZW51OwogQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgQk9P
TCB1c2VzU2FmYXJpTGlrZVJvdGF0aW9uOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
LCBnZXR0ZXI9aXNJbnRlcmFjdGluZ1dpdGhGb3JtQ29udHJvbCkgQk9PTCBpbnRlcmFjdGluZ1dp
dGhGb3JtQ29udHJvbDsKIAogI2VuZGlmCiAKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSwgZ2V0dGVyPWlzU2hvd2luZ0NvbnRleHRNZW51KSBCT09MIHNob3dpbmdDb250ZXh0TWVudTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGlkU2hvd0NvbnRleHRNZW51Q2Fs
bGJhY2spKHZvaWQpOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWREaXNt
aXNzQ29udGV4dE1lbnVDYWxsYmFjaykodm9pZCk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHksIGdldHRlcj1pc1Nob3dpbmdNZW51KSBCT09MIHNob3dpbmdNZW51OwogQHByb3BlcnR5
IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWRTaG93TWVudUNhbGxiYWNrKSh2b2lkKTsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGlkSGlkZU1lbnVDYWxsYmFjaykodm9p
ZCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJX
S1dlYlZpZXcubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dl
YlZpZXcubW0KaW5kZXggOGIwNmFlNWEyZGIyMWQ1MjI1MWM3ZmFmZjYwYmY3NWM1NWFmZTU5Ny4u
MWM0NWJmZDIzOTlhMjRmY2JhNDdjZTBlYjAwZjJiNGQ4ZTY4MDVhOSAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1tCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5tbQpAQCAtMTM2
LDYgKzEzNiwyNiBAQCAtICh2b2lkKWRlYWxsb2MKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CiAK
Ky0gKHZvaWQpX2RpZFNob3dDb250ZXh0TWVudQoreworICAgIGlmIChzZWxmLnNob3dpbmdDb250
ZXh0TWVudSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2VsZi5zaG93aW5nQ29udGV4dE1lbnUg
PSBZRVM7CisgICAgaWYgKHNlbGYuZGlkU2hvd0NvbnRleHRNZW51Q2FsbGJhY2spCisgICAgICAg
IHNlbGYuZGlkU2hvd0NvbnRleHRNZW51Q2FsbGJhY2soKTsKK30KKworLSAodm9pZClfZGlkRGlz
bWlzc0NvbnRleHRNZW51Cit7CisgICAgaWYgKCFzZWxmLnNob3dpbmdDb250ZXh0TWVudSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgc2VsZi5zaG93aW5nQ29udGV4dE1lbnUgPSBOTzsKKyAgICBp
ZiAoc2VsZi5kaWREaXNtaXNzQ29udGV4dE1lbnVDYWxsYmFjaykKKyAgICAgICAgc2VsZi5kaWRE
aXNtaXNzQ29udGV4dE1lbnVDYWxsYmFjaygpOworfQorCiAtICh2b2lkKV9kaWRTaG93TWVudQog
ewogICAgIGlmIChzZWxmLnNob3dpbmdNZW51KQpAQCAtMTc0LDYgKzE5NCw4IEBAIC0gKHZvaWQp
ZGlzbWlzc0FjdGl2ZU1lbnUKIAogLSAodm9pZClyZXNldEludGVyYWN0aW9uQ2FsbGJhY2tzCiB7
CisgICAgc2VsZi5kaWRTaG93Q29udGV4dE1lbnVDYWxsYmFjayA9IG5pbDsKKyAgICBzZWxmLmRp
ZERpc21pc3NDb250ZXh0TWVudUNhbGxiYWNrID0gbmlsOwogICAgIHNlbGYuZGlkU2hvd01lbnVD
YWxsYmFjayA9IG5pbDsKICAgICBzZWxmLmRpZEhpZGVNZW51Q2FsbGJhY2sgPSBuaWw7CiAgICAg
c2VsZi5kaWRTaG93Q29udGFjdFBpY2tlckNhbGxiYWNrID0gbmlsOwpAQCAtMTgxLDggKzIwMyw2
IEBAIC0gKHZvaWQpcmVzZXRJbnRlcmFjdGlvbkNhbGxiYWNrcwogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCiAgICAgc2VsZi5kaWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjayA9
IG5pbDsKICAgICBzZWxmLmRpZEVuZEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjayA9IG5p
bDsKLSAgICBzZWxmLmRpZFNob3dDb250ZXh0TWVudUNhbGxiYWNrID0gbmlsOwotICAgIHNlbGYu
ZGlkRGlzbWlzc0NvbnRleHRNZW51Q2FsbGJhY2sgPSBuaWw7CiAgICAgc2VsZi53aWxsQmVnaW5a
b29taW5nQ2FsbGJhY2sgPSBuaWw7CiAgICAgc2VsZi5kaWRFbmRab29taW5nQ2FsbGJhY2sgPSBu
aWw7CiAgICAgc2VsZi5kaWRTaG93S2V5Ym9hcmRDYWxsYmFjayA9IG5pbDsKQEAgLTIzOCwyNiAr
MjU4LDYgQEAgLSAodm9pZClpbW1lZGlhdGVseURpc21pc3NDb250ZXh0TWVudUlmTmVlZGVkCiAj
ZW5kaWYKIH0KIAotLSAodm9pZClfZGlkU2hvd0NvbnRleHRNZW51Ci17Ci0gICAgaWYgKHNlbGYu
c2hvd2luZ0NvbnRleHRNZW51KQotICAgICAgICByZXR1cm47Ci0KLSAgICBzZWxmLnNob3dpbmdD
b250ZXh0TWVudSA9IFlFUzsKLSAgICBpZiAoc2VsZi5kaWRTaG93Q29udGV4dE1lbnVDYWxsYmFj
aykKLSAgICAgICAgc2VsZi5kaWRTaG93Q29udGV4dE1lbnVDYWxsYmFjaygpOwotfQotCi0tICh2
b2lkKV9kaWREaXNtaXNzQ29udGV4dE1lbnUKLXsKLSAgICBpZiAoIXNlbGYuc2hvd2luZ0NvbnRl
eHRNZW51KQotICAgICAgICByZXR1cm47Ci0KLSAgICBzZWxmLnNob3dpbmdDb250ZXh0TWVudSA9
IE5POwotICAgIGlmIChzZWxmLmRpZERpc21pc3NDb250ZXh0TWVudUNhbGxiYWNrKQotICAgICAg
ICBzZWxmLmRpZERpc21pc3NDb250ZXh0TWVudUNhbGxiYWNrKCk7Ci19Ci0KIC0gKEJPT0wpYmVj
b21lRmlyc3RSZXNwb25kZXIKIHsKICAgICBCT09MIHdhc0ZpcnN0UmVzcG9uZGVyID0gc2VsZi5p
c0ZpcnN0UmVzcG9uZGVyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2Nv
YS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2Nv
YS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5oCmluZGV4IGU4Y2RjM2NmMGMxMTU0MWE4N2RhYzg1
MDFlNzA4ZjY4OGVhY2IxODQuLjU1MDhjMTMwZGYyOTQ3NDI0NTM4MGRlOGQxNzFkOWYwMDk4OTUy
NWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRDb250
cm9sbGVyQ29jb2EuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0
Q29udHJvbGxlckNvY29hLmgKQEAgLTUzLDYgKzUzLDEwIEBAIHByaXZhdGU6CiAgICAgSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IGZpcnN0UmVkb0xhYmVsKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
TlNVbmRvTWFuYWdlciAqcGxhdGZvcm1VbmRvTWFuYWdlcigpIGNvbnN0IG92ZXJyaWRlOwogCisg
ICAgdm9pZCBzZXREaWRTaG93Q29udGV4dE1lbnVDYWxsYmFjayhKU1ZhbHVlUmVmKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHNldERpZERpc21pc3NDb250ZXh0TWVudUNhbGxiYWNrKEpTVmFsdWVSZWYp
IG92ZXJyaWRlOworICAgIGJvb2wgaXNTaG93aW5nQ29udGV4dE1lbnUoKSBjb25zdCBvdmVycmlk
ZTsKKwogICAgIHZvaWQgc2V0RGlkU2hvd01lbnVDYWxsYmFjayhKU1ZhbHVlUmVmKSBvdmVycmlk
ZTsKICAgICB2b2lkIHNldERpZEhpZGVNZW51Q2FsbGJhY2soSlNWYWx1ZVJlZikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBkaXNtaXNzTWVudSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbSBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0KaW5kZXggYmI1
NGEyYTE2NGJhNThkY2RjNDhkMTY3NmQ0NWE5YWM4Y2I0NzY0YS4uNWQ2ODI0OTdhZDI3NDBjYWQ1
M2NkMjQwNTRjMzQ3ZDliYjY2MDNlYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tCkBAIC0zNSw2ICszNSw3IEBA
CiAjaW1wb3J0IDxXZWJLaXQvV0tVUkxDRi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1By
aXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oPgor
I2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAKIEBpbnRlcmZhY2UgV0tXZWJWaWV3IChXS1dlYlZp
ZXdJbnRlcm5hbCkKIC0gKHZvaWQpcGFzdGU6KGlkKXNlbmRlcjsKQEAgLTE3Miw2ICsxNzMsMzEg
QEAgTlNVbmRvTWFuYWdlciAqVUlTY3JpcHRDb250cm9sbGVyQ29jb2E6OnBsYXRmb3JtVW5kb01h
bmFnZXIoKSBjb25zdAogICAgIHJldHVybiBwbGF0Zm9ybUNvbnRlbnRWaWV3KCkudW5kb01hbmFn
ZXI7CiB9CiAKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyQ29jb2E6OnNldERpZFNob3dDb250ZXh0
TWVudUNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgVUlTY3JpcHRDb250cm9s
bGVyOjpzZXREaWRTaG93Q29udGV4dE1lbnVDYWxsYmFjayhjYWxsYmFjayk7CisgICAgd2ViVmll
dygpLmRpZFNob3dDb250ZXh0TWVudUNhbGxiYWNrID0gbWFrZUJsb2NrUHRyKFt0aGlzLCBzdHJv
bmdUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICAgICAgaWYgKCFtX2NvbnRleHQpCisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIG1fY29udGV4dC0+ZmlyZUNhbGxiYWNrKENhbGxiYWNr
VHlwZURpZFNob3dDb250ZXh0TWVudSk7CisgICAgfSkuZ2V0KCk7Cit9CisKK3ZvaWQgVUlTY3Jp
cHRDb250cm9sbGVyQ29jb2E6OnNldERpZERpc21pc3NDb250ZXh0TWVudUNhbGxiYWNrKEpTVmFs
dWVSZWYgY2FsbGJhY2spCit7CisgICAgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWREaXNtaXNz
Q29udGV4dE1lbnVDYWxsYmFjayhjYWxsYmFjayk7CisgICAgd2ViVmlldygpLmRpZERpc21pc3ND
b250ZXh0TWVudUNhbGxiYWNrID0gbWFrZUJsb2NrUHRyKFt0aGlzLCBzdHJvbmdUaGlzID0gbWFr
ZVJlZigqdGhpcyldIHsKKyAgICAgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIG1fY29udGV4dC0+ZmlyZUNhbGxiYWNrKENhbGxiYWNrVHlwZURpZERpc21p
c3NDb250ZXh0TWVudSk7CisgICAgfSkuZ2V0KCk7Cit9CisKK2Jvb2wgVUlTY3JpcHRDb250cm9s
bGVyQ29jb2E6OmlzU2hvd2luZ0NvbnRleHRNZW51KCkgY29uc3QKK3sKKyAgICByZXR1cm4gd2Vi
VmlldygpLmlzU2hvd2luZ0NvbnRleHRNZW51OworfQorCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxl
ckNvY29hOjpzZXREaWRTaG93TWVudUNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCiB7CiAg
ICAgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWRTaG93TWVudUNhbGxiYWNrKGNhbGxiYWNrKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxl
cklPUy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9T
LmgKaW5kZXggN2EzNjkwY2QxODI5MDEyZTcxNTFhNWYyZmQ0YWYwZDEwMjU4MTZjMS4uMzliZjhh
ZWY5ZjUyMjUyMDY3YzAwMzcwMjRjNDViYTMzNGFkNjY4OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLmgKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLmgKQEAgLTE0MCwxNSArMTQw
LDEyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRBbGxvd3NWaWV3cG9ydFNocmlua1RvRml0KGJv
b2wpIG92ZXJyaWRlOwogICAgIHZvaWQgY29weVRleHQoSlNTdHJpbmdSZWYpIG92ZXJyaWRlOwog
ICAgIHZvaWQgaW5zdGFsbFRhcEdlc3R1cmVPbldpbmRvdyhKU1ZhbHVlUmVmKSBvdmVycmlkZTsK
LSAgICBib29sIGlzU2hvd2luZ0NvbnRleHRNZW51KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBzZXRTcGVsbENoZWNrZXJSZXN1bHRzKEpTVmFsdWVSZWYpIG92ZXJyaWRlIHsgfQogCiAgICAg
Ym9vbCBtYXlDb250YWluRWRpdGFibGVFbGVtZW50c0luUmVjdCh1bnNpZ25lZCB4LCB1bnNpZ25l
ZCB5LCB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KSBvdmVycmlkZTsKIAogICAgIHZv
aWQgc2V0RGlkU3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJhY2soSlNWYWx1ZVJlZikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBzZXREaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJh
Y2soSlNWYWx1ZVJlZikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXREaWRTaG93Q29udGV4dE1lbnVD
YWxsYmFjayhKU1ZhbHVlUmVmKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldERpZERpc21pc3NDb250
ZXh0TWVudUNhbGxiYWNrKEpTVmFsdWVSZWYpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0V2lsbEJl
Z2luWm9vbWluZ0NhbGxiYWNrKEpTVmFsdWVSZWYpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0RGlk
RW5kWm9vbWluZ0NhbGxiYWNrKEpTVmFsdWVSZWYpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0RGlk
U2hvd0tleWJvYXJkQ2FsbGJhY2soSlNWYWx1ZVJlZikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0gYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KaW5kZXggYTg3
NGZiMjU3NGNiMjhiYjMzMzAyZmZhNGQyZmJmZDEzYzVhNmJhNC4uNzBiYWY4MzI0ZDcyNjJkZGJm
YTZiODVlYTgyNDY4NjQ5YmVkZDNlZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQpAQCAtOTIyLDI2ICs5MjIsNiBAQCB2b2lk
IFVJU2NyaXB0Q29udHJvbGxlcklPUzo6c2V0RGlkRW5kRm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNh
bGxiYWNrKEpTVmFsdWVSZWYgYwogICAgICAgICBtX2NvbnRleHQtPmZpcmVDYWxsYmFjayhDYWxs
YmFja1R5cGVEaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uKTsKICAgICB9KS5nZXQoKTsKIH0K
LSAgICAKLXZvaWQgVUlTY3JpcHRDb250cm9sbGVySU9TOjpzZXREaWRTaG93Q29udGV4dE1lbnVD
YWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQotewotICAgIFVJU2NyaXB0Q29udHJvbGxlcjo6
c2V0RGlkU2hvd0NvbnRleHRNZW51Q2FsbGJhY2soY2FsbGJhY2spOwotICAgIHdlYlZpZXcoKS5k
aWRTaG93Q29udGV4dE1lbnVDYWxsYmFjayA9IG1ha2VCbG9ja1B0cihbdGhpcywgc3Ryb25nVGhp
cyA9IG1ha2VSZWYoKnRoaXMpXSB7Ci0gICAgICAgIGlmICghbV9jb250ZXh0KQotICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICBtX2NvbnRleHQtPmZpcmVDYWxsYmFjayhDYWxsYmFja1R5cGVE
aWRTaG93Q29udGV4dE1lbnUpOwotICAgIH0pLmdldCgpOwotfQotCi12b2lkIFVJU2NyaXB0Q29u
dHJvbGxlcklPUzo6c2V0RGlkRGlzbWlzc0NvbnRleHRNZW51Q2FsbGJhY2soSlNWYWx1ZVJlZiBj
YWxsYmFjaykKLXsKLSAgICBVSVNjcmlwdENvbnRyb2xsZXI6OnNldERpZERpc21pc3NDb250ZXh0
TWVudUNhbGxiYWNrKGNhbGxiYWNrKTsKLSAgICB3ZWJWaWV3KCkuZGlkRGlzbWlzc0NvbnRleHRN
ZW51Q2FsbGJhY2sgPSBtYWtlQmxvY2tQdHIoW3RoaXMsIHN0cm9uZ1RoaXMgPSBtYWtlUmVmKCp0
aGlzKV0gewotICAgICAgICBpZiAoIW1fY29udGV4dCkKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgbV9jb250ZXh0LT5maXJlQ2FsbGJhY2soQ2FsbGJhY2tUeXBlRGlkRGlzbWlzc0NvbnRl
eHRNZW51KTsKLSAgICB9KS5nZXQoKTsKLX0KIAogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXJJT1M6
OnNldFdpbGxCZWdpblpvb21pbmdDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQogewpAQCAt
MTI2OCwxMSArMTI0OCw2IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVySU9TOjppbnN0YWxsVGFw
R2VzdHVyZU9uV2luZG93KEpTVmFsdWVSZWYgY2FsbGJhY2spCiAgICAgfSkuZ2V0KCk7CiB9CiAK
LWJvb2wgVUlTY3JpcHRDb250cm9sbGVySU9TOjppc1Nob3dpbmdDb250ZXh0TWVudSgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIHdlYlZpZXcoKS5zaG93aW5nQ29udGV4dE1lbnU7Ci19Ci0KIH0KIAog
I2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzBhNDVlYTFjN2Y2YTYyNTE3
Nzk0ZGQwY2MyMDJlNjU0NDhkOWVhOC4uN2VhNmI1OGJmOTE0NmRkYThlOGNkYThkZTZmNjhiMDli
MmUwNmRkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyNiBAQAorMjAyMS0wMy0xNiAgRGV2aW4gUm91c3Nv
ICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBjaGFuZ2UgZm9yIHRoZSBs
YW5ndWFnZS9zdWJ0aXRsZSB0cmFja3MgYnV0dG9uIHRvIHVzZSBhbiBgTlNNZW51YCBpbnN0ZWFk
IG9mIHdlYiBjb250ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjMyMzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc1NDYyMzQwPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIG1lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9hdXRvLXRleHQtdHJhY2suaHRtbDogQWRkZWQu
CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2F1
dG8tdGV4dC10cmFjay1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9jbGljay10cmFjay1pbi1jb250ZXh0bWVu
dS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvY2xpY2stdHJhY2staW4tY29udGV4dG1lbnUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
aGlkZGVuLXRyYWNrcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaGlkZGVuLXRyYWNrcy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9v
ZmYtdGV4dC10cmFjay5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvb2ZmLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
c2hvdy1jb250ZXh0bWVudS10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3Vw
cG9ydC9zaG93LWNvbnRleHRtZW51LXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24t
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvdGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3Vw
cG9ydC90ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGktZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
aW9zL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tz
LXN1cHBvcnQtYXV0by10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1z
dXBwb3J0LWNsaWNrLXRyYWNrLWluLWNvbnRleHRtZW51Lmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mt
c3VwcG9ydC1jbGljay10cmFjay1pbi1jb250ZXh0bWVudS1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lv
cy90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3Vw
cG9ydC1oaWRkZW4tdHJhY2tzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0
LW9mZi10ZXh0LXRyYWNrLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10
cmFjay1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1zaG93LWNvbnRleHRt
ZW51LXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24uaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3Ry
YWNrcy1zdXBwb3J0LXNob3ctY29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tz
LWJ1dHRvbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNr
LXNlbGVjdGVkLXZpYS1tZWRpYS1hcGkuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LXRl
eHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisg
ICAgICAgIE1vdmUgdGhlIGlPUyB0cmFja3Mgc3VwcG9ydCB0ZXN0cyBvdXQgb2YgYW4gaU9TIGZv
bGRlciBzaW5jZSBtYWNPUyBub3cgYWxzbyB1c2VzIGEgY29udGV4dG1lbnUuCisKKyAgICAgICAg
KiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLWxv
YWRlci5qczoKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcmVzb3VyY2Vz
L21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzOgorICAgICAgICAoc2hvd1RyYWNrc1BhbmVsKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJv
bGxlci9tZWRpYS1jb250cm9sbGVyLWNsaWNrLW9uLXZpZGVvLWJhY2tncm91bmQtdG8tZGlzbWlz
cy10cmFja3MtcGFuZWwtc2hvdWxkLW5vdC10b2dnbGUtcGxheWJhY2suaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbGxlci9t
ZWRpYS1jb250cm9sbGVyLWNsaWNrLW9uLXZpZGVvLWJhY2tncm91bmQtdG8tZGlzbWlzcy10cmFj
a3MtcGFuZWwtc2hvdWxkLW5vdC10b2dnbGUtcGxheWJhY2stZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJh
Y2tzLXBhbmVsLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tz
LXBhbmVsLWNvbnRyb2xzLWJhci1yZW1haW5zLXZpc2libGUtYWZ0ZXItY2xpY2tpbmctb3Zlci1p
dC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWNvbnRyb2xzLWJhci1yZW1haW5zLXZpc2libGUtYWZ0
ZXItY2xpY2tpbmctb3Zlci1pdC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtaGlkZS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3MtcGFuZWwvdHJhY2tzLXBhbmVsLWhpZGUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVs
LWhpZGUtY2xpY2stb3V0c2lkZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWhpZGUtY2xpY2stb3V0
c2lkZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtaGlkZS1lc2Mta2V5Lmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5l
bC90cmFja3MtcGFuZWwtaGlkZS1lc2Mta2V5LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5l
bC1wb3B1bGF0aW9uLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcG9wdWxhdGlvbi1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1wYW5lbC90cmFja3MtcGFuZWwtcG9zaXRpb24tYW5kLXNpemUuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1w
YW5lbC1wb3NpdGlvbi1hbmQtc2l6ZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcHJl
dmVudC1jb250cm9scy1iYXItZnJvbS1mYWRpbmcuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBt
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wcmV2
ZW50LWNvbnRyb2xzLWJhci1mcm9tLWZhZGluZy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFu
ZWwtcHJldmVudC1kZWZhdWx0LW9uLWtleWRvd24uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBt
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wcmV2
ZW50LWRlZmF1bHQtb24ta2V5ZG93bi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcmln
aHQteC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXJpZ2h0LXgtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJh
Y2tzLXBhbmVsLXNlbGVjdC10cmFjay13aXRoLWtleWJvYXJkLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFu
ZWwtc2VsZWN0LXRyYWNrLXdpdGgta2V5Ym9hcmQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBh
bmVsLXNlbGVjdC10cmFjay13aXRoLW1vdXNlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtc2VsZWN0
LXRyYWNrLXdpdGgtbW91c2UtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXVwLWNsaWNr
LW91dHNpZGUtbWVkaWEtZG9lcy1ub3QtZGltaXNzLW1lZGlhLWNvbnRyb2xzLXdoZW4tbWVkaWEt
aXMtcGF1c2VkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtdXAtY2xpY2stb3V0c2lkZS1tZWRpYS1k
b2VzLW5vdC1kaW1pc3MtbWVkaWEtY29udHJvbHMtd2hlbi1tZWRpYS1pcy1wYXVzZWQtZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXVwLWNsaWNrLW92ZXItbWVkaWEtZG9lcy1ub3QtZGlt
aXNzLW1lZGlhLWNvbnRyb2xzLXdoZW4tbWVkaWEtaXMtcGxheWluZy5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tz
LXBhbmVsLXVwLWNsaWNrLW92ZXItbWVkaWEtZG9lcy1ub3QtZGltaXNzLW1lZGlhLWNvbnRyb2xz
LXdoZW4tbWVkaWEtaXMtcGxheWluZy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3Vw
cG9ydC1hdXRvLXRleHQtdHJhY2suaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWF1dG8t
dGV4dC10cmFjay1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1jbGljay10
cmFjay1pbi1wYW5lbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtY2xpY2stdHJhY2st
aW4tcGFuZWwtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRy
YWNrcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC9tYWMvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9t
YWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1hbmQtcG9wdWxhdGUtcGFuZWwuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFj
L3RyYWNrcy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBv
cnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmctY29udHJvbHMu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmct
Y29udHJvbHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5l
bC1mdWxsc2NyZWVuLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1
bGxzY3JlZW4tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5l
bC10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFj
a3Mtc3VwcG9ydC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24t
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxlY3Rl
ZC12aWEtbWVkaWEtYXBpLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNr
LXNlbGVjdGVkLXZpYS1tZWRpYS1hcGktZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICBS
ZW1vdmUgZXZlcnl0aGluZyByZWxhdGVkIHRvIGBUcmFja3NQYW5lbGAgbm93IHRoYXQgbWFjT1Mg
YWxzbyB1c2VzIGEgY29udGV4dG1lbnUuCisKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvY2FwdGlvbnMtb2Zmc2V0LXdpdGgtY29udHJvbHMtYmFy
Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtY2FwdGlvbnMtb2Zmc2V0LXdpdGgtY29u
dHJvbHMtYmFyLmh0bWwuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1zdXBwb3J0L2NhcHRpb25zLW9mZnNldC13aXRoLWNvbnRyb2xzLWJhci1leHBlY3RlZC50
eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtY2FwdGlvbnMtb2Zmc2V0LXdpdGgtY29udHJv
bHMtYmFyLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvbm8tdHJhY2tzLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBv
cnQtbm8tdHJhY2tzLmh0bWwuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1zdXBwb3J0L25vLXRyYWNrcy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tz
LXN1cHBvcnQtbm8tdHJhY2tzLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgUmVuYW1lZCB0aGVzZSB0
ZXN0cyB0byByZW1vdmUgdGhlIHJlZHVuZGFudCAidHJhY2tzLXN1cHBvcnQiLgorCisgICAgICAg
ICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBw
b3J0LWF1ZGlvLXRyYWNrcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1hdWRpby10cmFja3Mt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrcy5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgIFRoZXNlIHRlc3RzIGFyZSBjb3ZlcmVkIGJ5IHRoZSBvdGhlciBhZGRlZC9yZW5hbWVkIHRl
c3RzIGFib3ZlLgorCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29z
LWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9s
cy1idXR0b25zLXN0eWxlcy5odG1sOgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVk
aWEtY29udHJvbHMtYnV0dG9ucy1zdHlsZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIG1lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21h
Y29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtY29uc3RydWN0b3IuaHRtbDoKKyAgICAgICAg
KiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250
cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWNvbnN0cnVjdG9yLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNj
cmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLXJpZ2h0
LWNvbnRhaW5lci1tYXJnaW4uaHRtbDoKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1jb250
cm9scy12b2x1bWUtc2xpZGVyLXZpc2liaWxpdHkuaHRtbDoKKyAgICAgICAgKiBtZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1m
dWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLXJpZ2h0LWNvbnRhaW5lci1tYXJnaW4tZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1pbmxpbmUt
bWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWRyb3BwaW5nLWNvbnRyb2xzLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtaW5s
aW5lLW1lZGlhLWNvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1zaG93cy1zdGFydC1idXR0b24u
aHRtbDoKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5l
LW1lZGlhLWNvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1zaG93cy1zdGFydC1idXR0b24tZXhw
ZWN0ZWQudHh0OgorICAgICAgICBVcGRhdGUgZXhpc3RpbmcgdGVzdHMgdG8gYWNjb21vZGF0ZSB0
aGUgYE92ZXJmbG93QnV0dG9uYC4KKworICAgICAgICAqIHJlc291cmNlcy91aS1oZWxwZXIuanM6
CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIuY2hvb3NlTWVudUFjdGlvbik6IEFkZGVkLgorICAg
ICAgICAod2luZG93LlVJSGVscGVyLmFzeW5jIGNob29zZU1lbnVBY3Rpb24pOiBEZWxldGVkLgor
ICAgICAgICBVc2UgYFVJU2NyaXB0Q29udHJvbGxlci5wcm90b3R5cGUuY2hvb3NlTWVudUFjdGlv
bmAgaW5zdGVhZCBvZiBhIGNvbWJpbmF0aW9uIG9mCisgICAgICAgIGBVSVNjcmlwdENvbnRyb2xs
ZXIucHJvdG90eXBlLnJlY3RGb3JNZW51QWN0aW9uYCBhbmQgYFVJU2NyaXB0Q29udHJvbGxlci5w
cm90b3R5cGUuYWN0aXZhdGVBdGAKKyAgICAgICAgc2luY2UgYFVJU2NyaXB0Q29udHJvbGxlcjo6
Y2hvb3NlTWVudUFjdGlvbmAgYmFzaWNhbGx5IGRvZXMgdGhhdCBhbnl3YXlzLgorCisgICAgICAg
ICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0
aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjEtMDMtMTIgIFJvYmVy
dCBKZW5uZXIgIDxqZW5uZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFsgTWFjT1Mgd2syIF0gaW5z
cGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnRzL3Jlc29sdmVkLWR1bXAtYWxsLWlubGluZS1zY3Jp
cHQtcGF1c2UtbG9jYXRpb25zLmh0bWwgaXMgZmxha2V5IHRpbWluZyBvdXQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IDU1YTg4YjkyYTk4Zjg1YzlhM2YxMTY1MzcwMzc0OWYxMDQ3MzAyZTQuLjIxMmE3
MjMyM2U5NGZlMDRjOWZjYzk1MzQwZDM3ZGE5OTkxNWUwMDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpA
QCAtNjQsNiArNjQsNyBAQCBmYXN0L3RleHQvbWFjIFsgU2tpcCBdCiBzY3JvbGxpbmdjb29yZGlu
YXRvciBbIFNraXAgXQogbWVkaWEvbWFjIFsgU2tpcCBdCiBtZWRpYS9pb3MgWyBTa2lwIF0KK21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydCBbIFNraXAgXQogZmFzdC90
ZXh0LWF1dG9zaXppbmcgWyBTa2lwIF0KIGZhc3QvY3NzL3ZhcmlhYmxlcy9lbnYvaW9zIFsgU2tp
cCBdCiBodHRwL3Rlc3RzL2V2ZW50cy90b3VjaC9pb3MgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1l
ZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtYnV0dG9ucy1zdHls
ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1j
b250cm9scy1idXR0b25zLXN0eWxlcy1leHBlY3RlZC50eHQKaW5kZXggZjg5ZGJjYjQ3MzQ5NmIw
ODI0ZmUxZWYyMzllYTVhNzdlNTY5NTBlNy4uNjhiYTIxODk0YmZkNWYxOGZjNGRhZmZkOTA5OTM3
OTE4ODExODEzMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1t
ZWRpYS1jb250cm9scy1idXR0b25zLXN0eWxlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29u
dHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1idXR0b25zLXN0eWxlcy1leHBl
Y3RlZC50eHQKQEAgLTI2LDE3ICsyNiwxNyBAQCBQQVNTIGdldENvbXB1dGVkU3R5bGUoYnV0dG9u
LmVsZW1lbnQpLmhlaWdodCBpcyAiMTZweCIKIAogUGlQQnV0dG9uCiBQQVNTIGdldENvbXB1dGVk
U3R5bGUoYnV0dG9uLmVsZW1lbnQpLnRvcCBiZWNhbWUgIjE4cHgiCi1QQVNTIGdldENvbXB1dGVk
U3R5bGUoYnV0dG9uLmVsZW1lbnQpLmxlZnQgaXMgIjQ3cHgiCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoYnV0dG9uLmVsZW1lbnQpLmxlZnQgaXMgIjQzcHgiCiBQQVNTIGdldENvbXB1dGVkU3R5bGUo
YnV0dG9uLmVsZW1lbnQpLmhlaWdodCBpcyAiMTZweCIKIAogVHJhY2tzQnV0dG9uCiBQQVNTIGdl
dENvbXB1dGVkU3R5bGUoYnV0dG9uLmVsZW1lbnQpLnRvcCBiZWNhbWUgIjE4cHgiCi1QQVNTIGdl
dENvbXB1dGVkU3R5bGUoYnV0dG9uLmVsZW1lbnQpLmxlZnQgaXMgIjgycHgiCitQQVNTIGdldENv
bXB1dGVkU3R5bGUoYnV0dG9uLmVsZW1lbnQpLmxlZnQgaXMgIjc0cHgiCiBQQVNTIGdldENvbXB1
dGVkU3R5bGUoYnV0dG9uLmVsZW1lbnQpLmhlaWdodCBpcyAiMTZweCIKIAogRnVsbHNjcmVlbkJ1
dHRvbgogUEFTUyBnZXRDb21wdXRlZFN0eWxlKGJ1dHRvbi5lbGVtZW50KS50b3AgYmVjYW1lICIx
OHB4IgotUEFTUyBnZXRDb21wdXRlZFN0eWxlKGJ1dHRvbi5lbGVtZW50KS5sZWZ0IGlzICIxMTVw
eCIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShidXR0b24uZWxlbWVudCkubGVmdCBpcyAiMTAzcHgi
CiBQQVNTIGdldENvbXB1dGVkU3R5bGUoYnV0dG9uLmVsZW1lbnQpLmhlaWdodCBpcyAiMTZweCIK
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29u
dHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1idXR0b25zLXN0eWxlcy5odG1s
IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3Jl
ZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1idXR0b25z
LXN0eWxlcy5odG1sCmluZGV4IGFhYWRlYzQ4Yzc2Y2I0NGRiMThjMWQxMThhYWFlMjMyNmJiYzc2
YTUuLmFlNmUwMDBmYzNmMTk3ZWIyODQ1OGQ5ZmUwMjkzNTIyNzMxMWU3NzkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVu
LW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtYnV0dG9ucy1z
dHlsZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
bWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNv
bnRyb2xzLWJ1dHRvbnMtc3R5bGVzLmh0bWwKQEAgLTE2LDkgKzE2LDkgQEAgY29uc3QgYnV0dG9u
UG9zaXRpb25zID0gWwogICAgIFttZWRpYUNvbnRyb2xzLnBsYXlQYXVzZUJ1dHRvbiwgNzgsIDks
IDI2XSwKICAgICBbbWVkaWFDb250cm9scy5mb3J3YXJkQnV0dG9uLCAxMjcsIDE0LCAxNl0sCiAg
ICAgW21lZGlhQ29udHJvbHMuYWlycGxheUJ1dHRvbiwgMTIsIDE4LCAxNl0sCi0gICAgW21lZGlh
Q29udHJvbHMucGlwQnV0dG9uLCA0NywgMTgsIDE2XSwKLSAgICBbbWVkaWFDb250cm9scy50cmFj
a3NCdXR0b24sIDgyLCAxOCwgMTZdLAotICAgIFttZWRpYUNvbnRyb2xzLmZ1bGxzY3JlZW5CdXR0
b24sIDExNSwgMTgsIDE2XQorICAgIFttZWRpYUNvbnRyb2xzLnBpcEJ1dHRvbiwgNDMsIDE4LCAx
Nl0sCisgICAgW21lZGlhQ29udHJvbHMudHJhY2tzQnV0dG9uLCA3NCwgMTgsIDE2XSwKKyAgICBb
bWVkaWFDb250cm9scy5mdWxsc2NyZWVuQnV0dG9uLCAxMDMsIDE4LCAxNl0sCiBdOwogCiBsZXQg
YnV0dG9uLCB4LCB5OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVl
bi1tZWRpYS1jb250cm9scy1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9s
cy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4
dAppbmRleCBhYmNhZWVjZjM4NGU5M2RmNjk3M2Q5MjUwNGQ0MWY1MGUzODVkODVmLi43NWY3ZTM3
MDZlMjFmNGI2Y2NhYmQxZGY5MjkxYjZkYTI2MDMwMGU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250
cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWNvbnN0cnVjdG9yLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3Mt
ZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xz
LWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dApAQCAtMjgsNyArMjgsNyBAQCBQQVNTIG1lZGlhQ29u
dHJvbHMuYm90dG9tQ29udHJvbHNCYXIuY2hpbGRyZW5bMl0ucmlnaHRNYXJnaW4gaXMgMjcKIFBB
U1MgbWVkaWFDb250cm9scy5ib3R0b21Db250cm9sc0Jhci5jaGlsZHJlblsyXS5idXR0b25NYXJn
aW4gaXMgMjcKIAogUmlnaHQgY29udGFpbmVyCi1QQVNTIG1lZGlhQ29udHJvbHMuYm90dG9tQ29u
dHJvbHNCYXIuY2hpbGRyZW5bM10uY2hpbGRyZW4gaXMgW21lZGlhQ29udHJvbHMuYWlycGxheUJ1
dHRvbiwgbWVkaWFDb250cm9scy5waXBCdXR0b24sIG1lZGlhQ29udHJvbHMudHJhY2tzQnV0dG9u
LCBtZWRpYUNvbnRyb2xzLmZ1bGxzY3JlZW5CdXR0b25dCitQQVNTIG1lZGlhQ29udHJvbHMuYm90
dG9tQ29udHJvbHNCYXIuY2hpbGRyZW5bM10uY2hpbGRyZW4gaXMgW21lZGlhQ29udHJvbHMuYWly
cGxheUJ1dHRvbiwgbWVkaWFDb250cm9scy5waXBCdXR0b24sIG1lZGlhQ29udHJvbHMudHJhY2tz
QnV0dG9uLCBtZWRpYUNvbnRyb2xzLmZ1bGxzY3JlZW5CdXR0b24sIG1lZGlhQ29udHJvbHMub3Zl
cmZsb3dCdXR0b25dCiBQQVNTIG1lZGlhQ29udHJvbHMuYm90dG9tQ29udHJvbHNCYXIuY2hpbGRy
ZW5bM10uZWxlbWVudC5jbGFzc05hbWUgaXMgImJ1dHRvbnMtY29udGFpbmVyIHJpZ2h0IgogUEFT
UyBtZWRpYUNvbnRyb2xzLmJvdHRvbUNvbnRyb2xzQmFyLmNoaWxkcmVuWzNdLmxlZnRNYXJnaW4g
aXMgMTIKIFBBU1MgbWVkaWFDb250cm9scy5ib3R0b21Db250cm9sc0Jhci5jaGlsZHJlblszXS5y
aWdodE1hcmdpbiBpcyAxMgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNj
cmVlbi1tZWRpYS1jb250cm9scy1jb25zdHJ1Y3Rvci5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFj
b3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1jb25zdHJ1Y3Rvci5odG1sCmluZGV4IDk2Mjc3
MTBmZTllODUyNGNiYTJmMDIzNGEzYzVkZDg3YTE2OTU0ZTYuLmE5YjU5NWQ5YWIyZjJkMTM3MGU5
NzIwZjNmYTI2ZTkxZWRlZmM0MmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1
bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtY29uc3RydWN0b3IuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250
cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWNvbnN0cnVjdG9yLmh0bWwKQEAg
LTM2LDcgKzM2LDcgQEAgc2hvdWxkQmUoIm1lZGlhQ29udHJvbHMuYm90dG9tQ29udHJvbHNCYXIu
Y2hpbGRyZW5bMl0uYnV0dG9uTWFyZ2luIiwgIjI3Iik7CiAKIGRlYnVnKCIiKTsKIGRlYnVnKCJS
aWdodCBjb250YWluZXIiKTsKLXNob3VsZEJlKCJtZWRpYUNvbnRyb2xzLmJvdHRvbUNvbnRyb2xz
QmFyLmNoaWxkcmVuWzNdLmNoaWxkcmVuIiwgIlttZWRpYUNvbnRyb2xzLmFpcnBsYXlCdXR0b24s
IG1lZGlhQ29udHJvbHMucGlwQnV0dG9uLCBtZWRpYUNvbnRyb2xzLnRyYWNrc0J1dHRvbiwgbWVk
aWFDb250cm9scy5mdWxsc2NyZWVuQnV0dG9uXSIpOworc2hvdWxkQmUoIm1lZGlhQ29udHJvbHMu
Ym90dG9tQ29udHJvbHNCYXIuY2hpbGRyZW5bM10uY2hpbGRyZW4iLCAiW21lZGlhQ29udHJvbHMu
YWlycGxheUJ1dHRvbiwgbWVkaWFDb250cm9scy5waXBCdXR0b24sIG1lZGlhQ29udHJvbHMudHJh
Y2tzQnV0dG9uLCBtZWRpYUNvbnRyb2xzLmZ1bGxzY3JlZW5CdXR0b24sIG1lZGlhQ29udHJvbHMu
b3ZlcmZsb3dCdXR0b25dIik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm1lZGlhQ29udHJvbHMu
Ym90dG9tQ29udHJvbHNCYXIuY2hpbGRyZW5bM10uZWxlbWVudC5jbGFzc05hbWUiLCAiYnV0dG9u
cy1jb250YWluZXIgcmlnaHQiKTsKIHNob3VsZEJlKCJtZWRpYUNvbnRyb2xzLmJvdHRvbUNvbnRy
b2xzQmFyLmNoaWxkcmVuWzNdLmxlZnRNYXJnaW4iLCAiMTIiKTsKIHNob3VsZEJlKCJtZWRpYUNv
bnRyb2xzLmJvdHRvbUNvbnRyb2xzQmFyLmNoaWxkcmVuWzNdLnJpZ2h0TWFyZ2luIiwgIjEyIik7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFj
b3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRy
b2xzLXJpZ2h0LWNvbnRhaW5lci1tYXJnaW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMv
bWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1yaWdodC1jb250YWluZXItbWFyZ2luLWV4
cGVjdGVkLnR4dAppbmRleCA0YTE4ODVmNTdlMTVlODA2OGIzM2EwNGQ3NGE3YjY2MTBlOWM5MjE5
Li41YzQzNzNhN2ZjNTIwNzk1YWI3Njg0YmE3N2I4MGQ4ZmZjOWNkOTdmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1t
ZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLXJpZ2h0LWNvbnRh
aW5lci1tYXJnaW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxz
Y3JlZW4tbWVkaWEtY29udHJvbHMtcmlnaHQtY29udGFpbmVyLW1hcmdpbi1leHBlY3RlZC50eHQK
QEAgLTQsMTAgKzQsMTAgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogCiA0IGVuYWJsZWQg
YnV0dG9ucwotUEFTUyByaWdodENvbnRhaW5lci5idXR0b25NYXJnaW4gaXMgMTYKK1BBU1Mgcmln
aHRDb250YWluZXIuYnV0dG9uTWFyZ2luIGlzIDEyCiAKIDMgZW5hYmxlZCBidXR0b25zCi1QQVNT
IHJpZ2h0Q29udGFpbmVyLmJ1dHRvbk1hcmdpbiBpcyAyNAorUEFTUyByaWdodENvbnRhaW5lci5i
dXR0b25NYXJnaW4gaXMgMTYKIAogMiBlbmFibGVkIGJ1dHRvbnMKIFBBU1MgcmlnaHRDb250YWlu
ZXIuYnV0dG9uTWFyZ2luIGlzIDI0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1m
dWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLXJpZ2h0LWNvbnRhaW5lci1tYXJnaW4uaHRtbCBiL0xh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1l
ZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtcmlnaHQtY29udGFp
bmVyLW1hcmdpbi5odG1sCmluZGV4IGZiN2JmOTgzYWQ5MTAzY2Y0ODI5ZThjMmI3NjVkMTBlZTdi
ODA3YzYuLjlmNGNjMGQzYjA1MWY2MDEzZjFjOGM3MWVkNmYxOGM4ZjkwMTViOWUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2Ny
ZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtcmlnaHQt
Y29udGFpbmVyLW1hcmdpbi5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3Jl
ZW4tbWVkaWEtY29udHJvbHMtcmlnaHQtY29udGFpbmVyLW1hcmdpbi5odG1sCkBAIC0xOCwxMiAr
MTgsMTIgQEAgc2NoZWR1bGVyLmZyYW1lRGlkRmlyZSA9IGZ1bmN0aW9uKCkKIAogICAgIGlmIChu
dW1iZXJPZkZyYW1lcyA9PSAxKSB7CiAgICAgICAgIGRlYnVnKCI0IGVuYWJsZWQgYnV0dG9ucyIp
Ci0gICAgICAgIHNob3VsZEJlKCJyaWdodENvbnRhaW5lci5idXR0b25NYXJnaW4iLCAiMTYiKTsK
KyAgICAgICAgc2hvdWxkQmUoInJpZ2h0Q29udGFpbmVyLmJ1dHRvbk1hcmdpbiIsICIxMiIpOwog
ICAgICAgICBkZWJ1ZygiIik7CiAgICAgICAgIG1lZGlhQ29udHJvbHMudHJhY2tzQnV0dG9uLmVu
YWJsZWQgPSBmYWxzZTsKICAgICB9IGVsc2UgaWYgKG51bWJlck9mRnJhbWVzID09IDIpIHsKICAg
ICAgICAgZGVidWcoIjMgZW5hYmxlZCBidXR0b25zIikKLSAgICAgICAgc2hvdWxkQmUoInJpZ2h0
Q29udGFpbmVyLmJ1dHRvbk1hcmdpbiIsICIyNCIpOworICAgICAgICBzaG91bGRCZSgicmlnaHRD
b250YWluZXIuYnV0dG9uTWFyZ2luIiwgIjE2Iik7CiAgICAgICAgIG1lZGlhQ29udHJvbHMucGlw
QnV0dG9uLmVuYWJsZWQgPSBmYWxzZTsKICAgICAgICAgZGVidWcoIiIpOwogICAgIH0gZWxzZSBp
ZiAobnVtYmVyT2ZGcmFtZXMgPT0gMykgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1jb250cm9scy9tYWNvcy1p
bmxpbmUtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci12aXNpYmlsaXR5Lmh0bWwgYi9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNv
bnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLXZpc2liaWxp
dHkuaHRtbAppbmRleCAyMjg4OTVmMDRkZDk0ZGM3NTZiZDZmYjZlYzk2ZWQyYTJjNDljM2JhLi40
MTE2ZjlmOWRkMTFlN2JiMjU5ZjMzNTY3ODVmNDAxODcyNWYzMjEzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNv
bnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLXZpc2liaWxp
dHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFj
b3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1jb250cm9scy12b2x1
bWUtc2xpZGVyLXZpc2liaWxpdHkuaHRtbApAQCAtOSwyNyArOSwzMiBAQCBjb25zdCBtZWRpYUNv
bnRyb2xzID0gbmV3IE1hY09TSW5saW5lTWVkaWFDb250cm9sczsKIGNvbnN0IHZvbHVtZVNsaWRl
ckNvbnRhaW5lciA9IG1lZGlhQ29udHJvbHMudm9sdW1lU2xpZGVyLnBhcmVudDsKIAogZGVidWco
IkRlZmF1bHQgc3RhdGUiKQorc2NoZWR1bGVyLmZsdXNoU2NoZWR1bGVkTGF5b3V0Q2FsbGJhY2tz
KCk7CiBzaG91bGRCZU51bGwoInZvbHVtZVNsaWRlckNvbnRhaW5lci5wYXJlbnQiKTsKIAogZGVi
dWcoIiIpOwogZGVidWcoIk1vdXNlIGVudGVycyB0aGUgbXV0ZSBidXR0b24iKTsKIG1lZGlhQ29u
dHJvbHMubXV0ZUJ1dHRvbi5lbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IE1vdXNlRXZlbnQoIm1v
dXNlZW50ZXIiKSk7CitzY2hlZHVsZXIuZmx1c2hTY2hlZHVsZWRMYXlvdXRDYWxsYmFja3MoKTsK
IHNob3VsZEJlKCJ2b2x1bWVTbGlkZXJDb250YWluZXIucGFyZW50IiwgIm1lZGlhQ29udHJvbHMi
KTsKIAogZGVidWcoIiIpOwogZGVidWcoIk1vdXNlIGxlYXZlcyB0aGUgbXV0ZSBidXR0b24iKTsK
IG1lZGlhQ29udHJvbHMubXV0ZUJ1dHRvbi5lbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IE1vdXNl
RXZlbnQoIm1vdXNlbGVhdmUiKSk7CitzY2hlZHVsZXIuZmx1c2hTY2hlZHVsZWRMYXlvdXRDYWxs
YmFja3MoKTsKIHNob3VsZEJlTnVsbCgidm9sdW1lU2xpZGVyQ29udGFpbmVyLnBhcmVudCIpOwog
CiBkZWJ1ZygiIik7CiBkZWJ1ZygiTW91c2UgZW50ZXJzIHRoZSBtdXRlIGJ1dHRvbiwgdGhlbiBs
ZWF2ZXMgaXQgYnV0IGVudGVycyB0aGUgdm9sdW1lIHNsaWRlciBjb250YWluZXIiKTsKIG1lZGlh
Q29udHJvbHMubXV0ZUJ1dHRvbi5lbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IE1vdXNlRXZlbnQo
Im1vdXNlZW50ZXIiKSk7CiBtZWRpYUNvbnRyb2xzLm11dGVCdXR0b24uZWxlbWVudC5kaXNwYXRj
aEV2ZW50KG5ldyBNb3VzZUV2ZW50KCJtb3VzZWxlYXZlIiwgeyByZWxhdGVkVGFyZ2V0OiB2b2x1
bWVTbGlkZXJDb250YWluZXIuZWxlbWVudCB9KSk7CitzY2hlZHVsZXIuZmx1c2hTY2hlZHVsZWRM
YXlvdXRDYWxsYmFja3MoKTsKIHNob3VsZEJlKCJ2b2x1bWVTbGlkZXJDb250YWluZXIucGFyZW50
IiwgIm1lZGlhQ29udHJvbHMiKTsKIAogZGVidWcoIiIpOwogZGVidWcoIk1vdXNlIGxlYXZlcyB0
aGUgdm9sdW1lIHNsaWRlciBjb250YWluZXIiKTsKIHZvbHVtZVNsaWRlckNvbnRhaW5lci5lbGVt
ZW50LmRpc3BhdGNoRXZlbnQobmV3IE1vdXNlRXZlbnQoIm1vdXNlbGVhdmUiKSk7CitzY2hlZHVs
ZXIuZmx1c2hTY2hlZHVsZWRMYXlvdXRDYWxsYmFja3MoKTsKIHNob3VsZEJlTnVsbCgidm9sdW1l
U2xpZGVyQ29udGFpbmVyLnBhcmVudCIpOwogCiBkZWJ1ZygiIik7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNv
bnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1kcm9wcGluZy1jb250cm9scy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1l
ZGlhLWNvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1kcm9wcGluZy1jb250cm9scy1leHBlY3Rl
ZC50eHQKaW5kZXggZTYyY2I2MGU5OWE2OTFiMDRhZDMzN2M2MmI0ZTk4NTMxYjc1MGFjMy4uYTAw
OTI0NDg1OTM5YTg5NGU0NjNmYzhjMmE1YmU0Mjg5NmZkYTEzZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1jb250
cm9scy9tYWNvcy1pbmxpbmUtbWVkaWEtZHJvcHBpbmctY29udHJvbHMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1pbmxpbmUt
bWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWRyb3BwaW5nLWNvbnRyb2xzLWV4cGVj
dGVkLnR4dApAQCAtOSw5ICs5LDkgQEAgU2tpcEZvcndhcmRCdXR0b24gd2FzIGRyb3BwZWQgYXQg
NDgyLgogU2tpcEJhY2tCdXR0b24gd2FzIGRyb3BwZWQgYXQgNDUzLgogQWlycGxheUJ1dHRvbiB3
YXMgZHJvcHBlZCBhdCA0MjQuCiBUcmFja3NCdXR0b24gd2FzIGRyb3BwZWQgYXQgMzkyLgotUGlQ
QnV0dG9uIHdhcyBkcm9wcGVkIGF0IDM2MC4KLUZ1bGxzY3JlZW5CdXR0b24gd2FzIGRyb3BwZWQg
YXQgMzI1LgotTXV0ZUJ1dHRvbiB3YXMgZHJvcHBlZCBhdCAyOTQuCitQaVBCdXR0b24gd2FzIGRy
b3BwZWQgYXQgMzkyLgorRnVsbHNjcmVlbkJ1dHRvbiB3YXMgZHJvcHBlZCBhdCAzMTkuCitNdXRl
QnV0dG9uIHdhcyBkcm9wcGVkIGF0IDMxOS4KIAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1zaG93cy1z
dGFydC1idXR0b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1jb250cm9scy9tYWNvcy1pbmxpbmUtbWVkaWEt
c2hvd3Mtc3RhcnQtYnV0dG9uLWV4cGVjdGVkLnR4dAppbmRleCA1YWZhYzBhMDlhMTIwNmE5YjYx
ODA3NzY0ZWY5N2JjMzY4NjNiYTE4Li5jMTk2MTM1MTNlMTM1N2U4YmFmMWEwOTQyMGI3ZDI3MzVl
ZDMwZmY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1zaG93cy1z
dGFydC1idXR0b24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy9tYWNvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1l
ZGlhLXNob3dzLXN0YXJ0LWJ1dHRvbi1leHBlY3RlZC50eHQKQEAgLTUsNyArNSw3IEBAIE9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFCiAKIERlZmF1bHQgd2hlcmUgc2hvd3NTdGFydEJ1dHRvbiA9IGZh
bHNlCiBQQVNTIG1lZGlhQ29udHJvbHMuc2hvd3NTdGFydEJ1dHRvbiBpcyBmYWxzZQotUEFTUyBt
ZWRpYUNvbnRyb2xzLmNoaWxkcmVuIGlzIFttZWRpYUNvbnRyb2xzLnRvcExlZnRDb250cm9sc0Jh
ciwgbWVkaWFDb250cm9scy5ib3R0b21Db250cm9sc0Jhcl0KK1BBU1MgbWVkaWFDb250cm9scy5j
aGlsZHJlbiBpcyBbbWVkaWFDb250cm9scy50b3BMZWZ0Q29udHJvbHNCYXIsIG1lZGlhQ29udHJv
bHMuYm90dG9tQ29udHJvbHNCYXIsIG1lZGlhQ29udHJvbHMudG9wUmlnaHRDb250cm9sc0Jhcl0K
IAogc2hvd3NTdGFydEJ1dHRvbiA9IHRydWUKIFBBU1MgbWVkaWFDb250cm9scy5zaG93c1N0YXJ0
QnV0dG9uIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy9tYWNvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlh
LXNob3dzLXN0YXJ0LWJ1dHRvbi5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1jb250cm9scy9tYWNvcy1pbmxpbmUtbWVkaWEt
c2hvd3Mtc3RhcnQtYnV0dG9uLmh0bWwKaW5kZXggNzI0MGJhYjg4YTU1YTY3ZGYyODcxNjgzYWY1
M2Y4Y2I3ZjdlZTJhMS4uNDgyNGJjZGIyODMxZjJlZWE5NmE5NzdiZDY0NDc1Njg0MzQ4YTg4ZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29z
LWlubGluZS1tZWRpYS1jb250cm9scy9tYWNvcy1pbmxpbmUtbWVkaWEtc2hvd3Mtc3RhcnQtYnV0
dG9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21h
Y29zLWlubGluZS1tZWRpYS1jb250cm9scy9tYWNvcy1pbmxpbmUtbWVkaWEtc2hvd3Mtc3RhcnQt
YnV0dG9uLmh0bWwKQEAgLTgsMTIgKzgsMTQgQEAgZGVzY3JpcHRpb24oIlRlc3RpbmcgdGhlIDxj
b2RlPk1hY09TSW5saW5lTWVkaWFDb250cm9sczwvY29kZT4gc2hvd3NTdGFydEJ1dHRvbgogY29u
c3QgbWVkaWFDb250cm9scyA9IG5ldyBNYWNPU0lubGluZU1lZGlhQ29udHJvbHM7CiAKIGRlYnVn
KCJEZWZhdWx0IHdoZXJlIHNob3dzU3RhcnRCdXR0b24gPSBmYWxzZSIpOworc2NoZWR1bGVyLmZs
dXNoU2NoZWR1bGVkTGF5b3V0Q2FsbGJhY2tzKCk7CiBzaG91bGRCZUZhbHNlKCJtZWRpYUNvbnRy
b2xzLnNob3dzU3RhcnRCdXR0b24iKTsKLXNob3VsZEJlKCJtZWRpYUNvbnRyb2xzLmNoaWxkcmVu
IiwgIlttZWRpYUNvbnRyb2xzLnRvcExlZnRDb250cm9sc0JhciwgbWVkaWFDb250cm9scy5ib3R0
b21Db250cm9sc0Jhcl0iKTsKK3Nob3VsZEJlKCJtZWRpYUNvbnRyb2xzLmNoaWxkcmVuIiwgIltt
ZWRpYUNvbnRyb2xzLnRvcExlZnRDb250cm9sc0JhciwgbWVkaWFDb250cm9scy5ib3R0b21Db250
cm9sc0JhciwgbWVkaWFDb250cm9scy50b3BSaWdodENvbnRyb2xzQmFyXSIpOwogCiBkZWJ1Zygi
Iik7CiBkZWJ1Zygic2hvd3NTdGFydEJ1dHRvbiA9IHRydWUiKTsKIG1lZGlhQ29udHJvbHMuc2hv
d3NTdGFydEJ1dHRvbiA9IHRydWU7CitzY2hlZHVsZXIuZmx1c2hTY2hlZHVsZWRMYXlvdXRDYWxs
YmFja3MoKTsKIHNob3VsZEJlVHJ1ZSgibWVkaWFDb250cm9scy5zaG93c1N0YXJ0QnV0dG9uIik7
CiBzaG91bGRCZSgibWVkaWFDb250cm9scy5jaGlsZHJlbiIsICJbbWVkaWFDb250cm9scy5wbGF5
UGF1c2VCdXR0b25dIik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXItY2xpY2stb24t
dmlkZW8tYmFja2dyb3VuZC10by1kaXNtaXNzLXRyYWNrcy1wYW5lbC1zaG91bGQtbm90LXRvZ2ds
ZS1wbGF5YmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWNsaWNrLW9uLXZpZGVv
LWJhY2tncm91bmQtdG8tZGlzbWlzcy10cmFja3MtcGFuZWwtc2hvdWxkLW5vdC10b2dnbGUtcGxh
eWJhY2stZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NzljZTRl
MmM5MTJjOGZkY2RmNGYzM2IwNDQ5YWY0Yjc2NjU3MjRkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXItY2xpY2stb24tdmlkZW8t
YmFja2dyb3VuZC10by1kaXNtaXNzLXRyYWNrcy1wYW5lbC1zaG91bGQtbm90LXRvZ2dsZS1wbGF5
YmFjay1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1UZXN0aW5n
IHRoYXQgY2xpY2tpbmcgb24gYSBwYXVzZWQgdmlkZW8ncyBiYWNrZ3JvdW5kIHRvIGRpbWlzcyB0
aGUgdHJhY2tzIHBhbmVsIGRvZXMgbm90IHJlc3VtZSBpdC4KLQotT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgotCi0KLVBBU1MgbWVkaWEucGF1c2VkIGlzIHRydWUKLQotQ2xpY2tpbmcgb24gdHJh
Y2tzIGJ1dHRvbiB0byBzaG93IHRyYWNrcyBwYW5lbAotCi1DbGlja2luZyBvbiB2aWRlbyBiYWNr
Z3JvdW5kCi1QQVNTIG1lZGlhLnBhdXNlZCBpcyB0cnVlCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9s
bGVyLWNsaWNrLW9uLXZpZGVvLWJhY2tncm91bmQtdG8tZGlzbWlzcy10cmFja3MtcGFuZWwtc2hv
dWxkLW5vdC10b2dnbGUtcGxheWJhY2suaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXItY2xpY2stb24t
dmlkZW8tYmFja2dyb3VuZC10by1kaXNtaXNzLXRyYWNrcy1wYW5lbC1zaG91bGQtbm90LXRvZ2ds
ZS1wbGF5YmFjay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NDY1ZWViYzFm
OTM4YTMwYTBmM2FiODNhNjZiYzZiZTBhMDQ3NTZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXItY2xpY2stb24tdmlkZW8tYmFj
a2dyb3VuZC10by1kaXNtaXNzLXRyYWNrcy1wYW5lbC1zaG91bGQtbm90LXRvZ2dsZS1wbGF5YmFj
ay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLWxvYWRlci5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij48L3NjcmlwdD4KLTxib2R5PgotPHZpZGVvIHNyYz0iLi4vLi4vY29udGVudC9DQytTdWJ0aXRs
ZXMubW92IiBzdHlsZT0id2lkdGg6IDY0MHB4OyBoZWlnaHQ6IDM2MHB4OyIgY29udHJvbHMgYXV0
b3BsYXk+PC92aWRlbz4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotZGVzY3Jp
cHRpb24oIlRlc3RpbmcgdGhhdCBjbGlja2luZyBvbiBhIHBhdXNlZCB2aWRlbydzIGJhY2tncm91
bmQgdG8gZGltaXNzIHRoZSB0cmFja3MgcGFuZWwgZG9lcyBub3QgcmVzdW1lIGl0LiIpOwotCi13
aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWNvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxz
LnNoYWRvd1Jvb3QobWVkaWEpOwotCi1tZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkg
PT4gewotICAgIG1lZGlhLnBhdXNlKCk7Ci0gICAgc2hvdWxkQmVUcnVlKCJtZWRpYS5wYXVzZWQi
KTsKLQotICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewotICAgICAgICBj
bGlja09uVHJhY2tzQnV0dG9uKCk7Ci0gICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJh
bWUoKCkgPT4gewotICAgICAgICAgICAgY2xpY2tPblZpZGVvQmFja2dyb3VuZCgpOwotICAgICAg
ICAgICAgc2hvdWxkQmVUcnVlKCJtZWRpYS5wYXVzZWQiKTsKLQotICAgICAgICAgICAgZGVidWco
IiIpOwotICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAgICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19KTsKLQotZnVuY3Rpb24gY2xpY2tPblRyYWNr
c0J1dHRvbigpCi17Ci0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJDbGlja2luZyBvbiB0cmFj
a3MgYnV0dG9uIHRvIHNob3cgdHJhY2tzIHBhbmVsIik7Ci0gICAgY2xpY2tPbkVsZW1lbnQoc2hh
ZG93Um9vdC5sYXN0Q2hpbGQucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpLCAxLCAxKTsK
LX0KLQotZnVuY3Rpb24gY2xpY2tPblZpZGVvQmFja2dyb3VuZCgpCi17Ci0gICAgZGVidWcoIiIp
OwotICAgIGRlYnVnKCJDbGlja2luZyBvbiB2aWRlbyBiYWNrZ3JvdW5kIik7Ci0gICAgY2xpY2tP
bkVsZW1lbnQobWVkaWEsIDUsIDUpOwotfQotCi1mdW5jdGlvbiBjbGlja09uRWxlbWVudChlbGVt
ZW50LCByZWxhdGl2ZVgsIHJlbGF0aXZlWSkKLXsKLSAgICBjb25zdCBib3VuZHMgPSBlbGVtZW50
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGJv
dW5kcy5sZWZ0ICsgcmVsYXRpdmVYLCBib3VuZHMudG9wICsgcmVsYXRpdmVZKTsKLSAgICBldmVu
dFNlbmRlci5tb3VzZURvd24oKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci19Ci0KLTwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy1sb2FkZXIuanMgYi9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcmVzb3VyY2VzL21lZGlhLWNvbnRy
b2xzLWxvYWRlci5qcwppbmRleCAzZDQ5YWZjZGU1MGNlMTkzMTBmOGYzYzFkYThjYmZmYmE0ZDU3
MTMzLi44ZWYyYjM0ODc1Yjg0OWJmMjk4MTBjYzQ2NmVhYjRmNDhhMTVjMDYwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcmVzb3VyY2VzL21lZGlh
LWNvbnRyb2xzLWxvYWRlci5qcworKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLWxvYWRlci5qcwpAQCAtNiw3ICs2LDcg
QEAKICAgICBjb25zdCBsYXlvdXRUZXN0c1BhdGggPSB3aW5kb3cubG9jYXRpb24uaHJlZi5zdWJz
dHIoMCwgd2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiL0xheW91dFRlc3RzLyIpKTsKICAg
ICBjb25zdCBtb2R1bGVQYXRoID0gbGF5b3V0VGVzdHNQYXRoID8gbGF5b3V0VGVzdHNQYXRoICsg
Ii9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scyIgOiAiL21vZGVy
bi1tZWRpYS1jb250cm9scyI7CiAKLSAgICBbImFjdGl2aXR5LWluZGljYXRvciIsICJhaXJwbGF5
LWJ1dHRvbiIsICJiYWNrZ3JvdW5kLXRpbnQiLCAiYnV0dG9uIiwgImJ1dHRvbnMtY29udGFpbmVy
IiwgImNvbnRyb2xzLWJhciIsICJpbmxpbmUtbWVkaWEtY29udHJvbHMiLCAibWFjb3MtZnVsbHNj
cmVlbi1tZWRpYS1jb250cm9scyIsICJtYWNvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMiLCAibWVk
aWEtY29udHJvbHMiLCAibWVkaWEtZG9jdW1lbnQiLCAicGxhY2FyZCIsICJzbGlkZXIiLCAic3Rh
dHVzLWxhYmVsIiwgInRleHQtdHJhY2tzIiwgInRpbWUtbGFiZWwiLCAidHJhY2tzLXBhbmVsIl0u
Zm9yRWFjaChjc3NGaWxlID0+IHsKKyAgICBbImFjdGl2aXR5LWluZGljYXRvciIsICJhaXJwbGF5
LWJ1dHRvbiIsICJiYWNrZ3JvdW5kLXRpbnQiLCAiYnV0dG9uIiwgImJ1dHRvbnMtY29udGFpbmVy
IiwgImNvbnRyb2xzLWJhciIsICJpbmxpbmUtbWVkaWEtY29udHJvbHMiLCAibWFjb3MtZnVsbHNj
cmVlbi1tZWRpYS1jb250cm9scyIsICJtYWNvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMiLCAibWVk
aWEtY29udHJvbHMiLCAibWVkaWEtZG9jdW1lbnQiLCAicGxhY2FyZCIsICJzbGlkZXIiLCAic3Rh
dHVzLWxhYmVsIiwgInRleHQtdHJhY2tzIiwgInRpbWUtbGFiZWwiXS5mb3JFYWNoKGNzc0ZpbGUg
PT4gewogICAgICAgICBkb2N1bWVudC53cml0ZShgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBl
PSJ0ZXh0L2NzcyIgaHJlZj0iJHttb2R1bGVQYXRofS9jb250cm9scy8ke2Nzc0ZpbGV9LmNzcyI+
YCk7CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMgYi9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0
aWxzLmpzCmluZGV4IDJkYzhmNGI1MjFhYTcyYjU0NzViMGMzNjIwZTk2NWIyNjc3ZjU0ODcuLmY2
ZTg1YTE3ZDAwZGU0MDMzMWZkMTgwY2M5MWZjNDlmMzYyZTc1MTAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9yZXNvdXJjZXMvbWVkaWEtY29udHJv
bHMtdXRpbHMuanMKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcwpAQCAtODMsMjYgKzgzLDYgQEAgZnVu
Y3Rpb24gcHJlc3NBdFBvaW50KHgsIHksIGNvbnRpbnVhdGlvbikKICAgICB9CiB9CiAKLWZ1bmN0
aW9uIHNob3dUcmFja3NQYW5lbChzaGFkb3dSb290LCBjb250aW51YXRpb24pCi17Ci0gICAgaWYg
KHR5cGVvZiBjb250aW51YXRpb24gIT09ICJmdW5jdGlvbiIpCi0gICAgICAgIGNvbnRpbnVhdGlv
biA9IG5ldyBGdW5jdGlvbjsKLQotICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9v
dC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykiLCAibnVsbCIsICgpID0+IHsKLSAgICAg
ICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRv
bi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCIsICIwIiwgKCkgPT4gewot
ICAgICAgICAgICAgZGVidWcoIj0+IFRyYWNrcyBidXR0b24gaXMgdmlzaWJsZS4iKQotICAgICAg
ICAgICAgZGVidWcoIiIpOwotICAgICAgICAgICAgZGVidWcoIlByZXNzaW5nIG9uIHRoZSB0cmFj
a3MgYnV0dG9uLiIpOwotICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVy
eVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpOwotICAgICAgICAgICAgc2hvdWxkQmVjb21lRGlm
ZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKSIsICJudWxs
IiwgKCkgPT4gewotICAgICAgICAgICAgICAgIGRlYnVnKCI9PiBUcmFja3MgcGFuZWwgaXMgdmlz
aWJsZS4iKQotICAgICAgICAgICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgICAgICAgICBjb250
aW51YXRpb24oKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0KLQog
ZnVuY3Rpb24gZ2V0VHJhY2tzQ29udGV4dE1lbnUoKQogewogICAgIHJldHVybiBuZXcgUHJvbWlz
ZSgocmVzb2x2ZSkgPT4gewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtY29udHJvbHMtYmFyLXJlbWFp
bnMtdmlzaWJsZS1hZnRlci1jbGlja2luZy1vdmVyLWl0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVs
LWNvbnRyb2xzLWJhci1yZW1haW5zLXZpc2libGUtYWZ0ZXItY2xpY2tpbmctb3Zlci1pdC1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0MTkxM2MzZWRjNjVkNDUz
OGNhYjk3OGY4Zjk3NGJiNDRlNTFmYmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1wYW5lbC90cmFja3MtcGFuZWwtY29udHJvbHMtYmFyLXJlbWFpbnMtdmlzaWJsZS1hZnRl
ci1jbGlja2luZy1vdmVyLWl0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE5ICsw
LDAgQEAKLUNsaWNraW5nIG9uIHRoZSBjb250cm9scyBiYXIgdG8gZGlzbWlzcyB0aGUgdHJhY2tz
IHBhbmVsIHNob3VsZCBub3QgaGlkZSB0aGUgY29udHJvbHMgYmFyLCBvbmx5IHRoZSB0cmFjayBw
YW5lbC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgc2hhZG93Um9vdC5x
dWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lk
dGggPiAwIGJlY2FtZSB0cnVlCi1QQVNTIHNoYWRvd1Jvb3QuY29udGFpbnMoc2hhZG93Um9vdC5x
dWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykpIGJlY2FtZSB0cnVlCi1QQVNTIG1lZGlhLmN1
cnJlbnRUaW1lID4gMC4yNTAgYmVjYW1lIHRydWUKLQotV2UndmUgd2FpdGVkIGxvbmcgZW5vdWdo
IHNvIHRoYXQgdGhlIGNvbnRyb2xzIGJhciBzaG91bGQgYmUgZmFkZWQgc2hvdWxkIHRoZSB0cmFj
a3MgcGFuZWwgbm90IGJlIHZpc2libGUuCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcign
Lm1lZGlhLWNvbnRyb2xzJykuY2xhc3NMaXN0LmNvbnRhaW5zKCdmYWRlZCcpIGlzIGZhbHNlCi0K
LUNsaWNrIG9uIHRoZSBjb250cm9scyBiYXIgdG8gZGlzbWlzcyB0aGUgcGFuZWwsIHRoZSBjb250
cm9scyBiYXIgc2hvdWxkIHJlbWFpbiB2aXNpYmxlLgotUEFTUyBzaGFkb3dSb290LmNvbnRhaW5z
KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpKSBiZWNhbWUgZmFsc2UK
LVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcubWVkaWEtY29udHJvbHMnKS5jbGFzc0xp
c3QuY29udGFpbnMoJ2ZhZGVkJykgaXMgZmFsc2UKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1jb250cm9scy1i
YXItcmVtYWlucy12aXNpYmxlLWFmdGVyLWNsaWNraW5nLW92ZXItaXQuaHRtbCBiL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVs
LWNvbnRyb2xzLWJhci1yZW1haW5zLXZpc2libGUtYWZ0ZXItY2xpY2tpbmctb3Zlci1pdC5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlODgxZmFmODNlMGYwZGZjYzgyYTcxOTM0
MTM4NDljZDY0N2RkYTMwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFu
ZWwvdHJhY2tzLXBhbmVsLWNvbnRyb2xzLWJhci1yZW1haW5zLXZpc2libGUtYWZ0ZXItY2xpY2tp
bmctb3Zlci1pdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLWxvYWRlci5qcyIgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEtY29u
dHJvbHMtdXRpbHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08Ym9keT4K
LTx2aWRlbyBzcmM9Ii4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVzLm1vdiIgc3R5bGU9InBvc2l0
aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDogNjQwcHg7IGhlaWdodDogMzYw
cHg7IiBjb250cm9scyBhdXRvcGxheSBkYXRhLWF1dG8taGlkZS1kZWxheT0iMjUwIj48L3ZpZGVv
PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJDbGlja2luZyBvbiB0aGUgY29udHJvbHMgYmFyIHRv
IGRpc21pc3MgdGhlIHRyYWNrcyBwYW5lbCBzaG91bGQgbm90IGhpZGUgdGhlIGNvbnRyb2xzIGJh
ciwgb25seSB0aGUgdHJhY2sgcGFuZWwuIik7Ci0KLWNvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxz
LnNoYWRvd1Jvb3QobWVkaWEpOwotCi1zaG91bGRCZWNvbWVFcXVhbCgic2hhZG93Um9vdC5xdWVy
eVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgg
PiAwIiwgInRydWUiLCAoKSA9PiB7Ci0gICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVy
eVNlbGVjdG9yKCJidXR0b24udHJhY2tzIiksICgpID0+IHsKLSAgICAgICAgc2hvdWxkQmVjb21l
RXF1YWwoInNoYWRvd1Jvb3QuY29udGFpbnMoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJh
Y2tzLXBhbmVsJykpIiwgInRydWUiLCAoKSA9PiB7Ci0gICAgICAgICAgICBzaG91bGRCZWNvbWVF
cXVhbCgibWVkaWEuY3VycmVudFRpbWUgPiAwLjI1MCIsICJ0cnVlIiwgKCkgPT4gewotCi0gICAg
ICAgICAgICAgICAgZGVidWcoIiIpOwotICAgICAgICAgICAgICAgIGRlYnVnKCJXZSd2ZSB3YWl0
ZWQgbG9uZyBlbm91Z2ggc28gdGhhdCB0aGUgY29udHJvbHMgYmFyIHNob3VsZCBiZSBmYWRlZCBz
aG91bGQgdGhlIHRyYWNrcyBwYW5lbCBub3QgYmUgdmlzaWJsZS4iKTsKLSAgICAgICAgICAgICAg
ICBzaG91bGRCZUZhbHNlKCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5tZWRpYS1jb250cm9s
cycpLmNsYXNzTGlzdC5jb250YWlucygnZmFkZWQnKSIpOwotCi0gICAgICAgICAgICAgICAgZGVi
dWcoIiIpOwotICAgICAgICAgICAgICAgIGRlYnVnKCJDbGljayBvbiB0aGUgY29udHJvbHMgYmFy
IHRvIGRpc21pc3MgdGhlIHBhbmVsLCB0aGUgY29udHJvbHMgYmFyIHNob3VsZCByZW1haW4gdmlz
aWJsZS4iKTsKLSAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg2MzIsIDMz
OSk7Ci0gICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgICAgICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotCi0gICAgICAgICAgICAgICAgc2hvdWxkQmVj
b21lRXF1YWwoInNoYWRvd1Jvb3QuY29udGFpbnMoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcu
dHJhY2tzLXBhbmVsJykpIiwgImZhbHNlIiwgKCkgPT4gewotICAgICAgICAgICAgICAgICAgICBz
aG91bGRCZUZhbHNlKCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5tZWRpYS1jb250cm9scycp
LmNsYXNzTGlzdC5jb250YWlucygnZmFkZWQnKSIpOwotICAgICAgICAgICAgICAgICAgICBtZWRp
YS5yZW1vdmUoKTsKLSAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAg
ICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0p
OwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFu
ZWwvdHJhY2tzLXBhbmVsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZDhmZDk2MzJmMTNhZDY2NjUxOTAzNDkxYzkzYTc5NTIwMGY0YzQ2ZC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi1UZXN0aW5nIHRoZSBUcmFja3NQYW5lbCBj
bGFzcyBwcm9wZXJ0aWVzLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotQmFzaWMg
cHJvcGVydGllcwotUEFTUyB0cmFja3NQYW5lbC5lbGVtZW50LmxvY2FsTmFtZSBpcyAiZGl2Igot
UEFTUyB0cmFja3NQYW5lbC5lbGVtZW50LmNsYXNzTmFtZSBpcyAidHJhY2tzLXBhbmVsIgotUEFT
UyB0cmFja3NQYW5lbC5wcmVzZW50ZWQgaXMgZmFsc2UKLVBBU1MgdHJhY2tzUGFuZWwucmlnaHRY
IGlzIDAKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRF
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWhpZGUtY2xpY2stb3V0c2lkZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3Ry
YWNrcy1wYW5lbC1oaWRlLWNsaWNrLW91dHNpZGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMzczYjc1Y2U0MjIzZmNiNjgwN2MzMTlhOGM0ZWU5OTQ5MzQwM2U2
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVs
LWhpZGUtY2xpY2stb3V0c2lkZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNyAr
MCwwIEBACi1UZXN0aW5nIGEgVHJhY2tzUGFuZWwgaXMgaGlkZGVuIHVwb24gY2xpY2tpbmcgb3V0
c2lkZSBvZiBpdC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLW1lZGlhQ29udHJv
bHMuc2hvd1RyYWNrc1BhbmVsKCkKLVBBU1MgZG9jdW1lbnQuYm9keS5jb250YWlucyhtZWRpYUNv
bnRyb2xzLnRyYWNrc1BhbmVsLmVsZW1lbnQpIGJlY2FtZSB0cnVlCi1QQVNTIG1lZGlhQ29udHJv
bHMudHJhY2tzUGFuZWwucHJlc2VudGVkIGlzIHRydWUKLQotQ2xpY2tpbmcgb3V0c2lkZSBvZiB0
aGUgcGFuZWwKLVBBU1MgZG9jdW1lbnQuYm9keS5jb250YWlucyhtZWRpYUNvbnRyb2xzLnRyYWNr
c1BhbmVsLmVsZW1lbnQpIGJlY2FtZSBmYWxzZQotUEFTUyBtZWRpYUNvbnRyb2xzLnRyYWNrc1Bh
bmVsLnByZXNlbnRlZCBpcyBmYWxzZQotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
Ci0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtaGlkZS1jbGljay1vdXRz
aWRlLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXBhbmVsL3RyYWNrcy1wYW5lbC1oaWRlLWNsaWNrLW91dHNpZGUuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggY2Y5ODA0MmM0Mjg1ZDYxODNlYWQ1YzU3NmUzZmFhOTMxYTJhMTM1
OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5l
bC1oaWRlLWNsaWNrLW91dHNpZGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAK
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy1sb2FkZXIuanMiIHR5
cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08Ym9keT4KLTxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlw
dGlvbigiVGVzdGluZyBhIDxjb2RlPlRyYWNrc1BhbmVsPC9jb2RlPiBpcyBoaWRkZW4gdXBvbiBj
bGlja2luZyBvdXRzaWRlIG9mIGl0LiIpOwotCi1jb25zdCBtZWRpYUNvbnRyb2xzID0gbmV3IE1h
Y09TSW5saW5lTWVkaWFDb250cm9scyh7IHdpZHRoOiA2ODAsIGhlaWdodDogMzAwIH0pOwotZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChtZWRpYUNvbnRyb2xzLmVsZW1lbnQpOwotCi1kZWJ1Zygi
bWVkaWFDb250cm9scy5zaG93VHJhY2tzUGFuZWwoKSIpOwotbWVkaWFDb250cm9scy5zaG93VHJh
Y2tzUGFuZWwoKTsKLQotc2hvdWxkQmVjb21lRXF1YWwoImRvY3VtZW50LmJvZHkuY29udGFpbnMo
bWVkaWFDb250cm9scy50cmFja3NQYW5lbC5lbGVtZW50KSIsICJ0cnVlIiwgKCkgPT4gewotICAg
IHNob3VsZEJlVHJ1ZSgibWVkaWFDb250cm9scy50cmFja3NQYW5lbC5wcmVzZW50ZWQiKTsKLSAg
ICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIkNsaWNraW5nIG91dHNpZGUgb2YgdGhlIHBhbmVsIik7
Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTAsIDEwKTsKLSAgICBldmVudFNlbmRlci5t
b3VzZURvd24oKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci0gICAgc2hvdWxkQmVjb21l
RXF1YWwoImRvY3VtZW50LmJvZHkuY29udGFpbnMobWVkaWFDb250cm9scy50cmFja3NQYW5lbC5l
bGVtZW50KSIsICJmYWxzZSIsICgpID0+IHsKLSAgICAgICAgc2hvdWxkQmVGYWxzZSgibWVkaWFD
b250cm9scy50cmFja3NQYW5lbC5wcmVzZW50ZWQiKTsKLSAgICAgICAgZGVidWcoIiIpOwotICAg
ICAgICBtZWRpYUNvbnRyb2xzLmVsZW1lbnQucmVtb3ZlKCk7Ci0gICAgICAgIGZpbmlzaEpTVGVz
dCgpOwotICAgIH0pOwotfSk7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFj
a3MtcGFuZWwtaGlkZS1lc2Mta2V5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWhpZGUtZXNjLWtl
eS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRlNzU2N2RkODZh
YzFkODc4YjVmMTgwMzZlYmRmODg5OGQ1YmNlYjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtaGlkZS1lc2Mta2V5LWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLVRlc3RpbmcgYSBUcmFja3NQYW5lbCBpcyBo
aWRkZW4gdXBvbiBoaXR0aW5nIHRoZSBFc2MuIGtleS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgotCi0KLW1lZGlhQ29udHJvbHMuc2hvd1RyYWNrc1BhbmVsKCkKLQotUHJlc3NpbmcgdGhl
IEVzY2FwZSBrZXkKLQotVHJhbnNpdGlvbiBlbmRlZAotUEFTUyBtZWRpYUNvbnRyb2xzLnRyYWNr
c1BhbmVsLnByZXNlbnRlZCBpcyBmYWxzZQotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtaGlkZS1lc2Mta2V5
Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBh
bmVsL3RyYWNrcy1wYW5lbC1oaWRlLWVzYy1rZXkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNzBlOWIwZDIxZjRlNzg3Y2UwZmQ1MGNlM2JjMjVkYTA2ZTk4NzYyZC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1oaWRlLWVz
Yy1rZXkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLTxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy1sb2FkZXIuanMiIHR5cGU9InRleHQvamF2YXNj
cmlwdCI+PC9zY3JpcHQ+Ci08Ym9keT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
LQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbigiVGVzdGluZyBh
IDxjb2RlPlRyYWNrc1BhbmVsPC9jb2RlPiBpcyBoaWRkZW4gdXBvbiBoaXR0aW5nIHRoZSBFc2Mu
IGtleS4iKTsKLQotY29uc3QgbWVkaWFDb250cm9scyA9IG5ldyBNYWNPU0lubGluZU1lZGlhQ29u
dHJvbHMoeyB3aWR0aDogNjgwLCBoZWlnaHQ6IDMwMCB9KTsKLWRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQobWVkaWFDb250cm9scy5lbGVtZW50KTsKLQotZGVidWcoIm1lZGlhQ29udHJvbHMuc2hv
d1RyYWNrc1BhbmVsKCkiKTsKLW1lZGlhQ29udHJvbHMuc2hvd1RyYWNrc1BhbmVsKCk7Ci0KLXNj
aGVkdWxlci5mcmFtZURpZEZpcmUgPSBmdW5jdGlvbigpCi17Ci0gICAgd2luZG93LnJlcXVlc3RB
bmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgZGVidWco
IlByZXNzaW5nIHRoZSBFc2NhcGUga2V5Iik7Ci0gICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24o
IkVzY2FwZSIpOwotICAgICAgICBtZWRpYUNvbnRyb2xzLnRyYWNrc1BhbmVsLmVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsIChldmVudCkgPT4gewotICAgICAgICAgICAg
ZGVidWcoIiIpOwotICAgICAgICAgICAgZGVidWcoIlRyYW5zaXRpb24gZW5kZWQiKTsKLSAgICAg
ICAgICAgIHNob3VsZEJlRmFsc2UoIm1lZGlhQ29udHJvbHMudHJhY2tzUGFuZWwucHJlc2VudGVk
Iik7Ci0KLSAgICAgICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgICAgIG1lZGlhQ29udHJvbHMu
ZWxlbWVudC5yZW1vdmUoKTsKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9
KTsKLSAgICB9KTsKLSAgICBzY2hlZHVsZXIuZnJhbWVEaWRGaXJlID0gbnVsbDsKLX0KLQotPC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1oaWRlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwv
dHJhY2tzLXBhbmVsLWhpZGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBiNjM2NDUwYWY2YTE4ZWJmZjA0Y2M5OWM3MDhlNGZjZTZiMWI5YzRiLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWhpZGUtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGVzdGluZyBhIFRyYWNrc1Bh
bmVsIGlzIGhpZGRlbiB3aXRoIGFuIGFuaW1hdGlvbi4KLQotT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgotCi0KLXRyYWNrc1BhbmVsLnByZXNlbnRJblBhcmVudChjb250YWluZXIpCi1QQVNTIHRy
YWNrc1BhbmVsLnByZXNlbnRlZCBpcyB0cnVlCi0KLXRyYWNrc1BhbmVsLmhpZGUoKQotUEFTUyB0
cmFja3NQYW5lbC5wcmVzZW50ZWQgaXMgZmFsc2UKLQotVHJhbnNpdGlvbiBlbmRlZAotUEFTUyB0
cmFja3NQYW5lbC5wcmVzZW50ZWQgaXMgZmFsc2UKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWhpZGUuaHRt
bCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwv
dHJhY2tzLXBhbmVsLWhpZGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzg4
YTIyODBkMDM5OGJiNjU2ZDBlZTNhNDI0OWEzZTNjNzhmYzQ4Zi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1oaWRlLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw0MCArMCwwIEBACi08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEt
Y29udHJvbHMtbG9hZGVyLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPGJv
ZHk+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oIlRlc3RpbmcgYSA8Y29kZT5UcmFja3NQYW5lbDwv
Y29kZT4gaXMgaGlkZGVuIHdpdGggYW4gYW5pbWF0aW9uLiIpOwotCi1jb25zdCB0cmFja3NQYW5l
bCA9IG5ldyBUcmFja3NQYW5lbDsKLWNvbnN0IGNvbnRhaW5lciA9IG5ldyBMYXlvdXROb2RlOwot
Ci1kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNvbnRhaW5lci5lbGVtZW50KTsKLQotZGVidWco
InRyYWNrc1BhbmVsLnByZXNlbnRJblBhcmVudChjb250YWluZXIpIik7Ci10cmFja3NQYW5lbC5w
cmVzZW50SW5QYXJlbnQoY29udGFpbmVyKTsKLQotc2NoZWR1bGVyLmZyYW1lRGlkRmlyZSA9IGZ1
bmN0aW9uKCkKLXsKLSAgICBzaG91bGRCZVRydWUoInRyYWNrc1BhbmVsLnByZXNlbnRlZCIpOwot
Ci0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJ0cmFja3NQYW5lbC5oaWRlKCkiKTsKLSAgICB3
aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKLSAgICAgICAgdHJhY2tzUGFuZWwu
aGlkZSgpOwotICAgICAgICBzaG91bGRCZUZhbHNlKCJ0cmFja3NQYW5lbC5wcmVzZW50ZWQiKTsK
LSAgICAgICAgdHJhY2tzUGFuZWwuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9u
ZW5kIiwgKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICBk
ZWJ1ZygiVHJhbnNpdGlvbiBlbmRlZCIpOwotICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgidHJh
Y2tzUGFuZWwucHJlc2VudGVkIik7Ci0gICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0gICAgc2NoZWR1bGVyLmZy
YW1lRGlkRmlyZSA9IG51bGw7Ci19Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90
cmFja3MtcGFuZWwtcG9wdWxhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wb3B1bGF0aW9u
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzMzOWZiMDM3YTE2
ZDhkYTAwZjdhODMzNzJmYjYxZWYxYWE2NzMzMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wb3B1bGF0aW9uLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLVBvcHVsYXRpbmcgYSBUcmFja3NQYW5lbCBpbnN0
YW5jZS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgdHJhY2tzUGFuZWwu
cHJlc2VudGVkIGlzIHRydWUKLVBBU1MgdHJhY2tzUGFuZWwucGFyZW50IGlzIGNvbnRhaW5lcgot
UEFTUyBzY3JvbGxDb250YWluZXIuY2hpbGRyZW4ubGVuZ3RoIGlzIG51bWJlck9mU2VjdGlvbnMK
LQotSGllcmFyY2h5IGZvciBzZWN0aW9uICMwCi1QQVNTIHNjcm9sbENvbnRhaW5lci5jaGlsZHJl
blswXS5lbGVtZW50LmxvY2FsTmFtZSBpcyAic2VjdGlvbiIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVy
LmNoaWxkcmVuWzBdLmNoaWxkcmVuLmxlbmd0aCBpcyAyCi1QQVNTIHNjcm9sbENvbnRhaW5lci5j
aGlsZHJlblswXS5jaGlsZHJlblswXS5lbGVtZW50LmxvY2FsTmFtZSBpcyAiaDMiCi1QQVNTIHNj
cm9sbENvbnRhaW5lci5jaGlsZHJlblswXS5jaGlsZHJlblswXS5lbGVtZW50LnRleHRDb250ZW50
IGlzICJUaXRsZSAjMCIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWzBdLmNoaWxkcmVu
WzFdLmVsZW1lbnQubG9jYWxOYW1lIGlzICJ1bCIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxk
cmVuWzBdLmNoaWxkcmVuWzFdLmNoaWxkcmVuLmxlbmd0aCBpcyAzCi1QQVNTIHNjcm9sbENvbnRh
aW5lci5jaGlsZHJlblswXS5jaGlsZHJlblsxXS5jaGlsZHJlblt0cmFja0luZGV4XS5lbGVtZW50
LmxvY2FsTmFtZSBpcyAibGkiCi1QQVNTIHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblswXS5jaGls
ZHJlblsxXS5jaGlsZHJlblt0cmFja0luZGV4XS5lbGVtZW50LmNsYXNzTmFtZSBpcyAiIgotUEFT
UyBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMV0uY2hpbGRyZW5bdHJhY2tJ
bmRleF0uZWxlbWVudC50ZXh0Q29udGVudCBpcyAiVHJhY2sgMHgwIgotUEFTUyBzY3JvbGxDb250
YWluZXIuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMV0uY2hpbGRyZW5bdHJhY2tJbmRleF0uZWxlbWVu
dC5sb2NhbE5hbWUgaXMgImxpIgotUEFTUyBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5bMF0uY2hp
bGRyZW5bMV0uY2hpbGRyZW5bdHJhY2tJbmRleF0uZWxlbWVudC5jbGFzc05hbWUgaXMgInNlbGVj
dGVkIgotUEFTUyBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMV0uY2hpbGRy
ZW5bdHJhY2tJbmRleF0uZWxlbWVudC50ZXh0Q29udGVudCBpcyAiVHJhY2sgMHgxIgotUEFTUyBz
Y3JvbGxDb250YWluZXIuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMV0uY2hpbGRyZW5bdHJhY2tJbmRl
eF0uZWxlbWVudC5sb2NhbE5hbWUgaXMgImxpIgotUEFTUyBzY3JvbGxDb250YWluZXIuY2hpbGRy
ZW5bMF0uY2hpbGRyZW5bMV0uY2hpbGRyZW5bdHJhY2tJbmRleF0uZWxlbWVudC5jbGFzc05hbWUg
aXMgIiIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzFdLmNoaWxk
cmVuW3RyYWNrSW5kZXhdLmVsZW1lbnQudGV4dENvbnRlbnQgaXMgIlRyYWNrIDB4MiIKLQotSGll
cmFyY2h5IGZvciBzZWN0aW9uICMxCi1QQVNTIHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblsxXS5l
bGVtZW50LmxvY2FsTmFtZSBpcyAic2VjdGlvbiIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxk
cmVuWzFdLmNoaWxkcmVuLmxlbmd0aCBpcyAyCi1QQVNTIHNjcm9sbENvbnRhaW5lci5jaGlsZHJl
blsxXS5jaGlsZHJlblswXS5lbGVtZW50LmxvY2FsTmFtZSBpcyAiaDMiCi1QQVNTIHNjcm9sbENv
bnRhaW5lci5jaGlsZHJlblsxXS5jaGlsZHJlblswXS5lbGVtZW50LnRleHRDb250ZW50IGlzICJU
aXRsZSAjMSIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWzFdLmNoaWxkcmVuWzFdLmVs
ZW1lbnQubG9jYWxOYW1lIGlzICJ1bCIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWzFd
LmNoaWxkcmVuWzFdLmNoaWxkcmVuLmxlbmd0aCBpcyA1Ci1QQVNTIHNjcm9sbENvbnRhaW5lci5j
aGlsZHJlblsxXS5jaGlsZHJlblsxXS5jaGlsZHJlblt0cmFja0luZGV4XS5lbGVtZW50LmxvY2Fs
TmFtZSBpcyAibGkiCi1QQVNTIHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblsxXS5jaGlsZHJlblsx
XS5jaGlsZHJlblt0cmFja0luZGV4XS5lbGVtZW50LmNsYXNzTmFtZSBpcyAiIgotUEFTUyBzY3Jv
bGxDb250YWluZXIuY2hpbGRyZW5bMV0uY2hpbGRyZW5bMV0uY2hpbGRyZW5bdHJhY2tJbmRleF0u
ZWxlbWVudC50ZXh0Q29udGVudCBpcyAiVHJhY2sgMXgwIgotUEFTUyBzY3JvbGxDb250YWluZXIu
Y2hpbGRyZW5bMV0uY2hpbGRyZW5bMV0uY2hpbGRyZW5bdHJhY2tJbmRleF0uZWxlbWVudC5sb2Nh
bE5hbWUgaXMgImxpIgotUEFTUyBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5bMV0uY2hpbGRyZW5b
MV0uY2hpbGRyZW5bdHJhY2tJbmRleF0uZWxlbWVudC5jbGFzc05hbWUgaXMgIiIKLVBBU1Mgc2Ny
b2xsQ29udGFpbmVyLmNoaWxkcmVuWzFdLmNoaWxkcmVuWzFdLmNoaWxkcmVuW3RyYWNrSW5kZXhd
LmVsZW1lbnQudGV4dENvbnRlbnQgaXMgIlRyYWNrIDF4MSIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVy
LmNoaWxkcmVuWzFdLmNoaWxkcmVuWzFdLmNoaWxkcmVuW3RyYWNrSW5kZXhdLmVsZW1lbnQubG9j
YWxOYW1lIGlzICJsaSIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWzFdLmNoaWxkcmVu
WzFdLmNoaWxkcmVuW3RyYWNrSW5kZXhdLmVsZW1lbnQuY2xhc3NOYW1lIGlzICIiCi1QQVNTIHNj
cm9sbENvbnRhaW5lci5jaGlsZHJlblsxXS5jaGlsZHJlblsxXS5jaGlsZHJlblt0cmFja0luZGV4
XS5lbGVtZW50LnRleHRDb250ZW50IGlzICJUcmFjayAxeDIiCi1QQVNTIHNjcm9sbENvbnRhaW5l
ci5jaGlsZHJlblsxXS5jaGlsZHJlblsxXS5jaGlsZHJlblt0cmFja0luZGV4XS5lbGVtZW50Lmxv
Y2FsTmFtZSBpcyAibGkiCi1QQVNTIHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblsxXS5jaGlsZHJl
blsxXS5jaGlsZHJlblt0cmFja0luZGV4XS5lbGVtZW50LmNsYXNzTmFtZSBpcyAic2VsZWN0ZWQi
Ci1QQVNTIHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblsxXS5jaGlsZHJlblsxXS5jaGlsZHJlblt0
cmFja0luZGV4XS5lbGVtZW50LnRleHRDb250ZW50IGlzICJUcmFjayAxeDMiCi1QQVNTIHNjcm9s
bENvbnRhaW5lci5jaGlsZHJlblsxXS5jaGlsZHJlblsxXS5jaGlsZHJlblt0cmFja0luZGV4XS5l
bGVtZW50LmxvY2FsTmFtZSBpcyAibGkiCi1QQVNTIHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblsx
XS5jaGlsZHJlblsxXS5jaGlsZHJlblt0cmFja0luZGV4XS5lbGVtZW50LmNsYXNzTmFtZSBpcyAi
IgotUEFTUyBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5bMV0uY2hpbGRyZW5bMV0uY2hpbGRyZW5b
dHJhY2tJbmRleF0uZWxlbWVudC50ZXh0Q29udGVudCBpcyAiVHJhY2sgMXg0IgotCi1QQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFj
a3MtcGFuZWwtcG9wdWxhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcG9wdWxhdGlvbi5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0Njg0ZTRlZWZkNTYwM2M3YmQzY2ZhYjcxODEzZGM3
YzI0Y2EyYjNlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJh
Y2tzLXBhbmVsLXBvcHVsYXRpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcxICswLDAgQEAK
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy1sb2FkZXIuanMiIHR5
cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08Ym9keT4KLTxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KLQotZGVzY3JpcHRpb24oIlBvcHVsYXRpbmcgYSA8Y29kZT5UcmFja3NQ
YW5lbDwvY29kZT4gaW5zdGFuY2UuIik7Ci0KLWNvbnN0IHRyYWNrc1BhbmVsID0gbmV3IFRyYWNr
c1BhbmVsOwotCi1jb25zdCBudW1iZXJPZlNlY3Rpb25zID0gMjsKLWNvbnN0IG51bWJlck9mVHJh
Y2tzSW5TZWN0aW9uID0gWzMsIDVdOwotY29uc3Qgc2VsZWN0ZWRUcmFja3MgPSBbWzAsIDFdLCBb
MSwgM11dOwotCi10cmFja3NQYW5lbC5kYXRhU291cmNlID0gewotICAgIHRyYWNrc1BhbmVsTnVt
YmVyT2ZTZWN0aW9uczogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG51bWJlck9m
U2VjdGlvbnM7Ci0gICAgfSwKLQotICAgIHRyYWNrc1BhbmVsVGl0bGVGb3JTZWN0aW9uOiBmdW5j
dGlvbihzZWN0aW9uSW5kZXgpCi0gICAgewotICAgICAgICByZXR1cm4gYFRpdGxlICMke3NlY3Rp
b25JbmRleH1gOwotICAgIH0sCi0KLSAgICB0cmFja3NQYW5lbE51bWJlck9mVHJhY2tzSW5TZWN0
aW9uOiBmdW5jdGlvbihzZWN0aW9uSW5kZXgpCi0gICAgewotICAgICAgICByZXR1cm4gbnVtYmVy
T2ZUcmFja3NJblNlY3Rpb25bc2VjdGlvbkluZGV4XTsKLSAgICB9LAotCi0gICAgdHJhY2tzUGFu
ZWxUaXRsZUZvclRyYWNrSW5TZWN0aW9uOiBmdW5jdGlvbih0cmFja0luZGV4LCBzZWN0aW9uSW5k
ZXgpCi0gICAgewotICAgICAgICByZXR1cm4gYFRyYWNrICR7c2VjdGlvbkluZGV4fXgke3RyYWNr
SW5kZXh9YDsKLSAgICB9LAotCi0gICAgdHJhY2tzUGFuZWxJc1RyYWNrSW5TZWN0aW9uU2VsZWN0
ZWQ6IGZ1bmN0aW9uKHRyYWNrSW5kZXgsIHNlY3Rpb25JbmRleCkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBzZWxlY3RlZFRyYWNrcy5zb21lKHNlbGVjdGVkVHJhY2sgPT4gc2VsZWN0ZWRUcmFja1sw
XSA9PT0gc2VjdGlvbkluZGV4ICYmIHNlbGVjdGVkVHJhY2tbMV0gPT09IHRyYWNrSW5kZXgpOwot
ICAgIH0KLX07Ci0KLWNvbnN0IGNvbnRhaW5lciA9IG5ldyBMYXlvdXROb2RlOwotdHJhY2tzUGFu
ZWwucHJlc2VudEluUGFyZW50KGNvbnRhaW5lcik7Ci0KLWNvbnN0IHNjcm9sbENvbnRhaW5lciA9
IHRyYWNrc1BhbmVsLmNoaWxkcmVuWzFdOwotCi1zaG91bGRCZVRydWUoInRyYWNrc1BhbmVsLnBy
ZXNlbnRlZCIpOwotc2hvdWxkQmUoInRyYWNrc1BhbmVsLnBhcmVudCIsICJjb250YWluZXIiKTsK
LXNob3VsZEJlKCJzY3JvbGxDb250YWluZXIuY2hpbGRyZW4ubGVuZ3RoIiwgIm51bWJlck9mU2Vj
dGlvbnMiKTsKLQotbGV0IHNlY3Rpb25JbmRleCwgdHJhY2tJbmRleDsKLWZvciAoc2VjdGlvbklu
ZGV4ID0gMDsgc2VjdGlvbkluZGV4IDwgbnVtYmVyT2ZTZWN0aW9uczsgKytzZWN0aW9uSW5kZXgp
IHsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoYEhpZXJhcmNoeSBmb3Igc2VjdGlvbiAjJHtz
ZWN0aW9uSW5kZXh9YCk7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKGBzY3JvbGxDb250YWlu
ZXIuY2hpbGRyZW5bJHtzZWN0aW9uSW5kZXh9XS5lbGVtZW50LmxvY2FsTmFtZWAsICJzZWN0aW9u
Iik7Ci0gICAgc2hvdWxkQmUoYHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblske3NlY3Rpb25JbmRl
eH1dLmNoaWxkcmVuLmxlbmd0aGAsICIyIik7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKGBz
Y3JvbGxDb250YWluZXIuY2hpbGRyZW5bJHtzZWN0aW9uSW5kZXh9XS5jaGlsZHJlblswXS5lbGVt
ZW50LmxvY2FsTmFtZWAsICJoMyIpOwotICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZyhgc2Nyb2xs
Q29udGFpbmVyLmNoaWxkcmVuWyR7c2VjdGlvbkluZGV4fV0uY2hpbGRyZW5bMF0uZWxlbWVudC50
ZXh0Q29udGVudGAsIHRyYWNrc1BhbmVsLmRhdGFTb3VyY2UudHJhY2tzUGFuZWxUaXRsZUZvclNl
Y3Rpb24oc2VjdGlvbkluZGV4KSk7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKGBzY3JvbGxD
b250YWluZXIuY2hpbGRyZW5bJHtzZWN0aW9uSW5kZXh9XS5jaGlsZHJlblsxXS5lbGVtZW50Lmxv
Y2FsTmFtZWAsICJ1bCIpOwotICAgIHNob3VsZEJlKGBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5b
JHtzZWN0aW9uSW5kZXh9XS5jaGlsZHJlblsxXS5jaGlsZHJlbi5sZW5ndGhgLCBgJHtudW1iZXJP
ZlRyYWNrc0luU2VjdGlvbltzZWN0aW9uSW5kZXhdfWApOwotICAgIGZvciAodHJhY2tJbmRleCA9
IDA7IHRyYWNrSW5kZXggPCBudW1iZXJPZlRyYWNrc0luU2VjdGlvbltzZWN0aW9uSW5kZXhdOyAr
K3RyYWNrSW5kZXgpIHsKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKGBzY3JvbGxDb250
YWluZXIuY2hpbGRyZW5bJHtzZWN0aW9uSW5kZXh9XS5jaGlsZHJlblsxXS5jaGlsZHJlblt0cmFj
a0luZGV4XS5lbGVtZW50LmxvY2FsTmFtZWAsICJsaSIpOwotICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoYHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblske3NlY3Rpb25JbmRleH1dLmNoaWxk
cmVuWzFdLmNoaWxkcmVuW3RyYWNrSW5kZXhdLmVsZW1lbnQuY2xhc3NOYW1lYCwgc2VsZWN0ZWRU
cmFja3Muc29tZShzZWxlY3RlZFRyYWNrID0+IHNlbGVjdGVkVHJhY2tbMF0gPT09IHNlY3Rpb25J
bmRleCAmJiBzZWxlY3RlZFRyYWNrWzFdID09PSB0cmFja0luZGV4KSA/ICJzZWxlY3RlZCIgOiAi
Iik7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZyhgc2Nyb2xsQ29udGFpbmVyLmNoaWxk
cmVuWyR7c2VjdGlvbkluZGV4fV0uY2hpbGRyZW5bMV0uY2hpbGRyZW5bdHJhY2tJbmRleF0uZWxl
bWVudC50ZXh0Q29udGVudGAsIHRyYWNrc1BhbmVsLmRhdGFTb3VyY2UudHJhY2tzUGFuZWxUaXRs
ZUZvclRyYWNrSW5TZWN0aW9uKHRyYWNrSW5kZXgsIHNlY3Rpb25JbmRleCkpOwotICAgIH0KLX0K
LQotZGVidWcoIiIpOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBh
bmVsLXBvc2l0aW9uLWFuZC1zaXplLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXBvc2l0aW9uLWFu
ZC1zaXplLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjAwOTRk
MjMzM2UxMGQ1MzQxNjdmMWZlY2YzMjY3OWJiZmQwYzEzYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wb3NpdGlvbi1hbmQtc2l6ZS1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UZXN0aW5nIHBvc2l0aW9u
aW5nIGFuZCBzaXppbmcgb2YgdGhlIHRyYWNrcyBwYW5lbC4KLQotT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgotCi0KLVBBU1MgbWVkaWFDb250cm9scy50cmFja3NCdXR0b24uZWxlbWVudC5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAotbWVkaWFD
b250cm9scy5zaG93VHJhY2tzUGFuZWwoKQotUEFTUyBtZWRpYUNvbnRyb2xzLnRyYWNrc1BhbmVs
LmVsZW1lbnQuc3R5bGUucmlnaHQgaXMgIjIycHgiCi1QQVNTIG1lZGlhQ29udHJvbHMudHJhY2tz
UGFuZWwuZWxlbWVudC5zdHlsZS5ib3R0b20gaXMgIjM4cHgiCi1QQVNTIGdldENvbXB1dGVkU3R5
bGUobWVkaWFDb250cm9scy50cmFja3NQYW5lbC5lbGVtZW50KS5oZWlnaHQgaXMgIjI1MnB4Igot
UEFTUyBnZXRDb21wdXRlZFN0eWxlKG1lZGlhQ29udHJvbHMudHJhY2tzUGFuZWwuZWxlbWVudC5s
YXN0RWxlbWVudENoaWxkKS5oZWlnaHQgaXMgIjI1MnB4IgotUEFTUyBnZXRDb21wdXRlZFN0eWxl
KG1lZGlhQ29udHJvbHMudHJhY2tzUGFuZWwuZWxlbWVudC5sYXN0RWxlbWVudENoaWxkKS5vdmVy
Zmxvd1kgaXMgInNjcm9sbCIKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1U
RVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXBvc2l0aW9uLWFuZC1zaXplLmh0
bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVs
L3RyYWNrcy1wYW5lbC1wb3NpdGlvbi1hbmQtc2l6ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA1MmE1Nzc1YzEwMzU1ZDk0NTk1MWJhZjVmM2YwM2M3NmNhYzRhNTZiLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXBvc2l0
aW9uLWFuZC1zaXplLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtbG9hZGVyLmpzIiB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPGJvZHk+Ci08c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1l
ZGlhPSJzY3JlZW4iPgotICAgIAotICAgIC5tZWRpYS1jb250cm9scyB7Ci0gICAgICAgIHBvc2l0
aW9uOiBhYnNvbHV0ZTsKLSAgICAgICAgdG9wOiAwOwotICAgICAgICBsZWZ0OiAwOwotICAgIH0K
LSAgICAKLTwvc3R5bGU+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXdpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oIlRlc3RpbmcgcG9zaXRpb25p
bmcgYW5kIHNpemluZyBvZiB0aGUgdHJhY2tzIHBhbmVsLiIpOwotCi1jb25zdCBtZWRpYUNvbnRy
b2xzID0gbmV3IE1hY09TSW5saW5lTWVkaWFDb250cm9scyh7IHdpZHRoOiA2ODAsIGhlaWdodDog
MzAwIH0pOwotCi1tZWRpYUNvbnRyb2xzLnRyYWNrc1BhbmVsLmRhdGFTb3VyY2UgPSB7Ci0gICAg
dHJhY2tzUGFuZWxOdW1iZXJPZlNlY3Rpb25zOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBy
ZXR1cm4gMTsKLSAgICB9LAotCi0gICAgdHJhY2tzUGFuZWxUaXRsZUZvclNlY3Rpb246IGZ1bmN0
aW9uKHNlY3Rpb25JbmRleCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBgVGl0bGVgOwotICAgIH0s
Ci0KLSAgICB0cmFja3NQYW5lbE51bWJlck9mVHJhY2tzSW5TZWN0aW9uOiBmdW5jdGlvbihzZWN0
aW9uSW5kZXgpCi0gICAgewotICAgICAgICByZXR1cm4gMjA7Ci0gICAgfSwKLQotICAgIHRyYWNr
c1BhbmVsVGl0bGVGb3JUcmFja0luU2VjdGlvbjogZnVuY3Rpb24odHJhY2tJbmRleCwgc2VjdGlv
bkluZGV4KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGBUcmFja2A7Ci0gICAgfSwKLQotICAgIHRy
YWNrc1BhbmVsSXNUcmFja0luU2VjdGlvblNlbGVjdGVkOiBmdW5jdGlvbih0cmFja0luZGV4LCBz
ZWN0aW9uSW5kZXgpCi0gICAgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotfTsKLQot
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChtZWRpYUNvbnRyb2xzLmVsZW1lbnQpOwotCi1zaG91
bGRCZWNvbWVEaWZmZXJlbnQoIm1lZGlhQ29udHJvbHMudHJhY2tzQnV0dG9uLmVsZW1lbnQuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQiLCAiMCIsICgpID0+IHsKLSAgICBkZWJ1ZygibWVk
aWFDb250cm9scy5zaG93VHJhY2tzUGFuZWwoKSIpOwotICAgIG1lZGlhQ29udHJvbHMuc2hvd1Ry
YWNrc1BhbmVsKCk7Ci0gICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0g
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibWVkaWFDb250cm9scy50cmFja3NQYW5lbC5l
bGVtZW50LnN0eWxlLnJpZ2h0IiwgIjIycHgiKTsKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJtZWRpYUNvbnRyb2xzLnRyYWNrc1BhbmVsLmVsZW1lbnQuc3R5bGUuYm90dG9tIiwgIjM4
cHgiKTsKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRDb21wdXRlZFN0eWxlKG1l
ZGlhQ29udHJvbHMudHJhY2tzUGFuZWwuZWxlbWVudCkuaGVpZ2h0IiwgIjI1MnB4Iik7Ci0gICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0Q29tcHV0ZWRTdHlsZShtZWRpYUNvbnRyb2xz
LnRyYWNrc1BhbmVsLmVsZW1lbnQubGFzdEVsZW1lbnRDaGlsZCkuaGVpZ2h0IiwgIjI1MnB4Iik7
Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0Q29tcHV0ZWRTdHlsZShtZWRpYUNv
bnRyb2xzLnRyYWNrc1BhbmVsLmVsZW1lbnQubGFzdEVsZW1lbnRDaGlsZCkub3ZlcmZsb3dZIiwg
InNjcm9sbCIpOwotICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgIG1lZGlhQ29udHJvbHMuZWxl
bWVudC5yZW1vdmUoKTsKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgfSk7Ci19KTsKLQot
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wcmV2ZW50LWNvbnRy
b2xzLWJhci1mcm9tLWZhZGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wcmV2ZW50LWNvbnRy
b2xzLWJhci1mcm9tLWZhZGluZy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGVjMThhMWVhMjM2ODAzMjUwZTFjY2JiYzQ3Y2UwMDUzOGExNzZiMTEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcHJldmVudC1j
b250cm9scy1iYXItZnJvbS1mYWRpbmctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MjEgKzAsMCBAQAotU2hvd2luZyB0aGUgdHJhY2tzIHBhbmVsIHNob3VsZCBzdXNwZW5kIHRoZSBh
dXRvLWhpZGUgYmVoYXZpb3IgdW50aWwgaXQncyBoaWRkZW4uCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KLQotCi1tZWRpYUNvbnRyb2xzLnNob3dUcmFja3NQYW5lbCgpCi1QQVNTIG1lZGlh
Q29udHJvbHMudHJhY2tzUGFuZWwuZWxlbWVudC5wYXJlbnROb2RlIGJlY2FtZSBtZWRpYUNvbnRy
b2xzLmVsZW1lbnQKLQotV2UndmUgd2FpdGVkIGxvbmcgZW5vdWdoIHNvIHRoYXQgdGhlIGNvbnRy
b2xzIGJhciBzaG91bGQgYmUgZmFkZWQgc2hvdWxkIHRoZSB0cmFja3MgcGFuZWwgbm90IGJlIHZp
c2libGUKLVBBU1MgbWVkaWFDb250cm9scy5mYWRlZCBpcyBmYWxzZQotCi1Ob3cgZW50ZXIgYW5k
IGV4aXQgdGhlIG1lZGlhIGNvbnRyb2xzLCB0aGUgY29udHJvbHMgYmFyIHNob3VsZCByZW1haW4g
dmlzaWJsZQotUEFTUyBtZWRpYUNvbnRyb2xzLmZhZGVkIGlzIGZhbHNlCi0KLW1lZGlhQ29udHJv
bHMuaGlkZVRyYWNrc1BhbmVsKCkKLVBBU1MgbWVkaWFDb250cm9scy5mYWRlZCBiZWNhbWUgdHJ1
ZQotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1wYW5lbC90cmFja3MtcGFuZWwtcHJldmVudC1jb250cm9scy1iYXItZnJvbS1mYWRpbmcuaHRt
bCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwv
dHJhY2tzLXBhbmVsLXByZXZlbnQtY29udHJvbHMtYmFyLWZyb20tZmFkaW5nLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY5NjBjNGE0NzJjZTE2MmU5N2U5MzVkNzgwODM2NWQx
OTNkYWI4NmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFj
a3MtcGFuZWwtcHJldmVudC1jb250cm9scy1iYXItZnJvbS1mYWRpbmcuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDYwICswLDAgQEAKLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1j
b250cm9scy1sb2FkZXIuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08Ym9k
eT4KLTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+Ci0gICAgCi0gICAgLm1l
ZGlhLWNvbnRyb2xzIHsKLSAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwotICAgICAgICB0b3A6
IDA7Ci0gICAgICAgIGxlZnQ6IDA7Ci0gICAgfQotICAgIAotPC9zdHlsZT4KLTxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1k
ZXNjcmlwdGlvbigiU2hvd2luZyB0aGUgdHJhY2tzIHBhbmVsIHNob3VsZCBzdXNwZW5kIHRoZSBh
dXRvLWhpZGUgYmVoYXZpb3IgdW50aWwgaXQncyBoaWRkZW4uIik7Ci0KLWNvbnN0IG1lZGlhQ29u
dHJvbHMgPSBuZXcgTWFjT1NJbmxpbmVNZWRpYUNvbnRyb2xzKHsgd2lkdGg6IDY4MCwgaGVpZ2h0
OiAzMDAgfSk7Ci0KLWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobWVkaWFDb250cm9scy5lbGVt
ZW50KTsKLQotbGV0IHRyYWNrRWxlbWVudDsKLQotbWVkaWFDb250cm9scy5hdXRvSGlkZUNvbnRy
b2xsZXIuYXV0b0hpZGVEZWxheSA9IDI1MDsKLW1lZGlhQ29udHJvbHMuYXV0b0hpZGVDb250cm9s
bGVyLmZhZGVzV2hpbGVJZGxlID0gdHJ1ZTsKLQotZGVidWcoIm1lZGlhQ29udHJvbHMuc2hvd1Ry
YWNrc1BhbmVsKCkiKTsKLW1lZGlhQ29udHJvbHMuc2hvd1RyYWNrc1BhbmVsKCk7Ci0KLXNob3Vs
ZEJlY29tZUVxdWFsKCJtZWRpYUNvbnRyb2xzLnRyYWNrc1BhbmVsLmVsZW1lbnQucGFyZW50Tm9k
ZSIsICJtZWRpYUNvbnRyb2xzLmVsZW1lbnQiLCAoKSA9PiB7Ci0gICAgLy8gTGV0J3Mgd2FpdCBh
IHdoaWxlIHRvIHNlZSB0aGF0IHRoZSBjb250cm9scyBiYXIgaXMgc3RpbGwgdmlzaWJsZS4KLSAg
ICBzZXRUaW1lb3V0KCgpID0+IHsKLSAgICAgICAgZGVidWcoIiIpOwotICAgICAgICBkZWJ1Zygi
V2UndmUgd2FpdGVkIGxvbmcgZW5vdWdoIHNvIHRoYXQgdGhlIGNvbnRyb2xzIGJhciBzaG91bGQg
YmUgZmFkZWQgc2hvdWxkIHRoZSB0cmFja3MgcGFuZWwgbm90IGJlIHZpc2libGUiKTsKLSAgICAg
ICAgc2hvdWxkQmVGYWxzZSgibWVkaWFDb250cm9scy5mYWRlZCIpOwotCi0gICAgICAgIGRlYnVn
KCIiKTsKLSAgICAgICAgZGVidWcoIk5vdyBlbnRlciBhbmQgZXhpdCB0aGUgbWVkaWEgY29udHJv
bHMsIHRoZSBjb250cm9scyBiYXIgc2hvdWxkIHJlbWFpbiB2aXNpYmxlIik7Ci0gICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDcwMCwgMTApOwotICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZU1vdmVUbyg2NTAsIDEwKTsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNzAwLCAx
MCk7Ci0gICAgICAgIHNob3VsZEJlRmFsc2UoIm1lZGlhQ29udHJvbHMuZmFkZWQiKTsKLQotICAg
ICAgICAvLyBBbmQgbm93IGRpc21pc3MgdGhlIHRyYWNrcyBwYW5lbCBhbmQgY2hlY2sgdGhhdCB0
aGUgY29udHJvbHMgYmFyCi0gICAgICAgIC8vIGZhZGVzIG91dCBhcyB3ZWxsLgotICAgICAgICBk
ZWJ1ZygiIik7Ci0gICAgICAgIGRlYnVnKCJtZWRpYUNvbnRyb2xzLmhpZGVUcmFja3NQYW5lbCgp
Iik7Ci0gICAgICAgIG1lZGlhQ29udHJvbHMuaGlkZVRyYWNrc1BhbmVsKCk7Ci0gICAgICAgIHNo
b3VsZEJlY29tZUVxdWFsKCJtZWRpYUNvbnRyb2xzLmZhZGVkIiwgInRydWUiLCAoKSA9PiB7Ci0g
ICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICBtZWRpYUNvbnRyb2xzLmVsZW1lbnQu
cmVtb3ZlKCk7Ci0gICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfSk7Ci0gICAg
fSwgbWVkaWFDb250cm9scy5hdXRvSGlkZUNvbnRyb2xsZXIuYXV0b0hpZGVEZWxheSk7Ci19KTsK
LQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wcmV2ZW50LWRl
ZmF1bHQtb24ta2V5ZG93bi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wcmV2ZW50LWRlZmF1bHQt
b24ta2V5ZG93bi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAy
MWJhNmQ5NTgwNmE5ZDg0MWU4YWZlYjUyNTc0Nzc5NTAyOTQ4NGUuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcHJldmVudC1kZWZhdWx0LW9u
LWtleWRvd24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotVGVz
dGluZyBhIFRyYWNrc1BhbmVsIGNhbGxzIHByZXZlbnREZWZhdWx0KCkgb24gZXZlbnRzIGl0IGhh
bmRsZXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1tZWRpYUNvbnRyb2xzLnNo
b3dUcmFja3NQYW5lbCgpCi0KLVByZXNzaW5nIHRoZSBBcnJvd0Rvd24ga2V5Ci1QQVNTIGV2ZW50
LmRlZmF1bHRQcmV2ZW50ZWQgaXMgdHJ1ZQotUHJlc3NpbmcgdGhlIEFycm93UmlnaHQga2V5Ci1Q
QVNTIGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQgaXMgZmFsc2UKLQotUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXBy
ZXZlbnQtZGVmYXVsdC1vbi1rZXlkb3duLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wcmV2ZW50LWRlZmF1bHQt
b24ta2V5ZG93bi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZjVjOTAwYTBj
YzM2MmU0OTExNTBhM2ViZDJmNTkxZjRmZDM0NjExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXByZXZlbnQtZGVmYXVsdC1vbi1rZXlkb3du
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtbG9hZGVyLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
Pjwvc2NyaXB0PgotPGJvZHkgc3R5bGU9ImhlaWdodDogMzAwMHB4Ij4KLTxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNj
cmlwdGlvbigiVGVzdGluZyBhIDxjb2RlPlRyYWNrc1BhbmVsPC9jb2RlPiBjYWxscyBwcmV2ZW50
RGVmYXVsdCgpIG9uIGV2ZW50cyBpdCBoYW5kbGVzLiIpOwotCi1jb25zdCBtZWRpYUNvbnRyb2xz
ID0gbmV3IE1hY09TSW5saW5lTWVkaWFDb250cm9scyh7IHdpZHRoOiA2ODAsIGhlaWdodDogMzAw
IH0pOwotZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChtZWRpYUNvbnRyb2xzLmVsZW1lbnQpOwot
Ci1kZWJ1ZygibWVkaWFDb250cm9scy5zaG93VHJhY2tzUGFuZWwoKSIpOwotbWVkaWFDb250cm9s
cy5zaG93VHJhY2tzUGFuZWwoKTsKLQotc2NoZWR1bGVyLmZyYW1lRGlkRmlyZSA9IGZ1bmN0aW9u
KCkKLXsKLSAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKLSAgICAgICAg
ZGVidWcoIiIpOwotICAgICAgICBkZWJ1ZygiUHJlc3NpbmcgdGhlIEFycm93RG93biBrZXkiKTsK
LSAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiQXJyb3dEb3duIik7Ci0gICAgICAgIGRlYnVn
KCJQcmVzc2luZyB0aGUgQXJyb3dSaWdodCBrZXkiKTsKLSAgICAgICAgZXZlbnRTZW5kZXIua2V5
RG93bigiQXJyb3dSaWdodCIpOwotICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgIG1lZGlhQ29u
dHJvbHMuZWxlbWVudC5yZW1vdmUoKTsKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgfSk7
Ci0gICAgc2NoZWR1bGVyLmZyYW1lRGlkRmlyZSA9IG51bGw7Ci19Ci0KLWRvY3VtZW50LmJvZHku
YWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIGV2ZW50ID0+IHsKLSAgICBpZiAoZXZlbnQua2V5
ID09PSAiQXJyb3dSaWdodCIpCi0gICAgICAgIHNob3VsZEJlRmFsc2UoImV2ZW50LmRlZmF1bHRQ
cmV2ZW50ZWQiKTsKLSAgICBlbHNlIGlmIChldmVudC5rZXkgPT09ICJBcnJvd0Rvd24iKQotICAg
ICAgICBzaG91bGRCZVRydWUoImV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQiKTsKLX0pOwotCi08L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXJpZ2h0LXgtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5l
bC90cmFja3MtcGFuZWwtcmlnaHQteC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDI0NTMzNzE1Zjg5YTk0MmM3ZDEyNWJlN2IwMjMwNDZkZDM0OTQ3M2MuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcmlnaHQt
eC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1UZXN0aW5nIHRo
ZSBUcmFja3NQYW5lbCBjbGFzcy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLXRy
YWNrc1BhbmVsLnJpZ2h0WCA9IDEwCi1QQVNTIHRyYWNrc1BhbmVsLmVsZW1lbnQuc3R5bGUucmln
aHQgaXMgIjEwcHgiCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBD
T01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1yaWdodC14Lmh0bWwgYi9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1y
aWdodC14Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhYjcxZTJhY2YxZmI3
M2U1N2IyNmJhZmEwZDFhMDFmMGMyNDEzNjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcmlnaHQteC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMjYgKzAsMCBAQAotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xz
LWxvYWRlci5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMiIHR5cGU9InRleHQvamF2YXNj
cmlwdCI+PC9zY3JpcHQ+Ci08Ym9keT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
LQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbigiVGVzdGluZyB0
aGUgPGNvZGU+VHJhY2tzUGFuZWw8L2NvZGU+IGNsYXNzLiIpOwotCi1jb25zdCB0cmFja3NQYW5l
bCA9IG5ldyBUcmFja3NQYW5lbDsKLQotdHJhY2tzUGFuZWwucmlnaHRYID0gMTA7Ci1kZWJ1Zygi
dHJhY2tzUGFuZWwucmlnaHRYID0gMTAiKTsKLQotc2NoZWR1bGVyLmZyYW1lRGlkRmlyZSA9IGZ1
bmN0aW9uKCkKLXsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRyYWNrc1BhbmVsLmVsZW1l
bnQuc3R5bGUucmlnaHQiLCAiMTBweCIpOwotCi0gICAgZGVidWcoIiIpOwotICAgIGZpbmlzaE1l
ZGlhQ29udHJvbHNUZXN0KCk7Ci19OwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwv
dHJhY2tzLXBhbmVsLXNlbGVjdC10cmFjay13aXRoLWtleWJvYXJkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tz
LXBhbmVsLXNlbGVjdC10cmFjay13aXRoLWtleWJvYXJkLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYzg1MjM0MWM1YWQyMmMyZWJhMjMwMDg3YWE2Mzk5MjhlZGEx
YzUyMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1w
YW5lbC1zZWxlY3QtdHJhY2std2l0aC1rZXlib2FyZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwxOSArMCwwIEBACi1TZWxlY3RpbmcgYSB0cmFjayBpbiBhIFRyYWNrc1BhbmVsIHdp
dGggdGhlIGtleWJvYXJkLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotbWVkaWFD
b250cm9scy5zaG93VHJhY2tzUGFuZWwoKQotCi1Gb2N1c2luZyB0aGUgc2Vjb25kIHRyYWNrIGJ5
IHByZXNzaW5nIHRoZSBkb3duIGFycm93IGtleSB0d2ljZQotT2J0YWluZWQgZm9jdXMgZXZlbnQK
LQotQWN0aXZhdGluZyB0aGUgZm9jdXNlZCB0cmFjayBieSBwcmVzc2luZyB0aGUgRW50ZXIga2V5
Ci1tZWRpYUNvbnRyb2xzLnRyYWNrc1BhbmVsLnVpRGVsZWdhdGUudHJhY2tzUGFuZWxTZWxlY3Rp
b25EaWRDaGFuZ2UoKSBjYWxsZWQKLXNlY3Rpb25JbmRleCA9IDAKLXRyYWNrSW5kZXggPSAxCi0K
LVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBh
bmVsL3RyYWNrcy1wYW5lbC1zZWxlY3QtdHJhY2std2l0aC1rZXlib2FyZC5odG1sIGIvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFu
ZWwtc2VsZWN0LXRyYWNrLXdpdGgta2V5Ym9hcmQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZDE0YmMzN2E4YjcxNTI2NzU0MzZkNzhlMzdiYjJkNDg2MmE5M2ZmNS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1zZWxlY3Qt
dHJhY2std2l0aC1rZXlib2FyZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTEgKzAsMCBAQAot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLWxvYWRlci5qcyIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KLTxib2R5PgotPHN0eWxlIHR5cGU9InRleHQv
Y3NzIiBtZWRpYT0ic2NyZWVuIj4KLSAgICAKLSAgICAubWVkaWEtY29udHJvbHMgewotICAgICAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgICAgIHRvcDogMDsKLSAgICAgICAgbGVmdDogMDsK
LSAgICB9Ci0gICAgCi08L3N0eWxlPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgot
Ci13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJTZWxlY3Rpbmcg
YSB0cmFjayBpbiBhIDxjb2RlPlRyYWNrc1BhbmVsPC9jb2RlPiB3aXRoIHRoZSBrZXlib2FyZC4i
KTsKLQotY29uc3QgbWVkaWFDb250cm9scyA9IG5ldyBNYWNPU0lubGluZU1lZGlhQ29udHJvbHMo
eyB3aWR0aDogNjgwLCBoZWlnaHQ6IDMwMCB9KTsKLQotbWVkaWFDb250cm9scy50cmFja3NQYW5l
bC5kYXRhU291cmNlID0gewotICAgIHRyYWNrc1BhbmVsTnVtYmVyT2ZTZWN0aW9uczogZnVuY3Rp
b24oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgfSwKLQotICAgIHRyYWNrc1BhbmVs
VGl0bGVGb3JTZWN0aW9uOiBmdW5jdGlvbihzZWN0aW9uSW5kZXgpCi0gICAgewotICAgICAgICBy
ZXR1cm4gYFRpdGxlYDsKLSAgICB9LAotCi0gICAgdHJhY2tzUGFuZWxOdW1iZXJPZlRyYWNrc0lu
U2VjdGlvbjogZnVuY3Rpb24oc2VjdGlvbkluZGV4KQotICAgIHsKLSAgICAgICAgcmV0dXJuIDM7
Ci0gICAgfSwKLQotICAgIHRyYWNrc1BhbmVsVGl0bGVGb3JUcmFja0luU2VjdGlvbjogZnVuY3Rp
b24odHJhY2tJbmRleCwgc2VjdGlvbkluZGV4KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGBUcmFj
a2A7Ci0gICAgfSwKLQotICAgIHRyYWNrc1BhbmVsSXNUcmFja0luU2VjdGlvblNlbGVjdGVkOiBm
dW5jdGlvbih0cmFja0luZGV4LCBzZWN0aW9uSW5kZXgpCi0gICAgewotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgfQotfTsKLQotbWVkaWFDb250cm9scy50cmFja3NQYW5lbC51aURlbGVnYXRl
ID0gewotICAgIHRyYWNrc1BhbmVsU2VsZWN0aW9uRGlkQ2hhbmdlOiBmdW5jdGlvbih0cmFja0lu
ZGV4LCBzZWN0aW9uSW5kZXgpCi0gICAgewotICAgICAgICBkZWJ1ZygibWVkaWFDb250cm9scy50
cmFja3NQYW5lbC51aURlbGVnYXRlLnRyYWNrc1BhbmVsU2VsZWN0aW9uRGlkQ2hhbmdlKCkgY2Fs
bGVkIik7Ci0gICAgICAgIGRlYnVnKGBzZWN0aW9uSW5kZXggPSAke3NlY3Rpb25JbmRleH1gKTsK
LSAgICAgICAgZGVidWcoYHRyYWNrSW5kZXggPSAke3RyYWNrSW5kZXh9YCk7Ci0KLSAgICAgICAg
ZGVidWcoIiIpOwotICAgICAgICBtZWRpYUNvbnRyb2xzLmVsZW1lbnQucmVtb3ZlKCk7Ci0gICAg
ICAgIGZpbmlzaEpTVGVzdCgpOwotICAgIH0KLX07Ci0KLWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQobWVkaWFDb250cm9scy5lbGVtZW50KTsKLQotbGV0IHRyYWNrRWxlbWVudDsKLQotZGVidWco
Im1lZGlhQ29udHJvbHMuc2hvd1RyYWNrc1BhbmVsKCkiKTsKLW1lZGlhQ29udHJvbHMuc2hvd1Ry
YWNrc1BhbmVsKCk7Ci0KLXNjaGVkdWxlci5mcmFtZURpZEZpcmUgPSBmdW5jdGlvbigpCi17Ci0g
ICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAgICAgIGRlYnVnKCIi
KTsKLSAgICAgICAgZGVidWcoIkZvY3VzaW5nIHRoZSBzZWNvbmQgdHJhY2sgYnkgcHJlc3Npbmcg
dGhlIGRvd24gYXJyb3cga2V5IHR3aWNlIik7Ci0KLSAgICAgICAgdHJhY2tFbGVtZW50ID0gbWVk
aWFDb250cm9scy50cmFja3NQYW5lbC5lbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImxpIilbMV07
Ci0gICAgICAgIHRyYWNrRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsICgpID0+IHsK
LSAgICAgICAgICAgIGRlYnVnKCJPYnRhaW5lZCBmb2N1cyBldmVudCIpOwotCi0gICAgICAgICAg
ICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICBkZWJ1ZygiQWN0aXZhdGluZyB0aGUgZm9jdXNlZCB0
cmFjayBieSBwcmVzc2luZyB0aGUgRW50ZXIga2V5Iik7Ci0gICAgICAgICAgICB3aW5kb3cucmVx
dWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IGV2ZW50U2VuZGVyLmtleURvd24oIkVudGVyIikpOwot
ICAgICAgICB9KTsKLQotICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJBcnJvd0Rvd24iKTsK
LSAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiQXJyb3dEb3duIik7Ci0gICAgfSk7Ci0gICAg
c2NoZWR1bGVyLmZyYW1lRGlkRmlyZSA9IG51bGw7Ci19Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1wYW5lbC90cmFja3MtcGFuZWwtc2VsZWN0LXRyYWNrLXdpdGgtbW91c2UtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5l
bC90cmFja3MtcGFuZWwtc2VsZWN0LXRyYWNrLXdpdGgtbW91c2UtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjODJiMTk4YzMyOTJkMDcyOTYwOGY0YjEzOGI1ZTNh
MDEwZDI1NWFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJh
Y2tzLXBhbmVsLXNlbGVjdC10cmFjay13aXRoLW1vdXNlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDIwICswLDAgQEAKLVNlbGVjdGluZyBhIHRyYWNrIGluIGEgVHJhY2tzUGFuZWwg
d2l0aCB0aGUgbW91c2UuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIG1l
ZGlhQ29udHJvbHMudHJhY2tzQnV0dG9uLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCku
cmlnaHQgYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKLW1lZGlhQ29udHJvbHMuc2hvd1RyYWNrc1Bh
bmVsKCkKLQotTW91c2luZyBvdmVyIHRoZSBzZWNvbmQgdHJhY2sgaW4gdGhlIHBhbmVsCi1PYnRh
aW5lZCBmb2N1cyBldmVudAotCi1DbGlja2luZyBvbiBmb2N1c2VkIHRyYWNrCi1tZWRpYUNvbnRy
b2xzLnRyYWNrc1BhbmVsLnVpRGVsZWdhdGUudHJhY2tzUGFuZWxTZWxlY3Rpb25EaWRDaGFuZ2Uo
KSBjYWxsZWQKLXNlY3Rpb25JbmRleCA9IDAKLXRyYWNrSW5kZXggPSAxCi0KLVBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1w
YW5lbC1zZWxlY3QtdHJhY2std2l0aC1tb3VzZS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtc2VsZWN0LXRyYWNr
LXdpdGgtbW91c2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWUzOGIxM2Jh
YjM1NGFiMTJmNTc1NDI0MDFiZDQ0OTllOGNjODQzMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1zZWxlY3QtdHJhY2std2l0aC1tb3VzZS5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTAgKzAsMCBAQAotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL21lZGlhLWNvbnRyb2xzLWxvYWRlci5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48
L3NjcmlwdD4KLTxib2R5PgotPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4K
LSAgICAKLSAgICAubWVkaWEtY29udHJvbHMgewotICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7
Ci0gICAgICAgIHRvcDogMDsKLSAgICAgICAgbGVmdDogMDsKLSAgICB9Ci0gICAgCi08L3N0eWxl
PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJTZWxlY3RpbmcgYSB0cmFjayBpbiBhIDxjb2RlPlRy
YWNrc1BhbmVsPC9jb2RlPiB3aXRoIHRoZSBtb3VzZS4iKTsKLQotY29uc3QgbWVkaWFDb250cm9s
cyA9IG5ldyBNYWNPU0lubGluZU1lZGlhQ29udHJvbHMoeyB3aWR0aDogNjgwLCBoZWlnaHQ6IDMw
MCB9KTsKLQotbWVkaWFDb250cm9scy50cmFja3NQYW5lbC5kYXRhU291cmNlID0gewotICAgIHRy
YWNrc1BhbmVsTnVtYmVyT2ZTZWN0aW9uczogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIDE7Ci0gICAgfSwKLQotICAgIHRyYWNrc1BhbmVsVGl0bGVGb3JTZWN0aW9uOiBmdW5jdGlv
bihzZWN0aW9uSW5kZXgpCi0gICAgewotICAgICAgICByZXR1cm4gYFRpdGxlYDsKLSAgICB9LAot
Ci0gICAgdHJhY2tzUGFuZWxOdW1iZXJPZlRyYWNrc0luU2VjdGlvbjogZnVuY3Rpb24oc2VjdGlv
bkluZGV4KQotICAgIHsKLSAgICAgICAgcmV0dXJuIDM7Ci0gICAgfSwKLQotICAgIHRyYWNrc1Bh
bmVsVGl0bGVGb3JUcmFja0luU2VjdGlvbjogZnVuY3Rpb24odHJhY2tJbmRleCwgc2VjdGlvbklu
ZGV4KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGBUcmFja2A7Ci0gICAgfSwKLQotICAgIHRyYWNr
c1BhbmVsSXNUcmFja0luU2VjdGlvblNlbGVjdGVkOiBmdW5jdGlvbih0cmFja0luZGV4LCBzZWN0
aW9uSW5kZXgpCi0gICAgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotfTsKLQotbWVk
aWFDb250cm9scy50cmFja3NQYW5lbC51aURlbGVnYXRlID0gewotICAgIHRyYWNrc1BhbmVsU2Vs
ZWN0aW9uRGlkQ2hhbmdlOiBmdW5jdGlvbih0cmFja0luZGV4LCBzZWN0aW9uSW5kZXgpCi0gICAg
ewotICAgICAgICBkZWJ1ZygibWVkaWFDb250cm9scy50cmFja3NQYW5lbC51aURlbGVnYXRlLnRy
YWNrc1BhbmVsU2VsZWN0aW9uRGlkQ2hhbmdlKCkgY2FsbGVkIik7Ci0gICAgICAgIGRlYnVnKGBz
ZWN0aW9uSW5kZXggPSAke3NlY3Rpb25JbmRleH1gKTsKLSAgICAgICAgZGVidWcoYHRyYWNrSW5k
ZXggPSAke3RyYWNrSW5kZXh9YCk7Ci0KLSAgICAgICAgZGVidWcoIiIpOwotICAgICAgICBtZWRp
YUNvbnRyb2xzLmVsZW1lbnQucmVtb3ZlKCk7Ci0gICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAg
IH0KLX07Ci0KLWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobWVkaWFDb250cm9scy5lbGVtZW50
KTsKLQotbGV0IHRyYWNrRWxlbWVudDsKLQotc2hvdWxkQmVjb21lRGlmZmVyZW50KCJtZWRpYUNv
bnRyb2xzLnRyYWNrc0J1dHRvbi5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0
IiwgIjAiLCAoKSA9PiB7Ci0gICAgZGVidWcoIm1lZGlhQ29udHJvbHMuc2hvd1RyYWNrc1BhbmVs
KCkiKTsKLSAgICBtZWRpYUNvbnRyb2xzLnNob3dUcmFja3NQYW5lbCgpOwotCi0gICAgd2luZG93
LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAgICAgIGRlYnVnKCIiKTsKLSAgICAg
ICAgZGVidWcoIk1vdXNpbmcgb3ZlciB0aGUgc2Vjb25kIHRyYWNrIGluIHRoZSBwYW5lbCIpOwot
Ci0gICAgICAgIHRyYWNrRWxlbWVudCA9IG1lZGlhQ29udHJvbHMudHJhY2tzUGFuZWwuZWxlbWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCJsaSIpWzFdOwotICAgICAgICB0cmFja0VsZW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigiZm9jdXMiLCAoKSA9PiB7Ci0gICAgICAgICAgICBkZWJ1ZygiT2J0YWluZWQg
Zm9jdXMgZXZlbnQiKTsKLQotICAgICAgICAgICAgZGVidWcoIiIpOwotICAgICAgICAgICAgZGVi
dWcoIkNsaWNraW5nIG9uIGZvY3VzZWQgdHJhY2siKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlRG93bigpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotICAgICAg
ICB9KTsKLQotICAgICAgICBjb25zdCBib3VuZHMgPSB0cmFja0VsZW1lbnQuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGJvdW5kcy5sZWZ0
ICsgMSwgYm91bmRzLnRvcCArIDEpOwotICAgIH0pOwotfSk7Ci0KLTwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9i
b2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtdXAtY2xpY2stb3V0c2lkZS1tZWRpYS1kb2VzLW5v
dC1kaW1pc3MtbWVkaWEtY29udHJvbHMtd2hlbi1tZWRpYS1pcy1wYXVzZWQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90
cmFja3MtcGFuZWwtdXAtY2xpY2stb3V0c2lkZS1tZWRpYS1kb2VzLW5vdC1kaW1pc3MtbWVkaWEt
Y29udHJvbHMtd2hlbi1tZWRpYS1pcy1wYXVzZWQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAxMzk3ZWMxNDAyZWRmNGI0YTQ5MjJmOGUwZDViNDRmMmJhZGMxMjlj
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVs
LXVwLWNsaWNrLW91dHNpZGUtbWVkaWEtZG9lcy1ub3QtZGltaXNzLW1lZGlhLWNvbnRyb2xzLXdo
ZW4tbWVkaWEtaXMtcGF1c2VkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIzICsw
LDAgQEAKLUNsaWNraW5nIG91dHNpZGUgdGhlIG1lZGlhIHdoZW4gdGhlIHRyYWNrcyBwYW5lbCBp
cyB1cCBzaG91bGQgZGlzbWlzcyB0aGUgdHJhY2tzIHBhbmVsIGJ1dCBub3QgdGhlIG1lZGlhIGNv
bnRyb2xzLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotTWVkaWEgc3RhcnRlZCBw
bGF5aW5nIGFuZCB3YXMgcGF1c2VkLgotCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcign
YnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCi1QQVNTIHNoYWRvd1Jv
b3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
LndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCi09PiBUcmFja3MgYnV0dG9uIGlzIHZpc2li
bGUuCi0KLVByZXNzaW5nIG9uIHRoZSB0cmFja3MgYnV0dG9uLgotUEFTUyBzaGFkb3dSb290LnF1
ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAot
PT4gVHJhY2tzIHBhbmVsIGlzIHZpc2libGUuCi0KLUNsaWNraW5nIG91dHNpZGUgdGhlIG1lZGlh
IHRvIGRpc21pc3MgdGhlIHRyYWNrcyBwYW5lbC4KLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVj
dG9yKCcubWVkaWEtY29udHJvbHMnKS5jbGFzc0xpc3QuY29udGFpbnMoJ2ZhZGVkJykgaXMgZmFs
c2UKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykuY2xhc3NM
aXN0LmNvbnRhaW5zKCdmYWRlLW91dCcpIGlzIHRydWUKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXVwLWNs
aWNrLW91dHNpZGUtbWVkaWEtZG9lcy1ub3QtZGltaXNzLW1lZGlhLWNvbnRyb2xzLXdoZW4tbWVk
aWEtaXMtcGF1c2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC11cC1jbGljay1vdXRzaWRlLW1lZGlhLWRvZXMt
bm90LWRpbWlzcy1tZWRpYS1jb250cm9scy13aGVuLW1lZGlhLWlzLXBhdXNlZC5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMGYyNWIyMDA2ZjZmYzllNmY2YjIzNDQ2OGU1OGQw
ODEyMzIwNmUzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJh
Y2tzLXBhbmVsLXVwLWNsaWNrLW91dHNpZGUtbWVkaWEtZG9lcy1ub3QtZGltaXNzLW1lZGlhLWNv
bnRyb2xzLXdoZW4tbWVkaWEtaXMtcGF1c2VkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNCAr
MCwwIEBACi08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMu
anMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08Ym9keT4KLTx2aWRlbyBzcmM9
Ii4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVzLm1vdiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0
ZTsgbGVmdDogMTBweDsgdG9wOiAxMHB4OyB3aWR0aDogNjQwcHg7IGhlaWdodDogMzYwcHg7IiBj
b250cm9scyBhdXRvcGxheT48L3ZpZGVvPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
PgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJDbGlja2lu
ZyBvdXRzaWRlIHRoZSBtZWRpYSB3aGVuIHRoZSB0cmFja3MgcGFuZWwgaXMgdXAgc2hvdWxkIGRp
c21pc3MgdGhlIHRyYWNrcyBwYW5lbCBidXQgbm90IHRoZSBtZWRpYSBjb250cm9scy4iKTsKLQot
Y29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qgc2hh
ZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlhLmFk
ZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7Ci0gICAgbWVkaWEucGF1c2UoKTsKLQotICAg
IGRlYnVnKCJNZWRpYSBzdGFydGVkIHBsYXlpbmcgYW5kIHdhcyBwYXVzZWQuIik7Ci0gICAgZGVi
dWcoIiIpOwotICAgIHNob3dUcmFja3NQYW5lbChzaGFkb3dSb290LCAoKSA9PiB7Ci0gICAgICAg
IGRlYnVnKCJDbGlja2luZyBvdXRzaWRlIHRoZSBtZWRpYSB0byBkaXNtaXNzIHRoZSB0cmFja3Mg
cGFuZWwuIik7Ci0gICAgICAgIHByZXNzQXRQb2ludCg1LCA1LCAoKSA9PiB7Ci0gICAgICAgICAg
ICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewotICAgICAgICAgICAgICAgIHNob3VsZEJl
RmFsc2UoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLm1lZGlhLWNvbnRyb2xzJykuY2xhc3NM
aXN0LmNvbnRhaW5zKCdmYWRlZCcpIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJz
aGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5jbGFzc0xpc3QuY29udGFp
bnMoJ2ZhZGUtb3V0JykiKTsKLSAgICAgICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAg
ICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAg
fSk7Ci19KTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC11
cC1jbGljay1vdmVyLW1lZGlhLWRvZXMtbm90LWRpbWlzcy1tZWRpYS1jb250cm9scy13aGVuLW1l
ZGlhLWlzLXBsYXlpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtdXAtY2xpY2stb3Zlci1tZWRp
YS1kb2VzLW5vdC1kaW1pc3MtbWVkaWEtY29udHJvbHMtd2hlbi1tZWRpYS1pcy1wbGF5aW5nLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzA0YTdlMjcyZGRjNWYx
M2Q0NDJlYzU2YWU4MmQ2ODE1NWUyMTI2OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC11cC1jbGljay1vdmVyLW1lZGlhLWRvZXMtbm90LWRp
bWlzcy1tZWRpYS1jb250cm9scy13aGVuLW1lZGlhLWlzLXBsYXlpbmctZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotQ2xpY2tpbmcgb3ZlciB0aGUgbWVkaWEgd2hl
biB0aGUgdHJhY2tzIHBhbmVsIGlzIHVwIGFuZCB0aGUgbWVkaWEgaXMgcGxheWluZyBzaG91bGQg
ZGlzbWlzcyB0aGUgdHJhY2tzIHBhbmVsIGJ1dCBub3QgdGhlIG1lZGlhIGNvbnRyb2xzLgotCi1P
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotTWVkaWEgc3RhcnRlZCBwbGF5aW5nLgotCi1Q
QVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZm
ZXJlbnQgZnJvbSBudWxsCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRy
YWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJv
bSAwCi09PiBUcmFja3MgYnV0dG9uIGlzIHZpc2libGUuCi0KLVByZXNzaW5nIG9uIHRoZSB0cmFj
a3MgYnV0dG9uLgotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwn
KSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAotPT4gVHJhY2tzIHBhbmVsIGlzIHZpc2libGUu
Ci0KLUNsaWNraW5nIG92ZXIgdGhlIG1lZGlhIHRvIGRpc21pc3MgdGhlIHRyYWNrcyBwYW5lbC4K
LVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcubWVkaWEtY29udHJvbHMnKS5jbGFzc0xp
c3QuY29udGFpbnMoJ2ZhZGVkJykgaXMgZmFsc2UKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVj
dG9yKCcudHJhY2tzLXBhbmVsJykuY2xhc3NMaXN0LmNvbnRhaW5zKCdmYWRlLW91dCcpIGlzIHRy
dWUKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3MtcGFuZWwvdHJhY2tzLXBhbmVsLXVwLWNsaWNrLW92ZXItbWVkaWEtZG9lcy1ub3QtZGltaXNz
LW1lZGlhLWNvbnRyb2xzLXdoZW4tbWVkaWEtaXMtcGxheWluZy5odG1sIGIvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtdXAt
Y2xpY2stb3Zlci1tZWRpYS1kb2VzLW5vdC1kaW1pc3MtbWVkaWEtY29udHJvbHMtd2hlbi1tZWRp
YS1pcy1wbGF5aW5nLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU2MjNmZGQx
ZjEwNWVmODE1MmVkZGM4NTQ3ZWEyNTZiNjhhYzU4ZmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtdXAtY2xpY2stb3Zlci1tZWRpYS1kb2Vz
LW5vdC1kaW1pc3MtbWVkaWEtY29udHJvbHMtd2hlbi1tZWRpYS1pcy1wbGF5aW5nLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
bWVkaWEtY29udHJvbHMtdXRpbHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+
Ci08Ym9keT4KLTx2aWRlbyBzcmM9Ii4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVzLm1vdiIgc3R5
bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTBweDsgdG9wOiAxMHB4OyB3aWR0aDogNjQw
cHg7IGhlaWdodDogMzYwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgotPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0K
LWRlc2NyaXB0aW9uKCJDbGlja2luZyBvdmVyIHRoZSBtZWRpYSB3aGVuIHRoZSB0cmFja3MgcGFu
ZWwgaXMgdXAgYW5kIHRoZSBtZWRpYSBpcyBwbGF5aW5nIHNob3VsZCBkaXNtaXNzIHRoZSB0cmFj
a3MgcGFuZWwgYnV0IG5vdCB0aGUgbWVkaWEgY29udHJvbHMuIik7Ci0KLWNvbnN0IG1lZGlhID0g
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jvb3QgPSB3aW5k
b3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOwotCi1tZWRpYS5hZGRFdmVudExpc3RlbmVy
KCJwbGF5IiwgKCkgPT4gewotICAgIGRlYnVnKCJNZWRpYSBzdGFydGVkIHBsYXlpbmcuIik7Ci0g
ICAgZGVidWcoIiIpOwotICAgIHNob3dUcmFja3NQYW5lbChzaGFkb3dSb290LCAoKSA9PiB7Ci0g
ICAgICAgIGRlYnVnKCJDbGlja2luZyBvdmVyIHRoZSBtZWRpYSB0byBkaXNtaXNzIHRoZSB0cmFj
a3MgcGFuZWwuIik7Ci0gICAgICAgIHByZXNzQXRQb2ludCgxMSwgMTEsICgpID0+IHsKLSAgICAg
ICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAgICAgICAgICAgICAgc2hv
dWxkQmVGYWxzZSgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcubWVkaWEtY29udHJvbHMnKS5j
bGFzc0xpc3QuY29udGFpbnMoJ2ZhZGVkJykiKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZVRy
dWUoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpLmNsYXNzTGlzdC5j
b250YWlucygnZmFkZS1vdXQnKSIpOwotICAgICAgICAgICAgICAgIGRlYnVnKCIiKTsKLSAgICAg
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsK
LSAgICB9KTsKLX0pOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBh
bmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXBhbmVsL3RyYWNrcy1wYW5lbC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0
YTE3YmJhZTczM2E4YTVmODE4Njc4YmQwOGNkODBiNWI5OWJhZDU2Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSwyMCArMCwwIEBACi08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEtY29u
dHJvbHMtbG9hZGVyLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPGJvZHk+
Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLWRlc2NyaXB0aW9uKCJUZXN0aW5n
IHRoZSA8Y29kZT5UcmFja3NQYW5lbDwvY29kZT4gY2xhc3MgcHJvcGVydGllcy4iKTsKLQotY29u
c3QgdHJhY2tzUGFuZWwgPSBuZXcgVHJhY2tzUGFuZWw7Ci0KLWRlYnVnKCJCYXNpYyBwcm9wZXJ0
aWVzIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoInRyYWNrc1BhbmVsLmVsZW1lbnQubG9jYWxO
YW1lIiwgImRpdiIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0cmFja3NQYW5lbC5lbGVtZW50
LmNsYXNzTmFtZSIsICJ0cmFja3MtcGFuZWwiKTsKLXNob3VsZEJlRmFsc2UoInRyYWNrc1BhbmVs
LnByZXNlbnRlZCIpOwotc2hvdWxkQmUoInRyYWNrc1BhbmVsLnJpZ2h0WCIsICIwIik7Ci0KLWRl
YnVnKCIiKTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvYXV0by10ZXh0LXRy
YWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3Mtc3VwcG9ydC9hdXRvLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjE2N2NhNmUwMGI2MzVkMTBiYTFmNzQ5OTYxN2MwMDIzMGVkOTZiMWMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBv
cnQvYXV0by10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitFbnN1cmUg
d2UgaGF2ZSB0aGUgQXV0byB0ZXh0IHRyYWNrIHNlbGVjdGVkIGJ5IGRlZmF1bHQuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcign
YnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQQVNTIHNoYWRvd1Jv
b3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
LndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitTZXR0aW5nIGNhcHRpb24gZGlzcGxheSBt
b2RlIHRvICdhdXRvbWF0aWMnLi4uCitUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KK1BBU1MgY2hl
Y2tlZEl0ZW1zLmxlbmd0aCBpcyAxCitQQVNTIGNoZWNrZWRJdGVtc1swXS50aXRsZSBpcyAiQXV0
byAoUmVjb21tZW5kZWQpIgorU2V0dGluZyBjYXB0aW9uIGRpc3BsYXkgbW9kZSB0byAnZm9yY2Vk
b25seScuLi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXN1cHBvcnQvYXV0by10ZXh0LXRyYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvYXV0by10ZXh0LXRyYWNrLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDNjZjI0ODZjYjNkMTg4ODExOGYyZWRkZTY2M2VkOGVhNjIxOTM1MwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3Mtc3VwcG9ydC9hdXRvLXRleHQtdHJhY2suaHRtbApAQCAtMCwwICsxLDUyIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRp
bHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxw
ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzx2aWRlbyBzcmM9Ii4uLy4uL2NvbnRlbnQvY291
bnRpbmctc3VidGl0bGVkLm00diIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsg
dG9wOiAwOyB3aWR0aDogNDAwcHg7IiBhdXRvcGxheSBjb250cm9scyBtdXRlZCBwbGF5c2lubGlu
ZT48L3ZpZGVvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCit3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKCJFbnN1cmUgd2UgaGF2ZSB0aGUgQXV0
byB0ZXh0IHRyYWNrIHNlbGVjdGVkIGJ5IGRlZmF1bHQuIik7CisKK2NvbnN0IG1lZGlhID0gZG9j
dW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cu
aW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOworCitsZXQgY2hlY2tlZEl0ZW1zID0gbnVsbDsK
KworbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKKyAgICBtZWRpYS5wYXVz
ZSgpOworCisgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0
b3IoJ2J1dHRvbi50cmFja3MnKSIsICJudWxsIiwgKCkgPT4geworICAgICAgICBzaG91bGRCZWNv
bWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIiwgIjAiLCBhc3luYyAoKSA9PiB7CisgICAgICAg
ICAgICBkZWJ1ZygiU2V0dGluZyBjYXB0aW9uIGRpc3BsYXkgbW9kZSB0byAnYXV0b21hdGljJy4u
LiIpOworICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRDYXB0aW9uRGlzcGxheU1vZGUo
ImF1dG9tYXRpYyIpOworCisgICAgICAgICAgICBkZWJ1ZygiVGFwcGluZyB0cmFja3MgYnV0dG9u
Li4uIik7CisgICAgICAgICAgICBsZXQgW2NvbnRleHRtZW51XSA9IGF3YWl0IFByb21pc2UuYWxs
KFsKKyAgICAgICAgICAgICAgICBnZXRUcmFja3NDb250ZXh0TWVudSgpLAorICAgICAgICAgICAg
ICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNr
cyIpKSwKKyAgICAgICAgICAgIF0pOworICAgICAgICAgICAgbGV0IHN1YnRpdGxlc01lbnUgPSBj
b250ZXh0bWVudVswXS5jaGlsZHJlbi5maW5kKChzdWJtZW51KSA9PiBzdWJtZW51LnRpdGxlID09
PSAiU3VidGl0bGVzIik7CisgICAgICAgICAgICBpZiAoc3VidGl0bGVzTWVudS5jaGlsZHJlbj8u
bGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuY2hvb3NlTWVudUFjdGlv
bihzdWJ0aXRsZXNNZW51LnRpdGxlKTsKKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5k
ZWxheUZvcig1MDApOyAvLyBnaXZlIHRpbWUgZm9yIHRoZSBVSU1lbnUgdG8gYW5pbWF0ZQorICAg
ICAgICAgICAgICAgIGNvbnRleHRtZW51ID0gW3N1YnRpdGxlc01lbnVdOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgY2hlY2tlZEl0ZW1zID0gY29udGV4dG1lbnVbMF0uY2hpbGRyZW4uZmls
dGVyKChpdGVtKSA9PiBpdGVtLmNoZWNrZWQpOworICAgICAgICAgICAgc2hvdWxkQmUoImNoZWNr
ZWRJdGVtcy5sZW5ndGgiLCAiMSIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJjaGVja2VkSXRlbXNbMF0udGl0bGUiLCAiQXV0byAoUmVjb21tZW5kZWQpIik7CisKKyAgICAg
ICAgICAgIGRlYnVnKCJTZXR0aW5nIGNhcHRpb24gZGlzcGxheSBtb2RlIHRvICdmb3JjZWRvbmx5
Jy4uLiIpOworICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRDYXB0aW9uRGlzcGxheU1v
ZGUoImZvcmNlZG9ubHkiKTsKKworICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7CisgICAgICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9KTsKKworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvY2FwdGlvbnMtb2Zmc2V0LXdpdGgtY29udHJvbHMt
YmFyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3Mtc3VwcG9ydC9jYXB0aW9ucy1vZmZzZXQtd2l0aC1jb250cm9scy1iYXItZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjY2OWRiNWY3ODE0ZWY4NTA2ZGQ5ODkyZjZhMDZhOWNlNGU4ZmU5
YTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXN1cHBvcnQvY2FwdGlvbnMtb2Zmc2V0LXdpdGgtY29udHJvbHMtYmFyLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitFbnN1cmUgdGhhdCB0aGUgY2FwdGlvbnMgY29u
dGFpbmVyIGFjY291bnRzIGZvciB0aGUgY29udHJvbHMgYmFyIHdoZW4gdmlzaWJsZS4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShzaGFkb3dS
b290Lmxhc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQpLmhlaWdodCBpcyAiY2FsYygx
MDAlIC0gMzdweCkiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1zdXBwb3J0L2NhcHRpb25zLW9mZnNldC13aXRoLWNvbnRyb2xzLWJhci5odG1s
IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L2NhcHRpb25zLW9mZnNldC13aXRoLWNvbnRyb2xzLWJhci5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkYTUx
NDFhYjAyZWQwOTliMDJjOTExYTM4ZDFkMzg4NDNmYTBiMzEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvY2Fw
dGlvbnMtb2Zmc2V0LXdpdGgtY29udHJvbHMtYmFyLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMt
dXRpbHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Cis8Ym9keT4KKzx2aWRl
byBzcmM9Ii4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVzLm1vdiIgc3R5bGU9InBvc2l0aW9uOiBh
YnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDogNDAwcHg7IiBhdXRvcGxheSBjb250cm9s
cyBtdXRlZCBwbGF5c2lubGluZT48L3ZpZGVvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPgorCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKCJFbnN1
cmUgdGhhdCB0aGUgY2FwdGlvbnMgY29udGFpbmVyIGFjY291bnRzIGZvciB0aGUgY29udHJvbHMg
YmFyIHdoZW4gdmlzaWJsZS4iKTsKKworY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yKCJ2aWRlbyIpOworY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93
Um9vdChtZWRpYSk7CisKK21lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7Cisg
ICAgbWVkaWEucGF1c2UoKTsKKworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0Q29tcHV0
ZWRTdHlsZShzaGFkb3dSb290Lmxhc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQpLmhl
aWdodCIsICJjYWxjKDEwMCUgLSAzN3B4KSIpOworICAgIG1lZGlhLnJlbW92ZSgpOworICAgIGZp
bmlzaEpTVGVzdCgpOworfSk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2Ns
aWNrLXRyYWNrLWluLWNvbnRleHRtZW51LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9jbGljay10cmFjay1pbi1jb250
ZXh0bWVudS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTlkN2MzN2I0ZDJhNWFmODk5NjBkNTFm
YWM3YmFiNmUzM2U3MTYxYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9jbGljay10cmFjay1pbi1jb250ZXh0
bWVudS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNiBAQAorQ2xpY2tpbmcgb24gYSB0cmFjayBp
biB0aGUgdHJhY2tzIGNvbnRleHRtZW51LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworQXVkaW8gdHJhY2sgJ0VuZ2xpc2ggU291bmQnIGlzIGVuYWJsZWQuCitBdWRpbyB0cmFjayAn
RnJlbmNoIFNvdW5kJyBpcyBkaXNhYmxlZC4KK0F1ZGlvIHRyYWNrICdTcGFuaXNoIFNvdW5kJyBp
cyBkaXNhYmxlZC4KK1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tz
JykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKK1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVj
dG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggYmVjYW1l
IGRpZmZlcmVudCBmcm9tIDAKK1RhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLgorU2VsZWN0aW5nICdG
cmVuY2gnIHRyYWNrLi4uCitBdWRpbyB0cmFja3MgY2hhbmdlZC4KK0F1ZGlvIHRyYWNrICdFbmds
aXNoIFNvdW5kJyBpcyBkaXNhYmxlZC4KK0F1ZGlvIHRyYWNrICdGcmVuY2ggU291bmQnIGlzIGVu
YWJsZWQuCitBdWRpbyB0cmFjayAnU3BhbmlzaCBTb3VuZCcgaXMgZGlzYWJsZWQuCitUYXBwaW5n
IHRyYWNrcyBidXR0b24uLi4KK1NlbGVjdGluZyAnU3BhbmlzaCcgdHJhY2suLi4KK0F1ZGlvIHRy
YWNrcyBjaGFuZ2VkLgorQXVkaW8gdHJhY2sgJ0VuZ2xpc2ggU291bmQnIGlzIGRpc2FibGVkLgor
QXVkaW8gdHJhY2sgJ0ZyZW5jaCBTb3VuZCcgaXMgZGlzYWJsZWQuCitBdWRpbyB0cmFjayAnU3Bh
bmlzaCBTb3VuZCcgaXMgZW5hYmxlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvY2xpY2stdHJhY2staW4tY29udGV4dG1lbnUu
aHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3Vw
cG9ydC9jbGljay10cmFjay1pbi1jb250ZXh0bWVudS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5NzEwNDMz
YWQ5MjAyMjZmOGQyZjYyNTQxMTU1NGM1ZDc3ZjBkYjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvY2xpY2st
dHJhY2staW4tY29udGV4dG1lbnUuaHRtbApAQCAtMCwwICsxLDk3IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8Ym9keT4KKzx2aWRlbyBzcmM9Ii4uLy4uL2NvbnRlbnQvYXVkaW8tdHJhY2tz
Lm1wNCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDog
NDAwcHg7IiBjb250cm9scyBhdXRvcGxheSBtdXRlZCBwbGF5c2lubGluZT48L3ZpZGVvPgorPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRy
dWU7CisKK2Rlc2NyaXB0aW9uKCJDbGlja2luZyBvbiBhIHRyYWNrIGluIHRoZSB0cmFja3MgY29u
dGV4dG1lbnUuIik7CisKK2NvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigidmlk
ZW8iKTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVk
aWEpOworCitsZXQgc2VsZWN0ZWRUcmFjayA9IG51bGw7CisKK21lZGlhLmFkZEV2ZW50TGlzdGVu
ZXIoInBsYXkiLCAoKSA9PiB7CisgICAgbWVkaWEucGF1c2UoKTsKKworICAgIGR1bXBBdWRpb1Ry
YWNrc0VuYWJsZWRTdGF0ZSgpOworCisgICAgbWVkaWEuYXVkaW9UcmFja3MuYWRkRXZlbnRMaXN0
ZW5lcigiY2hhbmdlIiwgaGFuZGxlQXVkaW9UcmFja3NDaGFuZ2UpOworCisgICAgc2hvdWxkQmVj
b21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSIs
ICJudWxsIiwgKCkgPT4geworICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jv
b3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
LndpZHRoIiwgIjAiLCAoKSA9PiB7CisgICAgICAgICAgICBjbGlja09uVHJhY2tzQnV0dG9uKGNs
aWNrT25GcmVuY2hBdWRpb1RyYWNrKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9KTsKKworZnVu
Y3Rpb24gY2xpY2tPblRyYWNrc0J1dHRvbihjb250aW51YXRpb24pCit7CisgICAgZGVidWcoIlRh
cHBpbmcgdHJhY2tzIGJ1dHRvbi4uLiIpOworICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3Qu
cXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpLCAoKSA9PiB7CisgICAgICAgIHdpbmRvdy5y
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY29udGludWF0aW9uKTsKKyAgICB9KTsKK30KKworYXN5bmMg
ZnVuY3Rpb24gY2xpY2tPbkZyZW5jaEF1ZGlvVHJhY2soKQoreworICAgIGRlYnVnKCJTZWxlY3Rp
bmcgJ0ZyZW5jaCcgdHJhY2suLi4iKTsKKyAgICBsZXQgY29udGV4dG1lbnUgPSBhd2FpdCBnZXRU
cmFja3NDb250ZXh0TWVudSgpOworICAgIGxldCBsYW5ndWFnZXNNZW51ID0gY29udGV4dG1lbnVb
MF0uY2hpbGRyZW4uZmluZCgoc3VibWVudSkgPT4gc3VibWVudS50aXRsZSA9PT0gIkxhbmd1YWdl
cyIpOworICAgIGlmIChsYW5ndWFnZXNNZW51LmNoaWxkcmVuPy5sZW5ndGgpIHsKKyAgICAgICAg
YXdhaXQgVUlIZWxwZXIuY2hvb3NlTWVudUFjdGlvbihsYW5ndWFnZXNNZW51LnRpdGxlKTsKKyAg
ICAgICAgYXdhaXQgVUlIZWxwZXIuZGVsYXlGb3IoNTAwKTsgLy8gZ2l2ZSB0aW1lIGZvciB0aGUg
VUlNZW51IHRvIGFuaW1hdGUKKyAgICB9CisgICAgYXdhaXQgVUlIZWxwZXIuY2hvb3NlTWVudUFj
dGlvbigiRnJlbmNoIFNvdW5kIik7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGNsaWNrT25TcGFuaXNo
QXVkaW9UcmFjaygpCit7CisgICAgZGVidWcoIlNlbGVjdGluZyAnU3BhbmlzaCcgdHJhY2suLi4i
KTsKKyAgICBsZXQgY29udGV4dG1lbnUgPSBhd2FpdCBnZXRUcmFja3NDb250ZXh0TWVudSgpOwor
ICAgIGxldCBsYW5ndWFnZXNNZW51ID0gY29udGV4dG1lbnVbMF0uY2hpbGRyZW4uZmluZCgoc3Vi
bWVudSkgPT4gc3VibWVudS50aXRsZSA9PT0gIkxhbmd1YWdlcyIpOworICAgIGlmIChsYW5ndWFn
ZXNNZW51LmNoaWxkcmVuPy5sZW5ndGgpIHsKKyAgICAgICAgYXdhaXQgVUlIZWxwZXIuY2hvb3Nl
TWVudUFjdGlvbihsYW5ndWFnZXNNZW51LnRpdGxlKTsKKyAgICAgICAgYXdhaXQgVUlIZWxwZXIu
ZGVsYXlGb3IoNTAwKTsgLy8gZ2l2ZSB0aW1lIGZvciB0aGUgVUlNZW51IHRvIGFuaW1hdGUKKyAg
ICB9CisgICAgYXdhaXQgVUlIZWxwZXIuY2hvb3NlTWVudUFjdGlvbigiU3BhbmlzaCBTb3VuZCIp
OworfQorCithc3luYyBmdW5jdGlvbiBoYW5kbGVBdWRpb1RyYWNrc0NoYW5nZSgpCit7CisgICAg
bGV0IG5ld1NlbGVjdGVkVHJhY2sgPSBBcnJheS5mcm9tKG1lZGlhLmF1ZGlvVHJhY2tzKS5maW5k
KChhdWRpb1RyYWNrKSA9PiBhdWRpb1RyYWNrLmVuYWJsZWQpOworICAgIGlmIChzZWxlY3RlZFRy
YWNrID09PSBuZXdTZWxlY3RlZFRyYWNrKQorICAgICAgICByZXR1cm47CisgICAgc2VsZWN0ZWRU
cmFjayA9IG5ld1NlbGVjdGVkVHJhY2s7CisKKyAgICBkZWJ1ZygiQXVkaW8gdHJhY2tzIGNoYW5n
ZWQuIik7CisKKyAgICBkdW1wQXVkaW9UcmFja3NFbmFibGVkU3RhdGUoKTsKKworICAgIGF3YWl0
IFVJSGVscGVyLndhaXRGb3JDb250ZXh0TWVudVRvSGlkZSgpOworCisgICAgc3dpdGNoIChzZWxl
Y3RlZFRyYWNrLmxhYmVsKSB7CisgICAgY2FzZSAiRnJlbmNoIFNvdW5kIjoKKyAgICAgICAgY2xp
Y2tPblRyYWNrc0J1dHRvbihjbGlja09uU3BhbmlzaEF1ZGlvVHJhY2spOworICAgICAgICBicmVh
azsKKworICAgIGNhc2UgIlNwYW5pc2ggU291bmQiOgorICAgICAgICBtZWRpYS5yZW1vdmUoKTsK
KyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKworZnVu
Y3Rpb24gZHVtcEF1ZGlvVHJhY2tzRW5hYmxlZFN0YXRlKCkKK3sKKyAgICBmb3IgKGxldCBhdWRp
b1RyYWNrIG9mIG1lZGlhLmF1ZGlvVHJhY2tzKQorICAgICAgICBkZWJ1ZyhgQXVkaW8gdHJhY2sg
JyR7YXVkaW9UcmFjay5sYWJlbH0nIGlzICR7YXVkaW9UcmFjay5lbmFibGVkID8gImVuYWJsZWQi
IDogImRpc2FibGVkIn0uYCk7Cit9CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L2hpZGRlbi10cmFja3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2hpZGRlbi10cmFja3MtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjMxZDU0MDIwZjI0NzRlNWViMDM2NjM1OWVmMzg0NmY5MzJmZjJjYjkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvaGlkZGVuLXRyYWNrcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAor
VGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSB0cmFja3MgY29udGV4dG1lbnUgZG9lc24ndCBzaG93
IGFueSB0cmFjayBhcyBzZWxlY3RlZCBpZiBhbGwgdGhlIHRleHQgdHJhY2tzIGZvciBhIG1lZGlh
IGVsZW1lbnQgYXJlIG1hcmtlZCBhcyAiaGlkZGVuIi4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykg
YmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKK1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggYmVjYW1lIGRp
ZmZlcmVudCBmcm9tIDAKK1NldHRpbmcgbW9kZSB0byAnaGlkZGVuJyBmb3IgYWxsIHRleHQgdHJh
Y2tzIHZpYSBKYXZhU2NyaXB0Li4uCitUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KK1BBU1MgY2hl
Y2tlZEl0ZW1zLmxlbmd0aCBpcyAxCitQQVNTIGNoZWNrZWRJdGVtc1swXS50aXRsZSBpcyAiT2Zm
IgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
c3VwcG9ydC9oaWRkZW4tdHJhY2tzLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaGlkZGVuLXRyYWNrcy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmY2MTNmYzhlNmUzMDczNzRkODE2NWRkNzdlMjE1NmExZWU2YzcyNTcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBv
cnQvaGlkZGVuLXRyYWNrcy5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzwhRE9DVFlQRSBodG1sPgor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxib2R5PgorPHZpZGVvIHNyYz0iLi4vLi4vY29udGVudC9jb3VudGluZy1zdWJ0aXRs
ZWQubTR2IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRo
OiA0MDBweDsiIGNvbnRyb2xzIGF1dG9wbGF5IG11dGVkIHBsYXlzaW5saW5lPjwvdmlkZW8+Cis8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKworZGVzY3JpcHRpb24oYFRoaXMgdGVzdCBjaGVja3MgdGhhdCB0aGUgdHJhY2tzIGNv
bnRleHRtZW51IGRvZXNuJ3Qgc2hvdyBhbnkgdHJhY2sgYXMgc2VsZWN0ZWQgaWYgYWxsIHRoZSB0
ZXh0IHRyYWNrcyBmb3IgYSBtZWRpYSBlbGVtZW50IGFyZSBtYXJrZWQgYXMgImhpZGRlbiIuYCk7
CisKK2NvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKK2NvbnN0
IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOworCitsZXQg
Y2hlY2tlZEl0ZW1zID0gbnVsbDsKKworbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgp
ID0+IHsKKyAgICBtZWRpYS5wYXVzZSgpOworCisgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJz
aGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSIsICJudWxsIiwgKCkgPT4g
eworICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIiwgIjAiLCBh
c3luYyAoKSA9PiB7CisgICAgICAgICAgICBkZWJ1ZygiU2V0dGluZyBtb2RlIHRvICdoaWRkZW4n
IGZvciBhbGwgdGV4dCB0cmFja3MgdmlhIEphdmFTY3JpcHQuLi4iKTsKKyAgICAgICAgICAgIGZv
ciAobGV0IHRleHRUcmFjayBvZiBtZWRpYS50ZXh0VHJhY2tzKQorICAgICAgICAgICAgICAgIHRl
eHRUcmFjay5tb2RlID0gImhpZGRlbiI7CisKKyAgICAgICAgICAgIGRlYnVnKCJUYXBwaW5nIHRy
YWNrcyBidXR0b24uLi4iKTsKKyAgICAgICAgICAgIGxldCBbY29udGV4dG1lbnVdID0gYXdhaXQg
UHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGdldFRyYWNrc0NvbnRleHRNZW51KCksCisg
ICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJi
dXR0b24udHJhY2tzIikpLAorICAgICAgICAgICAgXSk7CisgICAgICAgICAgICBsZXQgc3VidGl0
bGVzTWVudSA9IGNvbnRleHRtZW51WzBdLmNoaWxkcmVuLmZpbmQoKHN1Ym1lbnUpID0+IHN1Ym1l
bnUudGl0bGUgPT09ICJTdWJ0aXRsZXMiKTsKKyAgICAgICAgICAgIGlmIChzdWJ0aXRsZXNNZW51
LmNoaWxkcmVuPy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5jaG9v
c2VNZW51QWN0aW9uKHN1YnRpdGxlc01lbnUudGl0bGUpOworICAgICAgICAgICAgICAgIGF3YWl0
IFVJSGVscGVyLmRlbGF5Rm9yKDUwMCk7IC8vIGdpdmUgdGltZSBmb3IgdGhlIFVJTWVudSB0byBh
bmltYXRlCisgICAgICAgICAgICAgICAgY29udGV4dG1lbnUgPSBbc3VidGl0bGVzTWVudV07Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBjaGVja2VkSXRlbXMgPSBjb250ZXh0bWVudVswXS5j
aGlsZHJlbi5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uY2hlY2tlZCk7CisgICAgICAgICAgICBzaG91
bGRCZSgiY2hlY2tlZEl0ZW1zLmxlbmd0aCIsICIxIik7CisgICAgICAgICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoImNoZWNrZWRJdGVtc1swXS50aXRsZSIsICJPZmYiKTsKKworICAgICAgICAg
ICAgbWVkaWEucmVtb3ZlKCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAg
fSk7CisgICAgfSk7Cit9KTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9z
L3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1z
dXBwb3J0LWF1dG8tdGV4dC10cmFjay1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDU0NDRiNjk1NDc1YWE0NDIxNzgyNTllYjg5N2FmNDdjNjIwYWNkYTQuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9y
dC1hdXRvLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAs
MCBAQAotRW5zdXJlIHdlIGhhdmUgdGhlIEF1dG8gdGV4dCB0cmFjayBzZWxlY3RlZCBieSBkZWZh
dWx0LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBzaGFkb3dSb290LnF1
ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAot
UEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAotU2V0dGluZyBjYXB0
aW9uIGRpc3BsYXkgbW9kZSB0byAnYXV0b21hdGljJy4uLgotVGFwcGluZyB0cmFja3MgYnV0dG9u
Li4uCi1bCi0gIHsKLSAgICAiY2hpbGRyZW4iOiBbCi0gICAgICB7Ci0gICAgICAgICJ0aXRsZSI6
ICJMYW5ndWFnZXMiLAotICAgICAgICAiY2hpbGRyZW4iOiBbCi0gICAgICAgICAgewotICAgICAg
ICAgICAgInRpdGxlIjogIkVuZ2xpc2ggU291bmQiLAotICAgICAgICAgICAgImNoZWNrZWQiOiB0
cnVlCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICAidGl0bGUiOiAiRnJl
bmNoIFNvdW5kIgotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgInRpdGxl
IjogIlNwYW5pc2ggU291bmQiCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAotICAg
ICAgewotICAgICAgICAidGl0bGUiOiAiU3VidGl0bGVzIiwKLSAgICAgICAgImNoaWxkcmVuIjog
WwotICAgICAgICAgIHsKLSAgICAgICAgICAgICJ0aXRsZSI6ICJPZmYiCi0gICAgICAgICAgfSwK
LSAgICAgICAgICB7Ci0gICAgICAgICAgICAidGl0bGUiOiAiQXV0byAoUmVjb21tZW5kZWQpIiwK
LSAgICAgICAgICAgICJjaGVja2VkIjogdHJ1ZQotICAgICAgICAgIH0sCi0gICAgICAgICAgewot
ICAgICAgICAgICAgInRpdGxlIjogIkVuZ2xpc2ggU3VidGl0bGVzIgotICAgICAgICAgIH0sCi0g
ICAgICAgICAgewotICAgICAgICAgICAgInRpdGxlIjogIkZyZW5jaCBTdWJ0aXRsZXMiCi0gICAg
ICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICAidGl0bGUiOiAiR2VybWFuIFN1YnRp
dGxlcyIKLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgICJ0aXRsZSI6ICJT
cGFuaXNoIFN1YnRpdGxlcyIKLSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAgIH0KLSAgICBd
Ci0gIH0KLV0KLVNldHRpbmcgY2FwdGlvbiBkaXNwbGF5IG1vZGUgdG8gJ2ZvcmNlZG9ubHknLi4u
Ci1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1z
dXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJhY2suaHRtbCBiL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tz
LXN1cHBvcnQtYXV0by10ZXh0LXRyYWNrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGY1YmViYzE4NWY0MTkxMmMyMmI1YTdhNDk4ZTUwNzkwMzE1NjA1NmMuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1hdXRv
LXRleHQtdHJhY2suaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGls
cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhl
bHBlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxib2R5PgotPHZpZGVvIHNyYz0iLi4vLi4vLi4vY29u
dGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAw
OyB0b3A6IDA7IHdpZHRoOiAzMDBweDsiIGF1dG9wbGF5IGNvbnRyb2xzIG11dGVkIHBsYXlzaW5s
aW5lPjwvdmlkZW8+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXdpbmRvdy5q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oIkVuc3VyZSB3ZSBoYXZlIHRoZSBB
dXRvIHRleHQgdHJhY2sgc2VsZWN0ZWQgYnkgZGVmYXVsdC4iKTsKLQotY29uc3QgbWVkaWEgPSBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRv
dy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlhLmFkZEV2ZW50TGlzdGVuZXIo
InBsYXkiLCAoKSA9PiB7Ci0gICAgbWVkaWEucGF1c2UoKTsKLQotICAgIHNob3VsZEJlY29tZURp
ZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykiLCAibnVs
bCIsICgpID0+IHsKLSAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1
ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0
aCIsICIwIiwgYXN5bmMgKCkgPT4gewotICAgICAgICAgICAgZGVidWcoIlNldHRpbmcgY2FwdGlv
biBkaXNwbGF5IG1vZGUgdG8gJ2F1dG9tYXRpYycuLi4iKTsKLSAgICAgICAgICAgIHdpbmRvdy5p
bnRlcm5hbHMuc2V0Q2FwdGlvbkRpc3BsYXlNb2RlKCJhdXRvbWF0aWMiKTsKLQotICAgICAgICAg
ICAgZGVidWcoIlRhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLiIpOwotICAgICAgICAgICAgbGV0IFtj
b250ZXh0bWVudV0gPSBhd2FpdCBQcm9taXNlLmFsbChbCi0gICAgICAgICAgICAgICAgZ2V0VHJh
Y2tzQ29udGV4dE1lbnUoKSwKLSAgICAgICAgICAgICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dS
b290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSksCi0gICAgICAgICAgICBdKTsKLSAg
ICAgICAgICAgIGRlYnVnKEpTT04uc3RyaW5naWZ5KGNvbnRleHRtZW51LCBudWxsLCAyKSk7Ci0K
LSAgICAgICAgICAgIGRlYnVnKCJTZXR0aW5nIGNhcHRpb24gZGlzcGxheSBtb2RlIHRvICdmb3Jj
ZWRvbmx5Jy4uLiIpOwotICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRDYXB0aW9uRGlz
cGxheU1vZGUoImZvcmNlZG9ubHkiKTsKLQotICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7Ci0g
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19KTsKLQot
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWNs
aWNrLXRyYWNrLWluLWNvbnRleHRtZW51LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQt
Y2xpY2stdHJhY2staW4tY29udGV4dG1lbnUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA4YmNmMDUyOTZmMGU2YjIzZGNmNTJjNTYyOGRjMWVlMDM2NGM2MjE1Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1
cHBvcnQtY2xpY2stdHJhY2staW4tY29udGV4dG1lbnUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMjYgKzAsMCBAQAotQ2xpY2tpbmcgb24gYSB0cmFjayBpbiB0aGUgdHJhY2tzIGNv
bnRleHRtZW51LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotbWVkaWEuYXVkaW9U
cmFja3NbMF0uZW5hYmxlZCA9IHRydWUKLW1lZGlhLmF1ZGlvVHJhY2tzWzFdLmVuYWJsZWQgPSBm
YWxzZQotbWVkaWEuYXVkaW9UcmFja3NbMl0uZW5hYmxlZCA9IGZhbHNlCi1QQVNTIHNoYWRvd1Jv
b3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBu
dWxsCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCi1UYXBwaW5n
IHRyYWNrcyBidXR0b24uLi4KLVNlbGVjdGluZyBzZWNvbmQgYXVkaW8gdHJhY2suLi4KLUF1ZGlv
IHRyYWNrcyBjaGFuZ2VkLgotbWVkaWEuYXVkaW9UcmFja3NbMF0uZW5hYmxlZCA9IGZhbHNlCi1t
ZWRpYS5hdWRpb1RyYWNrc1sxXS5lbmFibGVkID0gdHJ1ZQotbWVkaWEuYXVkaW9UcmFja3NbMl0u
ZW5hYmxlZCA9IGZhbHNlCi1UYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KLVNlbGVjdGluZyB0aGly
ZCBhdWRpbyB0cmFjay4uLgotQXVkaW8gdHJhY2tzIGNoYW5nZWQuCi1tZWRpYS5hdWRpb1RyYWNr
c1swXS5lbmFibGVkID0gZmFsc2UKLW1lZGlhLmF1ZGlvVHJhY2tzWzFdLmVuYWJsZWQgPSBmYWxz
ZQotbWVkaWEuYXVkaW9UcmFja3NbMl0uZW5hYmxlZCA9IHRydWUKLVBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1z
dXBwb3J0LWNsaWNrLXRyYWNrLWluLWNvbnRleHRtZW51Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0
LWNsaWNrLXRyYWNrLWluLWNvbnRleHRtZW51Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDdmZWViNmRhMmY4MDFkZjFkYjg0YWJhMGYxOThjMmQ4MGY4NGZlMTMuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1j
bGljay10cmFjay1pbi1jb250ZXh0bWVudS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTEgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL21lZGlh
LWNvbnRyb2xzLXV0aWxzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8gc3Jj
PSIuLi8uLi8uLi9jb250ZW50L2F1ZGlvLXRyYWNrcy5tcDQiIHN0eWxlPSJwb3NpdGlvbjogYWJz
b2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDMwMHB4OyIgY29udHJvbHMgYXV0b3BsYXkg
bXV0ZWQgcGxheXNpbmxpbmU+PC92aWRlbz4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbigiQ2xpY2tp
bmcgb24gYSB0cmFjayBpbiB0aGUgdHJhY2tzIGNvbnRleHRtZW51LiIpOwotCi1jb25zdCBtZWRp
YSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Ci1jb25zdCBzaGFkb3dSb290ID0g
d2luZG93LmludGVybmFscy5zaGFkb3dSb290KG1lZGlhKTsKLQotbGV0IHByZXZpb3VzbHlTZWxl
Y3RlZFRyYWNrID0gMDsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsK
LSAgICBtZWRpYS5wYXVzZSgpOwotCi0gICAgZHVtcEF1ZGlvVHJhY2tzRW5hYmxlZFN0YXRlKCk7
Ci0KLSAgICBtZWRpYS5hdWRpb1RyYWNrcy5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCBoYW5k
bGVBdWRpb1RyYWNrc0NoYW5nZSk7Ci0KLSAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRv
d1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7Ci0g
ICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdi
dXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIsICgpID0+
IHsKLSAgICAgICAgICAgIGNsaWNrT25UcmFja3NCdXR0b24oY2xpY2tPblNlY29uZEF1ZGlvVHJh
Y2spOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0pOwotCi1mdW5jdGlvbiBjbGlja09uVHJhY2tz
QnV0dG9uKGNvbnRpbnVhdGlvbikKLXsKLSAgICBkZWJ1ZygiVGFwcGluZyB0cmFja3MgYnV0dG9u
Li4uIik7Ci0gICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0
b24udHJhY2tzIiksICgpID0+IHsKLSAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFt
ZShjb250aW51YXRpb24pOwotICAgIH0pOwotfQotCi1hc3luYyBmdW5jdGlvbiBjbGlja09uU2Vj
b25kQXVkaW9UcmFjaygpCi17Ci0gICAgZGVidWcoIlNlbGVjdGluZyBzZWNvbmQgYXVkaW8gdHJh
Y2suLi4iKTsKLSAgICBsZXQgY29udGV4dG1lbnUgPSBhd2FpdCBnZXRUcmFja3NDb250ZXh0TWVu
dSgpOwotICAgIGxldCBsYW5ndWFnZXNNZW51ID0gY29udGV4dG1lbnVbMF0uY2hpbGRyZW5bMF07
Ci0gICAgYXdhaXQgVUlIZWxwZXIuY2hvb3NlTWVudUFjdGlvbihsYW5ndWFnZXNNZW51LnRpdGxl
KTsKLSAgICBhd2FpdCBVSUhlbHBlci5kZWxheUZvcig1MDApOyAvLyBnaXZlIHRpbWUgZm9yIHRo
ZSBVSU1lbnUgdG8gYW5pbWF0ZQotICAgIGF3YWl0IFVJSGVscGVyLmNob29zZU1lbnVBY3Rpb24o
bGFuZ3VhZ2VzTWVudS5jaGlsZHJlblsxXS50aXRsZSk7Ci19Ci0KLWFzeW5jIGZ1bmN0aW9uIGNs
aWNrT25UaGlyZEF1ZGlvVHJhY2soKQotewotICAgIGRlYnVnKCJTZWxlY3RpbmcgdGhpcmQgYXVk
aW8gdHJhY2suLi4iKTsKLSAgICBsZXQgY29udGV4dG1lbnUgPSBhd2FpdCBnZXRUcmFja3NDb250
ZXh0TWVudSgpOwotICAgIGxldCBsYW5ndWFnZXNNZW51ID0gY29udGV4dG1lbnVbMF0uY2hpbGRy
ZW5bMF07Ci0gICAgYXdhaXQgVUlIZWxwZXIuY2hvb3NlTWVudUFjdGlvbihsYW5ndWFnZXNNZW51
LnRpdGxlKTsKLSAgICBhd2FpdCBVSUhlbHBlci5kZWxheUZvcig1MDApOyAvLyBnaXZlIHRpbWUg
Zm9yIHRoZSBVSU1lbnUgdG8gYW5pbWF0ZQotICAgIGF3YWl0IFVJSGVscGVyLmNob29zZU1lbnVB
Y3Rpb24obGFuZ3VhZ2VzTWVudS5jaGlsZHJlblsyXS50aXRsZSk7Ci19Ci0KLWFzeW5jIGZ1bmN0
aW9uIGhhbmRsZUF1ZGlvVHJhY2tzQ2hhbmdlKCkKLXsKLSAgICBjb25zdCBuZXdTZWxlY3RlZFRy
YWNrID0gQXJyYXkuZnJvbShtZWRpYS5hdWRpb1RyYWNrcykuZmluZEluZGV4KHRyYWNrID0+IHRy
YWNrLmVuYWJsZWQpOwotICAgIGlmIChwcmV2aW91c2x5U2VsZWN0ZWRUcmFjayA9PT0gbmV3U2Vs
ZWN0ZWRUcmFjaykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgcHJldmlvdXNseVNlbGVjdGVkVHJh
Y2sgPSBuZXdTZWxlY3RlZFRyYWNrOwotCi0gICAgZGVidWcoIkF1ZGlvIHRyYWNrcyBjaGFuZ2Vk
LiIpOwotCi0gICAgZHVtcEF1ZGlvVHJhY2tzRW5hYmxlZFN0YXRlKCk7Ci0KLSAgICBhd2FpdCBV
SUhlbHBlci53YWl0Rm9yQ29udGV4dE1lbnVUb0hpZGUoKTsKLQotICAgIGlmIChtZWRpYS5hdWRp
b1RyYWNrc1sxXS5lbmFibGVkKQotICAgICAgICBjbGlja09uVHJhY2tzQnV0dG9uKGNsaWNrT25U
aGlyZEF1ZGlvVHJhY2spOwotICAgIGVsc2UgaWYgKG1lZGlhLmF1ZGlvVHJhY2tzWzJdLmVuYWJs
ZWQpIHsKLSAgICAgICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAgICAgIGZpbmlzaEpTVGVzdCgpOwot
ICAgIH0KLX0KLQotZnVuY3Rpb24gZHVtcEF1ZGlvVHJhY2tzRW5hYmxlZFN0YXRlKCkKLXsKLSAg
ICBBcnJheS5mcm9tKG1lZGlhLmF1ZGlvVHJhY2tzKS5mb3JFYWNoKChhdWRpb1RyYWNrLCBpbmRl
eCkgPT4gewotICAgICAgICBkZWJ1ZyhgbWVkaWEuYXVkaW9UcmFja3NbJHtpbmRleH1dLmVuYWJs
ZWQgPSAke21lZGlhLmF1ZGlvVHJhY2tzW2luZGV4XS5lbmFibGVkfWApOwotICAgIH0pOwotfQot
Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQt
aGlkZGVuLXRyYWNrcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWhpZGRlbi10cmFj
a3MtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4Yjg2NTZmODg5
ODZiNWNmMGNkZjQxMTZiZjdjMmNmMmQ0ZmY5Nzc1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi1UaGlzIHRlc3QgY2hlY2tz
IHRoYXQgdGhlIHRyYWNrcyBjb250ZXh0bWVudSBkb2Vzbid0IHNob3cgYW55IHRyYWNrIGFzIHNl
bGVjdGVkIGlmIGFsbCB0aGUgdGV4dCB0cmFja3MgZm9yIGEgbWVkaWEgZWxlbWVudCBhcmUgbWFy
a2VkIGFzICJoaWRkZW4iLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBz
aGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50
IGZyb20gbnVsbAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3Mn
KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAot
U2V0dGluZyBtb2RlIHRvICdoaWRkZW4nIGZvciBhbGwgdGV4dCB0cmFja3MgdmlhIEphdmFTY3Jp
cHQuLi4KLVRhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLgotWwotICB7Ci0gICAgImNoaWxkcmVuIjog
WwotICAgICAgewotICAgICAgICAidGl0bGUiOiAiTGFuZ3VhZ2VzIiwKLSAgICAgICAgImNoaWxk
cmVuIjogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgICJ0aXRsZSI6ICJFbmdsaXNoIFNvdW5k
IiwKLSAgICAgICAgICAgICJjaGVja2VkIjogdHJ1ZQotICAgICAgICAgIH0sCi0gICAgICAgICAg
ewotICAgICAgICAgICAgInRpdGxlIjogIkZyZW5jaCBTb3VuZCIKLSAgICAgICAgICB9LAotICAg
ICAgICAgIHsKLSAgICAgICAgICAgICJ0aXRsZSI6ICJTcGFuaXNoIFNvdW5kIgotICAgICAgICAg
IH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgInRpdGxlIjogIlN1YnRp
dGxlcyIsCi0gICAgICAgICJjaGlsZHJlbiI6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICAi
dGl0bGUiOiAiT2ZmIiwKLSAgICAgICAgICAgICJjaGVja2VkIjogdHJ1ZQotICAgICAgICAgIH0s
Ci0gICAgICAgICAgewotICAgICAgICAgICAgInRpdGxlIjogIkF1dG8gKFJlY29tbWVuZGVkKSIK
LSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgICJ0aXRsZSI6ICJFbmdsaXNo
IFN1YnRpdGxlcyIKLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgICJ0aXRs
ZSI6ICJGcmVuY2ggU3VidGl0bGVzIgotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAg
ICAgICAgInRpdGxlIjogIkdlcm1hbiBTdWJ0aXRsZXMiCi0gICAgICAgICAgfSwKLSAgICAgICAg
ICB7Ci0gICAgICAgICAgICAidGl0bGUiOiAiU3BhbmlzaCBTdWJ0aXRsZXMiCi0gICAgICAgICAg
fQotICAgICAgICBdCi0gICAgICB9Ci0gICAgXQotICB9Ci1dCi1QQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3Vw
cG9ydC1oaWRkZW4tdHJhY2tzLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWhpZGRlbi10cmFja3Mu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWRlNGY4ZDY4MzZkY2ZiZWJiMjJh
MmQxNTgyOWZjMjViMjViYWNlOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWhpZGRlbi10cmFja3MuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDM5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxi
b2R5PgotPHZpZGVvIHNyYz0iLi4vLi4vLi4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHls
ZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiAzMDBweDsiIGNv
bnRyb2xzIGF1dG9wbGF5IG11dGVkIHBsYXlzaW5saW5lPjwvdmlkZW8+Ci08c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVz
Y3JpcHRpb24oYFRoaXMgdGVzdCBjaGVja3MgdGhhdCB0aGUgdHJhY2tzIGNvbnRleHRtZW51IGRv
ZXNuJ3Qgc2hvdyBhbnkgdHJhY2sgYXMgc2VsZWN0ZWQgaWYgYWxsIHRoZSB0ZXh0IHRyYWNrcyBm
b3IgYSBtZWRpYSBlbGVtZW50IGFyZSBtYXJrZWQgYXMgImhpZGRlbiIuYCk7Ci0KLWNvbnN0IG1l
ZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jvb3Qg
PSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOwotCi1tZWRpYS5hZGRFdmVudExp
c3RlbmVyKCJwbGF5IiwgKCkgPT4gewotICAgIG1lZGlhLnBhdXNlKCk7Ci0KLSAgICBzaG91bGRC
ZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycp
IiwgIm51bGwiLCAoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCkud2lkdGgiLCAiMCIsIGFzeW5jICgpID0+IHsKLSAgICAgICAgICAgIGRlYnVnKCJTZXR0aW5n
IG1vZGUgdG8gJ2hpZGRlbicgZm9yIGFsbCB0ZXh0IHRyYWNrcyB2aWEgSmF2YVNjcmlwdC4uLiIp
OwotICAgICAgICAgICAgQXJyYXkuZnJvbShtZWRpYS50ZXh0VHJhY2tzKS5mb3JFYWNoKHRyYWNr
ID0+IHRyYWNrLm1vZGUgPSAiaGlkZGVuIik7Ci0KLSAgICAgICAgICAgIGRlYnVnKCJUYXBwaW5n
IHRyYWNrcyBidXR0b24uLi4iKTsKLSAgICAgICAgICAgIGxldCBbY29udGV4dG1lbnVdID0gYXdh
aXQgUHJvbWlzZS5hbGwoWwotICAgICAgICAgICAgICAgIGdldFRyYWNrc0NvbnRleHRNZW51KCks
Ci0gICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCJidXR0b24udHJhY2tzIikpLAotICAgICAgICAgICAgXSk7Ci0gICAgICAgICAgICBkZWJ1ZyhK
U09OLnN0cmluZ2lmeShjb250ZXh0bWVudSwgbnVsbCwgMikpOwotCi0gICAgICAgICAgICBtZWRp
YS5yZW1vdmUoKTsKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9KTsKLSAg
ICB9KTsKLX0pOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJh
Y2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9y
dC1vZmYtdGV4dC10cmFjay1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGRhY2VjZDMxMGVlMjYyZjc1N2YwMDIxNTVhODhkMTk1ZWY2ZDkzNzkuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1vZmYt
dGV4dC10cmFjay1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi1F
bnN1cmUgd2UgaGF2ZSB0aGUgT2ZmIHRleHQgdHJhY2sgc2VsZWN0ZWQgYnkgZGVmYXVsdC4KLQot
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVj
dG9yKCdidXR0b24udHJhY2tzJykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1Mgc2hh
ZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCkud2lkdGggYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKLVRhcHBpbmcgdHJhY2tzIGJ1dHRv
bi4uLgotWwotICB7Ci0gICAgImNoaWxkcmVuIjogWwotICAgICAgewotICAgICAgICAidGl0bGUi
OiAiTGFuZ3VhZ2VzIiwKLSAgICAgICAgImNoaWxkcmVuIjogWwotICAgICAgICAgIHsKLSAgICAg
ICAgICAgICJ0aXRsZSI6ICJFbmdsaXNoIFNvdW5kIiwKLSAgICAgICAgICAgICJjaGVja2VkIjog
dHJ1ZQotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgInRpdGxlIjogIkZy
ZW5jaCBTb3VuZCIKLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgICJ0aXRs
ZSI6ICJTcGFuaXNoIFNvdW5kIgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAg
ICAgIHsKLSAgICAgICAgInRpdGxlIjogIlN1YnRpdGxlcyIsCi0gICAgICAgICJjaGlsZHJlbiI6
IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICAidGl0bGUiOiAiT2ZmIiwKLSAgICAgICAgICAg
ICJjaGVja2VkIjogdHJ1ZQotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAg
InRpdGxlIjogIkF1dG8gKFJlY29tbWVuZGVkKSIKLSAgICAgICAgICB9LAotICAgICAgICAgIHsK
LSAgICAgICAgICAgICJ0aXRsZSI6ICJFbmdsaXNoIFN1YnRpdGxlcyIKLSAgICAgICAgICB9LAot
ICAgICAgICAgIHsKLSAgICAgICAgICAgICJ0aXRsZSI6ICJGcmVuY2ggU3VidGl0bGVzIgotICAg
ICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgInRpdGxlIjogIkdlcm1hbiBTdWJ0
aXRsZXMiCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICAidGl0bGUiOiAi
U3BhbmlzaCBTdWJ0aXRsZXMiCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9Ci0gICAg
XQotICB9Ci1dCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExF
VEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay5odG1sIGIv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lv
cy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwZWIzMTM0ODRlYTQ4MjM4ZjIzNmM3MGU4OTczMDc5ZDZlM2IzZWFkLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBv
cnQtb2ZmLXRleHQtdHJhY2suaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9s
cy11dGlscy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxib2R5PgotPHZpZGVvIHNyYz0iLi4vLi4v
Li4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBs
ZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiAzMDBweDsiIGNvbnRyb2xzIGF1dG9wbGF5IG11dGVkIHBs
YXlzaW5saW5lPjwvdmlkZW8+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXdp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oIkVuc3VyZSB3ZSBoYXZl
IHRoZSBPZmYgdGV4dCB0cmFjayBzZWxlY3RlZCBieSBkZWZhdWx0LiIpOwotCi1jb25zdCBtZWRp
YSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Ci1jb25zdCBzaGFkb3dSb290ID0g
d2luZG93LmludGVybmFscy5zaGFkb3dSb290KG1lZGlhKTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0
ZW5lcigicGxheSIsICgpID0+IHsKLSAgICBtZWRpYS5wYXVzZSgpOwotCi0gICAgc2hvdWxkQmVj
b21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSIs
ICJudWxsIiwgKCkgPT4gewotICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jv
b3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
LndpZHRoIiwgIjAiLCBhc3luYyAoKSA9PiB7Ci0gICAgICAgICAgICBkZWJ1ZygiVGFwcGluZyB0
cmFja3MgYnV0dG9uLi4uIik7Ci0gICAgICAgICAgICBsZXQgW2NvbnRleHRtZW51XSA9IGF3YWl0
IFByb21pc2UuYWxsKFsKLSAgICAgICAgICAgICAgICBnZXRUcmFja3NDb250ZXh0TWVudSgpLAot
ICAgICAgICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcigi
YnV0dG9uLnRyYWNrcyIpKSwKLSAgICAgICAgICAgIF0pOwotICAgICAgICAgICAgZGVidWcoSlNP
Ti5zdHJpbmdpZnkoY29udGV4dG1lbnUsIG51bGwsIDIpKTsKLQotICAgICAgICAgICAgbWVkaWEu
cmVtb3ZlKCk7Ci0gICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfSk7Ci0gICAg
fSk7Ci19KTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNr
cy1zdXBwb3J0LXNob3ctY29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1
dHRvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LXNob3ctY29udGV4dG1lbnUtdGhl
bi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDhhZmE3NTA2OGVjMjNkYWUwNTUwZjQ4ZjVlMGZkNDhjY2QyNzRi
ZWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFj
a3Mtc3VwcG9ydC1zaG93LWNvbnRleHRtZW51LXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1i
dXR0b24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotRW5zdXJl
IHRoYXQgY2xpY2tpbmcgdGhlIHRyYWNrcyBidXR0b24gd2hlbiB0aGUgdHJhY2tzIGNvbnRleHRt
ZW51IGlzIHNob3duIG1ha2VzIHRoZSBjb250ZXh0bWVudSBoaWRlLgotCi1PbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCi0KLQotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50
cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5
U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBi
ZWNhbWUgZGlmZmVyZW50IGZyb20gMAotVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uCi1Db250ZXh0
IG1lbnUgc2hvd24uCi1UYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KLUNvbnRleHQgbWVudSBoaWRk
ZW4uCi1UYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KLUNvbnRleHQgbWVudSBzaG93bi4KLVRhcHBp
bmcgdHJhY2tzIGJ1dHRvbi4uLgotQ29udGV4dCBtZW51IGhpZGRlbi4KLVBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNr
cy1zdXBwb3J0LXNob3ctY29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1
dHRvbi5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1zaG93LWNvbnRleHRtZW51LXRoZW4tZG91Ymxl
LWNsaWNrLW9uLXRyYWNrcy1idXR0b24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOWRlZjJjMDczNDEwMDI5MjljYmUxZDZjZWM1ZjY4MGJiMjBhM2VkNy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LXNob3ct
Y29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotPGJvZHk+Ci08dmlkZW8gc3JjPSIuLi8uLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3Yi
IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDMwMHB4
OyIgY29udHJvbHMgYXV0b3BsYXkgbXV0ZWQgcGxheXNpbmxpbmU+PC92aWRlbz4KLTxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwot
Ci1kZXNjcmlwdGlvbigiRW5zdXJlIHRoYXQgY2xpY2tpbmcgdGhlIHRyYWNrcyBidXR0b24gd2hl
biB0aGUgdHJhY2tzIGNvbnRleHRtZW51IGlzIHNob3duIG1ha2VzIHRoZSBjb250ZXh0bWVudSBo
aWRlLiIpOwotCi1jb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7
Ci1jb25zdCBzaGFkb3dSb290ID0gd2luZG93LmludGVybmFscy5zaGFkb3dSb290KG1lZGlhKTsK
LQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKLSAgICBtZWRpYS5wYXVz
ZSgpOwotCi0gICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0
b3IoJ2J1dHRvbi50cmFja3MnKSIsICJudWxsIiwgKCkgPT4gewotICAgICAgICBzaG91bGRCZWNv
bWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIiwgIjAiLCBhc3luYyAoKSA9PiB7Ci0gICAgICAg
ICAgICBkZWJ1ZygiVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uIik7Ci0gICAgICAgICAgICBhd2Fp
dCBQcm9taXNlLmFsbChbCi0gICAgICAgICAgICAgICAgVUlIZWxwZXIud2FpdEZvckNvbnRleHRN
ZW51VG9TaG93KCksCi0gICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5x
dWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpLAotICAgICAgICAgICAgXSk7Ci0gICAgICAg
ICAgICBkZWJ1ZygiQ29udGV4dCBtZW51IHNob3duLiIpOwotCi0gICAgICAgICAgICBkZWJ1Zygi
VGFwcGluZyB0cmFja3MgYnV0dG9uLi4uIik7Ci0gICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFs
bChbCi0gICAgICAgICAgICAgICAgVUlIZWxwZXIud2FpdEZvckNvbnRleHRNZW51VG9IaWRlKCks
Ci0gICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCJidXR0b24udHJhY2tzIikpLAotICAgICAgICAgICAgXSk7Ci0gICAgICAgICAgICBkZWJ1Zygi
Q29udGV4dCBtZW51IGhpZGRlbi4iKTsKLQotICAgICAgICAgICAgZGVidWcoIlRhcHBpbmcgdHJh
Y2tzIGJ1dHRvbi4uLiIpOwotICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWwotICAgICAg
ICAgICAgICAgIFVJSGVscGVyLndhaXRGb3JDb250ZXh0TWVudVRvU2hvdygpLAotICAgICAgICAg
ICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRy
YWNrcyIpKSwKLSAgICAgICAgICAgIF0pOwotICAgICAgICAgICAgZGVidWcoIkNvbnRleHQgbWVu
dSBzaG93bi4iKTsKLQotICAgICAgICAgICAgZGVidWcoIlRhcHBpbmcgdHJhY2tzIGJ1dHRvbi4u
LiIpOwotICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWwotICAgICAgICAgICAgICAgIFVJ
SGVscGVyLndhaXRGb3JDb250ZXh0TWVudVRvSGlkZSgpLAotICAgICAgICAgICAgICAgIHByZXNz
T25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKSwKLSAg
ICAgICAgICAgIF0pOwotICAgICAgICAgICAgZGVidWcoIkNvbnRleHQgbWVudSBoaWRkZW4uIik7
Ci0KLSAgICAgICAgICAgIG1lZGlhLnJlbW92ZSgpOwotICAgICAgICAgICAgZmluaXNoSlNUZXN0
KCk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotfSk7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1t
ZWRpYS1hcGktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVj
dGVkLXZpYS1tZWRpYS1hcGktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA1NzBjOGI1ZmQ1YmMyM2NmODAwOGRkNzU5MDUyYjc2NjJjNzcyMmQ0Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtdGV4
dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDY1ICswLDAgQEAKLVRoaXMgdGVzdCBjaGVja3MgdGhhdCBzZXR0aW5nIGFuIGVtYmVk
ZGVkIHRleHQgdHJhY2sgYXMgc2VsZWN0ZWQgdmlhIHRoZSBIVE1MTWVkaWFFbGVtZW50IEpTIEFQ
SXMgd2lsbCBjb3JyZWN0bHkgc2hvdyB0aGlzIHRyYWNrIGFzIHNlbGVjdGVkLCBhbmQgdGhhdCBz
ZWxlY3RpbmcgdGhlICJBdXRvbWF0aWMgKFJlY29tbWVuZGVkKSIgdHJhY2sgd2lsbCByZXZlcnQg
YmFjayB0byBzZWxlY3RpbmcgdGhhdCBlbnRyeS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgotCi0KLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykgYmVj
YW1lIGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdi
dXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggYmVjYW1lIGRpZmZl
cmVudCBmcm9tIDAKLVNldHRpbmcgbW9kZSB0byAnc2hvd2luZycgZm9yIGZpcnN0IHRleHQgdHJh
Y2sgdmlhIEphdmFTY3JpcHQuLi4KLVRhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLgotWwotICB7Ci0g
ICAgImNoaWxkcmVuIjogWwotICAgICAgewotICAgICAgICAidGl0bGUiOiAiU3VidGl0bGVzIiwK
LSAgICAgICAgImNoaWxkcmVuIjogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgICJ0aXRsZSI6
ICJPZmYiCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICAidGl0bGUiOiAi
QXV0byAoUmVjb21tZW5kZWQpIgotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAg
ICAgInRpdGxlIjogIkVuZ2xpc2giLAotICAgICAgICAgICAgImNoZWNrZWQiOiB0cnVlCi0gICAg
ICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICAidGl0bGUiOiAiRnJlbmNoIgotICAg
ICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfQotICAgIF0KLSAgfQotXQotU2VsZWN0aW5nIGZp
cnN0IHRleHQgdHJhY2suLi4KLVBBU1MgbWVkaWEudGV4dFRyYWNrc1swXS5tb2RlIGlzICdkaXNh
YmxlZCcKLVBBU1MgbWVkaWEudGV4dFRyYWNrc1sxXS5tb2RlIGlzICdzaG93aW5nJwotVGFwcGlu
ZyB0cmFja3MgYnV0dG9uLi4uCi1bCi0gIHsKLSAgICAiY2hpbGRyZW4iOiBbCi0gICAgICB7Ci0g
ICAgICAgICJ0aXRsZSI6ICJTdWJ0aXRsZXMiLAotICAgICAgICAiY2hpbGRyZW4iOiBbCi0gICAg
ICAgICAgewotICAgICAgICAgICAgInRpdGxlIjogIk9mZiIKLSAgICAgICAgICB9LAotICAgICAg
ICAgIHsKLSAgICAgICAgICAgICJ0aXRsZSI6ICJBdXRvIChSZWNvbW1lbmRlZCkiLAotICAgICAg
ICAgICAgImNoZWNrZWQiOiB0cnVlCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAg
ICAgICAidGl0bGUiOiAiRW5nbGlzaCIKLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAg
ICAgICAgICJ0aXRsZSI6ICJGcmVuY2giCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9
Ci0gICAgXQotICB9Ci1dCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1Qg
Q09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVj
dGVkLXZpYS1tZWRpYS1hcGkuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxl
Y3RlZC12aWEtbWVkaWEtYXBpLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFk
YmFlOTNjMDdmOTRhMjNmNjQ4ZGJkNTBhOTQ5MjU5NjUwZDliOTMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNr
LXNlbGVjdGVkLXZpYS1tZWRpYS1hcGkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9tZWRpYS1j
b250cm9scy11dGlscy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxib2R5PgotPHZpZGVvIHNyYz0i
Li4vLi4vLi4vY29udGVudC9jb3VudGluZy1zdWJ0aXRsZWQubTR2IiBzdHlsZT0icG9zaXRpb246
IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiAzMDBweDsiIGNvbnRyb2xzIGF1dG9w
bGF5IG11dGVkIHBsYXlzaW5saW5lPjwvdmlkZW8+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oYFRo
aXMgdGVzdCBjaGVja3MgdGhhdCBzZXR0aW5nIGFuIGVtYmVkZGVkIHRleHQgdHJhY2sgYXMgc2Vs
ZWN0ZWQgdmlhIHRoZSBIVE1MTWVkaWFFbGVtZW50IEpTIEFQSXMgd2lsbCBjb3JyZWN0bHkgc2hv
dyB0aGlzIHRyYWNrIGFzIHNlbGVjdGVkLCBhbmQgdGhhdCBzZWxlY3RpbmcgdGhlIAotIkF1dG9t
YXRpYyAoUmVjb21tZW5kZWQpIiB0cmFjayB3aWxsIHJldmVydCBiYWNrIHRvIHNlbGVjdGluZyB0
aGF0IGVudHJ5LmApOwotCi1jb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZp
ZGVvIik7Ci1jb25zdCBzaGFkb3dSb290ID0gd2luZG93LmludGVybmFscy5zaGFkb3dSb290KG1l
ZGlhKTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKLSAgICBtZWRp
YS5wYXVzZSgpOwotCi0gICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5
U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSIsICJudWxsIiwgKCkgPT4gewotICAgICAgICBzaG91
bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNr
cycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIiwgIjAiLCBhc3luYyAoKSA9PiB7Ci0g
ICAgICAgICAgICBkZWJ1ZygiU2V0dGluZyBtb2RlIHRvICdzaG93aW5nJyBmb3IgZmlyc3QgdGV4
dCB0cmFjayB2aWEgSmF2YVNjcmlwdC4uLiIpOwotICAgICAgICAgICAgbWVkaWEudGV4dFRyYWNr
c1swXS5tb2RlID0gInNob3dpbmciOwotCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
ZGVidWcoIlRhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLiIpOwotICAgICAgICAgICAgICAgIGxldCBb
Y29udGV4dG1lbnVdID0gYXdhaXQgUHJvbWlzZS5hbGwoWwotICAgICAgICAgICAgICAgICAgICBn
ZXRUcmFja3NDb250ZXh0TWVudSgpLAotICAgICAgICAgICAgICAgICAgICBwcmVzc09uRWxlbWVu
dChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSksCi0gICAgICAgICAg
ICAgICAgXSk7Ci0gICAgICAgICAgICAgICAgZGVidWcoSlNPTi5zdHJpbmdpZnkoY29udGV4dG1l
bnUsIG51bGwsIDIpKTsKLQotICAgICAgICAgICAgICAgIGRlYnVnKCJTZWxlY3RpbmcgZmlyc3Qg
dGV4dCB0cmFjay4uLiIpOwotICAgICAgICAgICAgICAgIGxldCBzdWJ0aXRsZXNNZW51ID0gY29u
dGV4dG1lbnVbMF0uY2hpbGRyZW5bMF07Ci0gICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIu
Y2hvb3NlTWVudUFjdGlvbihzdWJ0aXRsZXNNZW51LnRpdGxlKTsKLSAgICAgICAgICAgICAgICBh
d2FpdCBVSUhlbHBlci5kZWxheUZvcig1MDApOyAvLyBnaXZlIHRpbWUgZm9yIHRoZSBVSU1lbnUg
dG8gYW5pbWF0ZQotICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmNob29zZU1lbnVBY3Rp
b24oc3VidGl0bGVzTWVudS5jaGlsZHJlblsxXS50aXRsZSk7Ci0gICAgICAgICAgICAgICAgYXdh
aXQgVUlIZWxwZXIud2FpdEZvckNvbnRleHRNZW51VG9IaWRlKCk7Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIHNob3VsZEJlKCJtZWRpYS50ZXh0VHJhY2tzWzBdLm1vZGUiLCAiJ2Rpc2Fi
bGVkJyIpOwotICAgICAgICAgICAgc2hvdWxkQmUoIm1lZGlhLnRleHRUcmFja3NbMV0ubW9kZSIs
ICInc2hvd2luZyciKTsKLQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGRlYnVnKCJU
YXBwaW5nIHRyYWNrcyBidXR0b24uLi4iKTsKLSAgICAgICAgICAgICAgICBsZXQgW2NvbnRleHRt
ZW51XSA9IGF3YWl0IFByb21pc2UuYWxsKFsKLSAgICAgICAgICAgICAgICAgICAgZ2V0VHJhY2tz
Q29udGV4dE1lbnUoKSwKLSAgICAgICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpLAotICAgICAgICAgICAgICAgIF0p
OwotICAgICAgICAgICAgICAgIGRlYnVnKEpTT04uc3RyaW5naWZ5KGNvbnRleHRtZW51LCBudWxs
LCAyKSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIG1lZGlhLnJlbW92ZSgpOwotICAg
ICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotfSk7Ci0KLTwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1hdXRv
LXRleHQtdHJhY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJh
Y2stZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZGFjMGI3NTVj
Y2JhOTgwNjk4OTQzNWU0ZmJiNzg1MzUwNmFkOTdlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtYXV0by10ZXh0LXRyYWNrLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLUVuc3VyZSB3ZSBoYXZl
IHRoZSBBdXRvIHRleHQgdHJhY2sgc2VsZWN0ZWQgYnkgZGVmYXVsdC4KLQotT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24u
dHJhY2tzJykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1Mgc2hhZG93Um9vdC5xdWVy
eVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgg
YmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcu
dHJhY2tzLXBhbmVsJykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1Mgc2hhZG93Um9v
dC5xdWVyeVNlbGVjdG9yQWxsKCdsaS5zZWxlY3RlZCcpWzFdLnRleHRDb250ZW50IGlzICJBdXRv
IChSZWNvbW1lbmRlZCkiCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVT
VCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFj
ay5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1z
dXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJhY2suaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYTNmZjc3OWYyOTNmZjFjYzU3OGQ1N2I2NThiY2I0MzBmYzVm
YWQzMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3Ry
YWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzUg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3Jp
cHQ+Ci08Ym9keT4KLTx2aWRlbyBzcmM9Ii4uLy4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVzLm1v
diIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDogNjQw
cHg7IGhlaWdodDogMzYwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgotPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0K
LWRlc2NyaXB0aW9uKCJFbnN1cmUgd2UgaGF2ZSB0aGUgQXV0byB0ZXh0IHRyYWNrIHNlbGVjdGVk
IGJ5IGRlZmF1bHQuIik7Ci0KLWNvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigi
dmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3Qo
bWVkaWEpOwotCi1tZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4gewotICAgIG1l
ZGlhLnBhdXNlKCk7Ci0KLSAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVl
cnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7Ci0gICAgICAgIHNo
b3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJh
Y2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIsICgpID0+IHsKLSAgICAg
ICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0Q2FwdGlvbkRpc3BsYXlNb2RlKCJhdXRvbWF0aWMi
KTsKLSAgICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcigi
YnV0dG9uLnRyYWNrcyIpKTsKLSAgICAgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hh
ZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykiLCAibnVsbCIsICgpID0+IHsK
LSAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInNoYWRvd1Jvb3QucXVlcnlT
ZWxlY3RvckFsbCgnbGkuc2VsZWN0ZWQnKVsxXS50ZXh0Q29udGVudCIsICJBdXRvIChSZWNvbW1l
bmRlZCkiKTsKLSAgICAgICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICAgICAgd2lu
ZG93LmludGVybmFscy5zZXRDYXB0aW9uRGlzcGxheU1vZGUoImZvcmNlZG9ubHkiKTsKLSAgICAg
ICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsKLSAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0pOwotCi08L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtY2xpY2stdHJh
Y2staW4tcGFuZWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1jbGljay10cmFjay1p
bi1wYW5lbC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUyOTQx
MTA1YmZhOWNlZjI2ZjdjMzBmOGI5ZGM1MzI2OTNmMzViMmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1jbGljay10cmFjay1p
bi1wYW5lbC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1DbGlj
a2luZyBvbiBhIHRyYWNrIGluIHRoZSB0cmFja3MgcGFuZWwuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KLQotCi1tZWRpYS5hdWRpb1RyYWNrc1swXS5lbmFibGVkID0gdHJ1ZQotbWVkaWEu
YXVkaW9UcmFja3NbMV0uZW5hYmxlZCA9IGZhbHNlCi1tZWRpYS5hdWRpb1RyYWNrc1syXS5lbmFi
bGVkID0gZmFsc2UKLQotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFj
a3MnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2Vs
ZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNh
bWUgZGlmZmVyZW50IGZyb20gMAotCi1DbGlja2luZyBvbiB0aGUgdHJhY2tzIGJ1dHRvbgotQ2xp
Y2tpbmcgb24gc2Vjb25kIGF1ZGlvIHRyYWNrIGluIHRyYWNrcyBwYW5lbAotCi1PYnRhaW5lZCBj
aGFuZ2UgZXZlbnQgb24gbWVkaWEgYXVkaW8gdHJhY2tzCi1tZWRpYS5hdWRpb1RyYWNrc1swXS5l
bmFibGVkID0gZmFsc2UKLW1lZGlhLmF1ZGlvVHJhY2tzWzFdLmVuYWJsZWQgPSB0cnVlCi1tZWRp
YS5hdWRpb1RyYWNrc1syXS5lbmFibGVkID0gZmFsc2UKLQotQ2xpY2tpbmcgb24gdGhlIHRyYWNr
cyBidXR0b24KLUNsaWNraW5nIG9uIHRoaXJkIGF1ZGlvIHRyYWNrIGluIHRyYWNrcyBwYW5lbAot
Ci1PYnRhaW5lZCBjaGFuZ2UgZXZlbnQgb24gbWVkaWEgYXVkaW8gdHJhY2tzCi1tZWRpYS5hdWRp
b1RyYWNrc1swXS5lbmFibGVkID0gZmFsc2UKLW1lZGlhLmF1ZGlvVHJhY2tzWzFdLmVuYWJsZWQg
PSBmYWxzZQotbWVkaWEuYXVkaW9UcmFja3NbMl0uZW5hYmxlZCA9IHRydWUKLQotUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMv
dHJhY2tzLXN1cHBvcnQtY2xpY2stdHJhY2staW4tcGFuZWwuaHRtbCBiL0xheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBv
cnQtY2xpY2stdHJhY2staW4tcGFuZWwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOWZiMmNiM2MzYTMwN2MwOWUzYzljMGZmZWFlOWU2MjQ3MTUxNDk4Ny4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWNsaWNr
LXRyYWNrLWluLXBhbmVsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5NyArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8gc3JjPSIuLi8uLi8uLi9jb250ZW50L0ND
K1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDog
MDsgd2lkdGg6IDY0MHB4OyBoZWlnaHQ6IDM2MHB4OyIgY29udHJvbHMgYXV0b3BsYXk+PC92aWRl
bz4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbigiQ2xpY2tpbmcgb24gYSB0cmFjayBpbiB0aGUgdHJh
Y2tzIHBhbmVsLiIpOwotCi1jb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZp
ZGVvIik7Ci1jb25zdCBzaGFkb3dSb290ID0gd2luZG93LmludGVybmFscy5zaGFkb3dSb290KG1l
ZGlhKTsKLQotbGV0IHByZXZpb3VzbHlTZWxlY3RlZFRyYWNrID0gMDsKLQotbWVkaWEuYWRkRXZl
bnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKLSAgICBtZWRpYS5wYXVzZSgpOwotCi0gICAgZHVt
cEF1ZGlvVHJhY2tzRW5hYmxlZFN0YXRlKCk7Ci0KLSAgICBtZWRpYS5hdWRpb1RyYWNrcy5hZGRF
dmVudExpc3RlbmVyKCJjaGFuZ2UiLCBhdWRpb1RyYWNrc0RpZENoYW5nZSk7Ci0KLSAgICBkZWJ1
ZygiIik7Ci0gICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0
b3IoJ2J1dHRvbi50cmFja3MnKSIsICJudWxsIiwgKCkgPT4gewotICAgICAgICBzaG91bGRCZWNv
bWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIiwgIjAiLCAoKSA9PiB7Ci0gICAgICAgICAgICBj
bGlja09uVHJhY2tzQnV0dG9uKGNsaWNrT25TZWNvbmRBdWRpb1RyYWNrKTsKLSAgICAgICAgfSk7
Ci0gICAgfSk7Ci19KTsKLQotZnVuY3Rpb24gY2xpY2tPblRyYWNrc0J1dHRvbihjb250aW51YXRp
b24pCi17Ci0gICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAgICAg
IGRlYnVnKCIiKTsKLSAgICAgICAgZGVidWcoIkNsaWNraW5nIG9uIHRoZSB0cmFja3MgYnV0dG9u
Iik7Ci0gICAgICAgIGNsaWNrT25FbGVtZW50KHNoYWRvd1Jvb3QubGFzdENoaWxkLnF1ZXJ5U2Vs
ZWN0b3IoImJ1dHRvbi50cmFja3MiKSk7Ci0gICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9u
RnJhbWUoY29udGludWF0aW9uKTsKLSAgICB9KTsKLX0KLQotZnVuY3Rpb24gY2xpY2tPblNlY29u
ZEF1ZGlvVHJhY2soKQotewotICAgIGRlYnVnKCJDbGlja2luZyBvbiBzZWNvbmQgYXVkaW8gdHJh
Y2sgaW4gdHJhY2tzIHBhbmVsIik7Ci0gICAgY2xpY2tPbkF1ZGlvVHJhY2tBdEluZGV4KDEpOwot
fQotCi1mdW5jdGlvbiBjbGlja09uVGhpcmRBdWRpb1RyYWNrKCkKLXsKLSAgICBkZWJ1ZygiQ2xp
Y2tpbmcgb24gdGhpcmQgYXVkaW8gdHJhY2sgaW4gdHJhY2tzIHBhbmVsIik7Ci0gICAgY2xpY2tP
bkF1ZGlvVHJhY2tBdEluZGV4KDIpOwotfQotCi1mdW5jdGlvbiBjbGlja09uQXVkaW9UcmFja0F0
SW5kZXgoaW5kZXgpCi17Ci0gICAgY2xpY2tPbkVsZW1lbnQoc2hhZG93Um9vdC5sYXN0Q2hpbGQu
cXVlcnlTZWxlY3RvckFsbCgibGkiKVtpbmRleF0pOwotfQotCi1mdW5jdGlvbiBjbGlja09uRWxl
bWVudChlbGVtZW50KQotewotICAgIGNvbnN0IGJvdW5kcyA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYm91bmRzLmxlZnQgKyAx
LCBib3VuZHMudG9wICsgMSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgZXZl
bnRTZW5kZXIubW91c2VVcCgpOwotfQotCi1mdW5jdGlvbiBhdWRpb1RyYWNrc0RpZENoYW5nZSgp
Ci17Ci0gICAgY29uc3QgbmV3U2VsZWN0ZWRUcmFjayA9IEFycmF5LmZyb20obWVkaWEuYXVkaW9U
cmFja3MpLmZpbmRJbmRleCh0cmFjayA9PiB0cmFjay5lbmFibGVkKTsKLSAgICBpZiAocHJldmlv
dXNseVNlbGVjdGVkVHJhY2sgPT09IG5ld1NlbGVjdGVkVHJhY2spCi0gICAgICAgIHJldHVybjsK
LQotICAgIHByZXZpb3VzbHlTZWxlY3RlZFRyYWNrID0gbmV3U2VsZWN0ZWRUcmFjazsKLQotICAg
IGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygiT2J0YWluZWQgY2hhbmdlIGV2ZW50IG9uIG1lZGlhIGF1
ZGlvIHRyYWNrcyIpOwotCi0gICAgZHVtcEF1ZGlvVHJhY2tzRW5hYmxlZFN0YXRlKCk7Ci0KLSAg
ICBpZiAobWVkaWEuYXVkaW9UcmFja3NbMV0uZW5hYmxlZCkKLSAgICAgICAgc2hhZG93Um9vdC5x
dWVyeVNlbGVjdG9yKCIudHJhY2tzLXBhbmVsIikuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlv
bmVuZCIsIGV2ZW50ID0+IGNsaWNrT25UcmFja3NCdXR0b24oY2xpY2tPblRoaXJkQXVkaW9UcmFj
aykpOwotICAgIGVsc2UgaWYgKG1lZGlhLmF1ZGlvVHJhY2tzWzJdLmVuYWJsZWQpIHsKLSAgICAg
ICAgZGVidWcoIiIpOwotICAgICAgICBtZWRpYS5yZW1vdmUoKTsKLSAgICAgICAgZmluaXNoSlNU
ZXN0KCk7Ci0gICAgfQotfQotCi1mdW5jdGlvbiBkdW1wQXVkaW9UcmFja3NFbmFibGVkU3RhdGUo
KQotewotICAgIEFycmF5LmZyb20obWVkaWEuYXVkaW9UcmFja3MpLmZvckVhY2goKGF1ZGlvVHJh
Y2ssIGluZGV4KSA9PiB7Ci0gICAgICAgIGRlYnVnKGBtZWRpYS5hdWRpb1RyYWNrc1ske2luZGV4
fV0uZW5hYmxlZCA9ICR7bWVkaWEuYXVkaW9UcmFja3NbaW5kZXhdLmVuYWJsZWR9YCk7Ci0gICAg
fSk7Ci19Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mt
c3VwcG9ydC1oaWRkZW4tdHJhY2tzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtaGlk
ZGVuLXRyYWNrcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdh
ZDNmYzE5NmI2NTk5NWYzYTcwNGM3YzIxNzgwZjUzMzI2YWI4NGUuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJh
Y2tzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLVRoaXMgdGVz
dCBjaGVja3MgdGhhdCB0aGUgdHJhY2tzIHBhbmVsIGRvZXNuJ3Qgc2hvdyBhbnkgdHJhY2sgYXMg
c2VsZWN0ZWQgaWYgYWxsIHRoZSB0ZXh0IHRyYWNrcyBmb3IgYSBtZWRpYSBlbGVtZW50IGFyZSBt
YXJrZWQgYXMgImhpZGRlbiIuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNT
IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJl
bnQgZnJvbSBudWxsCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNr
cycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAw
Ci0KLT09PSBJbml0aWFsIHN0YXRlID09PQotCi1beF0gT2ZmCi1bLV0gQXV0byAoUmVjb21tZW5k
ZWQpCi1bLV0gRW5nbGlzaCBTdWJ0aXRsZXMKLVstXSBGcmVuY2ggU3VidGl0bGVzCi1bLV0gR2Vy
bWFuIFN1YnRpdGxlcwotWy1dIFNwYW5pc2ggU3VidGl0bGVzCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1z
dXBwb3J0LWhpZGRlbi10cmFja3MuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNr
cy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOWEyYjUzNzY3MTFjZmQ5MmE4
YzRkOWQ5MTgxNmNiZWVkYzBlODNmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsNzIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxib2R5PgotPHZp
ZGVvIHNyYz0iLi4vLi4vLi4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRp
b246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiA2NDBweDsgaGVpZ2h0OiAzNjBw
eDsiIGNvbnRyb2xzIGF1dG9wbGF5PjwvdmlkZW8+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oYFRo
aXMgdGVzdCBjaGVja3MgdGhhdCB0aGUgdHJhY2tzIHBhbmVsIGRvZXNuJ3Qgc2hvdyBhbnkgdHJh
Y2sgYXMgc2VsZWN0ZWQgaWYgYWxsIHRoZSB0ZXh0IHRyYWNrcyBmb3IgYSBtZWRpYSBlbGVtZW50
IGFyZSBtYXJrZWQgYXMgImhpZGRlbiIuYCk7Ci0KLWNvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxz
LnNoYWRvd1Jvb3QobWVkaWEpOwotCi1tZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkg
PT4gewotICAgIG1lZGlhLnBhdXNlKCk7Ci0KLSAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7
Ci0gICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIsIHJ1
blRlc3QpOwotICAgIH0pOwotfSk7Ci0KLWFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQotewotICAg
IC8vIFN0YXJ0IGJ5IG1ha2luZyBzdXJlIGFsbCB0cmFja3MgYXJlIG1hcmtlZCBhcyAiaGlkZGVu
Ii4KLSAgICBBcnJheS5mcm9tKG1lZGlhLnRleHRUcmFja3MpLmZvckVhY2godHJhY2sgPT4gdHJh
Y2subW9kZSA9ICJoaWRkZW4iKTsKLQotICAgIC8vIE5leHQsIGJyaW5nIHVwIHRoZSB0cmFja3Mg
bWVudSBieSBjbGlja2luZyBvbiB0aGUgdHJhY2tzIGJ1dHRvbi4KLSAgICBhd2FpdCBjbGlja09u
VHJhY2tzQnV0dG9uKCk7Ci0gICAgLy8gRHVtcCB0aGUgc3RhdGUgb2YgdGhlIHRyYWNrcyBtZW51
IGZvciB0ZXh0IHRyYWNrcywgd2hpY2ggc2hvdWxkIHNob3cgdGhlIGZpcnN0IGVtYmVkZGVkIHRl
eHQgdHJhY2sgYXMgc2VsZWN0ZWQuCi0gICAgZHVtcFRleHRUcmFja3NMaXN0Tm9kZXMoIkluaXRp
YWwgc3RhdGUiKTsKLQotICAgIGZpbmlzaFRlc3QoKTsKLX0KLQotZnVuY3Rpb24gdGV4dFRyYWNr
c0xpc3ROb2RlcygpCi17Ci0gICAgcmV0dXJuIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgi
LnRyYWNrcy1wYW5lbCBzZWN0aW9uOmxhc3Qtb2YtdHlwZSA+IHVsID4gbGkiKTsKLX0KLQotZnVu
Y3Rpb24gZHVtcFRleHRUcmFja3NMaXN0Tm9kZXMobXNnKQotewotICAgIGRlYnVnKCIiKTsKLSAg
ICBkZWJ1ZyhgPT09ICR7bXNnfSA9PT1gKTsKLSAgICBkZWJ1ZygiIik7Ci0gICAgQXJyYXkuZnJv
bSh0ZXh0VHJhY2tzTGlzdE5vZGVzKCkpLmZvckVhY2gobGkgPT4gZGVidWcoYCR7bGkuY2xhc3NM
aXN0LmNvbnRhaW5zKCJzZWxlY3RlZCIpID8gIlt4XSIgOiAiWy1dIn0gJHtsaS50ZXh0Q29udGVu
dH1gKSk7Ci19Ci0KLWFzeW5jIGZ1bmN0aW9uIGNsaWNrT25UcmFja3NCdXR0b24oKQotewotICAg
IGF3YWl0IG5ldyBQcm9taXNlKHJlcXVlc3RBbmltYXRpb25GcmFtZSk7Ci0gICAgY2xpY2tPbkVs
ZW1lbnQoc2hhZG93Um9vdC5sYXN0Q2hpbGQucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIp
KTsKLSAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpOwotfQotCi1m
dW5jdGlvbiBjbGlja09uRWxlbWVudChlbGVtZW50KQotewotICAgIGNvbnN0IGJvdW5kcyA9IGVs
ZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3Zl
VG8oYm91bmRzLmxlZnQgKyAxLCBib3VuZHMudG9wICsgMSk7Ci0gICAgZXZlbnRTZW5kZXIubW91
c2VEb3duKCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotfQotCi1mdW5jdGlvbiBmaW5p
c2hUZXN0KCkKLXsKLSAgICBkZWJ1ZygiIik7Ci0gICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAgZmlu
aXNoSlNUZXN0KCk7Ci19Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21h
Yy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1z
dXBwb3J0LW9mZi10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZmIzZTMxODA1ZGVlODI3ZjhiN2U4YWYxMWEwZmJiOTY1MDVlODE3ZC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0
LW9mZi10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAg
QEAKLUVuc3VyZSB3ZSBoYXZlIHRoZSBPZmYgdGV4dCB0cmFjayBzZWxlY3RlZCBieSBkZWZhdWx0
LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBzaGFkb3dSb290LnF1ZXJ5
U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAotUEFT
UyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAotUEFTUyBzaGFkb3dSb290
LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVs
bAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpLnNlbGVjdGVkJylbMV0udGV4
dENvbnRlbnQgaXMgIk9mZiIKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1U
RVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJh
Y2suaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
c3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJhY2suaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZjYwODA4Nzg0NDU1MGQ5N2U3Y2FjODdhYjI2ZDUzZGQ2ODQx
Y2QzYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3Ry
YWNrcy1zdXBwb3J0LW9mZi10ZXh0LXRyYWNrLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMyAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9tZWRpYS1jb250cm9scy11dGlscy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3Njcmlw
dD4KLTxib2R5PgotPHZpZGVvIHNyYz0iLi4vLi4vLi4vY29udGVudC9DQytTdWJ0aXRsZXMubW92
IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiA2NDBw
eDsgaGVpZ2h0OiAzNjBweDsiIGNvbnRyb2xzIGF1dG9wbGF5PjwvdmlkZW8+Ci08c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQot
ZGVzY3JpcHRpb24oIkVuc3VyZSB3ZSBoYXZlIHRoZSBPZmYgdGV4dCB0cmFjayBzZWxlY3RlZCBi
eSBkZWZhdWx0LiIpOwotCi1jb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZp
ZGVvIik7Ci1jb25zdCBzaGFkb3dSb290ID0gd2luZG93LmludGVybmFscy5zaGFkb3dSb290KG1l
ZGlhKTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKLSAgICBtZWRp
YS5wYXVzZSgpOwotCi0gICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5
U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSIsICJudWxsIiwgKCkgPT4gewotICAgICAgICBzaG91
bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNr
cycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIiwgIjAiLCAoKSA9PiB7Ci0gICAgICAg
ICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFj
a3MiKSk7Ci0gICAgICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVl
cnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpIiwgIm51bGwiLCAoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwo
J2xpLnNlbGVjdGVkJylbMV0udGV4dENvbnRlbnQiLCAiT2ZmIik7Ci0gICAgICAgICAgICAgICAg
ZGVidWcoIiIpOwotICAgICAgICAgICAgICAgIG1lZGlhLnJlbW92ZSgpOwotICAgICAgICAgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0p
OwotfSk7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mt
c3VwcG9ydC1zaG93LWFuZC1wb3B1bGF0ZS1wYW5lbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1z
dXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDUyZDZjYjE5ODc4ODA1ODljYTBlYzhhZGUwMDA3MTE3YjNhZDUw
Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNr
cy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDIyICswLDAgQEAKLVNob3dpbmcgYW5kIHBvcHVsYXRpbmcgdGhlIHRyYWNrcyBw
YW5lbC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUF1ZGlvCi0gIEVuZ2xpc2gg
U291bmQKLSAgRnJlbmNoIFNvdW5kCi0gIFNwYW5pc2ggU291bmQKLQotU3VidGl0bGVzCi0gIE9m
ZgotICBBdXRvIChSZWNvbW1lbmRlZCkKLSAgRW5nbGlzaCBTdWJ0aXRsZXMKLSAgRnJlbmNoIFN1
YnRpdGxlcwotICBHZXJtYW4gU3VidGl0bGVzCi0gIFNwYW5pc2ggU3VidGl0bGVzCi0KLVBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
bWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLmh0bWwgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNr
cy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGEzYjNhYjdiYWUzMjRiODFiZDFhZjAzYzRjOTUxODM5NmI5MmRkNDguLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3Vw
cG9ydC1zaG93LWFuZC1wb3B1bGF0ZS1wYW5lbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDYg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxib2R5PgotPHZpZGVvIHNyYz0iLi4vLi4v
Li4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0id2lkdGg6IDY0MHB4OyBoZWlnaHQ6
IDM2MHB4OyIgY29udHJvbHMgYXV0b3BsYXk+PC92aWRlbz4KLTxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlv
bigiU2hvd2luZyBhbmQgcG9wdWxhdGluZyB0aGUgdHJhY2tzIHBhbmVsLiIpOwotCi1jb25zdCBt
ZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Ci1jb25zdCBzaGFkb3dSb290
ID0gd2luZG93LmludGVybmFscy5zaGFkb3dSb290KG1lZGlhKTsKLQotbWVkaWEuYWRkRXZlbnRM
aXN0ZW5lcigicGxheSIsICgpID0+IHsKLSAgICBtZWRpYS5wYXVzZSgpOwotICAgIHdpbmRvdy5y
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewotICAgICAgICBjbGlja09uVHJhY2tzQnV0dG9u
KCk7Ci0gICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewotICAgICAg
ICAgICAgbGlzdENvbnRlbnRzT2ZUcmFja3NQYW5lbCgpOwotICAgICAgICAgICAgbWVkaWEucmVt
b3ZlKCk7Ci0gICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7
Ci19KTsKLQotZnVuY3Rpb24gY2xpY2tPblRyYWNrc0J1dHRvbigpCi17Ci0gICAgY29uc3QgYm91
bmRzID0gc2hhZG93Um9vdC5sYXN0Q2hpbGQucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIp
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGJv
dW5kcy5sZWZ0ICsgMSwgYm91bmRzLnRvcCArIDEpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93
bigpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLX0KLQotZnVuY3Rpb24gbGlzdENvbnRl
bnRzT2ZUcmFja3NQYW5lbCgpCi17Ci0gICAgZm9yIChsZXQgc2VjdGlvbiBvZiBzaGFkb3dSb290
Lmxhc3RDaGlsZC5xdWVyeVNlbGVjdG9yQWxsKCJzZWN0aW9uIikpIHsKLSAgICAgICAgZGVidWco
c2VjdGlvbi5xdWVyeVNlbGVjdG9yKCJoMyIpLnRleHRDb250ZW50KTsKLSAgICAgICAgZm9yIChs
ZXQgaXRlbSBvZiBzZWN0aW9uLnF1ZXJ5U2VsZWN0b3JBbGwoImxpIikpCi0gICAgICAgICAgICBk
ZWJ1ZygiICAiICsgaXRlbS50ZXh0Q29udGVudCk7Ci0gICAgICAgIGRlYnVnKCIiKTsKLSAgICB9
Ci19Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3Vw
cG9ydC1zaG93LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNvbnRyb2xzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMv
dHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1hZnRlci1kcmFnZ2luZy1jb250cm9scy1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA5ODQzMGJmMzhmMTI2NjBiOGVm
Y2M3OTYxNmVmMTg0YjUxMDg0ZTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNv
bnRyb2xzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLVRlc3Rp
bmcgdGhlIGRpc3BsYXkgb2YgYSB0cmFja3MgcGFuZWwgYWZ0ZXIgZHJhZ2dpbmcgdGhlIGNvbnRy
b2xzIGJhciBpbiBmdWxsc2NyZWVuLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQot
UEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi5mdWxsc2NyZWVuJykuZ2V0Qm91
bmRpbmdDbGllbnRSZWN0KCkgYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKLVBBU1Mgc2hhZG93Um9v
dC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkg
YmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdi
dXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQgaXMgc2hhZG93Um9v
dC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCku
cmlnaHQKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykuc3R5
bGUuYm90dG9tIGlzICIxNTFweCIKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQot
Ci1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5l
bC1hZnRlci1kcmFnZ2luZy1jb250cm9scy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBh
bmVsLWFmdGVyLWRyYWdnaW5nLWNvbnRyb2xzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGZhYmFiOTA1ODU4ZmNhZWY5OGIyOThjZTc3MGY5YjFiNjY4NjY4MTkuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1z
aG93LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNvbnRyb2xzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw1OSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48
L3NjcmlwdD4KLTxib2R5PgotPHZpZGVvIHNyYz0iLi4vLi4vLi4vY29udGVudC9DQytTdWJ0aXRs
ZXMubW92IiBzdHlsZT0id2lkdGg6IDMyMHB4OyBoZWlnaHQ6IDI0MHB4OyIgY29udHJvbHMgYXV0
b3BsYXk+PC92aWRlbz4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbigiVGVzdGluZyB0aGUgZGlzcGxh
eSBvZiBhIHRyYWNrcyBwYW5lbCBhZnRlciBkcmFnZ2luZyB0aGUgY29udHJvbHMgYmFyIGluIGZ1
bGxzY3JlZW4uIik7Ci0KLWNvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigidmlk
ZW8iKTsKLWNvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVk
aWEpOwotCi1tZWRpYS5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRiZWdpbmZ1bGxzY3JlZW4iLCAo
KSA9PiB7Ci0gICAgZGVidWcoIndlYmtpdGJlZ2luZnVsbHNjcmVlbiIpOwotfSk7Ci0KLW1lZGlh
LmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UiLCAoKSA9PiB7Ci0gICAg
aWYgKCFtZWRpYS53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbikKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAgICAgIGNvbnN0
IGJvdW5kcyA9IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvbnRyb2xzLWJhciIpLmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhib3Vu
ZHMubGVmdCArIDExOCwgYm91bmRzLnRvcCArIDEwKTsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VEb3duKCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGJvdW5kcy5sZWZ0ICsg
NjgsIGJvdW5kcy50b3AgLSA0MCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLQot
ICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewotICAgICAgICAgICAgY2xpY2tP
bkJ1dHRvbigidHJhY2tzIiwgKCkgPT4gewotICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRp
b25GcmFtZSgoKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJzaGFkb3dSb290
LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5y
aWdodCIsICJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5nZXRCb3Vu
ZGluZ0NsaWVudFJlY3QoKS5yaWdodCIpCi0gICAgICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykuc3R5
bGUuYm90dG9tIiwgIjE1MXB4Iik7Ci0KLSAgICAgICAgICAgICAgICAgICAgZGVidWcoIiIpOwot
ICAgICAgICAgICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsKLSAgICAgICAgICAgICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAg
ICAgICAgfSk7Ci0gICAgfSk7Ci19KTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIs
ICgpID0+IHsKLSAgICBtZWRpYS5wYXVzZSgpOwotICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9u
RnJhbWUoKCkgPT4gY2xpY2tPbkJ1dHRvbigiZnVsbHNjcmVlbiIpKTsKLX0pOwotCi1mdW5jdGlv
biBjbGlja09uQnV0dG9uKG5hbWUsIGNvbnRpbnVhdGlvbikKLXsKLSAgICBzaG91bGRCZWNvbWVE
aWZmZXJlbnQoYHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLiR7bmFtZX0nKS5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKWAsICIwIiwgKCkgPT4gewotICAgICAgICBwcmVzc09uRWxlbWVu
dChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoYGJ1dHRvbi4ke25hbWV9YCksIGNvbnRpbnVhdGlv
bik7Ci0gICAgfSk7Ci19Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21h
Yy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1bGxzY3JlZW4tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90
cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1bGxzY3JlZW4tZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MjUzZWEwZmU0MDU5NjkyMTRhODcyN2U1MTllMTYxYzJm
Njc4OTU0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMv
dHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1mdWxsc2NyZWVuLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDIyICswLDAgQEAKLVNob3dpbmcgdGhlIHRyYWNrcyBwYW5lbCBpbiBmdWxs
c2NyZWVuLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBpbnRlcm5hbHMu
c2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcigiYnV0dG9uLmZ1bGxzY3JlZW4iKSBiZWNh
bWUgZGlmZmVyZW50IGZyb20gbnVsbAotUEFTUyBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSku
cXVlcnlTZWxlY3RvcigiYnV0dG9uLmZ1bGxzY3JlZW4iKS5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAotd2Via2l0ZnVsbHNjcmVlbmNoYW5nZSBl
dmVudCBpcyBmaXJlZAotUEFTUyBpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUo
bWVkaWEpIGJlY2FtZSBmYWxzZQotUEFTUyBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVl
cnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCi1Q
QVNTIGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJh
Y2tzIikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggYmVjYW1lIGRpZmZlcmVudCBmcm9t
IDAKLVBBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoImJ1dHRv
bi50cmFja3MiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCBiZWNhbWUgNTgyCi1QQVNT
IGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVs
JykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3Qo
bWVkaWEpLnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5zdHlsZS5yaWdodCBpcyAiMjE4
cHgiCi1QQVNTIGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCcudHJh
Y2tzLXBhbmVsJykuc3R5bGUuYm90dG9tIGlzICIxMDFweCIKLQotd2Via2l0ZnVsbHNjcmVlbmNo
YW5nZSBldmVudCBpcyBmaXJlZAotUEFTUyBpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlv
bk1vZGUobWVkaWEpIGJlY2FtZSBmYWxzZQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1w
YW5lbC1mdWxsc2NyZWVuLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtZnVsbHNj
cmVlbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZTZhYTBkZWUyZjdkNmNh
NTdhZTdkNWRkZWEyODJhZThhYjVlMGFmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1mdWxsc2NyZWVuLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyIg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KLTxib2R5PgotPHZpZGVvIHNyYz0iLi4v
Li4vLi4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0id2lkdGg6IDMyMHB4OyBoZWln
aHQ6IDI0MHB4OyIgY29udHJvbHMgYXV0b3BsYXk+PC92aWRlbz4KLTxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlw
dGlvbigiU2hvd2luZyB0aGUgdHJhY2tzIHBhbmVsIGluIGZ1bGxzY3JlZW4uIik7Ci0KLXNldFRp
bWVvdXQoKCkgPT4gewotICAgIGRlYnVnKCJGQUlMOiBkaWQgbm90IGVuZCBmYXN0IGVub3VnaCIp
OwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSwgMTAwMDApOwotCi1pbnRlcm5hbHMuc2V0TW9ja1Zp
ZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQodHJ1ZSk7Ci0KLWNvbnN0IG1lZGlhID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigid2Vi
a2l0ZnVsbHNjcmVlbmNoYW5nZSIsICgpID0+IHsKLSAgICBkZWJ1Zygid2Via2l0ZnVsbHNjcmVl
bmNoYW5nZSBldmVudCBpcyBmaXJlZCIpOwotICAgIHNob3VsZEJlY29tZUVxdWFsKCJpbnRlcm5h
bHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUobWVkaWEpIiwgImZhbHNlIiwgKCkgPT4gewot
ICAgICAgICBpZiAoIW1lZGlhLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuKSB7Ci0gICAgICAg
ICAgICBtZWRpYS5yZW1vdmUoKTsKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAg
ICB9Ci0KLSAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KGBpbnRlcm5hbHMuc2hhZG93Um9v
dChtZWRpYSkucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpYCwgIm51bGwiLCAoKSA9PiB7
Ci0gICAgICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoYGludGVybmFscy5zaGFkb3dSb290
KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikuZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCkud2lkdGhgLCAiMCIsICgpID0+IHsKLSAgICAgICAgICAgICAgICBzaG91bGRCZWNvbWVF
cXVhbChgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50
cmFja3MiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodGAsICI1ODIiLCBhc3luYyAoKSA9
PiB7Ci0gICAgICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgp
OwotICAgICAgICAgICAgICAgICAgICBwcmVzc09uRWxlbWVudChpbnRlcm5hbHMuc2hhZG93Um9v
dChtZWRpYSkucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKTsKLSAgICAgICAgICAgICAg
ICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KGBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSku
cXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpYCwgIm51bGwiLCAoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImludGVybmFscy5zaGFkb3dS
b290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykuc3R5bGUucmlnaHQiLCAi
MjE4cHgiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
aW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwn
KS5zdHlsZS5ib3R0b20iLCAiMTAxcHgiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVn
KCIiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1lZGlhLndlYmtpdEV4aXRGdWxsc2NyZWVu
KCk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAg
ICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotfSk7Ci0KLW1lZGlhLmFkZEV2ZW50TGlz
dGVuZXIoInBsYXkiLCAoKSA9PiB7Ci0gICAgbWVkaWEucGF1c2UoKTsKLSAgICBzaG91bGRCZWNv
bWVEaWZmZXJlbnQoYGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJi
dXR0b24uZnVsbHNjcmVlbiIpYCwgIm51bGwiLCAoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlY29t
ZURpZmZlcmVudChgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoImJ1
dHRvbi5mdWxsc2NyZWVuIikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGhgLCAiMCIsICgp
ID0+IHsKLSAgICAgICAgICAgIHByZXNzT25FbGVtZW50KGludGVybmFscy5zaGFkb3dSb290KG1l
ZGlhKS5xdWVyeVNlbGVjdG9yKGBidXR0b24uZnVsbHNjcmVlbmApKTsKLSAgICAgICAgfSk7Ci0g
ICAgfSk7Ci19KTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3Ry
YWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRv
bi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtdGhlbi1kb3VibGUt
Y2xpY2stb24tdHJhY2tzLWJ1dHRvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDk4YmQ3NzhjMjgyMmY4M2Y0Y2ZlOGUxMzQxNTJmMDdhMjRjMTQ2YWEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9y
dC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24tZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotRW5zdXJlIHRoYXQgZG91YmxlLWNs
aWNraW5nIHRoZSB0cmFja3MgYnV0dG9uIHdoZW4gdGhlIHRyYWNrcyBwYW5lbCBtYWtlcyB0aGUg
cGFuZWwgYXBwZWFyIGFnYWluLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotTWVk
aWEgc3RhcnRlZCBwbGF5aW5nCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9u
LnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCi1QQVNTIHNoYWRvd1Jvb3QucXVl
cnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRo
IGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcign
LnRyYWNrcy1wYW5lbCcpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCi1QQVNTIHNoYWRvd1Jv
b3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpIGlzIG5vdCBudWxsCi0KLVBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFj
L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1
dHRvbi5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNr
LW9uLXRyYWNrcy1idXR0b24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzVl
ZDA0MmQ0N2NkMWFiMWJhZmEwNjZlYWY5ODRhODY2ZTdjNjNjZC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwt
dGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNDEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+
PC9zY3JpcHQ+Ci08Ym9keT4KLTx2aWRlbyBzcmM9Ii4uLy4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0
bGVzLm1vdiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0
aDogNjQwcHg7IGhlaWdodDogMzYwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgotPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRy
dWU7Ci0KLWRlc2NyaXB0aW9uKCJFbnN1cmUgdGhhdCBkb3VibGUtY2xpY2tpbmcgdGhlIHRyYWNr
cyBidXR0b24gd2hlbiB0aGUgdHJhY2tzIHBhbmVsIG1ha2VzIHRoZSBwYW5lbCBhcHBlYXIgYWdh
aW4uIik7Ci0KLWNvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsK
LWNvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOwot
Ci1tZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4gewotICAgIG1lZGlhLnBhdXNl
KCk7Ci0KLSAgICBkZWJ1ZygiTWVkaWEgc3RhcnRlZCBwbGF5aW5nIik7Ci0gICAgc2hvdWxkQmVj
b21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSIs
ICJudWxsIiwgKCkgPT4gewotICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jv
b3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
LndpZHRoIiwgIjAiLCAoKSA9PiB7Ci0gICAgICAgICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dS
b290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSk7Ci0gICAgICAgICAgICBzaG91bGRC
ZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcp
IiwgIm51bGwiLCAoKSA9PiB7Ci0gICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpOwotICAgICAgICAgICAgICAgIHJl
cXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIHByZXNzT25F
bGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKTsKLSAgICAg
ICAgICAgICAgICAgICAgLy8gR2l2ZSB0aGUgdHJhbnNpdGlvbmVuZCBldmVudCB0aW1lIHRvIGZp
cmUgaWYgaXQgd2VyZSB0byBoYXBwZW4sIHdoaWNoIGl0IHNob3VsZCBub3QuCi0gICAgICAgICAg
ICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgc2hv
dWxkTm90QmUoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpIiwgIm51
bGwiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIG1lZGlhLnJlbW92ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgZmluaXNo
SlNUZXN0KCk7Ci0gICAgICAgICAgICAgICAgICAgIH0sIDUwMCk7Ci0gICAgICAgICAgICAgICAg
fSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19KTsKLQotPC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXRleHQtdHJh
Y2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0
LXRleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVjOGM3MzQ1NjBiZTg4OGUyZTQ4ZTE5ZmU1YWQzZDY1YzUx
OTNhNTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90
cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGktZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotVGhpcyB0ZXN0IGNoZWNrcyB0aGF0
IHNldHRpbmcgYW4gZW1iZWRkZWQgdGV4dCB0cmFjayBhcyBzZWxlY3RlZCB2aWEgdGhlIEhUTUxN
ZWRpYUVsZW1lbnQgSlMgQVBJcyB3aWxsIGNvcnJlY3RseSBzaG93IHRoaXMgdHJhY2sgYXMgc2Vs
ZWN0ZWQsIGFuZCB0aGF0IHNlbGVjdGluZyB0aGUgIkF1dG9tYXRpYyAoUmVjb21tZW5kZWQpIiB0
cmFjayB3aWxsIHJldmVydCBiYWNrIHRvIHNlbGVjdGluZyB0aGF0IGVudHJ5LgotCi1PbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1
dHRvbi50cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAotUEFTUyBzaGFkb3dSb290
LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53
aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAotCi09PT0gSW5pdGlhbCBzdGF0ZSA9PT0KLQot
Wy1dIE9mZgotWy1dIEF1dG8gKFJlY29tbWVuZGVkKQotW3hdIEVuZ2xpc2ggU3VidGl0bGVzCi1b
LV0gRnJlbmNoIFN1YnRpdGxlcwotWy1dIEdlcm1hbiBTdWJ0aXRsZXMKLVstXSBTcGFuaXNoIFN1
YnRpdGxlcwotCi09PT0gQWZ0ZXIgcGlja2luZyBhdXRvIHRyYWNrIGludGVyYWN0aXZlbHkgPT09
Ci0KLVstXSBPZmYKLVt4XSBBdXRvIChSZWNvbW1lbmRlZCkKLVstXSBFbmdsaXNoIFN1YnRpdGxl
cwotWy1dIEZyZW5jaCBTdWJ0aXRsZXMKLVstXSBHZXJtYW4gU3VidGl0bGVzCi1bLV0gU3Bhbmlz
aCBTdWJ0aXRsZXMKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENP
TVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxlY3Rl
ZC12aWEtbWVkaWEtYXBpLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXRleHQtdHJhY2stc2VsZWN0
ZWQtdmlhLW1lZGlhLWFwaS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MDIy
ZWI5NmRmOTQ0ZWYxYTgyM2JlOTFmMWY5MGRkMzliNzMwMDUyLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1z
ZWxlY3RlZC12aWEtbWVkaWEtYXBpLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4OCArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8gc3JjPSIuLi8uLi8uLi9jb250
ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7
IHRvcDogMDsgd2lkdGg6IDY0MHB4OyBoZWlnaHQ6IDM2MHB4OyIgY29udHJvbHMgYXV0b3BsYXk+
PC92aWRlbz4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbihgVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHNl
dHRpbmcgYW4gZW1iZWRkZWQgdGV4dCB0cmFjayBhcyBzZWxlY3RlZCB2aWEgdGhlIEhUTUxNZWRp
YUVsZW1lbnQgSlMgQVBJcyB3aWxsIGNvcnJlY3RseSBzaG93IHRoaXMgdHJhY2sgYXMgc2VsZWN0
ZWQsIGFuZCB0aGF0IHNlbGVjdGluZyB0aGUgCi0iQXV0b21hdGljIChSZWNvbW1lbmRlZCkiIHRy
YWNrIHdpbGwgcmV2ZXJ0IGJhY2sgdG8gc2VsZWN0aW5nIHRoYXQgZW50cnkuYCk7Ci0KLWNvbnN0
IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jv
b3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOwotCi1tZWRpYS5hZGRFdmVu
dExpc3RlbmVyKCJwbGF5IiwgKCkgPT4gewotICAgIG1lZGlhLnBhdXNlKCk7Ci0KLSAgICBzaG91
bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNr
cycpIiwgIm51bGwiLCAoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hh
ZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCkud2lkdGgiLCAiMCIsIHJ1blRlc3QpOwotICAgIH0pOwotfSk7Ci0KLWFzeW5jIGZ1bmN0
aW9uIHJ1blRlc3QoKQotewotICAgIC8vIFN0YXJ0IGJ5IHNlbGVjdGluZyBvbmUgb2YgdGhlIHRl
eHQgdHJhY2tzIHVzaW5nIHRoZSBtZWRpYSBKUyBBUEkuCi0gICAgLy8gVGhpcyB3aWxsIGNhdXNl
IHRleHRUcmFja3NEaWRDaGFuZ2UgdG8gYmUgY2FsbGVkIGZvciB0aGUgZmlyc3QgdGltZS4KLSAg
ICBtZWRpYS50ZXh0VHJhY2tzWzBdLm1vZGUgPSAic2hvd2luZyI7Ci0KLSAgICAvLyBOZXh0LCBi
cmluZyB1cCB0aGUgdHJhY2tzIG1lbnUgYnkgY2xpY2tpbmcgb24gdGhlIHRyYWNrcyBidXR0b24u
Ci0gICAgYXdhaXQgY2xpY2tPblRyYWNrc0J1dHRvbigpOwotICAgIC8vIER1bXAgdGhlIHN0YXRl
IG9mIHRoZSB0cmFja3MgbWVudSBmb3IgdGV4dCB0cmFja3MsIHdoaWNoIHNob3VsZCBzaG93IHRo
ZSBmaXJzdCBlbWJlZGRlZCB0ZXh0IHRyYWNrIGFzIHNlbGVjdGVkLgotICAgIGR1bXBUZXh0VHJh
Y2tzTGlzdE5vZGVzKCJJbml0aWFsIHN0YXRlIik7Ci0gICAgLy8gTm93LCBzZWxlY3QgdGhlICJB
dXRvbWF0aWMgKFJlY29tbWVuZGVkKSIgdGV4dCB0cmFjay4gCi0gICAgYXdhaXQgY2xpY2tPblRl
eHRUcmFja0F0SW5kZXgoMSk7Ci0gICAgLy8gV2FpdCBmb3IgdGhlIHNlbGVjdGlvbiB0byBoYXZl
IGdvbmUgdGhyb3VnaCBhbmQgdGhlIHBhbmVsIHRvIGhhdmUgdHJhbnNpdGlvbmVkIG91dCBvZiB2
aWV3LgotICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2hhZG93Um9vdC5xdWVyeVNl
bGVjdG9yKCIudHJhY2tzLXBhbmVsIikuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIs
IHJlc29sdmUsIHsgb25jZTogdHJ1ZSB9KSk7Ci0KLSAgICAvLyBOb3csIGJyaW5nIHVwIHRoZSB0
cmFja3MgbWVudSBhZ2FpbiBieSBjbGlja2luZyBvbiB0aGUgdHJhY2tzIGJ1dHRvbi4KLSAgICBh
d2FpdCBjbGlja09uVHJhY2tzQnV0dG9uKCk7Ci0gICAgLy8gRHVtcCB0aGUgc3RhdGUgb2YgdGhl
IHRyYWNrcyBtZW51IGZvciB0ZXh0IHRyYWNrcywgd2hpY2ggc2hvdWxkIG5vdyBzaG93ICJBdXRv
bWF0aWMgKFJlY29tbWVuZGVkKSIgYXMgc2VsZWN0ZWQuCi0gICAgZHVtcFRleHRUcmFja3NMaXN0
Tm9kZXMoIkFmdGVyIHBpY2tpbmcgYXV0byB0cmFjayBpbnRlcmFjdGl2ZWx5Iik7Ci0KLSAgICBm
aW5pc2hUZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIHRleHRUcmFja3NMaXN0Tm9kZXMoKQotewotICAg
IHJldHVybiBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi50cmFja3MtcGFuZWwgc2VjdGlv
bjpsYXN0LW9mLXR5cGUgPiB1bCA+IGxpIik7Ci19Ci0KLWZ1bmN0aW9uIGR1bXBUZXh0VHJhY2tz
TGlzdE5vZGVzKG1zZykKLXsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoYD09PSAke21zZ30g
PT09YCk7Ci0gICAgZGVidWcoIiIpOwotICAgIEFycmF5LmZyb20odGV4dFRyYWNrc0xpc3ROb2Rl
cygpKS5mb3JFYWNoKGxpID0+IGRlYnVnKGAke2xpLmNsYXNzTGlzdC5jb250YWlucygic2VsZWN0
ZWQiKSA/ICJbeF0iIDogIlstXSJ9ICR7bGkudGV4dENvbnRlbnR9YCkpOwotfQotCi1hc3luYyBm
dW5jdGlvbiBjbGlja09uVHJhY2tzQnV0dG9uKCkKLXsKLSAgICBhd2FpdCBuZXcgUHJvbWlzZShy
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUpOwotICAgIGNsaWNrT25FbGVtZW50KHNoYWRvd1Jvb3QubGFz
dENoaWxkLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSk7Ci0gICAgYXdhaXQgbmV3IFBy
b21pc2UocmVxdWVzdEFuaW1hdGlvbkZyYW1lKTsKLX0KLQotZnVuY3Rpb24gY2xpY2tPblRleHRU
cmFja0F0SW5kZXgoaW5kZXgpCi17Ci0gICAgY2xpY2tPbkVsZW1lbnQodGV4dFRyYWNrc0xpc3RO
b2RlcygpW2luZGV4XSk7Ci19Ci0KLWZ1bmN0aW9uIGNsaWNrT25FbGVtZW50KGVsZW1lbnQpCi17
Ci0gICAgY29uc3QgYm91bmRzID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAg
ICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhib3VuZHMubGVmdCArIDEsIGJvdW5kcy50b3AgKyAx
KTsKLSAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVVw
KCk7Ci19Ci0KLWZ1bmN0aW9uIGZpbmlzaFRlc3QoKQotewotICAgIGRlYnVnKCIiKTsKLSAgICBt
ZWRpYS5yZW1vdmUoKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLQotPC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXN1cHBvcnQvbm8tdHJhY2tzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9uby10cmFja3MtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwNTE0MmQxMjlmMmQ4NTI5ZTBjMzgxM2M1M2I0NWQ0NmVi
N2QxNzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbm8tdHJhY2tzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDExIEBACitUZXN0aW5nIHRoZSBUcmFja3NTdXBwb3J0IGJlaGF2aW9yIHdpdGggbm8gdHJhY2tz
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzaGFkb3dSb290LnF1ZXJ5
U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBp
cyAwCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvbm8tdHJhY2tzLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbm8tdHJhY2tzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTY4
NjY2ZmY1N2Y1ZWI5ZTViZmFlNjE2ZDE2N2Y4YjFmMmQwOGVlNQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9u
by10cmFja3MuaHRtbApAQCAtMCwwICsxLDI3IEBACis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvbWVkaWEtY29udHJvbHMtbG9hZGVyLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2Ny
aXB0PgorPGJvZHk+Cis8dmlkZW8gc3JjPSIuLi8uLi9jb250ZW50L3Rlc3QubXA0IiBzdHlsZT0i
cG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiA0MDBweDsiIGF1dG9w
bGF5IGNvbnRyb2xzIG11dGVkIHBsYXlzaW5saW5lPjwvdmlkZW8+Cis8ZGl2IGlkPSJzaGFkb3ci
PjwvZGl2PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCit3aW5kb3cuanNUZXN0
SXNBc3luYyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKCJUZXN0aW5nIHRoZSA8Y29kZT5UcmFja3NT
dXBwb3J0PC9jb2RlPiBiZWhhdmlvciB3aXRoIG5vIHRyYWNrcy4iKTsKKworY29uc3QgbWVkaWEg
PSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOworY29uc3Qgc2hhZG93Um9vdCA9IHdp
bmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7CisKK21lZGlhLmFkZEV2ZW50TGlzdGVu
ZXIoInBsYXkiLCBmdW5jdGlvbigpIHsKKyAgICBtZWRpYS5wYXVzZSgpOworCisgICAgc2hvdWxk
QmUoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpLndpZHRoIiwgIjAiKTsKKworICAgIGRlYnVnKCIiKTsKKyAgICBtZWRpYS5y
ZW1vdmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworCis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3Mtc3VwcG9ydC9vZmYtdGV4dC10cmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvb2ZmLXRleHQtdHJhY2st
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyZTBkOTZjYzA3ZThlMTE2ZDM1YWIyNzI1OGUwMTVj
YTJkOTExMjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvb2ZmLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTQgQEAKK0Vuc3VyZSB3ZSBoYXZlIHRoZSBPZmYgdGV4dCB0cmFjayBzZWxlY3Rl
ZCBieSBkZWZhdWx0LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzaGFk
b3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50IGZy
b20gbnVsbAorUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAorVGFw
cGluZyB0cmFja3MgYnV0dG9uLi4uCitQQVNTIGNoZWNrZWRJdGVtcy5sZW5ndGggaXMgMQorUEFT
UyBjaGVja2VkSXRlbXNbMF0udGl0bGUgaXMgIk9mZiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvb2ZmLXRleHQtdHJhY2suaHRt
bCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC9vZmYtdGV4dC10cmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiNzAzYTAwNmE4MGUwYzIxZGZkMjRm
NDE3ZjVhNTg0MDVmOWE0NWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvb2ZmLXRleHQtdHJhY2suaHRtbApA
QCAtMCwwICsxLDQ2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzx2aWRlbyBz
cmM9Ii4uLy4uL2NvbnRlbnQvY291bnRpbmctc3VidGl0bGVkLm00diIgc3R5bGU9InBvc2l0aW9u
OiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDogNDAwcHg7IiBhdXRvcGxheSBjb250
cm9scyBtdXRlZCBwbGF5c2lubGluZT48L3ZpZGVvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPgorCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKCJF
bnN1cmUgd2UgaGF2ZSB0aGUgT2ZmIHRleHQgdHJhY2sgc2VsZWN0ZWQgYnkgZGVmYXVsdC4iKTsK
KworY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOworY29uc3Qg
c2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7CisKK2xldCBj
aGVja2VkSXRlbXMgPSBudWxsOworCittZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkg
PT4geworICAgIG1lZGlhLnBhdXNlKCk7CisKKyAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7
CisgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIsIGFz
eW5jICgpID0+IHsKKyAgICAgICAgICAgIGRlYnVnKCJUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4i
KTsKKyAgICAgICAgICAgIGxldCBbY29udGV4dG1lbnVdID0gYXdhaXQgUHJvbWlzZS5hbGwoWwor
ICAgICAgICAgICAgICAgIGdldFRyYWNrc0NvbnRleHRNZW51KCksCisgICAgICAgICAgICAgICAg
cHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikp
LAorICAgICAgICAgICAgXSk7CisgICAgICAgICAgICBsZXQgc3VidGl0bGVzTWVudSA9IGNvbnRl
eHRtZW51WzBdLmNoaWxkcmVuLmZpbmQoKHN1Ym1lbnUpID0+IHN1Ym1lbnUudGl0bGUgPT09ICJT
dWJ0aXRsZXMiKTsKKyAgICAgICAgICAgIGlmIChzdWJ0aXRsZXNNZW51LmNoaWxkcmVuPy5sZW5n
dGgpIHsKKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5jaG9vc2VNZW51QWN0aW9uKHN1
YnRpdGxlc01lbnUudGl0bGUpOworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmRlbGF5
Rm9yKDUwMCk7IC8vIGdpdmUgdGltZSBmb3IgdGhlIFVJTWVudSB0byBhbmltYXRlCisgICAgICAg
ICAgICAgICAgY29udGV4dG1lbnUgPSBbc3VidGl0bGVzTWVudV07CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBjaGVja2VkSXRlbXMgPSBjb250ZXh0bWVudVswXS5jaGlsZHJlbi5maWx0ZXIo
KGl0ZW0pID0+IGl0ZW0uY2hlY2tlZCk7CisgICAgICAgICAgICBzaG91bGRCZSgiY2hlY2tlZEl0
ZW1zLmxlbmd0aCIsICIxIik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImNo
ZWNrZWRJdGVtc1swXS50aXRsZSIsICJPZmYiKTsKKworICAgICAgICAgICAgbWVkaWEucmVtb3Zl
KCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9
KTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvc2hvdy1jb250ZXh0bWVudS10
aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9zaG93LWNvbnRl
eHRtZW51LXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24tZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjhhZmE3NTA2OGVjMjNkYWUwNTUwZjQ4ZjVlMGZkNDhjY2QyNzRiZWQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvc2hvdy1jb250ZXh0bWVudS10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3Mt
YnV0dG9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitFbnN1cmUgdGhhdCBjbGlja2lu
ZyB0aGUgdHJhY2tzIGJ1dHRvbiB3aGVuIHRoZSB0cmFja3MgY29udGV4dG1lbnUgaXMgc2hvd24g
bWFrZXMgdGhlIGNvbnRleHRtZW51IGhpZGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2Ft
ZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0
dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJl
bnQgZnJvbSAwCitUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KK0NvbnRleHQgbWVudSBzaG93bi4K
K1RhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLgorQ29udGV4dCBtZW51IGhpZGRlbi4KK1RhcHBpbmcg
dHJhY2tzIGJ1dHRvbi4uLgorQ29udGV4dCBtZW51IHNob3duLgorVGFwcGluZyB0cmFja3MgYnV0
dG9uLi4uCitDb250ZXh0IG1lbnUgaGlkZGVuLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9zaG93LWNvbnRleHRtZW51LXRoZW4t
ZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24uaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9zaG93LWNvbnRleHRtZW51LXRoZW4t
ZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTAzYjEwNjMx
M2I0NWNhZjNjMWY0ZjE5NTBiNWQzY2NhM2YxZDdjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3Nob3ctY29u
dGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi5odG1sCkBAIC0wLDAg
KzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRp
YS1jb250cm9scy11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxib2R5PgorPHZpZGVvIHNyYz0iLi4v
Li4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBs
ZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiA0MDBweDsiIGF1dG9wbGF5IGNvbnRyb2xzIG11dGVkIHBs
YXlzaW5saW5lPjwvdmlkZW8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK3dp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZGVzY3JpcHRpb24oIkVuc3VyZSB0aGF0IGNs
aWNraW5nIHRoZSB0cmFja3MgYnV0dG9uIHdoZW4gdGhlIHRyYWNrcyBjb250ZXh0bWVudSBpcyBz
aG93biBtYWtlcyB0aGUgY29udGV4dG1lbnUgaGlkZS4iKTsKKworY29uc3QgbWVkaWEgPSBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOworY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRvdy5p
bnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7CisKK21lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInBs
YXkiLCAoKSA9PiB7CisgICAgbWVkaWEucGF1c2UoKTsKKworICAgIHNob3VsZEJlY29tZURpZmZl
cmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykiLCAibnVsbCIs
ICgpID0+IHsKKyAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5
U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCIs
ICIwIiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgZGVidWcoIlRhcHBpbmcgdHJhY2tzIGJ1
dHRvbi4uLiIpOworICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAg
ICAgIFVJSGVscGVyLndhaXRGb3JDb250ZXh0TWVudVRvU2hvdygpLAorICAgICAgICAgICAgICAg
IHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIp
KSwKKyAgICAgICAgICAgIF0pOworICAgICAgICAgICAgZGVidWcoIkNvbnRleHQgbWVudSBzaG93
bi4iKTsKKworICAgICAgICAgICAgZGVidWcoIlRhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLiIpOwor
ICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIFVJSGVscGVy
LndhaXRGb3JDb250ZXh0TWVudVRvSGlkZSgpLAorICAgICAgICAgICAgICAgIHByZXNzT25FbGVt
ZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKSwKKyAgICAgICAg
ICAgIF0pOworICAgICAgICAgICAgZGVidWcoIkNvbnRleHQgbWVudSBoaWRkZW4uIik7CisKKyAg
ICAgICAgICAgIGRlYnVnKCJUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4iKTsKKyAgICAgICAgICAg
IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBVSUhlbHBlci53YWl0Rm9yQ29u
dGV4dE1lbnVUb1Nob3coKSwKKyAgICAgICAgICAgICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dS
b290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSksCisgICAgICAgICAgICBdKTsKKyAg
ICAgICAgICAgIGRlYnVnKCJDb250ZXh0IG1lbnUgc2hvd24uIik7CisKKyAgICAgICAgICAgIGRl
YnVnKCJUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4iKTsKKyAgICAgICAgICAgIGF3YWl0IFByb21p
c2UuYWxsKFsKKyAgICAgICAgICAgICAgICBVSUhlbHBlci53YWl0Rm9yQ29udGV4dE1lbnVUb0hp
ZGUoKSwKKyAgICAgICAgICAgICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2Vs
ZWN0b3IoImJ1dHRvbi50cmFja3MiKSksCisgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgIGRl
YnVnKCJDb250ZXh0IG1lbnUgaGlkZGVuLiIpOworCisgICAgICAgICAgICBtZWRpYS5yZW1vdmUo
KTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9KTsKK30p
OworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90ZXh0LXRyYWNrLXNlbGVjdGVk
LXZpYS1tZWRpYS1hcGktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlh
LWFwaS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWM2MTdkOTFjZmYyNzc3NzZhMDMxMzNjNDhl
YjQ5NzBmZDIyMDdlZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1t
ZWRpYS1hcGktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAKK1RoaXMgdGVzdCBjaGVja3Mg
dGhhdCBzZXR0aW5nIGFuIGVtYmVkZGVkIHRleHQgdHJhY2sgYXMgc2VsZWN0ZWQgdmlhIHRoZSBI
VE1MTWVkaWFFbGVtZW50IEpTIEFQSXMgd2lsbCBjb3JyZWN0bHkgc2hvdyB0aGlzIHRyYWNrIGFz
IHNlbGVjdGVkLCBhbmQgdGhhdCBzZWxlY3RpbmcgdGhlICJBdXRvbWF0aWMgKFJlY29tbWVuZGVk
KSIgdHJhY2sgd2lsbCByZXZlcnQgYmFjayB0byBzZWxlY3RpbmcgdGhhdCBlbnRyeS4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCdidXR0b24udHJhY2tzJykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKK1BBU1Mgc2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCkud2lkdGggYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKK1NldHRpbmcgbW9kZSB0byAnc2hvd2lu
ZycgZm9yICdFbmdsaXNoJyB0ZXh0IHRyYWNrIHZpYSBKYXZhU2NyaXB0Li4uCitUYXBwaW5nIHRy
YWNrcyBidXR0b24uLi4KK1BBU1MgY29udGV4dG1lbnVJdGVtKCdFbmdsaXNoJykuY2hlY2tlZCBp
cyB0cnVlCitQQVNTIGNvbnRleHRtZW51SXRlbSgnRnJlbmNoJykuY2hlY2tlZCBpcyB1bmRlZmlu
ZWQuCitTZWxlY3RpbmcgJ0ZyZW5jaCcgdGV4dCB0cmFjay4uLgorUEFTUyBzdWJ0aXRsZVRyYWNr
KCdlbicpLm1vZGUgaXMgJ2Rpc2FibGVkJworUEFTUyBzdWJ0aXRsZVRyYWNrKCdmcicpLm1vZGUg
aXMgJ3Nob3dpbmcnCitUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KK1BBU1MgY29udGV4dG1lbnVJ
dGVtKCdFbmdsaXNoJykuY2hlY2tlZCBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHRtZW51SXRl
bSgnRnJlbmNoJykuY2hlY2tlZCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RleHQtdHJhY2stc2VsZWN0ZWQtdmlh
LW1lZGlhLWFwaS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1zdXBwb3J0L3RleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjBhZmMxMzNkNGUzZDhlNjA5OTgxNTM0M2JjYTIxZmU4NThlYjRjMjUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvdGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLmh0bWwKQEAgLTAs
MCArMSw4MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21l
ZGlhLWNvbnRyb2xzLXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8dmlkZW8gc3JjPSIu
Li8uLi9jb250ZW50L2NvdW50aW5nLXN1YnRpdGxlZC5tNHYiIHN0eWxlPSJwb3NpdGlvbjogYWJz
b2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDQwMHB4OyIgYXV0b3BsYXkgY29udHJvbHMg
bXV0ZWQgcGxheXNpbmxpbmU+PC92aWRlbz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitkZXNjcmlwdGlvbihgVGhpcyB0
ZXN0IGNoZWNrcyB0aGF0IHNldHRpbmcgYW4gZW1iZWRkZWQgdGV4dCB0cmFjayBhcyBzZWxlY3Rl
ZCB2aWEgdGhlIEhUTUxNZWRpYUVsZW1lbnQgSlMgQVBJcyB3aWxsIGNvcnJlY3RseSBzaG93IHRo
aXMgdHJhY2sgYXMgc2VsZWN0ZWQsIGFuZCB0aGF0IHNlbGVjdGluZyB0aGUgCisiQXV0b21hdGlj
IChSZWNvbW1lbmRlZCkiIHRyYWNrIHdpbGwgcmV2ZXJ0IGJhY2sgdG8gc2VsZWN0aW5nIHRoYXQg
ZW50cnkuYCk7CisKK2NvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8i
KTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEp
OworCitsZXQgY29udGV4dG1lbnUgPSBudWxsOworCitmdW5jdGlvbiBzdWJ0aXRsZVRyYWNrKGxh
bmd1YWdlKSB7CisgICAgcmV0dXJuIEFycmF5LmZyb20obWVkaWEudGV4dFRyYWNrcykuZmluZCgo
dGV4dFRyYWNrKSA9PiB0ZXh0VHJhY2sua2luZCA9PT0gInN1YnRpdGxlcyIgJiYgdGV4dFRyYWNr
Lmxhbmd1YWdlID09PSBsYW5ndWFnZSk7Cit9CisKK2Z1bmN0aW9uIGNvbnRleHRtZW51SXRlbSh0
aXRsZSkgeworICAgIHJldHVybiBjb250ZXh0bWVudVswXS5jaGlsZHJlbi5maW5kKChpdGVtKSA9
PiBpdGVtLnRpdGxlID09PSB0aXRsZSk7Cit9CisKK21lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInBs
YXkiLCAoKSA9PiB7CisgICAgbWVkaWEucGF1c2UoKTsKKworICAgIHNob3VsZEJlY29tZURpZmZl
cmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykiLCAibnVsbCIs
ICgpID0+IHsKKyAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5
U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCIs
ICIwIiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgZGVidWcoIlNldHRpbmcgbW9kZSB0byAn
c2hvd2luZycgZm9yICdFbmdsaXNoJyB0ZXh0IHRyYWNrIHZpYSBKYXZhU2NyaXB0Li4uIik7Cisg
ICAgICAgICAgICBzdWJ0aXRsZVRyYWNrKCJlbiIpLm1vZGUgPSAic2hvd2luZyI7CisKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiVGFwcGluZyB0cmFja3MgYnV0dG9uLi4u
Iik7CisgICAgICAgICAgICAgICAgW2NvbnRleHRtZW51XSA9IGF3YWl0IFByb21pc2UuYWxsKFsK
KyAgICAgICAgICAgICAgICAgICAgZ2V0VHJhY2tzQ29udGV4dE1lbnUoKSwKKyAgICAgICAgICAg
ICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24u
dHJhY2tzIikpLAorICAgICAgICAgICAgICAgIF0pOworICAgICAgICAgICAgICAgIGxldCBzdWJ0
aXRsZXNNZW51ID0gY29udGV4dG1lbnVbMF0uY2hpbGRyZW4uZmluZCgoc3VibWVudSkgPT4gc3Vi
bWVudS50aXRsZSA9PT0gIlN1YnRpdGxlcyIpOworICAgICAgICAgICAgICAgIGlmIChzdWJ0aXRs
ZXNNZW51LmNoaWxkcmVuPy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgYXdhaXQgVUlI
ZWxwZXIuY2hvb3NlTWVudUFjdGlvbihzdWJ0aXRsZXNNZW51LnRpdGxlKTsKKyAgICAgICAgICAg
ICAgICAgICAgYXdhaXQgVUlIZWxwZXIuZGVsYXlGb3IoNTAwKTsgLy8gZ2l2ZSB0aW1lIGZvciB0
aGUgVUlNZW51IHRvIGFuaW1hdGUKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dG1lbnUgPSBb
c3VidGl0bGVzTWVudV07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNob3Vs
ZEJlVHJ1ZSgiY29udGV4dG1lbnVJdGVtKCdFbmdsaXNoJykuY2hlY2tlZCIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0bWVudUl0ZW0oJ0ZyZW5jaCcpLmNoZWNr
ZWQiKTsKKworICAgICAgICAgICAgICAgIGRlYnVnKCJTZWxlY3RpbmcgJ0ZyZW5jaCcgdGV4dCB0
cmFjay4uLiIpOworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmNob29zZU1lbnVBY3Rp
b24oIkZyZW5jaCIpOworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JDb250
ZXh0TWVudVRvSGlkZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzaG91bGRCZSgi
c3VidGl0bGVUcmFjaygnZW4nKS5tb2RlIiwgIidkaXNhYmxlZCciKTsKKyAgICAgICAgICAgIHNo
b3VsZEJlKCJzdWJ0aXRsZVRyYWNrKCdmcicpLm1vZGUiLCAiJ3Nob3dpbmcnIik7CisKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiVGFwcGluZyB0cmFja3MgYnV0dG9uLi4u
Iik7CisgICAgICAgICAgICAgICAgW2NvbnRleHRtZW51XSA9IGF3YWl0IFByb21pc2UuYWxsKFsK
KyAgICAgICAgICAgICAgICAgICAgZ2V0VHJhY2tzQ29udGV4dE1lbnUoKSwKKyAgICAgICAgICAg
ICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24u
dHJhY2tzIikpLAorICAgICAgICAgICAgICAgIF0pOworICAgICAgICAgICAgICAgIGxldCBzdWJ0
aXRsZXNNZW51ID0gY29udGV4dG1lbnVbMF0uY2hpbGRyZW4uZmluZCgoc3VibWVudSkgPT4gc3Vi
bWVudS50aXRsZSA9PT0gIlN1YnRpdGxlcyIpOworICAgICAgICAgICAgICAgIGlmIChzdWJ0aXRs
ZXNNZW51LmNoaWxkcmVuPy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgYXdhaXQgVUlI
ZWxwZXIuY2hvb3NlTWVudUFjdGlvbihzdWJ0aXRsZXNNZW51LnRpdGxlKTsKKyAgICAgICAgICAg
ICAgICAgICAgYXdhaXQgVUlIZWxwZXIuZGVsYXlGb3IoNTAwKTsgLy8gZ2l2ZSB0aW1lIGZvciB0
aGUgVUlNZW51IHRvIGFuaW1hdGUKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dG1lbnUgPSBb
c3VidGl0bGVzTWVudV07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNob3Vs
ZEJlVW5kZWZpbmVkKCJjb250ZXh0bWVudUl0ZW0oJ0VuZ2xpc2gnKS5jaGVja2VkIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJjb250ZXh0bWVudUl0ZW0oJ0ZyZW5jaCcpLmNoZWNr
ZWQiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7CisgICAg
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9KTsKKworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtYXVkaW8tdHJhY2tz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1hdWRpby10cmFja3MtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOWE0N2RiOGJlMWU2ODhjYjNhM2Q3Yjc3MDk0
NzQ0YTZhMTZmMmU5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC90cmFja3Mtc3VwcG9ydC1hdWRpby10cmFja3MtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMTUgKzAsMCBAQAotVGVzdGluZyB0aGUgVHJhY2tzU3VwcG9ydCBiZWhhdmlvciB3aXRo
IGF1ZGlvIHRyYWNrcy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVRoZSB0cmFj
a3MgYnV0dG9uIHNob3VsZCBiZSBkaXNhYmxlZCBpbml0aWFsbHkgYXMgd2Ugd2FpdCBmb3IgbWV0
YWRhdGEgYW5kIGF1ZGlvIHRyYWNrcyB0byBiZSBhZGRlZC4KLVBBU1MgbWVkaWFDb250cm9sbGVy
LmNvbnRyb2xzLnRyYWNrc0J1dHRvbi5lbmFibGVkIGlzIGZhbHNlCi0KLUV2ZW50dWFsbHkgdGhl
IGF1ZGlvIHRyYWNrcyB3aWxsIGJlIGFkZGVkIGFuZCB0aGUgdHJhY2tzIGJ1dHRvbiB3aWxsIGJl
IGVuYWJsZWQuCi1QQVNTIG1lZGlhQ29udHJvbGxlci5jb250cm9scy50cmFja3NCdXR0b24uZW5h
YmxlZCBiZWNhbWUgdHJ1ZQotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRF
U1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LWF1ZGlvLXRyYWNrcy5odG1s
IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L3RyYWNrcy1zdXBwb3J0LWF1ZGlvLXRyYWNrcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA3ODc4NmFjNDhiMjljZDZiMzI4NTFiYzkyMGM3YmZiZDdkODY1ZDQ4Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1hdWRp
by10cmFja3MuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy1sb2FkZXIuanMiIHR5cGU9InRleHQvamF2
YXNjcmlwdCI+PC9zY3JpcHQ+Ci08Ym9keT4KLTx2aWRlbyBzcmM9Ii4uLy4uL2NvbnRlbnQvYXVk
aW8tdHJhY2tzLm1wNCIgc3R5bGU9IndpZHRoOiAzMjBweDsgaGVpZ2h0OiAyNDBweDsiIGNvbnRy
b2xzPjwvdmlkZW8+Ci08ZGl2IGlkPSJzaGFkb3ciPjwvZGl2PgotPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0
aW9uKCJUZXN0aW5nIHRoZSA8Y29kZT5UcmFja3NTdXBwb3J0PC9jb2RlPiBiZWhhdmlvciB3aXRo
IGF1ZGlvIHRyYWNrcy4iKTsKLQotY29uc3Qgc2hhZG93Um9vdCA9IGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoImRpdiNzaGFkb3ciKS5hdHRhY2hTaGFkb3coeyBtb2RlOiAib3BlbiIgfSk7Ci1jb25z
dCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Ci1jb25zdCBtZWRpYUNv
bnRyb2xsZXIgPSBjcmVhdGVDb250cm9scyhzaGFkb3dSb290LCBtZWRpYSwgbnVsbCk7Ci0KLWRl
YnVnKCJUaGUgdHJhY2tzIGJ1dHRvbiBzaG91bGQgYmUgZGlzYWJsZWQgaW5pdGlhbGx5IGFzIHdl
IHdhaXQgZm9yIG1ldGFkYXRhIGFuZCBhdWRpbyB0cmFja3MgdG8gYmUgYWRkZWQuIik7Ci1zaG91
bGRCZUZhbHNlKCJtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMudHJhY2tzQnV0dG9uLmVuYWJsZWQi
KTsKLQotZGVidWcoIiIpOwotZGVidWcoIkV2ZW50dWFsbHkgdGhlIGF1ZGlvIHRyYWNrcyB3aWxs
IGJlIGFkZGVkIGFuZCB0aGUgdHJhY2tzIGJ1dHRvbiB3aWxsIGJlIGVuYWJsZWQuIik7Ci1zaG91
bGRCZWNvbWVFcXVhbCgibWVkaWFDb250cm9sbGVyLmNvbnRyb2xzLnRyYWNrc0J1dHRvbi5lbmFi
bGVkIiwgInRydWUiLCAoKSA9PiB7Ci0gICAgZGVidWcoIiIpOwotICAgIHNoYWRvd1Jvb3QuaG9z
dC5yZW1vdmUoKTsKLSAgICBtZWRpYS5yZW1vdmUoKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0p
OwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1jYXB0
aW9ucy1vZmZzZXQtd2l0aC1jb250cm9scy1iYXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0
LWNhcHRpb25zLW9mZnNldC13aXRoLWNvbnRyb2xzLWJhci1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE5YTk0OTczMzFlZmM0MjExMjM4ZDllMTVmYTM1ZjkwYWJh
YjM2ZjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNr
cy1zdXBwb3J0LWNhcHRpb25zLW9mZnNldC13aXRoLWNvbnRyb2xzLWJhci1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1FbnN1cmUgdGhhdCB0aGUgY2FwdGlvbnMg
Y29udGFpbmVyIGFjY291bnRzIGZvciB0aGUgY29udHJvc2wgYmFyIHdoZW4gdmlzaWJsZS4KLQot
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShzaGFk
b3dSb290Lmxhc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQpLmhlaWdodCBpcyAiY2Fs
YygxMDAlIC0gMzdweCkiCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1Qg
Q09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LWNhcHRpb25zLW9mZnNldC13aXRo
LWNvbnRyb2xzLWJhci5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LWNhcHRpb25zLW9mZnNldC13aXRoLWNv
bnRyb2xzLWJhci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NzUzNGU2NTQ2
NDg3MzI1N2FjOWRiMmMxMTZjM2IzYTc5MzMzMmVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1jYXB0aW9ucy1vZmZzZXQtd2l0aC1j
b250cm9scy1iYXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxz
LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8gc3Jj
PSIuLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1
dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDY0MHB4OyBoZWlnaHQ6IDM2MHB4OyIgY29udHJv
bHMgYXV0b3BsYXk+PC92aWRlbz4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQot
d2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbigiRW5zdXJlIHRoYXQg
dGhlIGNhcHRpb25zIGNvbnRhaW5lciBhY2NvdW50cyBmb3IgdGhlIGNvbnRyb3NsIGJhciB3aGVu
IHZpc2libGUuIik7Ci0KLWNvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigidmlk
ZW8iKTsKLWNvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVk
aWEpOwotCi1tZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4gewotICAgIG1lZGlh
LnBhdXNlKCk7Ci0KLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldENvbXB1dGVkU3R5bGUo
c2hhZG93Um9vdC5sYXN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkKS5oZWlnaHQiLCAi
Y2FsYygxMDAlIC0gMzdweCkiKTsKLSAgICBtZWRpYS5yZW1vdmUoKTsKLSAgICBmaW5pc2hKU1Rl
c3QoKTsKLX0pOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3Vw
cG9ydC1uby10cmFja3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LW5vLXRyYWNrcy1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJjNDRjNzg1ZGYxYTUwZTBh
MWY5OTBjNzZhYjQ1OGU1NzFmNDkyYTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LW5vLXRyYWNrcy1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi1UZXN0aW5nIHRoZSBUcmFja3NTdXBwb3J0IGJlaGF2
aW9yIHdpdGggbm8gdHJhY2tzLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFT
UyBtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMudHJhY2tzQnV0dG9uLmVuYWJsZWQgaXMgZmFsc2UK
LQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
c3VwcG9ydC90cmFja3Mtc3VwcG9ydC1uby10cmFja3MuaHRtbCBiL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1uby10
cmFja3MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTAyZWI0YjYyNzJlMWUy
ZmFmYWNjNGJhOWNhNjAxN2Y5YTRmZWQwMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtbm8tdHJhY2tzLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSwyNiArMCwwIEBACi08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEtY29u
dHJvbHMtbG9hZGVyLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPGJvZHk+
Ci08dmlkZW8gc3JjPSIuLi8uLi9jb250ZW50L3Rlc3QubXA0IiBzdHlsZT0id2lkdGg6IDMyMHB4
OyBoZWlnaHQ6IDI0MHB4OyI+PC92aWRlbz4KLTxkaXYgaWQ9InNoYWRvdyI+PC9kaXY+Ci08c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKLQotZGVzY3JpcHRpb24oIlRlc3RpbmcgdGhlIDxjb2RlPlRyYWNrc1N1cHBvcnQ8L2NvZGU+
IGJlaGF2aW9yIHdpdGggbm8gdHJhY2tzLiIpOwotCi1jb25zdCBzaGFkb3dSb290ID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvcigiZGl2I3NoYWRvdyIpLmF0dGFjaFNoYWRvdyh7IG1vZGU6ICJvcGVu
IiB9KTsKLWNvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLWNv
bnN0IG1lZGlhQ29udHJvbGxlciA9IGNyZWF0ZUNvbnRyb2xzKHNoYWRvd1Jvb3QsIG1lZGlhLCBu
dWxsKTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVkbWV0YWRhdGEiLCBmdW5jdGlv
bigpIHsKLSAgICBzaG91bGRCZUZhbHNlKCJtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMudHJhY2tz
QnV0dG9uLmVuYWJsZWQiKTsKLSAgICBkZWJ1ZygiIik7Ci0gICAgc2hhZG93Um9vdC5ob3N0LnJl
bW92ZSgpOwotICAgIG1lZGlhLnJlbW92ZSgpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci0K
LTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXRleHQtdHJh
Y2tzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrcy1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDViOTNmNTYwODlkZjJmNmI1NTEzMWU3MmQ2
ZDQ0Mjc2MjU2Y2U1ZjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L3RyYWNrcy1zdXBwb3J0LXRleHQtdHJhY2tzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDE1ICswLDAgQEAKLVRlc3RpbmcgdGhlIFRyYWNrc1N1cHBvcnQgYmVoYXZpb3Igd2l0
aCB0ZXh0IHRyYWNrcy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVRoZSB0cmFj
a3MgYnV0dG9uIHNob3VsZCBiZSBkaXNhYmxlZCBpbml0aWFsbHkgYXMgd2Ugd2FpdCBmb3IgbWV0
YWRhdGEgYW5kIHRleHQgdHJhY2tzIHRvIGJlIGFkZGVkLgotUEFTUyBtZWRpYUNvbnRyb2xsZXIu
Y29udHJvbHMudHJhY2tzQnV0dG9uLmVuYWJsZWQgaXMgZmFsc2UKLQotRXZlbnR1YWxseSB0aGUg
dGV4dCB0cmFja3Mgd2lsbCBiZSBhZGRlZCBhbmQgdGhlIHRyYWNrcyBidXR0b24gd2lsbCBiZSBl
bmFibGVkLgotUEFTUyBtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMudHJhY2tzQnV0dG9uLmVuYWJs
ZWQgYmVjYW1lIHRydWUKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNU
IENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrcy5odG1sIGIv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3Ry
YWNrcy1zdXBwb3J0LXRleHQtdHJhY2tzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDUxNzk2NmQ3MzcyYjhhZTFiYWIzOGZiMDc5MzA1MDI0Y2NkOGJiMGIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXRleHQtdHJh
Y2tzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtbG9hZGVyLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8gc3JjPSIuLi8uLi9jb250ZW50L2NvdW50aW5n
LXN1YnRpdGxlZC5tNHYiIHN0eWxlPSJ3aWR0aDogMzIwcHg7IGhlaWdodDogMjQwcHg7IiBwcmVs
b2FkPSJwcmVsb2FkIiBjb250cm9scz48L3ZpZGVvPgotPGRpdiBpZD0ic2hhZG93Ij48L2Rpdj4K
LTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOwotCi1kZXNjcmlwdGlvbigiVGVzdGluZyB0aGUgPGNvZGU+VHJhY2tzU3VwcG9ydDwv
Y29kZT4gYmVoYXZpb3Igd2l0aCB0ZXh0IHRyYWNrcy4iKTsKLQotY29uc3Qgc2hhZG93Um9vdCA9
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRpdiNzaGFkb3ciKS5hdHRhY2hTaGFkb3coeyBtb2Rl
OiAib3BlbiIgfSk7Ci1jb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVv
Iik7Ci1jb25zdCBtZWRpYUNvbnRyb2xsZXIgPSBjcmVhdGVDb250cm9scyhzaGFkb3dSb290LCBt
ZWRpYSwgbnVsbCk7Ci0KLWRlYnVnKCJUaGUgdHJhY2tzIGJ1dHRvbiBzaG91bGQgYmUgZGlzYWJs
ZWQgaW5pdGlhbGx5IGFzIHdlIHdhaXQgZm9yIG1ldGFkYXRhIGFuZCB0ZXh0IHRyYWNrcyB0byBi
ZSBhZGRlZC4iKTsKLXNob3VsZEJlRmFsc2UoIm1lZGlhQ29udHJvbGxlci5jb250cm9scy50cmFj
a3NCdXR0b24uZW5hYmxlZCIpOwotCi1kZWJ1ZygiIik7Ci1kZWJ1ZygiRXZlbnR1YWxseSB0aGUg
dGV4dCB0cmFja3Mgd2lsbCBiZSBhZGRlZCBhbmQgdGhlIHRyYWNrcyBidXR0b24gd2lsbCBiZSBl
bmFibGVkLiIpOwotc2hvdWxkQmVjb21lRXF1YWwoIm1lZGlhQ29udHJvbGxlci5jb250cm9scy50
cmFja3NCdXR0b24uZW5hYmxlZCIsICJ0cnVlIiwgKCkgPT4gewotICAgIGRlYnVnKCIiKTsKLSAg
ICBzaGFkb3dSb290Lmhvc3QucmVtb3ZlKCk7Ci0gICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAgZmlu
aXNoSlNUZXN0KCk7Ci19KTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGVmN2ZkZWIzYzg4NzA1M2MxOTdlYTVk
ZWQyNDYwN2IzODIyZGI2ZjQuLjg3ODE1YTAxOGUwMDdjOThkYjk1ZWI3ZDQyNThlYTIxY2VkNWIz
OTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yOTQz
LDcgKzI5NDMsNiBAQCBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbGxl
ci9tZWRpYS1jb250cm9sbGVyLWF1dG8taGlkZS1tb3VzZS1sZQogbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL21lZGlhLWNvbnRyb2xsZXIvbWVkaWEtY29udHJvbGxlci1hdXRvLWhpZGUtcmV3
aW5kLXdpdGgtbW91c2UtZW50ZXIuaHRtbCBbIFNraXAgXQogbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL21lZGlhLWNvbnRyb2xsZXIvbWVkaWEtY29udHJvbGxlci1jbGljay1vbi12aWRlby1i
YWNrZ3JvdW5kLXNob3VsZC1wYXVzZS1mdWxsc2NyZWVuLmh0bWwgWyBTa2lwIF0KIG1lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXItY2xp
Y2stb24tdmlkZW8tYmFja2dyb3VuZC1zaG91bGQtcGF1c2UuaHRtbCBbIFNraXAgXQotbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xsZXIvbWVkaWEtY29udHJvbGxlci1j
bGljay1vbi12aWRlby1iYWNrZ3JvdW5kLXRvLWRpc21pc3MtdHJhY2tzLXBhbmVsLXNob3VsZC1u
b3QtdG9nZ2xlLXBsYXliYWNrLmh0bWwgWyBTa2lwIF0KIG1lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXItc3BhY2UtYmFyLXRvZ2dsZS1w
bGF5YmFjay5odG1sIFsgU2tpcCBdCiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEt
ZG9jdW1lbnRzL21lZGlhLWRvY3VtZW50LWF1ZGlvLW1hYy1zaXppbmcuaHRtbCBbIFNraXAgXQog
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWRvY3VtZW50cy9tZWRpYS1kb2N1bWVu
dC12aWRlby1tYWMtc2l6aW5nLmh0bWwgWyBTa2lwIF0KQEAgLTI5NTUsOCArMjk1NCw2IEBAIG1l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9zY3J1YmJlci1zdXBwb3J0L3NjcnViYmVyLXN1cHBv
cnQtY2xpY2suaHRtbCBbIFNraXAKIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9zY3J1YmJl
ci1zdXBwb3J0L3NjcnViYmVyLXN1cHBvcnQtZHJhZy5odG1sIFsgU2tpcCBdCiBtZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvc2xpZGVyL3NsaWRlci12YWx1ZS5odG1sIFsgU2tpcCBdCiBtZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdGV4dC10cmFja3MgWyBTa2lwIF0KLW1lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwgWyBTa2lwIF0KLW1lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3Mtc3VwcG9ydCBbIFNraXAgXQogbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3ZvbHVtZS1zdXBwb3J0IFsgU2tpcCBdCiAKIHdlYmtpdC5vcmcvYi8xNzgxMjcgbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xsZXIvbWVkaWEtY29udHJvbGxl
ci12aWRlby13aXRoLW9ubHktYXVkaW8uaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDMzYTk0NDA0ZDcwOTIzMGFlN2Nm
OTEzNzA3ZTAwZGZlNmY1YWRlYTMuLjhhZmZhNGFlYjQ5YWNkZjQ0NDY1NzRkNTk3M2JmZWYzZWNm
YmI3YWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTE5LDYgKzE5LDcgQEAgZmFzdC9zY3JvbGxpbmcvbWFjIFsgUGFzcyBdCiBmYXN0L3Zp
c3VhbC12aWV3cG9ydC90aWxlZC1kcmF3aW5nIFsgUGFzcyBdCiBmYXN0L3dlYi1zaGFyZSBbIFBh
c3MgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItc2hhcmUgWyBQYXNzIF0K
K21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydCBbIFBhc3MgXQogc2Ny
b2xsaW5nY29vcmRpbmF0b3IgWyBQYXNzIF0KIHNjcm9sbGluZ2Nvb3JkaW5hdG9yL2lvcyBbIFNr
aXAgXQogc3dpcGUgWyBQYXNzIF0KQEAgLTgwMSw4ICs4MDIsNiBAQCBodHRwL3dwdC93ZWJhdXRo
bi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtbG9jYWwuaHR0cHMuaHRtbCBbIFNr
aXAgXQogWyBNb2phdmUgXSBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwt
Z2V0LWZhaWx1cmUtbmZjLmh0dHBzLmh0bWwgWyBTa2lwIF0KIFsgTW9qYXZlIF0gaHR0cC93cHQv
d2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1zdWNjZXNzLW5mYy5odHRwcy5odG1s
IFsgU2tpcCBdCiAKLXdlYmtpdC5vcmcvYi8xODM4NzggbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtdXAtY2xpY2stb3Zlci1tZWRpYS1kb2VzLW5v
dC1kaW1pc3MtbWVkaWEtY29udHJvbHMtd2hlbi1tZWRpYS1pcy1wbGF5aW5nLmh0bWwgWyBQYXNz
IFRpbWVvdXQgXSAKLQogd2Via2l0Lm9yZy9iLzE5NDgyNiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLXJlZGlyZWN0Lmh0
bWwgWyBQYXNzIFRpbWVvdXQgXQogCiB3ZWJraXQub3JnL2IvMTg3MzkxIGFjY2Vzc2liaWxpdHkv
bWFjL2FzeW5jLWluY3JlbWVudC1kZWNyZW1lbnQtYWN0aW9uLmh0bWwgWyBTa2lwIF0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYWM5NjUwZDcwN2ZkMWY1
OGJiNmVkYTNhMDJmOGIwZjI2MzFhZGI5YS4uOTcyZjQ4ZmU1ODQ3Yjg3N2RiNTY5OWRiMjcyMjU3
ODI4ODg3MWFkMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTEyNjQsNyArMTI2NCw2IEBAIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1k
b2N1bWVudHMvbWVkaWEtZG9jdW1lbnQtYXVkaW8taW9zLXNpemluZy5odG1sCiBtZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvbWVkaWEtZG9jdW1lbnRzL21lZGlhLWRvY3VtZW50LXZpZGVvLWlw
aG9uZS1zaXppbmcuaHRtbCBbIFNraXAgXQogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21l
ZGlhLWRvY3VtZW50cy9tZWRpYS1kb2N1bWVudC12aWRlby1pcGFkLXNpemluZy5odG1sIFsgU2tp
cCBdCiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvc2NydWJiZXItc3VwcG9ydC9pcGFkIFsg
U2tpcCBdCi1tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zIFsg
U2tpcCBdCiAKICMgVGhlc2UgdGVzdHMgYXJlIHRpbWluZy1yZWxhdGVkIGFuZCBjYW4gZmFpbCBk
dWUgdG8gcGVyZm9ybWFuY2UgaXNzdWVzIG9uIGJvdHMKIHdlYmtpdC5vcmcvYi8xNjk4NzYgbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xsZXIvbWVkaWEtY29udHJvbGxl
ci1hdXRvLWhpZGUtbW91c2UtZW50ZXItYW5kLW1vdXNlLWxlYXZlLmh0bWwgWyBQYXNzIFRpbWVv
dXQgXQpAQCAtMTI4MCw4ICsxMjc5LDYgQEAgd2Via2l0Lm9yZy9iLzE3ODEyNyBtZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGUKICMgb24g
aU9TLCBhbmQgdGhlIGJ1ZyBpdCB3YXMgY3JlYXRlZCB0byByZWdyZXNzaW9uLXRlc3Qgd2FzIGlP
Uy1vbmx5LCBzbyB0aGVyZSBpcyBubyBodXJyeSB0byBtYWtlIGl0IHdvcmsgb24gTWFjLgogbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWRvY3VtZW50cy9iYWNrZ3JvdW5kLWNvbG9y
LWFuZC1jZW50ZXJpbmcuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKLXdlYmtpdC5v
cmcvYi8xNjkxNTggbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21h
Yy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNvbnRyb2xzLmh0bWwg
WyBTa2lwIF0KLQogd2Via2l0Lm9yZy9iLzE3ODA4MyBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEt
c291cmNlLXBhaW50LXRvLWNhbnZhcy5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8x
NzMwNjggaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0
c3RvcmVfZ2V0S2V5Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQpAQCAtMjI4NSw4ICsyMjgyLDYgQEAg
d2Via2l0Lm9yZy9iLzIyMjExOCBbIEJpZ1N1cisgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtY291bnRlci0KIAogd2Via2l0Lm9yZy9iLzIyMjE4NSBtZWRpYS9tZWRp
YS1leHRlbnNpb24td2l0aC1mcmFnbWVudC5odG1sIFsgQ3Jhc2ggXQogCi13ZWJraXQub3JnL2Iv
MjIyMTk3IG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mt
c3VwcG9ydC1hdWRpby10cmFja3MuaHRtbCBbIFBhc3MgVGltZW91dCBdCi0KIHdlYmtpdC5vcmcv
Yi8yMjIyMDUgY3NzMy9jYWxjL3RyYW5zZm9ybXMtdHJhbnNsYXRlLmh0bWwgWyBQYXNzIEltYWdl
T25seUZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMjIyMTk1IGluc3BlY3Rvci9hbmltYXRpb24v
bGlmZWN5Y2xlLWNzcy10cmFuc2l0aW9uLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcyBiL0xheW91dFRlc3RzL3Jlc291
cmNlcy91aS1oZWxwZXIuanMKaW5kZXggMWVkMmVhMzI4MWZiZWI0NDc2NzcyOGRmOWIwMzc1MjQ0
MDM4Zjc0YS4uYzk5MmViZmIxYzNiZTU5NDMzZjI0MGYyZTNmZjc2NzMxYTczM2U2NiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcworKysgYi9MYXlvdXRUZXN0
cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCkBAIC0xMjE5LDExICsxMjE5LDE3IEBAIHdpbmRvdy5V
SUhlbHBlciA9IGNsYXNzIFVJSGVscGVyIHsKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgc3Rh
dGljIGFzeW5jIGNob29zZU1lbnVBY3Rpb24oYWN0aW9uKQorICAgIHN0YXRpYyBjaG9vc2VNZW51
QWN0aW9uKGFjdGlvbikKICAgICB7Ci0gICAgICAgIGNvbnN0IG1lbnVSZWN0ID0gYXdhaXQgdGhp
cy5yZWN0Rm9yTWVudUFjdGlvbihhY3Rpb24pOwotICAgICAgICBpZiAobWVudVJlY3QpCi0gICAg
ICAgICAgICBhd2FpdCB0aGlzLmFjdGl2YXRlQXQobWVudVJlY3QubGVmdCArIG1lbnVSZWN0Lndp
ZHRoIC8gMiwgbWVudVJlY3QudG9wICsgbWVudVJlY3QuaGVpZ2h0IC8gMik7CisgICAgICAgIHJl
dHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIucnVu
VUlTY3JpcHQoYAorICAgICAgICAgICAgICAgICgoKSA9PiB7CisgICAgICAgICAgICAgICAgICAg
IHVpQ29udHJvbGxlci5jaG9vc2VNZW51QWN0aW9uKCIke2FjdGlvbn0iLCAoKSA9PiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOworICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KSgpOworICAgICAgICAgICAg
YCwgcmVzb2x2ZSk7CisgICAgICAgIH0pOwogICAgIH0KIAogICAgIHN0YXRpYyB3YWl0Rm9yRXZl
bnQodGFyZ2V0LCBldmVudE5hbWUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423383</attachid>
            <date>2021-03-16 12:49:55 -0700</date>
            <delta_ts>2021-03-16 13:53:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223239-20210316134953.patch</filename>
            <type>text/plain</type>
            <size>314380</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggMjc1YmU3ZDZmY2M0ODhlNWE1N2YwOGI4NGRlNzg4MTRjMGI0MmM1Zi4uN2ZjMDZjNzhj
MjEyMTdjMWE1ZDU5YjQyZGQ1Y2IwOWIzNzE3MWVmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAy
MS0wMy0xNiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW21h
Y09TXSBjaGFuZ2UgZm9yIHRoZSBsYW5ndWFnZS9zdWJ0aXRsZSB0cmFja3MgYnV0dG9uIHRvIHVz
ZSBhbiBgTlNNZW51YCBpbnN0ZWFkIG9mIHdlYiBjb250ZW50CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjMyMzkKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzc1NDYyMzQwPgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAg
ICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg6CisgICAgICAgIFR1cm4gb24gYEVOQUJM
RV9NRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTYCBmb3IgbWFjT1MuCisKIDIwMjEtMDMtMTIg
IExhdXJvIE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihy
Mjc0MzI3KSBbR0xJQl0gMkQgQ2FudmFzIHRlc3RzIHRpbWluZyBvdXQgYWZ0ZXIgZW5hYmxpbmcg
R1BVUHJvY2VzIGluIHRlc3RpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlMWFjZWMzMTUzZTE2NjVhNzM0ZWRl
MjI5ZTJmN2FlOWM5MjBhOGMzLi40ZmUzNWE1OWM2ZmQ1ZjE0MTRmY2I1OTk2ZDA4MmQ5MTBhMjdl
MjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTE4IEBACisyMDIxLTAzLTE2ICBEZXZpbiBSb3Vz
c28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIGNoYW5nZSBmb3IgdGhl
IGxhbmd1YWdlL3N1YnRpdGxlIHRyYWNrcyBidXR0b24gdG8gdXNlIGFuIGBOU01lbnVgIGluc3Rl
YWQgb2Ygd2ViIGNvbnRlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyMzIzOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzU0NjIzNDA+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIFRlc3RzOiBtZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvYXV0by10ZXh0LXRyYWNrLmh0bWwK
KyAgICAgICAgICAgICAgIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC9jYXB0aW9ucy1vZmZzZXQtd2l0aC1jb250cm9scy1iYXIuaHRtbAorICAgICAgICAgICAgICAg
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2NsaWNrLXRyYWNrLWlu
LWNvbnRleHRtZW51Lmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9oaWRkZW4tdHJhY2tzLmh0bWwKKyAgICAgICAgICAgICAgIG1l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9uby10cmFja3MuaHRtbAor
ICAgICAgICAgICAgICAgbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L29mZi10ZXh0LXRyYWNrLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC9zaG93LWNvbnRleHRtZW51LXRoZW4tZG91YmxlLWNsaWNr
LW9uLXRyYWNrcy1idXR0b24uaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFw
aS5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hv
c3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51UHJvdmlkZXI6
OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRN
ZW51UHJvdmlkZXI6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudVByb3ZpZGVyKTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVQcm92aWRlcjo6fk1lZGlh
Q29udHJvbHNDb250ZXh0TWVudVByb3ZpZGVyKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVQcm92aWRlcjo6cG9wdWxhdGVDb250ZXh0TWVudSk6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51UHJvdmlkZXI6
OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRp
YUNvbnRyb2xzQ29udGV4dE1lbnVQcm92aWRlcjo6Y29udGV4dE1lbnVDbGVhcmVkKTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVQcm92aWRlcjo6Y29u
dGV4dE1lbnVDb250ZXh0VHlwZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250
cm9sc0NvbnRleHRNZW51RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVFdmVudExpc3RlbmVyOjpvcGVyYXRvcj09
IGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1l
bnVFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFDb250cm9sc0NvbnRleHRNZW51RXZlbnRMaXN0ZW5lcjo6TWVkaWFDb250cm9sc0NvbnRl
eHRNZW51RXZlbnRMaXN0ZW5lcik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250
cm9sc0hvc3Q6OnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUpOgorICAgICAgICBDcmVhdGUg
cGxhdGZvcm0tYWdub3N0aWMgaGVscGVyIGZ1bmN0aW9ucyBhbmQgdHlwZXMgZm9yIGNyZWF0aW5n
IHN1Ym1lbnVzIGFuZCBtZW51IGl0ZW1zIHNvCisgICAgICAgIHRoYXQgdGhpcyBsb2dpYyBhZGRl
ZCBmb3IgaU9TIGNhbiBhbHNvIGJlIHVzZWQgZm9yIG1hY09TLgorCisgICAgICAgICogcGFnZS9D
b250ZXh0TWVudUNvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udGV4
dDo6dHlwZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVDb250ZXh0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udGV4dDo6Q29udGV4dE1lbnVD
b250ZXh0KToKKyAgICAgICAgTW92ZSBgV2ViS2l0OjpDb250ZXh0TWVudUNvbnRleHREYXRhOjpU
eXBlYCB0byBgV2ViQ29yZTo6Q29udGV4dG1lbnVDb250ZXh0OjpUeXBlYCBzbyB0aGF0CisgICAg
ICAgIGl0IGNhbiBiZSB1c2VkIGluIFdlYkNvcmUgYXMgd2VsbC4KKworICAgICAgICAqIHBhZ2Uv
Q29udGV4dE1lbnVQcm92aWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVQcm92
aWRlcjo6Y29udGV4dE1lbnVDb250ZXh0VHlwZSk6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvQ29u
dGV4dE1lbnVDb250cm9sbGVyLmg6CisgICAgICAgICogcGFnZS9Db250ZXh0TWVudUNvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyOjpoYW5kbGVD
b250ZXh0TWVudUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxl
cjo6c2hvd0NvbnRleHRNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJv
bGxlcjo6bWF5YmVDcmVhdGVDb250ZXh0TWVudSk6CisgICAgICAgIEFsbG93IHRoZSBgQ29udGV4
dE1lbnVQcm92aWRlcmAgdG8gZnVydGhlciBjdXN0b21pemUgdGhlIGBDb250ZXh0TWVudWAgdGhh
dCdzIGNyZWF0ZWQsIHN1Y2gKKyAgICAgICAgYXMgYWxsb3dpbmcgdGhlIGhpdCB0ZXN0IHRvIGlu
Y2x1ZGUgVUEgc2hhZG93IHJvb3RzIGFuZCBjb250cm9sbGluZyAiSW5zcGVjdCBFbGVtZW50Ii4K
KworICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oOgorICAgICAgICAqIHBsYXRm
b3JtL0NvbnRleHRNZW51SXRlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUl0
ZW06OkNvbnRleHRNZW51SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06
OnNldEluZGVudGF0aW9uTGV2ZWwpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRN
ZW51SXRlbTo6aW5kZW50YXRpb25MZXZlbCBjb25zdCk6IEFkZGVkLgorICAgICAgICBQcm92aWRl
IGEgd2F5IHRvIGV2ZW50dWFsbHkgc2V0IHRoZSBgLVtOU01lbnVJdGVtIHNldEluZGVudGF0aW9u
TGV2ZWw6XWAuCisKKyAgICAgICAgKiBNb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250
cm9scy90cmFja3MtcGFuZWwuanM6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvY29udHJvbHMvdHJhY2tzLXBhbmVsLmNzczogUmVtb3ZlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9iYWNrZ3JvdW5kLWNs
aWNrLWRlbGVnYXRlLW5vdGlmaWVyLmpzOgorICAgICAgICAoQmFja2dyb3VuZENsaWNrRGVsZWdh
dGVOb3RpZmllci5wcm90b3R5cGUuaGFuZGxlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJv
bHMuY3NzOgorICAgICAgICAoLm1lZGlhLWNvbnRyb2xzLm1hYy5mdWxsc2NyZWVuKToKKyAgICAg
ICAgKiBNb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9tZWRpYS1jb250cm9s
cy5qczoKKyAgICAgICAgKE1lZGlhQ29udHJvbHMucHJvdG90eXBlLnNob3dUcmFja3NQYW5lbCk6
IERlbGV0ZWQuCisgICAgICAgIChNZWRpYUNvbnRyb2xzLnByb3RvdHlwZS5oaWRlVHJhY2tzUGFu
ZWwpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2Nv
bnRyb2xzL21lZGlhLWNvbnRyb2xzLmNzczoKKyAgICAgICAgKC5tZWRpYS1jb250cm9scy5zaG93
cy10cmFja3MtcGFuZWwgPiAuY29udHJvbHMtYmFyID4gKiwgLm1lZGlhLWNvbnRyb2xzLnNob3dz
LXRyYWNrcy1wYW5lbCA+IGJ1dHRvbik6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvbWVkaWEvdHJhY2tzLXN1cHBvcnQuanM6CisgICAgICAgIChUcmFj
a3NTdXBwb3J0LnByb3RvdHlwZS5idXR0b25XYXNQcmVzc2VkKToKKyAgICAgICAgKFRyYWNrc1N1
cHBvcnQucHJvdG90eXBlLnN5bmNDb250cm9sKToKKyAgICAgICAgKFRyYWNrc1N1cHBvcnQucHJv
dG90eXBlLl9zb3J0ZWRUcmFja0xpc3QpOgorICAgICAgICAoVHJhY2tzU3VwcG9ydCk6IERlbGV0
ZWQuCisgICAgICAgIChUcmFja3NTdXBwb3J0LnByb3RvdHlwZS50cmFja3NQYW5lbE51bWJlck9m
U2VjdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAoVHJhY2tzU3VwcG9ydC5wcm90b3R5cGUudHJh
Y2tzUGFuZWxUaXRsZUZvclNlY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoVHJhY2tzU3VwcG9y
dC5wcm90b3R5cGUudHJhY2tzUGFuZWxOdW1iZXJPZlRyYWNrc0luU2VjdGlvbik6IERlbGV0ZWQu
CisgICAgICAgIChUcmFja3NTdXBwb3J0LnByb3RvdHlwZS50cmFja3NQYW5lbFRpdGxlRm9yVHJh
Y2tJblNlY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoVHJhY2tzU3VwcG9ydC5wcm90b3R5cGUu
dHJhY2tzUGFuZWxJc1RyYWNrSW5TZWN0aW9uU2VsZWN0ZWQpOiBEZWxldGVkLgorICAgICAgICAo
VHJhY2tzU3VwcG9ydC5wcm90b3R5cGUudHJhY2tzUGFuZWxTZWxlY3Rpb25EaWRDaGFuZ2UpOiBE
ZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2pzLWZpbGVz
OgorICAgICAgICBSZW1vdmUgZXZlcnl0aGluZyByZWxhdGVkIHRvIGBUcmFja3NQYW5lbGAgbm93
IHRoYXQgbWFjT1MgYWxzbyB1c2VzIGEgY29udGV4dG1lbnUuCisKKyAgICAgICAgKiBNb2R1bGVz
L21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9pbmxpbmUtbWVkaWEtY29udHJvbHMuanM6
CisgICAgICAgIChJbmxpbmVNZWRpYUNvbnRyb2xzLnByb3RvdHlwZS5sYXlvdXQpOgorICAgICAg
ICAoSW5saW5lTWVkaWFDb250cm9scy5wcm90b3R5cGUuX3JpZ2h0Q29udGFpbmVyQnV0dG9ucyk6
CisgICAgICAgIChJbmxpbmVNZWRpYUNvbnRyb2xzLnByb3RvdHlwZS5fZHJvcHBhYmxlQnV0dG9u
cyk6CisgICAgICAgICogTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFj
b3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy5qczoKKyAgICAgICAgKE1hY09TRnVsbHNjcmVl
bk1lZGlhQ29udHJvbHMpOgorICAgICAgICBUaGUgYE92ZXJmbG93QnV0dG9uYCBzaG91bGQgYmUg
dGhlIGxhc3QgcmlnaHQgY29udGFpbmVyIGJ1dHRvbiB0byBiZSBkcm9wcGVkLgorCisgICAgICAg
ICogTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEvbWVkaWEtY29udHJvbGxlci5q
czoKKyAgICAgICAgKE1lZGlhQ29udHJvbGxlci5wcm90b3R5cGUuc2hvd01lZGlhQ29udHJvbHND
b250ZXh0TWVudSk6CisgICAgICAgIFByb3ZpZGUgYSB3YXkgZm9yIGNhbGxlcnMgdG8gcHJvdmlk
ZSBhZGRpdGlvbmFsIG9wdGlvbnMuCisKKyAgICAgICAgKiBwYWdlL01lZGlhQ29udHJvbHNDb250
ZXh0TWVudUl0ZW0uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVu
dUl0ZW06OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnVJdGVtOjpkZWNvZGUpOgorICAgICAgICBEcml2ZS1ieTogUmVuYW1lIGBpc0NoZWNr
ZWRgIHRvIGBjaGVja2VkYCB0byBtYXRjaCBgQ29udGV4dE1lbnVJdGVtYC4KKworICAgICAgICAq
IE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3RyYWNrcy1idXR0b24uanM6
CisgICAgICAgIChUcmFja3NCdXR0b24ucHJvdG90eXBlLmdldCBjb250ZXh0TWVudU9wdGlvbnMp
OgorICAgICAgICBEcml2ZS1ieTogUmVuYW1lIG9iamVjdCBrZXlzIGZvciBjbGFyaXR5LgorCisg
ICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgQmUgbW9yZSBleHBsaWNpdCB3
aXRoIGNvbXBpbGVyIGZsYWdzLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6Om1lZGlhQ29udHJvbHNTY3Jp
cHQpOgorCisgICAgICAgICogTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvaW1hZ2VzL21h
Y09TL092ZXJmbG93LnN2ZzoKKyAgICAgICAgUmV3b3JrIHRoaXMgIi4uLiIgaWNvbiB0byBiZSAi
Pj4iIHRvIG1hdGNoIHNpbWlsYXIgaWNvbnMgZWxzZXdoZXJlIG9uIG1hY09TLgorCisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTAzLTEyICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtzZWxlY3Rv
cnNdIDpmb2N1cy12aXNpYmxlIG1hdGNoZXMgYm9keSBhZnRlciBrZXlib2FyZCBldmVudApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCA0YWI4YjVlNjMyMzY5ZjVmMzhkNGNlYWNjMzc5M2FkYjQyNmJiNjZjLi4wOTM3ZDk4
OWJlMjM1ODI3NWU0NDgyZjNkZmU3ZDQ5YjI5YTRmNTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDgy
IEBACisyMDIxLTAzLTE2ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAg
ICAgICBbbWFjT1NdIGNoYW5nZSBmb3IgdGhlIGxhbmd1YWdlL3N1YnRpdGxlIHRyYWNrcyBidXR0
b24gdG8gdXNlIGFuIGBOU01lbnVgIGluc3RlYWQgb2Ygd2ViIGNvbnRlbnQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzIzOQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNzU0NjIzNDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29u
LgorCisgICAgICAgICogU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuaDoKKyAgICAgICAg
KiBTaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNv
bnRleHRNZW51Q29udGV4dERhdGE6OkNvbnRleHRNZW51Q29udGV4dERhdGEpOgorICAgICAgICBN
b3ZlIGBXZWJLaXQ6OkNvbnRleHRNZW51Q29udGV4dERhdGE6OlR5cGVgIHRvIGBXZWJDb3JlOjpD
b250ZXh0bWVudUNvbnRleHQ6OlR5cGVgIHNvIHRoYXQKKyAgICAgICAgaXQgY2FuIGJlIHVzZWQg
aW4gV2ViQ29yZSBhcyB3ZWxsLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvbnRleHRNZW51SXRl
bURhdGEuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51SXRlbURhdGE6OldlYkNvbnRleHRNZW51SXRl
bURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudUl0ZW1EYXRhOjpjb3JlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6ZGVjb2RlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6aW5kZW50YXRpb25MZXZl
bCBjb25zdCk6IEFkZGVkLgorICAgICAgICBQcm92aWRlIGEgd2F5IHRvIGV2ZW50dWFsbHkgc2V0
IHRoZSBgLVtOU01lbnVJdGVtIHNldEluZGVudGF0aW9uTGV2ZWw6XWAuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMv
V2ViQ29udGV4dE1lbnVQcm94eU1hYy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29u
dGV4dE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKC1bV0tNZW51RGVsZWdhdGUgaW5pdFdpdGhN
ZW51UHJveHk6XSk6IEFkZGVkLgorICAgICAgICAoLVtXS01lbnVEZWxlZ2F0ZSBtZW51V2lsbE9w
ZW46XSk6IEFkZGVkLgorICAgICAgICAoLVtXS01lbnVEZWxlZ2F0ZSBtZW51RGlkQ2xvc2U6XSk6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjpnZXRDb250
ZXh0TWVudUl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjp1
c2VDb250ZXh0TWVudUl0ZW1zKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94
eU1hYzo6cGxhdGZvcm1NZW51IGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OmNvbnRl
bnRzT2ZDb250ZXh0TWVudUl0ZW0pOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4
dE1lbnVQcm94eU1hYzo6cGxhdGZvcm1EYXRhIGNvbnN0KTogQWRkZWQuCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBgLVtOU01lbnVJdGVtIHNldEluZGVudGF0aW9uTGV2ZWw6XWAuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgX2NvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbTpdKToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IF9kaWRTaG93Q29udGV4dE1lbnVdKTogQWRkZWQuCisgICAgICAgICgtW1dL
V2ViVmlldyBfZGlkRGlzbWlzc0NvbnRleHRNZW51XSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvaW9zL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IF9kaWRTaG93Q29udGV4dE1lbnVdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tXZWJW
aWV3IF9kaWREaXNtaXNzQ29udGV4dE1lbnVdKTogRGVsZXRlZC4KKyAgICAgICAgTW92ZSB0aGVz
ZSBtZXRob2RzIHNvIHRoZXkgY2FuIGJlIHVzZWQgb24gbWFjT1MgdG9vLgorCisgICAgICAgICog
VUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudDo6ZGlk
U2hvd0NvbnRleHRNZW51KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnQ6OmRp
ZERpc21pc3NDb250ZXh0TWVudSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFn
ZUNsaWVudEltcGxNYWMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBs
TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkU2hvd0NvbnRleHRN
ZW51KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWREaXNtaXNz
Q29udGV4dE1lbnUpOiBBZGRlZC4KKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGBkaWRTaG93Q29u
dGV4dE1lbnVgL2BkaWREaXNtaXNzQ29udGV4dE1lbnVgIGZvciB0ZXN0cy4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvbWFjL1dLV2ViVmlld1Rlc3RpbmdNYWMubW06CisgICAgICAgICgtW1dL
V2ViVmlldyBfYWN0aXZlTWVudV0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdl
UHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250ZW50c09m
VXNlckludGVyZmFjZUl0ZW0pOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBh
Z2VQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpwbGF0Zm9ybUFj
dGl2ZUNvbnRleHRNZW51IGNvbnN0KTogQWRkZWQuCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBg
Y29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtYCBmb3IgdGVzdHMuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
QWN0aW9uU2hlZXRBc3Npc3RhbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQWN0aW9u
U2hlZXRBc3Npc3RhbnQubW06CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgQmUgbW9yZSBl
eHBsaWNpdCB3aXRoIGNvbXBpbGVyIGZsYWdzLgorCiAyMDIxLTAzLTEyICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgdmlkZW8gY2FwdHVyZSBpbiBH
UFVQcm9jZXNzIGJ5IGRlZmF1bHQgb24gaU9TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybUVuYWJsZUNvY29hLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29h
LmgKaW5kZXggMjQzZGYyNWE2NzZkNzlkYjdkMzg1YjU3YjdjMjNjN2QwZGM5ZWFlOS4uZDljZDJk
MGIwNGQ0ZGI3ZWMyZjkxODJhZDQ1NDhiOWQ3ZmY4NTY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
RW5hYmxlQ29jb2EuaApAQCAtMzI0LDYgKzMyNCwxMCBAQAogI2RlZmluZSBFTkFCTEVfTUVESUFf
Q09OVFJPTFNfU0NSSVBUIDEKICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX0NP
TlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFBMQVRGT1JNKE1BQykKKyNkZWZpbmUgRU5BQkxFX01F
RElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMgMQorI2VuZGlmCisKICNpZiAhZGVmaW5lZChFTkFC
TEVfTUVESUFfU0VTU0lPTikgJiYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBM
RVRWKQogI2RlZmluZSBFTkFCTEVfTUVESUFfU0VTU0lPTiAxCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hv
c3QuY3BwCmluZGV4IGY5YjFhNGQ0MjM3MGI2ZTU1MmIxYmMxYzA4NTVkNTEyNDQ0ZWQ4M2QuLjkw
NzEyNTgxMmNkN2I0ZGJhNTQ2ZjQ1YjBhYjA5OTQ1MjIzZWFhMGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0
LmNwcApAQCAtMjksMTYgKzI5LDI3IEBACiAKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xzSG9zdC5o
IgogCisjaW5jbHVkZSAiQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMuaCIKICNpbmNsdWRlICJBdWRp
b1RyYWNrTGlzdC5oIgorI2luY2x1ZGUgIkNhcHRpb25Vc2VyUHJlZmVyZW5jZXMuaCIKICNpbmNs
dWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKLSNpbmNsdWRlICJDYXB0
aW9uVXNlclByZWZlcmVuY2VzLmgiCisjaW5jbHVkZSAiQ29udGV4dE1lbnUuaCIKKyNpbmNsdWRl
ICJDb250ZXh0TWVudUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJDb250ZXh0TWVudUl0ZW0uaCIK
KyNpbmNsdWRlICJDb250ZXh0TWVudVByb3ZpZGVyLmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNp
bmNsdWRlICJFdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1
ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiSFRN
TEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiTG9j
YWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYUNv
bnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiTWVkaWFDb250cm9s
c0NvbnRleHRNZW51SXRlbS5oIgorI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJQYWdlLmgi
CiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKQEAgLTQ2
LDYgKzU3LDcgQEAKICNpbmNsdWRlICJUZXh0VHJhY2tMaXN0LmgiCiAjaW5jbHVkZSAiVm9pZENh
bGxiYWNrLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSlNWYWx1ZUlubGluZXMuaD4K
KyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvSlNPTlZh
bHVlcy5oPgogI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9VVUlELmg+CkBA
IC01NywxMCArNjksNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBkZWZpbmVkKE1l
ZGlhQ29udHJvbHNIb3N0QWRkaXRpb25zX21lbWJlcnMpCi1NZWRpYUNvbnRyb2xzSG9zdEFkZGl0
aW9uc19tZW1iZXJzCi0jZW5kaWYKLQogY29uc3QgQXRvbVN0cmluZyYgTWVkaWFDb250cm9sc0hv
c3Q6OmF1dG9tYXRpY0tleXdvcmQoKQogewogICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYXV0b21hdGljKCJhdXRvbWF0aWMiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CkBAIC0zNTQsMTUgKzM2MiwxMTMgQEAgU3RyaW5nIE1l
ZGlhQ29udHJvbHNIb3N0Ojpmb3JtYXR0ZWRTdHJpbmdGb3JEdXJhdGlvbihkb3VibGUgZHVyYXRp
b25JblNlY29uZHMpCiAjZGVmaW5lIE1lZGlhQ29udHJvbHNIb3N0QWRkaXRpb25zX3Nob3dNZWRp
YUNvbnRyb2xzQ29udGV4dE1lbnVfTWVudURhdGFfc3dpdGNoT24KICNlbmRpZgogCisjaWYgRU5B
QkxFKENPTlRFWFRfTUVOVVMpICYmIFVTRShBQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMpCitj
bGFzcyBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVQcm92aWRlciBmaW5hbCA6IHB1YmxpYyBDb250
ZXh0TWVudVByb3ZpZGVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE1lZGlhQ29udHJvbHND
b250ZXh0TWVudVByb3ZpZGVyPiBjcmVhdGUoVmVjdG9yPENvbnRleHRNZW51SXRlbT4mJiBpdGVt
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYgY2FsbGJhY2spCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVQcm92
aWRlcihXVEZNb3ZlKGl0ZW1zKSwgV1RGTW92ZShjYWxsYmFjaykpKTsKKyAgICB9CisKK3ByaXZh
dGU6CisgICAgTWVkaWFDb250cm9sc0NvbnRleHRNZW51UHJvdmlkZXIoVmVjdG9yPENvbnRleHRN
ZW51SXRlbT4mJiBpdGVtcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYgY2Fs
bGJhY2spCisgICAgICAgIDogbV9pdGVtcyhXVEZNb3ZlKGl0ZW1zKSkKKyAgICAgICAgLCBtX2Nh
bGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKQorICAgIHsKKyAgICB9CisKKyAgICB+TWVkaWFDb250
cm9sc0NvbnRleHRNZW51UHJvdmlkZXIoKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgY29udGV4
dE1lbnVDbGVhcmVkKCk7CisgICAgfQorCisgICAgdm9pZCBwb3B1bGF0ZUNvbnRleHRNZW51KENv
bnRleHRNZW51KiBtZW51KSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgZm9yIChhdXRvJiBpdGVt
IDogbV9pdGVtcykKKyAgICAgICAgICAgIG1lbnUtPmFwcGVuZEl0ZW0oaXRlbSk7CisgICAgfQor
CisgICAgdm9pZCBjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rp
b24sIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2NhbGxiYWNrKGFj
dGlvbiAtIENvbnRleHRNZW51SXRlbUJhc2VDdXN0b21UYWcpOworICAgIH0KKworICAgIHZvaWQg
Y29udGV4dE1lbnVDbGVhcmVkKCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIGlmIChtX2NhbGxi
YWNrKQorICAgICAgICAgICAgbV9jYWxsYmFjayhDb250ZXh0TWVudUl0ZW1UYWdOb0FjdGlvbik7
CisgICAgICAgIG1faXRlbXMuY2xlYXIoKTsKKyAgICB9CisKKyAgICBDb250ZXh0TWVudUNvbnRl
eHQ6OlR5cGUgY29udGV4dE1lbnVDb250ZXh0VHlwZSgpIG92ZXJyaWRlCisgICAgeworICAgICAg
ICByZXR1cm4gQ29udGV4dE1lbnVDb250ZXh0OjpUeXBlOjpNZWRpYUNvbnRyb2xzOworICAgIH0K
KworICAgIFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+IG1faXRlbXM7CisgICAgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCh1aW50NjRfdCk+IG1fY2FsbGJhY2s7Cit9OworCitjbGFzcyBNZWRpYUNvbnRy
b2xzQ29udGV4dE1lbnVFdmVudExpc3RlbmVyIGZpbmFsIDogcHVibGljIEV2ZW50TGlzdGVuZXIg
eworcHVibGljOgorICAgIHN0YXRpYyBSZWY8TWVkaWFDb250cm9sc0NvbnRleHRNZW51RXZlbnRM
aXN0ZW5lcj4gY3JlYXRlKFJlZjxNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVQcm92aWRlcj4mJiBj
b250ZXh0TWVudVByb3ZpZGVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
TWVkaWFDb250cm9sc0NvbnRleHRNZW51RXZlbnRMaXN0ZW5lcihXVEZNb3ZlKGNvbnRleHRNZW51
UHJvdmlkZXIpKSk7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEV2ZW50TGlz
dGVuZXImIG90aGVyKSBjb25zdCBvdmVycmlkZQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMg
PT0gJm90aGVyOworICAgIH0KKworICAgIHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIEV2ZW50JiBldmVudCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIEFTU0VSVChl
dmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmNvbnRleHRtZW51RXZlbnQpOworCisgICAgICAg
IGF1dG8qIHRhcmdldCA9IGV2ZW50LnRhcmdldCgpOworICAgICAgICBpZiAoIWlzPE5vZGU+KHRh
cmdldCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGF1dG8mIG5vZGUgPSBkb3duY2Fz
dDxOb2RlPigqdGFyZ2V0KTsKKworICAgICAgICBhdXRvKiBwYWdlID0gbm9kZS5kb2N1bWVudCgp
LnBhZ2UoKTsKKyAgICAgICAgaWYgKCFwYWdlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIHBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLnNob3dDb250ZXh0TWVudShldmVudCwg
bV9jb250ZXh0TWVudVByb3ZpZGVyKTsKKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsK
KyAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgIGV2ZW50LnN0b3BJbW1l
ZGlhdGVQcm9wYWdhdGlvbigpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBNZWRpYUNvbnRyb2xz
Q29udGV4dE1lbnVFdmVudExpc3RlbmVyKFJlZjxNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVQcm92
aWRlcj4mJiBjb250ZXh0TWVudVByb3ZpZGVyKQorICAgICAgICA6IEV2ZW50TGlzdGVuZXIoRXZl
bnRMaXN0ZW5lcjo6Q1BQRXZlbnRMaXN0ZW5lclR5cGUpCisgICAgICAgICwgbV9jb250ZXh0TWVu
dVByb3ZpZGVyKFdURk1vdmUoY29udGV4dE1lbnVQcm92aWRlcikpCisgICAgeworICAgIH0KKwor
ICAgIFJlZjxNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVQcm92aWRlcj4gbV9jb250ZXh0TWVudVBy
b3ZpZGVyOworfTsKKworI2VuZGlmIC8vIEVOQUJMRShDT05URVhUX01FTlVTKSAmJiBVU0UoQUND
RVNTSUJJTElUWV9DT05URVhUX01FTlVTKQorCiBib29sIE1lZGlhQ29udHJvbHNIb3N0OjpzaG93
TWVkaWFDb250cm9sc0NvbnRleHRNZW51KEhUTUxFbGVtZW50JiB0YXJnZXQsIFN0cmluZyYmIG9w
dGlvbnNKU09OU3RyaW5nLCBSZWY8Vm9pZENhbGxiYWNrPiYmIGNhbGxiYWNrKQogewotICAgIGlm
IChtX3Nob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVDYWxsYmFjaykKKyNpZiBVU0UoVUlDT05U
RVhUTUVOVSkgfHwgKEVOQUJMRShDT05URVhUX01FTlVTKSAmJiBVU0UoQUNDRVNTSUJJTElUWV9D
T05URVhUX01FTlVTKSkKKyAgICBpZiAobV9zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51Q2Fs
bGJhY2spIHsKKyNpZiBVU0UoVUlDT05URVhUTUVOVSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwor
I2VsaWYgKEVOQUJMRShDT05URVhUX01FTlVTKSAmJiBVU0UoQUNDRVNTSUJJTElUWV9DT05URVhU
X01FTlVTKSkKKyAgICAgICAgLy8gRklYTUU6IGBjb250ZXh0TWVudUNsZWFyZWRgIGlzIGludm9r
ZWQgYmV0d2VlbiBzaG93IGFuZCBpdGVtIHNlbGVjdGVkIHNvIHdlIG1heSBoYXZlIGEgcGVuZGlu
ZyBjYWxsYmFjay4KKyAgICAgICAgc3RkOjpleGNoYW5nZShtX3Nob3dNZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnVDYWxsYmFjaywgbnVsbHB0ciktPmhhbmRsZUV2ZW50KCk7CisjZW5kaWYKKyAgICB9
CiAKICAgICBtX3Nob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVDYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spOwogCiAgICAgYXV0byBpbnZva2VDYWxsYmFja0F0U2NvcGVFeGl0ID0gbWFrZVNj
b3BlRXhpdChbJiwgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7Ci0gICAgICAgIHN0
ZDo6ZXhjaGFuZ2UobV9zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51Q2FsbGJhY2ssIG51bGxw
dHIpLT5oYW5kbGVFdmVudCgpOworICAgICAgICBpZiAobV9zaG93TWVkaWFDb250cm9sc0NvbnRl
eHRNZW51Q2FsbGJhY2spCisgICAgICAgICAgICBzdGQ6OmV4Y2hhbmdlKG1fc2hvd01lZGlhQ29u
dHJvbHNDb250ZXh0TWVudUNhbGxiYWNrLCBudWxscHRyKS0+aGFuZGxlRXZlbnQoKTsKICAgICB9
KTsKIAogICAgIGlmICghbV9tZWRpYUVsZW1lbnQpCkBAIC0zODIsNDQgKzQ4OCw1NyBAQCBib29s
IE1lZGlhQ29udHJvbHNIb3N0OjpzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KEhUTUxFbGVt
ZW50JiB0YXJnZXQsIFN0cmluZwogICAgIGlmICghb3B0aW9uc0pTT05PYmplY3QpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAorI2lmIFVTRShVSUNPTlRFWFRNRU5VKQorICAgIHVzaW5nIE1lbnVJ
dGVtID0gTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTsKKyAgICB1c2luZyBNZW51SXRlbUlk
ZW50aWZpZXIgPSBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRDsKKyAgICBjb25zdGV4
cHIgYXV0byBpbnZhbGlkTWVudUl0ZW1JZGVudGlmaWVyID0gTWVkaWFDb250cm9sc0NvbnRleHRN
ZW51SXRlbTo6aW52YWxpZElEOworI2VsaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpICYmIFVTRShB
Q0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMpCisgICAgdXNpbmcgTWVudUl0ZW0gPSBDb250ZXh0
TWVudUl0ZW07CisgICAgdXNpbmcgTWVudUl0ZW1JZGVudGlmaWVyID0gdWludDY0X3Q7CisgICAg
Y29uc3RleHByIGF1dG8gaW52YWxpZE1lbnVJdGVtSWRlbnRpZmllciA9IENvbnRleHRNZW51SXRl
bVRhZ05vQWN0aW9uOworI2VuZGlmCisKICAgICB1c2luZyBNZW51RGF0YSA9IFZhcmlhbnQ8UmVm
UHRyPEF1ZGlvVHJhY2s+LCBSZWZQdHI8VGV4dFRyYWNrPiBNZWRpYUNvbnRyb2xzSG9zdEFkZGl0
aW9uc19zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51X01lbnVEYXRhPjsKLSAgICBIYXNoTWFw
PE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklELCBNZW51RGF0YT4gaWRNYXA7Ci0gICAg
YXV0byBnZW5lcmF0ZUlEID0gWyZdIChNZW51RGF0YSBkYXRhKSB7Ci0gICAgICAgIGF1dG8gaWQg
PSBpZE1hcC5zaXplKCkgKyAxOwotICAgICAgICBpZE1hcC5hZGQoaWQsIGRhdGEpOwotICAgICAg
ICByZXR1cm4gaWQ7CisgICAgSGFzaE1hcDxNZW51SXRlbUlkZW50aWZpZXIsIE1lbnVEYXRhPiBp
ZE1hcDsKKworICAgIGF1dG8gY3JlYXRlU3VibWVudSA9IFtdIChjb25zdCBTdHJpbmcmIHRpdGxl
LCBjb25zdCBTdHJpbmcmIGljb24sIFZlY3RvcjxNZW51SXRlbT4mJiBjaGlsZHJlbikgLT4gTWVu
dUl0ZW0geworI2lmIFVTRShVSUNPTlRFWFRNRU5VKQorICAgICAgICByZXR1cm4geyBNZWRpYUNv
bnRyb2xzQ29udGV4dE1lbnVJdGVtOjppbnZhbGlkSUQsIHRpdGxlLCBpY29uLCAvKiBjaGVja2Vk
ICovIGZhbHNlLCBXVEZNb3ZlKGNoaWxkcmVuKSB9OworI2VsaWYgRU5BQkxFKENPTlRFWFRfTUVO
VVMpICYmIFVTRShBQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMpCisgICAgICAgIFVOVVNFRF9Q
QVJBTShpY29uKTsKKyAgICAgICAgcmV0dXJuIHsgQ29udGV4dE1lbnVJdGVtVGFnTm9BY3Rpb24s
IHRpdGxlLCAvKiBlbmFibGVkICovIHRydWUsIC8qIGNoZWNrZWQgKi8gZmFsc2UsIFdURk1vdmUo
Y2hpbGRyZW4pIH07CisjZW5kaWYKICAgICB9OwogCi0gICAgVmVjdG9yPE1lZGlhQ29udHJvbHND
b250ZXh0TWVudUl0ZW0+IGl0ZW1zOworICAgIGF1dG8gY3JlYXRlTWVudUl0ZW0gPSBbJl0gKE1l
bnVEYXRhIGRhdGEsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGJvb2wgY2hlY2tlZCA9IGZhbHNlKSAt
PiBNZW51SXRlbSB7CisgICAgICAgIGF1dG8gaWQgPSBpZE1hcC5zaXplKCkgKyAxOworICAgICAg
ICBpZE1hcC5hZGQoaWQsIGRhdGEpOwogCi0gICAgaWYgKG9wdGlvbnNKU09OT2JqZWN0LT5nZXRC
b29sZWFuKCJpbmNsdWRlQXVkaW9UcmFja3MiX3MpLnZhbHVlT3IoZmFsc2UpKSB7CisjaWYgVVNF
KFVJQ09OVEVYVE1FTlUpCisgICAgICAgIHJldHVybiB7IGlkLCB0aXRsZSwgLyogaWNvbiAqLyBu
dWxsU3RyaW5nKCksIGNoZWNrZWQsIC8qIGNoaWxkcmVuICovIHsgfSB9OworI2VsaWYgRU5BQkxF
KENPTlRFWFRfTUVOVVMpICYmIFVTRShBQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMpCisgICAg
ICAgIHJldHVybiB7IENoZWNrYWJsZUFjdGlvblR5cGUsIHN0YXRpY19jYXN0PENvbnRleHRNZW51
QWN0aW9uPihDb250ZXh0TWVudUl0ZW1CYXNlQ3VzdG9tVGFnICsgaWQpLCB0aXRsZSwgLyogZW5h
YmxlZCAqLyB0cnVlLCBjaGVja2VkIH07CisjZW5kaWYKKyAgICB9OworCisgICAgVmVjdG9yPE1l
bnVJdGVtPiBpdGVtczsKKworICAgIGlmIChvcHRpb25zSlNPTk9iamVjdC0+Z2V0Qm9vbGVhbigi
aW5jbHVkZUxhbmd1YWdlcyJfcykudmFsdWVPcihmYWxzZSkpIHsKICAgICAgICAgaWYgKGF1dG8q
IGF1ZGlvVHJhY2tzID0gbWVkaWFFbGVtZW50LmF1ZGlvVHJhY2tzKCk7IGF1ZGlvVHJhY2tzICYm
IGF1ZGlvVHJhY2tzLT5sZW5ndGgoKSA+IDEpIHsKLSAgICAgICAgICAgIE1lZGlhQ29udHJvbHND
b250ZXh0TWVudUl0ZW0gYXVkaW9UcmFja3NJdGVtOwotICAgICAgICAgICAgYXVkaW9UcmFja3NJ
dGVtLnRpdGxlID0gV0VCX1VJX1NUUklOR19LRVkoIkxhbmd1YWdlcyIsICJMYW5ndWFnZXMgKE1l
ZGlhIENvbnRyb2xzIE1lbnUpIiwgIkxhbmd1YWdlcyBtZWRpYSBjb250cm9scyBjb250ZXh0IG1l
bnUgdGl0bGUiKTsKLSAgICAgICAgICAgIGF1ZGlvVHJhY2tzSXRlbS5pY29uID0gImdsb2JlIl9z
OwotICAgICAgICAgICAgYXVkaW9UcmFja3NJdGVtLmNoaWxkcmVuLnJlc2VydmVDYXBhY2l0eShh
dWRpb1RyYWNrcy0+bGVuZ3RoKCkpOworICAgICAgICAgICAgVmVjdG9yPE1lbnVJdGVtPiBsYW5n
dWFnZU1lbnVJdGVtczsKIAogICAgICAgICAgICAgYXV0byYgY2FwdGlvblByZWZlcmVuY2VzID0g
cGFnZS0+Z3JvdXAoKS5jYXB0aW9uUHJlZmVyZW5jZXMoKTsKKyAgICAgICAgICAgIGZvciAoYXV0
byYgYXVkaW9UcmFjayA6IGNhcHRpb25QcmVmZXJlbmNlcy5zb3J0ZWRUcmFja0xpc3RGb3JNZW51
KGF1ZGlvVHJhY2tzKSkKKyAgICAgICAgICAgICAgICBsYW5ndWFnZU1lbnVJdGVtcy5hcHBlbmQo
Y3JlYXRlTWVudUl0ZW0oYXVkaW9UcmFjaywgY2FwdGlvblByZWZlcmVuY2VzLmRpc3BsYXlOYW1l
Rm9yVHJhY2soYXVkaW9UcmFjay5nZXQoKSksIGF1ZGlvVHJhY2stPmVuYWJsZWQoKSkpOwogCi0g
ICAgICAgICAgICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2sgOiBjYXB0aW9uUHJlZmVyZW5jZXMuc29y
dGVkVHJhY2tMaXN0Rm9yTWVudShhdWRpb1RyYWNrcykpIHsKLSAgICAgICAgICAgICAgICBNZWRp
YUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtIGF1ZGlvVHJhY2tJdGVtOwotICAgICAgICAgICAgICAg
IGF1ZGlvVHJhY2tJdGVtLmlkID0gZ2VuZXJhdGVJRChhdWRpb1RyYWNrKTsKLSAgICAgICAgICAg
ICAgICBhdWRpb1RyYWNrSXRlbS50aXRsZSA9IGNhcHRpb25QcmVmZXJlbmNlcy5kaXNwbGF5TmFt
ZUZvclRyYWNrKGF1ZGlvVHJhY2suZ2V0KCkpOwotICAgICAgICAgICAgICAgIGF1ZGlvVHJhY2tJ
dGVtLmlzQ2hlY2tlZCA9IGF1ZGlvVHJhY2stPmVuYWJsZWQoKTsKLSAgICAgICAgICAgICAgICBh
dWRpb1RyYWNrc0l0ZW0uY2hpbGRyZW4uYXBwZW5kKFdURk1vdmUoYXVkaW9UcmFja0l0ZW0pKTsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKCFhdWRpb1RyYWNrc0l0ZW0uY2hpbGRy
ZW4uaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIGl0ZW1zLmFwcGVuZChXVEZNb3ZlKGF1ZGlv
VHJhY2tzSXRlbSkpOworICAgICAgICAgICAgaWYgKCFsYW5ndWFnZU1lbnVJdGVtcy5pc0VtcHR5
KCkpCisgICAgICAgICAgICAgICAgaXRlbXMuYXBwZW5kKGNyZWF0ZVN1Ym1lbnUoV0VCX1VJX1NU
UklOR19LRVkoIkxhbmd1YWdlcyIsICJMYW5ndWFnZXMgKE1lZGlhIENvbnRyb2xzIE1lbnUpIiwg
Ikxhbmd1YWdlcyBtZWRpYSBjb250cm9scyBjb250ZXh0IG1lbnUgdGl0bGUiKSwgImdsb2JlIl9z
LCBXVEZNb3ZlKGxhbmd1YWdlTWVudUl0ZW1zKSkpOwogICAgICAgICB9CiAgICAgfQogCi0gICAg
aWYgKG9wdGlvbnNKU09OT2JqZWN0LT5nZXRCb29sZWFuKCJpbmNsdWRlVGV4dFRyYWNrcyJfcyku
dmFsdWVPcihmYWxzZSkpIHsKKyAgICBpZiAob3B0aW9uc0pTT05PYmplY3QtPmdldEJvb2xlYW4o
ImluY2x1ZGVTdWJ0aXRsZXMiX3MpLnZhbHVlT3IoZmFsc2UpKSB7CiAgICAgICAgIGlmIChhdXRv
KiB0ZXh0VHJhY2tzID0gbWVkaWFFbGVtZW50LnRleHRUcmFja3MoKTsgdGV4dFRyYWNrcyAmJiB0
ZXh0VHJhY2tzLT5sZW5ndGgoKSkgewotICAgICAgICAgICAgTWVkaWFDb250cm9sc0NvbnRleHRN
ZW51SXRlbSB0ZXh0VHJhY2tzSXRlbTsKLSAgICAgICAgICAgIHRleHRUcmFja3NJdGVtLnRpdGxl
ID0gV0VCX1VJX1NUUklOR19LRVkoIlN1YnRpdGxlcyIsICJTdWJ0aXRsZXMgKE1lZGlhIENvbnRy
b2xzIE1lbnUpIiwgIlN1YnRpdGxlcyBtZWRpYSBjb250cm9scyBjb250ZXh0IG1lbnUgdGl0bGUi
KTsKLSAgICAgICAgICAgIHRleHRUcmFja3NJdGVtLmljb24gPSAiY2FwdGlvbnMuYnViYmxlIl9z
OwotICAgICAgICAgICAgdGV4dFRyYWNrc0l0ZW0uY2hpbGRyZW4ucmVzZXJ2ZUNhcGFjaXR5KHRl
eHRUcmFja3MtPmxlbmd0aCgpKTsKKyAgICAgICAgICAgIFZlY3RvcjxNZW51SXRlbT4gc3VidGl0
bGVNZW51SXRlbXM7CiAKICAgICAgICAgICAgIGF1dG8mIGNhcHRpb25QcmVmZXJlbmNlcyA9IHBh
Z2UtPmdyb3VwKCkuY2FwdGlvblByZWZlcmVuY2VzKCk7CiAgICAgICAgICAgICBhdXRvIHNvcnRl
ZFRleHRUcmFja3MgPSBjYXB0aW9uUHJlZmVyZW5jZXMuc29ydGVkVHJhY2tMaXN0Rm9yTWVudSh0
ZXh0VHJhY2tzLCB7IFRleHRUcmFjazo6S2luZDo6U3VidGl0bGVzLCBUZXh0VHJhY2s6OktpbmQ6
OkNhcHRpb25zLCBUZXh0VHJhY2s6OktpbmQ6OkRlc2NyaXB0aW9ucyB9KTsKQEAgLTQyNywyNCAr
NTQ2LDE5IEBAIGJvb2wgTWVkaWFDb250cm9sc0hvc3Q6OnNob3dNZWRpYUNvbnRyb2xzQ29udGV4
dE1lbnUoSFRNTEVsZW1lbnQmIHRhcmdldCwgU3RyaW5nCiAgICAgICAgICAgICAgICAgcmV0dXJu
IHRleHRUcmFjay0+bW9kZSgpID09IFRleHRUcmFjazo6TW9kZTo6U2hvd2luZzsKICAgICAgICAg
ICAgIH0pOwogICAgICAgICAgICAgYm9vbCB1c2VzQXV0b21hdGljVHJhY2sgPSBjYXB0aW9uUHJl
ZmVyZW5jZXMuY2FwdGlvbkRpc3BsYXlNb2RlKCkgPT0gQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6
QXV0b21hdGljICYmIGFsbFRyYWNrc0Rpc2FibGVkOwotCiAgICAgICAgICAgICBmb3IgKGF1dG8m
IHRleHRUcmFjayA6IHNvcnRlZFRleHRUcmFja3MpIHsKLSAgICAgICAgICAgICAgICBNZWRpYUNv
bnRyb2xzQ29udGV4dE1lbnVJdGVtIHRleHRUcmFja0l0ZW07Ci0gICAgICAgICAgICAgICAgdGV4
dFRyYWNrSXRlbS5pZCA9IGdlbmVyYXRlSUQodGV4dFRyYWNrKTsKLSAgICAgICAgICAgICAgICB0
ZXh0VHJhY2tJdGVtLnRpdGxlID0gY2FwdGlvblByZWZlcmVuY2VzLmRpc3BsYXlOYW1lRm9yVHJh
Y2sodGV4dFRyYWNrLmdldCgpKTsKKyAgICAgICAgICAgICAgICBib29sIGNoZWNrZWQgPSBmYWxz
ZTsKICAgICAgICAgICAgICAgICBpZiAoYWxsVHJhY2tzRGlzYWJsZWQgJiYgdGV4dFRyYWNrID09
ICZUZXh0VHJhY2s6OmNhcHRpb25NZW51T2ZmSXRlbSgpICYmIChjYXB0aW9uUHJlZmVyZW5jZXMu
Y2FwdGlvbkRpc3BsYXlNb2RlKCkgPT0gQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6Rm9yY2VkT25s
eSB8fCBjYXB0aW9uUHJlZmVyZW5jZXMuY2FwdGlvbkRpc3BsYXlNb2RlKCkgPT0gQ2FwdGlvblVz
ZXJQcmVmZXJlbmNlczo6TWFudWFsKSkKLSAgICAgICAgICAgICAgICAgICAgdGV4dFRyYWNrSXRl
bS5pc0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBjaGVja2VkID0gdHJ1ZTsK
ICAgICAgICAgICAgICAgICBlbHNlIGlmICh1c2VzQXV0b21hdGljVHJhY2sgJiYgdGV4dFRyYWNr
ID09ICZUZXh0VHJhY2s6OmNhcHRpb25NZW51QXV0b21hdGljSXRlbSgpKQotICAgICAgICAgICAg
ICAgICAgICB0ZXh0VHJhY2tJdGVtLmlzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICAgICAg
ICAgIGNoZWNrZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgIGVsc2UgaWYgKCF1c2VzQXV0b21h
dGljVHJhY2sgJiYgdGV4dFRyYWNrLT5tb2RlKCkgPT0gVGV4dFRyYWNrOjpNb2RlOjpTaG93aW5n
KQotICAgICAgICAgICAgICAgICAgICB0ZXh0VHJhY2tJdGVtLmlzQ2hlY2tlZCA9IHRydWU7Ci0g
ICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICB0ZXh0VHJhY2tJdGVtLmlz
Q2hlY2tlZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgIHRleHRUcmFja3NJdGVtLmNoaWxkcmVu
LmFwcGVuZChXVEZNb3ZlKHRleHRUcmFja0l0ZW0pKTsKKyAgICAgICAgICAgICAgICAgICAgY2hl
Y2tlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgc3VidGl0bGVNZW51SXRlbXMuYXBwZW5kKGNy
ZWF0ZU1lbnVJdGVtKHRleHRUcmFjaywgY2FwdGlvblByZWZlcmVuY2VzLmRpc3BsYXlOYW1lRm9y
VHJhY2sodGV4dFRyYWNrLmdldCgpKSwgY2hlY2tlZCkpOwogICAgICAgICAgICAgfQogCi0gICAg
ICAgICAgICBpZiAoIXRleHRUcmFja3NJdGVtLmNoaWxkcmVuLmlzRW1wdHkoKSkKLSAgICAgICAg
ICAgICAgICBpdGVtcy5hcHBlbmQoV1RGTW92ZSh0ZXh0VHJhY2tzSXRlbSkpOworICAgICAgICAg
ICAgaWYgKCFzdWJ0aXRsZU1lbnVJdGVtcy5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgaXRl
bXMuYXBwZW5kKGNyZWF0ZVN1Ym1lbnUoV0VCX1VJX1NUUklOR19LRVkoIlN1YnRpdGxlcyIsICJT
dWJ0aXRsZXMgKE1lZGlhIENvbnRyb2xzIE1lbnUpIiwgIlN1YnRpdGxlcyBtZWRpYSBjb250cm9s
cyBjb250ZXh0IG1lbnUgdGl0bGUiKSwgImNhcHRpb25zLmJ1YmJsZSJfcywgV1RGTW92ZShzdWJ0
aXRsZU1lbnVJdGVtcykpKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtNDUyLDEzICs1NjYsMzIg
QEAgYm9vbCBNZWRpYUNvbnRyb2xzSG9zdDo6c2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShI
VE1MRWxlbWVudCYgdGFyZ2V0LCBTdHJpbmcKICAgICBNZWRpYUNvbnRyb2xzSG9zdEFkZGl0aW9u
c19zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51X29wdGlvbnMKICNlbmRpZgogCisjaWYgRU5B
QkxFKENPTlRFWFRfTUVOVVMpICYmIFVTRShBQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMpCisg
ICAgaWYgKG9wdGlvbnNKU09OT2JqZWN0LT5nZXRCb29sZWFuKCJwcm9tb3RlU3ViTWVudXMiX3Mp
LnZhbHVlT3IoZmFsc2UpKSB7CisgICAgICAgIGZvciAoYXV0byYmIGl0ZW0gOiBzdGQ6OmV4Y2hh
bmdlKGl0ZW1zLCB7IH0pKSB7CisgICAgICAgICAgICBpZiAoIWl0ZW1zLmlzRW1wdHkoKSkKKyAg
ICAgICAgICAgICAgICBpdGVtcy5hcHBlbmQoeyBTZXBhcmF0b3JUeXBlLCBpbnZhbGlkTWVudUl0
ZW1JZGVudGlmaWVyLCAvKiB0aXRsZSAqLyBudWxsU3RyaW5nKCkgfSk7CisKKyAgICAgICAgICAg
IEFTU0VSVChpdGVtLnR5cGUoKSA9PSBTdWJtZW51VHlwZSk7CisgICAgICAgICAgICBpdGVtcy5h
cHBlbmQoeyBBY3Rpb25UeXBlLCBpbnZhbGlkTWVudUl0ZW1JZGVudGlmaWVyLCBpdGVtLnRpdGxl
KCksIC8qIGVuYWJsZWQgKi8gZmFsc2UsIC8qIGNoZWNrZWQgKi8gZmFsc2UgfSk7CisgICAgICAg
ICAgICBpdGVtcy5hcHBlbmRWZWN0b3IoV1RGOjptYXAoaXRlbS5zdWJNZW51SXRlbXMoKSwgW10g
KGNvbnN0IGF1dG8mIGl0ZW0pIC0+IENvbnRleHRNZW51SXRlbSB7CisgICAgICAgICAgICAgICAg
Ly8gVGhlIGRpc2FibGVkIGlubGluZSBpdGVtIHVzZWQgaW5zdGVhZCBvZiBhbiBhY3R1YWwgc3Vi
bWVudSBzaG91bGQgYmUgaW5kZW50ZWQgbGVzcyB0aGFuIHRoZSBzdWJtZW51IGl0ZW1zLgorICAg
ICAgICAgICAgICAgIGNvbnN0ZXhwciB1bnNpZ25lZCBpbmRlbnRhdGlvbkxldmVsID0gMTsKKyAg
ICAgICAgICAgICAgICBpZiAoaXRlbS50eXBlKCkgPT0gU3VibWVudVR5cGUpCisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiB7IGl0ZW0uYWN0aW9uKCksIGl0ZW0udGl0bGUoKSwgaXRlbS5lbmFi
bGVkKCksIGl0ZW0uY2hlY2tlZCgpLCBpdGVtLnN1Yk1lbnVJdGVtcygpLCBpbmRlbnRhdGlvbkxl
dmVsIH07CisgICAgICAgICAgICAgICAgcmV0dXJuIHsgaXRlbS50eXBlKCksIGl0ZW0uYWN0aW9u
KCksIGl0ZW0udGl0bGUoKSwgaXRlbS5lbmFibGVkKCksIGl0ZW0uY2hlY2tlZCgpLCBpbmRlbnRh
dGlvbkxldmVsIH07CisgICAgICAgICAgICB9KSk7CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYg
Ly8gRU5BQkxFKENPTlRFWFRfTUVOVVMpICYmIFVTRShBQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVO
VVMpCisKICAgICBpZiAoaXRlbXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICBBU1NFUlQoIWlkTWFwLmlzRW1wdHkoKSk7CiAKLSAgICBwYWdlLT5jaHJvbWUoKS5jbGll
bnQoKS5zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KHRhcmdldC5ib3VuZHNJblJvb3RWaWV3
U3BhY2UoKSwgV1RGTW92ZShpdGVtcyksIFt3ZWFrTWVkaWFFbGVtZW50ID0gbWFrZVdlYWtQdHIo
bWVkaWFFbGVtZW50KSwgaWRNYXAgPSBXVEZNb3ZlKGlkTWFwKSwgaW52b2tlQ2FsbGJhY2tBdFNj
b3BlRXhpdCA9IFdURk1vdmUoaW52b2tlQ2FsbGJhY2tBdFNjb3BlRXhpdCldIChNZWRpYUNvbnRy
b2xzQ29udGV4dE1lbnVJdGVtOjpJRCBzZWxlY3RlZEl0ZW1JRCkgewotICAgICAgICBpZiAoc2Vs
ZWN0ZWRJdGVtSUQgPT0gTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6aW52YWxpZElEKQor
ICAgIGF1dG8gaGFuZGxlSXRlbVNlbGVjdGVkID0gW3dlYWtNZWRpYUVsZW1lbnQgPSBtYWtlV2Vh
a1B0cihtZWRpYUVsZW1lbnQpLCBpZE1hcCA9IFdURk1vdmUoaWRNYXApLCBpbnZva2VDYWxsYmFj
a0F0U2NvcGVFeGl0ID0gV1RGTW92ZShpbnZva2VDYWxsYmFja0F0U2NvcGVFeGl0KV0gKE1lbnVJ
dGVtSWRlbnRpZmllciBzZWxlY3RlZEl0ZW1JRCkgeworICAgICAgICBpZiAoc2VsZWN0ZWRJdGVt
SUQgPT0gaW52YWxpZE1lbnVJdGVtSWRlbnRpZmllcikKICAgICAgICAgICAgIHJldHVybjsKIAog
ICAgICAgICBpZiAoIXdlYWtNZWRpYUVsZW1lbnQpCkBAIC00ODMsOSArNjE2LDIwIEBAIGJvb2wg
TWVkaWFDb250cm9sc0hvc3Q6OnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoSFRNTEVsZW1l
bnQmIHRhcmdldCwgU3RyaW5nCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBNZWRpYUNvbnRy
b2xzSG9zdEFkZGl0aW9uc19zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51X01lbnVEYXRhX3N3
aXRjaE9uCiAgICAgICAgICk7Ci0gICAgfSk7CisgICAgfTsKKworICAgIGF1dG8gYm91bmRzID0g
dGFyZ2V0LmJvdW5kc0luUm9vdFZpZXdTcGFjZSgpOworI2lmIFVTRShVSUNPTlRFWFRNRU5VKQor
ICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUo
Ym91bmRzLCBXVEZNb3ZlKGl0ZW1zKSwgV1RGTW92ZShoYW5kbGVJdGVtU2VsZWN0ZWQpKTsKKyNl
bGlmIEVOQUJMRShDT05URVhUX01FTlVTKSAmJiBVU0UoQUNDRVNTSUJJTElUWV9DT05URVhUX01F
TlVTKQorICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5jb250ZXh0bWVu
dUV2ZW50LCBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVFdmVudExpc3RlbmVyOjpjcmVhdGUoTWVk
aWFDb250cm9sc0NvbnRleHRNZW51UHJvdmlkZXI6OmNyZWF0ZShXVEZNb3ZlKGl0ZW1zKSwgV1RG
TW92ZShoYW5kbGVJdGVtU2VsZWN0ZWQpKSksIHsgLypjYXB0dXJlICovIHRydWUsIC8qIHBhc3Np
dmUgKi8gV1RGOjpudWxsb3B0LCAvKiBvbmNlICovIHRydWUgfSk7CisgICAgcGFnZS0+Y29udGV4
dE1lbnVDb250cm9sbGVyKCkuc2hvd0NvbnRleHRNZW51QXQoKnRhcmdldC5kb2N1bWVudCgpLmZy
YW1lKCksIGJvdW5kcy5jZW50ZXIoKSk7CisjZW5kaWYKIAogICAgIHJldHVybiB0cnVlOworI2Vs
c2UgLy8gVVNFKFVJQ09OVEVYVE1FTlUpIHx8IChFTkFCTEUoQ09OVEVYVF9NRU5VUykgJiYgVVNF
KEFDQ0VTU0lCSUxJVFlfQ09OVEVYVF9NRU5VUykpCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlm
CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRy
b2xzSG9zdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29u
dHJvbHNIb3N0LmgKaW5kZXggMzI1MGQ2M2Y3MjY2MDUzMjYxMDgxNWRjMTI0ZGVkNDNiN2VhZjUx
ZS4uOTA2NTk4OGY2ZjdjYjNkYWFlYjQzOTU3MTIyMzYyMDIxNDE2YTA5MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNI
b3N0LmgKQEAgLTM2LDYgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQXVkaW9U
cmFjazsKIGNsYXNzIEF1ZGlvVHJhY2tMaXN0OwogY2xhc3MgRWxlbWVudDsKK2NsYXNzIEhUTUxF
bGVtZW50OwogY2xhc3MgSFRNTE1lZGlhRWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbFRleHRU
cmFja0NvbnRhaW5lckVsZW1lbnQ7CiBjbGFzcyBUZXh0VHJhY2s7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9iYWNrZ3Jv
dW5kLWNsaWNrLWRlbGVnYXRlLW5vdGlmaWVyLmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvYmFja2dyb3VuZC1jbGljay1kZWxlZ2F0ZS1u
b3RpZmllci5qcwppbmRleCA2YzhiYTllZmFhZDYyYWU5ZWU3NGRmNjFmNjA2OTFkODE0NjQ1Yzk3
Li44MTYwOTgxNDk3Yzk5ZWU2ZmMzMjA3MjIxOWU4MzE3MjlkZDYwOTViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9iYWNr
Z3JvdW5kLWNsaWNrLWRlbGVnYXRlLW5vdGlmaWVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2JhY2tncm91bmQtY2xpY2stZGVs
ZWdhdGUtbm90aWZpZXIuanMKQEAgLTQxLDE2ICs0MSwxOCBAQCBjbGFzcyBCYWNrZ3JvdW5kQ2xp
Y2tEZWxlZ2F0ZU5vdGlmaWVyCiAgICAgICAgIGlmIChldmVudC5jdXJyZW50VGFyZ2V0ICE9PSBt
ZWRpYUNvbnRyb2xzLmVsZW1lbnQpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgLy8g
T25seSBub3RpZnkgdGhhdCB0aGUgYmFja2dyb3VuZCB3YXMgY2xpY2tlZCB3aGVuIHRoZSAibW91
c2Vkb3duIiBldmVudAotICAgICAgICAvLyB3YXMgYWxzbyByZWNlaXZlZCwgd2hpY2ggd291bGRu
J3QgaGFwcGVuIGlmIHRoZSAibW91c2Vkb3duIiBldmVudCBjYXVzZWQKLSAgICAgICAgLy8gdGhl
IHRyYWNrcyBwYW5lbCB0byBiZSBoaWRkZW4sIHVubGVzcyB3ZSdyZSBpbiBmdWxsc2NyZWVuIGlu
IHdoaWNoIGNhc2UKLSAgICAgICAgLy8gd2UgY2FuIHNpbXBseSBjaGVjayB0aGF0IHRoZSBwYW5l
bCBpcyBub3QgY3VycmVudGx5IHByZXNlbnRlZC4KLSAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09
ICJtb3VzZWRvd24iICYmICFtZWRpYUNvbnRyb2xzLnRyYWNrc1BhbmVsLnByZXNlbnRlZCkKKyAg
ICAgICAgLy8gT25seSBub3RpZnkgdGhhdCB0aGUgYmFja2dyb3VuZCB3YXMgY2xpY2tlZCB3aGVu
IHRoZSAibW91c2Vkb3duIiBldmVudCB3YXMgYWxzbyByZWNlaXZlZCwgdW5sZXNzCisgICAgICAg
IC8vIHdlJ3JlIGluIGZ1bGxzY3JlZW4gaW4gd2hpY2ggY2FzZSB3ZSBjYW4gc2ltcGx5IGNoZWNr
IHRoYXQgdGhlIHBhbmVsIGlzIG5vdCBjdXJyZW50bHkgcHJlc2VudGVkLgorICAgICAgICBzd2l0
Y2ggKGV2ZW50LnR5cGUpIHsKKyAgICAgICAgY2FzZSAibW91c2Vkb3duIjoKICAgICAgICAgICAg
IHRoaXMuX3JlY2VpdmVkTW91c2Vkb3duID0gdHJ1ZTsKLSAgICAgICAgZWxzZSBpZiAoZXZlbnQu
dHlwZSA9PT0gImNsaWNrIikgeworICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGNhc2Ug
ImNsaWNrIjoKICAgICAgICAgICAgIGlmICh0aGlzLl9yZWNlaXZlZE1vdXNlZG93biAmJiBldmVu
dC50YXJnZXQgPT09IG1lZGlhQ29udHJvbHMuZWxlbWVudCAmJiBtZWRpYUNvbnRyb2xzLmRlbGVn
YXRlICYmIHR5cGVvZiBtZWRpYUNvbnRyb2xzLmRlbGVnYXRlLm1hY09TQ29udHJvbHNCYWNrZ3Jv
dW5kV2FzQ2xpY2tlZCA9PT0gImZ1bmN0aW9uIikKICAgICAgICAgICAgICAgICBtZWRpYUNvbnRy
b2xzLmRlbGVnYXRlLm1hY09TQ29udHJvbHNCYWNrZ3JvdW5kV2FzQ2xpY2tlZCgpOwogICAgICAg
ICAgICAgZGVsZXRlIHRoaXMuX3JlY2VpdmVkTW91c2Vkb3duCisgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2lubGluZS1tZWRpYS1jb250cm9scy5qcyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2lu
bGluZS1tZWRpYS1jb250cm9scy5qcwppbmRleCA2NmI3NjllY2Q1MjBlNzRjNjYzYzgwMGFmNTZm
Yjk3NDMzY2ZkZmJhLi4xNjdmOTJiM2ZlZWY0MDFmOGNmYzYyNzU4YWViOGZjZWU3Mjk0MjJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9j
b250cm9scy9pbmxpbmUtbWVkaWEtY29udHJvbHMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvaW5saW5lLW1lZGlhLWNvbnRyb2xz
LmpzCkBAIC0xMjYsMTAgKzEyNiw2IEBAIGNsYXNzIElubGluZU1lZGlhQ29udHJvbHMgZXh0ZW5k
cyBNZWRpYUNvbnRyb2xzCiAgICAgICAgIGlmICghdGhpcy5ib3R0b21Db250cm9sc0JhcikKICAg
ICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAvLyBFbnN1cmUgdGhlIHRyYWNrcyBwYW5lbCBp
cyBhIGNoaWxkIGlmIGl0IHdlcmUgcHJlc2VudGVkLgotICAgICAgICBpZiAodGhpcy50cmFja3NQ
YW5lbC5wcmVzZW50ZWQpCi0gICAgICAgICAgICBjaGlsZHJlbi5wdXNoKHRoaXMudHJhY2tzUGFu
ZWwpOwotCiAgICAgICAgIC8vIFVwZGF0ZSB0aGUgdG9wIGxlZnQgY29udHJvbHMgYmFyLgogICAg
ICAgICB0aGlzLl90b3BMZWZ0Q29udHJvbHNCYXJDb250YWluZXIuY2hpbGRyZW4gPSB0aGlzLl90
b3BMZWZ0Q29udGFpbmVyQnV0dG9ucygpOwogICAgICAgICB0aGlzLl90b3BMZWZ0Q29udHJvbHNC
YXJDb250YWluZXIubGF5b3V0KCk7CkBAIC0yNjIsNyArMjU4LDcgQEAgY2xhc3MgSW5saW5lTWVk
aWFDb250cm9scyBleHRlbmRzIE1lZGlhQ29udHJvbHMKICAgICAgICAgICAgIHJldHVybiBbdGhp
cy5tdXRlQnV0dG9uLCB0aGlzLmFpcnBsYXlCdXR0b24sIHRoaXMub3ZlcmZsb3dCdXR0b25dOwog
CiAgICAgICAgIGlmICh0aGlzLl9zaG91bGRVc2VTaW5nbGVCYXJMYXlvdXQpCi0gICAgICAgICAg
ICByZXR1cm4gW3RoaXMubXV0ZUJ1dHRvbiwgdGhpcy5haXJwbGF5QnV0dG9uLCB0aGlzLnBpcEJ1
dHRvbiwgdGhpcy50cmFja3NCdXR0b24sIHRoaXMub3ZlcmZsb3dCdXR0b24sIHRoaXMuZnVsbHNj
cmVlbkJ1dHRvbl07CisgICAgICAgICAgICByZXR1cm4gW3RoaXMubXV0ZUJ1dHRvbiwgdGhpcy5h
aXJwbGF5QnV0dG9uLCB0aGlzLnBpcEJ1dHRvbiwgdGhpcy50cmFja3NCdXR0b24sIHRoaXMuZnVs
bHNjcmVlbkJ1dHRvbiwgdGhpcy5vdmVyZmxvd0J1dHRvbl07CiAKICAgICAgICAgY29uc3QgYnV0
dG9ucyA9IFtdOwogICAgICAgICBpZiAodGhpcy5wcmVmZXJyZWRNdXRlQnV0dG9uU3R5bGUgPT09
IEJ1dHRvbi5TdHlsZXMuQmFyKQpAQCAtMjc0LDExICsyNzAsMTIgQEAgY2xhc3MgSW5saW5lTWVk
aWFDb250cm9scyBleHRlbmRzIE1lZGlhQ29udHJvbHMKICAgICBfZHJvcHBhYmxlQnV0dG9ucygp
CiAgICAgewogICAgICAgICBpZiAodGhpcy5fc2hvdWxkVXNlU2luZ2xlQmFyTGF5b3V0KQotICAg
ICAgICAgICAgcmV0dXJuIFt0aGlzLnNraXBGb3J3YXJkQnV0dG9uLCB0aGlzLnNraXBCYWNrQnV0
dG9uLCB0aGlzLmFpcnBsYXlCdXR0b24sIHRoaXMudHJhY2tzQnV0dG9uLCB0aGlzLm92ZXJmbG93
QnV0dG9uLCB0aGlzLnBpcEJ1dHRvbiwgdGhpcy5mdWxsc2NyZWVuQnV0dG9uLCB0aGlzLm11dGVC
dXR0b25dOworICAgICAgICAgICAgcmV0dXJuIFt0aGlzLnNraXBGb3J3YXJkQnV0dG9uLCB0aGlz
LnNraXBCYWNrQnV0dG9uLCB0aGlzLmFpcnBsYXlCdXR0b24sIHRoaXMudHJhY2tzQnV0dG9uLCB0
aGlzLnBpcEJ1dHRvbiwgdGhpcy5tdXRlQnV0dG9uLCB0aGlzLmZ1bGxzY3JlZW5CdXR0b24sIHRo
aXMub3ZlcmZsb3dCdXR0b25dOwogCi0gICAgICAgIGNvbnN0IGJ1dHRvbnMgPSBbdGhpcy5za2lw
Rm9yd2FyZEJ1dHRvbiwgdGhpcy5za2lwQmFja0J1dHRvbiwgdGhpcy5haXJwbGF5QnV0dG9uLCB0
aGlzLnRyYWNrc0J1dHRvbiwgdGhpcy5vdmVyZmxvd0J1dHRvbl07CisgICAgICAgIGNvbnN0IGJ1
dHRvbnMgPSBbdGhpcy5za2lwRm9yd2FyZEJ1dHRvbiwgdGhpcy5za2lwQmFja0J1dHRvbiwgdGhp
cy5haXJwbGF5QnV0dG9uLCB0aGlzLnRyYWNrc0J1dHRvbl07CiAgICAgICAgIGlmICh0aGlzLnBy
ZWZlcnJlZE11dGVCdXR0b25TdHlsZSA9PT0gQnV0dG9uLlN0eWxlcy5CYXIpCiAgICAgICAgICAg
ICBidXR0b25zLnB1c2godGhpcy5tdXRlQnV0dG9uKTsKKyAgICAgICAgYnV0dG9ucy5wdXNoKHRo
aXMub3ZlcmZsb3dCdXR0b24pOwogICAgICAgICByZXR1cm4gYnV0dG9uczsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2Nv
bnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMuY3NzIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFjb3MtZnVsbHNjcmVl
bi1tZWRpYS1jb250cm9scy5jc3MKaW5kZXggYmE3MGI0NDUwNWQ5MzY3NzkyNjViM2U4NGY4YTg0
ZGZkYTE1ZWQ4MC4uZWUwMDU0N2NiMTJmYjk4MDVmOTc5MjUyYTUzNDJkYjg1ZGIyZGU1YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29u
dHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy5jc3MKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFjb3MtZnVsbHNj
cmVlbi1tZWRpYS1jb250cm9scy5jc3MKQEAgLTI3LDcgKzI3LDYgQEAKIAogLm1lZGlhLWNvbnRy
b2xzLm1hYy5mdWxsc2NyZWVuIHsKICAgICAtLWNvbnRyb2xzLWJhci13aWR0aDogNDY4cHg7Ci0g
ICAgLS10cmFja3MtcGFuZWwtcmlnaHQtbWFyZ2luOiA0MHB4OwogCiAgICAgd2lkdGg6IDEwMCUg
IWltcG9ydGFudDsKICAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21hY29z
LWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21v
ZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRy
b2xzLmpzCmluZGV4IDNiODAyNGEwNWMzZDk0NDViNjkwZGJmMTE5ZDc1YzM5YWVmZGE1YTQuLmQy
OWEzMmY4MmE0NTYyY2QxNzIyMmJmYWJmMzMyMzQ2MTYzMzM4NzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21hY29zLWZ1
bGxzY3JlZW4tbWVkaWEtY29udHJvbHMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250
cm9scy5qcwpAQCAtNjUsNyArNjUsNyBAQCBjbGFzcyBNYWNPU0Z1bGxzY3JlZW5NZWRpYUNvbnRy
b2xzIGV4dGVuZHMgTWVkaWFDb250cm9scwogICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9y
aWdodENvbnRhaW5lciA9IG5ldyBCdXR0b25zQ29udGFpbmVyKHsKLSAgICAgICAgICAgIGNoaWxk
cmVuOiBbdGhpcy5haXJwbGF5QnV0dG9uLCB0aGlzLnBpcEJ1dHRvbiwgdGhpcy50cmFja3NCdXR0
b24sIHRoaXMuZnVsbHNjcmVlbkJ1dHRvbl0sCisgICAgICAgICAgICBjaGlsZHJlbjogW3RoaXMu
YWlycGxheUJ1dHRvbiwgdGhpcy5waXBCdXR0b24sIHRoaXMudHJhY2tzQnV0dG9uLCB0aGlzLmZ1
bGxzY3JlZW5CdXR0b24sIHRoaXMub3ZlcmZsb3dCdXR0b25dLAogICAgICAgICAgICAgY3NzQ2xh
c3NOYW1lOiAicmlnaHQiLAogICAgICAgICAgICAgbGVmdE1hcmdpbjogMTIsCiAgICAgICAgICAg
ICByaWdodE1hcmdpbjogMTIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21lZGlhLWNvbnRyb2xzLmNzcyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21lZGlhLWNvbnRy
b2xzLmNzcwppbmRleCBkMzM5Njk2YmEyMmU4M2IzZjUwYjEzMzAyMjY1ZmQzMzM1ZDVhZjYzLi40
ODEzODYxMjVhMjE3YWJjOTg1YzNjZTdhOTYzMDIwYjAyN2RjNjdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9tZWRpYS1j
b250cm9scy5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvY29udHJvbHMvbWVkaWEtY29udHJvbHMuY3NzCkBAIC05NywxMSArOTcsNiBAQAogICAg
IHRyYW5zaXRpb246IG9wYWNpdHkgMC4xcyBsaW5lYXI7CiB9CiAKLS5tZWRpYS1jb250cm9scy5z
aG93cy10cmFja3MtcGFuZWwgPiAuY29udHJvbHMtYmFyID4gKiwKLS5tZWRpYS1jb250cm9scy5z
aG93cy10cmFja3MtcGFuZWwgPiBidXR0b24gewotICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwot
fQotCiAubWVkaWEtY29udHJvbHMuZmFkZWQgPiAqOm5vdCgucGxhY2FyZCkgewogICAgIG9wYWNp
dHk6IDA7CiAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9tZWRpYS1jb250cm9s
cy5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRy
b2xzL21lZGlhLWNvbnRyb2xzLmpzCmluZGV4IDE1ZjE0MDYyY2NmZTk1OWExZGRlOGVlN2M5N2U4
ODNmNjQ1NmRhMTQuLjU5NGNhYjgzMWUwZmQ1YjAxMzdiZTkzZGMxYzJhNzI4NmU5Y2UzZGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2Nv
bnRyb2xzL21lZGlhLWNvbnRyb2xzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21lZGlhLWNvbnRyb2xzLmpzCkBAIC00OCw4ICs0
OCw2IEBAIGNsYXNzIE1lZGlhQ29udHJvbHMgZXh0ZW5kcyBMYXlvdXROb2RlCiAgICAgICAgIHRo
aXMuc3RhdHVzTGFiZWwgPSBuZXcgU3RhdHVzTGFiZWwodGhpcyk7CiAgICAgICAgIHRoaXMudGlt
ZUNvbnRyb2wgPSBuZXcgVGltZUNvbnRyb2wodGhpcyk7CiAKLSAgICAgICAgdGhpcy50cmFja3NQ
YW5lbCA9IG5ldyBUcmFja3NQYW5lbDsKLQogICAgICAgICB0aGlzLmJvdHRvbUNvbnRyb2xzQmFy
ID0gbmV3IENvbnRyb2xzQmFyKCJib3R0b20iKTsKIAogICAgICAgICB0aGlzLmF1dG9IaWRlQ29u
dHJvbGxlciA9IG5ldyBBdXRvSGlkZUNvbnRyb2xsZXIodGhpcyk7CkBAIC0xNzAsMzMgKzE2OCw2
IEBAIGNsYXNzIE1lZGlhQ29udHJvbHMgZXh0ZW5kcyBMYXlvdXROb2RlCiAgICAgICAgIHJldHVy
biB0aGlzLl9wbGFjYXJkICYmIHRoaXMuX3BsYWNhcmQgIT09IHRoaXMuYWlycGxheVBsYWNhcmQ7
CiAgICAgfQogCi0gICAgc2hvd1RyYWNrc1BhbmVsKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuZWxl
bWVudC5jbGFzc0xpc3QuYWRkKCJzaG93cy10cmFja3MtcGFuZWwiKTsKLQotICAgICAgICB0aGlz
LnRyYWNrc0J1dHRvbi5vbiA9IHRydWU7Ci0gICAgICAgIHRoaXMudHJhY2tzQnV0dG9uLmVsZW1l
bnQuYmx1cigpOwotICAgICAgICB0aGlzLmF1dG9IaWRlQ29udHJvbGxlci5oYXNTZWNvbmRhcnlV
SUF0dGFjaGVkID0gdHJ1ZTsKLSAgICAgICAgdGhpcy50cmFja3NQYW5lbC5wcmVzZW50SW5QYXJl
bnQodGhpcyk7Ci0KLSAgICAgICAgY29uc3QgY29udHJvbHNCb3VuZHMgPSB0aGlzLmVsZW1lbnQu
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICAgIGNvbnN0IGNvbnRyb2xzQmFyQm91bmRz
ID0gdGhpcy5ib3R0b21Db250cm9sc0Jhci5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
OwotICAgICAgICBjb25zdCB0cmFja3NCdXR0b25Cb3VuZHMgPSB0aGlzLnRyYWNrc0J1dHRvbi5l
bGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgICB0aGlzLnRyYWNrc1BhbmVs
LnJpZ2h0WCA9IHRoaXMud2lkdGggLSAodHJhY2tzQnV0dG9uQm91bmRzLnJpZ2h0IC0gY29udHJv
bHNCb3VuZHMubGVmdCk7Ci0gICAgICAgIHRoaXMudHJhY2tzUGFuZWwuYm90dG9tWSA9IHRoaXMu
aGVpZ2h0IC0gKGNvbnRyb2xzQmFyQm91bmRzLnRvcCAtIGNvbnRyb2xzQm91bmRzLnRvcCkgKyAx
OwotICAgICAgICB0aGlzLnRyYWNrc1BhbmVsLm1heEhlaWdodCA9IHRoaXMuaGVpZ2h0IC0gdGhp
cy50cmFja3NQYW5lbC5ib3R0b21ZIC0gMTA7Ci0gICAgfQotCi0gICAgaGlkZVRyYWNrc1BhbmVs
KCkKLSAgICB7Ci0gICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCJzaG93cy10
cmFja3MtcGFuZWwiKTsKLQotICAgICAgICB0aGlzLnRyYWNrc0J1dHRvbi5vbiA9IGZhbHNlOwot
ICAgICAgICB0aGlzLnRyYWNrc0J1dHRvbi5lbGVtZW50LmZvY3VzKCk7Ci0gICAgICAgIHRoaXMu
YXV0b0hpZGVDb250cm9sbGVyLmhhc1NlY29uZGFyeVVJQXR0YWNoZWQgPSBmYWxzZTsKLSAgICAg
ICAgdGhpcy50cmFja3NQYW5lbC5oaWRlKCk7Ci0gICAgfQotCiAgICAgZmFkZUluKCkKICAgICB7
CiAgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJmYWRlLWluIik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9s
cy90cmFja3MtYnV0dG9uLmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvY29udHJvbHMvdHJhY2tzLWJ1dHRvbi5qcwppbmRleCAzNWFkNWRhODQ4NDIwMTM4
OWRmYTY3MDA5OTM5MzA0MmY0YjM3NWFjLi45MDk1Y2YzZDFjYmQ3ZDcxZDc0ZGI2Zjc4MTdjNWU3
ODgzZTFjMTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRp
YS1jb250cm9scy9jb250cm9scy90cmFja3MtYnV0dG9uLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3RyYWNrcy1idXR0b24uanMK
QEAgLTQwLDggKzQwLDggQEAgY2xhc3MgVHJhY2tzQnV0dG9uIGV4dGVuZHMgQnV0dG9uCiAgICAg
Z2V0IGNvbnRleHRNZW51T3B0aW9ucygpCiAgICAgewogICAgICAgICByZXR1cm4gewotICAgICAg
ICAgICAgaW5jbHVkZUF1ZGlvVHJhY2tzOiB0cnVlLAotICAgICAgICAgICAgaW5jbHVkZVRleHRU
cmFja3M6IHRydWUsCisgICAgICAgICAgICBpbmNsdWRlTGFuZ3VhZ2VzOiB0cnVlLAorICAgICAg
ICAgICAgaW5jbHVkZVN1YnRpdGxlczogdHJ1ZSwKICAgICAgICAgfTsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRy
b2xzL3RyYWNrcy1wYW5lbC5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRp
YS1jb250cm9scy9jb250cm9scy90cmFja3MtcGFuZWwuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAyMzZiZDcyYzc4MDczNGYwOTNmYWFmYmFiNmE4NjVhZTZhMWNhNGE2Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3RyYWNrcy1wYW5lbC5jc3MK
KysrIC9kZXYvbnVsbApAQCAtMSwxMTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLS50cmFja3MtcGFuZWwgewotICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKLSAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ci19Ci0KLS50cmFja3MtcGFuZWwgPiAu
c2Nyb2xsYWJsZS1jb250YWluZXIgewotICAgIGJvcmRlci1yYWRpdXM6IDhweDsKLX0KLQotLnRy
YWNrcy1wYW5lbCA+IC5zY3JvbGxhYmxlLWNvbnRhaW5lciB7Ci0gICAgcG9zaXRpb246IHJlbGF0
aXZlOwotICAgIG92ZXJmbG93LXk6IHNjcm9sbDsKLX0KLQotLnRyYWNrcy1wYW5lbCAqIHsKLSAg
ICBmb250LXNpemU6IDE0cHg7Ci0gICAgZm9udC13ZWlnaHQ6IDUwMDsKLX0KLQotLnRyYWNrcy1w
YW5lbC5mYWRlLW91dCB7Ci0gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTsKLSAgICB0
cmFuc2l0aW9uLWR1cmF0aW9uOiAyNjVtczsKLSAgICBvcGFjaXR5OiAwOwotfQotCi0udHJhY2tz
LXBhbmVsIHNlY3Rpb24gewotICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCB2YXIoLS1zZWNvbmRh
cnktZ2x5cGgtY29sb3IpOwotICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07Ci19Ci0KLS50cmFj
a3MtcGFuZWwgc2VjdGlvbjpmaXJzdC1vZi10eXBlIHsKLSAgICBib3JkZXItdG9wOiAwOwotfQot
Ci0udHJhY2tzLXBhbmVsIHNlY3Rpb24gPiBoMyB7Ci0gICAgY29sb3I6IHZhcigtLXByaW1hcnkt
Z2x5cGgtY29sb3IpOwotICAgIG1peC1ibGVuZC1tb2RlOiBwbHVzLWxpZ2h0ZXI7Ci0gICAgcGFk
ZGluZzogNXB4IDIwcHggMXB4IDIxcHg7Ci0gICAgbWFyZ2luOiAwOwotfQotCi0udHJhY2tzLXBh
bmVsIHNlY3Rpb24gPiB1bCB7Ci0gICAgbGlzdC1zdHlsZS10eXBlOiBub25lOwotICAgIG1hcmdp
bi10b3A6IDA7Ci0gICAgcGFkZGluZzogMDsKLX0KLQotLnRyYWNrcy1wYW5lbCBzZWN0aW9uID4g
dWwgPiBsaSB7Ci0gICAgcG9zaXRpb246IHJlbGF0aXZlOwotICAgIHBhZGRpbmc6IDFweCAyMHB4
IDFweCAzM3B4OwotICAgIGNvbG9yOiB3aGl0ZTsKLX0KLQotLnRyYWNrcy1wYW5lbCBzZWN0aW9u
ID4gdWwgPiBsaTpmb2N1cyB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwLCAxMDUsIDIw
OSk7Ci0gICAgb3V0bGluZTogbm9uZTsKLX0KLQotLnRyYWNrcy1wYW5lbCBzZWN0aW9uID4gdWwg
PiBsaS5zZWxlY3RlZDpiZWZvcmUgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6
IDNweDsKLSAgICBsZWZ0OiAxMnB4OwotICAgIHdpZHRoOiAxMnB4OwotICAgIGRpc3BsYXk6IGlu
bGluZS1ibG9jazsKLSAgICBjb250ZW50OiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDMwMCAzMDAiPjxw
b2x5Z29uIGZpbGw9IndoaXRlIiBwb2ludHM9IjI1Mi4zMDEsNC40NzcgMTI2LjY2NywxOTQuMTA0
IDQzLjM1OCwxMDguMyA2Ljg2OCwxNjEuNDA4IDEzMi41MTUsMjkwLjgxNCAyOTcuNzMyLDQ5Ljky
NiIvPjwvc3ZnPicpOwotfQotCi0udHJhY2tzLXBhbmVsIHNlY3Rpb24gPiB1bCA+IGxpLmFuaW1h
dGVkIHsKLSAgICBhbmltYXRpb24tbmFtZTogdHJhY2tzLXBhbmVsLWl0ZW0tc2VsZWN0aW9uOwot
ICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMTUwbXM7Ci0gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5j
dGlvbjogc3RlcC1lbmQ7Ci0gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7Ci19Ci0K
LUBrZXlmcmFtZXMgdHJhY2tzLXBhbmVsLWl0ZW0tc2VsZWN0aW9uIHsKLSAgICAwJSwgNTUuNTUl
IHsKLSAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNiwgNjgsIDI0MywgMC42KTsKLSAg
ICAgICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IHNhdHVyYXRlKDE4MCUpIGJsdXIoMjBweCk7
Ci0gICAgfQotCi0gICAgMjIuMjIlIHsKLSAgICAgICAgYmFja2dyb3VuZDogbm9uZTsKLSAgICAg
ICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IG5vbmU7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvdHJh
Y2tzLXBhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvY29udHJvbHMvdHJhY2tzLXBhbmVsLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBkMzAxNzA1Y2Q0YWQ1MGQ1OTE2ODVhYjMzNTM1OWNlMWQyYzc4ODJhLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3RyYWNrcy1wYW5lbC5qcworKysgL2Rldi9u
dWxsCkBAIC0xLDM0OCArMCwwIEBACi0KLWNsYXNzIFRyYWNrc1BhbmVsIGV4dGVuZHMgTGF5b3V0
Tm9kZQotewotCi0gICAgY29uc3RydWN0b3IoKQotICAgIHsKLSAgICAgICAgc3VwZXIoYDxkaXYg
Y2xhc3M9InRyYWNrcy1wYW5lbCI+PC9kaXY+YCk7Ci0gICAgICAgIHRoaXMuX2JhY2tncm91bmRU
aW50ID0gbmV3IEJhY2tncm91bmRUaW50OwotICAgICAgICB0aGlzLl9zY3JvbGxhYmxlQ29udGFp
bmVyID0gbmV3IExheW91dE5vZGUoYDxkaXYgY2xhc3M9InNjcm9sbGFibGUtY29udGFpbmVyIj48
L2Rpdj5gKTsKLSAgICAgICAgdGhpcy5fcmlnaHRYID0gMDsKLSAgICAgICAgdGhpcy5fYm90dG9t
WSA9IDA7Ci0gICAgICAgIHRoaXMuX3ByZXNlbnRlZCA9IGZhbHNlOwotICAgICAgICAKLSAgICAg
ICAgdGhpcy5jaGlsZHJlbiA9IFt0aGlzLl9iYWNrZ3JvdW5kVGludCwgdGhpcy5fc2Nyb2xsYWJs
ZUNvbnRhaW5lcl07Ci0gICAgfQotCi0gICAgLy8gUHVibGljCi0KLSAgICBnZXQgcHJlc2VudGVk
KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9wcmVzZW50ZWQ7Ci0gICAgfQotCi0gICAg
cHJlc2VudEluUGFyZW50KG5vZGUpCi0gICAgewotICAgICAgICBpZiAodGhpcy5fcHJlc2VudGVk
ICYmIHRoaXMucGFyZW50ID09PSBub2RlKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAg
IHRoaXMuX3ByZXNlbnRlZCA9IHRydWU7Ci0KLSAgICAgICAgdGhpcy5fc2Nyb2xsYWJsZUNvbnRh
aW5lci5jaGlsZHJlbiA9IHRoaXMuX2NoaWxkcmVuRnJvbURhdGFTb3VyY2UoKTsKLQotICAgICAg
ICBub2RlLmFkZENoaWxkKHRoaXMpOwotCi0gICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmVFdmVu
dExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIiwgdGhpcyk7Ci0gICAgICAgIHRoaXMuZWxlbWVudC5j
bGFzc0xpc3QucmVtb3ZlKCJmYWRlLW91dCIpOwotCi0gICAgICAgIHRoaXMuX21vdXNlZG93blRh
cmdldCgpLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHRoaXMsIHRydWUpOwotICAgICAg
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMsIHRydWUpOwotCi0gICAg
ICAgIHRoaXMuX2ZvY3VzZWRUcmFja05vZGUgPSBudWxsOwotICAgIH0KLQotICAgIGhpZGUoKQot
ICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9wcmVzZW50ZWQpCi0gICAgICAgICAgICByZXR1cm47
Ci0KLSAgICAgICAgdGhpcy5fcHJlc2VudGVkID0gZmFsc2U7Ci0KLSAgICAgICAgdGhpcy5fbW91
c2Vkb3duVGFyZ2V0KCkucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdGhpcywgdHJ1
ZSk7Ci0gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcywg
dHJ1ZSk7Ci0KLSAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRp
b25lbmQiLCB0aGlzKTsKLQotICAgICAgICAvLyBFbnN1cmUgYSB0cmFuc2l0aW9uIHdpbGwgaW5k
ZWVkIGhhcHBlbiBieSBzdGFydGluZyBpdCBvbmx5IG9uIHRoZSBuZXh0IGZyYW1lLgotICAgICAg
ICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsgdGhpcy5lbGVtZW50LmNsYXNz
TGlzdC5hZGQoImZhZGUtb3V0Iik7IH0pOwotICAgIH0KLQotICAgIGdldCBtYXhIZWlnaHQoKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX21heEhlaWdodDsKLSAgICB9Ci0KLSAgICBzZXQg
bWF4SGVpZ2h0KGhlaWdodCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9tYXhIZWlnaHQgPT09
IGhlaWdodCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB0aGlzLl9tYXhIZWlnaHQg
PSBoZWlnaHQ7Ci0gICAgICAgIHRoaXMubWFya0RpcnR5UHJvcGVydHkoIm1heEhlaWdodCIpCi0g
ICAgfQotCi0gICAgZ2V0IGJvdHRvbVkoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2Jv
dHRvbVk7Ci0gICAgfQotCi0gICAgc2V0IGJvdHRvbVkoYm90dG9tWSkKLSAgICB7Ci0gICAgICAg
IGlmICh0aGlzLl9ib3R0b21ZID09PSBib3R0b21ZKQotICAgICAgICAgICAgcmV0dXJuOwotCi0g
ICAgICAgIHRoaXMuX2JvdHRvbVkgPSBib3R0b21ZOwotICAgICAgICB0aGlzLm1hcmtEaXJ0eVBy
b3BlcnR5KCJib3R0b21ZIik7Ci0gICAgfQotCi0gICAgZ2V0IHJpZ2h0WCgpCi0gICAgewotICAg
ICAgICByZXR1cm4gdGhpcy5fcmlnaHRYOwotICAgIH0KLQotICAgIHNldCByaWdodFgoeCkKLSAg
ICB7Ci0gICAgICAgIGlmICh0aGlzLl9yaWdodFggPT09IHgpCi0gICAgICAgICAgICByZXR1cm47
Ci0KLSAgICAgICAgdGhpcy5fcmlnaHRYID0geDsKLSAgICAgICAgdGhpcy5tYXJrRGlydHlQcm9w
ZXJ0eSgicmlnaHRYIik7Ci0gICAgfQotCi0gICAgLy8gUHJvdGVjdGVkCi0KLSAgICB0cmFja05v
ZGVTZWxlY3Rpb25BbmltYXRpb25EaWRFbmQodHJhY2tOb2RlKQotICAgIHsKLSAgICAgICAgaWYg
KHRoaXMudWlEZWxlZ2F0ZSAmJiB0eXBlb2YgdGhpcy51aURlbGVnYXRlLnRyYWNrc1BhbmVsU2Vs
ZWN0aW9uRGlkQ2hhbmdlID09PSAiZnVuY3Rpb24iKQotICAgICAgICAgICAgdGhpcy51aURlbGVn
YXRlLnRyYWNrc1BhbmVsU2VsZWN0aW9uRGlkQ2hhbmdlKHRyYWNrTm9kZS5pbmRleCwgdHJhY2tO
b2RlLnNlY3Rpb25JbmRleCk7Ci0gICAgfQotCi0gICAgbW91c2VNb3ZlZE92ZXJUcmFja05vZGUo
dHJhY2tOb2RlKQotICAgIHsKLSAgICAgICAgdGhpcy5fZm9jdXNUcmFja05vZGUodHJhY2tOb2Rl
KTsKLSAgICB9Ci0KLSAgICBtb3VzZUV4aXRlZFRyYWNrTm9kZSh0cmFja05vZGUpCi0gICAgewot
ICAgICAgICB0aGlzLl9mb2N1c2VkVHJhY2tOb2RlLmVsZW1lbnQuYmx1cigpOwotICAgICAgICBk
ZWxldGUgdGhpcy5fZm9jdXNlZFRyYWNrTm9kZTsKLSAgICB9Ci0KLSAgICBjb21taXRQcm9wZXJ0
eShwcm9wZXJ0eU5hbWUpCi0gICAgewotICAgICAgICBpZiAocHJvcGVydHlOYW1lID09PSAicmln
aHRYIikKLSAgICAgICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5yaWdodCA9IGAke3RoaXMuX3Jp
Z2h0WH1weGA7Ci0gICAgICAgIGVsc2UgaWYgKHByb3BlcnR5TmFtZSA9PT0gImJvdHRvbVkiKQot
ICAgICAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmJvdHRvbSA9IGAke3RoaXMuX2JvdHRvbVl9
cHhgOwotICAgICAgICBlbHNlIGlmIChwcm9wZXJ0eU5hbWUgPT09ICJtYXhIZWlnaHQiKSB7Ci0g
ICAgICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUubWF4SGVpZ2h0ID0gYCR7dGhpcy5fbWF4SGVp
Z2h0fXB4YDsKLSAgICAgICAgICAgIHRoaXMuX3Njcm9sbGFibGVDb250YWluZXIuZWxlbWVudC5z
dHlsZS5tYXhIZWlnaHQgPSBgJHt0aGlzLl9tYXhIZWlnaHR9cHhgOwotICAgICAgICB9IGVsc2UK
LSAgICAgICAgICAgIHN1cGVyLmNvbW1pdFByb3BlcnR5KHByb3BlcnR5TmFtZSk7Ci0gICAgfQot
Ci0gICAgaGFuZGxlRXZlbnQoZXZlbnQpCi0gICAgewotICAgICAgICBzd2l0Y2ggKGV2ZW50LnR5
cGUpIHsKLSAgICAgICAgY2FzZSAibW91c2Vkb3duIjoKLSAgICAgICAgICAgIHRoaXMuX2hhbmRs
ZU1vdXNlZG93bihldmVudCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAia2V5
ZG93biI6Ci0gICAgICAgICAgICB0aGlzLl9oYW5kbGVLZXlkb3duKGV2ZW50KTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlICJ0cmFuc2l0aW9uZW5kIjoKLSAgICAgICAgICAgIHRo
aXMucmVtb3ZlKCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLQotICAg
IC8vIFByaXZhdGUKLQotICAgIF9tb3VzZWRvd25UYXJnZXQoKQotICAgIHsKLSAgICAgICAgY29u
c3QgbWVkaWFDb250cm9scyA9IHRoaXMucGFyZW50T2ZUeXBlKE1hY09TRnVsbHNjcmVlbk1lZGlh
Q29udHJvbHMpOwotICAgICAgICBpZiAobWVkaWFDb250cm9scykKLSAgICAgICAgICAgIHJldHVy
biBtZWRpYUNvbnRyb2xzLmVsZW1lbnQ7Ci0gICAgICAgIHJldHVybiB3aW5kb3c7Ci0gICAgfQot
Ci0gICAgX2NoaWxkcmVuRnJvbURhdGFTb3VyY2UoKQotICAgIHsKLSAgICAgICAgY29uc3QgY2hp
bGRyZW4gPSBbXTsKLQotICAgICAgICB0aGlzLl90cmFja05vZGVzID0gW107Ci0KLSAgICAgICAg
Y29uc3QgZGF0YVNvdXJjZSA9IHRoaXMuZGF0YVNvdXJjZTsKLSAgICAgICAgaWYgKCFkYXRhU291
cmNlKQotICAgICAgICAgICAgcmV0dXJuIGNoaWxkcmVuOwotCi0gICAgICAgIGNvbnN0IG51bWJl
ck9mU2VjdGlvbnMgPSBkYXRhU291cmNlLnRyYWNrc1BhbmVsTnVtYmVyT2ZTZWN0aW9ucygpOwot
ICAgICAgICBpZiAobnVtYmVyT2ZTZWN0aW9ucyA9PT0gMCkKLSAgICAgICAgICAgIHJldHVybiBj
aGlsZHJlbjsKLQotICAgICAgICBmb3IgKGxldCBzZWN0aW9uSW5kZXggPSAwOyBzZWN0aW9uSW5k
ZXggPCBudW1iZXJPZlNlY3Rpb25zOyArK3NlY3Rpb25JbmRleCkgewotICAgICAgICAgICAgbGV0
IHNlY3Rpb25Ob2RlID0gbmV3IExheW91dE5vZGUoYDxzZWN0aW9uPjwvc2VjdGlvbj5gKTsKLSAg
ICAgICAgICAgIHNlY3Rpb25Ob2RlLmFkZENoaWxkKG5ldyBMYXlvdXROb2RlKGA8aDM+JHtkYXRh
U291cmNlLnRyYWNrc1BhbmVsVGl0bGVGb3JTZWN0aW9uKHNlY3Rpb25JbmRleCl9PC9oMz5gKSk7
Ci0KLSAgICAgICAgICAgIGxldCB0cmFja3NMaXN0Tm9kZSA9IHNlY3Rpb25Ob2RlLmFkZENoaWxk
KG5ldyBMYXlvdXROb2RlKGA8dWw+PC91bD5gKSk7Ci0gICAgICAgICAgICBsZXQgbnVtYmVyT2ZU
cmFja3MgPSBkYXRhU291cmNlLnRyYWNrc1BhbmVsTnVtYmVyT2ZUcmFja3NJblNlY3Rpb24oc2Vj
dGlvbkluZGV4KTsKLSAgICAgICAgICAgIGZvciAobGV0IHRyYWNrSW5kZXggPSAwOyB0cmFja0lu
ZGV4IDwgbnVtYmVyT2ZUcmFja3M7ICsrdHJhY2tJbmRleCkgewotICAgICAgICAgICAgICAgIGxl
dCB0cmFja1RpdGxlID0gZGF0YVNvdXJjZS50cmFja3NQYW5lbFRpdGxlRm9yVHJhY2tJblNlY3Rp
b24odHJhY2tJbmRleCwgc2VjdGlvbkluZGV4KTsKLSAgICAgICAgICAgICAgICBsZXQgdHJhY2tT
ZWxlY3RlZCA9IGRhdGFTb3VyY2UudHJhY2tzUGFuZWxJc1RyYWNrSW5TZWN0aW9uU2VsZWN0ZWQo
dHJhY2tJbmRleCwgc2VjdGlvbkluZGV4KTsKLSAgICAgICAgICAgICAgICBsZXQgdHJhY2tOb2Rl
ID0gdHJhY2tzTGlzdE5vZGUuYWRkQ2hpbGQobmV3IFRyYWNrTm9kZSh0cmFja0luZGV4LCBzZWN0
aW9uSW5kZXgsIHRyYWNrVGl0bGUsIHRyYWNrU2VsZWN0ZWQsIHRoaXMpKTsKLSAgICAgICAgICAg
ICAgICB0aGlzLl90cmFja05vZGVzLnB1c2godHJhY2tOb2RlKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGNoaWxkcmVuLnB1c2goc2VjdGlvbk5vZGUpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgcmV0dXJuIGNoaWxkcmVuOwotICAgIH0KLQotICAgIF9oYW5kbGVNb3VzZWRvd24oZXZlbnQp
Ci0gICAgewotICAgICAgICBpZiAodGhpcy5faXNQb2ludEluVHJhY2tzUGFuZWwobmV3IERPTVBv
aW50KGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkpKSkKLSAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICB0aGlzLl9kaXNtaXNzKCk7Ci0KLSAgICAgICAgZXZlbnQucHJldmVudERlZmF1
bHQoKTsKLSAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgfQotCi0gICAgX2lz
UG9pbnRJblRyYWNrc1BhbmVsKHBvaW50KQotICAgIHsKLSAgICAgICAgbGV0IGFuY2VzdG9yID0g
dGhpcy5lbGVtZW50LnBhcmVudE5vZGU7Ci0gICAgICAgIHdoaWxlIChhbmNlc3RvciAmJiAhKGFu
Y2VzdG9yIGluc3RhbmNlb2YgU2hhZG93Um9vdCkpCi0gICAgICAgICAgICBhbmNlc3RvciA9IGFu
Y2VzdG9yLnBhcmVudE5vZGU7Ci0KLSAgICAgICAgaWYgKCFhbmNlc3RvcikKLSAgICAgICAgICAg
IGFuY2VzdG9yID0gZG9jdW1lbnQ7Ci0KLSAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5jb250
YWlucyhhbmNlc3Rvci5lbGVtZW50RnJvbVBvaW50KHBvaW50LngsIHBvaW50LnkpKTsKLSAgICB9
Ci0KLSAgICBfaGFuZGxlS2V5ZG93bihldmVudCkKLSAgICB7Ci0gICAgICAgIHN3aXRjaCAoZXZl
bnQua2V5KSB7Ci0gICAgICAgIGNhc2UgIkhvbWUiOgotICAgICAgICBjYXNlICJQYWdlVXAiOgot
ICAgICAgICAgICAgdGhpcy5fZm9jdXNGaXJzdFRyYWNrTm9kZSgpOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgIkVuZCI6Ci0gICAgICAgIGNhc2UgIlBhZ2VEb3duIjoKLSAgICAg
ICAgICAgIHRoaXMuX2ZvY3VzTGFzdFRyYWNrTm9kZSgpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgIkFycm93RG93biI6Ci0gICAgICAgICAgICBpZiAoZXZlbnQuYWx0S2V5IHx8
IGV2ZW50Lm1ldGFLZXkpCi0gICAgICAgICAgICAgICAgdGhpcy5fZm9jdXNMYXN0VHJhY2tOb2Rl
KCk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgdGhpcy5fZm9jdXNOZXh0VHJh
Y2tOb2RlKCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAiQXJyb3dVcCI6Ci0g
ICAgICAgICAgICBpZiAoZXZlbnQuYWx0S2V5IHx8IGV2ZW50Lm1ldGFLZXkpCi0gICAgICAgICAg
ICAgICAgdGhpcy5fZm9jdXNGaXJzdFRyYWNrTm9kZSgpOwotICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIHRoaXMuX2ZvY3VzUHJldmlvdXNUcmFja05vZGUoKTsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlICIgIjoKLSAgICAgICAgY2FzZSAiRW50ZXIiOgotICAgICAg
ICAgICAgaWYgKHRoaXMuX2ZvY3VzZWRUcmFja05vZGUpCi0gICAgICAgICAgICAgICAgdGhpcy5f
Zm9jdXNlZFRyYWNrTm9kZS5hY3RpdmF0ZSgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgIkVzY2FwZSI6Ci0gICAgICAgICAgICB0aGlzLl9kaXNtaXNzKCk7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotCi0gICAgICAgIC8vIEVuc3VyZSB0aGF0IHdlIGRvbid0IGxldCB0aGUgYnJvd3NlciByZWFj
dCB0byBhIGtleSBjb2RlIHdlIGhhbmRsZWQsCi0gICAgICAgIC8vIGZvciBpbnN0YW5jZSBzY3Jv
bGxpbmcgdGhlIHBhZ2UgaWYgd2UgaGFuZGxlZCBhbiBhcnJvdyBrZXkuCi0gICAgICAgIGV2ZW50
LnByZXZlbnREZWZhdWx0KCk7Ci0gICAgfQotCi0gICAgX2Rpc21pc3MoKQotICAgIHsKLSAgICAg
ICAgaWYgKHRoaXMucGFyZW50ICYmIHR5cGVvZiB0aGlzLnBhcmVudC5oaWRlVHJhY2tzUGFuZWwg
PT09ICJmdW5jdGlvbiIpCi0gICAgICAgICAgICB0aGlzLnBhcmVudC5oaWRlVHJhY2tzUGFuZWwo
KTsKLSAgICB9Ci0KLSAgICBfZm9jdXNUcmFja05vZGUodHJhY2tOb2RlKQotICAgIHsKLSAgICAg
ICAgaWYgKCF0cmFja05vZGUgfHwgdHJhY2tOb2RlID09PSB0aGlzLl9mb2N1c2VkVHJhY2tOb2Rl
KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRyYWNrTm9kZS5lbGVtZW50LmZvY3Vz
KCk7Ci0gICAgICAgIHRoaXMuX2ZvY3VzZWRUcmFja05vZGUgPSB0cmFja05vZGU7Ci0gICAgfQot
Ci0gICAgX2ZvY3VzUHJldmlvdXNUcmFja05vZGUoKQotICAgIHsKLSAgICAgICAgY29uc3QgcHJl
dmlvdXNJbmRleCA9IHRoaXMuX2ZvY3VzZWRUcmFja05vZGUgPyB0aGlzLl90cmFja05vZGVzLmlu
ZGV4T2YodGhpcy5fZm9jdXNlZFRyYWNrTm9kZSkgLSAxIDogdGhpcy5fdHJhY2tOb2Rlcy5sZW5n
dGggLSAxOwotICAgICAgICB0aGlzLl9mb2N1c1RyYWNrTm9kZSh0aGlzLl90cmFja05vZGVzW3By
ZXZpb3VzSW5kZXhdKTsKLSAgICB9Ci0KLSAgICBfZm9jdXNOZXh0VHJhY2tOb2RlKCkKLSAgICB7
Ci0gICAgICAgIHRoaXMuX2ZvY3VzVHJhY2tOb2RlKHRoaXMuX3RyYWNrTm9kZXNbdGhpcy5fdHJh
Y2tOb2Rlcy5pbmRleE9mKHRoaXMuX2ZvY3VzZWRUcmFja05vZGUpICsgMV0pOwotICAgIH0KLQot
ICAgIF9mb2N1c0ZpcnN0VHJhY2tOb2RlKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2ZvY3VzVHJh
Y2tOb2RlKHRoaXMuX3RyYWNrTm9kZXNbMF0pOwotICAgIH0KLQotICAgIF9mb2N1c0xhc3RUcmFj
a05vZGUoKQotICAgIHsKLSAgICAgICAgdGhpcy5fZm9jdXNUcmFja05vZGUodGhpcy5fdHJhY2tO
b2Rlc1t0aGlzLl90cmFja05vZGVzLmxlbmd0aCAtIDFdKTsKLSAgICB9Ci0KLX0KLQotY2xhc3Mg
VHJhY2tOb2RlIGV4dGVuZHMgTGF5b3V0Tm9kZQotewotCi0gICAgY29uc3RydWN0b3IoaW5kZXgs
IHNlY3Rpb25JbmRleCwgdGl0bGUsIHNlbGVjdGVkLCBwYW5lbCkKLSAgICB7Ci0gICAgICAgIHN1
cGVyKGA8bGkgdGFiaW5kZXg9IjAiPiR7dGl0bGV9PC9saT5gKTsKLQotICAgICAgICB0aGlzLmlu
ZGV4ID0gaW5kZXg7Ci0gICAgICAgIHRoaXMuc2VjdGlvbkluZGV4ID0gc2VjdGlvbkluZGV4Owot
ICAgICAgICB0aGlzLl9wYW5lbCA9IHBhbmVsOwotICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IHNl
bGVjdGVkOwotCi0gICAgICAgIGlmIChzZWxlY3RlZCkKLSAgICAgICAgICAgIHRoaXMuZWxlbWVu
dC5jbGFzc0xpc3QuYWRkKCJzZWxlY3RlZCIpOwotCi0gICAgICAgIHRoaXMuZWxlbWVudC5hZGRF
dmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCB0aGlzKTsKLSAgICAgICAgdGhpcy5lbGVtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLCB0aGlzKTsKLSAgICAgICAgdGhpcy5lbGVtZW50
LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcyk7Ci0gICAgfQotCi0gICAgLy8gUHVibGlj
Ci0KLSAgICBhY3RpdmF0ZSgpCi0gICAgewotICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigiYW5pbWF0aW9uZW5kIiwgdGhpcyk7Ci0gICAgICAgIHRoaXMuZWxlbWVudC5jbGFz
c0xpc3QuYWRkKCJhbmltYXRlZCIpOwotICAgIH0KLQotICAgIC8vIFByb3RlY3RlZAotCi0gICAg
aGFuZGxlRXZlbnQoZXZlbnQpCi0gICAgewotICAgICAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHsK
LSAgICAgICAgY2FzZSAibW91c2Vtb3ZlIjoKLSAgICAgICAgICAgIHRoaXMuX3BhbmVsLm1vdXNl
TW92ZWRPdmVyVHJhY2tOb2RlKHRoaXMpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgIm1vdXNlbGVhdmUiOgotICAgICAgICAgICAgdGhpcy5fcGFuZWwubW91c2VFeGl0ZWRUcmFj
a05vZGUodGhpcyk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAiY2xpY2siOgot
ICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZSgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgImFuaW1hdGlvbmVuZCI6Ci0gICAgICAgICAgICB0aGlzLl9hbmltYXRpb25EaWRFbmQo
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8gUHJpdmF0
ZQotCi0gICAgX2FuaW1hdGlvbkRpZEVuZCgpCi0gICAgewotICAgICAgICB0aGlzLmVsZW1lbnQu
cmVtb3ZlRXZlbnRMaXN0ZW5lcigiYW5pbWF0aW9uZW5kIiwgdGhpcyk7Ci0gICAgICAgIHRoaXMu
X3BhbmVsLnRyYWNrTm9kZVNlbGVjdGlvbkFuaW1hdGlvbkRpZEVuZCh0aGlzKTsKLSAgICB9Ci0K
LX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL2ltYWdlcy9tYWNPUy9PdmVyZmxvdy5zdmcgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21v
ZGVybi1tZWRpYS1jb250cm9scy9pbWFnZXMvbWFjT1MvT3ZlcmZsb3cuc3ZnCmluZGV4IGVjZjFi
MjQ4YzU4ZGNmYjk4ZGNjNTc2YWJiM2E2NzJlODY2YmFkZDYuLmY4MWRjN2ZlNWJjMDQ2ZjQ3YWMz
OTE0NTMyNzg4MDgwZGIwYmJiMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL2ltYWdlcy9tYWNPUy9PdmVyZmxvdy5zdmcKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvaW1hZ2VzL21hY09TL092
ZXJmbG93LnN2ZwpAQCAtMSw0ICsxLDQgQEAKIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9
IlVURi04Ij8+CiA8c3ZnIHdpZHRoPSIxNnB4IiBoZWlnaHQ9IjEzcHgiIHZpZXdCb3g9IjAgMCAx
NiAxMyIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgot
ICAgIDxwYXRoIGQ9Ik0zLjQ2NTQyMjgsNi41MDAxMDMyMyBDMy40NjU0MjI4LDUuNTY3NjQ3MzEg
Mi43MDkzNjI1OCw0LjgyIDEuNzYwMTE1MjcsNC44MiBDMC44MzYwNTUwNTQsNC44MiAwLjA4LDUu
NTY3NjQ3MzEgMC4wOCw2LjUwMDEwMzIzIEMwLjA4LDcuNDMyNTU5MTQgMC44MzYwNTUwNTQsOC4x
ODAyMDY0NSAxLjc2MDExNTI3LDguMTgwMjA2NDUgQzIuNzA5MzYyNTgsOC4xODAyMDY0NSAzLjQ2
NTQyMjgsNy40MzI1NTkxNCAzLjQ2NTQyMjgsNi41MDAxMDMyMyBaIE05LjY4MTgxODQ5LDYuNTAw
MTAzMjMgQzkuNjgxODE4NDksNS41Njc2NDczMSA4LjkzNDE3MTE4LDQuODIgOC4wMDE3MTUyNyw0
LjgyIEM3LjA3NzY1NTA1LDQuODIgNi4zMzAwMDc3NCw1LjU2NzY0NzMxIDYuMzMwMDA3NzQsNi41
MDAxMDMyMyBDNi4zMzAwMDc3NCw3LjQzMjU1OTE0IDcuMDc3NjU1MDUsOC4xODAyMDY0NSA4LjAw
MTcxNTI3LDguMTgwMjA2NDUgQzguOTM0MTcxMTgsOC4xODAyMDY0NSA5LjY4MTgxODQ5LDcuNDMy
NTU5MTQgOS42ODE4MTg0OSw2LjUwMDEwMzIzIFogTTE1LjkyMzQwMTMsNi41MDAxMDMyMyBDMTUu
OTIzNDAxMyw1LjU2NzY0NzMxIDE1LjE3NTc3MTIsNC44MiAxNC4yNDMzMTUzLDQuODIgQzEzLjI5
NDA1MDgsNC44MiAxMi41NDY0MDM0LDUuNTY3NjQ3MzEgMTIuNTQ2NDAzNCw2LjUwMDEwMzIzIEMx
Mi41NDY0MDM0LDcuNDMyNTU5MTQgMTMuMjk0MDUwOCw4LjE4MDIwNjQ1IDE0LjI0MzMxNTMsOC4x
ODAyMDY0NSBDMTUuMTc1NzcxMiw4LjE4MDIwNjQ1IDE1LjkyMzQwMTMsNy40MzI1NTkxNCAxNS45
MjM0MDEzLDYuNTAwMTAzMjMgWiIvPgorICAgIDxwYXRoIGQ9Ik04LjM2MDI4MDIzLDEyLjkxMDc4
MjkgQzguNTUyMTgxNCwxMi45MTA3ODI5IDguNzE0NTYwNDcsMTIuODM2OTcxNiA4Ljg0MDA0MDcs
MTIuNzExNDk1OSBMMTQuNjg1ODUzNSw2Ljk5ODYwODE0IEMxNC44MjU5ODE0LDYuODU4MzU5MyAx
NC45MDcxNTU4LDYuNjg4NjAzNDkgMTQuOTA3MTU1OCw2LjUwNDA3OTA3IEMxNC45MDcxNTU4LDYu
MzEyMTc3OTEgMTQuODI1OTgxNCw2LjEyNzY1MzQ5IDE0LjY4NTg1MzUsNi4wMDk1NSBMOC44NDAw
NDA3LDAuMjg5Mjc3OTA3IEM4LjcwNzE4MzcyLDAuMTYzNzk3Njc0IDguNTUyMTgxNCwwLjA5IDgu
MzYwMjgwMjMsMC4wOSBDNy45NzY0NjI3OSwwLjA5IDcuNjgxMjI2NzQsMC4zODUyMzYwNDcgNy42
ODEyMjY3NCwwLjc2OTAzODM3MiBDNy42ODEyMjY3NCwwLjk0NjE4NjA0NyA3Ljc2MjQxNjI4LDEu
MTIzMzMzNzIgNy44ODA1MDQ2NSwxLjI0ODgxMzk1IEwxMy4yNTM4NzMzLDYuNTA0MDc5MDcgTDcu
ODgwNTA0NjUsMTEuNzU5MzQ3MSBDNy43NjI0MTYyOCwxMS44ODQ4MjQgNy42ODEyMjY3NCwxMi4w
NTQ1ODYzIDcuNjgxMjI2NzQsMTIuMjM5MTEyMiBDNy42ODEyMjY3NCwxMi42MjI5MjM2IDcuOTc2
NDYyNzksMTIuOTEwNzgyOSA4LjM2MDI4MDIzLDEyLjkxMDc4MjkgWiBNMS43NjE2NjE2MywxMi45
MTA3ODI5IEMxLjk1MzU3NzkxLDEyLjkxMDc4MjkgMi4xMTU5NTY5OCwxMi44MzY5NzE2IDIuMjQ4
ODEzOTUsMTIuNzExNDk1OSBMOC4wOTQ1NjYyOCw2Ljk5ODYwODE0IEM4LjIzNDgsNi44NTgzNTkz
IDguMzA4NjEyNzksNi42ODg2MDM0OSA4LjMwODYxMjc5LDYuNTA0MDc5MDcgQzguMzA4NjEyNzks
Ni4zMTIxNzc5MSA4LjIzNDgsNi4xMjc2NTM0OSA4LjA5NDU2NjI4LDYuMDA5NTUgTDIuMjQxNDM3
MjEsMC4yODkyNzc5MDcgQzIuMTE1OTU2OTgsMC4xNjM3OTc2NzQgMS45NTM1Nzc5MSwwLjA5IDEu
NzYxNjYxNjMsMC4wOSBDMS4zNzc4NTkzLDAuMDkgMS4wOSwwLjM4NTIzNjA0NyAxLjA5LDAuNzY5
MDM4MzcyIEMxLjA5LDAuOTQ2MTg2MDQ3IDEuMTYzODEyNzksMS4xMjMzMzM3MiAxLjI4MTkwMTE2
LDEuMjQ4ODEzOTUgTDYuNjU1MjY5NzcsNi41MDQwNzkwNyBMMS4yODE5MDExNiwxMS43NTkzNDcx
IEMxLjE2MzgxMjc5LDExLjg4NDgyNCAxLjA5LDEyLjA1NDU4NjMgMS4wOSwxMi4yMzkxMTIyIEMx
LjA5LDEyLjYyMjkyMzYgMS4zNzc4NTkzLDEyLjkxMDc4MjkgMS43NjE2NjE2MywxMi45MTA3ODI5
IFoiLz4KIDwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvanMtZmlsZXMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1t
ZWRpYS1jb250cm9scy9qcy1maWxlcwppbmRleCBkMWM5ZTkxYjc0MTVmY2NkN2Q2ZmZkOTgyYjgw
YTRiMmNmN2JkOWE0Li42YTc4MzBhYTA0NTgzMzAyODVhZWIzY2EwNzdjMzk5ZWFlOWExYmYyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9q
cy1maWxlcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9s
cy9qcy1maWxlcwpAQCAtMjYsNyArMjYsNiBAQCBjb250cm9scy9vdmVyZmxvdy1idXR0b24uanMK
IGNvbnRyb2xzL2J1dHRvbnMtY29udGFpbmVyLmpzCiBjb250cm9scy9zdGF0dXMtbGFiZWwuanMK
IGNvbnRyb2xzL2NvbnRyb2xzLWJhci5qcwotY29udHJvbHMvdHJhY2tzLXBhbmVsLmpzCiBjb250
cm9scy9hdXRvLWhpZGUtY29udHJvbGxlci5qcwogY29udHJvbHMvbWVkaWEtY29udHJvbHMuanMK
IGNvbnRyb2xzL2JhY2tncm91bmQtY2xpY2stZGVsZWdhdGUtbm90aWZpZXIuanMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhL21l
ZGlhLWNvbnRyb2xsZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1j
b250cm9scy9tZWRpYS9tZWRpYS1jb250cm9sbGVyLmpzCmluZGV4IGMzZjJmMzQyZDY1Y2JlYjlj
ODEzMTRmM2Q0N2IxM2QyYjYzOGRiZDkuLmZmNmFkZmQ4YjNmZjQxMjhjYzBjZjk2ZWZjYzZjZGYy
MDFmMWM1ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL21lZGlhL21lZGlhLWNvbnRyb2xsZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEvbWVkaWEtY29udHJvbGxlci5qcwpA
QCAtMTMyLDE0ICsxMzIsMTQgQEAgY2xhc3MgTWVkaWFDb250cm9sbGVyCiAgICAgICAgIHJldHVy
biAhIXRoaXMuaG9zdD8uc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudTsKICAgICB9CiAKLSAg
ICBzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KGJ1dHRvbikKKyAgICBzaG93TWVkaWFDb250
cm9sc0NvbnRleHRNZW51KGJ1dHRvbiwgb3B0aW9ucyA9IHt9KQogICAgIHsKICAgICAgICAgaWYg
KCF0aGlzLmNhblNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICAgICAgbGV0IGF1dG9IaWRlQ29udHJvbGxlciA9IHRoaXMuY29udHJv
bHMuYXV0b0hpZGVDb250cm9sbGVyOwogCi0gICAgICAgIGxldCB3aWxsU2hvd0NvbnRleHRNZW51
ID0gdGhpcy5ob3N0LnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoYnV0dG9uLmVsZW1lbnQs
IGJ1dHRvbi5jb250ZXh0TWVudU9wdGlvbnMsICgpID0+IHsKKyAgICAgICAgbGV0IHdpbGxTaG93
Q29udGV4dE1lbnUgPSB0aGlzLmhvc3Quc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShidXR0
b24uZWxlbWVudCwgey4uLmJ1dHRvbi5jb250ZXh0TWVudU9wdGlvbnMsIC4uLm9wdGlvbnN9LCAo
KSA9PiB7CiAgICAgICAgICAgICBidXR0b24ub24gPSBmYWxzZTsKICAgICAgICAgICAgIGF1dG9I
aWRlQ29udHJvbGxlci5oYXNTZWNvbmRhcnlVSUF0dGFjaGVkID0gZmFsc2U7CiAgICAgICAgIH0p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvbWVkaWEvdHJhY2tzLXN1cHBvcnQuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVy
bi1tZWRpYS1jb250cm9scy9tZWRpYS90cmFja3Mtc3VwcG9ydC5qcwppbmRleCA2N2ZjOWM2ZjIw
ZjI5N2FjZWFlNzFlYTMwYTZkZWZmOTAyNDNlZTkxLi5lNzdmYjJkYTM2NDFjYjRlYWE2ZTY0NDBh
M2QwOTE5YmNjMjFiY2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVy
bi1tZWRpYS1jb250cm9scy9tZWRpYS90cmFja3Mtc3VwcG9ydC5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS90cmFja3Mtc3VwcG9ydC5q
cwpAQCAtMjYsMTcgKzI2LDYgQEAKIGNsYXNzIFRyYWNrc1N1cHBvcnQgZXh0ZW5kcyBNZWRpYUNv
bnRyb2xsZXJTdXBwb3J0CiB7CiAKLSAgICBjb25zdHJ1Y3RvcihtZWRpYUNvbnRyb2xsZXIpCi0g
ICAgewotICAgICAgICBzdXBlcihtZWRpYUNvbnRyb2xsZXIpOwotCi0gICAgICAgIGlmICghdGhp
cy5jb250cm9sKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMubWVkaWFDb250
cm9sbGVyLmNvbnRyb2xzLnRyYWNrc1BhbmVsLmRhdGFTb3VyY2UgPSB0aGlzOwotICAgICAgICB0
aGlzLm1lZGlhQ29udHJvbGxlci5jb250cm9scy50cmFja3NQYW5lbC51aURlbGVnYXRlID0gdGhp
czsKLSAgICB9Ci0KICAgICAvLyBQcm90ZWN0ZWQKIAogICAgIGdldCBjb250cm9sKCkKQEAgLTU2
LDg1ICs0NSwxNCBAQCBjbGFzcyBUcmFja3NTdXBwb3J0IGV4dGVuZHMgTWVkaWFDb250cm9sbGVy
U3VwcG9ydAogCiAgICAgYnV0dG9uV2FzUHJlc3NlZChjb250cm9sKQogICAgIHsKLSAgICAgICAg
aWYgKHRoaXMubWVkaWFDb250cm9sbGVyLnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoY29u
dHJvbCkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKHRoaXMubWVkaWFDb250
cm9sbGVyLmxheW91dFRyYWl0cyAmIExheW91dFRyYWl0cy5tYWNPUykKLSAgICAgICAgICAgIHRo
aXMubWVkaWFDb250cm9sbGVyLmNvbnRyb2xzLnNob3dUcmFja3NQYW5lbCgpOwotICAgIH0KLQot
ICAgIHRyYWNrc1BhbmVsTnVtYmVyT2ZTZWN0aW9ucygpCi0gICAgewotICAgICAgICBsZXQgbnVt
YmVyT2ZTZWN0aW9ucyA9IDA7Ci0gICAgICAgIGlmICh0aGlzLl9jYW5QaWNrQXVkaW9UcmFja3Mo
KSkKLSAgICAgICAgICAgIG51bWJlck9mU2VjdGlvbnMrKzsKLSAgICAgICAgaWYgKHRoaXMuX2Nh
blBpY2tUZXh0VHJhY2tzKCkpCi0gICAgICAgICAgICBudW1iZXJPZlNlY3Rpb25zKys7Ci0gICAg
ICAgIHJldHVybiBudW1iZXJPZlNlY3Rpb25zOwotICAgIH0KLQotICAgIHRyYWNrc1BhbmVsVGl0
bGVGb3JTZWN0aW9uKHNlY3Rpb25JbmRleCkKLSAgICB7Ci0gICAgICAgIGlmIChzZWN0aW9uSW5k
ZXggPT0gMCAmJiB0aGlzLl9jYW5QaWNrQXVkaW9UcmFja3MoKSkKLSAgICAgICAgICAgIHJldHVy
biBVSVN0cmluZygiQXVkaW8iKTsKLSAgICAgICAgcmV0dXJuIFVJU3RyaW5nKCJTdWJ0aXRsZXMi
KTsKLSAgICB9Ci0KLSAgICB0cmFja3NQYW5lbE51bWJlck9mVHJhY2tzSW5TZWN0aW9uKHNlY3Rp
b25JbmRleCkKLSAgICB7Ci0gICAgICAgIGlmIChzZWN0aW9uSW5kZXggPT0gMCAmJiB0aGlzLl9j
YW5QaWNrQXVkaW9UcmFja3MoKSkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLl9hdWRpb1RyYWNr
cygpLmxlbmd0aDsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3RleHRUcmFja3MoKS5sZW5ndGg7Ci0g
ICAgfQotCi0gICAgdHJhY2tzUGFuZWxUaXRsZUZvclRyYWNrSW5TZWN0aW9uKHRyYWNrSW5kZXgs
IHNlY3Rpb25JbmRleCkKLSAgICB7Ci0gICAgICAgIGxldCB0cmFjazsKLSAgICAgICAgaWYgKHNl
Y3Rpb25JbmRleCA9PSAwICYmIHRoaXMuX2NhblBpY2tBdWRpb1RyYWNrcygpKQotICAgICAgICAg
ICAgdHJhY2sgPSB0aGlzLl9hdWRpb1RyYWNrcygpW3RyYWNrSW5kZXhdOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICB0cmFjayA9IHRoaXMuX3RleHRUcmFja3MoKVt0cmFja0luZGV4XTsKLQot
ICAgICAgICBpZiAodGhpcy5tZWRpYUNvbnRyb2xsZXIuaG9zdCkKLSAgICAgICAgICAgIHJldHVy
biB0aGlzLm1lZGlhQ29udHJvbGxlci5ob3N0LmRpc3BsYXlOYW1lRm9yVHJhY2sodHJhY2spOwot
ICAgICAgICByZXR1cm4gdHJhY2subGFiZWw7Ci0gICAgfQotCi0gICAgdHJhY2tzUGFuZWxJc1Ry
YWNrSW5TZWN0aW9uU2VsZWN0ZWQodHJhY2tJbmRleCwgc2VjdGlvbkluZGV4KQotICAgIHsKLSAg
ICAgICAgaWYgKHNlY3Rpb25JbmRleCA9PSAwICYmIHRoaXMuX2NhblBpY2tBdWRpb1RyYWNrcygp
KQotICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2F1ZGlvVHJhY2tzKClbdHJhY2tJbmRleF0uZW5h
YmxlZDsKLQotICAgICAgICBjb25zdCB0ZXh0VHJhY2tzID0gdGhpcy5fdGV4dFRyYWNrcygpOwot
ICAgICAgICBjb25zdCB0cmFja0l0ZW0gPSB0ZXh0VHJhY2tzW3RyYWNrSW5kZXhdOwotICAgICAg
ICBjb25zdCBob3N0ID0gdGhpcy5tZWRpYUNvbnRyb2xsZXIuaG9zdDsKLSAgICAgICAgY29uc3Qg
dHJhY2tJc1Nob3dpbmcgPSB0cmFjayA9PiB0cmFjay5tb2RlID09PSAic2hvd2luZyI7Ci0gICAg
ICAgIGNvbnN0IGFsbFRyYWNrc0Rpc2FibGVkID0gIXRleHRUcmFja3Muc29tZSh0cmFja0lzU2hv
d2luZyk7Ci0gICAgICAgIGNvbnN0IHVzZXNBdXRvbWF0aWNUcmFjayA9IGhvc3QgPyAoaG9zdC5j
YXB0aW9uRGlzcGxheU1vZGUgPT09ICJhdXRvbWF0aWMiICYmIGFsbFRyYWNrc0Rpc2FibGVkKSA6
IGZhbHNlOwotCi0gICAgICAgIGlmIChhbGxUcmFja3NEaXNhYmxlZCAmJiBob3N0ICYmIHRyYWNr
SXRlbSA9PT0gaG9zdC5jYXB0aW9uTWVudU9mZkl0ZW0gJiYgKGhvc3QuY2FwdGlvbkRpc3BsYXlN
b2RlID09PSAiZm9yY2VkLW9ubHkiIHx8IGhvc3QuY2FwdGlvbkRpc3BsYXlNb2RlID09PSAibWFu
dWFsIikpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKGhvc3QgJiYgdHJh
Y2tJdGVtID09PSBob3N0LmNhcHRpb25NZW51QXV0b21hdGljSXRlbSAmJiB1c2VzQXV0b21hdGlj
VHJhY2spCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgcmV0dXJuICF1c2VzQXV0
b21hdGljVHJhY2sgJiYgdHJhY2tJc1Nob3dpbmcodHJhY2tJdGVtKTsKLSAgICB9Ci0KLSAgICB0
cmFja3NQYW5lbFNlbGVjdGlvbkRpZENoYW5nZSh0cmFja0luZGV4LCBzZWN0aW9uSW5kZXgpCi0g
ICAgewotICAgICAgICBpZiAoc2VjdGlvbkluZGV4ID09IDAgJiYgdGhpcy5fY2FuUGlja0F1ZGlv
VHJhY2tzKCkpCi0gICAgICAgICAgICB0aGlzLl9hdWRpb1RyYWNrcygpLmZvckVhY2goKGF1ZGlv
VHJhY2ssIGluZGV4KSA9PiBhdWRpb1RyYWNrLmVuYWJsZWQgPSBpbmRleCA9PT0gdHJhY2tJbmRl
eCk7Ci0gICAgICAgIGVsc2UgaWYgKHRoaXMubWVkaWFDb250cm9sbGVyLmhvc3QpIHsKLSAgICAg
ICAgICAgIHRoaXMuX3RleHRUcmFja3MoKS5mb3JFYWNoKHRleHRUcmFjayA9PiB0ZXh0VHJhY2su
bW9kZSA9ICJkaXNhYmxlZCIpOwotICAgICAgICAgICAgdGhpcy5tZWRpYUNvbnRyb2xsZXIuaG9z
dC5zZXRTZWxlY3RlZFRleHRUcmFjayh0aGlzLl90ZXh0VHJhY2tzKClbdHJhY2tJbmRleF0pOwot
ICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHRoaXMuX3RleHRUcmFja3MoKS5mb3JFYWNoKCh0
ZXh0VHJhY2ssIGluZGV4KSA9PiB0ZXh0VHJhY2subW9kZSA9IGluZGV4ID09PSB0cmFja0luZGV4
ID8gInNob3dpbmciIDogImRpc2FibGVkIik7Ci0KLSAgICAgICAgdGhpcy5tZWRpYUNvbnRyb2xs
ZXIuY29udHJvbHMuaGlkZVRyYWNrc1BhbmVsKCk7CisgICAgICAgIHRoaXMubWVkaWFDb250cm9s
bGVyLnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoY29udHJvbCwgeworICAgICAgICAgICAg
cHJvbW90ZVN1Yk1lbnVzOiAhISh0aGlzLm1lZGlhQ29udHJvbGxlci5sYXlvdXRUcmFpdHMgJiBM
YXlvdXRUcmFpdHMubWFjT1MpLAorICAgICAgICB9KTsKICAgICB9CiAKICAgICBzeW5jQ29udHJv
bCgpCiAgICAgewotICAgICAgICB0aGlzLmNvbnRyb2wuZW5hYmxlZCA9ICh0aGlzLm1lZGlhQ29u
dHJvbGxlci5sYXlvdXRUcmFpdHMgJiBMYXlvdXRUcmFpdHMubWFjT1MgfHwgdGhpcy5tZWRpYUNv
bnRyb2xsZXIuY2FuU2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudSkgJiYgKHRoaXMuX2NhblBp
Y2tBdWRpb1RyYWNrcygpIHx8IHRoaXMuX2NhblBpY2tUZXh0VHJhY2tzKCkpOworICAgICAgICB0
aGlzLmNvbnRyb2wuZW5hYmxlZCA9IHRoaXMubWVkaWFDb250cm9sbGVyLmNhblNob3dNZWRpYUNv
bnRyb2xzQ29udGV4dE1lbnUgJiYgKHRoaXMuX2NhblBpY2tBdWRpb1RyYWNrcygpIHx8IHRoaXMu
X2NhblBpY2tUZXh0VHJhY2tzKCkpOwogICAgIH0KIAogICAgIC8vIFByaXZhdGUKQEAgLTE2Myw3
ICs4MSw3IEBAIGNsYXNzIFRyYWNrc1N1cHBvcnQgZXh0ZW5kcyBNZWRpYUNvbnRyb2xsZXJTdXBw
b3J0CiAKICAgICBfc29ydGVkVHJhY2tMaXN0KHRyYWNrcykKICAgICB7Ci0gICAgICAgIHJldHVy
biBBcnJheS5mcm9tKHRoaXMubWVkaWFDb250cm9sbGVyLmhvc3QgPyB0aGlzLm1lZGlhQ29udHJv
bGxlci5ob3N0LnNvcnRlZFRyYWNrTGlzdEZvck1lbnUodHJhY2tzKSA6IHRyYWNrcyk7CisgICAg
ICAgIHJldHVybiB0aGlzLm1lZGlhQ29udHJvbGxlci5ob3N0ID8gdGhpcy5tZWRpYUNvbnRyb2xs
ZXIuaG9zdC5zb3J0ZWRUcmFja0xpc3RGb3JNZW51KHRyYWNrcykgOiBBcnJheS5mcm9tKHRyYWNr
cyk7CiAgICAgfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggYTBjMDU0ZGM0Mzk4OTc1N2NiOTM0ZGIyMmYyMTc4ZmYwYjEx
OGI2MC4uZTc5Mjk2MWU5YTg0Yjg1NTEzYzAwOTZhZmRlMTQwYjM4N2NlNGY3NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTAw
MzIsOCArMTAwMzIsNiBAQAogCQk3MTNGMUQ1QzIzREYyNTYwMDAzRjVFRkEgLyogSlNHZXRBbmlt
YXRpb25zT3B0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0dldEFuaW1hdGlvbnNPcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzE0MTMxNDcxREM5RDZBRjAwMzM2MTA3IC8qIGZ1bGxzY3JlZW4tc3VwcG9ydC5qcyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9ICJmdWxsc2NyZWVuLXN1cHBvcnQuanMi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MTQxMzE0ODFEQzlENkVGMDAzMzYxMDcg
LyoganMtZmlsZXMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gImpzLWZpbGVzIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNzE0NkRGOEIxREVGQzJFRDAwNDZGOThCIC8qIHRyYWNrcy1w
YW5lbC5jc3MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LmNzczsgcGF0aCA9ICJ0cmFja3MtcGFuZWwuY3NzIjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNzE0NkRGOEMxREVGQzJFRDAwNDZGOThCIC8q
IHRyYWNrcy1wYW5lbC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9
ICJ0cmFja3MtcGFuZWwuanMiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MTQ5NURE
ODIwMkIwNkRDMDBBREZEMzQgLyogSlNFZmZlY3RUaW1pbmcuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNFZmZlY3RUaW1pbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3MTQ5NUREQTIwMkIwNkRFMDBBREZEMzQgLyogSlNFZmZlY3RUaW1pbmcu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFZmZlY3RUaW1pbmcuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzE0QzdDNjAxRkRBRDI3OTAwRjJCRUUxIC8qIEFu
aW1hdGlvblBsYXliYWNrRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQW5pbWF0aW9uUGxheWJhY2tFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yMjY4MCw4ICsyMjY3OCw2IEBACiAJCQkJNzE2RkEwRkMxREIyNjU5MTAwNzMyM0ND
IC8qIHRpbWUtbGFiZWwuY3NzICovLAogCQkJCTcxNkZBMEZEMURCMjY1OTEwMDczMjNDQyAvKiB0
aW1lLWxhYmVsLmpzICovLAogCQkJCTcxNkZBMEZFMURCMjY1OTEwMDczMjNDQyAvKiB0cmFja3Mt
YnV0dG9uLmpzICovLAotCQkJCTcxNDZERjhCMURFRkMyRUQwMDQ2Rjk4QiAvKiB0cmFja3MtcGFu
ZWwuY3NzICovLAotCQkJCTcxNDZERjhDMURFRkMyRUQwMDQ2Rjk4QiAvKiB0cmFja3MtcGFuZWwu
anMgKi8sCiAJCQkJOTU1MTk1OEUyNUZBOUUzMDAwRjU4Q0YwIC8qIHdhdGNob3MtYWN0aXZpdHkt
aW5kaWNhdG9yLmNzcyAqLywKIAkJCQk5NTUxOTU4RjI1RkE5RTMxMDBGNThDRjAgLyogd2F0Y2hv
cy1hY3Rpdml0eS1pbmRpY2F0b3IuanMgKi8sCiAJCQkJOTU1MTk1OEQyNUZBOUUzMDAwRjU4Q0Yw
IC8qIHdhdGNob3MtbWVkaWEtY29udHJvbHMuY3NzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKaW5kZXggODFmODAzMDU2Mjc4NjBjZmNhNTg2MTQ5NDJmZGM0MDJmOTFlODk0ZC4uNTRi
NzE0NWY2YzY1MzNhM2ZjNjAxZmYzNTM3ZTI0NDViZGIzYzdlYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCkBAIC01NTksOSArNTU5LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKEVsZW1lbnQmKSB7IH0KICNlbmRpZgogCi0jaWYgRU5B
QkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjaWYgRU5BQkxFKE1FRElBX0NPTlRS
T0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogICAgIHZpcnR1YWwgdm9p
ZCBzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KEZsb2F0UmVjdCYmLCBWZWN0b3I8TWVkaWFD
b250cm9sc0NvbnRleHRNZW51SXRlbT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNZWRpYUNv
bnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxl
dGlvbkhhbmRsZXIoTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6aW52YWxpZElEKTsgfQot
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVO
VSkKIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfkNocm9tZUNsaWVudCgpID0gZGVmYXVsdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250ZXh0LmNwcAppbmRleCBiYzgxZGMw
ZmI5YWRjNWQyYWE5Yzc4ZTI0Y2YxYjAxOTJkYzgxZDBkLi5hYzQ0NjMxZWFjZWRlZDUxNjc2MGQ1
YWQyMjBhMzJlNzNkYjc4NjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRl
eHRNZW51Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNv
bnRleHQuY3BwCkBAIC0zNSw4ICszNSw5IEBAIENvbnRleHRNZW51Q29udGV4dDo6Q29udGV4dE1l
bnVDb250ZXh0KCkKIHsKIH0KIAotQ29udGV4dE1lbnVDb250ZXh0OjpDb250ZXh0TWVudUNvbnRl
eHQoY29uc3QgSGl0VGVzdFJlc3VsdCYgaGl0VGVzdFJlc3VsdCkKLSAgICA6IG1faGl0VGVzdFJl
c3VsdChoaXRUZXN0UmVzdWx0KQorQ29udGV4dE1lbnVDb250ZXh0OjpDb250ZXh0TWVudUNvbnRl
eHQoVHlwZSB0eXBlLCBjb25zdCBIaXRUZXN0UmVzdWx0JiBoaXRUZXN0UmVzdWx0KQorICAgIDog
bV90eXBlKHR5cGUpCisgICAgLCBtX2hpdFRlc3RSZXN1bHQoaGl0VGVzdFJlc3VsdCkKICNpZiBF
TkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICAsIG1fY29udHJvbGxlZEltYWdlKG51bGxwdHIp
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250
ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udGV4dC5oCmluZGV4IGU1
ZjAwNTBiMTc1YmYzMzE1MzQwYjA0YzBiZGI0YWFlNGY3NGY0YWIuLjYxMjZjNTFhZDUzNWM3MGE2
MTMxOGZiOTVjOWRmZTM3MGM5MTQ4ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q29udGV4dE1lbnVDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVu
dUNvbnRleHQuaApAQCAtMzUsOCArMzUsMjAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBDb250ZXh0TWVudUNvbnRleHQgewogcHVibGljOgorICAgIGVudW0gY2xhc3MgVHlwZSA6IHVp
bnQ4X3QgeworICAgICAgICBDb250ZXh0TWVudSwKKyNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9M
UykKKyAgICAgICAgU2VydmljZXNNZW51LAorI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX0NPTlRS
T0xTKQorI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorICAgICAgICBN
ZWRpYUNvbnRyb2xzLAorI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01F
TlVTKQorICAgIH07CisKICAgICBDb250ZXh0TWVudUNvbnRleHQoKTsKLSAgICBDb250ZXh0TWVu
dUNvbnRleHQoY29uc3QgSGl0VGVzdFJlc3VsdCYpOworICAgIENvbnRleHRNZW51Q29udGV4dChU
eXBlLCBjb25zdCBIaXRUZXN0UmVzdWx0Jik7CisKKyAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJl
dHVybiBtX3R5cGU7IH0KIAogICAgIGNvbnN0IEhpdFRlc3RSZXN1bHQmIGhpdFRlc3RSZXN1bHQo
KSBjb25zdCB7IHJldHVybiBtX2hpdFRlc3RSZXN1bHQ7IH0KIApAQCAtNTIsNiArNjQsNyBAQCBw
dWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKKyAgICBUeXBlIG1fdHlwZSB7IFR5cGU6OkNvbnRl
eHRNZW51IH07CiAgICAgSGl0VGVzdFJlc3VsdCBtX2hpdFRlc3RSZXN1bHQ7CiAgICAgU3RyaW5n
IG1fc2VsZWN0ZWRUZXh0OwogICAgIEludFJlY3QgbV9zZWxlY3Rpb25Cb3VuZHM7CkBAIC02Myw0
ICs3NiwyMSBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK25hbWVzcGFj
ZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkNvbnRleHRN
ZW51Q29udGV4dDo6VHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAg
ICAgIFdlYkNvcmU6OkNvbnRleHRNZW51Q29udGV4dDo6VHlwZSwKKyAgICAgICAgV2ViQ29yZTo6
Q29udGV4dE1lbnVDb250ZXh0OjpUeXBlOjpDb250ZXh0TWVudQorI2lmIEVOQUJMRShTRVJWSUNF
X0NPTlRST0xTKQorICAgICAgICAsIFdlYkNvcmU6OkNvbnRleHRNZW51Q29udGV4dDo6VHlwZTo6
U2VydmljZXNNZW51CisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCisjaWYgRU5B
QkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisgICAgICAgICwgV2ViQ29yZTo6Q29u
dGV4dE1lbnVDb250ZXh0OjpUeXBlOjpNZWRpYUNvbnRyb2xzCisjZW5kaWYgLy8gRU5BQkxFKE1F
RElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdURgorCiAjZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRfTUVOVVMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKaW5kZXggZDliZDlkOGVkNGQwOWM1NDc5
NDY2OWMwZDljMzcxMjdmODllNDg2MC4uNzgzMTkzMTNmNGNiNmE0ZTFhZWI5OGZjOGRlZDQ4ODUz
NGZhMGY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVy
LmNwcApAQCAtNTAsNyArNTAsNiBAQAogI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5j
bHVkZSAiSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVu
dC5oIgotI2luY2x1ZGUgIkhpdFRlc3RSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3Vs
dC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJMb2NhbGl6
ZWRTdHJpbmdzLmgiCkBAIC0xMDMsNyArMTAyLDggQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xs
ZXI6OmhhbmRsZUNvbnRleHRNZW51RXZlbnQoRXZlbnQmIGV2ZW50KQogCiAgICAgU2V0Rm9yU2Nv
cGU8Ym9vbD4gaXNIYW5kbGluZ0NvbnRleHRNZW51RXZlbnRGb3JTY29wZShtX2lzSGFuZGxpbmdD
b250ZXh0TWVudUV2ZW50LCB0cnVlKTsKIAotICAgIG1fY29udGV4dE1lbnUgPSBtYXliZUNyZWF0
ZUNvbnRleHRNZW51KGV2ZW50KTsKKyAgICBjb25zdGV4cHIgT3B0aW9uU2V0PEhpdFRlc3RSZXF1
ZXN0OjpSZXF1ZXN0VHlwZT4gaGl0VHlwZSB7IEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSwgSGl0
VGVzdFJlcXVlc3Q6OkFjdGl2ZSwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hh
ZG93Q29udGVudCwgSGl0VGVzdFJlcXVlc3Q6OkFsbG93Q2hpbGRGcmFtZUNvbnRlbnQgfTsKKyAg
ICBtX2NvbnRleHRNZW51ID0gbWF5YmVDcmVhdGVDb250ZXh0TWVudShldmVudCwgaGl0VHlwZSwg
Q29udGV4dE1lbnVDb250ZXh0OjpUeXBlOjpDb250ZXh0TWVudSk7CiAgICAgaWYgKCFtX2NvbnRl
eHRNZW51KQogICAgICAgICByZXR1cm47CiAKQEAgLTEyMSw3ICsxMjEsMTMgQEAgdm9pZCBDb250
ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVudShFdmVudCYgZXZlbnQsIENvbnRleHRN
ZW51UHJvdmlkZXImIHAKIHsKICAgICBtX21lbnVQcm92aWRlciA9ICZwcm92aWRlcjsKIAotICAg
IG1fY29udGV4dE1lbnUgPSBtYXliZUNyZWF0ZUNvbnRleHRNZW51KGV2ZW50KTsKKyAgICBhdXRv
IGNvbnRleHRUeXBlID0gcHJvdmlkZXIuY29udGV4dE1lbnVDb250ZXh0VHlwZSgpOworCisgICAg
T3B0aW9uU2V0PEhpdFRlc3RSZXF1ZXN0OjpSZXF1ZXN0VHlwZT4gaGl0VHlwZSB7IEhpdFRlc3RS
ZXF1ZXN0OjpSZWFkT25seSwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSwgSGl0VGVzdFJlcXVlc3Q6
OkFsbG93Q2hpbGRGcmFtZUNvbnRlbnQgfTsKKyAgICBpZiAoY29udGV4dFR5cGUgPT0gQ29udGV4
dE1lbnVDb250ZXh0OjpUeXBlOjpDb250ZXh0TWVudSkKKyAgICAgICAgaGl0VHlwZS5hZGQoSGl0
VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCk7CisKKyAgICBtX2Nv
bnRleHRNZW51ID0gbWF5YmVDcmVhdGVDb250ZXh0TWVudShldmVudCwgV1RGTW92ZShoaXRUeXBl
KSwgY29udGV4dFR5cGUpOwogICAgIGlmICghbV9jb250ZXh0TWVudSkgewogICAgICAgICBjbGVh
ckNvbnRleHRNZW51KCk7CiAgICAgICAgIHJldHVybjsKQEAgLTEzNSw3ICsxNDEsNyBAQCB2b2lk
IENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2ZW50JiBldmVudCwgQ29u
dGV4dE1lbnVQcm92aWRlciYgcAogICAgIHNob3dDb250ZXh0TWVudShldmVudCk7CiB9CiAKLXN0
ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudT4gQ29udGV4dE1lbnVDb250cm9sbGVyOjptYXliZUNy
ZWF0ZUNvbnRleHRNZW51KEV2ZW50JiBldmVudCkKK3N0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVu
dT4gQ29udGV4dE1lbnVDb250cm9sbGVyOjptYXliZUNyZWF0ZUNvbnRleHRNZW51KEV2ZW50JiBl
dmVudCwgT3B0aW9uU2V0PEhpdFRlc3RSZXF1ZXN0OjpSZXF1ZXN0VHlwZT4gaGl0VHlwZSwgQ29u
dGV4dE1lbnVDb250ZXh0OjpUeXBlIGNvbnRleHRUeXBlKQogewogICAgIGlmICghaXM8TW91c2VF
dmVudD4oZXZlbnQpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTE0OCwxOSArMTU0LDE4
IEBAIHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudT4gQ29udGV4dE1lbnVDb250cm9sbGVyOjpt
YXliZUNyZWF0ZUNvbnRleHRNZW51KEV2ZW50CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKLSAgICBjb25zdGV4cHIgT3B0aW9uU2V0PEhpdFRlc3RSZXF1ZXN0OjpS
ZXF1ZXN0VHlwZT4gaGl0VHlwZSB7IEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSwgSGl0VGVzdFJl
cXVlc3Q6OkFjdGl2ZSwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29u
dGVudCwgSGl0VGVzdFJlcXVlc3Q6OkFsbG93Q2hpbGRGcmFtZUNvbnRlbnQgfTsKLSAgICBhdXRv
IHJlc3VsdCA9IGZyYW1lLT5ldmVudEhhbmRsZXIoKS5oaXRUZXN0UmVzdWx0QXRQb2ludChtb3Vz
ZUV2ZW50LmFic29sdXRlTG9jYXRpb24oKSwgaGl0VHlwZSk7CisgICAgYXV0byByZXN1bHQgPSBm
cmFtZS0+ZXZlbnRIYW5kbGVyKCkuaGl0VGVzdFJlc3VsdEF0UG9pbnQobW91c2VFdmVudC5hYnNv
bHV0ZUxvY2F0aW9uKCksIFdURk1vdmUoaGl0VHlwZSkpOwogICAgIGlmICghcmVzdWx0LmlubmVy
Tm9uU2hhcmVkTm9kZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIG1fY29udGV4
dCA9IENvbnRleHRNZW51Q29udGV4dChyZXN1bHQpOworICAgIG1fY29udGV4dCA9IENvbnRleHRN
ZW51Q29udGV4dChjb250ZXh0VHlwZSwgcmVzdWx0KTsKIAogICAgIHJldHVybiBtYWtlVW5pcXVl
PENvbnRleHRNZW51PigpOwogfQogCiB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0Nv
bnRleHRNZW51KEV2ZW50JiBldmVudCkKIHsKLSAgICBpZiAobV9wYWdlLmluc3BlY3RvckNvbnRy
b2xsZXIoKS5lbmFibGVkKCkpCisgICAgaWYgKCghbV9tZW51UHJvdmlkZXIgfHwgbV9tZW51UHJv
dmlkZXItPmNvbnRleHRNZW51Q29udGV4dFR5cGUoKSA9PSBDb250ZXh0TWVudUNvbnRleHQ6OlR5
cGU6OkNvbnRleHRNZW51KSAmJiBtX3BhZ2UuaW5zcGVjdG9yQ29udHJvbGxlcigpLmVuYWJsZWQo
KSkKICAgICAgICAgYWRkSW5zcGVjdEVsZW1lbnRJdGVtKCk7CiAKICAgICBldmVudC5zZXREZWZh
dWx0SGFuZGxlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVu
dUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVy
LmgKaW5kZXggNDA0NzkzNThmZmI3ZTJmZTUyMzViNjg0ODM4MDVkODRjMjkwZDY5MC4uYzBjZDQ1
NTM3ZDRmZTU2Y2Y5ODBhNWEyNmNkYjI4NDBjN2Y0ODhlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5oCkBAIC0yOSwxMiArMjksMTUgQEAKIAogI2luY2x1
ZGUgIkNvbnRleHRNZW51Q29udGV4dC5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51SXRlbS5oIgor
I2luY2x1ZGUgIkhpdFRlc3RSZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvbnRleHRNZW51Q2xpZW50OwogY2xhc3Mg
Q29udGV4dE1lbnVQcm92aWRlcjsKIGNsYXNzIEV2ZW50OworY2xhc3MgSGl0VGVzdFJlc3VsdDsK
IGNsYXNzIFBhZ2U7CiAKIGNsYXNzIENvbnRleHRNZW51Q29udHJvbGxlciB7CkBAIC02Nyw3ICs3
MCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIHN0ZDo6dW5pcXVlX3B0cjxD
b250ZXh0TWVudT4gbWF5YmVDcmVhdGVDb250ZXh0TWVudShFdmVudCYpOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxDb250ZXh0TWVudT4gbWF5YmVDcmVhdGVDb250ZXh0TWVudShFdmVudCYsIE9wdGlv
blNldDxIaXRUZXN0UmVxdWVzdDo6UmVxdWVzdFR5cGU+IGhpdFR5cGUsIENvbnRleHRNZW51Q29u
dGV4dDo6VHlwZSk7CiAgICAgdm9pZCBzaG93Q29udGV4dE1lbnUoRXZlbnQmKTsKICAgICAKICAg
ICB2b2lkIGFwcGVuZEl0ZW0oQ29udGV4dE1lbnVJdGVtJiwgQ29udGV4dE1lbnUqIHBhcmVudE1l
bnUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudVByb3ZpZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51UHJvdmlkZXIuaAppbmRleCBlZmRj
NDc0NmQxYzk4NjEwMjY4ZmViMWU4ZTViMWYyNGNjZDA0MDMxLi4yM2JlZDY4NTk0YWJhMmY0MGIz
NzQ3YTgxMzVkNTNiZTgxNjljYWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnRleHRNZW51UHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51
UHJvdmlkZXIuaApAQCAtMzAsNiArMzAsOSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJM
RShDT05URVhUX01FTlVTKQorCisjaW5jbHVkZSAiQ29udGV4dE1lbnVDb250ZXh0LmgiCiAjaW5j
bHVkZSAiQ29udGV4dE1lbnVJdGVtLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIApA
QCAtNDQsNiArNDcsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBvcHVsYXRlQ29udGV4
dE1lbnUoQ29udGV4dE1lbnUqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNvbnRleHRNZW51SXRl
bVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGNvbnRleHRNZW51Q2xlYXJlZCgpID0gMDsKKyAgICB2aXJ0dWFsIENv
bnRleHRNZW51Q29udGV4dDo6VHlwZSBjb250ZXh0TWVudUNvbnRleHRUeXBlKCkgeyByZXR1cm4g
Q29udGV4dE1lbnVDb250ZXh0OjpUeXBlOjpDb250ZXh0TWVudTsgfTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShDT05URVhUX01FTlVTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaAppbmRl
eCAxYTIxM2YzZWMxMzg0NTc2MzMyYjFiZGM1ODQ3MTE2MGM5MDRmZjUwLi45YWIyZTZhNmRkYjBk
ZGU2MTg2ZTE1YTRmMzY4MzYyNTkyZjU0NTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL01lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL01lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaApAQCAtMjUsNyArMjUsNyBAQAogCiAj
cHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQor
I2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhU
TUVOVSkKIAogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KQEAgLTQwLDcgKzQwLDcgQEAgc3RydWN0IE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0g
ewogICAgIElEIGlkIHsgaW52YWxpZElEIH07CiAgICAgU3RyaW5nIHRpdGxlOwogICAgIFN0cmlu
ZyBpY29uOwotICAgIGJvb2wgaXNDaGVja2VkIHsgZmFsc2UgfTsKKyAgICBib29sIGNoZWNrZWQg
eyBmYWxzZSB9OwogICAgIFZlY3RvcjxNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiBjaGls
ZHJlbjsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXIm
KSBjb25zdDsKQEAgLTUzLDcgKzUzLDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJ
dGVtOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGlkOwog
ICAgIGVuY29kZXIgPDwgdGl0bGU7CiAgICAgZW5jb2RlciA8PCBpY29uOwotICAgIGVuY29kZXIg
PDwgaXNDaGVja2VkOworICAgIGVuY29kZXIgPDwgY2hlY2tlZDsKICAgICBlbmNvZGVyIDw8IGNo
aWxkcmVuOwogfQogCkBAIC02OSwxNCArNjksMTQgQEAgT3B0aW9uYWw8TWVkaWFDb250cm9sc0Nv
bnRleHRNZW51SXRlbT4gTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6ZGVjb2RlKERlY28K
ICAgICBERUNPREUoaWQsIElEKTsKICAgICBERUNPREUodGl0bGUsIFN0cmluZyk7CiAgICAgREVD
T0RFKGljb24sIFN0cmluZyk7Ci0gICAgREVDT0RFKGlzQ2hlY2tlZCwgYm9vbCk7CisgICAgREVD
T0RFKGNoZWNrZWQsIGJvb2wpOwogICAgIERFQ09ERShjaGlsZHJlbiwgVmVjdG9yPE1lZGlhQ29u
dHJvbHNDb250ZXh0TWVudUl0ZW0+KTsKIAogI3VuZGVmIERFQ09ERQogCi0gICAgcmV0dXJuIHt7
IFdURk1vdmUoKmlkKSwgV1RGTW92ZSgqdGl0bGUpLCBXVEZNb3ZlKCppY29uKSwgV1RGTW92ZSgq
aXNDaGVja2VkKSwgV1RGTW92ZSgqY2hpbGRyZW4pIH19OworICAgIHJldHVybiB7eyBXVEZNb3Zl
KCppZCksIFdURk1vdmUoKnRpdGxlKSwgV1RGTW92ZSgqaWNvbiksIFdURk1vdmUoKmNoZWNrZWQp
LCBXVEZNb3ZlKCpjaGlsZHJlbikgfX07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAot
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVO
VSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uY3BwCmluZGV4IDVh
ZTAyNWU5MTgwYzVkZmIyMTk2MmUxN2YxOWU2NzA0ZDVkNmQ0MjUuLjA2OTU2MmQyM2NjOWNjNDli
Njc5OTk3NGVkZGMzZGEzYzZmYjU4YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0NvbnRleHRNZW51SXRlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29u
dGV4dE1lbnVJdGVtLmNwcApAQCAtMzgsMjYgKzM4LDI5IEBAIENvbnRleHRNZW51SXRlbTo6Q29u
dGV4dE1lbnVJdGVtKENvbnRleHRNZW51SXRlbVR5cGUgdHlwZSwgQ29udGV4dE1lbnVBY3Rpb24g
YWN0CiAgICAgLCBtX3RpdGxlKHRpdGxlKQogICAgICwgbV9lbmFibGVkKHRydWUpCiAgICAgLCBt
X2NoZWNrZWQoZmFsc2UpCisgICAgLCBtX2luZGVudGF0aW9uTGV2ZWwoMCkKIHsKICAgICBpZiAo
c3ViTWVudSkKICAgICAgICAgc2V0U3ViTWVudShzdWJNZW51KTsKIH0KIAotQ29udGV4dE1lbnVJ
dGVtOjpDb250ZXh0TWVudUl0ZW0oQ29udGV4dE1lbnVJdGVtVHlwZSB0eXBlLCBDb250ZXh0TWVu
dUFjdGlvbiBhY3Rpb24sIGNvbnN0IFN0cmluZyYgdGl0bGUsIGJvb2wgZW5hYmxlZCwgYm9vbCBj
aGVja2VkKQorQ29udGV4dE1lbnVJdGVtOjpDb250ZXh0TWVudUl0ZW0oQ29udGV4dE1lbnVJdGVt
VHlwZSB0eXBlLCBDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvbnN0IFN0cmluZyYgdGl0bGUs
IGJvb2wgZW5hYmxlZCwgYm9vbCBjaGVja2VkLCB1bnNpZ25lZCBpbmRlbnRhdGlvbkxldmVsKQog
ICAgIDogbV90eXBlKHR5cGUpCiAgICAgLCBtX2FjdGlvbihhY3Rpb24pCiAgICAgLCBtX3RpdGxl
KHRpdGxlKQogICAgICwgbV9lbmFibGVkKGVuYWJsZWQpCiAgICAgLCBtX2NoZWNrZWQoY2hlY2tl
ZCkKKyAgICAsIG1faW5kZW50YXRpb25MZXZlbChpbmRlbnRhdGlvbkxldmVsKQogewogfQogICAg
ICAgICAKLUNvbnRleHRNZW51SXRlbTo6Q29udGV4dE1lbnVJdGVtKENvbnRleHRNZW51QWN0aW9u
IGFjdGlvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgYm9vbCBlbmFibGVkLCBib29sIGNoZWNrZWQs
IGNvbnN0IFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+JiBzdWJNZW51SXRlbXMpCitDb250ZXh0TWVu
dUl0ZW06OkNvbnRleHRNZW51SXRlbShDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvbnN0IFN0
cmluZyYgdGl0bGUsIGJvb2wgZW5hYmxlZCwgYm9vbCBjaGVja2VkLCBjb25zdCBWZWN0b3I8Q29u
dGV4dE1lbnVJdGVtPiYgc3ViTWVudUl0ZW1zLCB1bnNpZ25lZCBpbmRlbnRhdGlvbkxldmVsKQog
ICAgIDogbV90eXBlKFN1Ym1lbnVUeXBlKQogICAgICwgbV9hY3Rpb24oYWN0aW9uKQogICAgICwg
bV90aXRsZSh0aXRsZSkKICAgICAsIG1fZW5hYmxlZChlbmFibGVkKQogICAgICwgbV9jaGVja2Vk
KGNoZWNrZWQpCisgICAgLCBtX2luZGVudGF0aW9uTGV2ZWwoaW5kZW50YXRpb25MZXZlbCkKICAg
ICAsIG1fc3ViTWVudUl0ZW1zKHN1Yk1lbnVJdGVtcykKIHsKIH0KQEAgLTY3LDYgKzcwLDcgQEAg
Q29udGV4dE1lbnVJdGVtOjpDb250ZXh0TWVudUl0ZW0oKQogICAgICwgbV9hY3Rpb24oQ29udGV4
dE1lbnVJdGVtVGFnTm9BY3Rpb24pCiAgICAgLCBtX2VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2No
ZWNrZWQoZmFsc2UpCisgICAgLCBtX2luZGVudGF0aW9uTGV2ZWwoMCkKIHsKIH0KIApAQCAtMTA5
LDYgKzExMywxNiBAQCBDb250ZXh0TWVudUFjdGlvbiBDb250ZXh0TWVudUl0ZW06OmFjdGlvbigp
IGNvbnN0CiAgICAgcmV0dXJuIG1fYWN0aW9uOwogfQogCit2b2lkIENvbnRleHRNZW51SXRlbTo6
c2V0SW5kZW50YXRpb25MZXZlbCh1bnNpZ25lZCBpbmRlbnRhdGlvbkxldmVsKQoreworICAgIG1f
aW5kZW50YXRpb25MZXZlbCA9IGluZGVudGF0aW9uTGV2ZWw7Cit9CisKK3Vuc2lnbmVkIENvbnRl
eHRNZW51SXRlbTo6aW5kZW50YXRpb25MZXZlbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faW5k
ZW50YXRpb25MZXZlbDsKK30KKwogdm9pZCBDb250ZXh0TWVudUl0ZW06OnNldENoZWNrZWQoYm9v
bCBjaGVja2VkKQogewogICAgIG1fY2hlY2tlZCA9IGNoZWNrZWQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCmluZGV4IGRhMWEwYWU3MmJhMzQyYTMzOWNhMTMxMWNh
N2Y5NTZiYzhhYjNhMTUuLmFjNmU5ZDY3OTA4MjNmYWZjNzQyMWJhODQwNDkzNGIwZDZkZmU0ZGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCkBAIC0xNjcsNyAr
MTY3LDcgQEAgY2xhc3MgQ29udGV4dE1lbnVJdGVtIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBDb250ZXh0TWVudUl0ZW0oQ29udGV4
dE1lbnVJdGVtVHlwZSwgQ29udGV4dE1lbnVBY3Rpb24sIGNvbnN0IFN0cmluZyYsIENvbnRleHRN
ZW51KiBzdWJNZW51ID0gMCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgQ29udGV4dE1lbnVJdGVtKENv
bnRleHRNZW51SXRlbVR5cGUsIENvbnRleHRNZW51QWN0aW9uLCBjb25zdCBTdHJpbmcmLCBib29s
IGVuYWJsZWQsIGJvb2wgY2hlY2tlZCk7CisgICAgV0VCQ09SRV9FWFBPUlQgQ29udGV4dE1lbnVJ
dGVtKENvbnRleHRNZW51SXRlbVR5cGUsIENvbnRleHRNZW51QWN0aW9uLCBjb25zdCBTdHJpbmcm
LCBib29sIGVuYWJsZWQsIGJvb2wgY2hlY2tlZCwgdW5zaWduZWQgaW5kZW50YXRpb25MZXZlbCA9
IDApOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgfkNvbnRleHRNZW51SXRlbSgpOwogCkBAIC0xODMs
OSArMTgzLDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEVuYWJsZWQoYm9vbCA9IHRydWUpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZW5hYmxlZCgpIGNvbnN0OwogCisgICAgdm9pZCBzZXRJ
bmRlbnRhdGlvbkxldmVsKHVuc2lnbmVkKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBp
bmRlbnRhdGlvbkxldmVsKCkgY29uc3Q7CisKICAgICB2b2lkIHNldFN1Yk1lbnUoQ29udGV4dE1l
bnUqKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIENvbnRleHRNZW51SXRlbShDb250ZXh0TWVudUFj
dGlvbiwgY29uc3QgU3RyaW5nJiwgYm9vbCBlbmFibGVkLCBib29sIGNoZWNrZWQsIGNvbnN0IFZl
Y3RvcjxDb250ZXh0TWVudUl0ZW0+JiBzdWJNZW51SXRlbXMpOworICAgIFdFQkNPUkVfRVhQT1JU
IENvbnRleHRNZW51SXRlbShDb250ZXh0TWVudUFjdGlvbiwgY29uc3QgU3RyaW5nJiwgYm9vbCBl
bmFibGVkLCBib29sIGNoZWNrZWQsIGNvbnN0IFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+JiBzdWJN
ZW51SXRlbXMsIHVuc2lnbmVkIGluZGVudGF0aW9uTGV2ZWwgPSAwKTsKICAgICBDb250ZXh0TWVu
dUl0ZW0oKTsKIAogICAgIGJvb2wgaXNOdWxsKCkgY29uc3Q7CkBAIC0yMDAsNiArMjAzLDcgQEAg
cHJpdmF0ZToKICAgICBTdHJpbmcgbV90aXRsZTsKICAgICBib29sIG1fZW5hYmxlZDsKICAgICBi
b29sIG1fY2hlY2tlZDsKKyAgICB1bnNpZ25lZCBtX2luZGVudGF0aW9uTGV2ZWw7CiAgICAgVmVj
dG9yPENvbnRleHRNZW51SXRlbT4gbV9zdWJNZW51SXRlbXM7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggNDYzZWJhMDZjZDI5OTFmYWZmMTdh
MzRjMWVkMDk3YjFkNzFlMWJmOC4uZjE1NGI1ZjVhM2Q3M2U1MDc4MTdjYjkwYjY4ODlmMTA1ZTc1
ZDM3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAt
OTUsNiArOTUsMTAgQEAKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogCisj
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvUmVu
ZGVyVGhlbWVNYWNBZGRpdGlvbnMuY3BwPgorI2VuZGlmCisKIC8vIEZJWE1FOiBUaGlzIHNob3Vs
ZCBnbyBpbnRvIGFuIFNQSS5oIGZpbGUgaW4gdGhlIHNwaSBkaXJlY3RvcnkuCiBAaW50ZXJmYWNl
IE5TVGV4dEZpZWxkQ2VsbCAoKQogLSAoQ0ZEaWN0aW9uYXJ5UmVmKV9jb3JlVUlEcmF3T3B0aW9u
c1dpdGhGcmFtZTooTlNSZWN0KWNlbGxGcmFtZSBpblZpZXc6KE5TVmlldyAqKWNvbnRyb2xWaWV3
IGluY2x1ZGVGb2N1czooQk9PTClpbmNsdWRlRm9jdXM7CkBAIC0zMjQsOSArMzI4LDE0IEBAIFN0
cmluZyBSZW5kZXJUaGVtZU1hYzo6bWVkaWFDb250cm9sc1NjcmlwdCgpCiAgICAgaWYgKFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkubW9kZXJuTWVkaWFDb250cm9sc0Vu
YWJsZWQoKSkgewogICAgICAgICBpZiAobV9tZWRpYUNvbnRyb2xzU2NyaXB0LmlzRW1wdHkoKSkg
ewogICAgICAgICAgICAgTlNCdW5kbGUgKmJ1bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JDbGFz
czpbV2ViQ29yZVJlbmRlclRoZW1lQnVuZGxlIGNsYXNzXV07Ci0gICAgICAgICAgICBOU1N0cmlu
ZyAqbG9jYWxpemVkU3RyaW5ncyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoQ29udGVudHNPZkZpbGU6
W2J1bmRsZSBwYXRoRm9yUmVzb3VyY2U6QCJtb2Rlcm4tbWVkaWEtY29udHJvbHMtbG9jYWxpemVk
LXN0cmluZ3MiIG9mVHlwZTpAImpzIl0gZW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmcgZXJy
b3I6bmlsXTsKLSAgICAgICAgICAgIE5TU3RyaW5nICpzY3JpcHQgPSBbTlNTdHJpbmcgc3RyaW5n
V2l0aENvbnRlbnRzT2ZGaWxlOltidW5kbGUgcGF0aEZvclJlc291cmNlOkAibW9kZXJuLW1lZGlh
LWNvbnRyb2xzIiBvZlR5cGU6QCJqcyIgaW5EaXJlY3Rvcnk6QCJtb2Rlcm4tbWVkaWEtY29udHJv
bHMiXSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZyBlcnJvcjpuaWxdOwotICAgICAgICAg
ICAgbV9tZWRpYUNvbnRyb2xzU2NyaXB0ID0gbWFrZVN0cmluZyhTdHJpbmcgeyBsb2NhbGl6ZWRT
dHJpbmdzIH0sIFN0cmluZyB7IHNjcmlwdCB9KTsKKworICAgICAgICAgICAgU3RyaW5nQnVpbGRl
ciBzY3JpcHRCdWlsZGVyOworICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQoW05TU3Ry
aW5nIHN0cmluZ1dpdGhDb250ZW50c09mRmlsZTpbYnVuZGxlIHBhdGhGb3JSZXNvdXJjZTpAIm1v
ZGVybi1tZWRpYS1jb250cm9scy1sb2NhbGl6ZWQtc3RyaW5ncyIgb2ZUeXBlOkAianMiXSBlbmNv
ZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZyBlcnJvcjpuaWxdKTsKKyAgICAgICAgICAgIHNjcmlw
dEJ1aWxkZXIuYXBwZW5kKFtOU1N0cmluZyBzdHJpbmdXaXRoQ29udGVudHNPZkZpbGU6W2J1bmRs
ZSBwYXRoRm9yUmVzb3VyY2U6QCJtb2Rlcm4tbWVkaWEtY29udHJvbHMiIG9mVHlwZTpAImpzIiBp
bkRpcmVjdG9yeTpAIm1vZGVybi1tZWRpYS1jb250cm9scyJdIGVuY29kaW5nOk5TVVRGOFN0cmlu
Z0VuY29kaW5nIGVycm9yOm5pbF0pOworI2lmIGRlZmluZWQoUmVuZGVyVGhlbWVNYWNBZGRpdGlv
bnNfbWVkaWFDb250cm9sc1NjcmlwdCkKKyAgICAgICAgICAgIFJlbmRlclRoZW1lTWFjQWRkaXRp
b25zX21lZGlhQ29udHJvbHNTY3JpcHQKKyNlbmRpZgorICAgICAgICAgICAgbV9tZWRpYUNvbnRy
b2xzU2NyaXB0ID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpOwogICAgICAgICB9CiAgICAgICAg
IHJldHVybiBtX21lZGlhQ29udHJvbHNTY3JpcHQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db250ZXh0TWVudUNvbnRleHREYXRhLmNwcAppbmRleCA4NWY2NTQ3YWE0Yzc0NGNk
YzdkNjEwMDg1NTQ2NGZjY2I0Y2UwZDA5Li44YjAzYThmYTQ3NTAzN2U0NjYxMThjN2Y1OWYwMmEx
YWMwMjZhMGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db250ZXh0TWVudUNv
bnRleHREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db250ZXh0TWVudUNvbnRl
eHREYXRhLmNwcApAQCAtMzAsNyArMzAsNiBAQAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQog
CiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9D
b250ZXh0TWVudUNvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ2LDkgKzQ1LDkgQEAgQ29udGV4dE1lbnVDb250
ZXh0RGF0YTo6Q29udGV4dE1lbnVDb250ZXh0RGF0YSgpCiAKIENvbnRleHRNZW51Q29udGV4dERh
dGE6OkNvbnRleHRNZW51Q29udGV4dERhdGEoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIG1lbnVM
b2NhdGlvbiwgY29uc3QgVmVjdG9yPFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIG1l
bnVJdGVtcywgY29uc3QgQ29udGV4dE1lbnVDb250ZXh0JiBjb250ZXh0KQogI2lmIEVOQUJMRShT
RVJWSUNFX0NPTlRST0xTKQotICAgIDogbV90eXBlKGNvbnRleHQuY29udHJvbGxlZEltYWdlKCkg
PyBUeXBlOjpTZXJ2aWNlc01lbnUgOiBUeXBlOjpDb250ZXh0TWVudSkKKyAgICA6IG1fdHlwZShj
b250ZXh0LmNvbnRyb2xsZWRJbWFnZSgpID8gVHlwZTo6U2VydmljZXNNZW51IDogY29udGV4dC50
eXBlKCkpCiAjZWxzZQotICAgIDogbV90eXBlKFR5cGU6OkNvbnRleHRNZW51KQorICAgIDogbV90
eXBlKGNvbnRleHQudHlwZSgpKQogI2VuZGlmCiAgICAgLCBtX21lbnVMb2NhdGlvbihtZW51TG9j
YXRpb24pCiAgICAgLCBtX21lbnVJdGVtcyhtZW51SXRlbXMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Db250ZXh0TWVudUNvbnRleHREYXRhLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Db250ZXh0TWVudUNvbnRleHREYXRhLmgKaW5kZXggMWQ5NTlhNjg2OThhOTkyY2Q4ZDk3
MmQzMmE5OGQ2YzAwNzM1NDQwNC4uNGY3YjdhNjMxZmM1NzI0OWRjYTczZDJjYTk5Y2RhMGMzODNh
ZGNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0
RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEu
aApAQCAtMjgsOSArMjgsOSBAQAogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAKLSNpbmNs
dWRlICJTaGFyZWFibGVCaXRtYXAuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudUl0ZW1EYXRh
LmgiCiAjaW5jbHVkZSAiV2ViSGl0VGVzdFJlc3VsdERhdGEuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0NvbnRleHRNZW51Q29udGV4dC5oPgogI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5h
bWVzcGFjZSBJUEMgewpAQCAtMzgsMTggKzM4LDExIEBAIGNsYXNzIERlY29kZXI7CiBjbGFzcyBF
bmNvZGVyOwogfQogCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBDb250ZXh0TWVudUNvbnRl
eHQ7Ci19Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBDb250ZXh0TWVudUNvbnRleHRE
YXRhIHsKIHB1YmxpYzoKLSAgICBlbnVtIGNsYXNzIFR5cGUgOiBib29sIHsKLSAgICAgICAgQ29u
dGV4dE1lbnUsCi0gICAgICAgIFNlcnZpY2VzTWVudSwKLSAgICB9OworICAgIHVzaW5nIFR5cGUg
PSBXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRleHQ6OlR5cGU7CiAKICAgICBDb250ZXh0TWVudUNv
bnRleHREYXRhKCk7CiAgICAgQ29udGV4dE1lbnVDb250ZXh0RGF0YShjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgbWVudUxvY2F0aW9uLCBjb25zdCBWZWN0b3I8V2ViS2l0OjpXZWJDb250ZXh0TWVu
dUl0ZW1EYXRhPiYgbWVudUl0ZW1zLCBjb25zdCBXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRleHQm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURh
dGEuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5jcHAK
aW5kZXggODk0NmMzNTUxNTIzZDg1NjM0ZDk2OWQ0NDM5ODdjZWQ5NjJiMzZhOC4uMGM1ZGM3OTU2
YThlMzE2NjQwOGIwMDJlMDA1ZjdiNTRiNzA2NWViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5jcHAKQEAgLTQyLDI1ICs0MiwyOCBAQCBXZWJD
b250ZXh0TWVudUl0ZW1EYXRhOjpXZWJDb250ZXh0TWVudUl0ZW1EYXRhKCkKICAgICAsIG1fYWN0
aW9uKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ05vQWN0aW9uKQogICAgICwgbV9lbmFibGVk
KHRydWUpCiAgICAgLCBtX2NoZWNrZWQoZmFsc2UpCisgICAgLCBtX2luZGVudGF0aW9uTGV2ZWwo
MCkKIHsKIH0KIAotV2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6V2ViQ29udGV4dE1lbnVJdGVtRGF0
YShXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UeXBlIHR5cGUsIFdlYkNvcmU6OkNvbnRleHRNZW51
QWN0aW9uIGFjdGlvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgYm9vbCBlbmFibGVkLCBib29sIGNo
ZWNrZWQpCitXZWJDb250ZXh0TWVudUl0ZW1EYXRhOjpXZWJDb250ZXh0TWVudUl0ZW1EYXRhKFdl
YkNvcmU6OkNvbnRleHRNZW51SXRlbVR5cGUgdHlwZSwgV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rp
b24gYWN0aW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBib29sIGVuYWJsZWQsIGJvb2wgY2hlY2tl
ZCwgdW5zaWduZWQgaW5kZW50YXRpb25MZXZlbCkKICAgICA6IG1fdHlwZSh0eXBlKQogICAgICwg
bV9hY3Rpb24oYWN0aW9uKQogICAgICwgbV90aXRsZSh0aXRsZSkKICAgICAsIG1fZW5hYmxlZChl
bmFibGVkKQogICAgICwgbV9jaGVja2VkKGNoZWNrZWQpCisgICAgLCBtX2luZGVudGF0aW9uTGV2
ZWwoaW5kZW50YXRpb25MZXZlbCkKIHsKICAgICBBU1NFUlQodHlwZSA9PSBXZWJDb3JlOjpBY3Rp
b25UeXBlIHx8IHR5cGUgPT0gV2ViQ29yZTo6Q2hlY2thYmxlQWN0aW9uVHlwZSB8fCB0eXBlID09
IFdlYkNvcmU6OlNlcGFyYXRvclR5cGUpOwogfQogCi1XZWJDb250ZXh0TWVudUl0ZW1EYXRhOjpX
ZWJDb250ZXh0TWVudUl0ZW1EYXRhKFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwg
Y29uc3QgU3RyaW5nJiB0aXRsZSwgYm9vbCBlbmFibGVkLCBjb25zdCBWZWN0b3I8V2ViQ29udGV4
dE1lbnVJdGVtRGF0YT4mIHN1Ym1lbnUpCitXZWJDb250ZXh0TWVudUl0ZW1EYXRhOjpXZWJDb250
ZXh0TWVudUl0ZW1EYXRhKFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY29uc3Qg
U3RyaW5nJiB0aXRsZSwgYm9vbCBlbmFibGVkLCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJ
dGVtRGF0YT4mIHN1Ym1lbnUsIHVuc2lnbmVkIGluZGVudGF0aW9uTGV2ZWwpCiAgICAgOiBtX3R5
cGUoV2ViQ29yZTo6U3VibWVudVR5cGUpCiAgICAgLCBtX2FjdGlvbihhY3Rpb24pCiAgICAgLCBt
X3RpdGxlKHRpdGxlKQogICAgICwgbV9lbmFibGVkKGVuYWJsZWQpCiAgICAgLCBtX2NoZWNrZWQo
ZmFsc2UpCisgICAgLCBtX2luZGVudGF0aW9uTGV2ZWwoaW5kZW50YXRpb25MZXZlbCkKICAgICAs
IG1fc3VibWVudShzdWJtZW51KQogewogfQpAQCAtNzcsMTUgKzgwLDE2IEBAIFdlYkNvbnRleHRN
ZW51SXRlbURhdGE6OldlYkNvbnRleHRNZW51SXRlbURhdGEoY29uc3QgV2ViQ29yZTo6Q29udGV4
dE1lbnVJdGVtJiBpCiAgICAgCiAgICAgbV9lbmFibGVkID0gaXRlbS5lbmFibGVkKCk7CiAgICAg
bV9jaGVja2VkID0gaXRlbS5jaGVja2VkKCk7CisgICAgbV9pbmRlbnRhdGlvbkxldmVsID0gaXRl
bS5pbmRlbnRhdGlvbkxldmVsKCk7CiB9CiAKIENvbnRleHRNZW51SXRlbSBXZWJDb250ZXh0TWVu
dUl0ZW1EYXRhOjpjb3JlKCkgY29uc3QKIHsKICAgICBpZiAobV90eXBlICE9IFN1Ym1lbnVUeXBl
KQotICAgICAgICByZXR1cm4gQ29udGV4dE1lbnVJdGVtKG1fdHlwZSwgbV9hY3Rpb24sIG1fdGl0
bGUsIG1fZW5hYmxlZCwgbV9jaGVja2VkKTsKKyAgICAgICAgcmV0dXJuIENvbnRleHRNZW51SXRl
bShtX3R5cGUsIG1fYWN0aW9uLCBtX3RpdGxlLCBtX2VuYWJsZWQsIG1fY2hlY2tlZCwgbV9pbmRl
bnRhdGlvbkxldmVsKTsKICAgICAKICAgICBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiBzdWJNZW51
SXRlbXMgPSBjb3JlSXRlbXMobV9zdWJtZW51KTsKLSAgICByZXR1cm4gQ29udGV4dE1lbnVJdGVt
KG1fYWN0aW9uLCBtX3RpdGxlLCBtX2VuYWJsZWQsIG1fY2hlY2tlZCwgc3ViTWVudUl0ZW1zKTsK
KyAgICByZXR1cm4gQ29udGV4dE1lbnVJdGVtKG1fYWN0aW9uLCBtX3RpdGxlLCBtX2VuYWJsZWQs
IG1fY2hlY2tlZCwgc3ViTWVudUl0ZW1zLCBtX2luZGVudGF0aW9uTGV2ZWwpOwogfQogCiBBUEk6
Ok9iamVjdCogV2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6dXNlckRhdGEoKSBjb25zdApAQCAtMTA1
LDYgKzEwOSw3IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6ZW5jb2RlKElQQzo6RW5j
b2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1fdGl0bGU7CiAgICAgZW5jb2Rl
ciA8PCBtX2NoZWNrZWQ7CiAgICAgZW5jb2RlciA8PCBtX2VuYWJsZWQ7CisgICAgZW5jb2RlciA8
PCBtX2luZGVudGF0aW9uTGV2ZWw7CiAgICAgZW5jb2RlciA8PCBtX3N1Ym1lbnU7CiB9CiAKQEAg
LTEzMCw2ICsxMzUsMTAgQEAgT3B0aW9uYWw8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4gV2ViQ29u
dGV4dE1lbnVJdGVtRGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGUKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKGVuYWJsZWQpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCisgICAg
dW5zaWduZWQgaW5kZW50YXRpb25MZXZlbDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZGVu
dGF0aW9uTGV2ZWwpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCiAgICAgT3B0aW9u
YWw8VmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbURhdGE+PiBzdWJtZW51OwogICAgIGRlY29kZXIg
Pj4gc3VibWVudTsKICAgICBpZiAoIXN1Ym1lbnUpCkBAIC0xMzksMTAgKzE0OCwxMCBAQCBPcHRp
b25hbDxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhOjpkZWNv
ZGUoSVBDOjpEZWNvZGVyJiBkZQogICAgIGNhc2UgV2ViQ29yZTo6QWN0aW9uVHlwZToKICAgICBj
YXNlIFdlYkNvcmU6OlNlcGFyYXRvclR5cGU6CiAgICAgY2FzZSBXZWJDb3JlOjpDaGVja2FibGVB
Y3Rpb25UeXBlOgotICAgICAgICByZXR1cm4ge3sgdHlwZSwgYWN0aW9uLCB0aXRsZSwgZW5hYmxl
ZCwgY2hlY2tlZCB9fTsKKyAgICAgICAgcmV0dXJuIHt7IHR5cGUsIGFjdGlvbiwgdGl0bGUsIGVu
YWJsZWQsIGNoZWNrZWQsIGluZGVudGF0aW9uTGV2ZWwgfX07CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgV2ViQ29yZTo6U3VibWVudVR5cGU6Ci0gICAgICAgIHJldHVybiB7eyBhY3Rpb24sIHRp
dGxlLCBlbmFibGVkLCBXVEZNb3ZlKCpzdWJtZW51KSB9fTsKKyAgICAgICAgcmV0dXJuIHt7IGFj
dGlvbiwgdGl0bGUsIGVuYWJsZWQsIFdURk1vdmUoKnN1Ym1lbnUpLCBpbmRlbnRhdGlvbkxldmVs
IH19OwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmgKaW5kZXggNDVl
MzFhZTMzM2E3YjdhNTlmZjRjMTVkOGY1YzkzZmJjOTJlOTQ0NS4uMTU0Mjc4MmEyNzIwNzAxYTlk
M2JkYTQ5ZWVlMGM1NDAzYzVjMDFmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNv
bnRleHRNZW51SXRlbURhdGEuaApAQCAtNDUsMTQgKzQ1LDE1IEBAIGNsYXNzIFdlYkNvbnRleHRN
ZW51SXRlbURhdGEgewogcHVibGljOgogICAgIFdlYkNvbnRleHRNZW51SXRlbURhdGEoKTsKICAg
ICBXZWJDb250ZXh0TWVudUl0ZW1EYXRhKGNvbnN0IFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbSYp
OwotICAgIFdlYkNvbnRleHRNZW51SXRlbURhdGEoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVHlw
ZSwgV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24sIGNvbnN0IFN0cmluZyYgdGl0bGUsIGJvb2wg
ZW5hYmxlZCwgYm9vbCBjaGVja2VkKTsKLSAgICBXZWJDb250ZXh0TWVudUl0ZW1EYXRhKFdlYkNv
cmU6OkNvbnRleHRNZW51QWN0aW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBib29sIGVuYWJsZWQs
IGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgc3VibWVudSk7CisgICAgV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YShXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UeXBlLCBXZWJDb3Jl
OjpDb250ZXh0TWVudUFjdGlvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgYm9vbCBlbmFibGVkLCBi
b29sIGNoZWNrZWQsIHVuc2lnbmVkIGluZGVudGF0aW9uTGV2ZWwgPSAwKTsKKyAgICBXZWJDb250
ZXh0TWVudUl0ZW1EYXRhKFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uLCBjb25zdCBTdHJpbmcm
IHRpdGxlLCBib29sIGVuYWJsZWQsIGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRh
PiYgc3VibWVudSwgdW5zaWduZWQgaW5kZW50YXRpb25MZXZlbCA9IDApOwogCiAgICAgV2ViQ29y
ZTo6Q29udGV4dE1lbnVJdGVtVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAg
ICAgV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24gYWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9h
Y3Rpb247IH0KICAgICBjb25zdCBTdHJpbmcmIHRpdGxlKCkgY29uc3QgeyByZXR1cm4gbV90aXRs
ZTsgfQogICAgIGJvb2wgZW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5hYmxlZDsgfQogICAg
IGJvb2wgY2hlY2tlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hlY2tlZDsgfQorICAgIHVuc2lnbmVk
IGluZGVudGF0aW9uTGV2ZWwoKSBjb25zdCB7IHJldHVybiBtX2luZGVudGF0aW9uTGV2ZWw7IH0K
ICAgICBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIHN1Ym1lbnUoKSBjb25z
dCB7IHJldHVybiBtX3N1Ym1lbnU7IH0KICAgICAKICAgICBXZWJDb3JlOjpDb250ZXh0TWVudUl0
ZW0gY29yZSgpIGNvbnN0OwpAQCAtNjksNiArNzAsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBt
X3RpdGxlOwogICAgIGJvb2wgbV9lbmFibGVkOwogICAgIGJvb2wgbV9jaGVja2VkOworICAgIHVu
c2lnbmVkIG1faW5kZW50YXRpb25MZXZlbDsKICAgICBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVt
RGF0YT4gbV9zdWJtZW51OwogICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gbV91c2VyRGF0YTsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
UHJpdmF0ZUZvclRlc3RpbmcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oCmluZGV4IDYyZTQ2NzE0NGU5MTk0ZWIwYTY4MmEw
OGEyODRkNTk1Zjk1ZTNkOTguLmNhNDU5OTZhNzhkZTI4YTk3Mjk5NWEzMWJjNDUzYTc4ZjRlYjk1
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdQcml2YXRlRm9yVGVzdGluZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oCkBAIC02Myw2ICs2Myw5IEBAIHN0cnVj
dCBXS0FwcEJvdW5kTmF2aWdhdGlvblRlc3RpbmdEYXRhIHsKIAogLSAodm9pZClfc2V0U2hhcmVT
aGVldENvbXBsZXRlc0ltbWVkaWF0ZWx5V2l0aFJlc29sdXRpb25Gb3JUZXN0aW5nOihCT09MKXJl
c29sdmVkOwogCistICh2b2lkKV9kaWRTaG93Q29udGV4dE1lbnU7CistICh2b2lkKV9kaWREaXNt
aXNzQ29udGV4dE1lbnU7CisKIC0gKHZvaWQpX2RpZFByZXNlbnRDb250YWN0UGlja2VyOwogLSAo
dm9pZClfZGlkRGlzbWlzc0NvbnRhY3RQaWNrZXI7CiAtICh2b2lkKV9kaXNtaXNzQ29udGFjdFBp
Y2tlcldpdGhDb250YWN0czooTlNBcnJheSAqKWNvbnRhY3RzOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQppbmRleCBhZDA4
NGQ1MmYyYjg2ZWY3MDQxMWZmZjViN2M3YzRjYzBkZjdiYzc0Li41NDI2MDYwYjI1MGFmM2NhM2M2
Yjg0ZGVlMWJjNWQ1OTU1MzhkMjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQpAQCAtNzEsNiArNzEsOSBAQCAtIChO
U0RpY3Rpb25hcnkgKilfY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtOihOU1N0cmluZyAqKXVz
ZXJJbnRlcmZhY2VJdGVtCiAgICAgICAgIHJldHVybiBAeyB1c2VySW50ZXJmYWNlSXRlbTogQHsg
QCJtZXNzYWdlIjogKE5TU3RyaW5nICopbWVzc2FnZSwgQCJmb250U2l6ZSI6IEAoZm9udFNpemUp
IH0gfTsKICAgICB9CiAKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjb250ZW50cyA9IF9wYWdlLT5j
b250ZW50c09mVXNlckludGVyZmFjZUl0ZW0odXNlckludGVyZmFjZUl0ZW0pKQorICAgICAgICBy
ZXR1cm4gY29udGVudHM7CisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHJldHVybiBb
X2NvbnRlbnRWaWV3IF9jb250ZW50c09mVXNlckludGVyZmFjZUl0ZW06KE5TU3RyaW5nICopdXNl
ckludGVyZmFjZUl0ZW1dOwogI2Vsc2UKQEAgLTMwOSw2ICszMTIsMTYgQEAgLSAodm9pZClfc2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3Rpbmc6KE5T
VVJMICopdXJsIGMKICAgICB9KTsKIH0KIAorLSAodm9pZClfZGlkU2hvd0NvbnRleHRNZW51Cit7
CisgICAgLy8gRm9yIHN1YmNsYXNzZXMgdG8gb3ZlcnJpZGUuCit9CisKKy0gKHZvaWQpX2RpZERp
c21pc3NDb250ZXh0TWVudQoreworICAgIC8vIEZvciBzdWJjbGFzc2VzIHRvIG92ZXJyaWRlLgor
fQorCiAtICh2b2lkKV9kaWRQcmVzZW50Q29udGFjdFBpY2tlcgogewogICAgIC8vIEZvciBzdWJj
bGFzc2VzIHRvIG92ZXJyaWRlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2lvcy9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oCmluZGV4IDg5
MzdjODRmY2MyYTAwNjQ3MGYyYzJjOWE4NzFhN2Y5OTk1ZmE5YzMuLjkzODhhZWI0ZjE2NzE4MjJi
YzY0ZjhhZDllZWY3MDUxYTgwYTg4NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9pb3MvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdJT1MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmgK
QEAgLTY2LDggKzY2LDYgQEAKIAogLSAodm9pZClhcHBseUF1dG9jb3JyZWN0aW9uOihOU1N0cmlu
ZyAqKW5ld1N0cmluZyB0b1N0cmluZzooTlNTdHJpbmcgKilvbGRTdHJpbmcgd2l0aENvbXBsZXRp
b25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcjsKIAotLSAodm9pZClf
ZGlkU2hvd0NvbnRleHRNZW51OwotLSAodm9pZClfZGlkRGlzbWlzc0NvbnRleHRNZW51OwogLSAo
dm9pZClfZG9BZnRlclJlc2V0dGluZ1NpbmdsZVRhcEdlc3R1cmU6KGRpc3BhdGNoX2Jsb2NrX3Qp
YWN0aW9uOwogCiAtIChOU0RpY3Rpb25hcnkgKilfcHJvcGVydGllc09mTGF5ZXJXaXRoSUQ6KHVu
c2lnbmVkIGxvbmcgbG9uZylsYXllcklEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tCmluZGV4IGVlOTkwZThlNzBlY2Vi
NmYwMGJmNzIzZWVlYzc0NzEyZTQwYmVmYmIuLmQ5Yzc5OWI4ZGRkNTkxYThlYzE4YTEwNmNlMWJm
YjQ3YzcxYmI4MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3Mv
V0tXZWJWaWV3VGVzdGluZ0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
aW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0KQEAgLTE4NCwxNiArMTg0LDYgQEAgLSAoTlNTdHJp
bmcgKilmb3JtSW5wdXRMYWJlbAogICAgIHJldHVybiBbX2NvbnRlbnRWaWV3IGZvcm1JbnB1dExh
YmVsXTsKIH0KIAotLSAodm9pZClfZGlkU2hvd0NvbnRleHRNZW51Ci17Ci0gICAgLy8gRm9yIHN1
YmNsYXNzZXMgdG8gb3ZlcnJpZGUuCi19Ci0KLS0gKHZvaWQpX2RpZERpc21pc3NDb250ZXh0TWVu
dQotewotICAgIC8vIEZvciBzdWJjbGFzc2VzIHRvIG92ZXJyaWRlLgotfQotCiAtIChDR1JlY3Qp
X2lucHV0Vmlld0JvdW5kcwogewogICAgIHJldHVybiBfaW5wdXRWaWV3Qm91bmRzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdUZXN0aW5nTWFj
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdUZXN0aW5nTWFj
Lm1tCmluZGV4IGFmY2MzMWEwNzFhNGVkOTJmOTM1YjZmYzUzMDk1OWU1MmYzZjRmMzUuLjFlMDZj
OWRmYWQxYTY0MTZkMTllNmY5YzA3MDI4YjVhZTc4MDI0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3VGVzdGluZ01hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLV2ViVmlld1Rlc3RpbmdNYWMubW0KQEAgLTEx
NCw5ICsxMTQsMTEgQEAgLSAoTlNTZXQ8TlNWaWV3ICo+ICopX3BkZkhVRHMKIAogLSAoTlNNZW51
ICopX2FjdGl2ZU1lbnUKIHsKLSAgICAvLyBGSVhNRTogT25seSB0aGUgRE9NIHBhc3RlIGFjY2Vz
cyBtZW51IGlzIHN1cHBvcnRlZCBmb3Igbm93LiBJbiB0aGUgZnV0dXJlLCBpdCBjb3VsZCBiZQot
ICAgIC8vIGV4dGVuZGVkIHRvIHJlY29nbml6ZSB0aGUgcmVndWxhciBjb250ZXh0IG1lbnUgYXMg
d2VsbC4KLSAgICByZXR1cm4gX2ltcGwtPmRvbVBhc3RlTWVudSgpOworICAgIGlmIChOU01lbnUg
KmNvbnRleHRNZW51ID0gX3BhZ2UtPnBsYXRmb3JtQWN0aXZlQ29udGV4dE1lbnUoKSkKKyAgICAg
ICAgcmV0dXJuIGNvbnRleHRNZW51OworICAgIGlmIChOU01lbnUgKmRvbVBhc3RlTWVudSA9IF9p
bXBsLT5kb21QYXN0ZU1lbnUoKSkKKyAgICAgICAgcmV0dXJuIGRvbVBhc3RlTWVudTsKKyAgICBy
ZXR1cm4gbmlsOwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCmluZGV4IGM5ZDkwMmRhOGE1NTM5YWUyNTc0MmMwMWY2
ZGIxN2M1NzRlOThhNmQuLjJhOTlhNTQ1ZGVjZmY3MGRhMDZjNWViMmI5YjhjNzZjZmVlOWMwZjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNv
Y29hLm1tCkBAIC0zOSw2ICszOSw3IEBACiAjaW1wb3J0ICJTYWZlQnJvd3NpbmdXYXJuaW5nLmgi
CiAjaW1wb3J0ICJTaGFyZWRCdWZmZXJDb3B5LmgiCiAjaW1wb3J0ICJTaGFyZWRCdWZmZXJEYXRh
UmVmZXJlbmNlLmgiCisjaW1wb3J0ICJXZWJDb250ZXh0TWVudVByb3h5LmgiCiAjaW1wb3J0ICJX
ZWJQYWdlLmgiCiAjaW1wb3J0ICJXZWJQYWdlTWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlBhc3Rl
Ym9hcmRQcm94eS5oIgpAQCAtNjQyLDYgKzY0MywxNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmV2
b2tlQWNjZXNzVG9Bc3NldFNlcnZpY2VzKCkKICAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6
V2ViUHJvY2Vzczo6UmV2b2tlQWNjZXNzVG9Bc3NldFNlcnZpY2VzKCksIDApOwogfQogCitOU0Rp
Y3Rpb25hcnkgKldlYlBhZ2VQcm94eTo6Y29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtKE5TU3Ry
aW5nICp1c2VySW50ZXJmYWNlSXRlbSkKK3sKKyNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKKyAg
ICBpZiAobV9hY3RpdmVDb250ZXh0TWVudSAmJiBbdXNlckludGVyZmFjZUl0ZW0gaXNFcXVhbFRv
U3RyaW5nOkAibWVkaWFDb250cm9sc0NvbnRleHRNZW51Il0pCisgICAgICAgIHJldHVybiBAeyB1
c2VySW50ZXJmYWNlSXRlbTogbV9hY3RpdmVDb250ZXh0TWVudS0+cGxhdGZvcm1EYXRhKCkgfTsK
KyNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKKworICAgIHJldHVybiBuaWw7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCBiNmMwNzViMWE5NTkyYjFiNTM0NWFh
ZTJlMDczZTZiMjNmNWQwNjU5Li42YzRjODNkMjI1NTU5ODg1OWE1ODE3ZWQ4NzQ4Yjc2MTViZTRi
YjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0zNTUsNiArMzU1LDgg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBjcmVhdGVQ
b3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmKSA9IDA7CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVO
VVMpCiAgICAgdmlydHVhbCBSZWY8V2ViQ29udGV4dE1lbnVQcm94eT4gY3JlYXRlQ29udGV4dE1l
bnVQcm94eShXZWJQYWdlUHJveHkmLCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYsIGNvbnN0IFVz
ZXJEYXRhJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTaG93Q29udGV4dE1lbnUoKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgZGlkRGlzbWlzc0NvbnRleHRNZW51KCkgeyB9CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQpAQCAtNTI3LDkgKzUyOSw5IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEltYWdlRXh0cmFjdGlvbihjb25zdCBVUkwmIGltYWdl
VVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvblJlc3VsdCYmKT4mJiBjb21wbGV0
aW9uKSB7IGNvbXBsZXRpb24oeyB9KTsgfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVESUFfQ09O
VFJPTFNfQ09OVEVYVF9NRU5VUykKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9N
RU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAgICAgdmlydHVhbCB2b2lkIHNob3dNZWRpYUNv
bnRyb2xzQ29udGV4dE1lbnUoV2ViQ29yZTo6RmxvYXRSZWN0JiYsIFZlY3RvcjxXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1l
bnVJdGVtOjppbnZhbGlkSUQpOyB9Ci0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NP
TlRFWFRfTUVOVVMpCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVO
VVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogICAgIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2
aXJ0dWFsIHZvaWQgZGlkUGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRlc3QoY29uc3QgV2ViSGl0
VGVzdFJlc3VsdERhdGEmLCBib29sIGNvbnRlbnRQcmV2ZW50c0RlZmF1bHQsIEFQSTo6T2JqZWN0
KikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1l
bnVQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5o
CmluZGV4IDJkMmM1NzY1YzAxZjI2ODA3NDlhOGYxOTNkNjFmYjY2NmEwOGFiODYuLjFiOGZjYzg0
NjY0ZjMwOWFmZTVmNGVhY2QyOGI1NDEzYzFiMWI5MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJDb250ZXh0TWVudVByb3h5LmgKQEAgLTMzLDYgKzMzLDggQEAKICNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKK09CSkNfQ0xB
U1MgTlNNZW51OworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQ29udGV4dE1lbnVJ
dGVtOwpAQCAtNDYsNiArNDgsMTEgQEAgcHVibGljOgogCiAgICAgV2ViUGFnZVByb3h5KiBwYWdl
KCkgY29uc3QgeyByZXR1cm4gbV9wYWdlLmdldCgpOyB9CiAKKyNpZiBQTEFURk9STShDT0NPQSkK
KyAgICB2aXJ0dWFsIE5TTWVudSAqcGxhdGZvcm1NZW51KCkgY29uc3QgPSAwOworICAgIHZpcnR1
YWwgTlNBcnJheSAqcGxhdGZvcm1EYXRhKCkgY29uc3QgPSAwOworI2VuZGlmIC8vIFBMQVRGT1JN
KENPQ09BKQorCiBwcm90ZWN0ZWQ6CiAgICAgV2ViQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJv
eHkmLCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYsIGNvbnN0IFVzZXJEYXRhJik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDBiYjJjNTA0YzUwZjc3YmFi
Zjg0YmI1MDU3YTlhYTg1YjQ0YjA4OWUuLjYxNzU5Y2E4NDljNDQyNjcwNzA1MzI0OWYyYTVhZjI1
Zjk2ZDdlMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAt
ODMxNiwxNCArODMxNiwxNCBAQCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5JiBXZWJQYWdlUHJveHk6Om1lZGlhS2V5U3lzdGVtUGVybWlzcwogfQogI2VuZGlmCiAK
LSNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyNpZiBFTkFCTEUoTUVE
SUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAKIHZvaWQg
V2ViUGFnZVByb3h5OjpzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KEZsb2F0UmVjdCYmIHRh
cmdldEZyYW1lLCBWZWN0b3I8TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbT4mJiBpdGVtcywg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgcGFnZUNsaWVudCgpLnNob3dNZWRpYUNvbnRy
b2xzQ29udGV4dE1lbnUoV1RGTW92ZSh0YXJnZXRGcmFtZSksIFdURk1vdmUoaXRlbXMpLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09O
VFJPTFNfQ09OVEVYVF9NRU5VUykKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09O
VEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAKIAogdm9pZCBXZWJQYWdlUHJveHk6
OnJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3Qg
U3RyaW5nJiBvcmlnaW5TdHJpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CmluZGV4IDk3YjZkMTI5NjA2OWIxYTEwNDNkOTc0NTRhMWFjMzA0MTUwYzUyNDAuLmY3YjMzOTdk
YjZmZWM1MDlhMDgxNzIyY2U4MGUyM2ZiMzhmNWVhMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCkBAIC0xMzgsNiArMTM4LDcgQEAKICNpbmNsdWRlICJFbmRvd21lbnRT
dGF0ZVRyYWNrZXIuaCIKICNlbmRpZgogCitPQkpDX0NMQVNTIE5TTWVudTsKIE9CSkNfQ0xBU1Mg
TlNUZXh0QWx0ZXJuYXRpdmVzOwogT0JKQ19DTEFTUyBOU1ZpZXc7CiBPQkpDX0NMQVNTIF9XS1Jl
bW90ZU9iamVjdFJlZ2lzdHJ5OwpAQCAtMTYyNyw5ICsxNjI4LDkgQEAgcHVibGljOgogICAgIHZv
aWQgdXBkYXRlV2l0aEltYWdlRXh0cmFjdGlvblJlc3VsdChXZWJDb3JlOjpJbWFnZUV4dHJhY3Rp
b25SZXN1bHQmJiwgY29uc3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQmLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFBvaW50JiBsb2NhdGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHRleHRF
eGlzdHNBdExvY2F0aW9uKT4mJik7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShNRURJQV9DT05UUk9M
U19DT05URVhUX01FTlVTKQorI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVT
KSAmJiBVU0UoVUlDT05URVhUTUVOVSkKICAgICB2b2lkIHNob3dNZWRpYUNvbnRyb2xzQ29udGV4
dE1lbnUoV2ViQ29yZTo6RmxvYXRSZWN0JiYsIFZlY3RvcjxXZWJDb3JlOjpNZWRpYUNvbnRyb2xz
Q29udGV4dE1lbnVJdGVtPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok1lZGlh
Q29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4mJik7Ci0jZW5kaWYgLy8gRU5BQkxFKE1FRElB
X0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xT
X0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogCiAgICAgc3RhdGljIFdlYlBh
Z2VQcm94eSogbm9uRXBoZW1lcmFsV2ViUGFnZVByb3h5KCk7CiAKQEAgLTE4MDUsNiArMTgwNiw3
IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCisgICAgTlNN
ZW51ICpwbGF0Zm9ybUFjdGl2ZUNvbnRleHRNZW51KCkgY29uc3Q7CiAgICAgdm9pZCBwbGF0Zm9y
bURpZFNlbGVjdEl0ZW1Gcm9tQWN0aXZlQ29udGV4dE1lbnUoY29uc3QgV2ViQ29udGV4dE1lbnVJ
dGVtRGF0YSYpOwogI2VuZGlmCiAKQEAgLTE4NzgsNiArMTg4MCwxMCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBjbGVhckFwcEJvdW5kTmF2aWdhdGlvbkRhdGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgTlNEaWN0aW9uYXJ5ICpj
b250ZW50c09mVXNlckludGVyZmFjZUl0ZW0oTlNTdHJpbmcgKnVzZXJJbnRlcmZhY2VJdGVtKTsK
KyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKKwogcHJpdmF0ZToKICAgICBXZWJQYWdlUHJveHko
UGFnZUNsaWVudCYsIFdlYlByb2Nlc3NQcm94eSYsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9u
PiYmKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDg3MzE3NmQ5NTkxNmZm
MDQ4YzBiNTIyNTViZGU5OGZhOTAzMWZkNTcuLmE5MWQ5NjdmZjdlMTlkNTc0YjZmM2ViMzgxMTI1
MTFhNTJhZDcyNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KQEAgLTIyNCw5ICsyMjQsOSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJv
eHkgewogICAgIFJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oVVJMIGltYWdlVVJMLCBXZWJLaXQ6OlNo
YXJlYWJsZUJpdG1hcDo6SGFuZGxlIGltYWdlRGF0YSkgLT4gKHN0cnVjdCBXZWJDb3JlOjpJbWFn
ZUV4dHJhY3Rpb25SZXN1bHQgcmVzdWx0KSBBc3luYwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVE
SUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09O
VEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAgICAgU2hvd01lZGlhQ29udHJvbHND
b250ZXh0TWVudShXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0RnJhbWUsIFZlY3RvcjxXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiBpdGVtcykgLT4gKFdlYkNvcmU6Ok1lZGlh
Q29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEIHNlbGVjdGVkSXRlbUlEKSBBc3luYwotI2VuZGlm
IC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorI2VuZGlmIC8vIEVOQUJM
RShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKIAog
I2lmIEhBVkUoVE9VQ0hfQkFSKQogICAgIFNldElzVG91Y2hCYXJVcGRhdGVTdXByZXNzZWRGb3JI
aWRkZW5Db250ZW50RWRpdGFibGUoYm9vbCBpc1RvdWNoQmFyVXBkYXRlU3VwcmVzc2VkKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAppbmRleCAx
NGZiZTk1YTMzNWU2NjYwZGQ4ZjA4YjA0MTVlMTZlNDlmNjBjYzE0Li4yNjc4YzFhNDA0MmJkNWRj
YTcyMzk5Mjg5NGJjNTFjODI2ZGE2MmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtMjY3LDkgKzI2Nyw5IEBAIHByaXZhdGU6CiAK
ICAgICB2b2lkIHNldE1vdXNlRXZlbnRQb2xpY3koV2ViQ29yZTo6TW91c2VFdmVudFBvbGljeSkg
ZmluYWw7CiAKLSNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyNpZiBF
TkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUp
CiAgICAgdm9pZCBzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KFdlYkNvcmU6OkZsb2F0UmVj
dCYmLCBWZWN0b3I8V2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbT4mJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVt
OjpJRCk+JiYpIGZpbmFsOwotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhU
X01FTlVTKQorI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAm
JiBVU0UoVUlDT05URVhUTUVOVSkKIAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAg
ICAgdm9pZCB3cml0ZVByb21pc2VkQXR0YWNobWVudFRvUGFzdGVib2FyZChXZWJDb3JlOjpQcm9t
aXNlZEF0dGFjaG1lbnRJbmZvJiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGI5ZDg4MzVjZGVmNmFkODc3ODc0NGM2
NjRiMDJkNjgzYTI3YmMxN2UuLjU2ZDBlYjMwNjhlM2Q3MzJlNmFlNjk2N2M2MDAzY2M1NTZmZjdj
MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MubW0KQEAgLTk3NSwxMiArOTc1LDEyIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldE1vdXNl
RXZlbnRQb2xpY3koV2ViQ29yZTo6TW91c2VFdmVudFBvbGljeSBwb2xpY3kpCiAjZW5kaWYKIH0K
IAotI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorI2lmIEVOQUJMRShN
RURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKIHZvaWQg
UGFnZUNsaWVudEltcGw6OnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoRmxvYXRSZWN0JiYg
dGFyZ2V0RnJhbWUsIFZlY3RvcjxNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiYmIGl0ZW1z
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklE
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBbbV9jb250ZW50VmlldyBfc2hvd01lZGlh
Q29udHJvbHNDb250ZXh0TWVudTpXVEZNb3ZlKHRhcmdldEZyYW1lKSBpdGVtczpXVEZNb3ZlKGl0
ZW1zKSBjb21wbGV0aW9uSGFuZGxlcjpXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV07CiB9Ci0j
ZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjZW5kaWYgLy8g
RU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5V
KQogCiAjaWYgSEFWRShVSVNDUk9MTFZJRVdfQVNZTkNIUk9OT1VTX1NDUk9MTF9FVkVOVF9IQU5E
TElORykKIHZvaWQgUGFnZUNsaWVudEltcGw6OmhhbmRsZUFzeW5jaHJvbm91c0NhbmNlbGFibGVT
Y3JvbGxFdmVudChVSVNjcm9sbFZpZXcgKnNjcm9sbFZpZXcsIFVJU2Nyb2xsRXZlbnQgKnNjcm9s
bEV2ZW50LCB2b2lkICheY29tcGxldGlvbikoQk9PTCBoYW5kbGVkKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oCmluZGV4IDZj
NzA5ZDU2MmEzMmYyMTc4ZjI2N2M5Y2E5YWNmY2M2NjhkYmY2NjYuLjk3NjgzMDdiNmZlY2JjOWZl
YTk3NGM0YjRlMjU3Y2I4YzlhZWNkZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaApAQCAtMTAzLDkgKzEwMyw5IEBAIFVJ
Q29udGV4dE1lbnVJbnRlcmFjdGlvbkRlbGVnYXRlPgogLSAodm9pZClzaG93TGlua1NoZWV0Owog
LSAodm9pZClzaG93SW1hZ2VTaGVldDsKIC0gKHZvaWQpc2hvd0RhdGFEZXRlY3RvcnNVSUZvclBv
c2l0aW9uSW5mb3JtYXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb24mKXBvc2l0aW9uSW5mb3JtYXRpb247Ci0jaWYgRU5BQkxFKE1FRElBX0NPTlRST0xT
X0NPTlRFWFRfTUVOVVMpCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMp
ICYmIFVTRShVSUNPTlRFWFRNRU5VKQogLSAodm9pZClzaG93TWVkaWFDb250cm9sc0NvbnRleHRN
ZW51OihXZWJDb3JlOjpGbG9hdFJlY3QmJil0YXJnZXRGcmFtZSBpdGVtczooVmVjdG9yPFdlYkNv
cmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0+JiYpaXRlbXMgY29tcGxldGlvbkhhbmRs
ZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRN
ZW51SXRlbTo6SUQpPiYmKWNvbXBsZXRpb25IYW5kbGVyOwotI2VuZGlmIC8vIEVOQUJMRShNRURJ
QV9DT05UUk9MU19DT05URVhUX01FTlVTKQorI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9M
U19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKIC0gKHZvaWQpY2xlYW51cFNo
ZWV0OwogLSAodm9pZCl1cGRhdGVTaGVldFBvc2l0aW9uOwogLSAoUmV0YWluUHRyPE5TQXJyYXk8
X1dLRWxlbWVudEFjdGlvbiAqPj4pZGVmYXVsdEFjdGlvbnNGb3JMaW5rU2hlZXQ6KF9XS0FjdGl2
YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm87CkBAIC0xMjAsOSArMTIwLDkgQEAgVUlDb250
ZXh0TWVudUludGVyYWN0aW9uRGVsZWdhdGU+CiAKIEBpbnRlcmZhY2UgV0tBY3Rpb25TaGVldEFz
c2lzdGFudCAoV0tUZXN0aW5nKQogLSAoTlNBcnJheSAqKWN1cnJlbnRseUF2YWlsYWJsZUFjdGlv
blRpdGxlczsKLSNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyNpZiBF
TkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUp
CiAtIChOU0FycmF5ICopY3VycmVudGx5QXZhaWxhYmxlTWVkaWFDb250cm9sc0NvbnRleHRNZW51
SXRlbXM7Ci0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisj
ZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNP
TlRFWFRNRU5VKQogQGVuZAogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQu
bW0KaW5kZXggMTM3YWU4ZWUyNmRjMGNhNGU3MWIyZWJjYTA3YmNiMzkyOGFjOTc4OC4uYzI2ZTM4
MWY5MmYyYThmNjYxN2M4NDg5M2U0NGIyODM2NzRlNmFhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0KQEAgLTEwMCwx
NCArMTAwLDE2IEBAIEBpbXBsZW1lbnRhdGlvbiBXS0FjdGlvblNoZWV0QXNzaXN0YW50IHsKICAg
ICBSZXRhaW5QdHI8X1dLQWN0aXZhdGVkRWxlbWVudEluZm8+IF9lbGVtZW50SW5mbzsKICAgICBP
cHRpb25hbDxXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uPiBfcG9zaXRp
b25JbmZvcm1hdGlvbjsKICNpZiBVU0UoVUlDT05URVhUTUVOVSkKKyNpZiBFTkFCTEUoREFUQV9E
RVRFQ1RJT04pCiAgICAgUmV0YWluUHRyPFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbj4gX2RhdGFE
ZXRlY3RvckNvbnRleHRNZW51SW50ZXJhY3Rpb247Ci0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUo
REFUQV9ERVRFQ1RJT04pCiAjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMp
CiAgICAgUmV0YWluUHRyPFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbj4gX21lZGlhQ29udHJvbHND
b250ZXh0TWVudUludGVyYWN0aW9uOwogICAgIFJldGFpblB0cjxVSU1lbnU+IF9tZWRpYUNvbnRy
b2xzQ29udGV4dE1lbnU7CiAgICAgV2ViQ29yZTo6RmxvYXRSZWN0IF9tZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnVUYXJnZXRGcmFtZTsKICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6
Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4gX21lZGlhQ29udHJvbHNDb250ZXh0
TWVudUNhbGxiYWNrOwogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01F
TlVTKQorI2VuZGlmIC8vIFVTRShVSUNPTlRFWFRNRU5VKQogICAgIFdlYWtPYmpDUHRyPFVJVmll
dz4gX3ZpZXc7CiAgICAgQk9PTCBfbmVlZHNMaW5rSW5kaWNhdG9yOwogICAgIEJPT0wgX2lzUHJl
c2VudGluZ0REVXNlckludGVyZmFjZTsKQEAgLTEzMywxMiArMTM1LDE0IEBAIC0gKGlkKWluaXRX
aXRoVmlldzooVUlWaWV3ICopdmlldwogLSAodm9pZClkZWFsbG9jCiB7CiAgICAgW3NlbGYgY2xl
YW51cFNoZWV0XTsKKyNpZiBVU0UoVUlDT05URVhUTUVOVSkKICNpZiBFTkFCTEUoREFUQV9ERVRF
Q1RJT04pCiAgICAgW3NlbGYgX3JlbW92ZURhdGFEZXRlY3RvckNvbnRleHRNZW51SW50ZXJhY3Rp
b25dOwogI2VuZGlmIC8vIEVOQUJMRShEQVRBX0RFVEVDVElPTikKICNpZiBFTkFCTEUoTUVESUFf
Q09OVFJPTFNfQ09OVEVYVF9NRU5VUykKICAgICBbc2VsZiBfcmVtb3ZlTWVkaWFDb250cm9sc0Nv
bnRleHRNZW51SW50ZXJhY3Rpb25dOwogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19D
T05URVhUX01FTlVTKQorI2VuZGlmIC8vIFVTRShVSUNPTlRFWFRNRU5VKQogICAgIFtzdXBlciBk
ZWFsbG9jXTsKIH0KIApAQCAtNzg5LDYgKzc5Myw4IEBAIC0gKHZvaWQpc2hvd0RhdGFEZXRlY3Rv
cnNVSUZvclBvc2l0aW9uSW5mb3JtYXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZv
CiAjZW5kaWYgLy8gRU5BQkxFKERBVEFfREVURUNUSU9OKQogfQogCisjaWYgVVNFKFVJQ09OVEVY
VE1FTlUpCisKICNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKIAogLSAo
TlNBcnJheTxVSU1lbnVFbGVtZW50ICo+ICopX3VpTWVudUVsZW1lbnRzRm9yTWVkaWFDb250cm9s
Q29udGV4dE1lbnVJdGVtczooVmVjdG9yPFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVu
dUl0ZW0+JiYpIGl0ZW1zCkBAIC04MDcsNyArODEzLDcgQEAgLSAoTlNBcnJheTxVSU1lbnVFbGVt
ZW50ICo+ICopX3VpTWVudUVsZW1lbnRzRm9yTWVkaWFDb250cm9sQ29udGV4dE1lbnVJdGVtczoo
VmUKIAogICAgICAgICAgICAgc3Ryb25nU2VsZi0+X21lZGlhQ29udHJvbHNDb250ZXh0TWVudUNh
bGxiYWNrKHNlbGVjdGVkSXRlbUlEKTsKICAgICAgICAgfV07Ci0gICAgICAgIGlmIChpdGVtLmlz
Q2hlY2tlZCkKKyAgICAgICAgaWYgKGl0ZW0uY2hlY2tlZCkKICAgICAgICAgICAgIGFjdGlvbi5z
dGF0ZSA9IFVJTWVudUVsZW1lbnRTdGF0ZU9uOwogICAgICAgICByZXR1cm4gYWN0aW9uOwogICAg
IH0pLmF1dG9yZWxlYXNlKCk7CkBAIC04MzMsOCArODM5LDYgQEAgLSAodm9pZClzaG93TWVkaWFD
b250cm9sc0NvbnRleHRNZW51OihXZWJDb3JlOjpGbG9hdFJlY3QmJil0YXJnZXRGcmFtZSBpdGVt
czooVmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQog
Ci0jaWYgVVNFKFVJQ09OVEVYVE1FTlUpCi0KIHN0YXRpYyBOU0FycmF5PFVJTWVudUVsZW1lbnQg
Kj4gKm1lbnVFbGVtZW50c0Zyb21EZWZhdWx0QWN0aW9ucyhSZXRhaW5QdHI8TlNBcnJheT4gZGVm
YXVsdEVsZW1lbnRBY3Rpb25zLCBSZXRhaW5QdHI8X1dLQWN0aXZhdGVkRWxlbWVudEluZm8+IGVs
ZW1lbnRJbmZvKQogewogICAgIGlmICghW2RlZmF1bHRFbGVtZW50QWN0aW9ucyBjb3VudF0pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLmgKaW5kZXggMDNjZDc0MTNlNjc0OTBkYzA0YmU1Y2VlYjE1ZDMxMzI1NjcxYjc0Zi4u
ODY5MzdkYzNhYmQ0Zjc0ODkzOWYzNTRiYWNmY2RlN2MyNjVhNmM5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApA
QCAtNjgwLDkgKzY4MCw5IEBAIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04o
REVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAtICh2b2lkKV9zZXRN
b3VzZUV2ZW50UG9saWN5OihXZWJDb3JlOjpNb3VzZUV2ZW50UG9saWN5KXBvbGljeTsKICNlbmRp
ZgogCi0jaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjaWYgRU5BQkxF
KE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogLSAo
dm9pZClfc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudTooV2ViQ29yZTo6RmxvYXRSZWN0JiYp
dGFyZ2V0RnJhbWUgaXRlbXM6KFZlY3RvcjxXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1l
bnVJdGVtPiYmKWl0ZW1zIGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4mJiljb21wbGV0aW9u
SGFuZGxlcjsKLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykK
KyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJ
Q09OVEVYVE1FTlUpCiAKICNpZiBFTkFCTEUoSU9TX0ZPUk1fQ09OVFJPTF9SRUZSRVNIKQogLSAo
Qk9PTClfZm9ybUNvbnRyb2xSZWZyZXNoRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IGU0Njcz
YjI2NmU1NjMxMzg3YjdlNDk4OTRjZjJiMzdmZmE1NDVlYjIuLjA4NzYwZmFkNzY0NWY1MWM2YWI2
Yzc4NjQxYzJkNjg4MzJjYTU2YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtOTEyNiwxNCArOTEyNiwx
NCBAQCAtICh2b2lkKV9zZXRNb3VzZUV2ZW50UG9saWN5OihXZWJDb3JlOjpNb3VzZUV2ZW50UG9s
aWN5KXBvbGljeQogCiAjZW5kaWYgLy8gSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpCiAK
LSNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyNpZiBFTkFCTEUoTUVE
SUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAKIC0gKHZv
aWQpX3Nob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnU6KFdlYkNvcmU6OkZsb2F0UmVjdCYmKXRh
cmdldEZyYW1lIGl0ZW1zOihWZWN0b3I8V2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51
SXRlbT4mJilpdGVtcyBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCk+JiYpY29tcGxldGlvbkhh
bmRsZXIKIHsKICAgICBbX2FjdGlvblNoZWV0QXNzaXN0YW50IHNob3dNZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnU6V1RGTW92ZSh0YXJnZXRGcmFtZSkgaXRlbXM6V1RGTW92ZShpdGVtcykgY29tcGxl
dGlvbkhhbmRsZXI6V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildOwogfQogCi0jZW5kaWYgLy8g
RU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjZW5kaWYgLy8gRU5BQkxFKE1F
RElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogCiAjaWYg
SEFWRShVSV9QT0lOVEVSX0lOVEVSQUNUSU9OKQogCkBAIC05NjA5LDEwICs5NjA5LDEwIEBAIC0g
KE5TRGljdGlvbmFyeSAqKV9jb250ZW50c09mVXNlckludGVyZmFjZUl0ZW06KE5TU3RyaW5nICop
dXNlckludGVyZmFjZUl0ZW0KICAgICB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShNRURJQV9DT05U
Uk9MU19DT05URVhUX01FTlVTKQorI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01F
TlVTKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKICAgICBpZiAoW3VzZXJJbnRlcmZhY2VJdGVtIGlz
RXF1YWxUb1N0cmluZzpAIm1lZGlhQ29udHJvbHNDb250ZXh0TWVudSJdKQogICAgICAgICByZXR1
cm4gQHsgdXNlckludGVyZmFjZUl0ZW06IFtfYWN0aW9uU2hlZXRBc3Npc3RhbnQgY3VycmVudGx5
QXZhaWxhYmxlTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbXNdIH07Ci0jZW5kaWYgLy8gRU5B
QkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjZW5kaWYgLy8gRU5BQkxFKE1FRElB
X0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogCiAgICAgaWYg
KFt1c2VySW50ZXJmYWNlSXRlbSBpc0VxdWFsVG9TdHJpbmc6QCJmaWxlVXBsb2FkUGFuZWxNZW51
Il0pIHsKICAgICAgICAgaWYgKCFfZmlsZVVwbG9hZFBhbmVsKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAppbmRleCBjMzdlYjIzZmY1NDA2ZTkz
MDQzZjlmNzg4NmJmZTYwMjJhY2Y5OTJmLi41OTM0ZGEzZGM0MjRhNjI5ZDkwYWM5ZjE4MzE3NWFl
N2EzYjMxOTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNs
aWVudEltcGxNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGxNYWMuaApAQCAtMTM3LDYgKzEzNyw4IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYlBv
cHVwTWVudVByb3h5PiBjcmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmKSBvdmVycmlk
ZTsKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICBSZWY8V2ViQ29udGV4dE1lbnVQcm94
eT4gY3JlYXRlQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJveHkmLCBDb250ZXh0TWVudUNvbnRl
eHREYXRhJiYsIGNvbnN0IFVzZXJEYXRhJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRTaG93Q29u
dGV4dE1lbnUoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZERpc21pc3NDb250ZXh0TWVudSgpIG92
ZXJyaWRlOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQppbmRleCA1NmI0
NDAyMTM1MzJlM2I1ZjlmM2Y2M2JhNDlmNDk0Yjk4YzFkOTRiLi4xOGYzNzNhMjNkODdmNDBmNzVi
YWQ0OWMwZWEzMDIxY2VjNTllYWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCkBAIC00OSw3ICs0OSw3IEBACiAjaW1wb3J0ICJXS1N0
cmluZ0NGLmgiCiAjaW1wb3J0ICJXS1ZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJWaWV3
SW50ZXJuYWwuaCIKLSNpbXBvcnQgIldLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nTWFjLmgiCisj
aW1wb3J0ICJXS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oIgogI2ltcG9ydCAiV2ViQ29sb3JQ
aWNrZXJNYWMuaCIKICNpbXBvcnQgIldlYkNvbnRleHRNZW51UHJveHlNYWMuaCIKICNpbXBvcnQg
IldlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bk1hYy5oIgpAQCAtNDk2LDExICs0OTYsMjMg
QEAgUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlUG9wdXBN
ZW51UHJveHkoV2ViUGFnZVByb3h5JiBwYWcKIH0KIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVT
KQorCiBSZWY8V2ViQ29udGV4dE1lbnVQcm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZUNvbnRl
eHRNZW51UHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYg
Y29udGV4dCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIHJldHVybiBXZWJDb250
ZXh0TWVudVByb3h5TWFjOjpjcmVhdGUobV92aWV3LCBwYWdlLCBXVEZNb3ZlKGNvbnRleHQpLCB1
c2VyRGF0YSk7CiB9Ci0jZW5kaWYKKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkU2hvd0NvbnRl
eHRNZW51KCkKK3sKKyAgICBbbV93ZWJWaWV3IF9kaWRTaG93Q29udGV4dE1lbnVdOworfQorCit2
b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWREaXNtaXNzQ29udGV4dE1lbnUoKQoreworICAgIFttX3dl
YlZpZXcgX2RpZERpc21pc3NDb250ZXh0TWVudV07Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoQ09O
VEVYVF9NRU5VUykKIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogUmVmUHRyPFdlYkNv
bG9yUGlja2VyPiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29sb3JQaWNrZXIoV2ViUGFnZVByb3h5
KiBwYWdlLCBjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiByZWN0LCBWZWN0b3I8V2ViQ29yZTo6Q29sb3I+JiYgc3VnZ2VzdGlvbnMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94
eU1hYy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlN
YWMuaAppbmRleCAwYmIwN2U2NzlmMzBlN2IzNjgyYjM3MzZiNTM3MmNiYmIyZDMxZWM4Li41NjA2
MWFmYzNkMDNlYjFkM2VkOTlhMzlkYWNkNmNjYWQzNjEwOWJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLmgKQEAgLTM1LDYg
KzM1LDcgQEAgT0JKQ19DTEFTUyBOU01lbnU7CiBPQkpDX0NMQVNTIE5TTWVudUl0ZW07CiBPQkpD
X0NMQVNTIE5TVmlldzsKIE9CSkNfQ0xBU1MgTlNXaW5kb3c7CitPQkpDX0NMQVNTIFdLTWVudURl
bGVnYXRlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNzIsNyArNzMsMTEgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHNldHVwU2VydmljZXNNZW51KCk7CiAjZW5kaWYKIAorICAgIE5TTWVudSAq
cGxhdGZvcm1NZW51KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgTlNBcnJheSAqcGxhdGZvcm1EYXRh
KCkgY29uc3Qgb3ZlcnJpZGU7CisKICAgICBSZXRhaW5QdHI8TlNNZW51PiBtX21lbnU7CisgICAg
UmV0YWluUHRyPFdLTWVudURlbGVnYXRlPiBtX21lbnVEZWxlZ2F0ZTsKICAgICBXZWFrT2JqQ1B0
cjxOU1ZpZXc+IG1fd2ViVmlldzsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KaW5kZXggZjBmYWYxMTQwOGRiMDU1
MzVmYmM4ZjQ0YmY5Y2YxMGQ4ODRmYmI2Ny4uNmJmZmQxNGRlNDQ4MWE0ZjQ2Y2I3MDBlZDdhMzUw
NGE1NTQ2NzU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNv
bnRleHRNZW51UHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dl
YkNvbnRleHRNZW51UHJveHlNYWMubW0KQEAgLTMwLDYgKzMwLDcgQEAKIAogI2ltcG9ydCAiQVBJ
Q29udGV4dE1lbnVDbGllbnQuaCIKICNpbXBvcnQgIk1lbnVVdGlsaXRpZXMuaCIKKyNpbXBvcnQg
IlBhZ2VDbGllbnRJbXBsTWFjLmgiCiAjaW1wb3J0ICJTZXJ2aWNlc0NvbnRyb2xsZXIuaCIKICNp
bXBvcnQgIlNoYXJlYWJsZUJpdG1hcC5oIgogI2ltcG9ydCAiV0tNZW51SXRlbUlkZW50aWZpZXJz
UHJpdmF0ZS5oIgpAQCAtMTQ3LDYgKzE0OCwzOCBAQCAtICh2b2lkKWZvcndhcmRDb250ZXh0TWVu
dUFjdGlvbjooaWQpc2VuZGVyCiAKIEBlbmQKIAorQGludGVyZmFjZSBXS01lbnVEZWxlZ2F0ZSA6
IE5TT2JqZWN0IDxOU01lbnVEZWxlZ2F0ZT4geworICAgIFdlYktpdDo6V2ViQ29udGV4dE1lbnVQ
cm94eU1hYyogX21lbnVQcm94eTsKK30KKy0oaW5zdGFuY2V0eXBlKWluaXRXaXRoTWVudVByb3h5
OihXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWMmKW1lbnVQcm94eTsKK0BlbmQKKworQGlt
cGxlbWVudGF0aW9uIFdLTWVudURlbGVnYXRlCisKKy0oaW5zdGFuY2V0eXBlKWluaXRXaXRoTWVu
dVByb3h5OihXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWMmKW1lbnVQcm94eQoreworICAg
IGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAg
X21lbnVQcm94eSA9ICZtZW51UHJveHk7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworI3ByYWdt
YSBtYXJrIC0gTlNNZW51RGVsZWdhdGUKKworLSAodm9pZCltZW51V2lsbE9wZW46KE5TTWVudSAq
KW1lbnUKK3sKKyAgICBfbWVudVByb3h5LT5wYWdlKCktPnBhZ2VDbGllbnQoKS5kaWRTaG93Q29u
dGV4dE1lbnUoKTsKK30KKworLSAodm9pZCltZW51RGlkQ2xvc2U6KE5TTWVudSAqKW1lbnUKK3sK
KyAgICBfbWVudVByb3h5LT5wYWdlKCktPnBhZ2VDbGllbnQoKS5kaWREaXNtaXNzQ29udGV4dE1l
bnUoKTsKK30KKworQGVuZAorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCkBAIC00OTksNiArNTMyLDcgQEAgdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFj
OjpnZXRDb250ZXh0TWVudUl0ZW0oY29uc3QgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYgaXQKICAg
ICAgICAgW21lbnVJdGVtIHNldFRhZzppdGVtLmFjdGlvbigpXTsKICAgICAgICAgW21lbnVJdGVt
IHNldEVuYWJsZWQ6aXRlbS5lbmFibGVkKCldOwogICAgICAgICBbbWVudUl0ZW0gc2V0U3RhdGU6
aXRlbS5jaGVja2VkKCkgPyBOU0NvbnRyb2xTdGF0ZVZhbHVlT24gOiBOU0NvbnRyb2xTdGF0ZVZh
bHVlT2ZmXTsKKyAgICAgICAgW21lbnVJdGVtIHNldEluZGVudGF0aW9uTGV2ZWw6aXRlbS5pbmRl
bnRhdGlvbkxldmVsKCldOwogICAgICAgICBbbWVudUl0ZW0gc2V0VGFyZ2V0OltXS01lbnVUYXJn
ZXQgc2hhcmVkTWVudVRhcmdldF1dOwogICAgICAgICBbbWVudUl0ZW0gc2V0SWRlbnRpZmllcjpt
ZW51SXRlbUlkZW50aWZpZXIoaXRlbS5hY3Rpb24oKSldOwogCkBAIC01MTYsOSArNTUwLDEwIEBA
IHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6Z2V0Q29udGV4dE1lbnVJdGVtKGNvbnN0IFdl
YkNvbnRleHRNZW51SXRlbURhdGEmIGl0CiAgICAgICAgIHJldHVybjsKIAogICAgIGNhc2UgV2Vi
Q29yZTo6U3VibWVudVR5cGU6IHsKLSAgICAgICAgZ2V0Q29udGV4dE1lbnVGcm9tSXRlbXMoaXRl
bS5zdWJtZW51KCksIFthY3Rpb24gPSBpdGVtLmFjdGlvbigpLCBjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBlbmFibGVkID0gaXRlbS5lbmFibGVkKCksIHRp
dGxlID0gaXRlbS50aXRsZSgpXShOU01lbnUgKm1lbnUpIG11dGFibGUgeworICAgICAgICBnZXRD
b250ZXh0TWVudUZyb21JdGVtcyhpdGVtLnN1Ym1lbnUoKSwgW2FjdGlvbiA9IGl0ZW0uYWN0aW9u
KCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGVuYWJs
ZWQgPSBpdGVtLmVuYWJsZWQoKSwgdGl0bGUgPSBpdGVtLnRpdGxlKCksIGluZGVudGF0aW9uTGV2
ZWwgPSBpdGVtLmluZGVudGF0aW9uTGV2ZWwoKV0oTlNNZW51ICptZW51KSBtdXRhYmxlIHsKICAg
ICAgICAgICAgIGF1dG8gbWVudUl0ZW0gPSBhZG9wdE5TKFtbTlNNZW51SXRlbSBhbGxvY10gaW5p
dFdpdGhUaXRsZTp0aXRsZSBhY3Rpb246bnVsbHB0ciBrZXlFcXVpdmFsZW50OkAiIl0pOwogICAg
ICAgICAgICAgW21lbnVJdGVtIHNldEVuYWJsZWQ6ZW5hYmxlZF07CisgICAgICAgICAgICBbbWVu
dUl0ZW0gc2V0SW5kZW50YXRpb25MZXZlbDppbmRlbnRhdGlvbkxldmVsXTsKICAgICAgICAgICAg
IFttZW51SXRlbSBzZXRTdWJtZW51Om1lbnVdOwogICAgICAgICAgICAgW21lbnVJdGVtIHNldElk
ZW50aWZpZXI6bWVudUl0ZW1JZGVudGlmaWVyKGFjdGlvbildOwogICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIobWVudUl0ZW0uZ2V0KCkpOwpAQCAtNTcxLDEwICs2MDYsMjIgQEAgdm9pZCBX
ZWJDb250ZXh0TWVudVByb3h5TWFjOjp1c2VDb250ZXh0TWVudUl0ZW1zKFZlY3RvcjxSZWY8V2Vi
Q29udGV4dE1lbnVJdGVtPj4KICAgICAgICAgfQogCiAgICAgICAgIFtbV0tNZW51VGFyZ2V0IHNo
YXJlZE1lbnVUYXJnZXRdIHNldE1lbnVQcm94eTp0aGlzXTsKLSAgICAgICAgcGFnZSgpLT5jb250
ZXh0TWVudUNsaWVudCgpLm1lbnVGcm9tUHJvcG9zZWRNZW51KCpwYWdlKCksIG1lbnUsIG1fY29u
dGV4dC53ZWJIaXRUZXN0UmVzdWx0RGF0YSgpLCBtX3VzZXJEYXRhLm9iamVjdCgpLCBbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldKFJldGFpblB0cjxOU01lbnU+
JiYgbWVudSkgeworCisgICAgICAgIGF1dG8gbWVudUZyb21Qcm9wb3NlZE1lbnUgPSBbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldIChSZXRhaW5QdHI8TlNNZW51
PiYmIG1lbnUpIHsKKyAgICAgICAgICAgIG1fbWVudURlbGVnYXRlID0gYWRvcHROUyhbW1dLTWVu
dURlbGVnYXRlIGFsbG9jXSBpbml0V2l0aE1lbnVQcm94eToqdGhpc10pOworCiAgICAgICAgICAg
ICBtX21lbnUgPSBXVEZNb3ZlKG1lbnUpOworICAgICAgICAgICAgW21fbWVudSBzZXREZWxlZ2F0
ZTptX21lbnVEZWxlZ2F0ZS5nZXQoKV07CisKICAgICAgICAgICAgIFdlYkNvbnRleHRNZW51UHJv
eHk6OnVzZUNvbnRleHRNZW51SXRlbXMoeyB9KTsKLSAgICAgICAgfSk7CisgICAgICAgIH07CisK
KyAgICAgICAgaWYgKG1fY29udGV4dC50eXBlKCkgIT0gQ29udGV4dE1lbnVDb250ZXh0OjpUeXBl
OjpDb250ZXh0TWVudSkgeworICAgICAgICAgICAgbWVudUZyb21Qcm9wb3NlZE1lbnUobWVudSk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBwYWdlKCktPmNvbnRl
eHRNZW51Q2xpZW50KCkubWVudUZyb21Qcm9wb3NlZE1lbnUoKnBhZ2UoKSwgbWVudSwgbV9jb250
ZXh0LndlYkhpdFRlc3RSZXN1bHREYXRhKCksIG1fdXNlckRhdGEub2JqZWN0KCksIFdURk1vdmUo
bWVudUZyb21Qcm9wb3NlZE1lbnUpKTsKICAgICB9KTsKIH0KIApAQCAtNTgzLDYgKzYzMCw1MyBA
QCBOU1dpbmRvdyAqV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6d2luZG93KCkgY29uc3QKICAgICBy
ZXR1cm4gW21fd2ViVmlldyB3aW5kb3ddOwogfQogCitOU01lbnUgKldlYkNvbnRleHRNZW51UHJv
eHlNYWM6OnBsYXRmb3JtTWVudSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbWVudS5nZXQoKTsK
K30KKworc3RhdGljIE5TRGljdGlvbmFyeSAqY29udGVudHNPZkNvbnRleHRNZW51SXRlbShOU01l
bnVJdGVtICppdGVtKQoreworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIHJlc3VsdCA9IE5TTXV0
YWJsZURpY3Rpb25hcnkuZGljdGlvbmFyeTsKKworICAgIGlmIChpdGVtLnRpdGxlLmxlbmd0aCkK
KyAgICAgICAgcmVzdWx0W0AidGl0bGUiXSA9IGl0ZW0udGl0bGU7CisKKyAgICBpZiAoaXRlbS5p
c1NlcGFyYXRvckl0ZW0pCisgICAgICAgIHJlc3VsdFtAInNlcGFyYXRvciJdID0gQFlFUzsKKyAg
ICBlbHNlIGlmICghaXRlbS5lbmFibGVkKQorICAgICAgICByZXN1bHRbQCJlbmFibGVkIl0gPSBA
Tk87CisKKyAgICBpZiAoTlNJbnRlZ2VyIGluZGVudGF0aW9uTGV2ZWwgPSBpdGVtLmluZGVudGF0
aW9uTGV2ZWwpCisgICAgICAgIHJlc3VsdFtAImluZGVudGF0aW9uTGV2ZWwiXSA9IFtOU051bWJl
ciBudW1iZXJXaXRoSW50ZWdlcjppbmRlbnRhdGlvbkxldmVsXTsKKworICAgIGlmIChpdGVtLnN0
YXRlID09IE5TQ29udHJvbFN0YXRlVmFsdWVPbikKKyAgICAgICAgcmVzdWx0W0AiY2hlY2tlZCJd
ID0gQFlFUzsKKworICAgIGlmIChOU0FycmF5PE5TTWVudUl0ZW0gKj4gKnN1Ym1lbnVJdGVtcyA9
IGl0ZW0uc3VibWVudS5pdGVtQXJyYXkpIHsKKyAgICAgICAgTlNNdXRhYmxlQXJyYXkgKmNoaWxk
cmVuID0gW05TTXV0YWJsZUFycmF5IGFycmF5V2l0aENhcGFjaXR5OnN1Ym1lbnVJdGVtcy5jb3Vu
dF07CisgICAgICAgIGZvciAoTlNNZW51SXRlbSAqc3VibWVudUl0ZW0gOiBzdWJtZW51SXRlbXMp
CisgICAgICAgICAgICBbY2hpbGRyZW4gYWRkT2JqZWN0OmNvbnRlbnRzT2ZDb250ZXh0TWVudUl0
ZW0oc3VibWVudUl0ZW0pXTsKKyAgICAgICAgcmVzdWx0W0AiY2hpbGRyZW4iXSA9IGNoaWxkcmVu
OworICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK05TQXJyYXkgKldlYkNvbnRleHRN
ZW51UHJveHlNYWM6OnBsYXRmb3JtRGF0YSgpIGNvbnN0Cit7CisgICAgTlNNdXRhYmxlQXJyYXkg
KnJlc3VsdCA9IE5TTXV0YWJsZUFycmF5LmFycmF5OworCisgICAgaWYgKE5TQXJyYXk8TlNNZW51
SXRlbSAqPiAqc3VibWVudUl0ZW1zID0gW21fbWVudSBpdGVtQXJyYXldKSB7CisgICAgICAgIE5T
TXV0YWJsZUFycmF5ICpjaGlsZHJlbiA9IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhDYXBhY2l0
eTpzdWJtZW51SXRlbXMuY291bnRdOworICAgICAgICBmb3IgKE5TTWVudUl0ZW0gKnN1Ym1lbnVJ
dGVtIDogc3VibWVudUl0ZW1zKQorICAgICAgICAgICAgW2NoaWxkcmVuIGFkZE9iamVjdDpjb250
ZW50c09mQ29udGV4dE1lbnVJdGVtKHN1Ym1lbnVJdGVtKV07CisgICAgICAgIFtyZXN1bHQgYWRk
T2JqZWN0OkB7IEAiY2hpbGRyZW4iOiBjaGlsZHJlbiB9XTsKKyAgICB9CisKKyAgICByZXR1cm4g
cmVzdWx0OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JN
KE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJv
eHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1t
CmluZGV4IGYxYjFmZmZjMjFhMjhjMWRkZDFiMjAxNTJhNzU0M2I4YjYzM2UxMTIuLmYxMTYxNDIx
MzUzMmY4NjZkM2UyZTNmMjY4NThmN2ZlYTZlMDc2MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQpAQCAtNjMzLDYgKzYzMywxMyBAQCBOU1dp
bmRvdyAqV2ViUGFnZVByb3h5OjpwYXltZW50Q29vcmRpbmF0b3JQcmVzZW50aW5nV2luZG93KGNv
bnN0IFdlYlBheW1lbnRDb29yZAogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAKK05TTWVu
dSAqV2ViUGFnZVByb3h5OjpwbGF0Zm9ybUFjdGl2ZUNvbnRleHRNZW51KCkgY29uc3QKK3sKKyAg
ICBpZiAobV9hY3RpdmVDb250ZXh0TWVudSkKKyAgICAgICAgcmV0dXJuIG1fYWN0aXZlQ29udGV4
dE1lbnUtPnBsYXRmb3JtTWVudSgpOworICAgIHJldHVybiBuaWw7Cit9CisKIHZvaWQgV2ViUGFn
ZVByb3h5OjpwbGF0Zm9ybURpZFNlbGVjdEl0ZW1Gcm9tQWN0aXZlQ29udGV4dE1lbnUoY29uc3Qg
V2ViQ29udGV4dE1lbnVJdGVtRGF0YSYgaXRlbSkKIHsKICAgICBpZiAoaXRlbS5hY3Rpb24oKSA9
PSBDb250ZXh0TWVudUl0ZW1UYWdQYXN0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggNDY3
NDlkMzAyMTc2Mzg3ZDk4YmU0YmQwNWJhZjFmZmQzYTVjM2JiZS4uNGMwZTMzZWNkYzhlM2MxZGYw
MzFkMTg5OTMzZDAwNmFiODliMDdiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTE0NTQs
MTMgKzE0NTQsMTMgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RJbWFnZUV4dHJhY3Rp
b24oRWxlbWVudCYgZWxlbWVudCkKIAogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVESUFfQ09OVFJP
TFNfQ09OVEVYVF9NRU5VUykKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5V
UykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzaG93TWVk
aWFDb250cm9sc0NvbnRleHRNZW51KEZsb2F0UmVjdCYmIHRhcmdldEZyYW1lLCBWZWN0b3I8TWVk
aWFDb250cm9sc0NvbnRleHRNZW51SXRlbT4mJiBpdGVtcywgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgbV9wYWdlLnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoV1RGTW92ZSh0YXJn
ZXRGcmFtZSksIFdURk1vdmUoaXRlbXMpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9
CiAKLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyNlbmRp
ZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVY
VE1FTlUpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGVm
ZjJlOTA5ZTRlMmFhYzU2MzVmOWM2MDE0ODdkYWUzZWNkYzU1ODYuLjE3OTJkNDM0OGRlNjUwNjYw
NjgwNGI2YzVlZTQyYzUyNGYzZjQzZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTQxOCw5ICs0
MTgsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdEltYWdlRXh0cmFjdGlvbihXZWJDb3Jl
OjpFbGVtZW50JikgZmluYWw7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19D
T05URVhUX01FTlVTKQorI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAm
JiBVU0UoVUlDT05URVhUTUVOVSkKICAgICB2b2lkIHNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1l
bnUoV2ViQ29yZTo6RmxvYXRSZWN0JiYsIFZlY3RvcjxXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnVJdGVtPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok1lZGlhQ29u
dHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4mJikgZmluYWw7Ci0jZW5kaWYgLy8gRU5BQkxFKE1F
RElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRS
T0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogCiAgICAgbXV0YWJsZSBi
b29sIG1fY2FjaGVkTWFpbkZyYW1lSGFzSG9yaXpvbnRhbFNjcm9sbGJhciB7IGZhbHNlIH07CiAg
ICAgbXV0YWJsZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFzVmVydGljYWxTY3JvbGxiYXIgeyBm
YWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApp
bmRleCBlNjJiYzM0NWYwNzE1M2NjNzM5NDFkZTk5OTQ3ODFmMTJjYjkzYTUwLi5hZGYwZjc3Yzgz
ZjcyZTEwMzNmMjMzNjQ0Y2VhMzcyZTI0OTU1YzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNzI4MCwxMiArNzI4MCwxMiBAQCB2b2lkIFdl
YlBhZ2U6OnVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQoSW1hZ2VFeHRyYWN0aW9uUmVz
dWx0JiYgcmVzdWx0LCBjbwogCiAjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCiAK
LSNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyNpZiBFTkFCTEUoTUVE
SUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiB2b2lkIFdl
YlBhZ2U6OnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoRmxvYXRSZWN0JiYgdGFyZ2V0RnJh
bWUsIFZlY3RvcjxNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiYmIGl0ZW1zLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6U2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShXVEZNb3ZlKHRhcmdldEZyYW1l
KSwgV1RGTW92ZShpdGVtcykpLCBjb21wbGV0aW9uSGFuZGxlcik7CiB9Ci0jZW5kaWYgLy8gRU5B
QkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjZW5kaWYgLy8gRU5BQkxFKE1FRElB
X0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogCiAjaWYgIVBM
QVRGT1JNKElPU19GQU1JTFkpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAppbmRleCA4NGM1YzQ5ZDcyZDgzMjYzZjhmYmRhNDRkZjgzOGYxYzUyN2VlOGIxLi4y
MGVhN2Q4ODY1ODMyNzJmNTU5YzRlN2JiNmVhMmJlYmZiMzJkY2E0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMzgyLDkgKzEzODIsOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCB1cGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0KFdlYkNvcmU6Oklt
YWdlRXh0cmFjdGlvblJlc3VsdCYmLCBjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGxvY2F0aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRf
TUVOVVMpCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShV
SUNPTlRFWFRNRU5VKQogICAgIHZvaWQgc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShXZWJD
b3JlOjpGbG9hdFJlY3QmJiwgVmVjdG9yPFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVu
dUl0ZW0+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVkaWFDb250cm9sc0Nv
bnRleHRNZW51SXRlbTo6SUQpPiYmKTsKLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNf
Q09OVEVYVF9NRU5VUykKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9N
RU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAKICNpZiBQTEFURk9STShXSU4pCiAgICAgdWlu
dDY0X3QgbmF0aXZlV2luZG93SGFuZGxlKCkgeyByZXR1cm4gbV9uYXRpdmVXaW5kb3dIYW5kbGU7
IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBj
MTRmNjU4MWFmMjljOGExZGNlYWNkNTk1OWZlNzUwZTNlY2Q3Njk3Li40YmM1YWRjYjYxMmI5YWQ4
MDk1MTY2MWRjOTY4N2E1YzAzYzliNGNjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMjEtMDMtMTYgIERldmluIFJv
dXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gY2hhbmdlIGZvciB0
aGUgbGFuZ3VhZ2Uvc3VidGl0bGUgdHJhY2tzIGJ1dHRvbiB0byB1c2UgYW4gYE5TTWVudWAgaW5z
dGVhZCBvZiB3ZWIgY29udGVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjIzMjM5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NTQ2MjM0MD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcubW06CisgICAgICAgICgtW1Rlc3RSdW5u
ZXJXS1dlYlZpZXcgX2RpZFNob3dDb250ZXh0TWVudV0pOgorICAgICAgICAoLVtUZXN0UnVubmVy
V0tXZWJWaWV3IF9kaWREaXNtaXNzQ29udGV4dE1lbnVdKToKKyAgICAgICAgKC1bVGVzdFJ1bm5l
cldLV2ViVmlldyByZXNldEludGVyYWN0aW9uQ2FsbGJhY2tzXSk6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5oOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW06CisgICAgICAg
IChXVFI6OlVJU2NyaXB0Q29udHJvbGxlckNvY29hOjpzZXREaWRTaG93Q29udGV4dE1lbnVDYWxs
YmFjayk6IEFkZGVkLgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXJDb2NvYTo6c2V0
RGlkRGlzbWlzc0NvbnRleHRNZW51Q2FsbGJhY2spOiBBZGRlZC4KKyAgICAgICAgKFdUUjo6VUlT
Y3JpcHRDb250cm9sbGVyQ29jb2E6OmlzU2hvd2luZ0NvbnRleHRNZW51IGNvbnN0KTogQWRkZWQu
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLmg6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1t
OgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXJJT1M6OnNldERpZFNob3dDb250ZXh0
TWVudUNhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVy
SU9TOjpzZXREaWREaXNtaXNzQ29udGV4dE1lbnVDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAg
IChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcklPUzo6aXNTaG93aW5nQ29udGV4dE1lbnUgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICBNb3ZlIHRoZXNlIG1ldGhvZHMgc28gdGhleSBjYW4gYmUgdXNl
ZCBvbiBtYWNPUyB0b28uCisKIDIwMjEtMDMtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIEVuYWJsZSB2aWRlbyBjYXB0dXJlIGluIEdQVVByb2Nlc3MgYnkg
ZGVmYXVsdCBvbiBpT1MKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2Ev
VGVzdFJ1bm5lcldLV2ViVmlldy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0
UnVubmVyV0tXZWJWaWV3LmgKaW5kZXggMDZhNWE2M2IzZGI5Y2Q5YTQxYjkxNGFlMmM5OTU4ZmVm
OGI1NWRmYi4uMjMyODlhNjEyZjU3NzYyYmNhZDE0OTFlZjQwNjdmM2RiZGE0MWE3MSAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3LmgK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3LmgK
QEAgLTM1LDggKzM1LDYgQEAKIAogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5k
aWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjaykodm9pZCk7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRpZEVuZEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxs
YmFjaykodm9pZCk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRpZFNob3dD
b250ZXh0TWVudUNhbGxiYWNrKSh2b2lkKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2
b2lkICheZGlkRGlzbWlzc0NvbnRleHRNZW51Q2FsbGJhY2spKHZvaWQpOwogQHByb3BlcnR5IChu
b25hdG9taWMsIGNvcHkpIHZvaWQgKF53aWxsQmVnaW5ab29taW5nQ2FsbGJhY2spKHZvaWQpOwog
QHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWRFbmRab29taW5nQ2FsbGJhY2sp
KHZvaWQpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWRTaG93S2V5Ym9h
cmRDYWxsYmFjaykodm9pZCk7CkBAIC02NSwxMiArNjMsMTQgQEAKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSwgZ2V0dGVyPWlzU2hvd2luZ0tleWJvYXJkKSBCT09MIHNob3dpbmdLZXli
b2FyZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzRGlzbWlzc2lu
Z01lbnUpIEJPT0wgZGlzbWlzc2luZ01lbnU7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHksIGdldHRlcj1pc1Nob3dpbmdQb3BvdmVyKSBCT09MIHNob3dpbmdQb3BvdmVyOwotQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9aXNTaG93aW5nQ29udGV4dE1lbnUpIEJP
T0wgc2hvd2luZ0NvbnRleHRNZW51OwogQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgQk9P
TCB1c2VzU2FmYXJpTGlrZVJvdGF0aW9uOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
LCBnZXR0ZXI9aXNJbnRlcmFjdGluZ1dpdGhGb3JtQ29udHJvbCkgQk9PTCBpbnRlcmFjdGluZ1dp
dGhGb3JtQ29udHJvbDsKIAogI2VuZGlmCiAKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSwgZ2V0dGVyPWlzU2hvd2luZ0NvbnRleHRNZW51KSBCT09MIHNob3dpbmdDb250ZXh0TWVudTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGlkU2hvd0NvbnRleHRNZW51Q2Fs
bGJhY2spKHZvaWQpOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWREaXNt
aXNzQ29udGV4dE1lbnVDYWxsYmFjaykodm9pZCk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHksIGdldHRlcj1pc1Nob3dpbmdNZW51KSBCT09MIHNob3dpbmdNZW51OwogQHByb3BlcnR5
IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWRTaG93TWVudUNhbGxiYWNrKSh2b2lkKTsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGlkSGlkZU1lbnVDYWxsYmFjaykodm9p
ZCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJX
S1dlYlZpZXcubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dl
YlZpZXcubW0KaW5kZXggOGIwNmFlNWEyZGIyMWQ1MjI1MWM3ZmFmZjYwYmY3NWM1NWFmZTU5Ny4u
MWM0NWJmZDIzOTlhMjRmY2JhNDdjZTBlYjAwZjJiNGQ4ZTY4MDVhOSAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1tCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5tbQpAQCAtMTM2
LDYgKzEzNiwyNiBAQCAtICh2b2lkKWRlYWxsb2MKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CiAK
Ky0gKHZvaWQpX2RpZFNob3dDb250ZXh0TWVudQoreworICAgIGlmIChzZWxmLnNob3dpbmdDb250
ZXh0TWVudSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2VsZi5zaG93aW5nQ29udGV4dE1lbnUg
PSBZRVM7CisgICAgaWYgKHNlbGYuZGlkU2hvd0NvbnRleHRNZW51Q2FsbGJhY2spCisgICAgICAg
IHNlbGYuZGlkU2hvd0NvbnRleHRNZW51Q2FsbGJhY2soKTsKK30KKworLSAodm9pZClfZGlkRGlz
bWlzc0NvbnRleHRNZW51Cit7CisgICAgaWYgKCFzZWxmLnNob3dpbmdDb250ZXh0TWVudSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgc2VsZi5zaG93aW5nQ29udGV4dE1lbnUgPSBOTzsKKyAgICBp
ZiAoc2VsZi5kaWREaXNtaXNzQ29udGV4dE1lbnVDYWxsYmFjaykKKyAgICAgICAgc2VsZi5kaWRE
aXNtaXNzQ29udGV4dE1lbnVDYWxsYmFjaygpOworfQorCiAtICh2b2lkKV9kaWRTaG93TWVudQog
ewogICAgIGlmIChzZWxmLnNob3dpbmdNZW51KQpAQCAtMTc0LDYgKzE5NCw4IEBAIC0gKHZvaWQp
ZGlzbWlzc0FjdGl2ZU1lbnUKIAogLSAodm9pZClyZXNldEludGVyYWN0aW9uQ2FsbGJhY2tzCiB7
CisgICAgc2VsZi5kaWRTaG93Q29udGV4dE1lbnVDYWxsYmFjayA9IG5pbDsKKyAgICBzZWxmLmRp
ZERpc21pc3NDb250ZXh0TWVudUNhbGxiYWNrID0gbmlsOwogICAgIHNlbGYuZGlkU2hvd01lbnVD
YWxsYmFjayA9IG5pbDsKICAgICBzZWxmLmRpZEhpZGVNZW51Q2FsbGJhY2sgPSBuaWw7CiAgICAg
c2VsZi5kaWRTaG93Q29udGFjdFBpY2tlckNhbGxiYWNrID0gbmlsOwpAQCAtMTgxLDggKzIwMyw2
IEBAIC0gKHZvaWQpcmVzZXRJbnRlcmFjdGlvbkNhbGxiYWNrcwogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCiAgICAgc2VsZi5kaWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjayA9
IG5pbDsKICAgICBzZWxmLmRpZEVuZEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjayA9IG5p
bDsKLSAgICBzZWxmLmRpZFNob3dDb250ZXh0TWVudUNhbGxiYWNrID0gbmlsOwotICAgIHNlbGYu
ZGlkRGlzbWlzc0NvbnRleHRNZW51Q2FsbGJhY2sgPSBuaWw7CiAgICAgc2VsZi53aWxsQmVnaW5a
b29taW5nQ2FsbGJhY2sgPSBuaWw7CiAgICAgc2VsZi5kaWRFbmRab29taW5nQ2FsbGJhY2sgPSBu
aWw7CiAgICAgc2VsZi5kaWRTaG93S2V5Ym9hcmRDYWxsYmFjayA9IG5pbDsKQEAgLTIzOCwyNiAr
MjU4LDYgQEAgLSAodm9pZClpbW1lZGlhdGVseURpc21pc3NDb250ZXh0TWVudUlmTmVlZGVkCiAj
ZW5kaWYKIH0KIAotLSAodm9pZClfZGlkU2hvd0NvbnRleHRNZW51Ci17Ci0gICAgaWYgKHNlbGYu
c2hvd2luZ0NvbnRleHRNZW51KQotICAgICAgICByZXR1cm47Ci0KLSAgICBzZWxmLnNob3dpbmdD
b250ZXh0TWVudSA9IFlFUzsKLSAgICBpZiAoc2VsZi5kaWRTaG93Q29udGV4dE1lbnVDYWxsYmFj
aykKLSAgICAgICAgc2VsZi5kaWRTaG93Q29udGV4dE1lbnVDYWxsYmFjaygpOwotfQotCi0tICh2
b2lkKV9kaWREaXNtaXNzQ29udGV4dE1lbnUKLXsKLSAgICBpZiAoIXNlbGYuc2hvd2luZ0NvbnRl
eHRNZW51KQotICAgICAgICByZXR1cm47Ci0KLSAgICBzZWxmLnNob3dpbmdDb250ZXh0TWVudSA9
IE5POwotICAgIGlmIChzZWxmLmRpZERpc21pc3NDb250ZXh0TWVudUNhbGxiYWNrKQotICAgICAg
ICBzZWxmLmRpZERpc21pc3NDb250ZXh0TWVudUNhbGxiYWNrKCk7Ci19Ci0KIC0gKEJPT0wpYmVj
b21lRmlyc3RSZXNwb25kZXIKIHsKICAgICBCT09MIHdhc0ZpcnN0UmVzcG9uZGVyID0gc2VsZi5p
c0ZpcnN0UmVzcG9uZGVyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2Nv
YS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2Nv
YS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5oCmluZGV4IGU4Y2RjM2NmMGMxMTU0MWE4N2RhYzg1
MDFlNzA4ZjY4OGVhY2IxODQuLjU1MDhjMTMwZGYyOTQ3NDI0NTM4MGRlOGQxNzFkOWYwMDk4OTUy
NWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRDb250
cm9sbGVyQ29jb2EuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0
Q29udHJvbGxlckNvY29hLmgKQEAgLTUzLDYgKzUzLDEwIEBAIHByaXZhdGU6CiAgICAgSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IGZpcnN0UmVkb0xhYmVsKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
TlNVbmRvTWFuYWdlciAqcGxhdGZvcm1VbmRvTWFuYWdlcigpIGNvbnN0IG92ZXJyaWRlOwogCisg
ICAgdm9pZCBzZXREaWRTaG93Q29udGV4dE1lbnVDYWxsYmFjayhKU1ZhbHVlUmVmKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHNldERpZERpc21pc3NDb250ZXh0TWVudUNhbGxiYWNrKEpTVmFsdWVSZWYp
IG92ZXJyaWRlOworICAgIGJvb2wgaXNTaG93aW5nQ29udGV4dE1lbnUoKSBjb25zdCBvdmVycmlk
ZTsKKwogICAgIHZvaWQgc2V0RGlkU2hvd01lbnVDYWxsYmFjayhKU1ZhbHVlUmVmKSBvdmVycmlk
ZTsKICAgICB2b2lkIHNldERpZEhpZGVNZW51Q2FsbGJhY2soSlNWYWx1ZVJlZikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBkaXNtaXNzTWVudSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbSBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0KaW5kZXggYmI1
NGEyYTE2NGJhNThkY2RjNDhkMTY3NmQ0NWE5YWM4Y2I0NzY0YS4uNWQ2ODI0OTdhZDI3NDBjYWQ1
M2NkMjQwNTRjMzQ3ZDliYjY2MDNlYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tCkBAIC0zNSw2ICszNSw3IEBA
CiAjaW1wb3J0IDxXZWJLaXQvV0tVUkxDRi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1By
aXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oPgor
I2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAKIEBpbnRlcmZhY2UgV0tXZWJWaWV3IChXS1dlYlZp
ZXdJbnRlcm5hbCkKIC0gKHZvaWQpcGFzdGU6KGlkKXNlbmRlcjsKQEAgLTE3Miw2ICsxNzMsMzEg
QEAgTlNVbmRvTWFuYWdlciAqVUlTY3JpcHRDb250cm9sbGVyQ29jb2E6OnBsYXRmb3JtVW5kb01h
bmFnZXIoKSBjb25zdAogICAgIHJldHVybiBwbGF0Zm9ybUNvbnRlbnRWaWV3KCkudW5kb01hbmFn
ZXI7CiB9CiAKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyQ29jb2E6OnNldERpZFNob3dDb250ZXh0
TWVudUNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgVUlTY3JpcHRDb250cm9s
bGVyOjpzZXREaWRTaG93Q29udGV4dE1lbnVDYWxsYmFjayhjYWxsYmFjayk7CisgICAgd2ViVmll
dygpLmRpZFNob3dDb250ZXh0TWVudUNhbGxiYWNrID0gbWFrZUJsb2NrUHRyKFt0aGlzLCBzdHJv
bmdUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICAgICAgaWYgKCFtX2NvbnRleHQpCisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIG1fY29udGV4dC0+ZmlyZUNhbGxiYWNrKENhbGxiYWNr
VHlwZURpZFNob3dDb250ZXh0TWVudSk7CisgICAgfSkuZ2V0KCk7Cit9CisKK3ZvaWQgVUlTY3Jp
cHRDb250cm9sbGVyQ29jb2E6OnNldERpZERpc21pc3NDb250ZXh0TWVudUNhbGxiYWNrKEpTVmFs
dWVSZWYgY2FsbGJhY2spCit7CisgICAgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWREaXNtaXNz
Q29udGV4dE1lbnVDYWxsYmFjayhjYWxsYmFjayk7CisgICAgd2ViVmlldygpLmRpZERpc21pc3ND
b250ZXh0TWVudUNhbGxiYWNrID0gbWFrZUJsb2NrUHRyKFt0aGlzLCBzdHJvbmdUaGlzID0gbWFr
ZVJlZigqdGhpcyldIHsKKyAgICAgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIG1fY29udGV4dC0+ZmlyZUNhbGxiYWNrKENhbGxiYWNrVHlwZURpZERpc21p
c3NDb250ZXh0TWVudSk7CisgICAgfSkuZ2V0KCk7Cit9CisKK2Jvb2wgVUlTY3JpcHRDb250cm9s
bGVyQ29jb2E6OmlzU2hvd2luZ0NvbnRleHRNZW51KCkgY29uc3QKK3sKKyAgICByZXR1cm4gd2Vi
VmlldygpLmlzU2hvd2luZ0NvbnRleHRNZW51OworfQorCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxl
ckNvY29hOjpzZXREaWRTaG93TWVudUNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCiB7CiAg
ICAgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWRTaG93TWVudUNhbGxiYWNrKGNhbGxiYWNrKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxl
cklPUy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9T
LmgKaW5kZXggN2EzNjkwY2QxODI5MDEyZTcxNTFhNWYyZmQ0YWYwZDEwMjU4MTZjMS4uMzliZjhh
ZWY5ZjUyMjUyMDY3YzAwMzcwMjRjNDViYTMzNGFkNjY4OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLmgKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLmgKQEAgLTE0MCwxNSArMTQw
LDEyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRBbGxvd3NWaWV3cG9ydFNocmlua1RvRml0KGJv
b2wpIG92ZXJyaWRlOwogICAgIHZvaWQgY29weVRleHQoSlNTdHJpbmdSZWYpIG92ZXJyaWRlOwog
ICAgIHZvaWQgaW5zdGFsbFRhcEdlc3R1cmVPbldpbmRvdyhKU1ZhbHVlUmVmKSBvdmVycmlkZTsK
LSAgICBib29sIGlzU2hvd2luZ0NvbnRleHRNZW51KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBzZXRTcGVsbENoZWNrZXJSZXN1bHRzKEpTVmFsdWVSZWYpIG92ZXJyaWRlIHsgfQogCiAgICAg
Ym9vbCBtYXlDb250YWluRWRpdGFibGVFbGVtZW50c0luUmVjdCh1bnNpZ25lZCB4LCB1bnNpZ25l
ZCB5LCB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KSBvdmVycmlkZTsKIAogICAgIHZv
aWQgc2V0RGlkU3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJhY2soSlNWYWx1ZVJlZikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBzZXREaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJh
Y2soSlNWYWx1ZVJlZikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXREaWRTaG93Q29udGV4dE1lbnVD
YWxsYmFjayhKU1ZhbHVlUmVmKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldERpZERpc21pc3NDb250
ZXh0TWVudUNhbGxiYWNrKEpTVmFsdWVSZWYpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0V2lsbEJl
Z2luWm9vbWluZ0NhbGxiYWNrKEpTVmFsdWVSZWYpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0RGlk
RW5kWm9vbWluZ0NhbGxiYWNrKEpTVmFsdWVSZWYpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0RGlk
U2hvd0tleWJvYXJkQ2FsbGJhY2soSlNWYWx1ZVJlZikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0gYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KaW5kZXggYTg3
NGZiMjU3NGNiMjhiYjMzMzAyZmZhNGQyZmJmZDEzYzVhNmJhNC4uNzBiYWY4MzI0ZDcyNjJkZGJm
YTZiODVlYTgyNDY4NjQ5YmVkZDNlZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQpAQCAtOTIyLDI2ICs5MjIsNiBAQCB2b2lk
IFVJU2NyaXB0Q29udHJvbGxlcklPUzo6c2V0RGlkRW5kRm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNh
bGxiYWNrKEpTVmFsdWVSZWYgYwogICAgICAgICBtX2NvbnRleHQtPmZpcmVDYWxsYmFjayhDYWxs
YmFja1R5cGVEaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uKTsKICAgICB9KS5nZXQoKTsKIH0K
LSAgICAKLXZvaWQgVUlTY3JpcHRDb250cm9sbGVySU9TOjpzZXREaWRTaG93Q29udGV4dE1lbnVD
YWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQotewotICAgIFVJU2NyaXB0Q29udHJvbGxlcjo6
c2V0RGlkU2hvd0NvbnRleHRNZW51Q2FsbGJhY2soY2FsbGJhY2spOwotICAgIHdlYlZpZXcoKS5k
aWRTaG93Q29udGV4dE1lbnVDYWxsYmFjayA9IG1ha2VCbG9ja1B0cihbdGhpcywgc3Ryb25nVGhp
cyA9IG1ha2VSZWYoKnRoaXMpXSB7Ci0gICAgICAgIGlmICghbV9jb250ZXh0KQotICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICBtX2NvbnRleHQtPmZpcmVDYWxsYmFjayhDYWxsYmFja1R5cGVE
aWRTaG93Q29udGV4dE1lbnUpOwotICAgIH0pLmdldCgpOwotfQotCi12b2lkIFVJU2NyaXB0Q29u
dHJvbGxlcklPUzo6c2V0RGlkRGlzbWlzc0NvbnRleHRNZW51Q2FsbGJhY2soSlNWYWx1ZVJlZiBj
YWxsYmFjaykKLXsKLSAgICBVSVNjcmlwdENvbnRyb2xsZXI6OnNldERpZERpc21pc3NDb250ZXh0
TWVudUNhbGxiYWNrKGNhbGxiYWNrKTsKLSAgICB3ZWJWaWV3KCkuZGlkRGlzbWlzc0NvbnRleHRN
ZW51Q2FsbGJhY2sgPSBtYWtlQmxvY2tQdHIoW3RoaXMsIHN0cm9uZ1RoaXMgPSBtYWtlUmVmKCp0
aGlzKV0gewotICAgICAgICBpZiAoIW1fY29udGV4dCkKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgbV9jb250ZXh0LT5maXJlQ2FsbGJhY2soQ2FsbGJhY2tUeXBlRGlkRGlzbWlzc0NvbnRl
eHRNZW51KTsKLSAgICB9KS5nZXQoKTsKLX0KIAogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXJJT1M6
OnNldFdpbGxCZWdpblpvb21pbmdDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQogewpAQCAt
MTI2OCwxMSArMTI0OCw2IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVySU9TOjppbnN0YWxsVGFw
R2VzdHVyZU9uV2luZG93KEpTVmFsdWVSZWYgY2FsbGJhY2spCiAgICAgfSkuZ2V0KCk7CiB9CiAK
LWJvb2wgVUlTY3JpcHRDb250cm9sbGVySU9TOjppc1Nob3dpbmdDb250ZXh0TWVudSgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIHdlYlZpZXcoKS5zaG93aW5nQ29udGV4dE1lbnU7Ci19Ci0KIH0KIAog
I2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzBhNDVlYTFjN2Y2YTYyNTE3
Nzk0ZGQwY2MyMDJlNjU0NDhkOWVhOC4uYjU0ODYxOTJkMTg0NjcwNmZkZTZhMTYxMTM0OWUwOTNh
MTIxMGMyZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyNiBAQAorMjAyMS0wMy0xNiAgRGV2aW4gUm91c3Nv
ICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBjaGFuZ2UgZm9yIHRoZSBs
YW5ndWFnZS9zdWJ0aXRsZSB0cmFja3MgYnV0dG9uIHRvIHVzZSBhbiBgTlNNZW51YCBpbnN0ZWFk
IG9mIHdlYiBjb250ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjMyMzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc1NDYyMzQwPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIG1lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9hdXRvLXRleHQtdHJhY2suaHRtbDogQWRkZWQu
CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2F1
dG8tdGV4dC10cmFjay1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9jbGljay10cmFjay1pbi1jb250ZXh0bWVu
dS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvY2xpY2stdHJhY2staW4tY29udGV4dG1lbnUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
aGlkZGVuLXRyYWNrcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaGlkZGVuLXRyYWNrcy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9v
ZmYtdGV4dC10cmFjay5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvb2ZmLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
c2hvdy1jb250ZXh0bWVudS10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3Vw
cG9ydC9zaG93LWNvbnRleHRtZW51LXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24t
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvdGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3Vw
cG9ydC90ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGktZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
aW9zL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tz
LXN1cHBvcnQtYXV0by10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1z
dXBwb3J0LWNsaWNrLXRyYWNrLWluLWNvbnRleHRtZW51Lmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mt
c3VwcG9ydC1jbGljay10cmFjay1pbi1jb250ZXh0bWVudS1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lv
cy90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3Vw
cG9ydC1oaWRkZW4tdHJhY2tzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0
LW9mZi10ZXh0LXRyYWNrLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10
cmFjay1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1zaG93LWNvbnRleHRt
ZW51LXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24uaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3Ry
YWNrcy1zdXBwb3J0LXNob3ctY29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tz
LWJ1dHRvbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNr
LXNlbGVjdGVkLXZpYS1tZWRpYS1hcGkuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LXRl
eHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisg
ICAgICAgIE1vdmUgdGhlIGlPUyB0cmFja3Mgc3VwcG9ydCB0ZXN0cyBvdXQgb2YgYW4gaU9TIGZv
bGRlciBzaW5jZSBtYWNPUyBub3cgYWxzbyB1c2VzIGEgY29udGV4dG1lbnUuCisKKyAgICAgICAg
KiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLWxv
YWRlci5qczoKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcmVzb3VyY2Vz
L21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzOgorICAgICAgICAoc2hvd1RyYWNrc1BhbmVsKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJv
bGxlci9tZWRpYS1jb250cm9sbGVyLWNsaWNrLW9uLXZpZGVvLWJhY2tncm91bmQtdG8tZGlzbWlz
cy10cmFja3MtcGFuZWwtc2hvdWxkLW5vdC10b2dnbGUtcGxheWJhY2suaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbGxlci9t
ZWRpYS1jb250cm9sbGVyLWNsaWNrLW9uLXZpZGVvLWJhY2tncm91bmQtdG8tZGlzbWlzcy10cmFj
a3MtcGFuZWwtc2hvdWxkLW5vdC10b2dnbGUtcGxheWJhY2stZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJh
Y2tzLXBhbmVsLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tz
LXBhbmVsLWNvbnRyb2xzLWJhci1yZW1haW5zLXZpc2libGUtYWZ0ZXItY2xpY2tpbmctb3Zlci1p
dC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWNvbnRyb2xzLWJhci1yZW1haW5zLXZpc2libGUtYWZ0
ZXItY2xpY2tpbmctb3Zlci1pdC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtaGlkZS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3MtcGFuZWwvdHJhY2tzLXBhbmVsLWhpZGUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVs
LWhpZGUtY2xpY2stb3V0c2lkZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWhpZGUtY2xpY2stb3V0
c2lkZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtaGlkZS1lc2Mta2V5Lmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5l
bC90cmFja3MtcGFuZWwtaGlkZS1lc2Mta2V5LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5l
bC1wb3B1bGF0aW9uLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcG9wdWxhdGlvbi1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1wYW5lbC90cmFja3MtcGFuZWwtcG9zaXRpb24tYW5kLXNpemUuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1w
YW5lbC1wb3NpdGlvbi1hbmQtc2l6ZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcHJl
dmVudC1jb250cm9scy1iYXItZnJvbS1mYWRpbmcuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBt
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wcmV2
ZW50LWNvbnRyb2xzLWJhci1mcm9tLWZhZGluZy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFu
ZWwtcHJldmVudC1kZWZhdWx0LW9uLWtleWRvd24uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBt
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wcmV2
ZW50LWRlZmF1bHQtb24ta2V5ZG93bi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcmln
aHQteC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXJpZ2h0LXgtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJh
Y2tzLXBhbmVsLXNlbGVjdC10cmFjay13aXRoLWtleWJvYXJkLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFu
ZWwtc2VsZWN0LXRyYWNrLXdpdGgta2V5Ym9hcmQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBh
bmVsLXNlbGVjdC10cmFjay13aXRoLW1vdXNlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtc2VsZWN0
LXRyYWNrLXdpdGgtbW91c2UtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXVwLWNsaWNr
LW91dHNpZGUtbWVkaWEtZG9lcy1ub3QtZGltaXNzLW1lZGlhLWNvbnRyb2xzLXdoZW4tbWVkaWEt
aXMtcGF1c2VkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtdXAtY2xpY2stb3V0c2lkZS1tZWRpYS1k
b2VzLW5vdC1kaW1pc3MtbWVkaWEtY29udHJvbHMtd2hlbi1tZWRpYS1pcy1wYXVzZWQtZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXVwLWNsaWNrLW92ZXItbWVkaWEtZG9lcy1ub3QtZGlt
aXNzLW1lZGlhLWNvbnRyb2xzLXdoZW4tbWVkaWEtaXMtcGxheWluZy5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tz
LXBhbmVsLXVwLWNsaWNrLW92ZXItbWVkaWEtZG9lcy1ub3QtZGltaXNzLW1lZGlhLWNvbnRyb2xz
LXdoZW4tbWVkaWEtaXMtcGxheWluZy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3Vw
cG9ydC1hdXRvLXRleHQtdHJhY2suaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWF1dG8t
dGV4dC10cmFjay1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1jbGljay10
cmFjay1pbi1wYW5lbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtY2xpY2stdHJhY2st
aW4tcGFuZWwtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRy
YWNrcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC9tYWMvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9t
YWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1hbmQtcG9wdWxhdGUtcGFuZWwuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFj
L3RyYWNrcy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBv
cnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmctY29udHJvbHMu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmct
Y29udHJvbHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5l
bC1mdWxsc2NyZWVuLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1
bGxzY3JlZW4tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5l
bC10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFj
a3Mtc3VwcG9ydC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24t
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxlY3Rl
ZC12aWEtbWVkaWEtYXBpLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNr
LXNlbGVjdGVkLXZpYS1tZWRpYS1hcGktZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICBS
ZW1vdmUgZXZlcnl0aGluZyByZWxhdGVkIHRvIGBUcmFja3NQYW5lbGAgbm93IHRoYXQgbWFjT1Mg
YWxzbyB1c2VzIGEgY29udGV4dG1lbnUuCisKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvY2FwdGlvbnMtb2Zmc2V0LXdpdGgtY29udHJvbHMtYmFy
Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtY2FwdGlvbnMtb2Zmc2V0LXdpdGgtY29u
dHJvbHMtYmFyLmh0bWwuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1zdXBwb3J0L2NhcHRpb25zLW9mZnNldC13aXRoLWNvbnRyb2xzLWJhci1leHBlY3RlZC50
eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtY2FwdGlvbnMtb2Zmc2V0LXdpdGgtY29udHJv
bHMtYmFyLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvbm8tdHJhY2tzLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBv
cnQtbm8tdHJhY2tzLmh0bWwuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1zdXBwb3J0L25vLXRyYWNrcy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tz
LXN1cHBvcnQtbm8tdHJhY2tzLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgUmVuYW1lZCB0aGVzZSB0
ZXN0cyB0byByZW1vdmUgdGhlIHJlZHVuZGFudCAidHJhY2tzLXN1cHBvcnQiLgorCisgICAgICAg
ICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBw
b3J0LWF1ZGlvLXRyYWNrcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1hdWRpby10cmFja3Mt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrcy5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgIFRoZXNlIHRlc3RzIGFyZSBjb3ZlcmVkIGJ5IHRoZSBvdGhlciBhZGRlZC9yZW5hbWVkIHRl
c3RzIGFib3ZlLgorCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29z
LWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9s
cy1idXR0b25zLXN0eWxlcy5odG1sOgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVk
aWEtY29udHJvbHMtYnV0dG9ucy1zdHlsZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIG1lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21h
Y29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtY29uc3RydWN0b3IuaHRtbDoKKyAgICAgICAg
KiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250
cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWNvbnN0cnVjdG9yLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNj
cmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLXJpZ2h0
LWNvbnRhaW5lci1tYXJnaW4uaHRtbDoKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1l
ZGlhLWNvbnRyb2xzLXJpZ2h0LWNvbnRhaW5lci1tYXJnaW4tZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1pbmxpbmUtbWVkaWEtY29udHJv
bHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzLXBsYWNhcmQuaHRtbDoKKyAgICAgICAgKiBt
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzL21h
Y29zLWlubGluZS1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLXZpc2liaWxpdHkuaHRtbDoK
KyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlh
LWNvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1kcm9wcGluZy1jb250cm9scy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWlubGluZS1t
ZWRpYS1jb250cm9scy9tYWNvcy1pbmxpbmUtbWVkaWEtc2hvd3Mtc3RhcnQtYnV0dG9uLmh0bWw6
CisgICAgICAgIFVwZGF0ZSBleGlzdGluZyB0ZXN0cyB0byBhY2NvbW9kYXRlIHRoZSBgT3ZlcmZs
b3dCdXR0b25gLgorCisgICAgICAgICogcmVzb3VyY2VzL3VpLWhlbHBlci5qczoKKyAgICAgICAg
KHdpbmRvdy5VSUhlbHBlci5jaG9vc2VNZW51QWN0aW9uKTogQWRkZWQuCisgICAgICAgICh3aW5k
b3cuVUlIZWxwZXIuYXN5bmMgY2hvb3NlTWVudUFjdGlvbik6IERlbGV0ZWQuCisgICAgICAgIFVz
ZSBgVUlTY3JpcHRDb250cm9sbGVyLnByb3RvdHlwZS5jaG9vc2VNZW51QWN0aW9uYCBpbnN0ZWFk
IG9mIGEgY29tYmluYXRpb24gb2YKKyAgICAgICAgYFVJU2NyaXB0Q29udHJvbGxlci5wcm90b3R5
cGUucmVjdEZvck1lbnVBY3Rpb25gIGFuZCBgVUlTY3JpcHRDb250cm9sbGVyLnByb3RvdHlwZS5h
Y3RpdmF0ZUF0YAorICAgICAgICBzaW5jZSBgVUlTY3JpcHRDb250cm9sbGVyOjpjaG9vc2VNZW51
QWN0aW9uYCBiYXNpY2FsbHkgZG9lcyB0aGF0IGFueXdheXMuCisKKyAgICAgICAgKiBUZXN0RXhw
ZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy13azIvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMS0wMy0xMiAgUm9iZXJ0IEplbm5lciAg
PGplbm5lckBhcHBsZS5jb20+CiAKICAgICAgICAgWyBNYWNPUyB3azIgXSBpbnNwZWN0b3IvZGVi
dWdnZXIvYnJlYWtwb2ludHMvcmVzb2x2ZWQtZHVtcC1hbGwtaW5saW5lLXNjcmlwdC1wYXVzZS1s
b2NhdGlvbnMuaHRtbCBpcyBmbGFrZXkgdGltaW5nIG91dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
NTVhODhiOTJhOThmODVjOWEzZjExNjUzNzAzNzQ5ZjEwNDczMDJlNC4uMjEyYTcyMzIzZTk0ZmUw
NGM5ZmNjOTUzNDBkMzdkYTk5OTE1ZTAwNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC02NCw2ICs2
NCw3IEBAIGZhc3QvdGV4dC9tYWMgWyBTa2lwIF0KIHNjcm9sbGluZ2Nvb3JkaW5hdG9yIFsgU2tp
cCBdCiBtZWRpYS9tYWMgWyBTa2lwIF0KIG1lZGlhL2lvcyBbIFNraXAgXQorbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0IFsgU2tpcCBdCiBmYXN0L3RleHQtYXV0b3Np
emluZyBbIFNraXAgXQogZmFzdC9jc3MvdmFyaWFibGVzL2Vudi9pb3MgWyBTa2lwIF0KIGh0dHAv
dGVzdHMvZXZlbnRzL3RvdWNoL2lvcyBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJv
bHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1idXR0b25zLXN0eWxlcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVs
bHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWJ1
dHRvbnMtc3R5bGVzLWV4cGVjdGVkLnR4dAppbmRleCBmODlkYmNiNDczNDk2YjA4MjRmZTFlZjIz
OWVhNWE3N2U1Njk1MGU3Li42OGJhMjE4OTRiZmQ1ZjE4ZmM0ZGFmZmQ5MDk5Mzc5MTg4MTE4MTMx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFj
b3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRy
b2xzLWJ1dHRvbnMtc3R5bGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNv
cy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWJ1dHRvbnMtc3R5bGVzLWV4cGVjdGVkLnR4dApA
QCAtMjYsMTcgKzI2LDE3IEBAIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShidXR0b24uZWxlbWVudCku
aGVpZ2h0IGlzICIxNnB4IgogCiBQaVBCdXR0b24KIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShidXR0
b24uZWxlbWVudCkudG9wIGJlY2FtZSAiMThweCIKLVBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShidXR0
b24uZWxlbWVudCkubGVmdCBpcyAiNDdweCIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShidXR0b24u
ZWxlbWVudCkubGVmdCBpcyAiNDNweCIKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShidXR0b24uZWxl
bWVudCkuaGVpZ2h0IGlzICIxNnB4IgogCiBUcmFja3NCdXR0b24KIFBBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShidXR0b24uZWxlbWVudCkudG9wIGJlY2FtZSAiMThweCIKLVBBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShidXR0b24uZWxlbWVudCkubGVmdCBpcyAiODJweCIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHls
ZShidXR0b24uZWxlbWVudCkubGVmdCBpcyAiNzRweCIKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShi
dXR0b24uZWxlbWVudCkuaGVpZ2h0IGlzICIxNnB4IgogCiBGdWxsc2NyZWVuQnV0dG9uCiBQQVNT
IGdldENvbXB1dGVkU3R5bGUoYnV0dG9uLmVsZW1lbnQpLnRvcCBiZWNhbWUgIjE4cHgiCi1QQVNT
IGdldENvbXB1dGVkU3R5bGUoYnV0dG9uLmVsZW1lbnQpLmxlZnQgaXMgIjExNXB4IgorUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGJ1dHRvbi5lbGVtZW50KS5sZWZ0IGlzICIxMDNweCIKIFBBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShidXR0b24uZWxlbWVudCkuaGVpZ2h0IGlzICIxNnB4IgogUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNv
cy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWJ1dHRvbnMtc3R5bGVzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1j
b250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWJ1dHRvbnMtc3R5bGVzLmh0
bWwKaW5kZXggYWFhZGVjNDhjNzZjYjQ0ZGIxOGMxZDExOGFhYWUyMzI2YmJjNzZhNS4uYWU2ZTAw
MGZjM2YxOTdlYjI4NDU4ZDlmZTAyOTM1MjI3MzExZTc3OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29u
dHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1idXR0b25zLXN0eWxlcy5odG1s
CisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxs
c2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtYnV0
dG9ucy1zdHlsZXMuaHRtbApAQCAtMTYsOSArMTYsOSBAQCBjb25zdCBidXR0b25Qb3NpdGlvbnMg
PSBbCiAgICAgW21lZGlhQ29udHJvbHMucGxheVBhdXNlQnV0dG9uLCA3OCwgOSwgMjZdLAogICAg
IFttZWRpYUNvbnRyb2xzLmZvcndhcmRCdXR0b24sIDEyNywgMTQsIDE2XSwKICAgICBbbWVkaWFD
b250cm9scy5haXJwbGF5QnV0dG9uLCAxMiwgMTgsIDE2XSwKLSAgICBbbWVkaWFDb250cm9scy5w
aXBCdXR0b24sIDQ3LCAxOCwgMTZdLAotICAgIFttZWRpYUNvbnRyb2xzLnRyYWNrc0J1dHRvbiwg
ODIsIDE4LCAxNl0sCi0gICAgW21lZGlhQ29udHJvbHMuZnVsbHNjcmVlbkJ1dHRvbiwgMTE1LCAx
OCwgMTZdCisgICAgW21lZGlhQ29udHJvbHMucGlwQnV0dG9uLCA0MywgMTgsIDE2XSwKKyAgICBb
bWVkaWFDb250cm9scy50cmFja3NCdXR0b24sIDc0LCAxOCwgMTZdLAorICAgIFttZWRpYUNvbnRy
b2xzLmZ1bGxzY3JlZW5CdXR0b24sIDEwMywgMTgsIDE2XSwKIF07CiAKIGxldCBidXR0b24sIHgs
IHk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
bWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNv
bnRyb2xzLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1
bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0CmluZGV4IGFi
Y2FlZWNmMzg0ZTkzZGY2OTczZDkyNTA0ZDQxZjUwZTM4NWQ4NWYuLjc1ZjdlMzcwNmUyMWY0YjZj
Y2FiZDFkZjkyOTFiNmRhMjYwMzAwZTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29z
LWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVu
LW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtY29uc3RydWN0
b3ItZXhwZWN0ZWQudHh0CkBAIC0yOCw3ICsyOCw3IEBAIFBBU1MgbWVkaWFDb250cm9scy5ib3R0
b21Db250cm9sc0Jhci5jaGlsZHJlblsyXS5yaWdodE1hcmdpbiBpcyAyNwogUEFTUyBtZWRpYUNv
bnRyb2xzLmJvdHRvbUNvbnRyb2xzQmFyLmNoaWxkcmVuWzJdLmJ1dHRvbk1hcmdpbiBpcyAyNwog
CiBSaWdodCBjb250YWluZXIKLVBBU1MgbWVkaWFDb250cm9scy5ib3R0b21Db250cm9sc0Jhci5j
aGlsZHJlblszXS5jaGlsZHJlbiBpcyBbbWVkaWFDb250cm9scy5haXJwbGF5QnV0dG9uLCBtZWRp
YUNvbnRyb2xzLnBpcEJ1dHRvbiwgbWVkaWFDb250cm9scy50cmFja3NCdXR0b24sIG1lZGlhQ29u
dHJvbHMuZnVsbHNjcmVlbkJ1dHRvbl0KK1BBU1MgbWVkaWFDb250cm9scy5ib3R0b21Db250cm9s
c0Jhci5jaGlsZHJlblszXS5jaGlsZHJlbiBpcyBbbWVkaWFDb250cm9scy5haXJwbGF5QnV0dG9u
LCBtZWRpYUNvbnRyb2xzLnBpcEJ1dHRvbiwgbWVkaWFDb250cm9scy50cmFja3NCdXR0b24sIG1l
ZGlhQ29udHJvbHMuZnVsbHNjcmVlbkJ1dHRvbiwgbWVkaWFDb250cm9scy5vdmVyZmxvd0J1dHRv
bl0KIFBBU1MgbWVkaWFDb250cm9scy5ib3R0b21Db250cm9sc0Jhci5jaGlsZHJlblszXS5lbGVt
ZW50LmNsYXNzTmFtZSBpcyAiYnV0dG9ucy1jb250YWluZXIgcmlnaHQiCiBQQVNTIG1lZGlhQ29u
dHJvbHMuYm90dG9tQ29udHJvbHNCYXIuY2hpbGRyZW5bM10ubGVmdE1hcmdpbiBpcyAxMgogUEFT
UyBtZWRpYUNvbnRyb2xzLmJvdHRvbUNvbnRyb2xzQmFyLmNoaWxkcmVuWzNdLnJpZ2h0TWFyZ2lu
IGlzIDEyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlh
LWNvbnRyb2xzLWNvbnN0cnVjdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2Ny
ZWVuLW1lZGlhLWNvbnRyb2xzLWNvbnN0cnVjdG9yLmh0bWwKaW5kZXggOTYyNzcxMGZlOWU4NTI0
Y2JhMmYwMjM0YTNjNWRkODdhMTY5NTRlNi4uYTliNTk1ZDlhYjJmMmQxMzcwZTk3MjBmM2ZhMjZl
OTFlZGVmYzQyZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1t
ZWRpYS1jb250cm9scy1jb25zdHJ1Y3Rvci5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29z
LWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtY29uc3RydWN0b3IuaHRtbApAQCAtMzYsNyArMzYs
NyBAQCBzaG91bGRCZSgibWVkaWFDb250cm9scy5ib3R0b21Db250cm9sc0Jhci5jaGlsZHJlblsy
XS5idXR0b25NYXJnaW4iLCAiMjciKTsKIAogZGVidWcoIiIpOwogZGVidWcoIlJpZ2h0IGNvbnRh
aW5lciIpOwotc2hvdWxkQmUoIm1lZGlhQ29udHJvbHMuYm90dG9tQ29udHJvbHNCYXIuY2hpbGRy
ZW5bM10uY2hpbGRyZW4iLCAiW21lZGlhQ29udHJvbHMuYWlycGxheUJ1dHRvbiwgbWVkaWFDb250
cm9scy5waXBCdXR0b24sIG1lZGlhQ29udHJvbHMudHJhY2tzQnV0dG9uLCBtZWRpYUNvbnRyb2xz
LmZ1bGxzY3JlZW5CdXR0b25dIik7CitzaG91bGRCZSgibWVkaWFDb250cm9scy5ib3R0b21Db250
cm9sc0Jhci5jaGlsZHJlblszXS5jaGlsZHJlbiIsICJbbWVkaWFDb250cm9scy5haXJwbGF5QnV0
dG9uLCBtZWRpYUNvbnRyb2xzLnBpcEJ1dHRvbiwgbWVkaWFDb250cm9scy50cmFja3NCdXR0b24s
IG1lZGlhQ29udHJvbHMuZnVsbHNjcmVlbkJ1dHRvbiwgbWVkaWFDb250cm9scy5vdmVyZmxvd0J1
dHRvbl0iKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygibWVkaWFDb250cm9scy5ib3R0b21Db250
cm9sc0Jhci5jaGlsZHJlblszXS5lbGVtZW50LmNsYXNzTmFtZSIsICJidXR0b25zLWNvbnRhaW5l
ciByaWdodCIpOwogc2hvdWxkQmUoIm1lZGlhQ29udHJvbHMuYm90dG9tQ29udHJvbHNCYXIuY2hp
bGRyZW5bM10ubGVmdE1hcmdpbiIsICIxMiIpOwogc2hvdWxkQmUoIm1lZGlhQ29udHJvbHMuYm90
dG9tQ29udHJvbHNCYXIuY2hpbGRyZW5bM10ucmlnaHRNYXJnaW4iLCAiMTIiKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2Ny
ZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtcmlnaHQt
Y29udGFpbmVyLW1hcmdpbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxs
c2NyZWVuLW1lZGlhLWNvbnRyb2xzLXJpZ2h0LWNvbnRhaW5lci1tYXJnaW4tZXhwZWN0ZWQudHh0
CmluZGV4IDRhMTg4NWY1N2UxNWU4MDY4YjMzYTA0ZDc0YTdiNjYxMGU5YzkyMTkuLjVjNDM3M2E3
ZmM1MjA3OTVhYjc2ODRiYTc3YjgwZDhmZmM5Y2Q5N2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRy
b2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtcmlnaHQtY29udGFpbmVyLW1hcmdp
bi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRp
YS1jb250cm9scy1yaWdodC1jb250YWluZXItbWFyZ2luLWV4cGVjdGVkLnR4dApAQCAtNCwxMCAr
NCwxMCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiAKIDQgZW5hYmxlZCBidXR0b25zCi1Q
QVNTIHJpZ2h0Q29udGFpbmVyLmJ1dHRvbk1hcmdpbiBpcyAxNgorUEFTUyByaWdodENvbnRhaW5l
ci5idXR0b25NYXJnaW4gaXMgMTIKIAogMyBlbmFibGVkIGJ1dHRvbnMKLVBBU1MgcmlnaHRDb250
YWluZXIuYnV0dG9uTWFyZ2luIGlzIDI0CitQQVNTIHJpZ2h0Q29udGFpbmVyLmJ1dHRvbk1hcmdp
biBpcyAxNgogCiAyIGVuYWJsZWQgYnV0dG9ucwogUEFTUyByaWdodENvbnRhaW5lci5idXR0b25N
YXJnaW4gaXMgMjQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4t
bWVkaWEtY29udHJvbHMtcmlnaHQtY29udGFpbmVyLW1hcmdpbi5odG1sIGIvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJv
bHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1yaWdodC1jb250YWluZXItbWFyZ2lu
Lmh0bWwKaW5kZXggZmI3YmY5ODNhZDkxMDNjZjQ4MjllOGMyYjc2NWQxMGVlN2I4MDdjNi4uOWY0
Y2MwZDNiMDUxZjYwMTNmMWM4YzcxZWQ2ZjE4YzhmOTAxNWI5ZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEt
Y29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1yaWdodC1jb250YWluZXIt
bWFyZ2luLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1j
b250cm9scy1yaWdodC1jb250YWluZXItbWFyZ2luLmh0bWwKQEAgLTE4LDEyICsxOCwxMiBAQCBz
Y2hlZHVsZXIuZnJhbWVEaWRGaXJlID0gZnVuY3Rpb24oKQogCiAgICAgaWYgKG51bWJlck9mRnJh
bWVzID09IDEpIHsKICAgICAgICAgZGVidWcoIjQgZW5hYmxlZCBidXR0b25zIikKLSAgICAgICAg
c2hvdWxkQmUoInJpZ2h0Q29udGFpbmVyLmJ1dHRvbk1hcmdpbiIsICIxNiIpOworICAgICAgICBz
aG91bGRCZSgicmlnaHRDb250YWluZXIuYnV0dG9uTWFyZ2luIiwgIjEyIik7CiAgICAgICAgIGRl
YnVnKCIiKTsKICAgICAgICAgbWVkaWFDb250cm9scy50cmFja3NCdXR0b24uZW5hYmxlZCA9IGZh
bHNlOwogICAgIH0gZWxzZSBpZiAobnVtYmVyT2ZGcmFtZXMgPT0gMikgewogICAgICAgICBkZWJ1
ZygiMyBlbmFibGVkIGJ1dHRvbnMiKQotICAgICAgICBzaG91bGRCZSgicmlnaHRDb250YWluZXIu
YnV0dG9uTWFyZ2luIiwgIjI0Iik7CisgICAgICAgIHNob3VsZEJlKCJyaWdodENvbnRhaW5lci5i
dXR0b25NYXJnaW4iLCAiMTYiKTsKICAgICAgICAgbWVkaWFDb250cm9scy5waXBCdXR0b24uZW5h
YmxlZCA9IGZhbHNlOwogICAgICAgICBkZWJ1ZygiIik7CiAgICAgfSBlbHNlIGlmIChudW1iZXJP
ZkZyYW1lcyA9PSAzKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzL21hY29zLWlubGluZS1tZWRp
YS1jb250cm9scy1wbGFjYXJkLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1j
b250cm9scy1wbGFjYXJkLmh0bWwKaW5kZXggMjE2MjM0NGNlYTdlODViZWQwMzQyOTJkNzliZDc0
MTQ4NDkxZjMxNC4uNDdmYTcyNTYzM2QyMTU5MTMyZjhiMDliYTk2MzNmNWNiZDEzMDhkMyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWlu
bGluZS1tZWRpYS1jb250cm9scy9tYWNvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMtcGxhY2FyZC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1p
bmxpbmUtbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzLXBsYWNhcmQu
aHRtbApAQCAtNSw3ICs1LDcgQEAKIAogZGVzY3JpcHRpb24oIlRlc3RpbmcgdGhlIDxjb2RlPk1h
Y09TSW5saW5lTWVkaWFDb250cm9sczwvY29kZT4gaGFuZGxpbmcgb2YgcGxhY2FyZHMuIik7CiAK
LWNvbnN0IG1lZGlhQ29udHJvbHMgPSBuZXcgTWFjT1NJbmxpbmVNZWRpYUNvbnRyb2xzOworY29u
c3QgbWVkaWFDb250cm9scyA9IG5ldyBNYWNPU0lubGluZU1lZGlhQ29udHJvbHMoeyB3aWR0aDog
NjAwLCBoZWlnaHQ6IDMwMCB9KTsKIAogZGVidWcoIkJ5IGRlZmF1bHQsIG5vIHBsYWNhcmQgaXMg
c2hvd24uIik7CiBzaG91bGRCZU51bGwoIm1lZGlhQ29udHJvbHMucGxhY2FyZCIpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWlubGlu
ZS1tZWRpYS1jb250cm9scy9tYWNvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRl
ci12aXNpYmlsaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1jb250cm9s
cy12b2x1bWUtc2xpZGVyLXZpc2liaWxpdHkuaHRtbAppbmRleCAyMjg4OTVmMDRkZDk0ZGM3NTZi
ZDZmYjZlYzk2ZWQyYTJjNDljM2JhLi5hZGJiYzYyYTIxN2E2ZWIwZGM5ODY2ODdlMjZhNzFlZWU4
OTEzY2I4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1jb250cm9s
cy12b2x1bWUtc2xpZGVyLXZpc2liaWxpdHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzL21hY29zLWlu
bGluZS1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLXZpc2liaWxpdHkuaHRtbApAQCAtNSw3
ICs1LDcgQEAKIAogZGVzY3JpcHRpb24oIlRlc3RpbmcgdGhlIDxjb2RlPk1hY09TSW5saW5lTWVk
aWFDb250cm9sczwvY29kZT4gdm9sdW1lIHNsaWRlciB2aXNpYmlsaXR5LiIpOwogCi1jb25zdCBt
ZWRpYUNvbnRyb2xzID0gbmV3IE1hY09TSW5saW5lTWVkaWFDb250cm9sczsKK2NvbnN0IG1lZGlh
Q29udHJvbHMgPSBuZXcgTWFjT1NJbmxpbmVNZWRpYUNvbnRyb2xzKHsgd2lkdGg6IDYwMCwgaGVp
Z2h0OiAzMDAgfSk7CiBjb25zdCB2b2x1bWVTbGlkZXJDb250YWluZXIgPSBtZWRpYUNvbnRyb2xz
LnZvbHVtZVNsaWRlci5wYXJlbnQ7CiAKIGRlYnVnKCJEZWZhdWx0IHN0YXRlIikKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1pbmxpbmUt
bWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWRyb3BwaW5nLWNvbnRyb2xzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1p
bmxpbmUtbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWRyb3BwaW5nLWNvbnRyb2xz
LWV4cGVjdGVkLnR4dAppbmRleCBlNjJjYjYwZTk5YTY5MWIwNGFkMzM3YzYyYjRlOTg1MzFiNzUw
YWMzLi5hMDA5MjQ0ODU5MzlhODk0ZTQ2M2ZjOGMyYTViZTQyODk2ZmRhMTNmIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1l
ZGlhLWNvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1kcm9wcGluZy1jb250cm9scy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29z
LWlubGluZS1tZWRpYS1jb250cm9scy9tYWNvcy1pbmxpbmUtbWVkaWEtZHJvcHBpbmctY29udHJv
bHMtZXhwZWN0ZWQudHh0CkBAIC05LDkgKzksOSBAQCBTa2lwRm9yd2FyZEJ1dHRvbiB3YXMgZHJv
cHBlZCBhdCA0ODIuCiBTa2lwQmFja0J1dHRvbiB3YXMgZHJvcHBlZCBhdCA0NTMuCiBBaXJwbGF5
QnV0dG9uIHdhcyBkcm9wcGVkIGF0IDQyNC4KIFRyYWNrc0J1dHRvbiB3YXMgZHJvcHBlZCBhdCAz
OTIuCi1QaVBCdXR0b24gd2FzIGRyb3BwZWQgYXQgMzYwLgotRnVsbHNjcmVlbkJ1dHRvbiB3YXMg
ZHJvcHBlZCBhdCAzMjUuCi1NdXRlQnV0dG9uIHdhcyBkcm9wcGVkIGF0IDI5NC4KK1BpUEJ1dHRv
biB3YXMgZHJvcHBlZCBhdCAzOTIuCitGdWxsc2NyZWVuQnV0dG9uIHdhcyBkcm9wcGVkIGF0IDMx
OS4KK011dGVCdXR0b24gd2FzIGRyb3BwZWQgYXQgMzE5LgogCiBQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy9tYWNvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlh
LXNob3dzLXN0YXJ0LWJ1dHRvbi5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1jb250cm9scy9tYWNvcy1pbmxpbmUtbWVkaWEt
c2hvd3Mtc3RhcnQtYnV0dG9uLmh0bWwKaW5kZXggNzI0MGJhYjg4YTU1YTY3ZGYyODcxNjgzYWY1
M2Y4Y2I3ZjdlZTJhMS4uOTcxOGM4OWVjOWE1YzRiY2Q0ZmNjNWFkMWUxYjZlM2JmNjIwNzViNCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29z
LWlubGluZS1tZWRpYS1jb250cm9scy9tYWNvcy1pbmxpbmUtbWVkaWEtc2hvd3Mtc3RhcnQtYnV0
dG9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21h
Y29zLWlubGluZS1tZWRpYS1jb250cm9scy9tYWNvcy1pbmxpbmUtbWVkaWEtc2hvd3Mtc3RhcnQt
YnV0dG9uLmh0bWwKQEAgLTUsNyArNSw3IEBACiAKIGRlc2NyaXB0aW9uKCJUZXN0aW5nIHRoZSA8
Y29kZT5NYWNPU0lubGluZU1lZGlhQ29udHJvbHM8L2NvZGU+IHNob3dzU3RhcnRCdXR0b24gcHJv
cGVydHkuIik7CiAKLWNvbnN0IG1lZGlhQ29udHJvbHMgPSBuZXcgTWFjT1NJbmxpbmVNZWRpYUNv
bnRyb2xzOworY29uc3QgbWVkaWFDb250cm9scyA9IG5ldyBNYWNPU0lubGluZU1lZGlhQ29udHJv
bHMoeyB3aWR0aDogNjAwLCBoZWlnaHQ6IDMwMCB9KTsKIAogZGVidWcoIkRlZmF1bHQgd2hlcmUg
c2hvd3NTdGFydEJ1dHRvbiA9IGZhbHNlIik7CiBzaG91bGRCZUZhbHNlKCJtZWRpYUNvbnRyb2xz
LnNob3dzU3RhcnRCdXR0b24iKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXItY2xpY2st
b24tdmlkZW8tYmFja2dyb3VuZC10by1kaXNtaXNzLXRyYWNrcy1wYW5lbC1zaG91bGQtbm90LXRv
Z2dsZS1wbGF5YmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWNsaWNrLW9uLXZp
ZGVvLWJhY2tncm91bmQtdG8tZGlzbWlzcy10cmFja3MtcGFuZWwtc2hvdWxkLW5vdC10b2dnbGUt
cGxheWJhY2stZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1Nzlj
ZTRlMmM5MTJjOGZkY2RmNGYzM2IwNDQ5YWY0Yjc2NjU3MjRkLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXItY2xpY2stb24tdmlk
ZW8tYmFja2dyb3VuZC10by1kaXNtaXNzLXRyYWNrcy1wYW5lbC1zaG91bGQtbm90LXRvZ2dsZS1w
bGF5YmFjay1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1UZXN0
aW5nIHRoYXQgY2xpY2tpbmcgb24gYSBwYXVzZWQgdmlkZW8ncyBiYWNrZ3JvdW5kIHRvIGRpbWlz
cyB0aGUgdHJhY2tzIHBhbmVsIGRvZXMgbm90IHJlc3VtZSBpdC4KLQotT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgotCi0KLVBBU1MgbWVkaWEucGF1c2VkIGlzIHRydWUKLQotQ2xpY2tpbmcgb24g
dHJhY2tzIGJ1dHRvbiB0byBzaG93IHRyYWNrcyBwYW5lbAotCi1DbGlja2luZyBvbiB2aWRlbyBi
YWNrZ3JvdW5kCi1QQVNTIG1lZGlhLnBhdXNlZCBpcyB0cnVlCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250
cm9sbGVyLWNsaWNrLW9uLXZpZGVvLWJhY2tncm91bmQtdG8tZGlzbWlzcy10cmFja3MtcGFuZWwt
c2hvdWxkLW5vdC10b2dnbGUtcGxheWJhY2suaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXItY2xpY2st
b24tdmlkZW8tYmFja2dyb3VuZC10by1kaXNtaXNzLXRyYWNrcy1wYW5lbC1zaG91bGQtbm90LXRv
Z2dsZS1wbGF5YmFjay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NDY1ZWVi
YzFmOTM4YTMwYTBmM2FiODNhNjZiYzZiZTBhMDQ3NTZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXItY2xpY2stb24tdmlkZW8t
YmFja2dyb3VuZC10by1kaXNtaXNzLXRyYWNrcy1wYW5lbC1zaG91bGQtbm90LXRvZ2dsZS1wbGF5
YmFjay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLWxvYWRlci5qcyIgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij48L3NjcmlwdD4KLTxib2R5PgotPHZpZGVvIHNyYz0iLi4vLi4vY29udGVudC9DQytTdWJ0
aXRsZXMubW92IiBzdHlsZT0id2lkdGg6IDY0MHB4OyBoZWlnaHQ6IDM2MHB4OyIgY29udHJvbHMg
YXV0b3BsYXk+PC92aWRlbz4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotZGVz
Y3JpcHRpb24oIlRlc3RpbmcgdGhhdCBjbGlja2luZyBvbiBhIHBhdXNlZCB2aWRlbydzIGJhY2tn
cm91bmQgdG8gZGltaXNzIHRoZSB0cmFja3MgcGFuZWwgZG9lcyBub3QgcmVzdW1lIGl0LiIpOwot
Ci13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWNvbnN0IG1lZGlhID0gZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJu
YWxzLnNoYWRvd1Jvb3QobWVkaWEpOwotCi1tZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5Iiwg
KCkgPT4gewotICAgIG1lZGlhLnBhdXNlKCk7Ci0gICAgc2hvdWxkQmVUcnVlKCJtZWRpYS5wYXVz
ZWQiKTsKLQotICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewotICAgICAg
ICBjbGlja09uVHJhY2tzQnV0dG9uKCk7Ci0gICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9u
RnJhbWUoKCkgPT4gewotICAgICAgICAgICAgY2xpY2tPblZpZGVvQmFja2dyb3VuZCgpOwotICAg
ICAgICAgICAgc2hvdWxkQmVUcnVlKCJtZWRpYS5wYXVzZWQiKTsKLQotICAgICAgICAgICAgZGVi
dWcoIiIpOwotICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAgICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19KTsKLQotZnVuY3Rpb24gY2xpY2tPblRy
YWNrc0J1dHRvbigpCi17Ci0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJDbGlja2luZyBvbiB0
cmFja3MgYnV0dG9uIHRvIHNob3cgdHJhY2tzIHBhbmVsIik7Ci0gICAgY2xpY2tPbkVsZW1lbnQo
c2hhZG93Um9vdC5sYXN0Q2hpbGQucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpLCAxLCAx
KTsKLX0KLQotZnVuY3Rpb24gY2xpY2tPblZpZGVvQmFja2dyb3VuZCgpCi17Ci0gICAgZGVidWco
IiIpOwotICAgIGRlYnVnKCJDbGlja2luZyBvbiB2aWRlbyBiYWNrZ3JvdW5kIik7Ci0gICAgY2xp
Y2tPbkVsZW1lbnQobWVkaWEsIDUsIDUpOwotfQotCi1mdW5jdGlvbiBjbGlja09uRWxlbWVudChl
bGVtZW50LCByZWxhdGl2ZVgsIHJlbGF0aXZlWSkKLXsKLSAgICBjb25zdCBib3VuZHMgPSBlbGVt
ZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRv
KGJvdW5kcy5sZWZ0ICsgcmVsYXRpdmVYLCBib3VuZHMudG9wICsgcmVsYXRpdmVZKTsKLSAgICBl
dmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci19Ci0K
LTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy1sb2FkZXIuanMgYi9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcmVzb3VyY2VzL21lZGlhLWNv
bnRyb2xzLWxvYWRlci5qcwppbmRleCAzZDQ5YWZjZGU1MGNlMTkzMTBmOGYzYzFkYThjYmZmYmE0
ZDU3MTMzLi44ZWYyYjM0ODc1Yjg0OWJmMjk4MTBjYzQ2NmVhYjRmNDhhMTVjMDYwIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcmVzb3VyY2VzL21l
ZGlhLWNvbnRyb2xzLWxvYWRlci5qcworKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLWxvYWRlci5qcwpAQCAtNiw3ICs2
LDcgQEAKICAgICBjb25zdCBsYXlvdXRUZXN0c1BhdGggPSB3aW5kb3cubG9jYXRpb24uaHJlZi5z
dWJzdHIoMCwgd2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiL0xheW91dFRlc3RzLyIpKTsK
ICAgICBjb25zdCBtb2R1bGVQYXRoID0gbGF5b3V0VGVzdHNQYXRoID8gbGF5b3V0VGVzdHNQYXRo
ICsgIi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scyIgOiAiL21v
ZGVybi1tZWRpYS1jb250cm9scyI7CiAKLSAgICBbImFjdGl2aXR5LWluZGljYXRvciIsICJhaXJw
bGF5LWJ1dHRvbiIsICJiYWNrZ3JvdW5kLXRpbnQiLCAiYnV0dG9uIiwgImJ1dHRvbnMtY29udGFp
bmVyIiwgImNvbnRyb2xzLWJhciIsICJpbmxpbmUtbWVkaWEtY29udHJvbHMiLCAibWFjb3MtZnVs
bHNjcmVlbi1tZWRpYS1jb250cm9scyIsICJtYWNvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMiLCAi
bWVkaWEtY29udHJvbHMiLCAibWVkaWEtZG9jdW1lbnQiLCAicGxhY2FyZCIsICJzbGlkZXIiLCAi
c3RhdHVzLWxhYmVsIiwgInRleHQtdHJhY2tzIiwgInRpbWUtbGFiZWwiLCAidHJhY2tzLXBhbmVs
Il0uZm9yRWFjaChjc3NGaWxlID0+IHsKKyAgICBbImFjdGl2aXR5LWluZGljYXRvciIsICJhaXJw
bGF5LWJ1dHRvbiIsICJiYWNrZ3JvdW5kLXRpbnQiLCAiYnV0dG9uIiwgImJ1dHRvbnMtY29udGFp
bmVyIiwgImNvbnRyb2xzLWJhciIsICJpbmxpbmUtbWVkaWEtY29udHJvbHMiLCAibWFjb3MtZnVs
bHNjcmVlbi1tZWRpYS1jb250cm9scyIsICJtYWNvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMiLCAi
bWVkaWEtY29udHJvbHMiLCAibWVkaWEtZG9jdW1lbnQiLCAicGxhY2FyZCIsICJzbGlkZXIiLCAi
c3RhdHVzLWxhYmVsIiwgInRleHQtdHJhY2tzIiwgInRpbWUtbGFiZWwiXS5mb3JFYWNoKGNzc0Zp
bGUgPT4gewogICAgICAgICBkb2N1bWVudC53cml0ZShgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0
eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iJHttb2R1bGVQYXRofS9jb250cm9scy8ke2Nzc0ZpbGV9LmNz
cyI+YCk7CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xz
LXV0aWxzLmpzCmluZGV4IDJkYzhmNGI1MjFhYTcyYjU0NzViMGMzNjIwZTk2NWIyNjc3ZjU0ODcu
LmY2ZTg1YTE3ZDAwZGU0MDMzMWZkMTgwY2M5MWZjNDlmMzYyZTc1MTAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9yZXNvdXJjZXMvbWVkaWEtY29u
dHJvbHMtdXRpbHMuanMKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcwpAQCAtODMsMjYgKzgzLDYgQEAg
ZnVuY3Rpb24gcHJlc3NBdFBvaW50KHgsIHksIGNvbnRpbnVhdGlvbikKICAgICB9CiB9CiAKLWZ1
bmN0aW9uIHNob3dUcmFja3NQYW5lbChzaGFkb3dSb290LCBjb250aW51YXRpb24pCi17Ci0gICAg
aWYgKHR5cGVvZiBjb250aW51YXRpb24gIT09ICJmdW5jdGlvbiIpCi0gICAgICAgIGNvbnRpbnVh
dGlvbiA9IG5ldyBGdW5jdGlvbjsKLQotICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykiLCAibnVsbCIsICgpID0+IHsKLSAg
ICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1
dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCIsICIwIiwgKCkgPT4g
ewotICAgICAgICAgICAgZGVidWcoIj0+IFRyYWNrcyBidXR0b24gaXMgdmlzaWJsZS4iKQotICAg
ICAgICAgICAgZGVidWcoIiIpOwotICAgICAgICAgICAgZGVidWcoIlByZXNzaW5nIG9uIHRoZSB0
cmFja3MgYnV0dG9uLiIpOwotICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5x
dWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpOwotICAgICAgICAgICAgc2hvdWxkQmVjb21l
RGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKSIsICJu
dWxsIiwgKCkgPT4gewotICAgICAgICAgICAgICAgIGRlYnVnKCI9PiBUcmFja3MgcGFuZWwgaXMg
dmlzaWJsZS4iKQotICAgICAgICAgICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgICAgICAgICBj
b250aW51YXRpb24oKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0K
LQogZnVuY3Rpb24gZ2V0VHJhY2tzQ29udGV4dE1lbnUoKQogewogICAgIHJldHVybiBuZXcgUHJv
bWlzZSgocmVzb2x2ZSkgPT4gewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtY29udHJvbHMtYmFyLXJl
bWFpbnMtdmlzaWJsZS1hZnRlci1jbGlja2luZy1vdmVyLWl0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBh
bmVsLWNvbnRyb2xzLWJhci1yZW1haW5zLXZpc2libGUtYWZ0ZXItY2xpY2tpbmctb3Zlci1pdC1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0MTkxM2MzZWRjNjVk
NDUzOGNhYjk3OGY4Zjk3NGJiNDRlNTFmYmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtY29udHJvbHMtYmFyLXJlbWFpbnMtdmlzaWJsZS1h
ZnRlci1jbGlja2luZy1vdmVyLWl0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE5
ICswLDAgQEAKLUNsaWNraW5nIG9uIHRoZSBjb250cm9scyBiYXIgdG8gZGlzbWlzcyB0aGUgdHJh
Y2tzIHBhbmVsIHNob3VsZCBub3QgaGlkZSB0aGUgY29udHJvbHMgYmFyLCBvbmx5IHRoZSB0cmFj
ayBwYW5lbC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgc2hhZG93Um9v
dC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCku
d2lkdGggPiAwIGJlY2FtZSB0cnVlCi1QQVNTIHNoYWRvd1Jvb3QuY29udGFpbnMoc2hhZG93Um9v
dC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykpIGJlY2FtZSB0cnVlCi1QQVNTIG1lZGlh
LmN1cnJlbnRUaW1lID4gMC4yNTAgYmVjYW1lIHRydWUKLQotV2UndmUgd2FpdGVkIGxvbmcgZW5v
dWdoIHNvIHRoYXQgdGhlIGNvbnRyb2xzIGJhciBzaG91bGQgYmUgZmFkZWQgc2hvdWxkIHRoZSB0
cmFja3MgcGFuZWwgbm90IGJlIHZpc2libGUuCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cignLm1lZGlhLWNvbnRyb2xzJykuY2xhc3NMaXN0LmNvbnRhaW5zKCdmYWRlZCcpIGlzIGZhbHNl
Ci0KLUNsaWNrIG9uIHRoZSBjb250cm9scyBiYXIgdG8gZGlzbWlzcyB0aGUgcGFuZWwsIHRoZSBj
b250cm9scyBiYXIgc2hvdWxkIHJlbWFpbiB2aXNpYmxlLgotUEFTUyBzaGFkb3dSb290LmNvbnRh
aW5zKHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpKSBiZWNhbWUgZmFs
c2UKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcubWVkaWEtY29udHJvbHMnKS5jbGFz
c0xpc3QuY29udGFpbnMoJ2ZhZGVkJykgaXMgZmFsc2UKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1jb250cm9s
cy1iYXItcmVtYWlucy12aXNpYmxlLWFmdGVyLWNsaWNraW5nLW92ZXItaXQuaHRtbCBiL0xheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBh
bmVsLWNvbnRyb2xzLWJhci1yZW1haW5zLXZpc2libGUtYWZ0ZXItY2xpY2tpbmctb3Zlci1pdC5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlODgxZmFmODNlMGYwZGZjYzgyYTcx
OTM0MTM4NDljZDY0N2RkYTMwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
cGFuZWwvdHJhY2tzLXBhbmVsLWNvbnRyb2xzLWJhci1yZW1haW5zLXZpc2libGUtYWZ0ZXItY2xp
Y2tpbmctb3Zlci1pdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLWxvYWRlci5qcyIgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEt
Y29udHJvbHMtdXRpbHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08Ym9k
eT4KLTx2aWRlbyBzcmM9Ii4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVzLm1vdiIgc3R5bGU9InBv
c2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDogNjQwcHg7IGhlaWdodDog
MzYwcHg7IiBjb250cm9scyBhdXRvcGxheSBkYXRhLWF1dG8taGlkZS1kZWxheT0iMjUwIj48L3Zp
ZGVvPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJDbGlja2luZyBvbiB0aGUgY29udHJvbHMgYmFy
IHRvIGRpc21pc3MgdGhlIHRyYWNrcyBwYW5lbCBzaG91bGQgbm90IGhpZGUgdGhlIGNvbnRyb2xz
IGJhciwgb25seSB0aGUgdHJhY2sgcGFuZWwuIik7Ci0KLWNvbnN0IG1lZGlhID0gZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJu
YWxzLnNoYWRvd1Jvb3QobWVkaWEpOwotCi1zaG91bGRCZWNvbWVFcXVhbCgic2hhZG93Um9vdC5x
dWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lk
dGggPiAwIiwgInRydWUiLCAoKSA9PiB7Ci0gICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5x
dWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIiksICgpID0+IHsKLSAgICAgICAgc2hvdWxkQmVj
b21lRXF1YWwoInNoYWRvd1Jvb3QuY29udGFpbnMoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcu
dHJhY2tzLXBhbmVsJykpIiwgInRydWUiLCAoKSA9PiB7Ci0gICAgICAgICAgICBzaG91bGRCZWNv
bWVFcXVhbCgibWVkaWEuY3VycmVudFRpbWUgPiAwLjI1MCIsICJ0cnVlIiwgKCkgPT4gewotCi0g
ICAgICAgICAgICAgICAgZGVidWcoIiIpOwotICAgICAgICAgICAgICAgIGRlYnVnKCJXZSd2ZSB3
YWl0ZWQgbG9uZyBlbm91Z2ggc28gdGhhdCB0aGUgY29udHJvbHMgYmFyIHNob3VsZCBiZSBmYWRl
ZCBzaG91bGQgdGhlIHRyYWNrcyBwYW5lbCBub3QgYmUgdmlzaWJsZS4iKTsKLSAgICAgICAgICAg
ICAgICBzaG91bGRCZUZhbHNlKCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5tZWRpYS1jb250
cm9scycpLmNsYXNzTGlzdC5jb250YWlucygnZmFkZWQnKSIpOwotCi0gICAgICAgICAgICAgICAg
ZGVidWcoIiIpOwotICAgICAgICAgICAgICAgIGRlYnVnKCJDbGljayBvbiB0aGUgY29udHJvbHMg
YmFyIHRvIGRpc21pc3MgdGhlIHBhbmVsLCB0aGUgY29udHJvbHMgYmFyIHNob3VsZCByZW1haW4g
dmlzaWJsZS4iKTsKLSAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg2MzIs
IDMzOSk7Ci0gICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgICAg
ICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotCi0gICAgICAgICAgICAgICAgc2hvdWxk
QmVjb21lRXF1YWwoInNoYWRvd1Jvb3QuY29udGFpbnMoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCcudHJhY2tzLXBhbmVsJykpIiwgImZhbHNlIiwgKCkgPT4gewotICAgICAgICAgICAgICAgICAg
ICBzaG91bGRCZUZhbHNlKCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5tZWRpYS1jb250cm9s
cycpLmNsYXNzTGlzdC5jb250YWlucygnZmFkZWQnKSIpOwotICAgICAgICAgICAgICAgICAgICBt
ZWRpYS5yZW1vdmUoKTsKLSAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAg
ICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsK
LX0pOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
cGFuZWwvdHJhY2tzLXBhbmVsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZDhmZDk2MzJmMTNhZDY2NjUxOTAzNDkxYzkzYTc5NTIwMGY0YzQ2ZC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi1UZXN0aW5nIHRoZSBUcmFja3NQYW5l
bCBjbGFzcyBwcm9wZXJ0aWVzLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotQmFz
aWMgcHJvcGVydGllcwotUEFTUyB0cmFja3NQYW5lbC5lbGVtZW50LmxvY2FsTmFtZSBpcyAiZGl2
IgotUEFTUyB0cmFja3NQYW5lbC5lbGVtZW50LmNsYXNzTmFtZSBpcyAidHJhY2tzLXBhbmVsIgot
UEFTUyB0cmFja3NQYW5lbC5wcmVzZW50ZWQgaXMgZmFsc2UKLVBBU1MgdHJhY2tzUGFuZWwucmln
aHRYIGlzIDAKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBM
RVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWhpZGUtY2xpY2stb3V0c2lkZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVs
L3RyYWNrcy1wYW5lbC1oaWRlLWNsaWNrLW91dHNpZGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMzczYjc1Y2U0MjIzZmNiNjgwN2MzMTlhOGM0ZWU5OTQ5MzQw
M2U2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBh
bmVsLWhpZGUtY2xpY2stb3V0c2lkZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwx
NyArMCwwIEBACi1UZXN0aW5nIGEgVHJhY2tzUGFuZWwgaXMgaGlkZGVuIHVwb24gY2xpY2tpbmcg
b3V0c2lkZSBvZiBpdC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLW1lZGlhQ29u
dHJvbHMuc2hvd1RyYWNrc1BhbmVsKCkKLVBBU1MgZG9jdW1lbnQuYm9keS5jb250YWlucyhtZWRp
YUNvbnRyb2xzLnRyYWNrc1BhbmVsLmVsZW1lbnQpIGJlY2FtZSB0cnVlCi1QQVNTIG1lZGlhQ29u
dHJvbHMudHJhY2tzUGFuZWwucHJlc2VudGVkIGlzIHRydWUKLQotQ2xpY2tpbmcgb3V0c2lkZSBv
ZiB0aGUgcGFuZWwKLVBBU1MgZG9jdW1lbnQuYm9keS5jb250YWlucyhtZWRpYUNvbnRyb2xzLnRy
YWNrc1BhbmVsLmVsZW1lbnQpIGJlY2FtZSBmYWxzZQotUEFTUyBtZWRpYUNvbnRyb2xzLnRyYWNr
c1BhbmVsLnByZXNlbnRlZCBpcyBmYWxzZQotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtaGlkZS1jbGljay1v
dXRzaWRlLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1oaWRlLWNsaWNrLW91dHNpZGUuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggY2Y5ODA0MmM0Mjg1ZDYxODNlYWQ1YzU3NmUzZmFhOTMxYTJh
MTM1OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1w
YW5lbC1oaWRlLWNsaWNrLW91dHNpZGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAg
QEAKLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy1sb2FkZXIuanMi
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08Ym9keT4KLTxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNj
cmlwdGlvbigiVGVzdGluZyBhIDxjb2RlPlRyYWNrc1BhbmVsPC9jb2RlPiBpcyBoaWRkZW4gdXBv
biBjbGlja2luZyBvdXRzaWRlIG9mIGl0LiIpOwotCi1jb25zdCBtZWRpYUNvbnRyb2xzID0gbmV3
IE1hY09TSW5saW5lTWVkaWFDb250cm9scyh7IHdpZHRoOiA2ODAsIGhlaWdodDogMzAwIH0pOwot
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChtZWRpYUNvbnRyb2xzLmVsZW1lbnQpOwotCi1kZWJ1
ZygibWVkaWFDb250cm9scy5zaG93VHJhY2tzUGFuZWwoKSIpOwotbWVkaWFDb250cm9scy5zaG93
VHJhY2tzUGFuZWwoKTsKLQotc2hvdWxkQmVjb21lRXF1YWwoImRvY3VtZW50LmJvZHkuY29udGFp
bnMobWVkaWFDb250cm9scy50cmFja3NQYW5lbC5lbGVtZW50KSIsICJ0cnVlIiwgKCkgPT4gewot
ICAgIHNob3VsZEJlVHJ1ZSgibWVkaWFDb250cm9scy50cmFja3NQYW5lbC5wcmVzZW50ZWQiKTsK
LSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIkNsaWNraW5nIG91dHNpZGUgb2YgdGhlIHBhbmVs
Iik7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTAsIDEwKTsKLSAgICBldmVudFNlbmRl
ci5tb3VzZURvd24oKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci0gICAgc2hvdWxkQmVj
b21lRXF1YWwoImRvY3VtZW50LmJvZHkuY29udGFpbnMobWVkaWFDb250cm9scy50cmFja3NQYW5l
bC5lbGVtZW50KSIsICJmYWxzZSIsICgpID0+IHsKLSAgICAgICAgc2hvdWxkQmVGYWxzZSgibWVk
aWFDb250cm9scy50cmFja3NQYW5lbC5wcmVzZW50ZWQiKTsKLSAgICAgICAgZGVidWcoIiIpOwot
ICAgICAgICBtZWRpYUNvbnRyb2xzLmVsZW1lbnQucmVtb3ZlKCk7Ci0gICAgICAgIGZpbmlzaEpT
VGVzdCgpOwotICAgIH0pOwotfSk7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90
cmFja3MtcGFuZWwtaGlkZS1lc2Mta2V5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWhpZGUtZXNj
LWtleS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRlNzU2N2Rk
ODZhYzFkODc4YjVmMTgwMzZlYmRmODg5OGQ1YmNlYjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtaGlkZS1lc2Mta2V5LWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLVRlc3RpbmcgYSBUcmFja3NQYW5lbCBp
cyBoaWRkZW4gdXBvbiBoaXR0aW5nIHRoZSBFc2MuIGtleS4KLQotT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgotCi0KLW1lZGlhQ29udHJvbHMuc2hvd1RyYWNrc1BhbmVsKCkKLQotUHJlc3Npbmcg
dGhlIEVzY2FwZSBrZXkKLQotVHJhbnNpdGlvbiBlbmRlZAotUEFTUyBtZWRpYUNvbnRyb2xzLnRy
YWNrc1BhbmVsLnByZXNlbnRlZCBpcyBmYWxzZQotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtaGlkZS1lc2Mt
a2V5Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXBhbmVsL3RyYWNrcy1wYW5lbC1oaWRlLWVzYy1rZXkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNzBlOWIwZDIxZjRlNzg3Y2UwZmQ1MGNlM2JjMjVkYTA2ZTk4NzYyZC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1oaWRl
LWVzYy1rZXkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy1sb2FkZXIuanMiIHR5cGU9InRleHQvamF2
YXNjcmlwdCI+PC9zY3JpcHQ+Ci08Ym9keT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbigiVGVzdGlu
ZyBhIDxjb2RlPlRyYWNrc1BhbmVsPC9jb2RlPiBpcyBoaWRkZW4gdXBvbiBoaXR0aW5nIHRoZSBF
c2MuIGtleS4iKTsKLQotY29uc3QgbWVkaWFDb250cm9scyA9IG5ldyBNYWNPU0lubGluZU1lZGlh
Q29udHJvbHMoeyB3aWR0aDogNjgwLCBoZWlnaHQ6IDMwMCB9KTsKLWRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQobWVkaWFDb250cm9scy5lbGVtZW50KTsKLQotZGVidWcoIm1lZGlhQ29udHJvbHMu
c2hvd1RyYWNrc1BhbmVsKCkiKTsKLW1lZGlhQ29udHJvbHMuc2hvd1RyYWNrc1BhbmVsKCk7Ci0K
LXNjaGVkdWxlci5mcmFtZURpZEZpcmUgPSBmdW5jdGlvbigpCi17Ci0gICAgd2luZG93LnJlcXVl
c3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgZGVi
dWcoIlByZXNzaW5nIHRoZSBFc2NhcGUga2V5Iik7Ci0gICAgICAgIGV2ZW50U2VuZGVyLmtleURv
d24oIkVzY2FwZSIpOwotICAgICAgICBtZWRpYUNvbnRyb2xzLnRyYWNrc1BhbmVsLmVsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsIChldmVudCkgPT4gewotICAgICAgICAg
ICAgZGVidWcoIiIpOwotICAgICAgICAgICAgZGVidWcoIlRyYW5zaXRpb24gZW5kZWQiKTsKLSAg
ICAgICAgICAgIHNob3VsZEJlRmFsc2UoIm1lZGlhQ29udHJvbHMudHJhY2tzUGFuZWwucHJlc2Vu
dGVkIik7Ci0KLSAgICAgICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgICAgIG1lZGlhQ29udHJv
bHMuZWxlbWVudC5yZW1vdmUoKTsKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAg
ICB9KTsKLSAgICB9KTsKLSAgICBzY2hlZHVsZXIuZnJhbWVEaWRGaXJlID0gbnVsbDsKLX0KLQot
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1oaWRlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFu
ZWwvdHJhY2tzLXBhbmVsLWhpZGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiNjM2NDUwYWY2YTE4ZWJmZjA0Y2M5OWM3MDhlNGZjZTZiMWI5YzRiLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWhpZGUtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGVzdGluZyBhIFRyYWNr
c1BhbmVsIGlzIGhpZGRlbiB3aXRoIGFuIGFuaW1hdGlvbi4KLQotT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgotCi0KLXRyYWNrc1BhbmVsLnByZXNlbnRJblBhcmVudChjb250YWluZXIpCi1QQVNT
IHRyYWNrc1BhbmVsLnByZXNlbnRlZCBpcyB0cnVlCi0KLXRyYWNrc1BhbmVsLmhpZGUoKQotUEFT
UyB0cmFja3NQYW5lbC5wcmVzZW50ZWQgaXMgZmFsc2UKLQotVHJhbnNpdGlvbiBlbmRlZAotUEFT
UyB0cmFja3NQYW5lbC5wcmVzZW50ZWQgaXMgZmFsc2UKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWhpZGUu
aHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFu
ZWwvdHJhY2tzLXBhbmVsLWhpZGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
Nzg4YTIyODBkMDM5OGJiNjU2ZDBlZTNhNDI0OWEzZTNjNzhmYzQ4Zi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1oaWRlLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVk
aWEtY29udHJvbHMtbG9hZGVyLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0Pgot
PGJvZHk+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oIlRlc3RpbmcgYSA8Y29kZT5UcmFja3NQYW5l
bDwvY29kZT4gaXMgaGlkZGVuIHdpdGggYW4gYW5pbWF0aW9uLiIpOwotCi1jb25zdCB0cmFja3NQ
YW5lbCA9IG5ldyBUcmFja3NQYW5lbDsKLWNvbnN0IGNvbnRhaW5lciA9IG5ldyBMYXlvdXROb2Rl
OwotCi1kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNvbnRhaW5lci5lbGVtZW50KTsKLQotZGVi
dWcoInRyYWNrc1BhbmVsLnByZXNlbnRJblBhcmVudChjb250YWluZXIpIik7Ci10cmFja3NQYW5l
bC5wcmVzZW50SW5QYXJlbnQoY29udGFpbmVyKTsKLQotc2NoZWR1bGVyLmZyYW1lRGlkRmlyZSA9
IGZ1bmN0aW9uKCkKLXsKLSAgICBzaG91bGRCZVRydWUoInRyYWNrc1BhbmVsLnByZXNlbnRlZCIp
OwotCi0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJ0cmFja3NQYW5lbC5oaWRlKCkiKTsKLSAg
ICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKLSAgICAgICAgdHJhY2tzUGFu
ZWwuaGlkZSgpOwotICAgICAgICBzaG91bGRCZUZhbHNlKCJ0cmFja3NQYW5lbC5wcmVzZW50ZWQi
KTsKLSAgICAgICAgdHJhY2tzUGFuZWwuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0
aW9uZW5kIiwgKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAg
ICBkZWJ1ZygiVHJhbnNpdGlvbiBlbmRlZCIpOwotICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgi
dHJhY2tzUGFuZWwucHJlc2VudGVkIik7Ci0gICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0gICAgc2NoZWR1bGVy
LmZyYW1lRGlkRmlyZSA9IG51bGw7Ci19Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5l
bC90cmFja3MtcGFuZWwtcG9wdWxhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wb3B1bGF0
aW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzMzOWZiMDM3
YTE2ZDhkYTAwZjdhODMzNzJmYjYxZWYxYWE2NzMzMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wb3B1bGF0aW9uLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLVBvcHVsYXRpbmcgYSBUcmFja3NQYW5lbCBp
bnN0YW5jZS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgdHJhY2tzUGFu
ZWwucHJlc2VudGVkIGlzIHRydWUKLVBBU1MgdHJhY2tzUGFuZWwucGFyZW50IGlzIGNvbnRhaW5l
cgotUEFTUyBzY3JvbGxDb250YWluZXIuY2hpbGRyZW4ubGVuZ3RoIGlzIG51bWJlck9mU2VjdGlv
bnMKLQotSGllcmFyY2h5IGZvciBzZWN0aW9uICMwCi1QQVNTIHNjcm9sbENvbnRhaW5lci5jaGls
ZHJlblswXS5lbGVtZW50LmxvY2FsTmFtZSBpcyAic2VjdGlvbiIKLVBBU1Mgc2Nyb2xsQ29udGFp
bmVyLmNoaWxkcmVuWzBdLmNoaWxkcmVuLmxlbmd0aCBpcyAyCi1QQVNTIHNjcm9sbENvbnRhaW5l
ci5jaGlsZHJlblswXS5jaGlsZHJlblswXS5lbGVtZW50LmxvY2FsTmFtZSBpcyAiaDMiCi1QQVNT
IHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblswXS5jaGlsZHJlblswXS5lbGVtZW50LnRleHRDb250
ZW50IGlzICJUaXRsZSAjMCIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWzBdLmNoaWxk
cmVuWzFdLmVsZW1lbnQubG9jYWxOYW1lIGlzICJ1bCIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNo
aWxkcmVuWzBdLmNoaWxkcmVuWzFdLmNoaWxkcmVuLmxlbmd0aCBpcyAzCi1QQVNTIHNjcm9sbENv
bnRhaW5lci5jaGlsZHJlblswXS5jaGlsZHJlblsxXS5jaGlsZHJlblt0cmFja0luZGV4XS5lbGVt
ZW50LmxvY2FsTmFtZSBpcyAibGkiCi1QQVNTIHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblswXS5j
aGlsZHJlblsxXS5jaGlsZHJlblt0cmFja0luZGV4XS5lbGVtZW50LmNsYXNzTmFtZSBpcyAiIgot
UEFTUyBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMV0uY2hpbGRyZW5bdHJh
Y2tJbmRleF0uZWxlbWVudC50ZXh0Q29udGVudCBpcyAiVHJhY2sgMHgwIgotUEFTUyBzY3JvbGxD
b250YWluZXIuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMV0uY2hpbGRyZW5bdHJhY2tJbmRleF0uZWxl
bWVudC5sb2NhbE5hbWUgaXMgImxpIgotUEFTUyBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5bMF0u
Y2hpbGRyZW5bMV0uY2hpbGRyZW5bdHJhY2tJbmRleF0uZWxlbWVudC5jbGFzc05hbWUgaXMgInNl
bGVjdGVkIgotUEFTUyBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMV0uY2hp
bGRyZW5bdHJhY2tJbmRleF0uZWxlbWVudC50ZXh0Q29udGVudCBpcyAiVHJhY2sgMHgxIgotUEFT
UyBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMV0uY2hpbGRyZW5bdHJhY2tJ
bmRleF0uZWxlbWVudC5sb2NhbE5hbWUgaXMgImxpIgotUEFTUyBzY3JvbGxDb250YWluZXIuY2hp
bGRyZW5bMF0uY2hpbGRyZW5bMV0uY2hpbGRyZW5bdHJhY2tJbmRleF0uZWxlbWVudC5jbGFzc05h
bWUgaXMgIiIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzFdLmNo
aWxkcmVuW3RyYWNrSW5kZXhdLmVsZW1lbnQudGV4dENvbnRlbnQgaXMgIlRyYWNrIDB4MiIKLQot
SGllcmFyY2h5IGZvciBzZWN0aW9uICMxCi1QQVNTIHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblsx
XS5lbGVtZW50LmxvY2FsTmFtZSBpcyAic2VjdGlvbiIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNo
aWxkcmVuWzFdLmNoaWxkcmVuLmxlbmd0aCBpcyAyCi1QQVNTIHNjcm9sbENvbnRhaW5lci5jaGls
ZHJlblsxXS5jaGlsZHJlblswXS5lbGVtZW50LmxvY2FsTmFtZSBpcyAiaDMiCi1QQVNTIHNjcm9s
bENvbnRhaW5lci5jaGlsZHJlblsxXS5jaGlsZHJlblswXS5lbGVtZW50LnRleHRDb250ZW50IGlz
ICJUaXRsZSAjMSIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWzFdLmNoaWxkcmVuWzFd
LmVsZW1lbnQubG9jYWxOYW1lIGlzICJ1bCIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVu
WzFdLmNoaWxkcmVuWzFdLmNoaWxkcmVuLmxlbmd0aCBpcyA1Ci1QQVNTIHNjcm9sbENvbnRhaW5l
ci5jaGlsZHJlblsxXS5jaGlsZHJlblsxXS5jaGlsZHJlblt0cmFja0luZGV4XS5lbGVtZW50Lmxv
Y2FsTmFtZSBpcyAibGkiCi1QQVNTIHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblsxXS5jaGlsZHJl
blsxXS5jaGlsZHJlblt0cmFja0luZGV4XS5lbGVtZW50LmNsYXNzTmFtZSBpcyAiIgotUEFTUyBz
Y3JvbGxDb250YWluZXIuY2hpbGRyZW5bMV0uY2hpbGRyZW5bMV0uY2hpbGRyZW5bdHJhY2tJbmRl
eF0uZWxlbWVudC50ZXh0Q29udGVudCBpcyAiVHJhY2sgMXgwIgotUEFTUyBzY3JvbGxDb250YWlu
ZXIuY2hpbGRyZW5bMV0uY2hpbGRyZW5bMV0uY2hpbGRyZW5bdHJhY2tJbmRleF0uZWxlbWVudC5s
b2NhbE5hbWUgaXMgImxpIgotUEFTUyBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5bMV0uY2hpbGRy
ZW5bMV0uY2hpbGRyZW5bdHJhY2tJbmRleF0uZWxlbWVudC5jbGFzc05hbWUgaXMgIiIKLVBBU1Mg
c2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWzFdLmNoaWxkcmVuWzFdLmNoaWxkcmVuW3RyYWNrSW5k
ZXhdLmVsZW1lbnQudGV4dENvbnRlbnQgaXMgIlRyYWNrIDF4MSIKLVBBU1Mgc2Nyb2xsQ29udGFp
bmVyLmNoaWxkcmVuWzFdLmNoaWxkcmVuWzFdLmNoaWxkcmVuW3RyYWNrSW5kZXhdLmVsZW1lbnQu
bG9jYWxOYW1lIGlzICJsaSIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWzFdLmNoaWxk
cmVuWzFdLmNoaWxkcmVuW3RyYWNrSW5kZXhdLmVsZW1lbnQuY2xhc3NOYW1lIGlzICIiCi1QQVNT
IHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblsxXS5jaGlsZHJlblsxXS5jaGlsZHJlblt0cmFja0lu
ZGV4XS5lbGVtZW50LnRleHRDb250ZW50IGlzICJUcmFjayAxeDIiCi1QQVNTIHNjcm9sbENvbnRh
aW5lci5jaGlsZHJlblsxXS5jaGlsZHJlblsxXS5jaGlsZHJlblt0cmFja0luZGV4XS5lbGVtZW50
LmxvY2FsTmFtZSBpcyAibGkiCi1QQVNTIHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblsxXS5jaGls
ZHJlblsxXS5jaGlsZHJlblt0cmFja0luZGV4XS5lbGVtZW50LmNsYXNzTmFtZSBpcyAic2VsZWN0
ZWQiCi1QQVNTIHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblsxXS5jaGlsZHJlblsxXS5jaGlsZHJl
blt0cmFja0luZGV4XS5lbGVtZW50LnRleHRDb250ZW50IGlzICJUcmFjayAxeDMiCi1QQVNTIHNj
cm9sbENvbnRhaW5lci5jaGlsZHJlblsxXS5jaGlsZHJlblsxXS5jaGlsZHJlblt0cmFja0luZGV4
XS5lbGVtZW50LmxvY2FsTmFtZSBpcyAibGkiCi1QQVNTIHNjcm9sbENvbnRhaW5lci5jaGlsZHJl
blsxXS5jaGlsZHJlblsxXS5jaGlsZHJlblt0cmFja0luZGV4XS5lbGVtZW50LmNsYXNzTmFtZSBp
cyAiIgotUEFTUyBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5bMV0uY2hpbGRyZW5bMV0uY2hpbGRy
ZW5bdHJhY2tJbmRleF0uZWxlbWVudC50ZXh0Q29udGVudCBpcyAiVHJhY2sgMXg0IgotCi1QQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90
cmFja3MtcGFuZWwtcG9wdWxhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcG9wdWxhdGlvbi5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0Njg0ZTRlZWZkNTYwM2M3YmQzY2ZhYjcxODEz
ZGM3YzI0Y2EyYjNlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwv
dHJhY2tzLXBhbmVsLXBvcHVsYXRpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcxICswLDAg
QEAKLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy1sb2FkZXIuanMi
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08Ym9keT4KLTxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KLQotZGVzY3JpcHRpb24oIlBvcHVsYXRpbmcgYSA8Y29kZT5UcmFj
a3NQYW5lbDwvY29kZT4gaW5zdGFuY2UuIik7Ci0KLWNvbnN0IHRyYWNrc1BhbmVsID0gbmV3IFRy
YWNrc1BhbmVsOwotCi1jb25zdCBudW1iZXJPZlNlY3Rpb25zID0gMjsKLWNvbnN0IG51bWJlck9m
VHJhY2tzSW5TZWN0aW9uID0gWzMsIDVdOwotY29uc3Qgc2VsZWN0ZWRUcmFja3MgPSBbWzAsIDFd
LCBbMSwgM11dOwotCi10cmFja3NQYW5lbC5kYXRhU291cmNlID0gewotICAgIHRyYWNrc1BhbmVs
TnVtYmVyT2ZTZWN0aW9uczogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG51bWJl
ck9mU2VjdGlvbnM7Ci0gICAgfSwKLQotICAgIHRyYWNrc1BhbmVsVGl0bGVGb3JTZWN0aW9uOiBm
dW5jdGlvbihzZWN0aW9uSW5kZXgpCi0gICAgewotICAgICAgICByZXR1cm4gYFRpdGxlICMke3Nl
Y3Rpb25JbmRleH1gOwotICAgIH0sCi0KLSAgICB0cmFja3NQYW5lbE51bWJlck9mVHJhY2tzSW5T
ZWN0aW9uOiBmdW5jdGlvbihzZWN0aW9uSW5kZXgpCi0gICAgewotICAgICAgICByZXR1cm4gbnVt
YmVyT2ZUcmFja3NJblNlY3Rpb25bc2VjdGlvbkluZGV4XTsKLSAgICB9LAotCi0gICAgdHJhY2tz
UGFuZWxUaXRsZUZvclRyYWNrSW5TZWN0aW9uOiBmdW5jdGlvbih0cmFja0luZGV4LCBzZWN0aW9u
SW5kZXgpCi0gICAgewotICAgICAgICByZXR1cm4gYFRyYWNrICR7c2VjdGlvbkluZGV4fXgke3Ry
YWNrSW5kZXh9YDsKLSAgICB9LAotCi0gICAgdHJhY2tzUGFuZWxJc1RyYWNrSW5TZWN0aW9uU2Vs
ZWN0ZWQ6IGZ1bmN0aW9uKHRyYWNrSW5kZXgsIHNlY3Rpb25JbmRleCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiBzZWxlY3RlZFRyYWNrcy5zb21lKHNlbGVjdGVkVHJhY2sgPT4gc2VsZWN0ZWRUcmFj
a1swXSA9PT0gc2VjdGlvbkluZGV4ICYmIHNlbGVjdGVkVHJhY2tbMV0gPT09IHRyYWNrSW5kZXgp
OwotICAgIH0KLX07Ci0KLWNvbnN0IGNvbnRhaW5lciA9IG5ldyBMYXlvdXROb2RlOwotdHJhY2tz
UGFuZWwucHJlc2VudEluUGFyZW50KGNvbnRhaW5lcik7Ci0KLWNvbnN0IHNjcm9sbENvbnRhaW5l
ciA9IHRyYWNrc1BhbmVsLmNoaWxkcmVuWzFdOwotCi1zaG91bGRCZVRydWUoInRyYWNrc1BhbmVs
LnByZXNlbnRlZCIpOwotc2hvdWxkQmUoInRyYWNrc1BhbmVsLnBhcmVudCIsICJjb250YWluZXIi
KTsKLXNob3VsZEJlKCJzY3JvbGxDb250YWluZXIuY2hpbGRyZW4ubGVuZ3RoIiwgIm51bWJlck9m
U2VjdGlvbnMiKTsKLQotbGV0IHNlY3Rpb25JbmRleCwgdHJhY2tJbmRleDsKLWZvciAoc2VjdGlv
bkluZGV4ID0gMDsgc2VjdGlvbkluZGV4IDwgbnVtYmVyT2ZTZWN0aW9uczsgKytzZWN0aW9uSW5k
ZXgpIHsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoYEhpZXJhcmNoeSBmb3Igc2VjdGlvbiAj
JHtzZWN0aW9uSW5kZXh9YCk7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKGBzY3JvbGxDb250
YWluZXIuY2hpbGRyZW5bJHtzZWN0aW9uSW5kZXh9XS5lbGVtZW50LmxvY2FsTmFtZWAsICJzZWN0
aW9uIik7Ci0gICAgc2hvdWxkQmUoYHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblske3NlY3Rpb25J
bmRleH1dLmNoaWxkcmVuLmxlbmd0aGAsICIyIik7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KGBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5bJHtzZWN0aW9uSW5kZXh9XS5jaGlsZHJlblswXS5l
bGVtZW50LmxvY2FsTmFtZWAsICJoMyIpOwotICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZyhgc2Ny
b2xsQ29udGFpbmVyLmNoaWxkcmVuWyR7c2VjdGlvbkluZGV4fV0uY2hpbGRyZW5bMF0uZWxlbWVu
dC50ZXh0Q29udGVudGAsIHRyYWNrc1BhbmVsLmRhdGFTb3VyY2UudHJhY2tzUGFuZWxUaXRsZUZv
clNlY3Rpb24oc2VjdGlvbkluZGV4KSk7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKGBzY3Jv
bGxDb250YWluZXIuY2hpbGRyZW5bJHtzZWN0aW9uSW5kZXh9XS5jaGlsZHJlblsxXS5lbGVtZW50
LmxvY2FsTmFtZWAsICJ1bCIpOwotICAgIHNob3VsZEJlKGBzY3JvbGxDb250YWluZXIuY2hpbGRy
ZW5bJHtzZWN0aW9uSW5kZXh9XS5jaGlsZHJlblsxXS5jaGlsZHJlbi5sZW5ndGhgLCBgJHtudW1i
ZXJPZlRyYWNrc0luU2VjdGlvbltzZWN0aW9uSW5kZXhdfWApOwotICAgIGZvciAodHJhY2tJbmRl
eCA9IDA7IHRyYWNrSW5kZXggPCBudW1iZXJPZlRyYWNrc0luU2VjdGlvbltzZWN0aW9uSW5kZXhd
OyArK3RyYWNrSW5kZXgpIHsKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKGBzY3JvbGxD
b250YWluZXIuY2hpbGRyZW5bJHtzZWN0aW9uSW5kZXh9XS5jaGlsZHJlblsxXS5jaGlsZHJlblt0
cmFja0luZGV4XS5lbGVtZW50LmxvY2FsTmFtZWAsICJsaSIpOwotICAgICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoYHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblske3NlY3Rpb25JbmRleH1dLmNo
aWxkcmVuWzFdLmNoaWxkcmVuW3RyYWNrSW5kZXhdLmVsZW1lbnQuY2xhc3NOYW1lYCwgc2VsZWN0
ZWRUcmFja3Muc29tZShzZWxlY3RlZFRyYWNrID0+IHNlbGVjdGVkVHJhY2tbMF0gPT09IHNlY3Rp
b25JbmRleCAmJiBzZWxlY3RlZFRyYWNrWzFdID09PSB0cmFja0luZGV4KSA/ICJzZWxlY3RlZCIg
OiAiIik7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZyhgc2Nyb2xsQ29udGFpbmVyLmNo
aWxkcmVuWyR7c2VjdGlvbkluZGV4fV0uY2hpbGRyZW5bMV0uY2hpbGRyZW5bdHJhY2tJbmRleF0u
ZWxlbWVudC50ZXh0Q29udGVudGAsIHRyYWNrc1BhbmVsLmRhdGFTb3VyY2UudHJhY2tzUGFuZWxU
aXRsZUZvclRyYWNrSW5TZWN0aW9uKHRyYWNrSW5kZXgsIHNlY3Rpb25JbmRleCkpOwotICAgIH0K
LX0KLQotZGVidWcoIiIpOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tz
LXBhbmVsLXBvc2l0aW9uLWFuZC1zaXplLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXBvc2l0aW9u
LWFuZC1zaXplLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjAw
OTRkMjMzM2UxMGQ1MzQxNjdmMWZlY2YzMjY3OWJiZmQwYzEzYi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wb3NpdGlvbi1hbmQtc2l6ZS1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UZXN0aW5nIHBvc2l0
aW9uaW5nIGFuZCBzaXppbmcgb2YgdGhlIHRyYWNrcyBwYW5lbC4KLQotT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgotCi0KLVBBU1MgbWVkaWFDb250cm9scy50cmFja3NCdXR0b24uZWxlbWVudC5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAotbWVk
aWFDb250cm9scy5zaG93VHJhY2tzUGFuZWwoKQotUEFTUyBtZWRpYUNvbnRyb2xzLnRyYWNrc1Bh
bmVsLmVsZW1lbnQuc3R5bGUucmlnaHQgaXMgIjIycHgiCi1QQVNTIG1lZGlhQ29udHJvbHMudHJh
Y2tzUGFuZWwuZWxlbWVudC5zdHlsZS5ib3R0b20gaXMgIjM4cHgiCi1QQVNTIGdldENvbXB1dGVk
U3R5bGUobWVkaWFDb250cm9scy50cmFja3NQYW5lbC5lbGVtZW50KS5oZWlnaHQgaXMgIjI1MnB4
IgotUEFTUyBnZXRDb21wdXRlZFN0eWxlKG1lZGlhQ29udHJvbHMudHJhY2tzUGFuZWwuZWxlbWVu
dC5sYXN0RWxlbWVudENoaWxkKS5oZWlnaHQgaXMgIjI1MnB4IgotUEFTUyBnZXRDb21wdXRlZFN0
eWxlKG1lZGlhQ29udHJvbHMudHJhY2tzUGFuZWwuZWxlbWVudC5sYXN0RWxlbWVudENoaWxkKS5v
dmVyZmxvd1kgaXMgInNjcm9sbCIKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQot
Ci1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXBvc2l0aW9uLWFuZC1zaXpl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBh
bmVsL3RyYWNrcy1wYW5lbC1wb3NpdGlvbi1hbmQtc2l6ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA1MmE1Nzc1YzEwMzU1ZDk0NTk1MWJhZjVmM2YwM2M3NmNhYzRhNTZiLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXBv
c2l0aW9uLWFuZC1zaXplLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtbG9hZGVyLmpzIiB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPGJvZHk+Ci08c3R5bGUgdHlwZT0idGV4dC9jc3Mi
IG1lZGlhPSJzY3JlZW4iPgotICAgIAotICAgIC5tZWRpYS1jb250cm9scyB7Ci0gICAgICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKLSAgICAgICAgdG9wOiAwOwotICAgICAgICBsZWZ0OiAwOwotICAg
IH0KLSAgICAKLTwvc3R5bGU+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXdp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oIlRlc3RpbmcgcG9zaXRp
b25pbmcgYW5kIHNpemluZyBvZiB0aGUgdHJhY2tzIHBhbmVsLiIpOwotCi1jb25zdCBtZWRpYUNv
bnRyb2xzID0gbmV3IE1hY09TSW5saW5lTWVkaWFDb250cm9scyh7IHdpZHRoOiA2ODAsIGhlaWdo
dDogMzAwIH0pOwotCi1tZWRpYUNvbnRyb2xzLnRyYWNrc1BhbmVsLmRhdGFTb3VyY2UgPSB7Ci0g
ICAgdHJhY2tzUGFuZWxOdW1iZXJPZlNlY3Rpb25zOiBmdW5jdGlvbigpCi0gICAgewotICAgICAg
ICByZXR1cm4gMTsKLSAgICB9LAotCi0gICAgdHJhY2tzUGFuZWxUaXRsZUZvclNlY3Rpb246IGZ1
bmN0aW9uKHNlY3Rpb25JbmRleCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBgVGl0bGVgOwotICAg
IH0sCi0KLSAgICB0cmFja3NQYW5lbE51bWJlck9mVHJhY2tzSW5TZWN0aW9uOiBmdW5jdGlvbihz
ZWN0aW9uSW5kZXgpCi0gICAgewotICAgICAgICByZXR1cm4gMjA7Ci0gICAgfSwKLQotICAgIHRy
YWNrc1BhbmVsVGl0bGVGb3JUcmFja0luU2VjdGlvbjogZnVuY3Rpb24odHJhY2tJbmRleCwgc2Vj
dGlvbkluZGV4KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGBUcmFja2A7Ci0gICAgfSwKLQotICAg
IHRyYWNrc1BhbmVsSXNUcmFja0luU2VjdGlvblNlbGVjdGVkOiBmdW5jdGlvbih0cmFja0luZGV4
LCBzZWN0aW9uSW5kZXgpCi0gICAgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotfTsK
LQotZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChtZWRpYUNvbnRyb2xzLmVsZW1lbnQpOwotCi1z
aG91bGRCZWNvbWVEaWZmZXJlbnQoIm1lZGlhQ29udHJvbHMudHJhY2tzQnV0dG9uLmVsZW1lbnQu
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQiLCAiMCIsICgpID0+IHsKLSAgICBkZWJ1Zygi
bWVkaWFDb250cm9scy5zaG93VHJhY2tzUGFuZWwoKSIpOwotICAgIG1lZGlhQ29udHJvbHMuc2hv
d1RyYWNrc1BhbmVsKCk7Ci0gICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7
Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibWVkaWFDb250cm9scy50cmFja3NQYW5l
bC5lbGVtZW50LnN0eWxlLnJpZ2h0IiwgIjIycHgiKTsKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJtZWRpYUNvbnRyb2xzLnRyYWNrc1BhbmVsLmVsZW1lbnQuc3R5bGUuYm90dG9tIiwg
IjM4cHgiKTsKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRDb21wdXRlZFN0eWxl
KG1lZGlhQ29udHJvbHMudHJhY2tzUGFuZWwuZWxlbWVudCkuaGVpZ2h0IiwgIjI1MnB4Iik7Ci0g
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0Q29tcHV0ZWRTdHlsZShtZWRpYUNvbnRy
b2xzLnRyYWNrc1BhbmVsLmVsZW1lbnQubGFzdEVsZW1lbnRDaGlsZCkuaGVpZ2h0IiwgIjI1MnB4
Iik7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0Q29tcHV0ZWRTdHlsZShtZWRp
YUNvbnRyb2xzLnRyYWNrc1BhbmVsLmVsZW1lbnQubGFzdEVsZW1lbnRDaGlsZCkub3ZlcmZsb3dZ
IiwgInNjcm9sbCIpOwotICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgIG1lZGlhQ29udHJvbHMu
ZWxlbWVudC5yZW1vdmUoKTsKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgfSk7Ci19KTsK
LQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wcmV2ZW50LWNv
bnRyb2xzLWJhci1mcm9tLWZhZGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wcmV2ZW50LWNv
bnRyb2xzLWJhci1mcm9tLWZhZGluZy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGVjMThhMWVhMjM2ODAzMjUwZTFjY2JiYzQ3Y2UwMDUzOGExNzZiMTEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcHJldmVu
dC1jb250cm9scy1iYXItZnJvbS1mYWRpbmctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMjEgKzAsMCBAQAotU2hvd2luZyB0aGUgdHJhY2tzIHBhbmVsIHNob3VsZCBzdXNwZW5kIHRo
ZSBhdXRvLWhpZGUgYmVoYXZpb3IgdW50aWwgaXQncyBoaWRkZW4uCi0KLU9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KLQotCi1tZWRpYUNvbnRyb2xzLnNob3dUcmFja3NQYW5lbCgpCi1QQVNTIG1l
ZGlhQ29udHJvbHMudHJhY2tzUGFuZWwuZWxlbWVudC5wYXJlbnROb2RlIGJlY2FtZSBtZWRpYUNv
bnRyb2xzLmVsZW1lbnQKLQotV2UndmUgd2FpdGVkIGxvbmcgZW5vdWdoIHNvIHRoYXQgdGhlIGNv
bnRyb2xzIGJhciBzaG91bGQgYmUgZmFkZWQgc2hvdWxkIHRoZSB0cmFja3MgcGFuZWwgbm90IGJl
IHZpc2libGUKLVBBU1MgbWVkaWFDb250cm9scy5mYWRlZCBpcyBmYWxzZQotCi1Ob3cgZW50ZXIg
YW5kIGV4aXQgdGhlIG1lZGlhIGNvbnRyb2xzLCB0aGUgY29udHJvbHMgYmFyIHNob3VsZCByZW1h
aW4gdmlzaWJsZQotUEFTUyBtZWRpYUNvbnRyb2xzLmZhZGVkIGlzIGZhbHNlCi0KLW1lZGlhQ29u
dHJvbHMuaGlkZVRyYWNrc1BhbmVsKCkKLVBBU1MgbWVkaWFDb250cm9scy5mYWRlZCBiZWNhbWUg
dHJ1ZQotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcHJldmVudC1jb250cm9scy1iYXItZnJvbS1mYWRpbmcu
aHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFu
ZWwvdHJhY2tzLXBhbmVsLXByZXZlbnQtY29udHJvbHMtYmFyLWZyb20tZmFkaW5nLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY5NjBjNGE0NzJjZTE2MmU5N2U5MzVkNzgwODM2
NWQxOTNkYWI4NmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90
cmFja3MtcGFuZWwtcHJldmVudC1jb250cm9scy1iYXItZnJvbS1mYWRpbmcuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDYwICswLDAgQEAKLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRp
YS1jb250cm9scy1sb2FkZXIuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08
Ym9keT4KLTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+Ci0gICAgCi0gICAg
Lm1lZGlhLWNvbnRyb2xzIHsKLSAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwotICAgICAgICB0
b3A6IDA7Ci0gICAgICAgIGxlZnQ6IDA7Ci0gICAgfQotICAgIAotPC9zdHlsZT4KLTxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwot
Ci1kZXNjcmlwdGlvbigiU2hvd2luZyB0aGUgdHJhY2tzIHBhbmVsIHNob3VsZCBzdXNwZW5kIHRo
ZSBhdXRvLWhpZGUgYmVoYXZpb3IgdW50aWwgaXQncyBoaWRkZW4uIik7Ci0KLWNvbnN0IG1lZGlh
Q29udHJvbHMgPSBuZXcgTWFjT1NJbmxpbmVNZWRpYUNvbnRyb2xzKHsgd2lkdGg6IDY4MCwgaGVp
Z2h0OiAzMDAgfSk7Ci0KLWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobWVkaWFDb250cm9scy5l
bGVtZW50KTsKLQotbGV0IHRyYWNrRWxlbWVudDsKLQotbWVkaWFDb250cm9scy5hdXRvSGlkZUNv
bnRyb2xsZXIuYXV0b0hpZGVEZWxheSA9IDI1MDsKLW1lZGlhQ29udHJvbHMuYXV0b0hpZGVDb250
cm9sbGVyLmZhZGVzV2hpbGVJZGxlID0gdHJ1ZTsKLQotZGVidWcoIm1lZGlhQ29udHJvbHMuc2hv
d1RyYWNrc1BhbmVsKCkiKTsKLW1lZGlhQ29udHJvbHMuc2hvd1RyYWNrc1BhbmVsKCk7Ci0KLXNo
b3VsZEJlY29tZUVxdWFsKCJtZWRpYUNvbnRyb2xzLnRyYWNrc1BhbmVsLmVsZW1lbnQucGFyZW50
Tm9kZSIsICJtZWRpYUNvbnRyb2xzLmVsZW1lbnQiLCAoKSA9PiB7Ci0gICAgLy8gTGV0J3Mgd2Fp
dCBhIHdoaWxlIHRvIHNlZSB0aGF0IHRoZSBjb250cm9scyBiYXIgaXMgc3RpbGwgdmlzaWJsZS4K
LSAgICBzZXRUaW1lb3V0KCgpID0+IHsKLSAgICAgICAgZGVidWcoIiIpOwotICAgICAgICBkZWJ1
ZygiV2UndmUgd2FpdGVkIGxvbmcgZW5vdWdoIHNvIHRoYXQgdGhlIGNvbnRyb2xzIGJhciBzaG91
bGQgYmUgZmFkZWQgc2hvdWxkIHRoZSB0cmFja3MgcGFuZWwgbm90IGJlIHZpc2libGUiKTsKLSAg
ICAgICAgc2hvdWxkQmVGYWxzZSgibWVkaWFDb250cm9scy5mYWRlZCIpOwotCi0gICAgICAgIGRl
YnVnKCIiKTsKLSAgICAgICAgZGVidWcoIk5vdyBlbnRlciBhbmQgZXhpdCB0aGUgbWVkaWEgY29u
dHJvbHMsIHRoZSBjb250cm9scyBiYXIgc2hvdWxkIHJlbWFpbiB2aXNpYmxlIik7Ci0gICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDcwMCwgMTApOwotICAgICAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbyg2NTAsIDEwKTsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oNzAw
LCAxMCk7Ci0gICAgICAgIHNob3VsZEJlRmFsc2UoIm1lZGlhQ29udHJvbHMuZmFkZWQiKTsKLQot
ICAgICAgICAvLyBBbmQgbm93IGRpc21pc3MgdGhlIHRyYWNrcyBwYW5lbCBhbmQgY2hlY2sgdGhh
dCB0aGUgY29udHJvbHMgYmFyCi0gICAgICAgIC8vIGZhZGVzIG91dCBhcyB3ZWxsLgotICAgICAg
ICBkZWJ1ZygiIik7Ci0gICAgICAgIGRlYnVnKCJtZWRpYUNvbnRyb2xzLmhpZGVUcmFja3NQYW5l
bCgpIik7Ci0gICAgICAgIG1lZGlhQ29udHJvbHMuaGlkZVRyYWNrc1BhbmVsKCk7Ci0gICAgICAg
IHNob3VsZEJlY29tZUVxdWFsKCJtZWRpYUNvbnRyb2xzLmZhZGVkIiwgInRydWUiLCAoKSA9PiB7
Ci0gICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICBtZWRpYUNvbnRyb2xzLmVsZW1l
bnQucmVtb3ZlKCk7Ci0gICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfSk7Ci0g
ICAgfSwgbWVkaWFDb250cm9scy5hdXRvSGlkZUNvbnRyb2xsZXIuYXV0b0hpZGVEZWxheSk7Ci19
KTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wcmV2ZW50
LWRlZmF1bHQtb24ta2V5ZG93bi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wcmV2ZW50LWRlZmF1
bHQtb24ta2V5ZG93bi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAyMWJhNmQ5NTgwNmE5ZDg0MWU4YWZlYjUyNTc0Nzc5NTAyOTQ4NGUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcHJldmVudC1kZWZhdWx0
LW9uLWtleWRvd24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAot
VGVzdGluZyBhIFRyYWNrc1BhbmVsIGNhbGxzIHByZXZlbnREZWZhdWx0KCkgb24gZXZlbnRzIGl0
IGhhbmRsZXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1tZWRpYUNvbnRyb2xz
LnNob3dUcmFja3NQYW5lbCgpCi0KLVByZXNzaW5nIHRoZSBBcnJvd0Rvd24ga2V5Ci1QQVNTIGV2
ZW50LmRlZmF1bHRQcmV2ZW50ZWQgaXMgdHJ1ZQotUHJlc3NpbmcgdGhlIEFycm93UmlnaHQga2V5
Ci1QQVNTIGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQgaXMgZmFsc2UKLQotUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVs
LXByZXZlbnQtZGVmYXVsdC1vbi1rZXlkb3duLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wcmV2ZW50LWRlZmF1
bHQtb24ta2V5ZG93bi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZjVjOTAw
YTBjYzM2MmU0OTExNTBhM2ViZDJmNTkxZjRmZDM0NjExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXByZXZlbnQtZGVmYXVsdC1vbi1rZXlk
b3duLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtbG9hZGVyLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPjwvc2NyaXB0PgotPGJvZHkgc3R5bGU9ImhlaWdodDogMzAwMHB4Ij4KLTxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1k
ZXNjcmlwdGlvbigiVGVzdGluZyBhIDxjb2RlPlRyYWNrc1BhbmVsPC9jb2RlPiBjYWxscyBwcmV2
ZW50RGVmYXVsdCgpIG9uIGV2ZW50cyBpdCBoYW5kbGVzLiIpOwotCi1jb25zdCBtZWRpYUNvbnRy
b2xzID0gbmV3IE1hY09TSW5saW5lTWVkaWFDb250cm9scyh7IHdpZHRoOiA2ODAsIGhlaWdodDog
MzAwIH0pOwotZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChtZWRpYUNvbnRyb2xzLmVsZW1lbnQp
OwotCi1kZWJ1ZygibWVkaWFDb250cm9scy5zaG93VHJhY2tzUGFuZWwoKSIpOwotbWVkaWFDb250
cm9scy5zaG93VHJhY2tzUGFuZWwoKTsKLQotc2NoZWR1bGVyLmZyYW1lRGlkRmlyZSA9IGZ1bmN0
aW9uKCkKLXsKLSAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKLSAgICAg
ICAgZGVidWcoIiIpOwotICAgICAgICBkZWJ1ZygiUHJlc3NpbmcgdGhlIEFycm93RG93biBrZXki
KTsKLSAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiQXJyb3dEb3duIik7Ci0gICAgICAgIGRl
YnVnKCJQcmVzc2luZyB0aGUgQXJyb3dSaWdodCBrZXkiKTsKLSAgICAgICAgZXZlbnRTZW5kZXIu
a2V5RG93bigiQXJyb3dSaWdodCIpOwotICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgIG1lZGlh
Q29udHJvbHMuZWxlbWVudC5yZW1vdmUoKTsKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAg
fSk7Ci0gICAgc2NoZWR1bGVyLmZyYW1lRGlkRmlyZSA9IG51bGw7Ci19Ci0KLWRvY3VtZW50LmJv
ZHkuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIGV2ZW50ID0+IHsKLSAgICBpZiAoZXZlbnQu
a2V5ID09PSAiQXJyb3dSaWdodCIpCi0gICAgICAgIHNob3VsZEJlRmFsc2UoImV2ZW50LmRlZmF1
bHRQcmV2ZW50ZWQiKTsKLSAgICBlbHNlIGlmIChldmVudC5rZXkgPT09ICJBcnJvd0Rvd24iKQot
ICAgICAgICBzaG91bGRCZVRydWUoImV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQiKTsKLX0pOwotCi08
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXJpZ2h0LXgtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1w
YW5lbC90cmFja3MtcGFuZWwtcmlnaHQteC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDI0NTMzNzE1Zjg5YTk0MmM3ZDEyNWJlN2IwMjMwNDZkZDM0OTQ3M2MuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcmln
aHQteC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1UZXN0aW5n
IHRoZSBUcmFja3NQYW5lbCBjbGFzcy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0K
LXRyYWNrc1BhbmVsLnJpZ2h0WCA9IDEwCi1QQVNTIHRyYWNrc1BhbmVsLmVsZW1lbnQuc3R5bGUu
cmlnaHQgaXMgIjEwcHgiCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVT
VCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1yaWdodC14Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5l
bC1yaWdodC14Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhYjcxZTJhY2Yx
ZmI3M2U1N2IyNmJhZmEwZDFhMDFmMGMyNDEzNjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcmlnaHQteC5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMjYgKzAsMCBAQAotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRy
b2xzLWxvYWRlci5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMiIHR5cGU9InRleHQvamF2
YXNjcmlwdCI+PC9zY3JpcHQ+Ci08Ym9keT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbigiVGVzdGlu
ZyB0aGUgPGNvZGU+VHJhY2tzUGFuZWw8L2NvZGU+IGNsYXNzLiIpOwotCi1jb25zdCB0cmFja3NQ
YW5lbCA9IG5ldyBUcmFja3NQYW5lbDsKLQotdHJhY2tzUGFuZWwucmlnaHRYID0gMTA7Ci1kZWJ1
ZygidHJhY2tzUGFuZWwucmlnaHRYID0gMTAiKTsKLQotc2NoZWR1bGVyLmZyYW1lRGlkRmlyZSA9
IGZ1bmN0aW9uKCkKLXsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRyYWNrc1BhbmVsLmVs
ZW1lbnQuc3R5bGUucmlnaHQiLCAiMTBweCIpOwotCi0gICAgZGVidWcoIiIpOwotICAgIGZpbmlz
aE1lZGlhQ29udHJvbHNUZXN0KCk7Ci19OwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFu
ZWwvdHJhY2tzLXBhbmVsLXNlbGVjdC10cmFjay13aXRoLWtleWJvYXJkLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJh
Y2tzLXBhbmVsLXNlbGVjdC10cmFjay13aXRoLWtleWJvYXJkLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzg1MjM0MWM1YWQyMmMyZWJhMjMwMDg3YWE2Mzk5Mjhl
ZGExYzUyMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNr
cy1wYW5lbC1zZWxlY3QtdHJhY2std2l0aC1rZXlib2FyZC1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwxOSArMCwwIEBACi1TZWxlY3RpbmcgYSB0cmFjayBpbiBhIFRyYWNrc1BhbmVs
IHdpdGggdGhlIGtleWJvYXJkLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotbWVk
aWFDb250cm9scy5zaG93VHJhY2tzUGFuZWwoKQotCi1Gb2N1c2luZyB0aGUgc2Vjb25kIHRyYWNr
IGJ5IHByZXNzaW5nIHRoZSBkb3duIGFycm93IGtleSB0d2ljZQotT2J0YWluZWQgZm9jdXMgZXZl
bnQKLQotQWN0aXZhdGluZyB0aGUgZm9jdXNlZCB0cmFjayBieSBwcmVzc2luZyB0aGUgRW50ZXIg
a2V5Ci1tZWRpYUNvbnRyb2xzLnRyYWNrc1BhbmVsLnVpRGVsZWdhdGUudHJhY2tzUGFuZWxTZWxl
Y3Rpb25EaWRDaGFuZ2UoKSBjYWxsZWQKLXNlY3Rpb25JbmRleCA9IDAKLXRyYWNrSW5kZXggPSAx
Ci0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXBhbmVsL3RyYWNrcy1wYW5lbC1zZWxlY3QtdHJhY2std2l0aC1rZXlib2FyZC5odG1sIGIvTGF5
b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3Mt
cGFuZWwtc2VsZWN0LXRyYWNrLXdpdGgta2V5Ym9hcmQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZDE0YmMzN2E4YjcxNTI2NzU0MzZkNzhlMzdiYjJkNDg2MmE5M2ZmNS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1zZWxl
Y3QtdHJhY2std2l0aC1rZXlib2FyZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTEgKzAsMCBA
QAotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLWxvYWRlci5qcyIg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KLTxib2R5PgotPHN0eWxlIHR5cGU9InRl
eHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KLSAgICAKLSAgICAubWVkaWEtY29udHJvbHMgewotICAg
ICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgICAgIHRvcDogMDsKLSAgICAgICAgbGVmdDog
MDsKLSAgICB9Ci0gICAgCi08L3N0eWxlPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
PgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJTZWxlY3Rp
bmcgYSB0cmFjayBpbiBhIDxjb2RlPlRyYWNrc1BhbmVsPC9jb2RlPiB3aXRoIHRoZSBrZXlib2Fy
ZC4iKTsKLQotY29uc3QgbWVkaWFDb250cm9scyA9IG5ldyBNYWNPU0lubGluZU1lZGlhQ29udHJv
bHMoeyB3aWR0aDogNjgwLCBoZWlnaHQ6IDMwMCB9KTsKLQotbWVkaWFDb250cm9scy50cmFja3NQ
YW5lbC5kYXRhU291cmNlID0gewotICAgIHRyYWNrc1BhbmVsTnVtYmVyT2ZTZWN0aW9uczogZnVu
Y3Rpb24oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgfSwKLQotICAgIHRyYWNrc1Bh
bmVsVGl0bGVGb3JTZWN0aW9uOiBmdW5jdGlvbihzZWN0aW9uSW5kZXgpCi0gICAgewotICAgICAg
ICByZXR1cm4gYFRpdGxlYDsKLSAgICB9LAotCi0gICAgdHJhY2tzUGFuZWxOdW1iZXJPZlRyYWNr
c0luU2VjdGlvbjogZnVuY3Rpb24oc2VjdGlvbkluZGV4KQotICAgIHsKLSAgICAgICAgcmV0dXJu
IDM7Ci0gICAgfSwKLQotICAgIHRyYWNrc1BhbmVsVGl0bGVGb3JUcmFja0luU2VjdGlvbjogZnVu
Y3Rpb24odHJhY2tJbmRleCwgc2VjdGlvbkluZGV4KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGBU
cmFja2A7Ci0gICAgfSwKLQotICAgIHRyYWNrc1BhbmVsSXNUcmFja0luU2VjdGlvblNlbGVjdGVk
OiBmdW5jdGlvbih0cmFja0luZGV4LCBzZWN0aW9uSW5kZXgpCi0gICAgewotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgfQotfTsKLQotbWVkaWFDb250cm9scy50cmFja3NQYW5lbC51aURlbGVn
YXRlID0gewotICAgIHRyYWNrc1BhbmVsU2VsZWN0aW9uRGlkQ2hhbmdlOiBmdW5jdGlvbih0cmFj
a0luZGV4LCBzZWN0aW9uSW5kZXgpCi0gICAgewotICAgICAgICBkZWJ1ZygibWVkaWFDb250cm9s
cy50cmFja3NQYW5lbC51aURlbGVnYXRlLnRyYWNrc1BhbmVsU2VsZWN0aW9uRGlkQ2hhbmdlKCkg
Y2FsbGVkIik7Ci0gICAgICAgIGRlYnVnKGBzZWN0aW9uSW5kZXggPSAke3NlY3Rpb25JbmRleH1g
KTsKLSAgICAgICAgZGVidWcoYHRyYWNrSW5kZXggPSAke3RyYWNrSW5kZXh9YCk7Ci0KLSAgICAg
ICAgZGVidWcoIiIpOwotICAgICAgICBtZWRpYUNvbnRyb2xzLmVsZW1lbnQucmVtb3ZlKCk7Ci0g
ICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgIH0KLX07Ci0KLWRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQobWVkaWFDb250cm9scy5lbGVtZW50KTsKLQotbGV0IHRyYWNrRWxlbWVudDsKLQotZGVi
dWcoIm1lZGlhQ29udHJvbHMuc2hvd1RyYWNrc1BhbmVsKCkiKTsKLW1lZGlhQ29udHJvbHMuc2hv
d1RyYWNrc1BhbmVsKCk7Ci0KLXNjaGVkdWxlci5mcmFtZURpZEZpcmUgPSBmdW5jdGlvbigpCi17
Ci0gICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAgICAgIGRlYnVn
KCIiKTsKLSAgICAgICAgZGVidWcoIkZvY3VzaW5nIHRoZSBzZWNvbmQgdHJhY2sgYnkgcHJlc3Np
bmcgdGhlIGRvd24gYXJyb3cga2V5IHR3aWNlIik7Ci0KLSAgICAgICAgdHJhY2tFbGVtZW50ID0g
bWVkaWFDb250cm9scy50cmFja3NQYW5lbC5lbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImxpIilb
MV07Ci0gICAgICAgIHRyYWNrRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsICgpID0+
IHsKLSAgICAgICAgICAgIGRlYnVnKCJPYnRhaW5lZCBmb2N1cyBldmVudCIpOwotCi0gICAgICAg
ICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICBkZWJ1ZygiQWN0aXZhdGluZyB0aGUgZm9jdXNl
ZCB0cmFjayBieSBwcmVzc2luZyB0aGUgRW50ZXIga2V5Iik7Ci0gICAgICAgICAgICB3aW5kb3cu
cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IGV2ZW50U2VuZGVyLmtleURvd24oIkVudGVyIikp
OwotICAgICAgICB9KTsKLQotICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJBcnJvd0Rvd24i
KTsKLSAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiQXJyb3dEb3duIik7Ci0gICAgfSk7Ci0g
ICAgc2NoZWR1bGVyLmZyYW1lRGlkRmlyZSA9IG51bGw7Ci19Ci0KLTwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9i
b2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtc2VsZWN0LXRyYWNrLXdpdGgtbW91c2UtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1w
YW5lbC90cmFja3MtcGFuZWwtc2VsZWN0LXRyYWNrLXdpdGgtbW91c2UtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjODJiMTk4YzMyOTJkMDcyOTYwOGY0YjEzOGI1
ZTNhMDEwZDI1NWFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwv
dHJhY2tzLXBhbmVsLXNlbGVjdC10cmFjay13aXRoLW1vdXNlLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDIwICswLDAgQEAKLVNlbGVjdGluZyBhIHRyYWNrIGluIGEgVHJhY2tzUGFu
ZWwgd2l0aCB0aGUgbW91c2UuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNT
IG1lZGlhQ29udHJvbHMudHJhY2tzQnV0dG9uLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCkucmlnaHQgYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKLW1lZGlhQ29udHJvbHMuc2hvd1RyYWNr
c1BhbmVsKCkKLQotTW91c2luZyBvdmVyIHRoZSBzZWNvbmQgdHJhY2sgaW4gdGhlIHBhbmVsCi1P
YnRhaW5lZCBmb2N1cyBldmVudAotCi1DbGlja2luZyBvbiBmb2N1c2VkIHRyYWNrCi1tZWRpYUNv
bnRyb2xzLnRyYWNrc1BhbmVsLnVpRGVsZWdhdGUudHJhY2tzUGFuZWxTZWxlY3Rpb25EaWRDaGFu
Z2UoKSBjYWxsZWQKLXNlY3Rpb25JbmRleCA9IDAKLXRyYWNrSW5kZXggPSAxCi0KLVBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNr
cy1wYW5lbC1zZWxlY3QtdHJhY2std2l0aC1tb3VzZS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtc2VsZWN0LXRy
YWNrLXdpdGgtbW91c2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWUzOGIx
M2JhYjM1NGFiMTJmNTc1NDI0MDFiZDQ0OTllOGNjODQzMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1zZWxlY3QtdHJhY2std2l0aC1tb3Vz
ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTAgKzAsMCBAQAotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLWxvYWRlci5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij48L3NjcmlwdD4KLTxib2R5PgotPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVu
Ij4KLSAgICAKLSAgICAubWVkaWEtY29udHJvbHMgewotICAgICAgICBwb3NpdGlvbjogYWJzb2x1
dGU7Ci0gICAgICAgIHRvcDogMDsKLSAgICAgICAgbGVmdDogMDsKLSAgICB9Ci0gICAgCi08L3N0
eWxlPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJTZWxlY3RpbmcgYSB0cmFjayBpbiBhIDxjb2Rl
PlRyYWNrc1BhbmVsPC9jb2RlPiB3aXRoIHRoZSBtb3VzZS4iKTsKLQotY29uc3QgbWVkaWFDb250
cm9scyA9IG5ldyBNYWNPU0lubGluZU1lZGlhQ29udHJvbHMoeyB3aWR0aDogNjgwLCBoZWlnaHQ6
IDMwMCB9KTsKLQotbWVkaWFDb250cm9scy50cmFja3NQYW5lbC5kYXRhU291cmNlID0gewotICAg
IHRyYWNrc1BhbmVsTnVtYmVyT2ZTZWN0aW9uczogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIDE7Ci0gICAgfSwKLQotICAgIHRyYWNrc1BhbmVsVGl0bGVGb3JTZWN0aW9uOiBmdW5j
dGlvbihzZWN0aW9uSW5kZXgpCi0gICAgewotICAgICAgICByZXR1cm4gYFRpdGxlYDsKLSAgICB9
LAotCi0gICAgdHJhY2tzUGFuZWxOdW1iZXJPZlRyYWNrc0luU2VjdGlvbjogZnVuY3Rpb24oc2Vj
dGlvbkluZGV4KQotICAgIHsKLSAgICAgICAgcmV0dXJuIDM7Ci0gICAgfSwKLQotICAgIHRyYWNr
c1BhbmVsVGl0bGVGb3JUcmFja0luU2VjdGlvbjogZnVuY3Rpb24odHJhY2tJbmRleCwgc2VjdGlv
bkluZGV4KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGBUcmFja2A7Ci0gICAgfSwKLQotICAgIHRy
YWNrc1BhbmVsSXNUcmFja0luU2VjdGlvblNlbGVjdGVkOiBmdW5jdGlvbih0cmFja0luZGV4LCBz
ZWN0aW9uSW5kZXgpCi0gICAgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotfTsKLQot
bWVkaWFDb250cm9scy50cmFja3NQYW5lbC51aURlbGVnYXRlID0gewotICAgIHRyYWNrc1BhbmVs
U2VsZWN0aW9uRGlkQ2hhbmdlOiBmdW5jdGlvbih0cmFja0luZGV4LCBzZWN0aW9uSW5kZXgpCi0g
ICAgewotICAgICAgICBkZWJ1ZygibWVkaWFDb250cm9scy50cmFja3NQYW5lbC51aURlbGVnYXRl
LnRyYWNrc1BhbmVsU2VsZWN0aW9uRGlkQ2hhbmdlKCkgY2FsbGVkIik7Ci0gICAgICAgIGRlYnVn
KGBzZWN0aW9uSW5kZXggPSAke3NlY3Rpb25JbmRleH1gKTsKLSAgICAgICAgZGVidWcoYHRyYWNr
SW5kZXggPSAke3RyYWNrSW5kZXh9YCk7Ci0KLSAgICAgICAgZGVidWcoIiIpOwotICAgICAgICBt
ZWRpYUNvbnRyb2xzLmVsZW1lbnQucmVtb3ZlKCk7Ci0gICAgICAgIGZpbmlzaEpTVGVzdCgpOwot
ICAgIH0KLX07Ci0KLWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobWVkaWFDb250cm9scy5lbGVt
ZW50KTsKLQotbGV0IHRyYWNrRWxlbWVudDsKLQotc2hvdWxkQmVjb21lRGlmZmVyZW50KCJtZWRp
YUNvbnRyb2xzLnRyYWNrc0J1dHRvbi5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJp
Z2h0IiwgIjAiLCAoKSA9PiB7Ci0gICAgZGVidWcoIm1lZGlhQ29udHJvbHMuc2hvd1RyYWNrc1Bh
bmVsKCkiKTsKLSAgICBtZWRpYUNvbnRyb2xzLnNob3dUcmFja3NQYW5lbCgpOwotCi0gICAgd2lu
ZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAgICAgIGRlYnVnKCIiKTsKLSAg
ICAgICAgZGVidWcoIk1vdXNpbmcgb3ZlciB0aGUgc2Vjb25kIHRyYWNrIGluIHRoZSBwYW5lbCIp
OwotCi0gICAgICAgIHRyYWNrRWxlbWVudCA9IG1lZGlhQ29udHJvbHMudHJhY2tzUGFuZWwuZWxl
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJsaSIpWzFdOwotICAgICAgICB0cmFja0VsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigiZm9jdXMiLCAoKSA9PiB7Ci0gICAgICAgICAgICBkZWJ1ZygiT2J0YWlu
ZWQgZm9jdXMgZXZlbnQiKTsKLQotICAgICAgICAgICAgZGVidWcoIiIpOwotICAgICAgICAgICAg
ZGVidWcoIkNsaWNraW5nIG9uIGZvY3VzZWQgdHJhY2siKTsKLSAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlRG93bigpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotICAg
ICAgICB9KTsKLQotICAgICAgICBjb25zdCBib3VuZHMgPSB0cmFja0VsZW1lbnQuZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGJvdW5kcy5s
ZWZ0ICsgMSwgYm91bmRzLnRvcCArIDEpOwotICAgIH0pOwotfSk7Ci0KLTwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgot
PC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtdXAtY2xpY2stb3V0c2lkZS1tZWRpYS1kb2Vz
LW5vdC1kaW1pc3MtbWVkaWEtY29udHJvbHMtd2hlbi1tZWRpYS1pcy1wYXVzZWQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5l
bC90cmFja3MtcGFuZWwtdXAtY2xpY2stb3V0c2lkZS1tZWRpYS1kb2VzLW5vdC1kaW1pc3MtbWVk
aWEtY29udHJvbHMtd2hlbi1tZWRpYS1pcy1wYXVzZWQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAxMzk3ZWMxNDAyZWRmNGI0YTQ5MjJmOGUwZDViNDRmMmJhZGMx
MjljLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBh
bmVsLXVwLWNsaWNrLW91dHNpZGUtbWVkaWEtZG9lcy1ub3QtZGltaXNzLW1lZGlhLWNvbnRyb2xz
LXdoZW4tbWVkaWEtaXMtcGF1c2VkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIz
ICswLDAgQEAKLUNsaWNraW5nIG91dHNpZGUgdGhlIG1lZGlhIHdoZW4gdGhlIHRyYWNrcyBwYW5l
bCBpcyB1cCBzaG91bGQgZGlzbWlzcyB0aGUgdHJhY2tzIHBhbmVsIGJ1dCBub3QgdGhlIG1lZGlh
IGNvbnRyb2xzLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotTWVkaWEgc3RhcnRl
ZCBwbGF5aW5nIGFuZCB3YXMgcGF1c2VkLgotCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCi1QQVNTIHNoYWRv
d1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCi09PiBUcmFja3MgYnV0dG9uIGlzIHZp
c2libGUuCi0KLVByZXNzaW5nIG9uIHRoZSB0cmFja3MgYnV0dG9uLgotUEFTUyBzaGFkb3dSb290
LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVs
bAotPT4gVHJhY2tzIHBhbmVsIGlzIHZpc2libGUuCi0KLUNsaWNraW5nIG91dHNpZGUgdGhlIG1l
ZGlhIHRvIGRpc21pc3MgdGhlIHRyYWNrcyBwYW5lbC4KLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNl
bGVjdG9yKCcubWVkaWEtY29udHJvbHMnKS5jbGFzc0xpc3QuY29udGFpbnMoJ2ZhZGVkJykgaXMg
ZmFsc2UKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykuY2xh
c3NMaXN0LmNvbnRhaW5zKCdmYWRlLW91dCcpIGlzIHRydWUKLQotUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXVw
LWNsaWNrLW91dHNpZGUtbWVkaWEtZG9lcy1ub3QtZGltaXNzLW1lZGlhLWNvbnRyb2xzLXdoZW4t
bWVkaWEtaXMtcGF1c2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC11cC1jbGljay1vdXRzaWRlLW1lZGlhLWRv
ZXMtbm90LWRpbWlzcy1tZWRpYS1jb250cm9scy13aGVuLW1lZGlhLWlzLXBhdXNlZC5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMGYyNWIyMDA2ZjZmYzllNmY2YjIzNDQ2OGU1
OGQwODEyMzIwNmUzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwv
dHJhY2tzLXBhbmVsLXVwLWNsaWNrLW91dHNpZGUtbWVkaWEtZG9lcy1ub3QtZGltaXNzLW1lZGlh
LWNvbnRyb2xzLXdoZW4tbWVkaWEtaXMtcGF1c2VkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwz
NCArMCwwIEBACi08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRp
bHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08Ym9keT4KLTx2aWRlbyBz
cmM9Ii4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVzLm1vdiIgc3R5bGU9InBvc2l0aW9uOiBhYnNv
bHV0ZTsgbGVmdDogMTBweDsgdG9wOiAxMHB4OyB3aWR0aDogNjQwcHg7IGhlaWdodDogMzYwcHg7
IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJDbGlj
a2luZyBvdXRzaWRlIHRoZSBtZWRpYSB3aGVuIHRoZSB0cmFja3MgcGFuZWwgaXMgdXAgc2hvdWxk
IGRpc21pc3MgdGhlIHRyYWNrcyBwYW5lbCBidXQgbm90IHRoZSBtZWRpYSBjb250cm9scy4iKTsK
LQotY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qg
c2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlh
LmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7Ci0gICAgbWVkaWEucGF1c2UoKTsKLQot
ICAgIGRlYnVnKCJNZWRpYSBzdGFydGVkIHBsYXlpbmcgYW5kIHdhcyBwYXVzZWQuIik7Ci0gICAg
ZGVidWcoIiIpOwotICAgIHNob3dUcmFja3NQYW5lbChzaGFkb3dSb290LCAoKSA9PiB7Ci0gICAg
ICAgIGRlYnVnKCJDbGlja2luZyBvdXRzaWRlIHRoZSBtZWRpYSB0byBkaXNtaXNzIHRoZSB0cmFj
a3MgcGFuZWwuIik7Ci0gICAgICAgIHByZXNzQXRQb2ludCg1LCA1LCAoKSA9PiB7Ci0gICAgICAg
ICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewotICAgICAgICAgICAgICAgIHNob3Vs
ZEJlRmFsc2UoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLm1lZGlhLWNvbnRyb2xzJykuY2xh
c3NMaXN0LmNvbnRhaW5zKCdmYWRlZCcpIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVl
KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5jbGFzc0xpc3QuY29u
dGFpbnMoJ2ZhZGUtb3V0JykiKTsKLSAgICAgICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAg
ICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0g
ICAgfSk7Ci19KTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5l
bC11cC1jbGljay1vdmVyLW1lZGlhLWRvZXMtbm90LWRpbWlzcy1tZWRpYS1jb250cm9scy13aGVu
LW1lZGlhLWlzLXBsYXlpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtdXAtY2xpY2stb3Zlci1t
ZWRpYS1kb2VzLW5vdC1kaW1pc3MtbWVkaWEtY29udHJvbHMtd2hlbi1tZWRpYS1pcy1wbGF5aW5n
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzA0YTdlMjcyZGRj
NWYxM2Q0NDJlYzU2YWU4MmQ2ODE1NWUyMTI2OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC11cC1jbGljay1vdmVyLW1lZGlhLWRvZXMtbm90
LWRpbWlzcy1tZWRpYS1jb250cm9scy13aGVuLW1lZGlhLWlzLXBsYXlpbmctZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotQ2xpY2tpbmcgb3ZlciB0aGUgbWVkaWEg
d2hlbiB0aGUgdHJhY2tzIHBhbmVsIGlzIHVwIGFuZCB0aGUgbWVkaWEgaXMgcGxheWluZyBzaG91
bGQgZGlzbWlzcyB0aGUgdHJhY2tzIHBhbmVsIGJ1dCBub3QgdGhlIG1lZGlhIGNvbnRyb2xzLgot
Ci1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotTWVkaWEgc3RhcnRlZCBwbGF5aW5nLgot
Ci1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBk
aWZmZXJlbnQgZnJvbSBudWxsCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9u
LnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQg
ZnJvbSAwCi09PiBUcmFja3MgYnV0dG9uIGlzIHZpc2libGUuCi0KLVByZXNzaW5nIG9uIHRoZSB0
cmFja3MgYnV0dG9uLgotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFu
ZWwnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAotPT4gVHJhY2tzIHBhbmVsIGlzIHZpc2li
bGUuCi0KLUNsaWNraW5nIG92ZXIgdGhlIG1lZGlhIHRvIGRpc21pc3MgdGhlIHRyYWNrcyBwYW5l
bC4KLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcubWVkaWEtY29udHJvbHMnKS5jbGFz
c0xpc3QuY29udGFpbnMoJ2ZhZGVkJykgaXMgZmFsc2UKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNl
bGVjdG9yKCcudHJhY2tzLXBhbmVsJykuY2xhc3NMaXN0LmNvbnRhaW5zKCdmYWRlLW91dCcpIGlz
IHRydWUKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRF
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXVwLWNsaWNrLW92ZXItbWVkaWEtZG9lcy1ub3QtZGlt
aXNzLW1lZGlhLWNvbnRyb2xzLXdoZW4tbWVkaWEtaXMtcGxheWluZy5odG1sIGIvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwt
dXAtY2xpY2stb3Zlci1tZWRpYS1kb2VzLW5vdC1kaW1pc3MtbWVkaWEtY29udHJvbHMtd2hlbi1t
ZWRpYS1pcy1wbGF5aW5nLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU2MjNm
ZGQxZjEwNWVmODE1MmVkZGM4NTQ3ZWEyNTZiNjhhYzU4ZmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtdXAtY2xpY2stb3Zlci1tZWRpYS1k
b2VzLW5vdC1kaW1pc3MtbWVkaWEtY29udHJvbHMtd2hlbi1tZWRpYS1pcy1wbGF5aW5nLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3Jp
cHQ+Ci08Ym9keT4KLTx2aWRlbyBzcmM9Ii4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVzLm1vdiIg
c3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTBweDsgdG9wOiAxMHB4OyB3aWR0aDog
NjQwcHg7IGhlaWdodDogMzYwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgotPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
Ci0KLWRlc2NyaXB0aW9uKCJDbGlja2luZyBvdmVyIHRoZSBtZWRpYSB3aGVuIHRoZSB0cmFja3Mg
cGFuZWwgaXMgdXAgYW5kIHRoZSBtZWRpYSBpcyBwbGF5aW5nIHNob3VsZCBkaXNtaXNzIHRoZSB0
cmFja3MgcGFuZWwgYnV0IG5vdCB0aGUgbWVkaWEgY29udHJvbHMuIik7Ci0KLWNvbnN0IG1lZGlh
ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jvb3QgPSB3
aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOwotCi1tZWRpYS5hZGRFdmVudExpc3Rl
bmVyKCJwbGF5IiwgKCkgPT4gewotICAgIGRlYnVnKCJNZWRpYSBzdGFydGVkIHBsYXlpbmcuIik7
Ci0gICAgZGVidWcoIiIpOwotICAgIHNob3dUcmFja3NQYW5lbChzaGFkb3dSb290LCAoKSA9PiB7
Ci0gICAgICAgIGRlYnVnKCJDbGlja2luZyBvdmVyIHRoZSBtZWRpYSB0byBkaXNtaXNzIHRoZSB0
cmFja3MgcGFuZWwuIik7Ci0gICAgICAgIHByZXNzQXRQb2ludCgxMSwgMTEsICgpID0+IHsKLSAg
ICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAgICAgICAgICAgICAg
c2hvdWxkQmVGYWxzZSgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcubWVkaWEtY29udHJvbHMn
KS5jbGFzc0xpc3QuY29udGFpbnMoJ2ZhZGVkJykiKTsKLSAgICAgICAgICAgICAgICBzaG91bGRC
ZVRydWUoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpLmNsYXNzTGlz
dC5jb250YWlucygnZmFkZS1vdXQnKSIpOwotICAgICAgICAgICAgICAgIGRlYnVnKCIiKTsKLSAg
ICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9
KTsKLSAgICB9KTsKLX0pOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tz
LXBhbmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXBhbmVsL3RyYWNrcy1wYW5lbC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA0YTE3YmJhZTczM2E4YTVmODE4Njc4YmQwOGNkODBiNWI5OWJhZDU2Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwyMCArMCwwIEBACi08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEt
Y29udHJvbHMtbG9hZGVyLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPGJv
ZHk+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLWRlc2NyaXB0aW9uKCJUZXN0
aW5nIHRoZSA8Y29kZT5UcmFja3NQYW5lbDwvY29kZT4gY2xhc3MgcHJvcGVydGllcy4iKTsKLQot
Y29uc3QgdHJhY2tzUGFuZWwgPSBuZXcgVHJhY2tzUGFuZWw7Ci0KLWRlYnVnKCJCYXNpYyBwcm9w
ZXJ0aWVzIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoInRyYWNrc1BhbmVsLmVsZW1lbnQubG9j
YWxOYW1lIiwgImRpdiIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0cmFja3NQYW5lbC5lbGVt
ZW50LmNsYXNzTmFtZSIsICJ0cmFja3MtcGFuZWwiKTsKLXNob3VsZEJlRmFsc2UoInRyYWNrc1Bh
bmVsLnByZXNlbnRlZCIpOwotc2hvdWxkQmUoInRyYWNrc1BhbmVsLnJpZ2h0WCIsICIwIik7Ci0K
LWRlYnVnKCIiKTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvYXV0by10ZXh0
LXRyYWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9hdXRvLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjE2N2NhNmUwMGI2MzVkMTBiYTFmNzQ5OTYxN2MwMDIzMGVkOTZiMWMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvYXV0by10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitFbnN1
cmUgd2UgaGF2ZSB0aGUgQXV0byB0ZXh0IHRyYWNrIHNlbGVjdGVkIGJ5IGRlZmF1bHQuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQQVNTIHNoYWRv
d1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitTZXR0aW5nIGNhcHRpb24gZGlzcGxh
eSBtb2RlIHRvICdhdXRvbWF0aWMnLi4uCitUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KK1BBU1Mg
Y2hlY2tlZEl0ZW1zLmxlbmd0aCBpcyAxCitQQVNTIGNoZWNrZWRJdGVtc1swXS50aXRsZSBpcyAi
QXV0byAoUmVjb21tZW5kZWQpIgorU2V0dGluZyBjYXB0aW9uIGRpc3BsYXkgbW9kZSB0byAnZm9y
Y2Vkb25seScuLi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvYXV0by10ZXh0LXRyYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvYXV0by10ZXh0LXRyYWNrLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDNjZjI0ODZjYjNkMTg4ODExOGYyZWRkZTY2M2VkOGVhNjIxOTM1Mwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3Mtc3VwcG9ydC9hdXRvLXRleHQtdHJhY2suaHRtbApAQCAtMCwwICsxLDUyIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMt
dXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1o
ZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzx2aWRlbyBzcmM9Ii4uLy4uL2NvbnRlbnQv
Y291bnRpbmctc3VidGl0bGVkLm00diIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDog
MDsgdG9wOiAwOyB3aWR0aDogNDAwcHg7IiBhdXRvcGxheSBjb250cm9scyBtdXRlZCBwbGF5c2lu
bGluZT48L3ZpZGVvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCit3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKCJFbnN1cmUgd2UgaGF2ZSB0aGUg
QXV0byB0ZXh0IHRyYWNrIHNlbGVjdGVkIGJ5IGRlZmF1bHQuIik7CisKK2NvbnN0IG1lZGlhID0g
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSB3aW5k
b3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOworCitsZXQgY2hlY2tlZEl0ZW1zID0gbnVs
bDsKKworbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKKyAgICBtZWRpYS5w
YXVzZSgpOworCisgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2Vs
ZWN0b3IoJ2J1dHRvbi50cmFja3MnKSIsICJudWxsIiwgKCkgPT4geworICAgICAgICBzaG91bGRC
ZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycp
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIiwgIjAiLCBhc3luYyAoKSA9PiB7CisgICAg
ICAgICAgICBkZWJ1ZygiU2V0dGluZyBjYXB0aW9uIGRpc3BsYXkgbW9kZSB0byAnYXV0b21hdGlj
Jy4uLiIpOworICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRDYXB0aW9uRGlzcGxheU1v
ZGUoImF1dG9tYXRpYyIpOworCisgICAgICAgICAgICBkZWJ1ZygiVGFwcGluZyB0cmFja3MgYnV0
dG9uLi4uIik7CisgICAgICAgICAgICBsZXQgW2NvbnRleHRtZW51XSA9IGF3YWl0IFByb21pc2Uu
YWxsKFsKKyAgICAgICAgICAgICAgICBnZXRUcmFja3NDb250ZXh0TWVudSgpLAorICAgICAgICAg
ICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRy
YWNrcyIpKSwKKyAgICAgICAgICAgIF0pOworICAgICAgICAgICAgbGV0IHN1YnRpdGxlc01lbnUg
PSBjb250ZXh0bWVudVswXS5jaGlsZHJlbi5maW5kKChzdWJtZW51KSA9PiBzdWJtZW51LnRpdGxl
ID09PSAiU3VidGl0bGVzIik7CisgICAgICAgICAgICBpZiAoc3VidGl0bGVzTWVudS5jaGlsZHJl
bj8ubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuY2hvb3NlTWVudUFj
dGlvbihzdWJ0aXRsZXNNZW51LnRpdGxlKTsKKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBl
ci5kZWxheUZvcig1MDApOyAvLyBnaXZlIHRpbWUgZm9yIHRoZSBVSU1lbnUgdG8gYW5pbWF0ZQor
ICAgICAgICAgICAgICAgIGNvbnRleHRtZW51ID0gW3N1YnRpdGxlc01lbnVdOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgY2hlY2tlZEl0ZW1zID0gY29udGV4dG1lbnVbMF0uY2hpbGRyZW4u
ZmlsdGVyKChpdGVtKSA9PiBpdGVtLmNoZWNrZWQpOworICAgICAgICAgICAgc2hvdWxkQmUoImNo
ZWNrZWRJdGVtcy5sZW5ndGgiLCAiMSIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJjaGVja2VkSXRlbXNbMF0udGl0bGUiLCAiQXV0byAoUmVjb21tZW5kZWQpIik7CisKKyAg
ICAgICAgICAgIGRlYnVnKCJTZXR0aW5nIGNhcHRpb24gZGlzcGxheSBtb2RlIHRvICdmb3JjZWRv
bmx5Jy4uLiIpOworICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRDYXB0aW9uRGlzcGxh
eU1vZGUoImZvcmNlZG9ubHkiKTsKKworICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7CisgICAg
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9KTsKKworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvY2FwdGlvbnMtb2Zmc2V0LXdpdGgtY29udHJv
bHMtYmFyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9jYXB0aW9ucy1vZmZzZXQtd2l0aC1jb250cm9scy1iYXItZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2OWRiNWY3ODE0ZWY4NTA2ZGQ5ODkyZjZhMDZhOWNlNGU4
ZmU5YTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvY2FwdGlvbnMtb2Zmc2V0LXdpdGgtY29udHJvbHMtYmFy
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitFbnN1cmUgdGhhdCB0aGUgY2FwdGlvbnMg
Y29udGFpbmVyIGFjY291bnRzIGZvciB0aGUgY29udHJvbHMgYmFyIHdoZW4gdmlzaWJsZS4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShzaGFk
b3dSb290Lmxhc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQpLmhlaWdodCBpcyAiY2Fs
YygxMDAlIC0gMzdweCkiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L2NhcHRpb25zLW9mZnNldC13aXRoLWNvbnRyb2xzLWJhci5o
dG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L2NhcHRpb25zLW9mZnNldC13aXRoLWNvbnRyb2xzLWJhci5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJk
YTUxNDFhYjAyZWQwOTliMDJjOTExYTM4ZDFkMzg4NDNmYTBiMzEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
Y2FwdGlvbnMtb2Zmc2V0LXdpdGgtY29udHJvbHMtYmFyLmh0bWwKQEAgLTAsMCArMSwyNSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEtY29udHJv
bHMtdXRpbHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Cis8Ym9keT4KKzx2
aWRlbyBzcmM9Ii4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVzLm1vdiIgc3R5bGU9InBvc2l0aW9u
OiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDogNDAwcHg7IiBhdXRvcGxheSBjb250
cm9scyBtdXRlZCBwbGF5c2lubGluZT48L3ZpZGVvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPgorCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKCJF
bnN1cmUgdGhhdCB0aGUgY2FwdGlvbnMgY29udGFpbmVyIGFjY291bnRzIGZvciB0aGUgY29udHJv
bHMgYmFyIHdoZW4gdmlzaWJsZS4iKTsKKworY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCJ2aWRlbyIpOworY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hh
ZG93Um9vdChtZWRpYSk7CisKK21lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7
CisgICAgbWVkaWEucGF1c2UoKTsKKworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0Q29t
cHV0ZWRTdHlsZShzaGFkb3dSb290Lmxhc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQp
LmhlaWdodCIsICJjYWxjKDEwMCUgLSAzN3B4KSIpOworICAgIG1lZGlhLnJlbW92ZSgpOworICAg
IGZpbmlzaEpTVGVzdCgpOworfSk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L2NsaWNrLXRyYWNrLWluLWNvbnRleHRtZW51LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9jbGljay10cmFjay1pbi1j
b250ZXh0bWVudS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTlkN2MzN2I0ZDJhNWFmODk5NjBk
NTFmYWM3YmFiNmUzM2U3MTYxYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9jbGljay10cmFjay1pbi1jb250
ZXh0bWVudS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNiBAQAorQ2xpY2tpbmcgb24gYSB0cmFj
ayBpbiB0aGUgdHJhY2tzIGNvbnRleHRtZW51LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworQXVkaW8gdHJhY2sgJ0VuZ2xpc2ggU291bmQnIGlzIGVuYWJsZWQuCitBdWRpbyB0cmFj
ayAnRnJlbmNoIFNvdW5kJyBpcyBkaXNhYmxlZC4KK0F1ZGlvIHRyYWNrICdTcGFuaXNoIFNvdW5k
JyBpcyBkaXNhYmxlZC4KK1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJh
Y2tzJykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKK1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNl
bGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggYmVj
YW1lIGRpZmZlcmVudCBmcm9tIDAKK1RhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLgorU2VsZWN0aW5n
ICdGcmVuY2gnIHRyYWNrLi4uCitBdWRpbyB0cmFja3MgY2hhbmdlZC4KK0F1ZGlvIHRyYWNrICdF
bmdsaXNoIFNvdW5kJyBpcyBkaXNhYmxlZC4KK0F1ZGlvIHRyYWNrICdGcmVuY2ggU291bmQnIGlz
IGVuYWJsZWQuCitBdWRpbyB0cmFjayAnU3BhbmlzaCBTb3VuZCcgaXMgZGlzYWJsZWQuCitUYXBw
aW5nIHRyYWNrcyBidXR0b24uLi4KK1NlbGVjdGluZyAnU3BhbmlzaCcgdHJhY2suLi4KK0F1ZGlv
IHRyYWNrcyBjaGFuZ2VkLgorQXVkaW8gdHJhY2sgJ0VuZ2xpc2ggU291bmQnIGlzIGRpc2FibGVk
LgorQXVkaW8gdHJhY2sgJ0ZyZW5jaCBTb3VuZCcgaXMgZGlzYWJsZWQuCitBdWRpbyB0cmFjayAn
U3BhbmlzaCBTb3VuZCcgaXMgZW5hYmxlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvY2xpY2stdHJhY2staW4tY29udGV4dG1l
bnUuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
c3VwcG9ydC9jbGljay10cmFjay1pbi1jb250ZXh0bWVudS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5NzEw
NDMzYWQ5MjAyMjZmOGQyZjYyNTQxMTU1NGM1ZDc3ZjBkYjcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvY2xp
Y2stdHJhY2staW4tY29udGV4dG1lbnUuaHRtbApAQCAtMCwwICsxLDk3IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzx2aWRlbyBzcmM9Ii4uLy4uL2NvbnRlbnQvYXVkaW8tdHJh
Y2tzLm1wNCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0
aDogNDAwcHg7IiBjb250cm9scyBhdXRvcGxheSBtdXRlZCBwbGF5c2lubGluZT48L3ZpZGVvPgor
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCit3aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7CisKK2Rlc2NyaXB0aW9uKCJDbGlja2luZyBvbiBhIHRyYWNrIGluIHRoZSB0cmFja3Mg
Y29udGV4dG1lbnUuIik7CisKK2NvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigi
dmlkZW8iKTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3Qo
bWVkaWEpOworCitsZXQgc2VsZWN0ZWRUcmFjayA9IG51bGw7CisKK21lZGlhLmFkZEV2ZW50TGlz
dGVuZXIoInBsYXkiLCAoKSA9PiB7CisgICAgbWVkaWEucGF1c2UoKTsKKworICAgIGR1bXBBdWRp
b1RyYWNrc0VuYWJsZWRTdGF0ZSgpOworCisgICAgbWVkaWEuYXVkaW9UcmFja3MuYWRkRXZlbnRM
aXN0ZW5lcigiY2hhbmdlIiwgaGFuZGxlQXVkaW9UcmFja3NDaGFuZ2UpOworCisgICAgc2hvdWxk
QmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3Mn
KSIsICJudWxsIiwgKCkgPT4geworICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRv
d1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpLndpZHRoIiwgIjAiLCAoKSA9PiB7CisgICAgICAgICAgICBjbGlja09uVHJhY2tzQnV0dG9u
KGNsaWNrT25GcmVuY2hBdWRpb1RyYWNrKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9KTsKKwor
ZnVuY3Rpb24gY2xpY2tPblRyYWNrc0J1dHRvbihjb250aW51YXRpb24pCit7CisgICAgZGVidWco
IlRhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLiIpOworICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jv
b3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpLCAoKSA9PiB7CisgICAgICAgIHdpbmRv
dy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY29udGludWF0aW9uKTsKKyAgICB9KTsKK30KKworYXN5
bmMgZnVuY3Rpb24gY2xpY2tPbkZyZW5jaEF1ZGlvVHJhY2soKQoreworICAgIGRlYnVnKCJTZWxl
Y3RpbmcgJ0ZyZW5jaCcgdHJhY2suLi4iKTsKKyAgICBsZXQgY29udGV4dG1lbnUgPSBhd2FpdCBn
ZXRUcmFja3NDb250ZXh0TWVudSgpOworICAgIGxldCBsYW5ndWFnZXNNZW51ID0gY29udGV4dG1l
bnVbMF0uY2hpbGRyZW4uZmluZCgoc3VibWVudSkgPT4gc3VibWVudS50aXRsZSA9PT0gIkxhbmd1
YWdlcyIpOworICAgIGlmIChsYW5ndWFnZXNNZW51LmNoaWxkcmVuPy5sZW5ndGgpIHsKKyAgICAg
ICAgYXdhaXQgVUlIZWxwZXIuY2hvb3NlTWVudUFjdGlvbihsYW5ndWFnZXNNZW51LnRpdGxlKTsK
KyAgICAgICAgYXdhaXQgVUlIZWxwZXIuZGVsYXlGb3IoNTAwKTsgLy8gZ2l2ZSB0aW1lIGZvciB0
aGUgVUlNZW51IHRvIGFuaW1hdGUKKyAgICB9CisgICAgYXdhaXQgVUlIZWxwZXIuY2hvb3NlTWVu
dUFjdGlvbigiRnJlbmNoIFNvdW5kIik7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGNsaWNrT25TcGFu
aXNoQXVkaW9UcmFjaygpCit7CisgICAgZGVidWcoIlNlbGVjdGluZyAnU3BhbmlzaCcgdHJhY2su
Li4iKTsKKyAgICBsZXQgY29udGV4dG1lbnUgPSBhd2FpdCBnZXRUcmFja3NDb250ZXh0TWVudSgp
OworICAgIGxldCBsYW5ndWFnZXNNZW51ID0gY29udGV4dG1lbnVbMF0uY2hpbGRyZW4uZmluZCgo
c3VibWVudSkgPT4gc3VibWVudS50aXRsZSA9PT0gIkxhbmd1YWdlcyIpOworICAgIGlmIChsYW5n
dWFnZXNNZW51LmNoaWxkcmVuPy5sZW5ndGgpIHsKKyAgICAgICAgYXdhaXQgVUlIZWxwZXIuY2hv
b3NlTWVudUFjdGlvbihsYW5ndWFnZXNNZW51LnRpdGxlKTsKKyAgICAgICAgYXdhaXQgVUlIZWxw
ZXIuZGVsYXlGb3IoNTAwKTsgLy8gZ2l2ZSB0aW1lIGZvciB0aGUgVUlNZW51IHRvIGFuaW1hdGUK
KyAgICB9CisgICAgYXdhaXQgVUlIZWxwZXIuY2hvb3NlTWVudUFjdGlvbigiU3BhbmlzaCBTb3Vu
ZCIpOworfQorCithc3luYyBmdW5jdGlvbiBoYW5kbGVBdWRpb1RyYWNrc0NoYW5nZSgpCit7Cisg
ICAgbGV0IG5ld1NlbGVjdGVkVHJhY2sgPSBBcnJheS5mcm9tKG1lZGlhLmF1ZGlvVHJhY2tzKS5m
aW5kKChhdWRpb1RyYWNrKSA9PiBhdWRpb1RyYWNrLmVuYWJsZWQpOworICAgIGlmIChzZWxlY3Rl
ZFRyYWNrID09PSBuZXdTZWxlY3RlZFRyYWNrKQorICAgICAgICByZXR1cm47CisgICAgc2VsZWN0
ZWRUcmFjayA9IG5ld1NlbGVjdGVkVHJhY2s7CisKKyAgICBkZWJ1ZygiQXVkaW8gdHJhY2tzIGNo
YW5nZWQuIik7CisKKyAgICBkdW1wQXVkaW9UcmFja3NFbmFibGVkU3RhdGUoKTsKKworICAgIGF3
YWl0IFVJSGVscGVyLndhaXRGb3JDb250ZXh0TWVudVRvSGlkZSgpOworCisgICAgc3dpdGNoIChz
ZWxlY3RlZFRyYWNrLmxhYmVsKSB7CisgICAgY2FzZSAiRnJlbmNoIFNvdW5kIjoKKyAgICAgICAg
Y2xpY2tPblRyYWNrc0J1dHRvbihjbGlja09uU3BhbmlzaEF1ZGlvVHJhY2spOworICAgICAgICBi
cmVhazsKKworICAgIGNhc2UgIlNwYW5pc2ggU291bmQiOgorICAgICAgICBtZWRpYS5yZW1vdmUo
KTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwor
ZnVuY3Rpb24gZHVtcEF1ZGlvVHJhY2tzRW5hYmxlZFN0YXRlKCkKK3sKKyAgICBmb3IgKGxldCBh
dWRpb1RyYWNrIG9mIG1lZGlhLmF1ZGlvVHJhY2tzKQorICAgICAgICBkZWJ1ZyhgQXVkaW8gdHJh
Y2sgJyR7YXVkaW9UcmFjay5sYWJlbH0nIGlzICR7YXVkaW9UcmFjay5lbmFibGVkID8gImVuYWJs
ZWQiIDogImRpc2FibGVkIn0uYCk7Cit9CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L2hpZGRlbi10cmFja3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2hpZGRlbi10cmFja3MtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjMxZDU0MDIwZjI0NzRlNWViMDM2NjM1OWVmMzg0NmY5MzJmZjJjYjkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXN1cHBvcnQvaGlkZGVuLXRyYWNrcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBA
QAorVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSB0cmFja3MgY29udGV4dG1lbnUgZG9lc24ndCBz
aG93IGFueSB0cmFjayBhcyBzZWxlY3RlZCBpZiBhbGwgdGhlIHRleHQgdHJhY2tzIGZvciBhIG1l
ZGlhIGVsZW1lbnQgYXJlIG1hcmtlZCBhcyAiaGlkZGVuIi4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tz
JykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKK1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVj
dG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggYmVjYW1l
IGRpZmZlcmVudCBmcm9tIDAKK1NldHRpbmcgbW9kZSB0byAnaGlkZGVuJyBmb3IgYWxsIHRleHQg
dHJhY2tzIHZpYSBKYXZhU2NyaXB0Li4uCitUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KK1BBU1Mg
Y2hlY2tlZEl0ZW1zLmxlbmd0aCBpcyAxCitQQVNTIGNoZWNrZWRJdGVtc1swXS50aXRsZSBpcyAi
T2ZmIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC9oaWRkZW4tdHJhY2tzLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaGlkZGVuLXRyYWNrcy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmY2MTNmYzhlNmUzMDczNzRkODE2NWRkNzdlMjE1NmExZWU2YzcyNTcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvaGlkZGVuLXRyYWNrcy5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzwhRE9DVFlQRSBodG1s
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxib2R5PgorPHZpZGVvIHNyYz0iLi4vLi4vY29udGVudC9jb3VudGluZy1zdWJ0
aXRsZWQubTR2IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdp
ZHRoOiA0MDBweDsiIGNvbnRyb2xzIGF1dG9wbGF5IG11dGVkIHBsYXlzaW5saW5lPjwvdmlkZW8+
Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKworZGVzY3JpcHRpb24oYFRoaXMgdGVzdCBjaGVja3MgdGhhdCB0aGUgdHJhY2tz
IGNvbnRleHRtZW51IGRvZXNuJ3Qgc2hvdyBhbnkgdHJhY2sgYXMgc2VsZWN0ZWQgaWYgYWxsIHRo
ZSB0ZXh0IHRyYWNrcyBmb3IgYSBtZWRpYSBlbGVtZW50IGFyZSBtYXJrZWQgYXMgImhpZGRlbiIu
YCk7CisKK2NvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKK2Nv
bnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOworCits
ZXQgY2hlY2tlZEl0ZW1zID0gbnVsbDsKKworbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIs
ICgpID0+IHsKKyAgICBtZWRpYS5wYXVzZSgpOworCisgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50
KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSIsICJudWxsIiwgKCkg
PT4geworICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxl
Y3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIiwgIjAi
LCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBkZWJ1ZygiU2V0dGluZyBtb2RlIHRvICdoaWRk
ZW4nIGZvciBhbGwgdGV4dCB0cmFja3MgdmlhIEphdmFTY3JpcHQuLi4iKTsKKyAgICAgICAgICAg
IGZvciAobGV0IHRleHRUcmFjayBvZiBtZWRpYS50ZXh0VHJhY2tzKQorICAgICAgICAgICAgICAg
IHRleHRUcmFjay5tb2RlID0gImhpZGRlbiI7CisKKyAgICAgICAgICAgIGRlYnVnKCJUYXBwaW5n
IHRyYWNrcyBidXR0b24uLi4iKTsKKyAgICAgICAgICAgIGxldCBbY29udGV4dG1lbnVdID0gYXdh
aXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGdldFRyYWNrc0NvbnRleHRNZW51KCks
CisgICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCJidXR0b24udHJhY2tzIikpLAorICAgICAgICAgICAgXSk7CisgICAgICAgICAgICBsZXQgc3Vi
dGl0bGVzTWVudSA9IGNvbnRleHRtZW51WzBdLmNoaWxkcmVuLmZpbmQoKHN1Ym1lbnUpID0+IHN1
Ym1lbnUudGl0bGUgPT09ICJTdWJ0aXRsZXMiKTsKKyAgICAgICAgICAgIGlmIChzdWJ0aXRsZXNN
ZW51LmNoaWxkcmVuPy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5j
aG9vc2VNZW51QWN0aW9uKHN1YnRpdGxlc01lbnUudGl0bGUpOworICAgICAgICAgICAgICAgIGF3
YWl0IFVJSGVscGVyLmRlbGF5Rm9yKDUwMCk7IC8vIGdpdmUgdGltZSBmb3IgdGhlIFVJTWVudSB0
byBhbmltYXRlCisgICAgICAgICAgICAgICAgY29udGV4dG1lbnUgPSBbc3VidGl0bGVzTWVudV07
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjaGVja2VkSXRlbXMgPSBjb250ZXh0bWVudVsw
XS5jaGlsZHJlbi5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uY2hlY2tlZCk7CisgICAgICAgICAgICBz
aG91bGRCZSgiY2hlY2tlZEl0ZW1zLmxlbmd0aCIsICIxIik7CisgICAgICAgICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImNoZWNrZWRJdGVtc1swXS50aXRsZSIsICJPZmYiKTsKKworICAgICAg
ICAgICAgbWVkaWEucmVtb3ZlKCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAg
ICAgfSk7CisgICAgfSk7Cit9KTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
aW9zL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNr
cy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDU0NDRiNjk1NDc1YWE0NDIxNzgyNTllYjg5N2FmNDdjNjIwYWNkYTQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3Vw
cG9ydC1hdXRvLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNTkg
KzAsMCBAQAotRW5zdXJlIHdlIGhhdmUgdGhlIEF1dG8gdGV4dCB0cmFjayBzZWxlY3RlZCBieSBk
ZWZhdWx0LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBzaGFkb3dSb290
LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVs
bAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3Vu
ZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAotU2V0dGluZyBj
YXB0aW9uIGRpc3BsYXkgbW9kZSB0byAnYXV0b21hdGljJy4uLgotVGFwcGluZyB0cmFja3MgYnV0
dG9uLi4uCi1bCi0gIHsKLSAgICAiY2hpbGRyZW4iOiBbCi0gICAgICB7Ci0gICAgICAgICJ0aXRs
ZSI6ICJMYW5ndWFnZXMiLAotICAgICAgICAiY2hpbGRyZW4iOiBbCi0gICAgICAgICAgewotICAg
ICAgICAgICAgInRpdGxlIjogIkVuZ2xpc2ggU291bmQiLAotICAgICAgICAgICAgImNoZWNrZWQi
OiB0cnVlCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICAidGl0bGUiOiAi
RnJlbmNoIFNvdW5kIgotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgInRp
dGxlIjogIlNwYW5pc2ggU291bmQiCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAot
ICAgICAgewotICAgICAgICAidGl0bGUiOiAiU3VidGl0bGVzIiwKLSAgICAgICAgImNoaWxkcmVu
IjogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgICJ0aXRsZSI6ICJPZmYiCi0gICAgICAgICAg
fSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICAidGl0bGUiOiAiQXV0byAoUmVjb21tZW5kZWQp
IiwKLSAgICAgICAgICAgICJjaGVja2VkIjogdHJ1ZQotICAgICAgICAgIH0sCi0gICAgICAgICAg
ewotICAgICAgICAgICAgInRpdGxlIjogIkVuZ2xpc2ggU3VidGl0bGVzIgotICAgICAgICAgIH0s
Ci0gICAgICAgICAgewotICAgICAgICAgICAgInRpdGxlIjogIkZyZW5jaCBTdWJ0aXRsZXMiCi0g
ICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICAidGl0bGUiOiAiR2VybWFuIFN1
YnRpdGxlcyIKLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgICJ0aXRsZSI6
ICJTcGFuaXNoIFN1YnRpdGxlcyIKLSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAgIH0KLSAg
ICBdCi0gIH0KLV0KLVNldHRpbmcgY2FwdGlvbiBkaXNwbGF5IG1vZGUgdG8gJ2ZvcmNlZG9ubHkn
Li4uCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJhY2suaHRtbCBiL0xheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJh
Y2tzLXN1cHBvcnQtYXV0by10ZXh0LXRyYWNrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGY1YmViYzE4NWY0MTkxMmMyMmI1YTdhNDk4ZTUwNzkwMzE1NjA1NmMuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1h
dXRvLXRleHQtdHJhY2suaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11
dGlscy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3Vp
LWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxib2R5PgotPHZpZGVvIHNyYz0iLi4vLi4vLi4v
Y29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0
OiAwOyB0b3A6IDA7IHdpZHRoOiAzMDBweDsiIGF1dG9wbGF5IGNvbnRyb2xzIG11dGVkIHBsYXlz
aW5saW5lPjwvdmlkZW8+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXdpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oIkVuc3VyZSB3ZSBoYXZlIHRo
ZSBBdXRvIHRleHQgdHJhY2sgc2VsZWN0ZWQgYnkgZGVmYXVsdC4iKTsKLQotY29uc3QgbWVkaWEg
PSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qgc2hhZG93Um9vdCA9IHdp
bmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlhLmFkZEV2ZW50TGlzdGVu
ZXIoInBsYXkiLCAoKSA9PiB7Ci0gICAgbWVkaWEucGF1c2UoKTsKLQotICAgIHNob3VsZEJlY29t
ZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykiLCAi
bnVsbCIsICgpID0+IHsKLSAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290
LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53
aWR0aCIsICIwIiwgYXN5bmMgKCkgPT4gewotICAgICAgICAgICAgZGVidWcoIlNldHRpbmcgY2Fw
dGlvbiBkaXNwbGF5IG1vZGUgdG8gJ2F1dG9tYXRpYycuLi4iKTsKLSAgICAgICAgICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2V0Q2FwdGlvbkRpc3BsYXlNb2RlKCJhdXRvbWF0aWMiKTsKLQotICAgICAg
ICAgICAgZGVidWcoIlRhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLiIpOwotICAgICAgICAgICAgbGV0
IFtjb250ZXh0bWVudV0gPSBhd2FpdCBQcm9taXNlLmFsbChbCi0gICAgICAgICAgICAgICAgZ2V0
VHJhY2tzQ29udGV4dE1lbnUoKSwKLSAgICAgICAgICAgICAgICBwcmVzc09uRWxlbWVudChzaGFk
b3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSksCi0gICAgICAgICAgICBdKTsK
LSAgICAgICAgICAgIGRlYnVnKEpTT04uc3RyaW5naWZ5KGNvbnRleHRtZW51LCBudWxsLCAyKSk7
Ci0KLSAgICAgICAgICAgIGRlYnVnKCJTZXR0aW5nIGNhcHRpb24gZGlzcGxheSBtb2RlIHRvICdm
b3JjZWRvbmx5Jy4uLiIpOwotICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRDYXB0aW9u
RGlzcGxheU1vZGUoImZvcmNlZG9ubHkiKTsKLQotICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7
Ci0gICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19KTsK
LQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0
LWNsaWNrLXRyYWNrLWluLWNvbnRleHRtZW51LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBv
cnQtY2xpY2stdHJhY2staW4tY29udGV4dG1lbnUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA4YmNmMDUyOTZmMGU2YjIzZGNmNTJjNTYyOGRjMWVlMDM2NGM2MjE1
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tz
LXN1cHBvcnQtY2xpY2stdHJhY2staW4tY29udGV4dG1lbnUtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMjYgKzAsMCBAQAotQ2xpY2tpbmcgb24gYSB0cmFjayBpbiB0aGUgdHJhY2tz
IGNvbnRleHRtZW51LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotbWVkaWEuYXVk
aW9UcmFja3NbMF0uZW5hYmxlZCA9IHRydWUKLW1lZGlhLmF1ZGlvVHJhY2tzWzFdLmVuYWJsZWQg
PSBmYWxzZQotbWVkaWEuYXVkaW9UcmFja3NbMl0uZW5hYmxlZCA9IGZhbHNlCi1QQVNTIHNoYWRv
d1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJv
bSBudWxsCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCi1UYXBw
aW5nIHRyYWNrcyBidXR0b24uLi4KLVNlbGVjdGluZyBzZWNvbmQgYXVkaW8gdHJhY2suLi4KLUF1
ZGlvIHRyYWNrcyBjaGFuZ2VkLgotbWVkaWEuYXVkaW9UcmFja3NbMF0uZW5hYmxlZCA9IGZhbHNl
Ci1tZWRpYS5hdWRpb1RyYWNrc1sxXS5lbmFibGVkID0gdHJ1ZQotbWVkaWEuYXVkaW9UcmFja3Nb
Ml0uZW5hYmxlZCA9IGZhbHNlCi1UYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KLVNlbGVjdGluZyB0
aGlyZCBhdWRpbyB0cmFjay4uLgotQXVkaW8gdHJhY2tzIGNoYW5nZWQuCi1tZWRpYS5hdWRpb1Ry
YWNrc1swXS5lbmFibGVkID0gZmFsc2UKLW1lZGlhLmF1ZGlvVHJhY2tzWzFdLmVuYWJsZWQgPSBm
YWxzZQotbWVkaWEuYXVkaW9UcmFja3NbMl0uZW5hYmxlZCA9IHRydWUKLVBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNr
cy1zdXBwb3J0LWNsaWNrLXRyYWNrLWluLWNvbnRleHRtZW51Lmh0bWwgYi9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBw
b3J0LWNsaWNrLXRyYWNrLWluLWNvbnRleHRtZW51Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDdmZWViNmRhMmY4MDFkZjFkYjg0YWJhMGYxOThjMmQ4MGY4NGZlMTMuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9y
dC1jbGljay10cmFjay1pbi1jb250ZXh0bWVudS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTEg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL21l
ZGlhLWNvbnRyb2xzLXV0aWxzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8g
c3JjPSIuLi8uLi8uLi9jb250ZW50L2F1ZGlvLXRyYWNrcy5tcDQiIHN0eWxlPSJwb3NpdGlvbjog
YWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDMwMHB4OyIgY29udHJvbHMgYXV0b3Bs
YXkgbXV0ZWQgcGxheXNpbmxpbmU+PC92aWRlbz4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbigiQ2xp
Y2tpbmcgb24gYSB0cmFjayBpbiB0aGUgdHJhY2tzIGNvbnRleHRtZW51LiIpOwotCi1jb25zdCBt
ZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Ci1jb25zdCBzaGFkb3dSb290
ID0gd2luZG93LmludGVybmFscy5zaGFkb3dSb290KG1lZGlhKTsKLQotbGV0IHByZXZpb3VzbHlT
ZWxlY3RlZFRyYWNrID0gMDsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+
IHsKLSAgICBtZWRpYS5wYXVzZSgpOwotCi0gICAgZHVtcEF1ZGlvVHJhY2tzRW5hYmxlZFN0YXRl
KCk7Ci0KLSAgICBtZWRpYS5hdWRpb1RyYWNrcy5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCBo
YW5kbGVBdWRpb1RyYWNrc0NoYW5nZSk7Ci0KLSAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7
Ci0gICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIsICgp
ID0+IHsKLSAgICAgICAgICAgIGNsaWNrT25UcmFja3NCdXR0b24oY2xpY2tPblNlY29uZEF1ZGlv
VHJhY2spOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0pOwotCi1mdW5jdGlvbiBjbGlja09uVHJh
Y2tzQnV0dG9uKGNvbnRpbnVhdGlvbikKLXsKLSAgICBkZWJ1ZygiVGFwcGluZyB0cmFja3MgYnV0
dG9uLi4uIik7Ci0gICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJi
dXR0b24udHJhY2tzIiksICgpID0+IHsKLSAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25G
cmFtZShjb250aW51YXRpb24pOwotICAgIH0pOwotfQotCi1hc3luYyBmdW5jdGlvbiBjbGlja09u
U2Vjb25kQXVkaW9UcmFjaygpCi17Ci0gICAgZGVidWcoIlNlbGVjdGluZyBzZWNvbmQgYXVkaW8g
dHJhY2suLi4iKTsKLSAgICBsZXQgY29udGV4dG1lbnUgPSBhd2FpdCBnZXRUcmFja3NDb250ZXh0
TWVudSgpOwotICAgIGxldCBsYW5ndWFnZXNNZW51ID0gY29udGV4dG1lbnVbMF0uY2hpbGRyZW5b
MF07Ci0gICAgYXdhaXQgVUlIZWxwZXIuY2hvb3NlTWVudUFjdGlvbihsYW5ndWFnZXNNZW51LnRp
dGxlKTsKLSAgICBhd2FpdCBVSUhlbHBlci5kZWxheUZvcig1MDApOyAvLyBnaXZlIHRpbWUgZm9y
IHRoZSBVSU1lbnUgdG8gYW5pbWF0ZQotICAgIGF3YWl0IFVJSGVscGVyLmNob29zZU1lbnVBY3Rp
b24obGFuZ3VhZ2VzTWVudS5jaGlsZHJlblsxXS50aXRsZSk7Ci19Ci0KLWFzeW5jIGZ1bmN0aW9u
IGNsaWNrT25UaGlyZEF1ZGlvVHJhY2soKQotewotICAgIGRlYnVnKCJTZWxlY3RpbmcgdGhpcmQg
YXVkaW8gdHJhY2suLi4iKTsKLSAgICBsZXQgY29udGV4dG1lbnUgPSBhd2FpdCBnZXRUcmFja3ND
b250ZXh0TWVudSgpOwotICAgIGxldCBsYW5ndWFnZXNNZW51ID0gY29udGV4dG1lbnVbMF0uY2hp
bGRyZW5bMF07Ci0gICAgYXdhaXQgVUlIZWxwZXIuY2hvb3NlTWVudUFjdGlvbihsYW5ndWFnZXNN
ZW51LnRpdGxlKTsKLSAgICBhd2FpdCBVSUhlbHBlci5kZWxheUZvcig1MDApOyAvLyBnaXZlIHRp
bWUgZm9yIHRoZSBVSU1lbnUgdG8gYW5pbWF0ZQotICAgIGF3YWl0IFVJSGVscGVyLmNob29zZU1l
bnVBY3Rpb24obGFuZ3VhZ2VzTWVudS5jaGlsZHJlblsyXS50aXRsZSk7Ci19Ci0KLWFzeW5jIGZ1
bmN0aW9uIGhhbmRsZUF1ZGlvVHJhY2tzQ2hhbmdlKCkKLXsKLSAgICBjb25zdCBuZXdTZWxlY3Rl
ZFRyYWNrID0gQXJyYXkuZnJvbShtZWRpYS5hdWRpb1RyYWNrcykuZmluZEluZGV4KHRyYWNrID0+
IHRyYWNrLmVuYWJsZWQpOwotICAgIGlmIChwcmV2aW91c2x5U2VsZWN0ZWRUcmFjayA9PT0gbmV3
U2VsZWN0ZWRUcmFjaykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgcHJldmlvdXNseVNlbGVjdGVk
VHJhY2sgPSBuZXdTZWxlY3RlZFRyYWNrOwotCi0gICAgZGVidWcoIkF1ZGlvIHRyYWNrcyBjaGFu
Z2VkLiIpOwotCi0gICAgZHVtcEF1ZGlvVHJhY2tzRW5hYmxlZFN0YXRlKCk7Ci0KLSAgICBhd2Fp
dCBVSUhlbHBlci53YWl0Rm9yQ29udGV4dE1lbnVUb0hpZGUoKTsKLQotICAgIGlmIChtZWRpYS5h
dWRpb1RyYWNrc1sxXS5lbmFibGVkKQotICAgICAgICBjbGlja09uVHJhY2tzQnV0dG9uKGNsaWNr
T25UaGlyZEF1ZGlvVHJhY2spOwotICAgIGVsc2UgaWYgKG1lZGlhLmF1ZGlvVHJhY2tzWzJdLmVu
YWJsZWQpIHsKLSAgICAgICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAgICAgIGZpbmlzaEpTVGVzdCgp
OwotICAgIH0KLX0KLQotZnVuY3Rpb24gZHVtcEF1ZGlvVHJhY2tzRW5hYmxlZFN0YXRlKCkKLXsK
LSAgICBBcnJheS5mcm9tKG1lZGlhLmF1ZGlvVHJhY2tzKS5mb3JFYWNoKChhdWRpb1RyYWNrLCBp
bmRleCkgPT4gewotICAgICAgICBkZWJ1ZyhgbWVkaWEuYXVkaW9UcmFja3NbJHtpbmRleH1dLmVu
YWJsZWQgPSAke21lZGlhLmF1ZGlvVHJhY2tzW2luZGV4XS5lbmFibGVkfWApOwotICAgIH0pOwot
fQotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBv
cnQtaGlkZGVuLXRyYWNrcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWhpZGRlbi10
cmFja3MtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4Yjg2NTZm
ODg5ODZiNWNmMGNkZjQxMTZiZjdjMmNmMmQ0ZmY5Nzc1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi1UaGlzIHRlc3QgY2hl
Y2tzIHRoYXQgdGhlIHRyYWNrcyBjb250ZXh0bWVudSBkb2Vzbid0IHNob3cgYW55IHRyYWNrIGFz
IHNlbGVjdGVkIGlmIGFsbCB0aGUgdGV4dCB0cmFja3MgZm9yIGEgbWVkaWEgZWxlbWVudCBhcmUg
bWFya2VkIGFzICJoaWRkZW4iLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFT
UyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNhbWUgZGlmZmVy
ZW50IGZyb20gbnVsbAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFj
a3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20g
MAotU2V0dGluZyBtb2RlIHRvICdoaWRkZW4nIGZvciBhbGwgdGV4dCB0cmFja3MgdmlhIEphdmFT
Y3JpcHQuLi4KLVRhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLgotWwotICB7Ci0gICAgImNoaWxkcmVu
IjogWwotICAgICAgewotICAgICAgICAidGl0bGUiOiAiTGFuZ3VhZ2VzIiwKLSAgICAgICAgImNo
aWxkcmVuIjogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgICJ0aXRsZSI6ICJFbmdsaXNoIFNv
dW5kIiwKLSAgICAgICAgICAgICJjaGVja2VkIjogdHJ1ZQotICAgICAgICAgIH0sCi0gICAgICAg
ICAgewotICAgICAgICAgICAgInRpdGxlIjogIkZyZW5jaCBTb3VuZCIKLSAgICAgICAgICB9LAot
ICAgICAgICAgIHsKLSAgICAgICAgICAgICJ0aXRsZSI6ICJTcGFuaXNoIFNvdW5kIgotICAgICAg
ICAgIH0KLSAgICAgICAgXQotICAgICAgfSwKLSAgICAgIHsKLSAgICAgICAgInRpdGxlIjogIlN1
YnRpdGxlcyIsCi0gICAgICAgICJjaGlsZHJlbiI6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAg
ICAidGl0bGUiOiAiT2ZmIiwKLSAgICAgICAgICAgICJjaGVja2VkIjogdHJ1ZQotICAgICAgICAg
IH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgInRpdGxlIjogIkF1dG8gKFJlY29tbWVuZGVk
KSIKLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgICJ0aXRsZSI6ICJFbmds
aXNoIFN1YnRpdGxlcyIKLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgICJ0
aXRsZSI6ICJGcmVuY2ggU3VidGl0bGVzIgotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAg
ICAgICAgICAgInRpdGxlIjogIkdlcm1hbiBTdWJ0aXRsZXMiCi0gICAgICAgICAgfSwKLSAgICAg
ICAgICB7Ci0gICAgICAgICAgICAidGl0bGUiOiAiU3BhbmlzaCBTdWJ0aXRsZXMiCi0gICAgICAg
ICAgfQotICAgICAgICBdCi0gICAgICB9Ci0gICAgXQotICB9Ci1dCi1QQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mt
c3VwcG9ydC1oaWRkZW4tdHJhY2tzLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWhpZGRlbi10cmFj
a3MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWRlNGY4ZDY4MzZkY2ZiZWJi
MjJhMmQxNTgyOWZjMjViMjViYWNlOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWhpZGRlbi10cmFja3MuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDM5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
LTxib2R5PgotPHZpZGVvIHNyYz0iLi4vLi4vLi4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBz
dHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiAzMDBweDsi
IGNvbnRyb2xzIGF1dG9wbGF5IG11dGVkIHBsYXlzaW5saW5lPjwvdmlkZW8+Ci08c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQot
ZGVzY3JpcHRpb24oYFRoaXMgdGVzdCBjaGVja3MgdGhhdCB0aGUgdHJhY2tzIGNvbnRleHRtZW51
IGRvZXNuJ3Qgc2hvdyBhbnkgdHJhY2sgYXMgc2VsZWN0ZWQgaWYgYWxsIHRoZSB0ZXh0IHRyYWNr
cyBmb3IgYSBtZWRpYSBlbGVtZW50IGFyZSBtYXJrZWQgYXMgImhpZGRlbiIuYCk7Ci0KLWNvbnN0
IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jv
b3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOwotCi1tZWRpYS5hZGRFdmVu
dExpc3RlbmVyKCJwbGF5IiwgKCkgPT4gewotICAgIG1lZGlhLnBhdXNlKCk7Ci0KLSAgICBzaG91
bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNr
cycpIiwgIm51bGwiLCAoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hh
ZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCkud2lkdGgiLCAiMCIsIGFzeW5jICgpID0+IHsKLSAgICAgICAgICAgIGRlYnVnKCJTZXR0
aW5nIG1vZGUgdG8gJ2hpZGRlbicgZm9yIGFsbCB0ZXh0IHRyYWNrcyB2aWEgSmF2YVNjcmlwdC4u
LiIpOwotICAgICAgICAgICAgQXJyYXkuZnJvbShtZWRpYS50ZXh0VHJhY2tzKS5mb3JFYWNoKHRy
YWNrID0+IHRyYWNrLm1vZGUgPSAiaGlkZGVuIik7Ci0KLSAgICAgICAgICAgIGRlYnVnKCJUYXBw
aW5nIHRyYWNrcyBidXR0b24uLi4iKTsKLSAgICAgICAgICAgIGxldCBbY29udGV4dG1lbnVdID0g
YXdhaXQgUHJvbWlzZS5hbGwoWwotICAgICAgICAgICAgICAgIGdldFRyYWNrc0NvbnRleHRNZW51
KCksCi0gICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVj
dG9yKCJidXR0b24udHJhY2tzIikpLAotICAgICAgICAgICAgXSk7Ci0gICAgICAgICAgICBkZWJ1
ZyhKU09OLnN0cmluZ2lmeShjb250ZXh0bWVudSwgbnVsbCwgMikpOwotCi0gICAgICAgICAgICBt
ZWRpYS5yZW1vdmUoKTsKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9KTsK
LSAgICB9KTsKLX0pOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3Mv
dHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3Vw
cG9ydC1vZmYtdGV4dC10cmFjay1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGRhY2VjZDMxMGVlMjYyZjc1N2YwMDIxNTVhODhkMTk1ZWY2ZDkzNzkuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1v
ZmYtdGV4dC10cmFjay1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBA
Ci1FbnN1cmUgd2UgaGF2ZSB0aGUgT2ZmIHRleHQgdHJhY2sgc2VsZWN0ZWQgYnkgZGVmYXVsdC4K
LQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNl
bGVjdG9yKCdidXR0b24udHJhY2tzJykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1Mg
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGll
bnRSZWN0KCkud2lkdGggYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKLVRhcHBpbmcgdHJhY2tzIGJ1
dHRvbi4uLgotWwotICB7Ci0gICAgImNoaWxkcmVuIjogWwotICAgICAgewotICAgICAgICAidGl0
bGUiOiAiTGFuZ3VhZ2VzIiwKLSAgICAgICAgImNoaWxkcmVuIjogWwotICAgICAgICAgIHsKLSAg
ICAgICAgICAgICJ0aXRsZSI6ICJFbmdsaXNoIFNvdW5kIiwKLSAgICAgICAgICAgICJjaGVja2Vk
IjogdHJ1ZQotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgInRpdGxlIjog
IkZyZW5jaCBTb3VuZCIKLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgICJ0
aXRsZSI6ICJTcGFuaXNoIFNvdW5kIgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfSwK
LSAgICAgIHsKLSAgICAgICAgInRpdGxlIjogIlN1YnRpdGxlcyIsCi0gICAgICAgICJjaGlsZHJl
biI6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICAidGl0bGUiOiAiT2ZmIiwKLSAgICAgICAg
ICAgICJjaGVja2VkIjogdHJ1ZQotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAg
ICAgInRpdGxlIjogIkF1dG8gKFJlY29tbWVuZGVkKSIKLSAgICAgICAgICB9LAotICAgICAgICAg
IHsKLSAgICAgICAgICAgICJ0aXRsZSI6ICJFbmdsaXNoIFN1YnRpdGxlcyIKLSAgICAgICAgICB9
LAotICAgICAgICAgIHsKLSAgICAgICAgICAgICJ0aXRsZSI6ICJGcmVuY2ggU3VidGl0bGVzIgot
ICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgInRpdGxlIjogIkdlcm1hbiBT
dWJ0aXRsZXMiCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICAidGl0bGUi
OiAiU3BhbmlzaCBTdWJ0aXRsZXMiCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9Ci0g
ICAgXQotICB9Ci1dCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09N
UExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay5odG1s
IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L2lvcy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwZWIzMTM0ODRlYTQ4MjM4ZjIzNmM3MGU4OTczMDc5ZDZlM2IzZWFkLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1
cHBvcnQtb2ZmLXRleHQtdHJhY2suaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9tZWRpYS1jb250
cm9scy11dGlscy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxib2R5PgotPHZpZGVvIHNyYz0iLi4v
Li4vLi4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRl
OyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiAzMDBweDsiIGNvbnRyb2xzIGF1dG9wbGF5IG11dGVk
IHBsYXlzaW5saW5lPjwvdmlkZW8+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0K
LXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oIkVuc3VyZSB3ZSBo
YXZlIHRoZSBPZmYgdGV4dCB0cmFjayBzZWxlY3RlZCBieSBkZWZhdWx0LiIpOwotCi1jb25zdCBt
ZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Ci1jb25zdCBzaGFkb3dSb290
ID0gd2luZG93LmludGVybmFscy5zaGFkb3dSb290KG1lZGlhKTsKLQotbWVkaWEuYWRkRXZlbnRM
aXN0ZW5lcigicGxheSIsICgpID0+IHsKLSAgICBtZWRpYS5wYXVzZSgpOwotCi0gICAgc2hvdWxk
QmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3Mn
KSIsICJudWxsIiwgKCkgPT4gewotICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRv
d1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpLndpZHRoIiwgIjAiLCBhc3luYyAoKSA9PiB7Ci0gICAgICAgICAgICBkZWJ1ZygiVGFwcGlu
ZyB0cmFja3MgYnV0dG9uLi4uIik7Ci0gICAgICAgICAgICBsZXQgW2NvbnRleHRtZW51XSA9IGF3
YWl0IFByb21pc2UuYWxsKFsKLSAgICAgICAgICAgICAgICBnZXRUcmFja3NDb250ZXh0TWVudSgp
LAotICAgICAgICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cigiYnV0dG9uLnRyYWNrcyIpKSwKLSAgICAgICAgICAgIF0pOwotICAgICAgICAgICAgZGVidWco
SlNPTi5zdHJpbmdpZnkoY29udGV4dG1lbnUsIG51bGwsIDIpKTsKLQotICAgICAgICAgICAgbWVk
aWEucmVtb3ZlKCk7Ci0gICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfSk7Ci0g
ICAgfSk7Ci19KTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3Ry
YWNrcy1zdXBwb3J0LXNob3ctY29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tz
LWJ1dHRvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LXNob3ctY29udGV4dG1lbnUt
dGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhhZmE3NTA2OGVjMjNkYWUwNTUwZjQ4ZjVlMGZkNDhjY2Qy
NzRiZWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90
cmFja3Mtc3VwcG9ydC1zaG93LWNvbnRleHRtZW51LXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNr
cy1idXR0b24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotRW5z
dXJlIHRoYXQgY2xpY2tpbmcgdGhlIHRyYWNrcyBidXR0b24gd2hlbiB0aGUgdHJhY2tzIGNvbnRl
eHRtZW51IGlzIHNob3duIG1ha2VzIHRoZSBjb250ZXh0bWVudSBoaWRlLgotCi1PbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRv
bi50cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAotUEFTUyBzaGFkb3dSb290LnF1
ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0
aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAotVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uCi1Db250
ZXh0IG1lbnUgc2hvd24uCi1UYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KLUNvbnRleHQgbWVudSBo
aWRkZW4uCi1UYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KLUNvbnRleHQgbWVudSBzaG93bi4KLVRh
cHBpbmcgdHJhY2tzIGJ1dHRvbi4uLgotQ29udGV4dCBtZW51IGhpZGRlbi4KLVBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3Ry
YWNrcy1zdXBwb3J0LXNob3ctY29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tz
LWJ1dHRvbi5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1zaG93LWNvbnRleHRtZW51LXRoZW4tZG91
YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOWRlZjJjMDczNDEwMDI5MjljYmUxZDZjZWM1ZjY4MGJiMjBhM2VkNy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LXNo
b3ctY29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgotPGJvZHk+Ci08dmlkZW8gc3JjPSIuLi8uLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5t
b3YiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDMw
MHB4OyIgY29udHJvbHMgYXV0b3BsYXkgbXV0ZWQgcGxheXNpbmxpbmU+PC92aWRlbz4KLTxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVl
OwotCi1kZXNjcmlwdGlvbigiRW5zdXJlIHRoYXQgY2xpY2tpbmcgdGhlIHRyYWNrcyBidXR0b24g
d2hlbiB0aGUgdHJhY2tzIGNvbnRleHRtZW51IGlzIHNob3duIG1ha2VzIHRoZSBjb250ZXh0bWVu
dSBoaWRlLiIpOwotCi1jb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVv
Iik7Ci1jb25zdCBzaGFkb3dSb290ID0gd2luZG93LmludGVybmFscy5zaGFkb3dSb290KG1lZGlh
KTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKLSAgICBtZWRpYS5w
YXVzZSgpOwotCi0gICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2Vs
ZWN0b3IoJ2J1dHRvbi50cmFja3MnKSIsICJudWxsIiwgKCkgPT4gewotICAgICAgICBzaG91bGRC
ZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycp
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIiwgIjAiLCBhc3luYyAoKSA9PiB7Ci0gICAg
ICAgICAgICBkZWJ1ZygiVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uIik7Ci0gICAgICAgICAgICBh
d2FpdCBQcm9taXNlLmFsbChbCi0gICAgICAgICAgICAgICAgVUlIZWxwZXIud2FpdEZvckNvbnRl
eHRNZW51VG9TaG93KCksCi0gICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9v
dC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpLAotICAgICAgICAgICAgXSk7Ci0gICAg
ICAgICAgICBkZWJ1ZygiQ29udGV4dCBtZW51IHNob3duLiIpOwotCi0gICAgICAgICAgICBkZWJ1
ZygiVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uIik7Ci0gICAgICAgICAgICBhd2FpdCBQcm9taXNl
LmFsbChbCi0gICAgICAgICAgICAgICAgVUlIZWxwZXIud2FpdEZvckNvbnRleHRNZW51VG9IaWRl
KCksCi0gICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVj
dG9yKCJidXR0b24udHJhY2tzIikpLAotICAgICAgICAgICAgXSk7Ci0gICAgICAgICAgICBkZWJ1
ZygiQ29udGV4dCBtZW51IGhpZGRlbi4iKTsKLQotICAgICAgICAgICAgZGVidWcoIlRhcHBpbmcg
dHJhY2tzIGJ1dHRvbi4uLiIpOwotICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWwotICAg
ICAgICAgICAgICAgIFVJSGVscGVyLndhaXRGb3JDb250ZXh0TWVudVRvU2hvdygpLAotICAgICAg
ICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9u
LnRyYWNrcyIpKSwKLSAgICAgICAgICAgIF0pOwotICAgICAgICAgICAgZGVidWcoIkNvbnRleHQg
bWVudSBzaG93bi4iKTsKLQotICAgICAgICAgICAgZGVidWcoIlRhcHBpbmcgdHJhY2tzIGJ1dHRv
bi4uLiIpOwotICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWwotICAgICAgICAgICAgICAg
IFVJSGVscGVyLndhaXRGb3JDb250ZXh0TWVudVRvSGlkZSgpLAotICAgICAgICAgICAgICAgIHBy
ZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKSwK
LSAgICAgICAgICAgIF0pOwotICAgICAgICAgICAgZGVidWcoIkNvbnRleHQgbWVudSBoaWRkZW4u
Iik7Ci0KLSAgICAgICAgICAgIG1lZGlhLnJlbW92ZSgpOwotICAgICAgICAgICAgZmluaXNoSlNU
ZXN0KCk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotfSk7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9i
b2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZp
YS1tZWRpYS1hcGktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNl
bGVjdGVkLXZpYS1tZWRpYS1hcGktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA1NzBjOGI1ZmQ1YmMyM2NmODAwOGRkNzU5MDUyYjc2NjJjNzcyMmQ0Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQt
dGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDY1ICswLDAgQEAKLVRoaXMgdGVzdCBjaGVja3MgdGhhdCBzZXR0aW5nIGFuIGVt
YmVkZGVkIHRleHQgdHJhY2sgYXMgc2VsZWN0ZWQgdmlhIHRoZSBIVE1MTWVkaWFFbGVtZW50IEpT
IEFQSXMgd2lsbCBjb3JyZWN0bHkgc2hvdyB0aGlzIHRyYWNrIGFzIHNlbGVjdGVkLCBhbmQgdGhh
dCBzZWxlY3RpbmcgdGhlICJBdXRvbWF0aWMgKFJlY29tbWVuZGVkKSIgdHJhY2sgd2lsbCByZXZl
cnQgYmFjayB0byBzZWxlY3RpbmcgdGhhdCBlbnRyeS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgotCi0KLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykg
YmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggYmVjYW1lIGRp
ZmZlcmVudCBmcm9tIDAKLVNldHRpbmcgbW9kZSB0byAnc2hvd2luZycgZm9yIGZpcnN0IHRleHQg
dHJhY2sgdmlhIEphdmFTY3JpcHQuLi4KLVRhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLgotWwotICB7
Ci0gICAgImNoaWxkcmVuIjogWwotICAgICAgewotICAgICAgICAidGl0bGUiOiAiU3VidGl0bGVz
IiwKLSAgICAgICAgImNoaWxkcmVuIjogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgICJ0aXRs
ZSI6ICJPZmYiCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICAidGl0bGUi
OiAiQXV0byAoUmVjb21tZW5kZWQpIgotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAg
ICAgICAgInRpdGxlIjogIkVuZ2xpc2giLAotICAgICAgICAgICAgImNoZWNrZWQiOiB0cnVlCi0g
ICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICAidGl0bGUiOiAiRnJlbmNoIgot
ICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfQotICAgIF0KLSAgfQotXQotU2VsZWN0aW5n
IGZpcnN0IHRleHQgdHJhY2suLi4KLVBBU1MgbWVkaWEudGV4dFRyYWNrc1swXS5tb2RlIGlzICdk
aXNhYmxlZCcKLVBBU1MgbWVkaWEudGV4dFRyYWNrc1sxXS5tb2RlIGlzICdzaG93aW5nJwotVGFw
cGluZyB0cmFja3MgYnV0dG9uLi4uCi1bCi0gIHsKLSAgICAiY2hpbGRyZW4iOiBbCi0gICAgICB7
Ci0gICAgICAgICJ0aXRsZSI6ICJTdWJ0aXRsZXMiLAotICAgICAgICAiY2hpbGRyZW4iOiBbCi0g
ICAgICAgICAgewotICAgICAgICAgICAgInRpdGxlIjogIk9mZiIKLSAgICAgICAgICB9LAotICAg
ICAgICAgIHsKLSAgICAgICAgICAgICJ0aXRsZSI6ICJBdXRvIChSZWNvbW1lbmRlZCkiLAotICAg
ICAgICAgICAgImNoZWNrZWQiOiB0cnVlCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAg
ICAgICAgICAidGl0bGUiOiAiRW5nbGlzaCIKLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAg
ICAgICAgICAgICJ0aXRsZSI6ICJGcmVuY2giCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAg
ICB9Ci0gICAgXQotICB9Ci1dCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRF
U1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNl
bGVjdGVkLXZpYS1tZWRpYS1hcGkuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1z
ZWxlY3RlZC12aWEtbWVkaWEtYXBpLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDFkYmFlOTNjMDdmOTRhMjNmNjQ4ZGJkNTBhOTQ5MjU5NjUwZDliOTMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC10ZXh0LXRy
YWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYxICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9tZWRp
YS1jb250cm9scy11dGlscy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxib2R5PgotPHZpZGVvIHNy
Yz0iLi4vLi4vLi4vY29udGVudC9jb3VudGluZy1zdWJ0aXRsZWQubTR2IiBzdHlsZT0icG9zaXRp
b246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiAzMDBweDsiIGNvbnRyb2xzIGF1
dG9wbGF5IG11dGVkIHBsYXlzaW5saW5lPjwvdmlkZW8+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24o
YFRoaXMgdGVzdCBjaGVja3MgdGhhdCBzZXR0aW5nIGFuIGVtYmVkZGVkIHRleHQgdHJhY2sgYXMg
c2VsZWN0ZWQgdmlhIHRoZSBIVE1MTWVkaWFFbGVtZW50IEpTIEFQSXMgd2lsbCBjb3JyZWN0bHkg
c2hvdyB0aGlzIHRyYWNrIGFzIHNlbGVjdGVkLCBhbmQgdGhhdCBzZWxlY3RpbmcgdGhlIAotIkF1
dG9tYXRpYyAoUmVjb21tZW5kZWQpIiB0cmFjayB3aWxsIHJldmVydCBiYWNrIHRvIHNlbGVjdGlu
ZyB0aGF0IGVudHJ5LmApOwotCi1jb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
InZpZGVvIik7Ci1jb25zdCBzaGFkb3dSb290ID0gd2luZG93LmludGVybmFscy5zaGFkb3dSb290
KG1lZGlhKTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKLSAgICBt
ZWRpYS5wYXVzZSgpOwotCi0gICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1
ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSIsICJudWxsIiwgKCkgPT4gewotICAgICAgICBz
aG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRy
YWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIiwgIjAiLCBhc3luYyAoKSA9PiB7
Ci0gICAgICAgICAgICBkZWJ1ZygiU2V0dGluZyBtb2RlIHRvICdzaG93aW5nJyBmb3IgZmlyc3Qg
dGV4dCB0cmFjayB2aWEgSmF2YVNjcmlwdC4uLiIpOwotICAgICAgICAgICAgbWVkaWEudGV4dFRy
YWNrc1swXS5tb2RlID0gInNob3dpbmciOwotCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgZGVidWcoIlRhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLiIpOwotICAgICAgICAgICAgICAgIGxl
dCBbY29udGV4dG1lbnVdID0gYXdhaXQgUHJvbWlzZS5hbGwoWwotICAgICAgICAgICAgICAgICAg
ICBnZXRUcmFja3NDb250ZXh0TWVudSgpLAotICAgICAgICAgICAgICAgICAgICBwcmVzc09uRWxl
bWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSksCi0gICAgICAg
ICAgICAgICAgXSk7Ci0gICAgICAgICAgICAgICAgZGVidWcoSlNPTi5zdHJpbmdpZnkoY29udGV4
dG1lbnUsIG51bGwsIDIpKTsKLQotICAgICAgICAgICAgICAgIGRlYnVnKCJTZWxlY3RpbmcgZmly
c3QgdGV4dCB0cmFjay4uLiIpOwotICAgICAgICAgICAgICAgIGxldCBzdWJ0aXRsZXNNZW51ID0g
Y29udGV4dG1lbnVbMF0uY2hpbGRyZW5bMF07Ci0gICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxw
ZXIuY2hvb3NlTWVudUFjdGlvbihzdWJ0aXRsZXNNZW51LnRpdGxlKTsKLSAgICAgICAgICAgICAg
ICBhd2FpdCBVSUhlbHBlci5kZWxheUZvcig1MDApOyAvLyBnaXZlIHRpbWUgZm9yIHRoZSBVSU1l
bnUgdG8gYW5pbWF0ZQotICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmNob29zZU1lbnVB
Y3Rpb24oc3VidGl0bGVzTWVudS5jaGlsZHJlblsxXS50aXRsZSk7Ci0gICAgICAgICAgICAgICAg
YXdhaXQgVUlIZWxwZXIud2FpdEZvckNvbnRleHRNZW51VG9IaWRlKCk7Ci0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIHNob3VsZEJlKCJtZWRpYS50ZXh0VHJhY2tzWzBdLm1vZGUiLCAiJ2Rp
c2FibGVkJyIpOwotICAgICAgICAgICAgc2hvdWxkQmUoIm1lZGlhLnRleHRUcmFja3NbMV0ubW9k
ZSIsICInc2hvd2luZyciKTsKLQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGRlYnVn
KCJUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4iKTsKLSAgICAgICAgICAgICAgICBsZXQgW2NvbnRl
eHRtZW51XSA9IGF3YWl0IFByb21pc2UuYWxsKFsKLSAgICAgICAgICAgICAgICAgICAgZ2V0VHJh
Y2tzQ29udGV4dE1lbnUoKSwKLSAgICAgICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hh
ZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpLAotICAgICAgICAgICAgICAg
IF0pOwotICAgICAgICAgICAgICAgIGRlYnVnKEpTT04uc3RyaW5naWZ5KGNvbnRleHRtZW51LCBu
dWxsLCAyKSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIG1lZGlhLnJlbW92ZSgpOwot
ICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotfSk7Ci0K
LTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1h
dXRvLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQt
dHJhY2stZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZGFjMGI3
NTVjY2JhOTgwNjk4OTQzNWU0ZmJiNzg1MzUwNmFkOTdlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtYXV0by10ZXh0LXRyYWNr
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLUVuc3VyZSB3ZSBo
YXZlIHRoZSBBdXRvIHRleHQgdHJhY2sgc2VsZWN0ZWQgYnkgZGVmYXVsdC4KLQotT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0
b24udHJhY2tzJykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1Mgc2hhZG93Um9vdC5x
dWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lk
dGggYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCcudHJhY2tzLXBhbmVsJykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1Mgc2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdsaS5zZWxlY3RlZCcpWzFdLnRleHRDb250ZW50IGlzICJB
dXRvIChSZWNvbW1lbmRlZCkiCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQot
VEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10
cmFjay5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJhY2suaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTNmZjc3OWYyOTNmZjFjYzU3OGQ1N2I2NThiY2I0MzBm
YzVmYWQzMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFj
L3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MzUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9z
Y3JpcHQ+Ci08Ym9keT4KLTx2aWRlbyBzcmM9Ii4uLy4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVz
Lm1vdiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDog
NjQwcHg7IGhlaWdodDogMzYwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgotPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
Ci0KLWRlc2NyaXB0aW9uKCJFbnN1cmUgd2UgaGF2ZSB0aGUgQXV0byB0ZXh0IHRyYWNrIHNlbGVj
dGVkIGJ5IGRlZmF1bHQuIik7Ci0KLWNvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigidmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jv
b3QobWVkaWEpOwotCi1tZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4gewotICAg
IG1lZGlhLnBhdXNlKCk7Ci0KLSAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3Qu
cXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7Ci0gICAgICAg
IHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24u
dHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIsICgpID0+IHsKLSAg
ICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0Q2FwdGlvbkRpc3BsYXlNb2RlKCJhdXRvbWF0
aWMiKTsKLSAgICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cigiYnV0dG9uLnRyYWNrcyIpKTsKLSAgICAgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgi
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykiLCAibnVsbCIsICgpID0+
IHsKLSAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInNoYWRvd1Jvb3QucXVl
cnlTZWxlY3RvckFsbCgnbGkuc2VsZWN0ZWQnKVsxXS50ZXh0Q29udGVudCIsICJBdXRvIChSZWNv
bW1lbmRlZCkiKTsKLSAgICAgICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICAgICAg
d2luZG93LmludGVybmFscy5zZXRDYXB0aW9uRGlzcGxheU1vZGUoImZvcmNlZG9ubHkiKTsKLSAg
ICAgICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsKLSAgICAgICAgICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0pOwotCi08L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtY2xpY2st
dHJhY2staW4tcGFuZWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1jbGljay10cmFj
ay1pbi1wYW5lbC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUy
OTQxMTA1YmZhOWNlZjI2ZjdjMzBmOGI5ZGM1MzI2OTNmMzViMmYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1jbGljay10cmFj
ay1pbi1wYW5lbC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1D
bGlja2luZyBvbiBhIHRyYWNrIGluIHRoZSB0cmFja3MgcGFuZWwuCi0KLU9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KLQotCi1tZWRpYS5hdWRpb1RyYWNrc1swXS5lbmFibGVkID0gdHJ1ZQotbWVk
aWEuYXVkaW9UcmFja3NbMV0uZW5hYmxlZCA9IGZhbHNlCi1tZWRpYS5hdWRpb1RyYWNrc1syXS5l
bmFibGVkID0gZmFsc2UKLQotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50
cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5
U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBi
ZWNhbWUgZGlmZmVyZW50IGZyb20gMAotCi1DbGlja2luZyBvbiB0aGUgdHJhY2tzIGJ1dHRvbgot
Q2xpY2tpbmcgb24gc2Vjb25kIGF1ZGlvIHRyYWNrIGluIHRyYWNrcyBwYW5lbAotCi1PYnRhaW5l
ZCBjaGFuZ2UgZXZlbnQgb24gbWVkaWEgYXVkaW8gdHJhY2tzCi1tZWRpYS5hdWRpb1RyYWNrc1sw
XS5lbmFibGVkID0gZmFsc2UKLW1lZGlhLmF1ZGlvVHJhY2tzWzFdLmVuYWJsZWQgPSB0cnVlCi1t
ZWRpYS5hdWRpb1RyYWNrc1syXS5lbmFibGVkID0gZmFsc2UKLQotQ2xpY2tpbmcgb24gdGhlIHRy
YWNrcyBidXR0b24KLUNsaWNraW5nIG9uIHRoaXJkIGF1ZGlvIHRyYWNrIGluIHRyYWNrcyBwYW5l
bAotCi1PYnRhaW5lZCBjaGFuZ2UgZXZlbnQgb24gbWVkaWEgYXVkaW8gdHJhY2tzCi1tZWRpYS5h
dWRpb1RyYWNrc1swXS5lbmFibGVkID0gZmFsc2UKLW1lZGlhLmF1ZGlvVHJhY2tzWzFdLmVuYWJs
ZWQgPSBmYWxzZQotbWVkaWEuYXVkaW9UcmFja3NbMl0uZW5hYmxlZCA9IHRydWUKLQotUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9t
YWMvdHJhY2tzLXN1cHBvcnQtY2xpY2stdHJhY2staW4tcGFuZWwuaHRtbCBiL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1
cHBvcnQtY2xpY2stdHJhY2staW4tcGFuZWwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOWZiMmNiM2MzYTMwN2MwOWUzYzljMGZmZWFlOWU2MjQ3MTUxNDk4Ny4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWNs
aWNrLXRyYWNrLWluLXBhbmVsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5NyArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8gc3JjPSIuLi8uLi8uLi9jb250ZW50
L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRv
cDogMDsgd2lkdGg6IDY0MHB4OyBoZWlnaHQ6IDM2MHB4OyIgY29udHJvbHMgYXV0b3BsYXk+PC92
aWRlbz4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbigiQ2xpY2tpbmcgb24gYSB0cmFjayBpbiB0aGUg
dHJhY2tzIHBhbmVsLiIpOwotCi1jb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
InZpZGVvIik7Ci1jb25zdCBzaGFkb3dSb290ID0gd2luZG93LmludGVybmFscy5zaGFkb3dSb290
KG1lZGlhKTsKLQotbGV0IHByZXZpb3VzbHlTZWxlY3RlZFRyYWNrID0gMDsKLQotbWVkaWEuYWRk
RXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKLSAgICBtZWRpYS5wYXVzZSgpOwotCi0gICAg
ZHVtcEF1ZGlvVHJhY2tzRW5hYmxlZFN0YXRlKCk7Ci0KLSAgICBtZWRpYS5hdWRpb1RyYWNrcy5h
ZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCBhdWRpb1RyYWNrc0RpZENoYW5nZSk7Ci0KLSAgICBk
ZWJ1ZygiIik7Ci0gICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2Vs
ZWN0b3IoJ2J1dHRvbi50cmFja3MnKSIsICJudWxsIiwgKCkgPT4gewotICAgICAgICBzaG91bGRC
ZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycp
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIiwgIjAiLCAoKSA9PiB7Ci0gICAgICAgICAg
ICBjbGlja09uVHJhY2tzQnV0dG9uKGNsaWNrT25TZWNvbmRBdWRpb1RyYWNrKTsKLSAgICAgICAg
fSk7Ci0gICAgfSk7Ci19KTsKLQotZnVuY3Rpb24gY2xpY2tPblRyYWNrc0J1dHRvbihjb250aW51
YXRpb24pCi17Ci0gICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAg
ICAgIGRlYnVnKCIiKTsKLSAgICAgICAgZGVidWcoIkNsaWNraW5nIG9uIHRoZSB0cmFja3MgYnV0
dG9uIik7Ci0gICAgICAgIGNsaWNrT25FbGVtZW50KHNoYWRvd1Jvb3QubGFzdENoaWxkLnF1ZXJ5
U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSk7Ci0gICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0
aW9uRnJhbWUoY29udGludWF0aW9uKTsKLSAgICB9KTsKLX0KLQotZnVuY3Rpb24gY2xpY2tPblNl
Y29uZEF1ZGlvVHJhY2soKQotewotICAgIGRlYnVnKCJDbGlja2luZyBvbiBzZWNvbmQgYXVkaW8g
dHJhY2sgaW4gdHJhY2tzIHBhbmVsIik7Ci0gICAgY2xpY2tPbkF1ZGlvVHJhY2tBdEluZGV4KDEp
OwotfQotCi1mdW5jdGlvbiBjbGlja09uVGhpcmRBdWRpb1RyYWNrKCkKLXsKLSAgICBkZWJ1Zygi
Q2xpY2tpbmcgb24gdGhpcmQgYXVkaW8gdHJhY2sgaW4gdHJhY2tzIHBhbmVsIik7Ci0gICAgY2xp
Y2tPbkF1ZGlvVHJhY2tBdEluZGV4KDIpOwotfQotCi1mdW5jdGlvbiBjbGlja09uQXVkaW9UcmFj
a0F0SW5kZXgoaW5kZXgpCi17Ci0gICAgY2xpY2tPbkVsZW1lbnQoc2hhZG93Um9vdC5sYXN0Q2hp
bGQucXVlcnlTZWxlY3RvckFsbCgibGkiKVtpbmRleF0pOwotfQotCi1mdW5jdGlvbiBjbGlja09u
RWxlbWVudChlbGVtZW50KQotewotICAgIGNvbnN0IGJvdW5kcyA9IGVsZW1lbnQuZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYm91bmRzLmxlZnQg
KyAxLCBib3VuZHMudG9wICsgMSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAg
ZXZlbnRTZW5kZXIubW91c2VVcCgpOwotfQotCi1mdW5jdGlvbiBhdWRpb1RyYWNrc0RpZENoYW5n
ZSgpCi17Ci0gICAgY29uc3QgbmV3U2VsZWN0ZWRUcmFjayA9IEFycmF5LmZyb20obWVkaWEuYXVk
aW9UcmFja3MpLmZpbmRJbmRleCh0cmFjayA9PiB0cmFjay5lbmFibGVkKTsKLSAgICBpZiAocHJl
dmlvdXNseVNlbGVjdGVkVHJhY2sgPT09IG5ld1NlbGVjdGVkVHJhY2spCi0gICAgICAgIHJldHVy
bjsKLQotICAgIHByZXZpb3VzbHlTZWxlY3RlZFRyYWNrID0gbmV3U2VsZWN0ZWRUcmFjazsKLQot
ICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygiT2J0YWluZWQgY2hhbmdlIGV2ZW50IG9uIG1lZGlh
IGF1ZGlvIHRyYWNrcyIpOwotCi0gICAgZHVtcEF1ZGlvVHJhY2tzRW5hYmxlZFN0YXRlKCk7Ci0K
LSAgICBpZiAobWVkaWEuYXVkaW9UcmFja3NbMV0uZW5hYmxlZCkKLSAgICAgICAgc2hhZG93Um9v
dC5xdWVyeVNlbGVjdG9yKCIudHJhY2tzLXBhbmVsIikuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNp
dGlvbmVuZCIsIGV2ZW50ID0+IGNsaWNrT25UcmFja3NCdXR0b24oY2xpY2tPblRoaXJkQXVkaW9U
cmFjaykpOwotICAgIGVsc2UgaWYgKG1lZGlhLmF1ZGlvVHJhY2tzWzJdLmVuYWJsZWQpIHsKLSAg
ICAgICAgZGVidWcoIiIpOwotICAgICAgICBtZWRpYS5yZW1vdmUoKTsKLSAgICAgICAgZmluaXNo
SlNUZXN0KCk7Ci0gICAgfQotfQotCi1mdW5jdGlvbiBkdW1wQXVkaW9UcmFja3NFbmFibGVkU3Rh
dGUoKQotewotICAgIEFycmF5LmZyb20obWVkaWEuYXVkaW9UcmFja3MpLmZvckVhY2goKGF1ZGlv
VHJhY2ssIGluZGV4KSA9PiB7Ci0gICAgICAgIGRlYnVnKGBtZWRpYS5hdWRpb1RyYWNrc1ske2lu
ZGV4fV0uZW5hYmxlZCA9ICR7bWVkaWEuYXVkaW9UcmFja3NbaW5kZXhdLmVuYWJsZWR9YCk7Ci0g
ICAgfSk7Ci19Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFj
a3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQt
aGlkZGVuLXRyYWNrcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDdhZDNmYzE5NmI2NTk5NWYzYTcwNGM3YzIxNzgwZjUzMzI2YWI4NGUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1oaWRkZW4t
dHJhY2tzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLVRoaXMg
dGVzdCBjaGVja3MgdGhhdCB0aGUgdHJhY2tzIHBhbmVsIGRvZXNuJ3Qgc2hvdyBhbnkgdHJhY2sg
YXMgc2VsZWN0ZWQgaWYgYWxsIHRoZSB0ZXh0IHRyYWNrcyBmb3IgYSBtZWRpYSBlbGVtZW50IGFy
ZSBtYXJrZWQgYXMgImhpZGRlbiIuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1Q
QVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZm
ZXJlbnQgZnJvbSBudWxsCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRy
YWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJv
bSAwCi0KLT09PSBJbml0aWFsIHN0YXRlID09PQotCi1beF0gT2ZmCi1bLV0gQXV0byAoUmVjb21t
ZW5kZWQpCi1bLV0gRW5nbGlzaCBTdWJ0aXRsZXMKLVstXSBGcmVuY2ggU3VidGl0bGVzCi1bLV0g
R2VybWFuIFN1YnRpdGxlcwotWy1dIFNwYW5pc2ggU3VidGl0bGVzCi0KLVBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNr
cy1zdXBwb3J0LWhpZGRlbi10cmFja3MuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRy
YWNrcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOWEyYjUzNzY3MTFjZmQ5
MmE4YzRkOWQ5MTgxNmNiZWVkYzBlODNmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxib2R5Pgot
PHZpZGVvIHNyYz0iLi4vLi4vLi4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9z
aXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiA2NDBweDsgaGVpZ2h0OiAz
NjBweDsiIGNvbnRyb2xzIGF1dG9wbGF5PjwvdmlkZW8+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24o
YFRoaXMgdGVzdCBjaGVja3MgdGhhdCB0aGUgdHJhY2tzIHBhbmVsIGRvZXNuJ3Qgc2hvdyBhbnkg
dHJhY2sgYXMgc2VsZWN0ZWQgaWYgYWxsIHRoZSB0ZXh0IHRyYWNrcyBmb3IgYSBtZWRpYSBlbGVt
ZW50IGFyZSBtYXJrZWQgYXMgImhpZGRlbiIuYCk7Ci0KLWNvbnN0IG1lZGlhID0gZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJu
YWxzLnNoYWRvd1Jvb3QobWVkaWEpOwotCi1tZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5Iiwg
KCkgPT4gewotICAgIG1lZGlhLnBhdXNlKCk7Ci0KLSAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQo
InNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9
PiB7Ci0gICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVj
dG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIs
IHJ1blRlc3QpOwotICAgIH0pOwotfSk7Ci0KLWFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQotewot
ICAgIC8vIFN0YXJ0IGJ5IG1ha2luZyBzdXJlIGFsbCB0cmFja3MgYXJlIG1hcmtlZCBhcyAiaGlk
ZGVuIi4KLSAgICBBcnJheS5mcm9tKG1lZGlhLnRleHRUcmFja3MpLmZvckVhY2godHJhY2sgPT4g
dHJhY2subW9kZSA9ICJoaWRkZW4iKTsKLQotICAgIC8vIE5leHQsIGJyaW5nIHVwIHRoZSB0cmFj
a3MgbWVudSBieSBjbGlja2luZyBvbiB0aGUgdHJhY2tzIGJ1dHRvbi4KLSAgICBhd2FpdCBjbGlj
a09uVHJhY2tzQnV0dG9uKCk7Ci0gICAgLy8gRHVtcCB0aGUgc3RhdGUgb2YgdGhlIHRyYWNrcyBt
ZW51IGZvciB0ZXh0IHRyYWNrcywgd2hpY2ggc2hvdWxkIHNob3cgdGhlIGZpcnN0IGVtYmVkZGVk
IHRleHQgdHJhY2sgYXMgc2VsZWN0ZWQuCi0gICAgZHVtcFRleHRUcmFja3NMaXN0Tm9kZXMoIklu
aXRpYWwgc3RhdGUiKTsKLQotICAgIGZpbmlzaFRlc3QoKTsKLX0KLQotZnVuY3Rpb24gdGV4dFRy
YWNrc0xpc3ROb2RlcygpCi17Ci0gICAgcmV0dXJuIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFs
bCgiLnRyYWNrcy1wYW5lbCBzZWN0aW9uOmxhc3Qtb2YtdHlwZSA+IHVsID4gbGkiKTsKLX0KLQot
ZnVuY3Rpb24gZHVtcFRleHRUcmFja3NMaXN0Tm9kZXMobXNnKQotewotICAgIGRlYnVnKCIiKTsK
LSAgICBkZWJ1ZyhgPT09ICR7bXNnfSA9PT1gKTsKLSAgICBkZWJ1ZygiIik7Ci0gICAgQXJyYXku
ZnJvbSh0ZXh0VHJhY2tzTGlzdE5vZGVzKCkpLmZvckVhY2gobGkgPT4gZGVidWcoYCR7bGkuY2xh
c3NMaXN0LmNvbnRhaW5zKCJzZWxlY3RlZCIpID8gIlt4XSIgOiAiWy1dIn0gJHtsaS50ZXh0Q29u
dGVudH1gKSk7Ci19Ci0KLWFzeW5jIGZ1bmN0aW9uIGNsaWNrT25UcmFja3NCdXR0b24oKQotewot
ICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlcXVlc3RBbmltYXRpb25GcmFtZSk7Ci0gICAgY2xpY2tP
bkVsZW1lbnQoc2hhZG93Um9vdC5sYXN0Q2hpbGQucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNr
cyIpKTsKLSAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpOwotfQot
Ci1mdW5jdGlvbiBjbGlja09uRWxlbWVudChlbGVtZW50KQotewotICAgIGNvbnN0IGJvdW5kcyA9
IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VN
b3ZlVG8oYm91bmRzLmxlZnQgKyAxLCBib3VuZHMudG9wICsgMSk7Ci0gICAgZXZlbnRTZW5kZXIu
bW91c2VEb3duKCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotfQotCi1mdW5jdGlvbiBm
aW5pc2hUZXN0KCkKLXsKLSAgICBkZWJ1ZygiIik7Ci0gICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAg
ZmluaXNoSlNUZXN0KCk7Ci19Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L21hYy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNr
cy1zdXBwb3J0LW9mZi10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZmIzZTMxODA1ZGVlODI3ZjhiN2U4YWYxMWEwZmJiOTY1MDVlODE3ZC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBw
b3J0LW9mZi10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE0ICsw
LDAgQEAKLUVuc3VyZSB3ZSBoYXZlIHRoZSBPZmYgdGV4dCB0cmFjayBzZWxlY3RlZCBieSBkZWZh
dWx0LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBzaGFkb3dSb290LnF1
ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAot
UEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAotUEFTUyBzaGFkb3dS
b290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20g
bnVsbAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpLnNlbGVjdGVkJylbMV0u
dGV4dENvbnRlbnQgaXMgIk9mZiIKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQot
Ci1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQt
dHJhY2suaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJhY2suaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjYwODA4Nzg0NDU1MGQ5N2U3Y2FjODdhYjI2ZDUzZGQ2
ODQxY2QzYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFj
L3RyYWNrcy1zdXBwb3J0LW9mZi10ZXh0LXRyYWNrLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwz
MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3Nj
cmlwdD4KLTxib2R5PgotPHZpZGVvIHNyYz0iLi4vLi4vLi4vY29udGVudC9DQytTdWJ0aXRsZXMu
bW92IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiA2
NDBweDsgaGVpZ2h0OiAzNjBweDsiIGNvbnRyb2xzIGF1dG9wbGF5PjwvdmlkZW8+Ci08c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
LQotZGVzY3JpcHRpb24oIkVuc3VyZSB3ZSBoYXZlIHRoZSBPZmYgdGV4dCB0cmFjayBzZWxlY3Rl
ZCBieSBkZWZhdWx0LiIpOwotCi1jb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
InZpZGVvIik7Ci1jb25zdCBzaGFkb3dSb290ID0gd2luZG93LmludGVybmFscy5zaGFkb3dSb290
KG1lZGlhKTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKLSAgICBt
ZWRpYS5wYXVzZSgpOwotCi0gICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1
ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSIsICJudWxsIiwgKCkgPT4gewotICAgICAgICBz
aG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRy
YWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIiwgIjAiLCAoKSA9PiB7Ci0gICAg
ICAgICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50
cmFja3MiKSk7Ci0gICAgICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3Qu
cXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpIiwgIm51bGwiLCAoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JB
bGwoJ2xpLnNlbGVjdGVkJylbMV0udGV4dENvbnRlbnQiLCAiT2ZmIik7Ci0gICAgICAgICAgICAg
ICAgZGVidWcoIiIpOwotICAgICAgICAgICAgICAgIG1lZGlhLnJlbW92ZSgpOwotICAgICAgICAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAg
IH0pOwotfSk7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFj
a3Mtc3VwcG9ydC1zaG93LWFuZC1wb3B1bGF0ZS1wYW5lbC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNr
cy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDUyZDZjYjE5ODc4ODA1ODljYTBlYzhhZGUwMDA3MTE3YjNh
ZDUwNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3Ry
YWNrcy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDIyICswLDAgQEAKLVNob3dpbmcgYW5kIHBvcHVsYXRpbmcgdGhlIHRyYWNr
cyBwYW5lbC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUF1ZGlvCi0gIEVuZ2xp
c2ggU291bmQKLSAgRnJlbmNoIFNvdW5kCi0gIFNwYW5pc2ggU291bmQKLQotU3VidGl0bGVzCi0g
IE9mZgotICBBdXRvIChSZWNvbW1lbmRlZCkKLSAgRW5nbGlzaCBTdWJ0aXRsZXMKLSAgRnJlbmNo
IFN1YnRpdGxlcwotICBHZXJtYW4gU3VidGl0bGVzCi0gIFNwYW5pc2ggU3VidGl0bGVzCi0KLVBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBv
cnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLmh0bWwgYi9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3Ry
YWNrcy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGEzYjNhYjdiYWUzMjRiODFiZDFhZjAzYzRjOTUxODM5NmI5MmRkNDgu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mt
c3VwcG9ydC1zaG93LWFuZC1wb3B1bGF0ZS1wYW5lbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NDYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxib2R5PgotPHZpZGVvIHNyYz0iLi4v
Li4vLi4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0id2lkdGg6IDY0MHB4OyBoZWln
aHQ6IDM2MHB4OyIgY29udHJvbHMgYXV0b3BsYXk+PC92aWRlbz4KLTxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlw
dGlvbigiU2hvd2luZyBhbmQgcG9wdWxhdGluZyB0aGUgdHJhY2tzIHBhbmVsLiIpOwotCi1jb25z
dCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Ci1jb25zdCBzaGFkb3dS
b290ID0gd2luZG93LmludGVybmFscy5zaGFkb3dSb290KG1lZGlhKTsKLQotbWVkaWEuYWRkRXZl
bnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKLSAgICBtZWRpYS5wYXVzZSgpOwotICAgIHdpbmRv
dy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewotICAgICAgICBjbGlja09uVHJhY2tzQnV0
dG9uKCk7Ci0gICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewotICAg
ICAgICAgICAgbGlzdENvbnRlbnRzT2ZUcmFja3NQYW5lbCgpOwotICAgICAgICAgICAgbWVkaWEu
cmVtb3ZlKCk7Ci0gICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfSk7Ci0gICAg
fSk7Ci19KTsKLQotZnVuY3Rpb24gY2xpY2tPblRyYWNrc0J1dHRvbigpCi17Ci0gICAgY29uc3Qg
Ym91bmRzID0gc2hhZG93Um9vdC5sYXN0Q2hpbGQucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNr
cyIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRv
KGJvdW5kcy5sZWZ0ICsgMSwgYm91bmRzLnRvcCArIDEpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNl
RG93bigpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLX0KLQotZnVuY3Rpb24gbGlzdENv
bnRlbnRzT2ZUcmFja3NQYW5lbCgpCi17Ci0gICAgZm9yIChsZXQgc2VjdGlvbiBvZiBzaGFkb3dS
b290Lmxhc3RDaGlsZC5xdWVyeVNlbGVjdG9yQWxsKCJzZWN0aW9uIikpIHsKLSAgICAgICAgZGVi
dWcoc2VjdGlvbi5xdWVyeVNlbGVjdG9yKCJoMyIpLnRleHRDb250ZW50KTsKLSAgICAgICAgZm9y
IChsZXQgaXRlbSBvZiBzZWN0aW9uLnF1ZXJ5U2VsZWN0b3JBbGwoImxpIikpCi0gICAgICAgICAg
ICBkZWJ1ZygiICAiICsgaXRlbS50ZXh0Q29udGVudCk7Ci0gICAgICAgIGRlYnVnKCIiKTsKLSAg
ICB9Ci19Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mt
c3VwcG9ydC1zaG93LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNvbnRyb2xzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9t
YWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1hZnRlci1kcmFnZ2luZy1jb250cm9scy1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA5ODQzMGJmMzhmMTI2NjBi
OGVmY2M3OTYxNmVmMTg0YjUxMDg0ZTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFmdGVyLWRyYWdnaW5n
LWNvbnRyb2xzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLVRl
c3RpbmcgdGhlIGRpc3BsYXkgb2YgYSB0cmFja3MgcGFuZWwgYWZ0ZXIgZHJhZ2dpbmcgdGhlIGNv
bnRyb2xzIGJhciBpbiBmdWxsc2NyZWVuLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0K
LQotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi5mdWxsc2NyZWVuJykuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCkgYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKLVBBU1Mgc2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCkgYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQgaXMgc2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCkucmlnaHQKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJyku
c3R5bGUuYm90dG9tIGlzICIxNTFweCIKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1w
YW5lbC1hZnRlci1kcmFnZ2luZy1jb250cm9scy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93
LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNvbnRyb2xzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGZhYmFiOTA1ODU4ZmNhZWY5OGIyOThjZTc3MGY5YjFiNjY4NjY4MTkuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9y
dC1zaG93LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNvbnRyb2xzLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw1OSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij48L3NjcmlwdD4KLTxib2R5PgotPHZpZGVvIHNyYz0iLi4vLi4vLi4vY29udGVudC9DQytTdWJ0
aXRsZXMubW92IiBzdHlsZT0id2lkdGg6IDMyMHB4OyBoZWlnaHQ6IDI0MHB4OyIgY29udHJvbHMg
YXV0b3BsYXk+PC92aWRlbz4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2lu
ZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbigiVGVzdGluZyB0aGUgZGlz
cGxheSBvZiBhIHRyYWNrcyBwYW5lbCBhZnRlciBkcmFnZ2luZyB0aGUgY29udHJvbHMgYmFyIGlu
IGZ1bGxzY3JlZW4uIik7Ci0KLWNvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigi
dmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3Qo
bWVkaWEpOwotCi1tZWRpYS5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRiZWdpbmZ1bGxzY3JlZW4i
LCAoKSA9PiB7Ci0gICAgZGVidWcoIndlYmtpdGJlZ2luZnVsbHNjcmVlbiIpOwotfSk7Ci0KLW1l
ZGlhLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UiLCAoKSA9PiB7Ci0g
ICAgaWYgKCFtZWRpYS53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbikKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAgICAgIGNv
bnN0IGJvdW5kcyA9IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvbnRyb2xzLWJhciIpLmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhi
b3VuZHMubGVmdCArIDExOCwgYm91bmRzLnRvcCArIDEwKTsKLSAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VEb3duKCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGJvdW5kcy5sZWZ0
ICsgNjgsIGJvdW5kcy50b3AgLSA0MCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsK
LQotICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewotICAgICAgICAgICAgY2xp
Y2tPbkJ1dHRvbigidHJhY2tzIiwgKCkgPT4gewotICAgICAgICAgICAgICAgIHJlcXVlc3RBbmlt
YXRpb25GcmFtZSgoKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJzaGFkb3dS
b290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KS5yaWdodCIsICJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCIpCi0gICAgICAgICAgICAgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJyku
c3R5bGUuYm90dG9tIiwgIjE1MXB4Iik7Ci0KLSAgICAgICAgICAgICAgICAgICAgZGVidWcoIiIp
OwotICAgICAgICAgICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsKLSAgICAgICAgICAgICAgICAg
ICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsK
LSAgICAgICAgfSk7Ci0gICAgfSk7Ci19KTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxh
eSIsICgpID0+IHsKLSAgICBtZWRpYS5wYXVzZSgpOwotICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0
aW9uRnJhbWUoKCkgPT4gY2xpY2tPbkJ1dHRvbigiZnVsbHNjcmVlbiIpKTsKLX0pOwotCi1mdW5j
dGlvbiBjbGlja09uQnV0dG9uKG5hbWUsIGNvbnRpbnVhdGlvbikKLXsKLSAgICBzaG91bGRCZWNv
bWVEaWZmZXJlbnQoYHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLiR7bmFtZX0nKS5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKWAsICIwIiwgKCkgPT4gewotICAgICAgICBwcmVzc09uRWxl
bWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoYGJ1dHRvbi4ke25hbWV9YCksIGNvbnRpbnVh
dGlvbik7Ci0gICAgfSk7Ci19Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1bGxzY3JlZW4tZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21h
Yy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1bGxzY3JlZW4tZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MjUzZWEwZmU0MDU5NjkyMTRhODcyN2U1MTllMTYx
YzJmNjc4OTU0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9t
YWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1mdWxsc2NyZWVuLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVNob3dpbmcgdGhlIHRyYWNrcyBwYW5lbCBpbiBm
dWxsc2NyZWVuLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBpbnRlcm5h
bHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcigiYnV0dG9uLmZ1bGxzY3JlZW4iKSBi
ZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAotUEFTUyBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRp
YSkucXVlcnlTZWxlY3RvcigiYnV0dG9uLmZ1bGxzY3JlZW4iKS5nZXRCb3VuZGluZ0NsaWVudFJl
Y3QoKS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAotd2Via2l0ZnVsbHNjcmVlbmNoYW5n
ZSBldmVudCBpcyBmaXJlZAotUEFTUyBpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1v
ZGUobWVkaWEpIGJlY2FtZSBmYWxzZQotUEFTUyBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSku
cXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxs
Ci1QQVNTIGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJidXR0b24u
dHJhY2tzIikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggYmVjYW1lIGRpZmZlcmVudCBm
cm9tIDAKLVBBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoImJ1
dHRvbi50cmFja3MiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCBiZWNhbWUgNTgyCi1Q
QVNTIGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBh
bmVsJykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1MgaW50ZXJuYWxzLnNoYWRvd1Jv
b3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5zdHlsZS5yaWdodCBpcyAi
MjE4cHgiCi1QQVNTIGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCcu
dHJhY2tzLXBhbmVsJykuc3R5bGUuYm90dG9tIGlzICIxMDFweCIKLQotd2Via2l0ZnVsbHNjcmVl
bmNoYW5nZSBldmVudCBpcyBmaXJlZAotUEFTUyBpbnRlcm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRh
dGlvbk1vZGUobWVkaWEpIGJlY2FtZSBmYWxzZQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hv
dy1wYW5lbC1mdWxsc2NyZWVuLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtZnVs
bHNjcmVlbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZTZhYTBkZWUyZjdk
NmNhNTdhZTdkNWRkZWEyODJhZThhYjVlMGFmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1mdWxsc2NyZWVu
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5q
cyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KLTxib2R5PgotPHZpZGVvIHNyYz0i
Li4vLi4vLi4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0id2lkdGg6IDMyMHB4OyBo
ZWlnaHQ6IDI0MHB4OyIgY29udHJvbHMgYXV0b3BsYXk+PC92aWRlbz4KLTxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNj
cmlwdGlvbigiU2hvd2luZyB0aGUgdHJhY2tzIHBhbmVsIGluIGZ1bGxzY3JlZW4uIik7Ci0KLXNl
dFRpbWVvdXQoKCkgPT4gewotICAgIGRlYnVnKCJGQUlMOiBkaWQgbm90IGVuZCBmYXN0IGVub3Vn
aCIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSwgMTAwMDApOwotCi1pbnRlcm5hbHMuc2V0TW9j
a1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQodHJ1ZSk7Ci0KLWNvbnN0IG1lZGlhID0gZG9j
dW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigi
d2Via2l0ZnVsbHNjcmVlbmNoYW5nZSIsICgpID0+IHsKLSAgICBkZWJ1Zygid2Via2l0ZnVsbHNj
cmVlbmNoYW5nZSBldmVudCBpcyBmaXJlZCIpOwotICAgIHNob3VsZEJlY29tZUVxdWFsKCJpbnRl
cm5hbHMuaXNDaGFuZ2luZ1ByZXNlbnRhdGlvbk1vZGUobWVkaWEpIiwgImZhbHNlIiwgKCkgPT4g
ewotICAgICAgICBpZiAoIW1lZGlhLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuKSB7Ci0gICAg
ICAgICAgICBtZWRpYS5yZW1vdmUoKTsKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAg
ICAgICB9Ci0KLSAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KGBpbnRlcm5hbHMuc2hhZG93
Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpYCwgIm51bGwiLCAoKSA9
PiB7Ci0gICAgICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoYGludGVybmFscy5zaGFkb3dS
b290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikuZ2V0Qm91bmRpbmdDbGll
bnRSZWN0KCkud2lkdGhgLCAiMCIsICgpID0+IHsKLSAgICAgICAgICAgICAgICBzaG91bGRCZWNv
bWVFcXVhbChgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoImJ1dHRv
bi50cmFja3MiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodGAsICI1ODIiLCBhc3luYyAo
KSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0
ZSgpOwotICAgICAgICAgICAgICAgICAgICBwcmVzc09uRWxlbWVudChpbnRlcm5hbHMuc2hhZG93
Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKTsKLSAgICAgICAgICAg
ICAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KGBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRp
YSkucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpYCwgIm51bGwiLCAoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImludGVybmFscy5zaGFk
b3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykuc3R5bGUucmlnaHQi
LCAiMjE4cHgiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFu
ZWwnKS5zdHlsZS5ib3R0b20iLCAiMTAxcHgiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGRl
YnVnKCIiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1lZGlhLndlYmtpdEV4aXRGdWxsc2Ny
ZWVuKCk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOwotICAg
ICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotfSk7Ci0KLW1lZGlhLmFkZEV2ZW50
TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7Ci0gICAgbWVkaWEucGF1c2UoKTsKLSAgICBzaG91bGRC
ZWNvbWVEaWZmZXJlbnQoYGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9y
KCJidXR0b24uZnVsbHNjcmVlbiIpYCwgIm51bGwiLCAoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJl
Y29tZURpZmZlcmVudChgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3Io
ImJ1dHRvbi5mdWxsc2NyZWVuIikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGhgLCAiMCIs
ICgpID0+IHsKLSAgICAgICAgICAgIHByZXNzT25FbGVtZW50KGludGVybmFscy5zaGFkb3dSb290
KG1lZGlhKS5xdWVyeVNlbGVjdG9yKGBidXR0b24uZnVsbHNjcmVlbmApKTsKLSAgICAgICAgfSk7
Ci0gICAgfSk7Ci19KTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFj
L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1
dHRvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtdGhlbi1kb3Vi
bGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDk4YmQ3NzhjMjgyMmY4M2Y0Y2ZlOGUxMzQxNTJmMDdhMjRjMTQ2YWEuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3Vw
cG9ydC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24tZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotRW5zdXJlIHRoYXQgZG91Ymxl
LWNsaWNraW5nIHRoZSB0cmFja3MgYnV0dG9uIHdoZW4gdGhlIHRyYWNrcyBwYW5lbCBtYWtlcyB0
aGUgcGFuZWwgYXBwZWFyIGFnYWluLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQot
TWVkaWEgc3RhcnRlZCBwbGF5aW5nCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0
dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCi1QQVNTIHNoYWRvd1Jvb3Qu
cXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndp
ZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cignLnRyYWNrcy1wYW5lbCcpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCi1QQVNTIHNoYWRv
d1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpIGlzIG5vdCBudWxsCi0KLVBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
bWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tz
LWJ1dHRvbi5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNs
aWNrLW9uLXRyYWNrcy1idXR0b24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NzVlZDA0MmQ0N2NkMWFiMWJhZmEwNjZlYWY5ODRhODY2ZTdjNjNjZC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFu
ZWwtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNDEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlw
dCI+PC9zY3JpcHQ+Ci08Ym9keT4KLTx2aWRlbyBzcmM9Ii4uLy4uLy4uL2NvbnRlbnQvQ0MrU3Vi
dGl0bGVzLm1vdiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3
aWR0aDogNjQwcHg7IGhlaWdodDogMzYwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgot
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJFbnN1cmUgdGhhdCBkb3VibGUtY2xpY2tpbmcgdGhlIHRy
YWNrcyBidXR0b24gd2hlbiB0aGUgdHJhY2tzIHBhbmVsIG1ha2VzIHRoZSBwYW5lbCBhcHBlYXIg
YWdhaW4uIik7Ci0KLWNvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8i
KTsKLWNvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEp
OwotCi1tZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4gewotICAgIG1lZGlhLnBh
dXNlKCk7Ci0KLSAgICBkZWJ1ZygiTWVkaWEgc3RhcnRlZCBwbGF5aW5nIik7Ci0gICAgc2hvdWxk
QmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3Mn
KSIsICJudWxsIiwgKCkgPT4gewotICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRv
d1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpLndpZHRoIiwgIjAiLCAoKSA9PiB7Ci0gICAgICAgICAgICBwcmVzc09uRWxlbWVudChzaGFk
b3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSk7Ci0gICAgICAgICAgICBzaG91
bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5l
bCcpIiwgIm51bGwiLCAoKSA9PiB7Ci0gICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hh
ZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpOwotICAgICAgICAgICAgICAg
IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIHByZXNz
T25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKTsKLSAg
ICAgICAgICAgICAgICAgICAgLy8gR2l2ZSB0aGUgdHJhbnNpdGlvbmVuZCBldmVudCB0aW1lIHRv
IGZpcmUgaWYgaXQgd2VyZSB0byBoYXBwZW4sIHdoaWNoIGl0IHNob3VsZCBub3QuCi0gICAgICAg
ICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAg
c2hvdWxkTm90QmUoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpIiwg
Im51bGwiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIG1lZGlhLnJlbW92ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgZmlu
aXNoSlNUZXN0KCk7Ci0gICAgICAgICAgICAgICAgICAgIH0sIDUwMCk7Ci0gICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19KTsKLQotPC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXRleHQt
dHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBw
b3J0LXRleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVjOGM3MzQ1NjBiZTg4OGUyZTQ4ZTE5ZmU1YWQzZDY1
YzUxOTNhNTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21h
Yy90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGktZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotVGhpcyB0ZXN0IGNoZWNrcyB0
aGF0IHNldHRpbmcgYW4gZW1iZWRkZWQgdGV4dCB0cmFjayBhcyBzZWxlY3RlZCB2aWEgdGhlIEhU
TUxNZWRpYUVsZW1lbnQgSlMgQVBJcyB3aWxsIGNvcnJlY3RseSBzaG93IHRoaXMgdHJhY2sgYXMg
c2VsZWN0ZWQsIGFuZCB0aGF0IHNlbGVjdGluZyB0aGUgIkF1dG9tYXRpYyAoUmVjb21tZW5kZWQp
IiB0cmFjayB3aWxsIHJldmVydCBiYWNrIHRvIHNlbGVjdGluZyB0aGF0IGVudHJ5LgotCi1PbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3Io
J2J1dHRvbi50cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAotUEFTUyBzaGFkb3dS
b290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAotCi09PT0gSW5pdGlhbCBzdGF0ZSA9PT0K
LQotWy1dIE9mZgotWy1dIEF1dG8gKFJlY29tbWVuZGVkKQotW3hdIEVuZ2xpc2ggU3VidGl0bGVz
Ci1bLV0gRnJlbmNoIFN1YnRpdGxlcwotWy1dIEdlcm1hbiBTdWJ0aXRsZXMKLVstXSBTcGFuaXNo
IFN1YnRpdGxlcwotCi09PT0gQWZ0ZXIgcGlja2luZyBhdXRvIHRyYWNrIGludGVyYWN0aXZlbHkg
PT09Ci0KLVstXSBPZmYKLVt4XSBBdXRvIChSZWNvbW1lbmRlZCkKLVstXSBFbmdsaXNoIFN1YnRp
dGxlcwotWy1dIEZyZW5jaCBTdWJ0aXRsZXMKLVstXSBHZXJtYW4gU3VidGl0bGVzCi1bLV0gU3Bh
bmlzaCBTdWJ0aXRsZXMKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNU
IENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxl
Y3RlZC12aWEtbWVkaWEtYXBpLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXRleHQtdHJhY2stc2Vs
ZWN0ZWQtdmlhLW1lZGlhLWFwaS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0
MDIyZWI5NmRmOTQ0ZWYxYTgyM2JlOTFmMWY5MGRkMzliNzMwMDUyLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFj
ay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4OCArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8gc3JjPSIuLi8uLi8uLi9j
b250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6
IDA7IHRvcDogMDsgd2lkdGg6IDY0MHB4OyBoZWlnaHQ6IDM2MHB4OyIgY29udHJvbHMgYXV0b3Bs
YXk+PC92aWRlbz4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbihgVGhpcyB0ZXN0IGNoZWNrcyB0aGF0
IHNldHRpbmcgYW4gZW1iZWRkZWQgdGV4dCB0cmFjayBhcyBzZWxlY3RlZCB2aWEgdGhlIEhUTUxN
ZWRpYUVsZW1lbnQgSlMgQVBJcyB3aWxsIGNvcnJlY3RseSBzaG93IHRoaXMgdHJhY2sgYXMgc2Vs
ZWN0ZWQsIGFuZCB0aGF0IHNlbGVjdGluZyB0aGUgCi0iQXV0b21hdGljIChSZWNvbW1lbmRlZCki
IHRyYWNrIHdpbGwgcmV2ZXJ0IGJhY2sgdG8gc2VsZWN0aW5nIHRoYXQgZW50cnkuYCk7Ci0KLWNv
bnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IHNoYWRv
d1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOwotCi1tZWRpYS5hZGRF
dmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4gewotICAgIG1lZGlhLnBhdXNlKCk7Ci0KLSAgICBz
aG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRy
YWNrcycpIiwgIm51bGwiLCAoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgi
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGll
bnRSZWN0KCkud2lkdGgiLCAiMCIsIHJ1blRlc3QpOwotICAgIH0pOwotfSk7Ci0KLWFzeW5jIGZ1
bmN0aW9uIHJ1blRlc3QoKQotewotICAgIC8vIFN0YXJ0IGJ5IHNlbGVjdGluZyBvbmUgb2YgdGhl
IHRleHQgdHJhY2tzIHVzaW5nIHRoZSBtZWRpYSBKUyBBUEkuCi0gICAgLy8gVGhpcyB3aWxsIGNh
dXNlIHRleHRUcmFja3NEaWRDaGFuZ2UgdG8gYmUgY2FsbGVkIGZvciB0aGUgZmlyc3QgdGltZS4K
LSAgICBtZWRpYS50ZXh0VHJhY2tzWzBdLm1vZGUgPSAic2hvd2luZyI7Ci0KLSAgICAvLyBOZXh0
LCBicmluZyB1cCB0aGUgdHJhY2tzIG1lbnUgYnkgY2xpY2tpbmcgb24gdGhlIHRyYWNrcyBidXR0
b24uCi0gICAgYXdhaXQgY2xpY2tPblRyYWNrc0J1dHRvbigpOwotICAgIC8vIER1bXAgdGhlIHN0
YXRlIG9mIHRoZSB0cmFja3MgbWVudSBmb3IgdGV4dCB0cmFja3MsIHdoaWNoIHNob3VsZCBzaG93
IHRoZSBmaXJzdCBlbWJlZGRlZCB0ZXh0IHRyYWNrIGFzIHNlbGVjdGVkLgotICAgIGR1bXBUZXh0
VHJhY2tzTGlzdE5vZGVzKCJJbml0aWFsIHN0YXRlIik7Ci0gICAgLy8gTm93LCBzZWxlY3QgdGhl
ICJBdXRvbWF0aWMgKFJlY29tbWVuZGVkKSIgdGV4dCB0cmFjay4gCi0gICAgYXdhaXQgY2xpY2tP
blRleHRUcmFja0F0SW5kZXgoMSk7Ci0gICAgLy8gV2FpdCBmb3IgdGhlIHNlbGVjdGlvbiB0byBo
YXZlIGdvbmUgdGhyb3VnaCBhbmQgdGhlIHBhbmVsIHRvIGhhdmUgdHJhbnNpdGlvbmVkIG91dCBv
ZiB2aWV3LgotICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2hhZG93Um9vdC5xdWVy
eVNlbGVjdG9yKCIudHJhY2tzLXBhbmVsIikuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVu
ZCIsIHJlc29sdmUsIHsgb25jZTogdHJ1ZSB9KSk7Ci0KLSAgICAvLyBOb3csIGJyaW5nIHVwIHRo
ZSB0cmFja3MgbWVudSBhZ2FpbiBieSBjbGlja2luZyBvbiB0aGUgdHJhY2tzIGJ1dHRvbi4KLSAg
ICBhd2FpdCBjbGlja09uVHJhY2tzQnV0dG9uKCk7Ci0gICAgLy8gRHVtcCB0aGUgc3RhdGUgb2Yg
dGhlIHRyYWNrcyBtZW51IGZvciB0ZXh0IHRyYWNrcywgd2hpY2ggc2hvdWxkIG5vdyBzaG93ICJB
dXRvbWF0aWMgKFJlY29tbWVuZGVkKSIgYXMgc2VsZWN0ZWQuCi0gICAgZHVtcFRleHRUcmFja3NM
aXN0Tm9kZXMoIkFmdGVyIHBpY2tpbmcgYXV0byB0cmFjayBpbnRlcmFjdGl2ZWx5Iik7Ci0KLSAg
ICBmaW5pc2hUZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIHRleHRUcmFja3NMaXN0Tm9kZXMoKQotewot
ICAgIHJldHVybiBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi50cmFja3MtcGFuZWwgc2Vj
dGlvbjpsYXN0LW9mLXR5cGUgPiB1bCA+IGxpIik7Ci19Ci0KLWZ1bmN0aW9uIGR1bXBUZXh0VHJh
Y2tzTGlzdE5vZGVzKG1zZykKLXsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoYD09PSAke21z
Z30gPT09YCk7Ci0gICAgZGVidWcoIiIpOwotICAgIEFycmF5LmZyb20odGV4dFRyYWNrc0xpc3RO
b2RlcygpKS5mb3JFYWNoKGxpID0+IGRlYnVnKGAke2xpLmNsYXNzTGlzdC5jb250YWlucygic2Vs
ZWN0ZWQiKSA/ICJbeF0iIDogIlstXSJ9ICR7bGkudGV4dENvbnRlbnR9YCkpOwotfQotCi1hc3lu
YyBmdW5jdGlvbiBjbGlja09uVHJhY2tzQnV0dG9uKCkKLXsKLSAgICBhd2FpdCBuZXcgUHJvbWlz
ZShyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpOwotICAgIGNsaWNrT25FbGVtZW50KHNoYWRvd1Jvb3Qu
bGFzdENoaWxkLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSk7Ci0gICAgYXdhaXQgbmV3
IFByb21pc2UocmVxdWVzdEFuaW1hdGlvbkZyYW1lKTsKLX0KLQotZnVuY3Rpb24gY2xpY2tPblRl
eHRUcmFja0F0SW5kZXgoaW5kZXgpCi17Ci0gICAgY2xpY2tPbkVsZW1lbnQodGV4dFRyYWNrc0xp
c3ROb2RlcygpW2luZGV4XSk7Ci19Ci0KLWZ1bmN0aW9uIGNsaWNrT25FbGVtZW50KGVsZW1lbnQp
Ci17Ci0gICAgY29uc3QgYm91bmRzID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsK
LSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhib3VuZHMubGVmdCArIDEsIGJvdW5kcy50b3Ag
KyAxKTsKLSAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICBldmVudFNlbmRlci5tb3Vz
ZVVwKCk7Ci19Ci0KLWZ1bmN0aW9uIGZpbmlzaFRlc3QoKQotewotICAgIGRlYnVnKCIiKTsKLSAg
ICBtZWRpYS5yZW1vdmUoKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLQotPC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbm8tdHJhY2tzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9uby10cmFja3Mt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwNTE0MmQxMjlmMmQ4NTI5ZTBjMzgxM2M1M2I0NWQ0
NmViN2QxNzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbm8tdHJhY2tzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDExIEBACitUZXN0aW5nIHRoZSBUcmFja3NTdXBwb3J0IGJlaGF2aW9yIHdpdGggbm8gdHJh
Y2tzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzaGFkb3dSb290LnF1
ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0
aCBpcyAwCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXN1cHBvcnQvbm8tdHJhY2tzLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbm8tdHJhY2tzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTY4NjY2ZmY1N2Y1ZWI5ZTViZmFlNjE2ZDE2N2Y4YjFmMmQwOGVlNQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC9uby10cmFja3MuaHRtbApAQCAtMCwwICsxLDI3IEBACis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvbWVkaWEtY29udHJvbHMtbG9hZGVyLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwv
c2NyaXB0PgorPGJvZHk+Cis8dmlkZW8gc3JjPSIuLi8uLi9jb250ZW50L3Rlc3QubXA0IiBzdHls
ZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiA0MDBweDsiIGF1
dG9wbGF5IGNvbnRyb2xzIG11dGVkIHBsYXlzaW5saW5lPjwvdmlkZW8+Cis8ZGl2IGlkPSJzaGFk
b3ciPjwvZGl2PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCit3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKCJUZXN0aW5nIHRoZSA8Y29kZT5UcmFj
a3NTdXBwb3J0PC9jb2RlPiBiZWhhdmlvciB3aXRoIG5vIHRyYWNrcy4iKTsKKworY29uc3QgbWVk
aWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOworY29uc3Qgc2hhZG93Um9vdCA9
IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7CisKK21lZGlhLmFkZEV2ZW50TGlz
dGVuZXIoInBsYXkiLCBmdW5jdGlvbigpIHsKKyAgICBtZWRpYS5wYXVzZSgpOworCisgICAgc2hv
dWxkQmUoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5k
aW5nQ2xpZW50UmVjdCgpLndpZHRoIiwgIjAiKTsKKworICAgIGRlYnVnKCIiKTsKKyAgICBtZWRp
YS5yZW1vdmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworCis8L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3Mtc3VwcG9ydC9vZmYtdGV4dC10cmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvb2ZmLXRleHQtdHJh
Y2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyZTBkOTZjYzA3ZThlMTE2ZDM1YWIyNzI1OGUw
MTVjYTJkOTExMjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvb2ZmLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTQgQEAKK0Vuc3VyZSB3ZSBoYXZlIHRoZSBPZmYgdGV4dCB0cmFjayBzZWxl
Y3RlZCBieSBkZWZhdWx0LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBz
aGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50
IGZyb20gbnVsbAorUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3Mn
KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAor
VGFwcGluZyB0cmFja3MgYnV0dG9uLi4uCitQQVNTIGNoZWNrZWRJdGVtcy5sZW5ndGggaXMgMQor
UEFTUyBjaGVja2VkSXRlbXNbMF0udGl0bGUgaXMgIk9mZiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvb2ZmLXRleHQtdHJhY2su
aHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3Vw
cG9ydC9vZmYtdGV4dC10cmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiNzAzYTAwNmE4MGUwYzIxZGZk
MjRmNDE3ZjVhNTg0MDVmOWE0NWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvb2ZmLXRleHQtdHJhY2suaHRt
bApAQCAtMCwwICsxLDQ2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzx2aWRl
byBzcmM9Ii4uLy4uL2NvbnRlbnQvY291bnRpbmctc3VidGl0bGVkLm00diIgc3R5bGU9InBvc2l0
aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDogNDAwcHg7IiBhdXRvcGxheSBj
b250cm9scyBtdXRlZCBwbGF5c2lubGluZT48L3ZpZGVvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiPgorCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Rlc2NyaXB0aW9u
KCJFbnN1cmUgd2UgaGF2ZSB0aGUgT2ZmIHRleHQgdHJhY2sgc2VsZWN0ZWQgYnkgZGVmYXVsdC4i
KTsKKworY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOworY29u
c3Qgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7CisKK2xl
dCBjaGVja2VkSXRlbXMgPSBudWxsOworCittZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5Iiwg
KCkgPT4geworICAgIG1lZGlhLnBhdXNlKCk7CisKKyAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQo
InNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9
PiB7CisgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVj
dG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIs
IGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGRlYnVnKCJUYXBwaW5nIHRyYWNrcyBidXR0b24u
Li4iKTsKKyAgICAgICAgICAgIGxldCBbY29udGV4dG1lbnVdID0gYXdhaXQgUHJvbWlzZS5hbGwo
WworICAgICAgICAgICAgICAgIGdldFRyYWNrc0NvbnRleHRNZW51KCksCisgICAgICAgICAgICAg
ICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tz
IikpLAorICAgICAgICAgICAgXSk7CisgICAgICAgICAgICBsZXQgc3VidGl0bGVzTWVudSA9IGNv
bnRleHRtZW51WzBdLmNoaWxkcmVuLmZpbmQoKHN1Ym1lbnUpID0+IHN1Ym1lbnUudGl0bGUgPT09
ICJTdWJ0aXRsZXMiKTsKKyAgICAgICAgICAgIGlmIChzdWJ0aXRsZXNNZW51LmNoaWxkcmVuPy5s
ZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5jaG9vc2VNZW51QWN0aW9u
KHN1YnRpdGxlc01lbnUudGl0bGUpOworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmRl
bGF5Rm9yKDUwMCk7IC8vIGdpdmUgdGltZSBmb3IgdGhlIFVJTWVudSB0byBhbmltYXRlCisgICAg
ICAgICAgICAgICAgY29udGV4dG1lbnUgPSBbc3VidGl0bGVzTWVudV07CisgICAgICAgICAgICB9
CisgICAgICAgICAgICBjaGVja2VkSXRlbXMgPSBjb250ZXh0bWVudVswXS5jaGlsZHJlbi5maWx0
ZXIoKGl0ZW0pID0+IGl0ZW0uY2hlY2tlZCk7CisgICAgICAgICAgICBzaG91bGRCZSgiY2hlY2tl
ZEl0ZW1zLmxlbmd0aCIsICIxIik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
ImNoZWNrZWRJdGVtc1swXS50aXRsZSIsICJPZmYiKTsKKworICAgICAgICAgICAgbWVkaWEucmVt
b3ZlKCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfSk7
Cit9KTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvc2hvdy1jb250ZXh0bWVu
dS10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9zaG93LWNv
bnRleHRtZW51LXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24tZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjhhZmE3NTA2OGVjMjNkYWUwNTUwZjQ4ZjVlMGZkNDhjY2QyNzRiZWQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXN1cHBvcnQvc2hvdy1jb250ZXh0bWVudS10aGVuLWRvdWJsZS1jbGljay1vbi10cmFj
a3MtYnV0dG9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitFbnN1cmUgdGhhdCBjbGlj
a2luZyB0aGUgdHJhY2tzIGJ1dHRvbiB3aGVuIHRoZSB0cmFja3MgY29udGV4dG1lbnUgaXMgc2hv
d24gbWFrZXMgdGhlIGNvbnRleHRtZW51IGhpZGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJl
Y2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcign
YnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZm
ZXJlbnQgZnJvbSAwCitUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KK0NvbnRleHQgbWVudSBzaG93
bi4KK1RhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLgorQ29udGV4dCBtZW51IGhpZGRlbi4KK1RhcHBp
bmcgdHJhY2tzIGJ1dHRvbi4uLgorQ29udGV4dCBtZW51IHNob3duLgorVGFwcGluZyB0cmFja3Mg
YnV0dG9uLi4uCitDb250ZXh0IG1lbnUgaGlkZGVuLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9zaG93LWNvbnRleHRtZW51LXRo
ZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24uaHRtbCBiL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9zaG93LWNvbnRleHRtZW51LXRo
ZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTAzYjEw
NjMxM2I0NWNhZjNjMWY0ZjE5NTBiNWQzY2NhM2YxZDdjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3Nob3ct
Y29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi5odG1sCkBAIC0w
LDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9t
ZWRpYS1jb250cm9scy11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxib2R5PgorPHZpZGVvIHNyYz0i
Li4vLi4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRl
OyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiA0MDBweDsiIGF1dG9wbGF5IGNvbnRyb2xzIG11dGVk
IHBsYXlzaW5saW5lPjwvdmlkZW8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisK
K3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZGVzY3JpcHRpb24oIkVuc3VyZSB0aGF0
IGNsaWNraW5nIHRoZSB0cmFja3MgYnV0dG9uIHdoZW4gdGhlIHRyYWNrcyBjb250ZXh0bWVudSBp
cyBzaG93biBtYWtlcyB0aGUgY29udGV4dG1lbnUgaGlkZS4iKTsKKworY29uc3QgbWVkaWEgPSBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOworY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRv
dy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7CisKK21lZGlhLmFkZEV2ZW50TGlzdGVuZXIo
InBsYXkiLCAoKSA9PiB7CisgICAgbWVkaWEucGF1c2UoKTsKKworICAgIHNob3VsZEJlY29tZURp
ZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykiLCAibnVs
bCIsICgpID0+IHsKKyAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1
ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0
aCIsICIwIiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgZGVidWcoIlRhcHBpbmcgdHJhY2tz
IGJ1dHRvbi4uLiIpOworICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAg
ICAgICAgIFVJSGVscGVyLndhaXRGb3JDb250ZXh0TWVudVRvU2hvdygpLAorICAgICAgICAgICAg
ICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNr
cyIpKSwKKyAgICAgICAgICAgIF0pOworICAgICAgICAgICAgZGVidWcoIkNvbnRleHQgbWVudSBz
aG93bi4iKTsKKworICAgICAgICAgICAgZGVidWcoIlRhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLiIp
OworICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIFVJSGVs
cGVyLndhaXRGb3JDb250ZXh0TWVudVRvSGlkZSgpLAorICAgICAgICAgICAgICAgIHByZXNzT25F
bGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKSwKKyAgICAg
ICAgICAgIF0pOworICAgICAgICAgICAgZGVidWcoIkNvbnRleHQgbWVudSBoaWRkZW4uIik7CisK
KyAgICAgICAgICAgIGRlYnVnKCJUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4iKTsKKyAgICAgICAg
ICAgIGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBVSUhlbHBlci53YWl0Rm9y
Q29udGV4dE1lbnVUb1Nob3coKSwKKyAgICAgICAgICAgICAgICBwcmVzc09uRWxlbWVudChzaGFk
b3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSksCisgICAgICAgICAgICBdKTsK
KyAgICAgICAgICAgIGRlYnVnKCJDb250ZXh0IG1lbnUgc2hvd24uIik7CisKKyAgICAgICAgICAg
IGRlYnVnKCJUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4iKTsKKyAgICAgICAgICAgIGF3YWl0IFBy
b21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBVSUhlbHBlci53YWl0Rm9yQ29udGV4dE1lbnVU
b0hpZGUoKSwKKyAgICAgICAgICAgICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5
U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSksCisgICAgICAgICAgICBdKTsKKyAgICAgICAgICAg
IGRlYnVnKCJDb250ZXh0IG1lbnUgaGlkZGVuLiIpOworCisgICAgICAgICAgICBtZWRpYS5yZW1v
dmUoKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9KTsK
K30pOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90ZXh0LXRyYWNrLXNlbGVj
dGVkLXZpYS1tZWRpYS1hcGktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1l
ZGlhLWFwaS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWM2MTdkOTFjZmYyNzc3NzZhMDMxMzNj
NDhlYjQ5NzBmZDIyMDdlZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90ZXh0LXRyYWNrLXNlbGVjdGVkLXZp
YS1tZWRpYS1hcGktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAKK1RoaXMgdGVzdCBjaGVj
a3MgdGhhdCBzZXR0aW5nIGFuIGVtYmVkZGVkIHRleHQgdHJhY2sgYXMgc2VsZWN0ZWQgdmlhIHRo
ZSBIVE1MTWVkaWFFbGVtZW50IEpTIEFQSXMgd2lsbCBjb3JyZWN0bHkgc2hvdyB0aGlzIHRyYWNr
IGFzIHNlbGVjdGVkLCBhbmQgdGhhdCBzZWxlY3RpbmcgdGhlICJBdXRvbWF0aWMgKFJlY29tbWVu
ZGVkKSIgdHJhY2sgd2lsbCByZXZlcnQgYmFjayB0byBzZWxlY3RpbmcgdGhhdCBlbnRyeS4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVj
dG9yKCdidXR0b24udHJhY2tzJykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKK1BBU1Mgc2hh
ZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCkud2lkdGggYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKK1NldHRpbmcgbW9kZSB0byAnc2hv
d2luZycgZm9yICdFbmdsaXNoJyB0ZXh0IHRyYWNrIHZpYSBKYXZhU2NyaXB0Li4uCitUYXBwaW5n
IHRyYWNrcyBidXR0b24uLi4KK1BBU1MgY29udGV4dG1lbnVJdGVtKCdFbmdsaXNoJykuY2hlY2tl
ZCBpcyB0cnVlCitQQVNTIGNvbnRleHRtZW51SXRlbSgnRnJlbmNoJykuY2hlY2tlZCBpcyB1bmRl
ZmluZWQuCitTZWxlY3RpbmcgJ0ZyZW5jaCcgdGV4dCB0cmFjay4uLgorUEFTUyBzdWJ0aXRsZVRy
YWNrKCdlbicpLm1vZGUgaXMgJ2Rpc2FibGVkJworUEFTUyBzdWJ0aXRsZVRyYWNrKCdmcicpLm1v
ZGUgaXMgJ3Nob3dpbmcnCitUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KK1BBU1MgY29udGV4dG1l
bnVJdGVtKCdFbmdsaXNoJykuY2hlY2tlZCBpcyB1bmRlZmluZWQuCitQQVNTIGNvbnRleHRtZW51
SXRlbSgnRnJlbmNoJykuY2hlY2tlZCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RleHQtdHJhY2stc2VsZWN0ZWQt
dmlhLW1lZGlhLWFwaS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1zdXBwb3J0L3RleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjBhZmMxMzNkNGUzZDhlNjA5OTgxNTM0M2JjYTIxZmU4NThlYjRjMjUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXN1cHBvcnQvdGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLmh0bWwKQEAg
LTAsMCArMSw4MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8dmlkZW8gc3Jj
PSIuLi8uLi9jb250ZW50L2NvdW50aW5nLXN1YnRpdGxlZC5tNHYiIHN0eWxlPSJwb3NpdGlvbjog
YWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDQwMHB4OyIgYXV0b3BsYXkgY29udHJv
bHMgbXV0ZWQgcGxheXNpbmxpbmU+PC92aWRlbz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij4KKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitkZXNjcmlwdGlvbihgVGhp
cyB0ZXN0IGNoZWNrcyB0aGF0IHNldHRpbmcgYW4gZW1iZWRkZWQgdGV4dCB0cmFjayBhcyBzZWxl
Y3RlZCB2aWEgdGhlIEhUTUxNZWRpYUVsZW1lbnQgSlMgQVBJcyB3aWxsIGNvcnJlY3RseSBzaG93
IHRoaXMgdHJhY2sgYXMgc2VsZWN0ZWQsIGFuZCB0aGF0IHNlbGVjdGluZyB0aGUgCisiQXV0b21h
dGljIChSZWNvbW1lbmRlZCkiIHRyYWNrIHdpbGwgcmV2ZXJ0IGJhY2sgdG8gc2VsZWN0aW5nIHRo
YXQgZW50cnkuYCk7CisKK2NvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigidmlk
ZW8iKTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVk
aWEpOworCitsZXQgY29udGV4dG1lbnUgPSBudWxsOworCitmdW5jdGlvbiBzdWJ0aXRsZVRyYWNr
KGxhbmd1YWdlKSB7CisgICAgcmV0dXJuIEFycmF5LmZyb20obWVkaWEudGV4dFRyYWNrcykuZmlu
ZCgodGV4dFRyYWNrKSA9PiB0ZXh0VHJhY2sua2luZCA9PT0gInN1YnRpdGxlcyIgJiYgdGV4dFRy
YWNrLmxhbmd1YWdlID09PSBsYW5ndWFnZSk7Cit9CisKK2Z1bmN0aW9uIGNvbnRleHRtZW51SXRl
bSh0aXRsZSkgeworICAgIHJldHVybiBjb250ZXh0bWVudVswXS5jaGlsZHJlbi5maW5kKChpdGVt
KSA9PiBpdGVtLnRpdGxlID09PSB0aXRsZSk7Cit9CisKK21lZGlhLmFkZEV2ZW50TGlzdGVuZXIo
InBsYXkiLCAoKSA9PiB7CisgICAgbWVkaWEucGF1c2UoKTsKKworICAgIHNob3VsZEJlY29tZURp
ZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykiLCAibnVs
bCIsICgpID0+IHsKKyAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1
ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0
aCIsICIwIiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgZGVidWcoIlNldHRpbmcgbW9kZSB0
byAnc2hvd2luZycgZm9yICdFbmdsaXNoJyB0ZXh0IHRyYWNrIHZpYSBKYXZhU2NyaXB0Li4uIik7
CisgICAgICAgICAgICBzdWJ0aXRsZVRyYWNrKCJlbiIpLm1vZGUgPSAic2hvd2luZyI7CisKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiVGFwcGluZyB0cmFja3MgYnV0dG9u
Li4uIik7CisgICAgICAgICAgICAgICAgW2NvbnRleHRtZW51XSA9IGF3YWl0IFByb21pc2UuYWxs
KFsKKyAgICAgICAgICAgICAgICAgICAgZ2V0VHJhY2tzQ29udGV4dE1lbnUoKSwKKyAgICAgICAg
ICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0
b24udHJhY2tzIikpLAorICAgICAgICAgICAgICAgIF0pOworICAgICAgICAgICAgICAgIGxldCBz
dWJ0aXRsZXNNZW51ID0gY29udGV4dG1lbnVbMF0uY2hpbGRyZW4uZmluZCgoc3VibWVudSkgPT4g
c3VibWVudS50aXRsZSA9PT0gIlN1YnRpdGxlcyIpOworICAgICAgICAgICAgICAgIGlmIChzdWJ0
aXRsZXNNZW51LmNoaWxkcmVuPy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgYXdhaXQg
VUlIZWxwZXIuY2hvb3NlTWVudUFjdGlvbihzdWJ0aXRsZXNNZW51LnRpdGxlKTsKKyAgICAgICAg
ICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuZGVsYXlGb3IoNTAwKTsgLy8gZ2l2ZSB0aW1lIGZv
ciB0aGUgVUlNZW51IHRvIGFuaW1hdGUKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dG1lbnUg
PSBbc3VidGl0bGVzTWVudV07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNo
b3VsZEJlVHJ1ZSgiY29udGV4dG1lbnVJdGVtKCdFbmdsaXNoJykuY2hlY2tlZCIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0bWVudUl0ZW0oJ0ZyZW5jaCcpLmNo
ZWNrZWQiKTsKKworICAgICAgICAgICAgICAgIGRlYnVnKCJTZWxlY3RpbmcgJ0ZyZW5jaCcgdGV4
dCB0cmFjay4uLiIpOworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmNob29zZU1lbnVB
Y3Rpb24oIkZyZW5jaCIpOworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JD
b250ZXh0TWVudVRvSGlkZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzaG91bGRC
ZSgic3VidGl0bGVUcmFjaygnZW4nKS5tb2RlIiwgIidkaXNhYmxlZCciKTsKKyAgICAgICAgICAg
IHNob3VsZEJlKCJzdWJ0aXRsZVRyYWNrKCdmcicpLm1vZGUiLCAiJ3Nob3dpbmcnIik7CisKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiVGFwcGluZyB0cmFja3MgYnV0dG9u
Li4uIik7CisgICAgICAgICAgICAgICAgW2NvbnRleHRtZW51XSA9IGF3YWl0IFByb21pc2UuYWxs
KFsKKyAgICAgICAgICAgICAgICAgICAgZ2V0VHJhY2tzQ29udGV4dE1lbnUoKSwKKyAgICAgICAg
ICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0
b24udHJhY2tzIikpLAorICAgICAgICAgICAgICAgIF0pOworICAgICAgICAgICAgICAgIGxldCBz
dWJ0aXRsZXNNZW51ID0gY29udGV4dG1lbnVbMF0uY2hpbGRyZW4uZmluZCgoc3VibWVudSkgPT4g
c3VibWVudS50aXRsZSA9PT0gIlN1YnRpdGxlcyIpOworICAgICAgICAgICAgICAgIGlmIChzdWJ0
aXRsZXNNZW51LmNoaWxkcmVuPy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgYXdhaXQg
VUlIZWxwZXIuY2hvb3NlTWVudUFjdGlvbihzdWJ0aXRsZXNNZW51LnRpdGxlKTsKKyAgICAgICAg
ICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuZGVsYXlGb3IoNTAwKTsgLy8gZ2l2ZSB0aW1lIGZv
ciB0aGUgVUlNZW51IHRvIGFuaW1hdGUKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dG1lbnUg
PSBbc3VidGl0bGVzTWVudV07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNo
b3VsZEJlVW5kZWZpbmVkKCJjb250ZXh0bWVudUl0ZW0oJ0VuZ2xpc2gnKS5jaGVja2VkIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJjb250ZXh0bWVudUl0ZW0oJ0ZyZW5jaCcpLmNo
ZWNrZWQiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7Cisg
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9KTsKKwor
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtYXVkaW8tdHJh
Y2tzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1hdWRpby10cmFja3MtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOWE0N2RiOGJlMWU2ODhjYjNhM2Q3Yjc3
MDk0NzQ0YTZhMTZmMmU5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3Vw
cG9ydC90cmFja3Mtc3VwcG9ydC1hdWRpby10cmFja3MtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMTUgKzAsMCBAQAotVGVzdGluZyB0aGUgVHJhY2tzU3VwcG9ydCBiZWhhdmlvciB3
aXRoIGF1ZGlvIHRyYWNrcy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVRoZSB0
cmFja3MgYnV0dG9uIHNob3VsZCBiZSBkaXNhYmxlZCBpbml0aWFsbHkgYXMgd2Ugd2FpdCBmb3Ig
bWV0YWRhdGEgYW5kIGF1ZGlvIHRyYWNrcyB0byBiZSBhZGRlZC4KLVBBU1MgbWVkaWFDb250cm9s
bGVyLmNvbnRyb2xzLnRyYWNrc0J1dHRvbi5lbmFibGVkIGlzIGZhbHNlCi0KLUV2ZW50dWFsbHkg
dGhlIGF1ZGlvIHRyYWNrcyB3aWxsIGJlIGFkZGVkIGFuZCB0aGUgdHJhY2tzIGJ1dHRvbiB3aWxs
IGJlIGVuYWJsZWQuCi1QQVNTIG1lZGlhQ29udHJvbGxlci5jb250cm9scy50cmFja3NCdXR0b24u
ZW5hYmxlZCBiZWNhbWUgdHJ1ZQotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0K
LVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LWF1ZGlvLXRyYWNrcy5o
dG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L3RyYWNrcy1zdXBwb3J0LWF1ZGlvLXRyYWNrcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA3ODc4NmFjNDhiMjljZDZiMzI4NTFiYzkyMGM3YmZiZDdkODY1ZDQ4Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1h
dWRpby10cmFja3MuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy1sb2FkZXIuanMiIHR5cGU9InRleHQv
amF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08Ym9keT4KLTx2aWRlbyBzcmM9Ii4uLy4uL2NvbnRlbnQv
YXVkaW8tdHJhY2tzLm1wNCIgc3R5bGU9IndpZHRoOiAzMjBweDsgaGVpZ2h0OiAyNDBweDsiIGNv
bnRyb2xzPjwvdmlkZW8+Ci08ZGl2IGlkPSJzaGFkb3ciPjwvZGl2PgotPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2Ny
aXB0aW9uKCJUZXN0aW5nIHRoZSA8Y29kZT5UcmFja3NTdXBwb3J0PC9jb2RlPiBiZWhhdmlvciB3
aXRoIGF1ZGlvIHRyYWNrcy4iKTsKLQotY29uc3Qgc2hhZG93Um9vdCA9IGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoImRpdiNzaGFkb3ciKS5hdHRhY2hTaGFkb3coeyBtb2RlOiAib3BlbiIgfSk7Ci1j
b25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Ci1jb25zdCBtZWRp
YUNvbnRyb2xsZXIgPSBjcmVhdGVDb250cm9scyhzaGFkb3dSb290LCBtZWRpYSwgbnVsbCk7Ci0K
LWRlYnVnKCJUaGUgdHJhY2tzIGJ1dHRvbiBzaG91bGQgYmUgZGlzYWJsZWQgaW5pdGlhbGx5IGFz
IHdlIHdhaXQgZm9yIG1ldGFkYXRhIGFuZCBhdWRpbyB0cmFja3MgdG8gYmUgYWRkZWQuIik7Ci1z
aG91bGRCZUZhbHNlKCJtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMudHJhY2tzQnV0dG9uLmVuYWJs
ZWQiKTsKLQotZGVidWcoIiIpOwotZGVidWcoIkV2ZW50dWFsbHkgdGhlIGF1ZGlvIHRyYWNrcyB3
aWxsIGJlIGFkZGVkIGFuZCB0aGUgdHJhY2tzIGJ1dHRvbiB3aWxsIGJlIGVuYWJsZWQuIik7Ci1z
aG91bGRCZWNvbWVFcXVhbCgibWVkaWFDb250cm9sbGVyLmNvbnRyb2xzLnRyYWNrc0J1dHRvbi5l
bmFibGVkIiwgInRydWUiLCAoKSA9PiB7Ci0gICAgZGVidWcoIiIpOwotICAgIHNoYWRvd1Jvb3Qu
aG9zdC5yZW1vdmUoKTsKLSAgICBtZWRpYS5yZW1vdmUoKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsK
LX0pOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1j
YXB0aW9ucy1vZmZzZXQtd2l0aC1jb250cm9scy1iYXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBw
b3J0LWNhcHRpb25zLW9mZnNldC13aXRoLWNvbnRyb2xzLWJhci1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE5YTk0OTczMzFlZmM0MjExMjM4ZDllMTVmYTM1Zjkw
YWJhYjM2ZjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3Ry
YWNrcy1zdXBwb3J0LWNhcHRpb25zLW9mZnNldC13aXRoLWNvbnRyb2xzLWJhci1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1FbnN1cmUgdGhhdCB0aGUgY2FwdGlv
bnMgY29udGFpbmVyIGFjY291bnRzIGZvciB0aGUgY29udHJvc2wgYmFyIHdoZW4gdmlzaWJsZS4K
LQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShz
aGFkb3dSb290Lmxhc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQpLmhlaWdodCBpcyAi
Y2FsYygxMDAlIC0gMzdweCkiCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRF
U1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LWNhcHRpb25zLW9mZnNldC13
aXRoLWNvbnRyb2xzLWJhci5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LWNhcHRpb25zLW9mZnNldC13aXRo
LWNvbnRyb2xzLWJhci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NzUzNGU2
NTQ2NDg3MzI1N2FjOWRiMmMxMTZjM2IzYTc5MzMzMmVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1jYXB0aW9ucy1vZmZzZXQtd2l0
aC1jb250cm9scy1iYXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0
aWxzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8g
c3JjPSIuLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJwb3NpdGlvbjogYWJz
b2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDY0MHB4OyBoZWlnaHQ6IDM2MHB4OyIgY29u
dHJvbHMgYXV0b3BsYXk+PC92aWRlbz4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
LQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbigiRW5zdXJlIHRo
YXQgdGhlIGNhcHRpb25zIGNvbnRhaW5lciBhY2NvdW50cyBmb3IgdGhlIGNvbnRyb3NsIGJhciB3
aGVuIHZpc2libGUuIik7Ci0KLWNvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigi
dmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3Qo
bWVkaWEpOwotCi1tZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4gewotICAgIG1l
ZGlhLnBhdXNlKCk7Ci0KLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldENvbXB1dGVkU3R5
bGUoc2hhZG93Um9vdC5sYXN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkKS5oZWlnaHQi
LCAiY2FsYygxMDAlIC0gMzdweCkiKTsKLSAgICBtZWRpYS5yZW1vdmUoKTsKLSAgICBmaW5pc2hK
U1Rlc3QoKTsKLX0pOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mt
c3VwcG9ydC1uby10cmFja3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LW5vLXRyYWNrcy1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJjNDRjNzg1ZGYxYTUw
ZTBhMWY5OTBjNzZhYjQ1OGU1NzFmNDkyYTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LW5vLXRyYWNrcy1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi1UZXN0aW5nIHRoZSBUcmFja3NTdXBwb3J0IGJl
aGF2aW9yIHdpdGggbm8gdHJhY2tzLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQot
UEFTUyBtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMudHJhY2tzQnV0dG9uLmVuYWJsZWQgaXMgZmFs
c2UKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1uby10cmFja3MuaHRtbCBiL0xheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1u
by10cmFja3MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTAyZWI0YjYyNzJl
MWUyZmFmYWNjNGJhOWNhNjAxN2Y5YTRmZWQwMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtbm8tdHJhY2tzLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwyNiArMCwwIEBACi08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEt
Y29udHJvbHMtbG9hZGVyLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPGJv
ZHk+Ci08dmlkZW8gc3JjPSIuLi8uLi9jb250ZW50L3Rlc3QubXA0IiBzdHlsZT0id2lkdGg6IDMy
MHB4OyBoZWlnaHQ6IDI0MHB4OyI+PC92aWRlbz4KLTxkaXYgaWQ9InNoYWRvdyI+PC9kaXY+Ci08
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKLQotZGVzY3JpcHRpb24oIlRlc3RpbmcgdGhlIDxjb2RlPlRyYWNrc1N1cHBvcnQ8L2Nv
ZGU+IGJlaGF2aW9yIHdpdGggbm8gdHJhY2tzLiIpOwotCi1jb25zdCBzaGFkb3dSb290ID0gZG9j
dW1lbnQucXVlcnlTZWxlY3RvcigiZGl2I3NoYWRvdyIpLmF0dGFjaFNoYWRvdyh7IG1vZGU6ICJv
cGVuIiB9KTsKLWNvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsK
LWNvbnN0IG1lZGlhQ29udHJvbGxlciA9IGNyZWF0ZUNvbnRyb2xzKHNoYWRvd1Jvb3QsIG1lZGlh
LCBudWxsKTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVkbWV0YWRhdGEiLCBmdW5j
dGlvbigpIHsKLSAgICBzaG91bGRCZUZhbHNlKCJtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMudHJh
Y2tzQnV0dG9uLmVuYWJsZWQiKTsKLSAgICBkZWJ1ZygiIik7Ci0gICAgc2hhZG93Um9vdC5ob3N0
LnJlbW92ZSgpOwotICAgIG1lZGlhLnJlbW92ZSgpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7
Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXRleHQt
dHJhY2tzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrcy1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDViOTNmNTYwODlkZjJmNmI1NTEzMWU3
MmQ2ZDQ0Mjc2MjU2Y2U1ZjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1z
dXBwb3J0L3RyYWNrcy1zdXBwb3J0LXRleHQtdHJhY2tzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDE1ICswLDAgQEAKLVRlc3RpbmcgdGhlIFRyYWNrc1N1cHBvcnQgYmVoYXZpb3Ig
d2l0aCB0ZXh0IHRyYWNrcy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVRoZSB0
cmFja3MgYnV0dG9uIHNob3VsZCBiZSBkaXNhYmxlZCBpbml0aWFsbHkgYXMgd2Ugd2FpdCBmb3Ig
bWV0YWRhdGEgYW5kIHRleHQgdHJhY2tzIHRvIGJlIGFkZGVkLgotUEFTUyBtZWRpYUNvbnRyb2xs
ZXIuY29udHJvbHMudHJhY2tzQnV0dG9uLmVuYWJsZWQgaXMgZmFsc2UKLQotRXZlbnR1YWxseSB0
aGUgdGV4dCB0cmFja3Mgd2lsbCBiZSBhZGRlZCBhbmQgdGhlIHRyYWNrcyBidXR0b24gd2lsbCBi
ZSBlbmFibGVkLgotUEFTUyBtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMudHJhY2tzQnV0dG9uLmVu
YWJsZWQgYmVjYW1lIHRydWUKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1U
RVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrcy5odG1s
IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L3RyYWNrcy1zdXBwb3J0LXRleHQtdHJhY2tzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDUxNzk2NmQ3MzcyYjhhZTFiYWIzOGZiMDc5MzA1MDI0Y2NkOGJiMGIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXRleHQt
dHJhY2tzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtbG9hZGVyLmpzIiB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8gc3JjPSIuLi8uLi9jb250ZW50L2NvdW50
aW5nLXN1YnRpdGxlZC5tNHYiIHN0eWxlPSJ3aWR0aDogMzIwcHg7IGhlaWdodDogMjQwcHg7IiBw
cmVsb2FkPSJwcmVsb2FkIiBjb250cm9scz48L3ZpZGVvPgotPGRpdiBpZD0ic2hhZG93Ij48L2Rp
dj4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbigiVGVzdGluZyB0aGUgPGNvZGU+VHJhY2tzU3VwcG9y
dDwvY29kZT4gYmVoYXZpb3Igd2l0aCB0ZXh0IHRyYWNrcy4iKTsKLQotY29uc3Qgc2hhZG93Um9v
dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRpdiNzaGFkb3ciKS5hdHRhY2hTaGFkb3coeyBt
b2RlOiAib3BlbiIgfSk7Ci1jb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZp
ZGVvIik7Ci1jb25zdCBtZWRpYUNvbnRyb2xsZXIgPSBjcmVhdGVDb250cm9scyhzaGFkb3dSb290
LCBtZWRpYSwgbnVsbCk7Ci0KLWRlYnVnKCJUaGUgdHJhY2tzIGJ1dHRvbiBzaG91bGQgYmUgZGlz
YWJsZWQgaW5pdGlhbGx5IGFzIHdlIHdhaXQgZm9yIG1ldGFkYXRhIGFuZCB0ZXh0IHRyYWNrcyB0
byBiZSBhZGRlZC4iKTsKLXNob3VsZEJlRmFsc2UoIm1lZGlhQ29udHJvbGxlci5jb250cm9scy50
cmFja3NCdXR0b24uZW5hYmxlZCIpOwotCi1kZWJ1ZygiIik7Ci1kZWJ1ZygiRXZlbnR1YWxseSB0
aGUgdGV4dCB0cmFja3Mgd2lsbCBiZSBhZGRlZCBhbmQgdGhlIHRyYWNrcyBidXR0b24gd2lsbCBi
ZSBlbmFibGVkLiIpOwotc2hvdWxkQmVjb21lRXF1YWwoIm1lZGlhQ29udHJvbGxlci5jb250cm9s
cy50cmFja3NCdXR0b24uZW5hYmxlZCIsICJ0cnVlIiwgKCkgPT4gewotICAgIGRlYnVnKCIiKTsK
LSAgICBzaGFkb3dSb290Lmhvc3QucmVtb3ZlKCk7Ci0gICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAg
ZmluaXNoSlNUZXN0KCk7Ci19KTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGVmN2ZkZWIzYzg4NzA1M2MxOTdl
YTVkZWQyNDYwN2IzODIyZGI2ZjQuLjg3ODE1YTAxOGUwMDdjOThkYjk1ZWI3ZDQyNThlYTIxY2Vk
NWIzOTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0y
OTQzLDcgKzI5NDMsNiBAQCBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJv
bGxlci9tZWRpYS1jb250cm9sbGVyLWF1dG8taGlkZS1tb3VzZS1sZQogbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xsZXIvbWVkaWEtY29udHJvbGxlci1hdXRvLWhpZGUt
cmV3aW5kLXdpdGgtbW91c2UtZW50ZXIuaHRtbCBbIFNraXAgXQogbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL21lZGlhLWNvbnRyb2xsZXIvbWVkaWEtY29udHJvbGxlci1jbGljay1vbi12aWRl
by1iYWNrZ3JvdW5kLXNob3VsZC1wYXVzZS1mdWxsc2NyZWVuLmh0bWwgWyBTa2lwIF0KIG1lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXIt
Y2xpY2stb24tdmlkZW8tYmFja2dyb3VuZC1zaG91bGQtcGF1c2UuaHRtbCBbIFNraXAgXQotbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xsZXIvbWVkaWEtY29udHJvbGxl
ci1jbGljay1vbi12aWRlby1iYWNrZ3JvdW5kLXRvLWRpc21pc3MtdHJhY2tzLXBhbmVsLXNob3Vs
ZC1ub3QtdG9nZ2xlLXBsYXliYWNrLmh0bWwgWyBTa2lwIF0KIG1lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXItc3BhY2UtYmFyLXRvZ2ds
ZS1wbGF5YmFjay5odG1sIFsgU2tpcCBdCiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVk
aWEtZG9jdW1lbnRzL21lZGlhLWRvY3VtZW50LWF1ZGlvLW1hYy1zaXppbmcuaHRtbCBbIFNraXAg
XQogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWRvY3VtZW50cy9tZWRpYS1kb2N1
bWVudC12aWRlby1tYWMtc2l6aW5nLmh0bWwgWyBTa2lwIF0KQEAgLTI5NTUsOCArMjk1NCw2IEBA
IG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9zY3J1YmJlci1zdXBwb3J0L3NjcnViYmVyLXN1
cHBvcnQtY2xpY2suaHRtbCBbIFNraXAKIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9zY3J1
YmJlci1zdXBwb3J0L3NjcnViYmVyLXN1cHBvcnQtZHJhZy5odG1sIFsgU2tpcCBdCiBtZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvc2xpZGVyL3NsaWRlci12YWx1ZS5odG1sIFsgU2tpcCBdCiBt
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdGV4dC10cmFja3MgWyBTa2lwIF0KLW1lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwgWyBTa2lwIF0KLW1lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydCBbIFNraXAgXQogbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3ZvbHVtZS1zdXBwb3J0IFsgU2tpcCBdCiAKIHdlYmtpdC5vcmcvYi8xNzgxMjcg
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xsZXIvbWVkaWEtY29udHJv
bGxlci12aWRlby13aXRoLW9ubHktYXVkaW8uaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDMzYTk0NDA0ZDcwOTIzMGFl
N2NmOTEzNzA3ZTAwZGZlNmY1YWRlYTMuLjhhZmZhNGFlYjQ5YWNkZjQ0NDY1NzRkNTk3M2JmZWYz
ZWNmYmI3YWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTE5LDYgKzE5LDcgQEAgZmFzdC9zY3JvbGxpbmcvbWFjIFsgUGFzcyBdCiBmYXN0
L3Zpc3VhbC12aWV3cG9ydC90aWxlZC1kcmF3aW5nIFsgUGFzcyBdCiBmYXN0L3dlYi1zaGFyZSBb
IFBhc3MgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItc2hhcmUgWyBQYXNz
IF0KK21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydCBbIFBhc3MgXQog
c2Nyb2xsaW5nY29vcmRpbmF0b3IgWyBQYXNzIF0KIHNjcm9sbGluZ2Nvb3JkaW5hdG9yL2lvcyBb
IFNraXAgXQogc3dpcGUgWyBQYXNzIF0KQEAgLTgwMSw4ICs4MDIsNiBAQCBodHRwL3dwdC93ZWJh
dXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtbG9jYWwuaHR0cHMuaHRtbCBb
IFNraXAgXQogWyBNb2phdmUgXSBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRp
YWwtZ2V0LWZhaWx1cmUtbmZjLmh0dHBzLmh0bWwgWyBTa2lwIF0KIFsgTW9qYXZlIF0gaHR0cC93
cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1zdWNjZXNzLW5mYy5odHRwcy5o
dG1sIFsgU2tpcCBdCiAKLXdlYmtpdC5vcmcvYi8xODM4NzggbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtdXAtY2xpY2stb3Zlci1tZWRpYS1kb2Vz
LW5vdC1kaW1pc3MtbWVkaWEtY29udHJvbHMtd2hlbi1tZWRpYS1pcy1wbGF5aW5nLmh0bWwgWyBQ
YXNzIFRpbWVvdXQgXSAKLQogd2Via2l0Lm9yZy9iLzE5NDgyNiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvZG8tbm90LWJsb2NrLXRvcC1sZXZlbC1uYXZpZ2F0aW9uLXJlZGlyZWN0
Lmh0bWwgWyBQYXNzIFRpbWVvdXQgXQogCiB3ZWJraXQub3JnL2IvMTg3MzkxIGFjY2Vzc2liaWxp
dHkvbWFjL2FzeW5jLWluY3JlbWVudC1kZWNyZW1lbnQtYWN0aW9uLmh0bWwgWyBTa2lwIF0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYWM5NjUwZDcwN2Zk
MWY1OGJiNmVkYTNhMDJmOGIwZjI2MzFhZGI5YS4uOTcyZjQ4ZmU1ODQ3Yjg3N2RiNTY5OWRiMjcy
MjU3ODI4ODg3MWFkMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTEyNjQsNyArMTI2NCw2IEBAIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRp
YS1kb2N1bWVudHMvbWVkaWEtZG9jdW1lbnQtYXVkaW8taW9zLXNpemluZy5odG1sCiBtZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtZG9jdW1lbnRzL21lZGlhLWRvY3VtZW50LXZpZGVv
LWlwaG9uZS1zaXppbmcuaHRtbCBbIFNraXAgXQogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L21lZGlhLWRvY3VtZW50cy9tZWRpYS1kb2N1bWVudC12aWRlby1pcGFkLXNpemluZy5odG1sIFsg
U2tpcCBdCiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvc2NydWJiZXItc3VwcG9ydC9pcGFk
IFsgU2tpcCBdCi1tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9z
IFsgU2tpcCBdCiAKICMgVGhlc2UgdGVzdHMgYXJlIHRpbWluZy1yZWxhdGVkIGFuZCBjYW4gZmFp
bCBkdWUgdG8gcGVyZm9ybWFuY2UgaXNzdWVzIG9uIGJvdHMKIHdlYmtpdC5vcmcvYi8xNjk4NzYg
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xsZXIvbWVkaWEtY29udHJv
bGxlci1hdXRvLWhpZGUtbW91c2UtZW50ZXItYW5kLW1vdXNlLWxlYXZlLmh0bWwgWyBQYXNzIFRp
bWVvdXQgXQpAQCAtMTI4MCw4ICsxMjc5LDYgQEAgd2Via2l0Lm9yZy9iLzE3ODEyNyBtZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGUKICMg
b24gaU9TLCBhbmQgdGhlIGJ1ZyBpdCB3YXMgY3JlYXRlZCB0byByZWdyZXNzaW9uLXRlc3Qgd2Fz
IGlPUy1vbmx5LCBzbyB0aGVyZSBpcyBubyBodXJyeSB0byBtYWtlIGl0IHdvcmsgb24gTWFjLgog
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWRvY3VtZW50cy9iYWNrZ3JvdW5kLWNv
bG9yLWFuZC1jZW50ZXJpbmcuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKLXdlYmtp
dC5vcmcvYi8xNjkxNTggbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNvbnRyb2xzLmh0
bWwgWyBTa2lwIF0KLQogd2Via2l0Lm9yZy9iLzE3ODA4MyBtZWRpYS9tZWRpYS1zb3VyY2UvbWVk
aWEtc291cmNlLXBhaW50LXRvLWNhbnZhcy5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcv
Yi8xNzMwNjggaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2Jq
ZWN0c3RvcmVfZ2V0S2V5Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQpAQCAtMjI4NSw4ICsyMjgyLDYg
QEAgd2Via2l0Lm9yZy9iLzIyMjExOCBbIEJpZ1N1cisgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY291bnRlci0KIAogd2Via2l0Lm9yZy9iLzIyMjE4NSBtZWRpYS9t
ZWRpYS1leHRlbnNpb24td2l0aC1mcmFnbWVudC5odG1sIFsgQ3Jhc2ggXQogCi13ZWJraXQub3Jn
L2IvMjIyMTk3IG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFj
a3Mtc3VwcG9ydC1hdWRpby10cmFja3MuaHRtbCBbIFBhc3MgVGltZW91dCBdCi0KIHdlYmtpdC5v
cmcvYi8yMjIyMDUgY3NzMy9jYWxjL3RyYW5zZm9ybXMtdHJhbnNsYXRlLmh0bWwgWyBQYXNzIElt
YWdlT25seUZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMjIyMTk1IGluc3BlY3Rvci9hbmltYXRp
b24vbGlmZWN5Y2xlLWNzcy10cmFuc2l0aW9uLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcyBiL0xheW91dFRlc3RzL3Jl
c291cmNlcy91aS1oZWxwZXIuanMKaW5kZXggMWVkMmVhMzI4MWZiZWI0NDc2NzcyOGRmOWIwMzc1
MjQ0MDM4Zjc0YS4uYzk5MmViZmIxYzNiZTU5NDMzZjI0MGYyZTNmZjc2NzMxYTczM2U2NiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcworKysgYi9MYXlvdXRU
ZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCkBAIC0xMjE5LDExICsxMjE5LDE3IEBAIHdpbmRv
dy5VSUhlbHBlciA9IGNsYXNzIFVJSGVscGVyIHsKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAg
c3RhdGljIGFzeW5jIGNob29zZU1lbnVBY3Rpb24oYWN0aW9uKQorICAgIHN0YXRpYyBjaG9vc2VN
ZW51QWN0aW9uKGFjdGlvbikKICAgICB7Ci0gICAgICAgIGNvbnN0IG1lbnVSZWN0ID0gYXdhaXQg
dGhpcy5yZWN0Rm9yTWVudUFjdGlvbihhY3Rpb24pOwotICAgICAgICBpZiAobWVudVJlY3QpCi0g
ICAgICAgICAgICBhd2FpdCB0aGlzLmFjdGl2YXRlQXQobWVudVJlY3QubGVmdCArIG1lbnVSZWN0
LndpZHRoIC8gMiwgbWVudVJlY3QudG9wICsgbWVudVJlY3QuaGVpZ2h0IC8gMik7CisgICAgICAg
IHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
cnVuVUlTY3JpcHQoYAorICAgICAgICAgICAgICAgICgoKSA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIHVpQ29udHJvbGxlci5jaG9vc2VNZW51QWN0aW9uKCIke2FjdGlvbn0iLCAoKSA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOwor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KSgpOworICAgICAgICAg
ICAgYCwgcmVzb2x2ZSk7CisgICAgICAgIH0pOwogICAgIH0KIAogICAgIHN0YXRpYyB3YWl0Rm9y
RXZlbnQodGFyZ2V0LCBldmVudE5hbWUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423395</attachid>
            <date>2021-03-16 13:53:54 -0700</date>
            <delta_ts>2021-03-16 14:57:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223239-20210316145353.patch</filename>
            <type>text/plain</type>
            <size>317439</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggMjc1YmU3ZDZmY2M0ODhlNWE1N2YwOGI4NGRlNzg4MTRjMGI0MmM1Zi4uN2ZjMDZjNzhj
MjEyMTdjMWE1ZDU5YjQyZGQ1Y2IwOWIzNzE3MWVmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAy
MS0wMy0xNiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW21h
Y09TXSBjaGFuZ2UgZm9yIHRoZSBsYW5ndWFnZS9zdWJ0aXRsZSB0cmFja3MgYnV0dG9uIHRvIHVz
ZSBhbiBgTlNNZW51YCBpbnN0ZWFkIG9mIHdlYiBjb250ZW50CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjMyMzkKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzc1NDYyMzQwPgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAg
ICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg6CisgICAgICAgIFR1cm4gb24gYEVOQUJM
RV9NRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTYCBmb3IgbWFjT1MuCisKIDIwMjEtMDMtMTIg
IExhdXJvIE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihy
Mjc0MzI3KSBbR0xJQl0gMkQgQ2FudmFzIHRlc3RzIHRpbWluZyBvdXQgYWZ0ZXIgZW5hYmxpbmcg
R1BVUHJvY2VzIGluIHRlc3RpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlMWFjZWMzMTUzZTE2NjVhNzM0ZWRl
MjI5ZTJmN2FlOWM5MjBhOGMzLi40ZmUzNWE1OWM2ZmQ1ZjE0MTRmY2I1OTk2ZDA4MmQ5MTBhMjdl
MjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTE4IEBACisyMDIxLTAzLTE2ICBEZXZpbiBSb3Vz
c28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIGNoYW5nZSBmb3IgdGhl
IGxhbmd1YWdlL3N1YnRpdGxlIHRyYWNrcyBidXR0b24gdG8gdXNlIGFuIGBOU01lbnVgIGluc3Rl
YWQgb2Ygd2ViIGNvbnRlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyMzIzOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzU0NjIzNDA+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIFRlc3RzOiBtZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvYXV0by10ZXh0LXRyYWNrLmh0bWwK
KyAgICAgICAgICAgICAgIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC9jYXB0aW9ucy1vZmZzZXQtd2l0aC1jb250cm9scy1iYXIuaHRtbAorICAgICAgICAgICAgICAg
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2NsaWNrLXRyYWNrLWlu
LWNvbnRleHRtZW51Lmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9oaWRkZW4tdHJhY2tzLmh0bWwKKyAgICAgICAgICAgICAgIG1l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9uby10cmFja3MuaHRtbAor
ICAgICAgICAgICAgICAgbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L29mZi10ZXh0LXRyYWNrLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC9zaG93LWNvbnRleHRtZW51LXRoZW4tZG91YmxlLWNsaWNr
LW9uLXRyYWNrcy1idXR0b24uaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFw
aS5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hv
c3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51UHJvdmlkZXI6
OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRN
ZW51UHJvdmlkZXI6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudVByb3ZpZGVyKTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVQcm92aWRlcjo6fk1lZGlh
Q29udHJvbHNDb250ZXh0TWVudVByb3ZpZGVyKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVQcm92aWRlcjo6cG9wdWxhdGVDb250ZXh0TWVudSk6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51UHJvdmlkZXI6
OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRp
YUNvbnRyb2xzQ29udGV4dE1lbnVQcm92aWRlcjo6Y29udGV4dE1lbnVDbGVhcmVkKTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVQcm92aWRlcjo6Y29u
dGV4dE1lbnVDb250ZXh0VHlwZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250
cm9sc0NvbnRleHRNZW51RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVFdmVudExpc3RlbmVyOjpvcGVyYXRvcj09
IGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1l
bnVFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFDb250cm9sc0NvbnRleHRNZW51RXZlbnRMaXN0ZW5lcjo6TWVkaWFDb250cm9sc0NvbnRl
eHRNZW51RXZlbnRMaXN0ZW5lcik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250
cm9sc0hvc3Q6OnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUpOgorICAgICAgICBDcmVhdGUg
cGxhdGZvcm0tYWdub3N0aWMgaGVscGVyIGZ1bmN0aW9ucyBhbmQgdHlwZXMgZm9yIGNyZWF0aW5n
IHN1Ym1lbnVzIGFuZCBtZW51IGl0ZW1zIHNvCisgICAgICAgIHRoYXQgdGhpcyBsb2dpYyBhZGRl
ZCBmb3IgaU9TIGNhbiBhbHNvIGJlIHVzZWQgZm9yIG1hY09TLgorCisgICAgICAgICogcGFnZS9D
b250ZXh0TWVudUNvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udGV4
dDo6dHlwZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVDb250ZXh0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udGV4dDo6Q29udGV4dE1lbnVD
b250ZXh0KToKKyAgICAgICAgTW92ZSBgV2ViS2l0OjpDb250ZXh0TWVudUNvbnRleHREYXRhOjpU
eXBlYCB0byBgV2ViQ29yZTo6Q29udGV4dG1lbnVDb250ZXh0OjpUeXBlYCBzbyB0aGF0CisgICAg
ICAgIGl0IGNhbiBiZSB1c2VkIGluIFdlYkNvcmUgYXMgd2VsbC4KKworICAgICAgICAqIHBhZ2Uv
Q29udGV4dE1lbnVQcm92aWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVQcm92
aWRlcjo6Y29udGV4dE1lbnVDb250ZXh0VHlwZSk6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvQ29u
dGV4dE1lbnVDb250cm9sbGVyLmg6CisgICAgICAgICogcGFnZS9Db250ZXh0TWVudUNvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyOjpoYW5kbGVD
b250ZXh0TWVudUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxl
cjo6c2hvd0NvbnRleHRNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJv
bGxlcjo6bWF5YmVDcmVhdGVDb250ZXh0TWVudSk6CisgICAgICAgIEFsbG93IHRoZSBgQ29udGV4
dE1lbnVQcm92aWRlcmAgdG8gZnVydGhlciBjdXN0b21pemUgdGhlIGBDb250ZXh0TWVudWAgdGhh
dCdzIGNyZWF0ZWQsIHN1Y2gKKyAgICAgICAgYXMgYWxsb3dpbmcgdGhlIGhpdCB0ZXN0IHRvIGlu
Y2x1ZGUgVUEgc2hhZG93IHJvb3RzIGFuZCBjb250cm9sbGluZyAiSW5zcGVjdCBFbGVtZW50Ii4K
KworICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oOgorICAgICAgICAqIHBsYXRm
b3JtL0NvbnRleHRNZW51SXRlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUl0
ZW06OkNvbnRleHRNZW51SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06
OnNldEluZGVudGF0aW9uTGV2ZWwpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRN
ZW51SXRlbTo6aW5kZW50YXRpb25MZXZlbCBjb25zdCk6IEFkZGVkLgorICAgICAgICBQcm92aWRl
IGEgd2F5IHRvIGV2ZW50dWFsbHkgc2V0IHRoZSBgLVtOU01lbnVJdGVtIHNldEluZGVudGF0aW9u
TGV2ZWw6XWAuCisKKyAgICAgICAgKiBNb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250
cm9scy90cmFja3MtcGFuZWwuanM6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvY29udHJvbHMvdHJhY2tzLXBhbmVsLmNzczogUmVtb3ZlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9iYWNrZ3JvdW5kLWNs
aWNrLWRlbGVnYXRlLW5vdGlmaWVyLmpzOgorICAgICAgICAoQmFja2dyb3VuZENsaWNrRGVsZWdh
dGVOb3RpZmllci5wcm90b3R5cGUuaGFuZGxlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJv
bHMuY3NzOgorICAgICAgICAoLm1lZGlhLWNvbnRyb2xzLm1hYy5mdWxsc2NyZWVuKToKKyAgICAg
ICAgKiBNb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9tZWRpYS1jb250cm9s
cy5qczoKKyAgICAgICAgKE1lZGlhQ29udHJvbHMucHJvdG90eXBlLnNob3dUcmFja3NQYW5lbCk6
IERlbGV0ZWQuCisgICAgICAgIChNZWRpYUNvbnRyb2xzLnByb3RvdHlwZS5oaWRlVHJhY2tzUGFu
ZWwpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2Nv
bnRyb2xzL21lZGlhLWNvbnRyb2xzLmNzczoKKyAgICAgICAgKC5tZWRpYS1jb250cm9scy5zaG93
cy10cmFja3MtcGFuZWwgPiAuY29udHJvbHMtYmFyID4gKiwgLm1lZGlhLWNvbnRyb2xzLnNob3dz
LXRyYWNrcy1wYW5lbCA+IGJ1dHRvbik6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvbWVkaWEvdHJhY2tzLXN1cHBvcnQuanM6CisgICAgICAgIChUcmFj
a3NTdXBwb3J0LnByb3RvdHlwZS5idXR0b25XYXNQcmVzc2VkKToKKyAgICAgICAgKFRyYWNrc1N1
cHBvcnQucHJvdG90eXBlLnN5bmNDb250cm9sKToKKyAgICAgICAgKFRyYWNrc1N1cHBvcnQucHJv
dG90eXBlLl9zb3J0ZWRUcmFja0xpc3QpOgorICAgICAgICAoVHJhY2tzU3VwcG9ydCk6IERlbGV0
ZWQuCisgICAgICAgIChUcmFja3NTdXBwb3J0LnByb3RvdHlwZS50cmFja3NQYW5lbE51bWJlck9m
U2VjdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAoVHJhY2tzU3VwcG9ydC5wcm90b3R5cGUudHJh
Y2tzUGFuZWxUaXRsZUZvclNlY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoVHJhY2tzU3VwcG9y
dC5wcm90b3R5cGUudHJhY2tzUGFuZWxOdW1iZXJPZlRyYWNrc0luU2VjdGlvbik6IERlbGV0ZWQu
CisgICAgICAgIChUcmFja3NTdXBwb3J0LnByb3RvdHlwZS50cmFja3NQYW5lbFRpdGxlRm9yVHJh
Y2tJblNlY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoVHJhY2tzU3VwcG9ydC5wcm90b3R5cGUu
dHJhY2tzUGFuZWxJc1RyYWNrSW5TZWN0aW9uU2VsZWN0ZWQpOiBEZWxldGVkLgorICAgICAgICAo
VHJhY2tzU3VwcG9ydC5wcm90b3R5cGUudHJhY2tzUGFuZWxTZWxlY3Rpb25EaWRDaGFuZ2UpOiBE
ZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2pzLWZpbGVz
OgorICAgICAgICBSZW1vdmUgZXZlcnl0aGluZyByZWxhdGVkIHRvIGBUcmFja3NQYW5lbGAgbm93
IHRoYXQgbWFjT1MgYWxzbyB1c2VzIGEgY29udGV4dG1lbnUuCisKKyAgICAgICAgKiBNb2R1bGVz
L21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9pbmxpbmUtbWVkaWEtY29udHJvbHMuanM6
CisgICAgICAgIChJbmxpbmVNZWRpYUNvbnRyb2xzLnByb3RvdHlwZS5sYXlvdXQpOgorICAgICAg
ICAoSW5saW5lTWVkaWFDb250cm9scy5wcm90b3R5cGUuX3JpZ2h0Q29udGFpbmVyQnV0dG9ucyk6
CisgICAgICAgIChJbmxpbmVNZWRpYUNvbnRyb2xzLnByb3RvdHlwZS5fZHJvcHBhYmxlQnV0dG9u
cyk6CisgICAgICAgICogTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFj
b3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy5qczoKKyAgICAgICAgKE1hY09TRnVsbHNjcmVl
bk1lZGlhQ29udHJvbHMpOgorICAgICAgICBUaGUgYE92ZXJmbG93QnV0dG9uYCBzaG91bGQgYmUg
dGhlIGxhc3QgcmlnaHQgY29udGFpbmVyIGJ1dHRvbiB0byBiZSBkcm9wcGVkLgorCisgICAgICAg
ICogTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEvbWVkaWEtY29udHJvbGxlci5q
czoKKyAgICAgICAgKE1lZGlhQ29udHJvbGxlci5wcm90b3R5cGUuc2hvd01lZGlhQ29udHJvbHND
b250ZXh0TWVudSk6CisgICAgICAgIFByb3ZpZGUgYSB3YXkgZm9yIGNhbGxlcnMgdG8gcHJvdmlk
ZSBhZGRpdGlvbmFsIG9wdGlvbnMuCisKKyAgICAgICAgKiBwYWdlL01lZGlhQ29udHJvbHNDb250
ZXh0TWVudUl0ZW0uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVu
dUl0ZW06OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnVJdGVtOjpkZWNvZGUpOgorICAgICAgICBEcml2ZS1ieTogUmVuYW1lIGBpc0NoZWNr
ZWRgIHRvIGBjaGVja2VkYCB0byBtYXRjaCBgQ29udGV4dE1lbnVJdGVtYC4KKworICAgICAgICAq
IE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3RyYWNrcy1idXR0b24uanM6
CisgICAgICAgIChUcmFja3NCdXR0b24ucHJvdG90eXBlLmdldCBjb250ZXh0TWVudU9wdGlvbnMp
OgorICAgICAgICBEcml2ZS1ieTogUmVuYW1lIG9iamVjdCBrZXlzIGZvciBjbGFyaXR5LgorCisg
ICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgQmUgbW9yZSBleHBsaWNpdCB3
aXRoIGNvbXBpbGVyIGZsYWdzLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6Om1lZGlhQ29udHJvbHNTY3Jp
cHQpOgorCisgICAgICAgICogTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvaW1hZ2VzL21h
Y09TL092ZXJmbG93LnN2ZzoKKyAgICAgICAgUmV3b3JrIHRoaXMgIi4uLiIgaWNvbiB0byBiZSAi
Pj4iIHRvIG1hdGNoIHNpbWlsYXIgaWNvbnMgZWxzZXdoZXJlIG9uIG1hY09TLgorCisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTAzLTEyICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtzZWxlY3Rv
cnNdIDpmb2N1cy12aXNpYmxlIG1hdGNoZXMgYm9keSBhZnRlciBrZXlib2FyZCBldmVudApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCA0YWI4YjVlNjMyMzY5ZjVmMzhkNGNlYWNjMzc5M2FkYjQyNmJiNjZjLi4wOTM3ZDk4
OWJlMjM1ODI3NWU0NDgyZjNkZmU3ZDQ5YjI5YTRmNTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDgy
IEBACisyMDIxLTAzLTE2ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAg
ICAgICBbbWFjT1NdIGNoYW5nZSBmb3IgdGhlIGxhbmd1YWdlL3N1YnRpdGxlIHRyYWNrcyBidXR0
b24gdG8gdXNlIGFuIGBOU01lbnVgIGluc3RlYWQgb2Ygd2ViIGNvbnRlbnQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzIzOQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNzU0NjIzNDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29u
LgorCisgICAgICAgICogU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuaDoKKyAgICAgICAg
KiBTaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNv
bnRleHRNZW51Q29udGV4dERhdGE6OkNvbnRleHRNZW51Q29udGV4dERhdGEpOgorICAgICAgICBN
b3ZlIGBXZWJLaXQ6OkNvbnRleHRNZW51Q29udGV4dERhdGE6OlR5cGVgIHRvIGBXZWJDb3JlOjpD
b250ZXh0bWVudUNvbnRleHQ6OlR5cGVgIHNvIHRoYXQKKyAgICAgICAgaXQgY2FuIGJlIHVzZWQg
aW4gV2ViQ29yZSBhcyB3ZWxsLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvbnRleHRNZW51SXRl
bURhdGEuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51SXRlbURhdGE6OldlYkNvbnRleHRNZW51SXRl
bURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudUl0ZW1EYXRhOjpjb3JlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6ZGVjb2RlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6aW5kZW50YXRpb25MZXZl
bCBjb25zdCk6IEFkZGVkLgorICAgICAgICBQcm92aWRlIGEgd2F5IHRvIGV2ZW50dWFsbHkgc2V0
IHRoZSBgLVtOU01lbnVJdGVtIHNldEluZGVudGF0aW9uTGV2ZWw6XWAuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMv
V2ViQ29udGV4dE1lbnVQcm94eU1hYy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29u
dGV4dE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKC1bV0tNZW51RGVsZWdhdGUgaW5pdFdpdGhN
ZW51UHJveHk6XSk6IEFkZGVkLgorICAgICAgICAoLVtXS01lbnVEZWxlZ2F0ZSBtZW51V2lsbE9w
ZW46XSk6IEFkZGVkLgorICAgICAgICAoLVtXS01lbnVEZWxlZ2F0ZSBtZW51RGlkQ2xvc2U6XSk6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjpnZXRDb250
ZXh0TWVudUl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5TWFjOjp1
c2VDb250ZXh0TWVudUl0ZW1zKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94
eU1hYzo6cGxhdGZvcm1NZW51IGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OmNvbnRl
bnRzT2ZDb250ZXh0TWVudUl0ZW0pOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4
dE1lbnVQcm94eU1hYzo6cGxhdGZvcm1EYXRhIGNvbnN0KTogQWRkZWQuCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBgLVtOU01lbnVJdGVtIHNldEluZGVudGF0aW9uTGV2ZWw6XWAuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgX2NvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbTpdKToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IF9kaWRTaG93Q29udGV4dE1lbnVdKTogQWRkZWQuCisgICAgICAgICgtW1dL
V2ViVmlldyBfZGlkRGlzbWlzc0NvbnRleHRNZW51XSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvaW9zL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IF9kaWRTaG93Q29udGV4dE1lbnVdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tXZWJW
aWV3IF9kaWREaXNtaXNzQ29udGV4dE1lbnVdKTogRGVsZXRlZC4KKyAgICAgICAgTW92ZSB0aGVz
ZSBtZXRob2RzIHNvIHRoZXkgY2FuIGJlIHVzZWQgb24gbWFjT1MgdG9vLgorCisgICAgICAgICog
VUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudDo6ZGlk
U2hvd0NvbnRleHRNZW51KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnQ6OmRp
ZERpc21pc3NDb250ZXh0TWVudSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFn
ZUNsaWVudEltcGxNYWMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBs
TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkU2hvd0NvbnRleHRN
ZW51KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWREaXNtaXNz
Q29udGV4dE1lbnUpOiBBZGRlZC4KKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGBkaWRTaG93Q29u
dGV4dE1lbnVgL2BkaWREaXNtaXNzQ29udGV4dE1lbnVgIGZvciB0ZXN0cy4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvbWFjL1dLV2ViVmlld1Rlc3RpbmdNYWMubW06CisgICAgICAgICgtW1dL
V2ViVmlldyBfYWN0aXZlTWVudV0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdl
UHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250ZW50c09m
VXNlckludGVyZmFjZUl0ZW0pOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBh
Z2VQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpwbGF0Zm9ybUFj
dGl2ZUNvbnRleHRNZW51IGNvbnN0KTogQWRkZWQuCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBg
Y29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtYCBmb3IgdGVzdHMuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
QWN0aW9uU2hlZXRBc3Npc3RhbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQWN0aW9u
U2hlZXRBc3Npc3RhbnQubW06CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgQmUgbW9yZSBl
eHBsaWNpdCB3aXRoIGNvbXBpbGVyIGZsYWdzLgorCiAyMDIxLTAzLTEyICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgdmlkZW8gY2FwdHVyZSBpbiBH
UFVQcm9jZXNzIGJ5IGRlZmF1bHQgb24gaU9TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybUVuYWJsZUNvY29hLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29h
LmgKaW5kZXggMjQzZGYyNWE2NzZkNzlkYjdkMzg1YjU3YjdjMjNjN2QwZGM5ZWFlOS4uZDljZDJk
MGIwNGQ0ZGI3ZWMyZjkxODJhZDQ1NDhiOWQ3ZmY4NTY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
RW5hYmxlQ29jb2EuaApAQCAtMzI0LDYgKzMyNCwxMCBAQAogI2RlZmluZSBFTkFCTEVfTUVESUFf
Q09OVFJPTFNfU0NSSVBUIDEKICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX0NP
TlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFBMQVRGT1JNKE1BQykKKyNkZWZpbmUgRU5BQkxFX01F
RElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMgMQorI2VuZGlmCisKICNpZiAhZGVmaW5lZChFTkFC
TEVfTUVESUFfU0VTU0lPTikgJiYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBM
RVRWKQogI2RlZmluZSBFTkFCTEVfTUVESUFfU0VTU0lPTiAxCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hv
c3QuY3BwCmluZGV4IGY5YjFhNGQ0MjM3MGI2ZTU1MmIxYmMxYzA4NTVkNTEyNDQ0ZWQ4M2QuLjkw
NzEyNTgxMmNkN2I0ZGJhNTQ2ZjQ1YjBhYjA5OTQ1MjIzZWFhMGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0
LmNwcApAQCAtMjksMTYgKzI5LDI3IEBACiAKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xzSG9zdC5o
IgogCisjaW5jbHVkZSAiQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMuaCIKICNpbmNsdWRlICJBdWRp
b1RyYWNrTGlzdC5oIgorI2luY2x1ZGUgIkNhcHRpb25Vc2VyUHJlZmVyZW5jZXMuaCIKICNpbmNs
dWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKLSNpbmNsdWRlICJDYXB0
aW9uVXNlclByZWZlcmVuY2VzLmgiCisjaW5jbHVkZSAiQ29udGV4dE1lbnUuaCIKKyNpbmNsdWRl
ICJDb250ZXh0TWVudUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJDb250ZXh0TWVudUl0ZW0uaCIK
KyNpbmNsdWRlICJDb250ZXh0TWVudVByb3ZpZGVyLmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNp
bmNsdWRlICJFdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1
ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiSFRN
TEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiTG9j
YWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYUNv
bnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiTWVkaWFDb250cm9s
c0NvbnRleHRNZW51SXRlbS5oIgorI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJQYWdlLmgi
CiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKQEAgLTQ2
LDYgKzU3LDcgQEAKICNpbmNsdWRlICJUZXh0VHJhY2tMaXN0LmgiCiAjaW5jbHVkZSAiVm9pZENh
bGxiYWNrLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSlNWYWx1ZUlubGluZXMuaD4K
KyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvSlNPTlZh
bHVlcy5oPgogI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9VVUlELmg+CkBA
IC01NywxMCArNjksNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBkZWZpbmVkKE1l
ZGlhQ29udHJvbHNIb3N0QWRkaXRpb25zX21lbWJlcnMpCi1NZWRpYUNvbnRyb2xzSG9zdEFkZGl0
aW9uc19tZW1iZXJzCi0jZW5kaWYKLQogY29uc3QgQXRvbVN0cmluZyYgTWVkaWFDb250cm9sc0hv
c3Q6OmF1dG9tYXRpY0tleXdvcmQoKQogewogICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYXV0b21hdGljKCJhdXRvbWF0aWMiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CkBAIC0zNTQsMTUgKzM2MiwxMTMgQEAgU3RyaW5nIE1l
ZGlhQ29udHJvbHNIb3N0Ojpmb3JtYXR0ZWRTdHJpbmdGb3JEdXJhdGlvbihkb3VibGUgZHVyYXRp
b25JblNlY29uZHMpCiAjZGVmaW5lIE1lZGlhQ29udHJvbHNIb3N0QWRkaXRpb25zX3Nob3dNZWRp
YUNvbnRyb2xzQ29udGV4dE1lbnVfTWVudURhdGFfc3dpdGNoT24KICNlbmRpZgogCisjaWYgRU5B
QkxFKENPTlRFWFRfTUVOVVMpICYmIFVTRShBQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMpCitj
bGFzcyBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVQcm92aWRlciBmaW5hbCA6IHB1YmxpYyBDb250
ZXh0TWVudVByb3ZpZGVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE1lZGlhQ29udHJvbHND
b250ZXh0TWVudVByb3ZpZGVyPiBjcmVhdGUoVmVjdG9yPENvbnRleHRNZW51SXRlbT4mJiBpdGVt
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYgY2FsbGJhY2spCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVQcm92
aWRlcihXVEZNb3ZlKGl0ZW1zKSwgV1RGTW92ZShjYWxsYmFjaykpKTsKKyAgICB9CisKK3ByaXZh
dGU6CisgICAgTWVkaWFDb250cm9sc0NvbnRleHRNZW51UHJvdmlkZXIoVmVjdG9yPENvbnRleHRN
ZW51SXRlbT4mJiBpdGVtcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYgY2Fs
bGJhY2spCisgICAgICAgIDogbV9pdGVtcyhXVEZNb3ZlKGl0ZW1zKSkKKyAgICAgICAgLCBtX2Nh
bGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKQorICAgIHsKKyAgICB9CisKKyAgICB+TWVkaWFDb250
cm9sc0NvbnRleHRNZW51UHJvdmlkZXIoKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgY29udGV4
dE1lbnVDbGVhcmVkKCk7CisgICAgfQorCisgICAgdm9pZCBwb3B1bGF0ZUNvbnRleHRNZW51KENv
bnRleHRNZW51KiBtZW51KSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgZm9yIChhdXRvJiBpdGVt
IDogbV9pdGVtcykKKyAgICAgICAgICAgIG1lbnUtPmFwcGVuZEl0ZW0oaXRlbSk7CisgICAgfQor
CisgICAgdm9pZCBjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rp
b24sIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlCisgICAgeworICAgICAgICBtX2NhbGxiYWNrKGFj
dGlvbiAtIENvbnRleHRNZW51SXRlbUJhc2VDdXN0b21UYWcpOworICAgIH0KKworICAgIHZvaWQg
Y29udGV4dE1lbnVDbGVhcmVkKCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIGlmIChtX2NhbGxi
YWNrKQorICAgICAgICAgICAgbV9jYWxsYmFjayhDb250ZXh0TWVudUl0ZW1UYWdOb0FjdGlvbik7
CisgICAgICAgIG1faXRlbXMuY2xlYXIoKTsKKyAgICB9CisKKyAgICBDb250ZXh0TWVudUNvbnRl
eHQ6OlR5cGUgY29udGV4dE1lbnVDb250ZXh0VHlwZSgpIG92ZXJyaWRlCisgICAgeworICAgICAg
ICByZXR1cm4gQ29udGV4dE1lbnVDb250ZXh0OjpUeXBlOjpNZWRpYUNvbnRyb2xzOworICAgIH0K
KworICAgIFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+IG1faXRlbXM7CisgICAgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCh1aW50NjRfdCk+IG1fY2FsbGJhY2s7Cit9OworCitjbGFzcyBNZWRpYUNvbnRy
b2xzQ29udGV4dE1lbnVFdmVudExpc3RlbmVyIGZpbmFsIDogcHVibGljIEV2ZW50TGlzdGVuZXIg
eworcHVibGljOgorICAgIHN0YXRpYyBSZWY8TWVkaWFDb250cm9sc0NvbnRleHRNZW51RXZlbnRM
aXN0ZW5lcj4gY3JlYXRlKFJlZjxNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVQcm92aWRlcj4mJiBj
b250ZXh0TWVudVByb3ZpZGVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
TWVkaWFDb250cm9sc0NvbnRleHRNZW51RXZlbnRMaXN0ZW5lcihXVEZNb3ZlKGNvbnRleHRNZW51
UHJvdmlkZXIpKSk7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEV2ZW50TGlz
dGVuZXImIG90aGVyKSBjb25zdCBvdmVycmlkZQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMg
PT0gJm90aGVyOworICAgIH0KKworICAgIHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIEV2ZW50JiBldmVudCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIEFTU0VSVChl
dmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmNvbnRleHRtZW51RXZlbnQpOworCisgICAgICAg
IGF1dG8qIHRhcmdldCA9IGV2ZW50LnRhcmdldCgpOworICAgICAgICBpZiAoIWlzPE5vZGU+KHRh
cmdldCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGF1dG8mIG5vZGUgPSBkb3duY2Fz
dDxOb2RlPigqdGFyZ2V0KTsKKworICAgICAgICBhdXRvKiBwYWdlID0gbm9kZS5kb2N1bWVudCgp
LnBhZ2UoKTsKKyAgICAgICAgaWYgKCFwYWdlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIHBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLnNob3dDb250ZXh0TWVudShldmVudCwg
bV9jb250ZXh0TWVudVByb3ZpZGVyKTsKKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsK
KyAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgIGV2ZW50LnN0b3BJbW1l
ZGlhdGVQcm9wYWdhdGlvbigpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBNZWRpYUNvbnRyb2xz
Q29udGV4dE1lbnVFdmVudExpc3RlbmVyKFJlZjxNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVQcm92
aWRlcj4mJiBjb250ZXh0TWVudVByb3ZpZGVyKQorICAgICAgICA6IEV2ZW50TGlzdGVuZXIoRXZl
bnRMaXN0ZW5lcjo6Q1BQRXZlbnRMaXN0ZW5lclR5cGUpCisgICAgICAgICwgbV9jb250ZXh0TWVu
dVByb3ZpZGVyKFdURk1vdmUoY29udGV4dE1lbnVQcm92aWRlcikpCisgICAgeworICAgIH0KKwor
ICAgIFJlZjxNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVQcm92aWRlcj4gbV9jb250ZXh0TWVudVBy
b3ZpZGVyOworfTsKKworI2VuZGlmIC8vIEVOQUJMRShDT05URVhUX01FTlVTKSAmJiBVU0UoQUND
RVNTSUJJTElUWV9DT05URVhUX01FTlVTKQorCiBib29sIE1lZGlhQ29udHJvbHNIb3N0OjpzaG93
TWVkaWFDb250cm9sc0NvbnRleHRNZW51KEhUTUxFbGVtZW50JiB0YXJnZXQsIFN0cmluZyYmIG9w
dGlvbnNKU09OU3RyaW5nLCBSZWY8Vm9pZENhbGxiYWNrPiYmIGNhbGxiYWNrKQogewotICAgIGlm
IChtX3Nob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVDYWxsYmFjaykKKyNpZiBVU0UoVUlDT05U
RVhUTUVOVSkgfHwgKEVOQUJMRShDT05URVhUX01FTlVTKSAmJiBVU0UoQUNDRVNTSUJJTElUWV9D
T05URVhUX01FTlVTKSkKKyAgICBpZiAobV9zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51Q2Fs
bGJhY2spIHsKKyNpZiBVU0UoVUlDT05URVhUTUVOVSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwor
I2VsaWYgKEVOQUJMRShDT05URVhUX01FTlVTKSAmJiBVU0UoQUNDRVNTSUJJTElUWV9DT05URVhU
X01FTlVTKSkKKyAgICAgICAgLy8gRklYTUU6IGBjb250ZXh0TWVudUNsZWFyZWRgIGlzIGludm9r
ZWQgYmV0d2VlbiBzaG93IGFuZCBpdGVtIHNlbGVjdGVkIHNvIHdlIG1heSBoYXZlIGEgcGVuZGlu
ZyBjYWxsYmFjay4KKyAgICAgICAgc3RkOjpleGNoYW5nZShtX3Nob3dNZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnVDYWxsYmFjaywgbnVsbHB0ciktPmhhbmRsZUV2ZW50KCk7CisjZW5kaWYKKyAgICB9
CiAKICAgICBtX3Nob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVDYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spOwogCiAgICAgYXV0byBpbnZva2VDYWxsYmFja0F0U2NvcGVFeGl0ID0gbWFrZVNj
b3BlRXhpdChbJiwgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7Ci0gICAgICAgIHN0
ZDo6ZXhjaGFuZ2UobV9zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51Q2FsbGJhY2ssIG51bGxw
dHIpLT5oYW5kbGVFdmVudCgpOworICAgICAgICBpZiAobV9zaG93TWVkaWFDb250cm9sc0NvbnRl
eHRNZW51Q2FsbGJhY2spCisgICAgICAgICAgICBzdGQ6OmV4Y2hhbmdlKG1fc2hvd01lZGlhQ29u
dHJvbHNDb250ZXh0TWVudUNhbGxiYWNrLCBudWxscHRyKS0+aGFuZGxlRXZlbnQoKTsKICAgICB9
KTsKIAogICAgIGlmICghbV9tZWRpYUVsZW1lbnQpCkBAIC0zODIsNDQgKzQ4OCw1NyBAQCBib29s
IE1lZGlhQ29udHJvbHNIb3N0OjpzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KEhUTUxFbGVt
ZW50JiB0YXJnZXQsIFN0cmluZwogICAgIGlmICghb3B0aW9uc0pTT05PYmplY3QpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAorI2lmIFVTRShVSUNPTlRFWFRNRU5VKQorICAgIHVzaW5nIE1lbnVJ
dGVtID0gTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTsKKyAgICB1c2luZyBNZW51SXRlbUlk
ZW50aWZpZXIgPSBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRDsKKyAgICBjb25zdGV4
cHIgYXV0byBpbnZhbGlkTWVudUl0ZW1JZGVudGlmaWVyID0gTWVkaWFDb250cm9sc0NvbnRleHRN
ZW51SXRlbTo6aW52YWxpZElEOworI2VsaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpICYmIFVTRShB
Q0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMpCisgICAgdXNpbmcgTWVudUl0ZW0gPSBDb250ZXh0
TWVudUl0ZW07CisgICAgdXNpbmcgTWVudUl0ZW1JZGVudGlmaWVyID0gdWludDY0X3Q7CisgICAg
Y29uc3RleHByIGF1dG8gaW52YWxpZE1lbnVJdGVtSWRlbnRpZmllciA9IENvbnRleHRNZW51SXRl
bVRhZ05vQWN0aW9uOworI2VuZGlmCisKICAgICB1c2luZyBNZW51RGF0YSA9IFZhcmlhbnQ8UmVm
UHRyPEF1ZGlvVHJhY2s+LCBSZWZQdHI8VGV4dFRyYWNrPiBNZWRpYUNvbnRyb2xzSG9zdEFkZGl0
aW9uc19zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51X01lbnVEYXRhPjsKLSAgICBIYXNoTWFw
PE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklELCBNZW51RGF0YT4gaWRNYXA7Ci0gICAg
YXV0byBnZW5lcmF0ZUlEID0gWyZdIChNZW51RGF0YSBkYXRhKSB7Ci0gICAgICAgIGF1dG8gaWQg
PSBpZE1hcC5zaXplKCkgKyAxOwotICAgICAgICBpZE1hcC5hZGQoaWQsIGRhdGEpOwotICAgICAg
ICByZXR1cm4gaWQ7CisgICAgSGFzaE1hcDxNZW51SXRlbUlkZW50aWZpZXIsIE1lbnVEYXRhPiBp
ZE1hcDsKKworICAgIGF1dG8gY3JlYXRlU3VibWVudSA9IFtdIChjb25zdCBTdHJpbmcmIHRpdGxl
LCBjb25zdCBTdHJpbmcmIGljb24sIFZlY3RvcjxNZW51SXRlbT4mJiBjaGlsZHJlbikgLT4gTWVu
dUl0ZW0geworI2lmIFVTRShVSUNPTlRFWFRNRU5VKQorICAgICAgICByZXR1cm4geyBNZWRpYUNv
bnRyb2xzQ29udGV4dE1lbnVJdGVtOjppbnZhbGlkSUQsIHRpdGxlLCBpY29uLCAvKiBjaGVja2Vk
ICovIGZhbHNlLCBXVEZNb3ZlKGNoaWxkcmVuKSB9OworI2VsaWYgRU5BQkxFKENPTlRFWFRfTUVO
VVMpICYmIFVTRShBQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMpCisgICAgICAgIFVOVVNFRF9Q
QVJBTShpY29uKTsKKyAgICAgICAgcmV0dXJuIHsgQ29udGV4dE1lbnVJdGVtVGFnTm9BY3Rpb24s
IHRpdGxlLCAvKiBlbmFibGVkICovIHRydWUsIC8qIGNoZWNrZWQgKi8gZmFsc2UsIFdURk1vdmUo
Y2hpbGRyZW4pIH07CisjZW5kaWYKICAgICB9OwogCi0gICAgVmVjdG9yPE1lZGlhQ29udHJvbHND
b250ZXh0TWVudUl0ZW0+IGl0ZW1zOworICAgIGF1dG8gY3JlYXRlTWVudUl0ZW0gPSBbJl0gKE1l
bnVEYXRhIGRhdGEsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGJvb2wgY2hlY2tlZCA9IGZhbHNlKSAt
PiBNZW51SXRlbSB7CisgICAgICAgIGF1dG8gaWQgPSBpZE1hcC5zaXplKCkgKyAxOworICAgICAg
ICBpZE1hcC5hZGQoaWQsIGRhdGEpOwogCi0gICAgaWYgKG9wdGlvbnNKU09OT2JqZWN0LT5nZXRC
b29sZWFuKCJpbmNsdWRlQXVkaW9UcmFja3MiX3MpLnZhbHVlT3IoZmFsc2UpKSB7CisjaWYgVVNF
KFVJQ09OVEVYVE1FTlUpCisgICAgICAgIHJldHVybiB7IGlkLCB0aXRsZSwgLyogaWNvbiAqLyBu
dWxsU3RyaW5nKCksIGNoZWNrZWQsIC8qIGNoaWxkcmVuICovIHsgfSB9OworI2VsaWYgRU5BQkxF
KENPTlRFWFRfTUVOVVMpICYmIFVTRShBQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMpCisgICAg
ICAgIHJldHVybiB7IENoZWNrYWJsZUFjdGlvblR5cGUsIHN0YXRpY19jYXN0PENvbnRleHRNZW51
QWN0aW9uPihDb250ZXh0TWVudUl0ZW1CYXNlQ3VzdG9tVGFnICsgaWQpLCB0aXRsZSwgLyogZW5h
YmxlZCAqLyB0cnVlLCBjaGVja2VkIH07CisjZW5kaWYKKyAgICB9OworCisgICAgVmVjdG9yPE1l
bnVJdGVtPiBpdGVtczsKKworICAgIGlmIChvcHRpb25zSlNPTk9iamVjdC0+Z2V0Qm9vbGVhbigi
aW5jbHVkZUxhbmd1YWdlcyJfcykudmFsdWVPcihmYWxzZSkpIHsKICAgICAgICAgaWYgKGF1dG8q
IGF1ZGlvVHJhY2tzID0gbWVkaWFFbGVtZW50LmF1ZGlvVHJhY2tzKCk7IGF1ZGlvVHJhY2tzICYm
IGF1ZGlvVHJhY2tzLT5sZW5ndGgoKSA+IDEpIHsKLSAgICAgICAgICAgIE1lZGlhQ29udHJvbHND
b250ZXh0TWVudUl0ZW0gYXVkaW9UcmFja3NJdGVtOwotICAgICAgICAgICAgYXVkaW9UcmFja3NJ
dGVtLnRpdGxlID0gV0VCX1VJX1NUUklOR19LRVkoIkxhbmd1YWdlcyIsICJMYW5ndWFnZXMgKE1l
ZGlhIENvbnRyb2xzIE1lbnUpIiwgIkxhbmd1YWdlcyBtZWRpYSBjb250cm9scyBjb250ZXh0IG1l
bnUgdGl0bGUiKTsKLSAgICAgICAgICAgIGF1ZGlvVHJhY2tzSXRlbS5pY29uID0gImdsb2JlIl9z
OwotICAgICAgICAgICAgYXVkaW9UcmFja3NJdGVtLmNoaWxkcmVuLnJlc2VydmVDYXBhY2l0eShh
dWRpb1RyYWNrcy0+bGVuZ3RoKCkpOworICAgICAgICAgICAgVmVjdG9yPE1lbnVJdGVtPiBsYW5n
dWFnZU1lbnVJdGVtczsKIAogICAgICAgICAgICAgYXV0byYgY2FwdGlvblByZWZlcmVuY2VzID0g
cGFnZS0+Z3JvdXAoKS5jYXB0aW9uUHJlZmVyZW5jZXMoKTsKKyAgICAgICAgICAgIGZvciAoYXV0
byYgYXVkaW9UcmFjayA6IGNhcHRpb25QcmVmZXJlbmNlcy5zb3J0ZWRUcmFja0xpc3RGb3JNZW51
KGF1ZGlvVHJhY2tzKSkKKyAgICAgICAgICAgICAgICBsYW5ndWFnZU1lbnVJdGVtcy5hcHBlbmQo
Y3JlYXRlTWVudUl0ZW0oYXVkaW9UcmFjaywgY2FwdGlvblByZWZlcmVuY2VzLmRpc3BsYXlOYW1l
Rm9yVHJhY2soYXVkaW9UcmFjay5nZXQoKSksIGF1ZGlvVHJhY2stPmVuYWJsZWQoKSkpOwogCi0g
ICAgICAgICAgICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2sgOiBjYXB0aW9uUHJlZmVyZW5jZXMuc29y
dGVkVHJhY2tMaXN0Rm9yTWVudShhdWRpb1RyYWNrcykpIHsKLSAgICAgICAgICAgICAgICBNZWRp
YUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtIGF1ZGlvVHJhY2tJdGVtOwotICAgICAgICAgICAgICAg
IGF1ZGlvVHJhY2tJdGVtLmlkID0gZ2VuZXJhdGVJRChhdWRpb1RyYWNrKTsKLSAgICAgICAgICAg
ICAgICBhdWRpb1RyYWNrSXRlbS50aXRsZSA9IGNhcHRpb25QcmVmZXJlbmNlcy5kaXNwbGF5TmFt
ZUZvclRyYWNrKGF1ZGlvVHJhY2suZ2V0KCkpOwotICAgICAgICAgICAgICAgIGF1ZGlvVHJhY2tJ
dGVtLmlzQ2hlY2tlZCA9IGF1ZGlvVHJhY2stPmVuYWJsZWQoKTsKLSAgICAgICAgICAgICAgICBh
dWRpb1RyYWNrc0l0ZW0uY2hpbGRyZW4uYXBwZW5kKFdURk1vdmUoYXVkaW9UcmFja0l0ZW0pKTsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKCFhdWRpb1RyYWNrc0l0ZW0uY2hpbGRy
ZW4uaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIGl0ZW1zLmFwcGVuZChXVEZNb3ZlKGF1ZGlv
VHJhY2tzSXRlbSkpOworICAgICAgICAgICAgaWYgKCFsYW5ndWFnZU1lbnVJdGVtcy5pc0VtcHR5
KCkpCisgICAgICAgICAgICAgICAgaXRlbXMuYXBwZW5kKGNyZWF0ZVN1Ym1lbnUoV0VCX1VJX1NU
UklOR19LRVkoIkxhbmd1YWdlcyIsICJMYW5ndWFnZXMgKE1lZGlhIENvbnRyb2xzIE1lbnUpIiwg
Ikxhbmd1YWdlcyBtZWRpYSBjb250cm9scyBjb250ZXh0IG1lbnUgdGl0bGUiKSwgImdsb2JlIl9z
LCBXVEZNb3ZlKGxhbmd1YWdlTWVudUl0ZW1zKSkpOwogICAgICAgICB9CiAgICAgfQogCi0gICAg
aWYgKG9wdGlvbnNKU09OT2JqZWN0LT5nZXRCb29sZWFuKCJpbmNsdWRlVGV4dFRyYWNrcyJfcyku
dmFsdWVPcihmYWxzZSkpIHsKKyAgICBpZiAob3B0aW9uc0pTT05PYmplY3QtPmdldEJvb2xlYW4o
ImluY2x1ZGVTdWJ0aXRsZXMiX3MpLnZhbHVlT3IoZmFsc2UpKSB7CiAgICAgICAgIGlmIChhdXRv
KiB0ZXh0VHJhY2tzID0gbWVkaWFFbGVtZW50LnRleHRUcmFja3MoKTsgdGV4dFRyYWNrcyAmJiB0
ZXh0VHJhY2tzLT5sZW5ndGgoKSkgewotICAgICAgICAgICAgTWVkaWFDb250cm9sc0NvbnRleHRN
ZW51SXRlbSB0ZXh0VHJhY2tzSXRlbTsKLSAgICAgICAgICAgIHRleHRUcmFja3NJdGVtLnRpdGxl
ID0gV0VCX1VJX1NUUklOR19LRVkoIlN1YnRpdGxlcyIsICJTdWJ0aXRsZXMgKE1lZGlhIENvbnRy
b2xzIE1lbnUpIiwgIlN1YnRpdGxlcyBtZWRpYSBjb250cm9scyBjb250ZXh0IG1lbnUgdGl0bGUi
KTsKLSAgICAgICAgICAgIHRleHRUcmFja3NJdGVtLmljb24gPSAiY2FwdGlvbnMuYnViYmxlIl9z
OwotICAgICAgICAgICAgdGV4dFRyYWNrc0l0ZW0uY2hpbGRyZW4ucmVzZXJ2ZUNhcGFjaXR5KHRl
eHRUcmFja3MtPmxlbmd0aCgpKTsKKyAgICAgICAgICAgIFZlY3RvcjxNZW51SXRlbT4gc3VidGl0
bGVNZW51SXRlbXM7CiAKICAgICAgICAgICAgIGF1dG8mIGNhcHRpb25QcmVmZXJlbmNlcyA9IHBh
Z2UtPmdyb3VwKCkuY2FwdGlvblByZWZlcmVuY2VzKCk7CiAgICAgICAgICAgICBhdXRvIHNvcnRl
ZFRleHRUcmFja3MgPSBjYXB0aW9uUHJlZmVyZW5jZXMuc29ydGVkVHJhY2tMaXN0Rm9yTWVudSh0
ZXh0VHJhY2tzLCB7IFRleHRUcmFjazo6S2luZDo6U3VidGl0bGVzLCBUZXh0VHJhY2s6OktpbmQ6
OkNhcHRpb25zLCBUZXh0VHJhY2s6OktpbmQ6OkRlc2NyaXB0aW9ucyB9KTsKQEAgLTQyNywyNCAr
NTQ2LDE5IEBAIGJvb2wgTWVkaWFDb250cm9sc0hvc3Q6OnNob3dNZWRpYUNvbnRyb2xzQ29udGV4
dE1lbnUoSFRNTEVsZW1lbnQmIHRhcmdldCwgU3RyaW5nCiAgICAgICAgICAgICAgICAgcmV0dXJu
IHRleHRUcmFjay0+bW9kZSgpID09IFRleHRUcmFjazo6TW9kZTo6U2hvd2luZzsKICAgICAgICAg
ICAgIH0pOwogICAgICAgICAgICAgYm9vbCB1c2VzQXV0b21hdGljVHJhY2sgPSBjYXB0aW9uUHJl
ZmVyZW5jZXMuY2FwdGlvbkRpc3BsYXlNb2RlKCkgPT0gQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6
QXV0b21hdGljICYmIGFsbFRyYWNrc0Rpc2FibGVkOwotCiAgICAgICAgICAgICBmb3IgKGF1dG8m
IHRleHRUcmFjayA6IHNvcnRlZFRleHRUcmFja3MpIHsKLSAgICAgICAgICAgICAgICBNZWRpYUNv
bnRyb2xzQ29udGV4dE1lbnVJdGVtIHRleHRUcmFja0l0ZW07Ci0gICAgICAgICAgICAgICAgdGV4
dFRyYWNrSXRlbS5pZCA9IGdlbmVyYXRlSUQodGV4dFRyYWNrKTsKLSAgICAgICAgICAgICAgICB0
ZXh0VHJhY2tJdGVtLnRpdGxlID0gY2FwdGlvblByZWZlcmVuY2VzLmRpc3BsYXlOYW1lRm9yVHJh
Y2sodGV4dFRyYWNrLmdldCgpKTsKKyAgICAgICAgICAgICAgICBib29sIGNoZWNrZWQgPSBmYWxz
ZTsKICAgICAgICAgICAgICAgICBpZiAoYWxsVHJhY2tzRGlzYWJsZWQgJiYgdGV4dFRyYWNrID09
ICZUZXh0VHJhY2s6OmNhcHRpb25NZW51T2ZmSXRlbSgpICYmIChjYXB0aW9uUHJlZmVyZW5jZXMu
Y2FwdGlvbkRpc3BsYXlNb2RlKCkgPT0gQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6Rm9yY2VkT25s
eSB8fCBjYXB0aW9uUHJlZmVyZW5jZXMuY2FwdGlvbkRpc3BsYXlNb2RlKCkgPT0gQ2FwdGlvblVz
ZXJQcmVmZXJlbmNlczo6TWFudWFsKSkKLSAgICAgICAgICAgICAgICAgICAgdGV4dFRyYWNrSXRl
bS5pc0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBjaGVja2VkID0gdHJ1ZTsK
ICAgICAgICAgICAgICAgICBlbHNlIGlmICh1c2VzQXV0b21hdGljVHJhY2sgJiYgdGV4dFRyYWNr
ID09ICZUZXh0VHJhY2s6OmNhcHRpb25NZW51QXV0b21hdGljSXRlbSgpKQotICAgICAgICAgICAg
ICAgICAgICB0ZXh0VHJhY2tJdGVtLmlzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICAgICAg
ICAgIGNoZWNrZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgIGVsc2UgaWYgKCF1c2VzQXV0b21h
dGljVHJhY2sgJiYgdGV4dFRyYWNrLT5tb2RlKCkgPT0gVGV4dFRyYWNrOjpNb2RlOjpTaG93aW5n
KQotICAgICAgICAgICAgICAgICAgICB0ZXh0VHJhY2tJdGVtLmlzQ2hlY2tlZCA9IHRydWU7Ci0g
ICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICB0ZXh0VHJhY2tJdGVtLmlz
Q2hlY2tlZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgIHRleHRUcmFja3NJdGVtLmNoaWxkcmVu
LmFwcGVuZChXVEZNb3ZlKHRleHRUcmFja0l0ZW0pKTsKKyAgICAgICAgICAgICAgICAgICAgY2hl
Y2tlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgc3VidGl0bGVNZW51SXRlbXMuYXBwZW5kKGNy
ZWF0ZU1lbnVJdGVtKHRleHRUcmFjaywgY2FwdGlvblByZWZlcmVuY2VzLmRpc3BsYXlOYW1lRm9y
VHJhY2sodGV4dFRyYWNrLmdldCgpKSwgY2hlY2tlZCkpOwogICAgICAgICAgICAgfQogCi0gICAg
ICAgICAgICBpZiAoIXRleHRUcmFja3NJdGVtLmNoaWxkcmVuLmlzRW1wdHkoKSkKLSAgICAgICAg
ICAgICAgICBpdGVtcy5hcHBlbmQoV1RGTW92ZSh0ZXh0VHJhY2tzSXRlbSkpOworICAgICAgICAg
ICAgaWYgKCFzdWJ0aXRsZU1lbnVJdGVtcy5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgaXRl
bXMuYXBwZW5kKGNyZWF0ZVN1Ym1lbnUoV0VCX1VJX1NUUklOR19LRVkoIlN1YnRpdGxlcyIsICJT
dWJ0aXRsZXMgKE1lZGlhIENvbnRyb2xzIE1lbnUpIiwgIlN1YnRpdGxlcyBtZWRpYSBjb250cm9s
cyBjb250ZXh0IG1lbnUgdGl0bGUiKSwgImNhcHRpb25zLmJ1YmJsZSJfcywgV1RGTW92ZShzdWJ0
aXRsZU1lbnVJdGVtcykpKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtNDUyLDEzICs1NjYsMzIg
QEAgYm9vbCBNZWRpYUNvbnRyb2xzSG9zdDo6c2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShI
VE1MRWxlbWVudCYgdGFyZ2V0LCBTdHJpbmcKICAgICBNZWRpYUNvbnRyb2xzSG9zdEFkZGl0aW9u
c19zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51X29wdGlvbnMKICNlbmRpZgogCisjaWYgRU5B
QkxFKENPTlRFWFRfTUVOVVMpICYmIFVTRShBQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMpCisg
ICAgaWYgKG9wdGlvbnNKU09OT2JqZWN0LT5nZXRCb29sZWFuKCJwcm9tb3RlU3ViTWVudXMiX3Mp
LnZhbHVlT3IoZmFsc2UpKSB7CisgICAgICAgIGZvciAoYXV0byYmIGl0ZW0gOiBzdGQ6OmV4Y2hh
bmdlKGl0ZW1zLCB7IH0pKSB7CisgICAgICAgICAgICBpZiAoIWl0ZW1zLmlzRW1wdHkoKSkKKyAg
ICAgICAgICAgICAgICBpdGVtcy5hcHBlbmQoeyBTZXBhcmF0b3JUeXBlLCBpbnZhbGlkTWVudUl0
ZW1JZGVudGlmaWVyLCAvKiB0aXRsZSAqLyBudWxsU3RyaW5nKCkgfSk7CisKKyAgICAgICAgICAg
IEFTU0VSVChpdGVtLnR5cGUoKSA9PSBTdWJtZW51VHlwZSk7CisgICAgICAgICAgICBpdGVtcy5h
cHBlbmQoeyBBY3Rpb25UeXBlLCBpbnZhbGlkTWVudUl0ZW1JZGVudGlmaWVyLCBpdGVtLnRpdGxl
KCksIC8qIGVuYWJsZWQgKi8gZmFsc2UsIC8qIGNoZWNrZWQgKi8gZmFsc2UgfSk7CisgICAgICAg
ICAgICBpdGVtcy5hcHBlbmRWZWN0b3IoV1RGOjptYXAoaXRlbS5zdWJNZW51SXRlbXMoKSwgW10g
KGNvbnN0IGF1dG8mIGl0ZW0pIC0+IENvbnRleHRNZW51SXRlbSB7CisgICAgICAgICAgICAgICAg
Ly8gVGhlIGRpc2FibGVkIGlubGluZSBpdGVtIHVzZWQgaW5zdGVhZCBvZiBhbiBhY3R1YWwgc3Vi
bWVudSBzaG91bGQgYmUgaW5kZW50ZWQgbGVzcyB0aGFuIHRoZSBzdWJtZW51IGl0ZW1zLgorICAg
ICAgICAgICAgICAgIGNvbnN0ZXhwciB1bnNpZ25lZCBpbmRlbnRhdGlvbkxldmVsID0gMTsKKyAg
ICAgICAgICAgICAgICBpZiAoaXRlbS50eXBlKCkgPT0gU3VibWVudVR5cGUpCisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiB7IGl0ZW0uYWN0aW9uKCksIGl0ZW0udGl0bGUoKSwgaXRlbS5lbmFi
bGVkKCksIGl0ZW0uY2hlY2tlZCgpLCBpdGVtLnN1Yk1lbnVJdGVtcygpLCBpbmRlbnRhdGlvbkxl
dmVsIH07CisgICAgICAgICAgICAgICAgcmV0dXJuIHsgaXRlbS50eXBlKCksIGl0ZW0uYWN0aW9u
KCksIGl0ZW0udGl0bGUoKSwgaXRlbS5lbmFibGVkKCksIGl0ZW0uY2hlY2tlZCgpLCBpbmRlbnRh
dGlvbkxldmVsIH07CisgICAgICAgICAgICB9KSk7CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYg
Ly8gRU5BQkxFKENPTlRFWFRfTUVOVVMpICYmIFVTRShBQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVO
VVMpCisKICAgICBpZiAoaXRlbXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICBBU1NFUlQoIWlkTWFwLmlzRW1wdHkoKSk7CiAKLSAgICBwYWdlLT5jaHJvbWUoKS5jbGll
bnQoKS5zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KHRhcmdldC5ib3VuZHNJblJvb3RWaWV3
U3BhY2UoKSwgV1RGTW92ZShpdGVtcyksIFt3ZWFrTWVkaWFFbGVtZW50ID0gbWFrZVdlYWtQdHIo
bWVkaWFFbGVtZW50KSwgaWRNYXAgPSBXVEZNb3ZlKGlkTWFwKSwgaW52b2tlQ2FsbGJhY2tBdFNj
b3BlRXhpdCA9IFdURk1vdmUoaW52b2tlQ2FsbGJhY2tBdFNjb3BlRXhpdCldIChNZWRpYUNvbnRy
b2xzQ29udGV4dE1lbnVJdGVtOjpJRCBzZWxlY3RlZEl0ZW1JRCkgewotICAgICAgICBpZiAoc2Vs
ZWN0ZWRJdGVtSUQgPT0gTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6aW52YWxpZElEKQor
ICAgIGF1dG8gaGFuZGxlSXRlbVNlbGVjdGVkID0gW3dlYWtNZWRpYUVsZW1lbnQgPSBtYWtlV2Vh
a1B0cihtZWRpYUVsZW1lbnQpLCBpZE1hcCA9IFdURk1vdmUoaWRNYXApLCBpbnZva2VDYWxsYmFj
a0F0U2NvcGVFeGl0ID0gV1RGTW92ZShpbnZva2VDYWxsYmFja0F0U2NvcGVFeGl0KV0gKE1lbnVJ
dGVtSWRlbnRpZmllciBzZWxlY3RlZEl0ZW1JRCkgeworICAgICAgICBpZiAoc2VsZWN0ZWRJdGVt
SUQgPT0gaW52YWxpZE1lbnVJdGVtSWRlbnRpZmllcikKICAgICAgICAgICAgIHJldHVybjsKIAog
ICAgICAgICBpZiAoIXdlYWtNZWRpYUVsZW1lbnQpCkBAIC00ODMsOSArNjE2LDIwIEBAIGJvb2wg
TWVkaWFDb250cm9sc0hvc3Q6OnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoSFRNTEVsZW1l
bnQmIHRhcmdldCwgU3RyaW5nCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBNZWRpYUNvbnRy
b2xzSG9zdEFkZGl0aW9uc19zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51X01lbnVEYXRhX3N3
aXRjaE9uCiAgICAgICAgICk7Ci0gICAgfSk7CisgICAgfTsKKworICAgIGF1dG8gYm91bmRzID0g
dGFyZ2V0LmJvdW5kc0luUm9vdFZpZXdTcGFjZSgpOworI2lmIFVTRShVSUNPTlRFWFRNRU5VKQor
ICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUo
Ym91bmRzLCBXVEZNb3ZlKGl0ZW1zKSwgV1RGTW92ZShoYW5kbGVJdGVtU2VsZWN0ZWQpKTsKKyNl
bGlmIEVOQUJMRShDT05URVhUX01FTlVTKSAmJiBVU0UoQUNDRVNTSUJJTElUWV9DT05URVhUX01F
TlVTKQorICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5jb250ZXh0bWVu
dUV2ZW50LCBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVFdmVudExpc3RlbmVyOjpjcmVhdGUoTWVk
aWFDb250cm9sc0NvbnRleHRNZW51UHJvdmlkZXI6OmNyZWF0ZShXVEZNb3ZlKGl0ZW1zKSwgV1RG
TW92ZShoYW5kbGVJdGVtU2VsZWN0ZWQpKSksIHsgLypjYXB0dXJlICovIHRydWUsIC8qIHBhc3Np
dmUgKi8gV1RGOjpudWxsb3B0LCAvKiBvbmNlICovIHRydWUgfSk7CisgICAgcGFnZS0+Y29udGV4
dE1lbnVDb250cm9sbGVyKCkuc2hvd0NvbnRleHRNZW51QXQoKnRhcmdldC5kb2N1bWVudCgpLmZy
YW1lKCksIGJvdW5kcy5jZW50ZXIoKSk7CisjZW5kaWYKIAogICAgIHJldHVybiB0cnVlOworI2Vs
c2UgLy8gVVNFKFVJQ09OVEVYVE1FTlUpIHx8IChFTkFCTEUoQ09OVEVYVF9NRU5VUykgJiYgVVNF
KEFDQ0VTU0lCSUxJVFlfQ09OVEVYVF9NRU5VUykpCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlm
CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRy
b2xzSG9zdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29u
dHJvbHNIb3N0LmgKaW5kZXggMzI1MGQ2M2Y3MjY2MDUzMjYxMDgxNWRjMTI0ZGVkNDNiN2VhZjUx
ZS4uOTA2NTk4OGY2ZjdjYjNkYWFlYjQzOTU3MTIyMzYyMDIxNDE2YTA5MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNI
b3N0LmgKQEAgLTM2LDYgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQXVkaW9U
cmFjazsKIGNsYXNzIEF1ZGlvVHJhY2tMaXN0OwogY2xhc3MgRWxlbWVudDsKK2NsYXNzIEhUTUxF
bGVtZW50OwogY2xhc3MgSFRNTE1lZGlhRWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbFRleHRU
cmFja0NvbnRhaW5lckVsZW1lbnQ7CiBjbGFzcyBUZXh0VHJhY2s7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9iYWNrZ3Jv
dW5kLWNsaWNrLWRlbGVnYXRlLW5vdGlmaWVyLmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvYmFja2dyb3VuZC1jbGljay1kZWxlZ2F0ZS1u
b3RpZmllci5qcwppbmRleCA2YzhiYTllZmFhZDYyYWU5ZWU3NGRmNjFmNjA2OTFkODE0NjQ1Yzk3
Li44MTYwOTgxNDk3Yzk5ZWU2ZmMzMjA3MjIxOWU4MzE3MjlkZDYwOTViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9iYWNr
Z3JvdW5kLWNsaWNrLWRlbGVnYXRlLW5vdGlmaWVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2JhY2tncm91bmQtY2xpY2stZGVs
ZWdhdGUtbm90aWZpZXIuanMKQEAgLTQxLDE2ICs0MSwxOCBAQCBjbGFzcyBCYWNrZ3JvdW5kQ2xp
Y2tEZWxlZ2F0ZU5vdGlmaWVyCiAgICAgICAgIGlmIChldmVudC5jdXJyZW50VGFyZ2V0ICE9PSBt
ZWRpYUNvbnRyb2xzLmVsZW1lbnQpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgLy8g
T25seSBub3RpZnkgdGhhdCB0aGUgYmFja2dyb3VuZCB3YXMgY2xpY2tlZCB3aGVuIHRoZSAibW91
c2Vkb3duIiBldmVudAotICAgICAgICAvLyB3YXMgYWxzbyByZWNlaXZlZCwgd2hpY2ggd291bGRu
J3QgaGFwcGVuIGlmIHRoZSAibW91c2Vkb3duIiBldmVudCBjYXVzZWQKLSAgICAgICAgLy8gdGhl
IHRyYWNrcyBwYW5lbCB0byBiZSBoaWRkZW4sIHVubGVzcyB3ZSdyZSBpbiBmdWxsc2NyZWVuIGlu
IHdoaWNoIGNhc2UKLSAgICAgICAgLy8gd2UgY2FuIHNpbXBseSBjaGVjayB0aGF0IHRoZSBwYW5l
bCBpcyBub3QgY3VycmVudGx5IHByZXNlbnRlZC4KLSAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09
ICJtb3VzZWRvd24iICYmICFtZWRpYUNvbnRyb2xzLnRyYWNrc1BhbmVsLnByZXNlbnRlZCkKKyAg
ICAgICAgLy8gT25seSBub3RpZnkgdGhhdCB0aGUgYmFja2dyb3VuZCB3YXMgY2xpY2tlZCB3aGVu
IHRoZSAibW91c2Vkb3duIiBldmVudCB3YXMgYWxzbyByZWNlaXZlZCwgdW5sZXNzCisgICAgICAg
IC8vIHdlJ3JlIGluIGZ1bGxzY3JlZW4gaW4gd2hpY2ggY2FzZSB3ZSBjYW4gc2ltcGx5IGNoZWNr
IHRoYXQgdGhlIHBhbmVsIGlzIG5vdCBjdXJyZW50bHkgcHJlc2VudGVkLgorICAgICAgICBzd2l0
Y2ggKGV2ZW50LnR5cGUpIHsKKyAgICAgICAgY2FzZSAibW91c2Vkb3duIjoKICAgICAgICAgICAg
IHRoaXMuX3JlY2VpdmVkTW91c2Vkb3duID0gdHJ1ZTsKLSAgICAgICAgZWxzZSBpZiAoZXZlbnQu
dHlwZSA9PT0gImNsaWNrIikgeworICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGNhc2Ug
ImNsaWNrIjoKICAgICAgICAgICAgIGlmICh0aGlzLl9yZWNlaXZlZE1vdXNlZG93biAmJiBldmVu
dC50YXJnZXQgPT09IG1lZGlhQ29udHJvbHMuZWxlbWVudCAmJiBtZWRpYUNvbnRyb2xzLmRlbGVn
YXRlICYmIHR5cGVvZiBtZWRpYUNvbnRyb2xzLmRlbGVnYXRlLm1hY09TQ29udHJvbHNCYWNrZ3Jv
dW5kV2FzQ2xpY2tlZCA9PT0gImZ1bmN0aW9uIikKICAgICAgICAgICAgICAgICBtZWRpYUNvbnRy
b2xzLmRlbGVnYXRlLm1hY09TQ29udHJvbHNCYWNrZ3JvdW5kV2FzQ2xpY2tlZCgpOwogICAgICAg
ICAgICAgZGVsZXRlIHRoaXMuX3JlY2VpdmVkTW91c2Vkb3duCisgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2lubGluZS1tZWRpYS1jb250cm9scy5qcyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2lu
bGluZS1tZWRpYS1jb250cm9scy5qcwppbmRleCA2NmI3NjllY2Q1MjBlNzRjNjYzYzgwMGFmNTZm
Yjk3NDMzY2ZkZmJhLi4xNjdmOTJiM2ZlZWY0MDFmOGNmYzYyNzU4YWViOGZjZWU3Mjk0MjJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9j
b250cm9scy9pbmxpbmUtbWVkaWEtY29udHJvbHMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvaW5saW5lLW1lZGlhLWNvbnRyb2xz
LmpzCkBAIC0xMjYsMTAgKzEyNiw2IEBAIGNsYXNzIElubGluZU1lZGlhQ29udHJvbHMgZXh0ZW5k
cyBNZWRpYUNvbnRyb2xzCiAgICAgICAgIGlmICghdGhpcy5ib3R0b21Db250cm9sc0JhcikKICAg
ICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAvLyBFbnN1cmUgdGhlIHRyYWNrcyBwYW5lbCBp
cyBhIGNoaWxkIGlmIGl0IHdlcmUgcHJlc2VudGVkLgotICAgICAgICBpZiAodGhpcy50cmFja3NQ
YW5lbC5wcmVzZW50ZWQpCi0gICAgICAgICAgICBjaGlsZHJlbi5wdXNoKHRoaXMudHJhY2tzUGFu
ZWwpOwotCiAgICAgICAgIC8vIFVwZGF0ZSB0aGUgdG9wIGxlZnQgY29udHJvbHMgYmFyLgogICAg
ICAgICB0aGlzLl90b3BMZWZ0Q29udHJvbHNCYXJDb250YWluZXIuY2hpbGRyZW4gPSB0aGlzLl90
b3BMZWZ0Q29udGFpbmVyQnV0dG9ucygpOwogICAgICAgICB0aGlzLl90b3BMZWZ0Q29udHJvbHNC
YXJDb250YWluZXIubGF5b3V0KCk7CkBAIC0yNjIsNyArMjU4LDcgQEAgY2xhc3MgSW5saW5lTWVk
aWFDb250cm9scyBleHRlbmRzIE1lZGlhQ29udHJvbHMKICAgICAgICAgICAgIHJldHVybiBbdGhp
cy5tdXRlQnV0dG9uLCB0aGlzLmFpcnBsYXlCdXR0b24sIHRoaXMub3ZlcmZsb3dCdXR0b25dOwog
CiAgICAgICAgIGlmICh0aGlzLl9zaG91bGRVc2VTaW5nbGVCYXJMYXlvdXQpCi0gICAgICAgICAg
ICByZXR1cm4gW3RoaXMubXV0ZUJ1dHRvbiwgdGhpcy5haXJwbGF5QnV0dG9uLCB0aGlzLnBpcEJ1
dHRvbiwgdGhpcy50cmFja3NCdXR0b24sIHRoaXMub3ZlcmZsb3dCdXR0b24sIHRoaXMuZnVsbHNj
cmVlbkJ1dHRvbl07CisgICAgICAgICAgICByZXR1cm4gW3RoaXMubXV0ZUJ1dHRvbiwgdGhpcy5h
aXJwbGF5QnV0dG9uLCB0aGlzLnBpcEJ1dHRvbiwgdGhpcy50cmFja3NCdXR0b24sIHRoaXMuZnVs
bHNjcmVlbkJ1dHRvbiwgdGhpcy5vdmVyZmxvd0J1dHRvbl07CiAKICAgICAgICAgY29uc3QgYnV0
dG9ucyA9IFtdOwogICAgICAgICBpZiAodGhpcy5wcmVmZXJyZWRNdXRlQnV0dG9uU3R5bGUgPT09
IEJ1dHRvbi5TdHlsZXMuQmFyKQpAQCAtMjc0LDExICsyNzAsMTIgQEAgY2xhc3MgSW5saW5lTWVk
aWFDb250cm9scyBleHRlbmRzIE1lZGlhQ29udHJvbHMKICAgICBfZHJvcHBhYmxlQnV0dG9ucygp
CiAgICAgewogICAgICAgICBpZiAodGhpcy5fc2hvdWxkVXNlU2luZ2xlQmFyTGF5b3V0KQotICAg
ICAgICAgICAgcmV0dXJuIFt0aGlzLnNraXBGb3J3YXJkQnV0dG9uLCB0aGlzLnNraXBCYWNrQnV0
dG9uLCB0aGlzLmFpcnBsYXlCdXR0b24sIHRoaXMudHJhY2tzQnV0dG9uLCB0aGlzLm92ZXJmbG93
QnV0dG9uLCB0aGlzLnBpcEJ1dHRvbiwgdGhpcy5mdWxsc2NyZWVuQnV0dG9uLCB0aGlzLm11dGVC
dXR0b25dOworICAgICAgICAgICAgcmV0dXJuIFt0aGlzLnNraXBGb3J3YXJkQnV0dG9uLCB0aGlz
LnNraXBCYWNrQnV0dG9uLCB0aGlzLmFpcnBsYXlCdXR0b24sIHRoaXMudHJhY2tzQnV0dG9uLCB0
aGlzLnBpcEJ1dHRvbiwgdGhpcy5tdXRlQnV0dG9uLCB0aGlzLmZ1bGxzY3JlZW5CdXR0b24sIHRo
aXMub3ZlcmZsb3dCdXR0b25dOwogCi0gICAgICAgIGNvbnN0IGJ1dHRvbnMgPSBbdGhpcy5za2lw
Rm9yd2FyZEJ1dHRvbiwgdGhpcy5za2lwQmFja0J1dHRvbiwgdGhpcy5haXJwbGF5QnV0dG9uLCB0
aGlzLnRyYWNrc0J1dHRvbiwgdGhpcy5vdmVyZmxvd0J1dHRvbl07CisgICAgICAgIGNvbnN0IGJ1
dHRvbnMgPSBbdGhpcy5za2lwRm9yd2FyZEJ1dHRvbiwgdGhpcy5za2lwQmFja0J1dHRvbiwgdGhp
cy5haXJwbGF5QnV0dG9uLCB0aGlzLnRyYWNrc0J1dHRvbl07CiAgICAgICAgIGlmICh0aGlzLnBy
ZWZlcnJlZE11dGVCdXR0b25TdHlsZSA9PT0gQnV0dG9uLlN0eWxlcy5CYXIpCiAgICAgICAgICAg
ICBidXR0b25zLnB1c2godGhpcy5tdXRlQnV0dG9uKTsKKyAgICAgICAgYnV0dG9ucy5wdXNoKHRo
aXMub3ZlcmZsb3dCdXR0b24pOwogICAgICAgICByZXR1cm4gYnV0dG9uczsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2Nv
bnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMuY3NzIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFjb3MtZnVsbHNjcmVl
bi1tZWRpYS1jb250cm9scy5jc3MKaW5kZXggYmE3MGI0NDUwNWQ5MzY3NzkyNjViM2U4NGY4YTg0
ZGZkYTE1ZWQ4MC4uZWUwMDU0N2NiMTJmYjk4MDVmOTc5MjUyYTUzNDJkYjg1ZGIyZGU1YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29u
dHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy5jc3MKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFjb3MtZnVsbHNj
cmVlbi1tZWRpYS1jb250cm9scy5jc3MKQEAgLTI3LDcgKzI3LDYgQEAKIAogLm1lZGlhLWNvbnRy
b2xzLm1hYy5mdWxsc2NyZWVuIHsKICAgICAtLWNvbnRyb2xzLWJhci13aWR0aDogNDY4cHg7Ci0g
ICAgLS10cmFja3MtcGFuZWwtcmlnaHQtbWFyZ2luOiA0MHB4OwogCiAgICAgd2lkdGg6IDEwMCUg
IWltcG9ydGFudDsKICAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21hY29z
LWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21v
ZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRy
b2xzLmpzCmluZGV4IDNiODAyNGEwNWMzZDk0NDViNjkwZGJmMTE5ZDc1YzM5YWVmZGE1YTQuLmQy
OWEzMmY4MmE0NTYyY2QxNzIyMmJmYWJmMzMyMzQ2MTYzMzM4NzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21hY29zLWZ1
bGxzY3JlZW4tbWVkaWEtY29udHJvbHMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250
cm9scy5qcwpAQCAtNjUsNyArNjUsNyBAQCBjbGFzcyBNYWNPU0Z1bGxzY3JlZW5NZWRpYUNvbnRy
b2xzIGV4dGVuZHMgTWVkaWFDb250cm9scwogICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9y
aWdodENvbnRhaW5lciA9IG5ldyBCdXR0b25zQ29udGFpbmVyKHsKLSAgICAgICAgICAgIGNoaWxk
cmVuOiBbdGhpcy5haXJwbGF5QnV0dG9uLCB0aGlzLnBpcEJ1dHRvbiwgdGhpcy50cmFja3NCdXR0
b24sIHRoaXMuZnVsbHNjcmVlbkJ1dHRvbl0sCisgICAgICAgICAgICBjaGlsZHJlbjogW3RoaXMu
YWlycGxheUJ1dHRvbiwgdGhpcy5waXBCdXR0b24sIHRoaXMudHJhY2tzQnV0dG9uLCB0aGlzLmZ1
bGxzY3JlZW5CdXR0b24sIHRoaXMub3ZlcmZsb3dCdXR0b25dLAogICAgICAgICAgICAgY3NzQ2xh
c3NOYW1lOiAicmlnaHQiLAogICAgICAgICAgICAgbGVmdE1hcmdpbjogMTIsCiAgICAgICAgICAg
ICByaWdodE1hcmdpbjogMTIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21lZGlhLWNvbnRyb2xzLmNzcyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21lZGlhLWNvbnRy
b2xzLmNzcwppbmRleCBkMzM5Njk2YmEyMmU4M2IzZjUwYjEzMzAyMjY1ZmQzMzM1ZDVhZjYzLi40
ODEzODYxMjVhMjE3YWJjOTg1YzNjZTdhOTYzMDIwYjAyN2RjNjdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9tZWRpYS1j
b250cm9scy5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvY29udHJvbHMvbWVkaWEtY29udHJvbHMuY3NzCkBAIC05NywxMSArOTcsNiBAQAogICAg
IHRyYW5zaXRpb246IG9wYWNpdHkgMC4xcyBsaW5lYXI7CiB9CiAKLS5tZWRpYS1jb250cm9scy5z
aG93cy10cmFja3MtcGFuZWwgPiAuY29udHJvbHMtYmFyID4gKiwKLS5tZWRpYS1jb250cm9scy5z
aG93cy10cmFja3MtcGFuZWwgPiBidXR0b24gewotICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwot
fQotCiAubWVkaWEtY29udHJvbHMuZmFkZWQgPiAqOm5vdCgucGxhY2FyZCkgewogICAgIG9wYWNp
dHk6IDA7CiAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9tZWRpYS1jb250cm9s
cy5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRy
b2xzL21lZGlhLWNvbnRyb2xzLmpzCmluZGV4IDE1ZjE0MDYyY2NmZTk1OWExZGRlOGVlN2M5N2U4
ODNmNjQ1NmRhMTQuLjU5NGNhYjgzMWUwZmQ1YjAxMzdiZTkzZGMxYzJhNzI4NmU5Y2UzZGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2Nv
bnRyb2xzL21lZGlhLWNvbnRyb2xzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21lZGlhLWNvbnRyb2xzLmpzCkBAIC00OCw4ICs0
OCw2IEBAIGNsYXNzIE1lZGlhQ29udHJvbHMgZXh0ZW5kcyBMYXlvdXROb2RlCiAgICAgICAgIHRo
aXMuc3RhdHVzTGFiZWwgPSBuZXcgU3RhdHVzTGFiZWwodGhpcyk7CiAgICAgICAgIHRoaXMudGlt
ZUNvbnRyb2wgPSBuZXcgVGltZUNvbnRyb2wodGhpcyk7CiAKLSAgICAgICAgdGhpcy50cmFja3NQ
YW5lbCA9IG5ldyBUcmFja3NQYW5lbDsKLQogICAgICAgICB0aGlzLmJvdHRvbUNvbnRyb2xzQmFy
ID0gbmV3IENvbnRyb2xzQmFyKCJib3R0b20iKTsKIAogICAgICAgICB0aGlzLmF1dG9IaWRlQ29u
dHJvbGxlciA9IG5ldyBBdXRvSGlkZUNvbnRyb2xsZXIodGhpcyk7CkBAIC0xNzAsMzMgKzE2OCw2
IEBAIGNsYXNzIE1lZGlhQ29udHJvbHMgZXh0ZW5kcyBMYXlvdXROb2RlCiAgICAgICAgIHJldHVy
biB0aGlzLl9wbGFjYXJkICYmIHRoaXMuX3BsYWNhcmQgIT09IHRoaXMuYWlycGxheVBsYWNhcmQ7
CiAgICAgfQogCi0gICAgc2hvd1RyYWNrc1BhbmVsKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuZWxl
bWVudC5jbGFzc0xpc3QuYWRkKCJzaG93cy10cmFja3MtcGFuZWwiKTsKLQotICAgICAgICB0aGlz
LnRyYWNrc0J1dHRvbi5vbiA9IHRydWU7Ci0gICAgICAgIHRoaXMudHJhY2tzQnV0dG9uLmVsZW1l
bnQuYmx1cigpOwotICAgICAgICB0aGlzLmF1dG9IaWRlQ29udHJvbGxlci5oYXNTZWNvbmRhcnlV
SUF0dGFjaGVkID0gdHJ1ZTsKLSAgICAgICAgdGhpcy50cmFja3NQYW5lbC5wcmVzZW50SW5QYXJl
bnQodGhpcyk7Ci0KLSAgICAgICAgY29uc3QgY29udHJvbHNCb3VuZHMgPSB0aGlzLmVsZW1lbnQu
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICAgIGNvbnN0IGNvbnRyb2xzQmFyQm91bmRz
ID0gdGhpcy5ib3R0b21Db250cm9sc0Jhci5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
OwotICAgICAgICBjb25zdCB0cmFja3NCdXR0b25Cb3VuZHMgPSB0aGlzLnRyYWNrc0J1dHRvbi5l
bGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgICB0aGlzLnRyYWNrc1BhbmVs
LnJpZ2h0WCA9IHRoaXMud2lkdGggLSAodHJhY2tzQnV0dG9uQm91bmRzLnJpZ2h0IC0gY29udHJv
bHNCb3VuZHMubGVmdCk7Ci0gICAgICAgIHRoaXMudHJhY2tzUGFuZWwuYm90dG9tWSA9IHRoaXMu
aGVpZ2h0IC0gKGNvbnRyb2xzQmFyQm91bmRzLnRvcCAtIGNvbnRyb2xzQm91bmRzLnRvcCkgKyAx
OwotICAgICAgICB0aGlzLnRyYWNrc1BhbmVsLm1heEhlaWdodCA9IHRoaXMuaGVpZ2h0IC0gdGhp
cy50cmFja3NQYW5lbC5ib3R0b21ZIC0gMTA7Ci0gICAgfQotCi0gICAgaGlkZVRyYWNrc1BhbmVs
KCkKLSAgICB7Ci0gICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCJzaG93cy10
cmFja3MtcGFuZWwiKTsKLQotICAgICAgICB0aGlzLnRyYWNrc0J1dHRvbi5vbiA9IGZhbHNlOwot
ICAgICAgICB0aGlzLnRyYWNrc0J1dHRvbi5lbGVtZW50LmZvY3VzKCk7Ci0gICAgICAgIHRoaXMu
YXV0b0hpZGVDb250cm9sbGVyLmhhc1NlY29uZGFyeVVJQXR0YWNoZWQgPSBmYWxzZTsKLSAgICAg
ICAgdGhpcy50cmFja3NQYW5lbC5oaWRlKCk7Ci0gICAgfQotCiAgICAgZmFkZUluKCkKICAgICB7
CiAgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJmYWRlLWluIik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9s
cy90cmFja3MtYnV0dG9uLmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvY29udHJvbHMvdHJhY2tzLWJ1dHRvbi5qcwppbmRleCAzNWFkNWRhODQ4NDIwMTM4
OWRmYTY3MDA5OTM5MzA0MmY0YjM3NWFjLi45MDk1Y2YzZDFjYmQ3ZDcxZDc0ZGI2Zjc4MTdjNWU3
ODgzZTFjMTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRp
YS1jb250cm9scy9jb250cm9scy90cmFja3MtYnV0dG9uLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3RyYWNrcy1idXR0b24uanMK
QEAgLTQwLDggKzQwLDggQEAgY2xhc3MgVHJhY2tzQnV0dG9uIGV4dGVuZHMgQnV0dG9uCiAgICAg
Z2V0IGNvbnRleHRNZW51T3B0aW9ucygpCiAgICAgewogICAgICAgICByZXR1cm4gewotICAgICAg
ICAgICAgaW5jbHVkZUF1ZGlvVHJhY2tzOiB0cnVlLAotICAgICAgICAgICAgaW5jbHVkZVRleHRU
cmFja3M6IHRydWUsCisgICAgICAgICAgICBpbmNsdWRlTGFuZ3VhZ2VzOiB0cnVlLAorICAgICAg
ICAgICAgaW5jbHVkZVN1YnRpdGxlczogdHJ1ZSwKICAgICAgICAgfTsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRy
b2xzL3RyYWNrcy1wYW5lbC5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRp
YS1jb250cm9scy9jb250cm9scy90cmFja3MtcGFuZWwuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAyMzZiZDcyYzc4MDczNGYwOTNmYWFmYmFiNmE4NjVhZTZhMWNhNGE2Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3RyYWNrcy1wYW5lbC5jc3MK
KysrIC9kZXYvbnVsbApAQCAtMSwxMTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLS50cmFja3MtcGFuZWwgewotICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKLSAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ci19Ci0KLS50cmFja3MtcGFuZWwgPiAu
c2Nyb2xsYWJsZS1jb250YWluZXIgewotICAgIGJvcmRlci1yYWRpdXM6IDhweDsKLX0KLQotLnRy
YWNrcy1wYW5lbCA+IC5zY3JvbGxhYmxlLWNvbnRhaW5lciB7Ci0gICAgcG9zaXRpb246IHJlbGF0
aXZlOwotICAgIG92ZXJmbG93LXk6IHNjcm9sbDsKLX0KLQotLnRyYWNrcy1wYW5lbCAqIHsKLSAg
ICBmb250LXNpemU6IDE0cHg7Ci0gICAgZm9udC13ZWlnaHQ6IDUwMDsKLX0KLQotLnRyYWNrcy1w
YW5lbC5mYWRlLW91dCB7Ci0gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTsKLSAgICB0
cmFuc2l0aW9uLWR1cmF0aW9uOiAyNjVtczsKLSAgICBvcGFjaXR5OiAwOwotfQotCi0udHJhY2tz
LXBhbmVsIHNlY3Rpb24gewotICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCB2YXIoLS1zZWNvbmRh
cnktZ2x5cGgtY29sb3IpOwotICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07Ci19Ci0KLS50cmFj
a3MtcGFuZWwgc2VjdGlvbjpmaXJzdC1vZi10eXBlIHsKLSAgICBib3JkZXItdG9wOiAwOwotfQot
Ci0udHJhY2tzLXBhbmVsIHNlY3Rpb24gPiBoMyB7Ci0gICAgY29sb3I6IHZhcigtLXByaW1hcnkt
Z2x5cGgtY29sb3IpOwotICAgIG1peC1ibGVuZC1tb2RlOiBwbHVzLWxpZ2h0ZXI7Ci0gICAgcGFk
ZGluZzogNXB4IDIwcHggMXB4IDIxcHg7Ci0gICAgbWFyZ2luOiAwOwotfQotCi0udHJhY2tzLXBh
bmVsIHNlY3Rpb24gPiB1bCB7Ci0gICAgbGlzdC1zdHlsZS10eXBlOiBub25lOwotICAgIG1hcmdp
bi10b3A6IDA7Ci0gICAgcGFkZGluZzogMDsKLX0KLQotLnRyYWNrcy1wYW5lbCBzZWN0aW9uID4g
dWwgPiBsaSB7Ci0gICAgcG9zaXRpb246IHJlbGF0aXZlOwotICAgIHBhZGRpbmc6IDFweCAyMHB4
IDFweCAzM3B4OwotICAgIGNvbG9yOiB3aGl0ZTsKLX0KLQotLnRyYWNrcy1wYW5lbCBzZWN0aW9u
ID4gdWwgPiBsaTpmb2N1cyB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwLCAxMDUsIDIw
OSk7Ci0gICAgb3V0bGluZTogbm9uZTsKLX0KLQotLnRyYWNrcy1wYW5lbCBzZWN0aW9uID4gdWwg
PiBsaS5zZWxlY3RlZDpiZWZvcmUgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6
IDNweDsKLSAgICBsZWZ0OiAxMnB4OwotICAgIHdpZHRoOiAxMnB4OwotICAgIGRpc3BsYXk6IGlu
bGluZS1ibG9jazsKLSAgICBjb250ZW50OiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDMwMCAzMDAiPjxw
b2x5Z29uIGZpbGw9IndoaXRlIiBwb2ludHM9IjI1Mi4zMDEsNC40NzcgMTI2LjY2NywxOTQuMTA0
IDQzLjM1OCwxMDguMyA2Ljg2OCwxNjEuNDA4IDEzMi41MTUsMjkwLjgxNCAyOTcuNzMyLDQ5Ljky
NiIvPjwvc3ZnPicpOwotfQotCi0udHJhY2tzLXBhbmVsIHNlY3Rpb24gPiB1bCA+IGxpLmFuaW1h
dGVkIHsKLSAgICBhbmltYXRpb24tbmFtZTogdHJhY2tzLXBhbmVsLWl0ZW0tc2VsZWN0aW9uOwot
ICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMTUwbXM7Ci0gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5j
dGlvbjogc3RlcC1lbmQ7Ci0gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7Ci19Ci0K
LUBrZXlmcmFtZXMgdHJhY2tzLXBhbmVsLWl0ZW0tc2VsZWN0aW9uIHsKLSAgICAwJSwgNTUuNTUl
IHsKLSAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNiwgNjgsIDI0MywgMC42KTsKLSAg
ICAgICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IHNhdHVyYXRlKDE4MCUpIGJsdXIoMjBweCk7
Ci0gICAgfQotCi0gICAgMjIuMjIlIHsKLSAgICAgICAgYmFja2dyb3VuZDogbm9uZTsKLSAgICAg
ICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IG5vbmU7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvdHJh
Y2tzLXBhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvY29udHJvbHMvdHJhY2tzLXBhbmVsLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBkMzAxNzA1Y2Q0YWQ1MGQ1OTE2ODVhYjMzNTM1OWNlMWQyYzc4ODJhLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3RyYWNrcy1wYW5lbC5qcworKysgL2Rldi9u
dWxsCkBAIC0xLDM0OCArMCwwIEBACi0KLWNsYXNzIFRyYWNrc1BhbmVsIGV4dGVuZHMgTGF5b3V0
Tm9kZQotewotCi0gICAgY29uc3RydWN0b3IoKQotICAgIHsKLSAgICAgICAgc3VwZXIoYDxkaXYg
Y2xhc3M9InRyYWNrcy1wYW5lbCI+PC9kaXY+YCk7Ci0gICAgICAgIHRoaXMuX2JhY2tncm91bmRU
aW50ID0gbmV3IEJhY2tncm91bmRUaW50OwotICAgICAgICB0aGlzLl9zY3JvbGxhYmxlQ29udGFp
bmVyID0gbmV3IExheW91dE5vZGUoYDxkaXYgY2xhc3M9InNjcm9sbGFibGUtY29udGFpbmVyIj48
L2Rpdj5gKTsKLSAgICAgICAgdGhpcy5fcmlnaHRYID0gMDsKLSAgICAgICAgdGhpcy5fYm90dG9t
WSA9IDA7Ci0gICAgICAgIHRoaXMuX3ByZXNlbnRlZCA9IGZhbHNlOwotICAgICAgICAKLSAgICAg
ICAgdGhpcy5jaGlsZHJlbiA9IFt0aGlzLl9iYWNrZ3JvdW5kVGludCwgdGhpcy5fc2Nyb2xsYWJs
ZUNvbnRhaW5lcl07Ci0gICAgfQotCi0gICAgLy8gUHVibGljCi0KLSAgICBnZXQgcHJlc2VudGVk
KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9wcmVzZW50ZWQ7Ci0gICAgfQotCi0gICAg
cHJlc2VudEluUGFyZW50KG5vZGUpCi0gICAgewotICAgICAgICBpZiAodGhpcy5fcHJlc2VudGVk
ICYmIHRoaXMucGFyZW50ID09PSBub2RlKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAg
IHRoaXMuX3ByZXNlbnRlZCA9IHRydWU7Ci0KLSAgICAgICAgdGhpcy5fc2Nyb2xsYWJsZUNvbnRh
aW5lci5jaGlsZHJlbiA9IHRoaXMuX2NoaWxkcmVuRnJvbURhdGFTb3VyY2UoKTsKLQotICAgICAg
ICBub2RlLmFkZENoaWxkKHRoaXMpOwotCi0gICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmVFdmVu
dExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIiwgdGhpcyk7Ci0gICAgICAgIHRoaXMuZWxlbWVudC5j
bGFzc0xpc3QucmVtb3ZlKCJmYWRlLW91dCIpOwotCi0gICAgICAgIHRoaXMuX21vdXNlZG93blRh
cmdldCgpLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHRoaXMsIHRydWUpOwotICAgICAg
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMsIHRydWUpOwotCi0gICAg
ICAgIHRoaXMuX2ZvY3VzZWRUcmFja05vZGUgPSBudWxsOwotICAgIH0KLQotICAgIGhpZGUoKQot
ICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9wcmVzZW50ZWQpCi0gICAgICAgICAgICByZXR1cm47
Ci0KLSAgICAgICAgdGhpcy5fcHJlc2VudGVkID0gZmFsc2U7Ci0KLSAgICAgICAgdGhpcy5fbW91
c2Vkb3duVGFyZ2V0KCkucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdGhpcywgdHJ1
ZSk7Ci0gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcywg
dHJ1ZSk7Ci0KLSAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRp
b25lbmQiLCB0aGlzKTsKLQotICAgICAgICAvLyBFbnN1cmUgYSB0cmFuc2l0aW9uIHdpbGwgaW5k
ZWVkIGhhcHBlbiBieSBzdGFydGluZyBpdCBvbmx5IG9uIHRoZSBuZXh0IGZyYW1lLgotICAgICAg
ICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsgdGhpcy5lbGVtZW50LmNsYXNz
TGlzdC5hZGQoImZhZGUtb3V0Iik7IH0pOwotICAgIH0KLQotICAgIGdldCBtYXhIZWlnaHQoKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX21heEhlaWdodDsKLSAgICB9Ci0KLSAgICBzZXQg
bWF4SGVpZ2h0KGhlaWdodCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9tYXhIZWlnaHQgPT09
IGhlaWdodCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB0aGlzLl9tYXhIZWlnaHQg
PSBoZWlnaHQ7Ci0gICAgICAgIHRoaXMubWFya0RpcnR5UHJvcGVydHkoIm1heEhlaWdodCIpCi0g
ICAgfQotCi0gICAgZ2V0IGJvdHRvbVkoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2Jv
dHRvbVk7Ci0gICAgfQotCi0gICAgc2V0IGJvdHRvbVkoYm90dG9tWSkKLSAgICB7Ci0gICAgICAg
IGlmICh0aGlzLl9ib3R0b21ZID09PSBib3R0b21ZKQotICAgICAgICAgICAgcmV0dXJuOwotCi0g
ICAgICAgIHRoaXMuX2JvdHRvbVkgPSBib3R0b21ZOwotICAgICAgICB0aGlzLm1hcmtEaXJ0eVBy
b3BlcnR5KCJib3R0b21ZIik7Ci0gICAgfQotCi0gICAgZ2V0IHJpZ2h0WCgpCi0gICAgewotICAg
ICAgICByZXR1cm4gdGhpcy5fcmlnaHRYOwotICAgIH0KLQotICAgIHNldCByaWdodFgoeCkKLSAg
ICB7Ci0gICAgICAgIGlmICh0aGlzLl9yaWdodFggPT09IHgpCi0gICAgICAgICAgICByZXR1cm47
Ci0KLSAgICAgICAgdGhpcy5fcmlnaHRYID0geDsKLSAgICAgICAgdGhpcy5tYXJrRGlydHlQcm9w
ZXJ0eSgicmlnaHRYIik7Ci0gICAgfQotCi0gICAgLy8gUHJvdGVjdGVkCi0KLSAgICB0cmFja05v
ZGVTZWxlY3Rpb25BbmltYXRpb25EaWRFbmQodHJhY2tOb2RlKQotICAgIHsKLSAgICAgICAgaWYg
KHRoaXMudWlEZWxlZ2F0ZSAmJiB0eXBlb2YgdGhpcy51aURlbGVnYXRlLnRyYWNrc1BhbmVsU2Vs
ZWN0aW9uRGlkQ2hhbmdlID09PSAiZnVuY3Rpb24iKQotICAgICAgICAgICAgdGhpcy51aURlbGVn
YXRlLnRyYWNrc1BhbmVsU2VsZWN0aW9uRGlkQ2hhbmdlKHRyYWNrTm9kZS5pbmRleCwgdHJhY2tO
b2RlLnNlY3Rpb25JbmRleCk7Ci0gICAgfQotCi0gICAgbW91c2VNb3ZlZE92ZXJUcmFja05vZGUo
dHJhY2tOb2RlKQotICAgIHsKLSAgICAgICAgdGhpcy5fZm9jdXNUcmFja05vZGUodHJhY2tOb2Rl
KTsKLSAgICB9Ci0KLSAgICBtb3VzZUV4aXRlZFRyYWNrTm9kZSh0cmFja05vZGUpCi0gICAgewot
ICAgICAgICB0aGlzLl9mb2N1c2VkVHJhY2tOb2RlLmVsZW1lbnQuYmx1cigpOwotICAgICAgICBk
ZWxldGUgdGhpcy5fZm9jdXNlZFRyYWNrTm9kZTsKLSAgICB9Ci0KLSAgICBjb21taXRQcm9wZXJ0
eShwcm9wZXJ0eU5hbWUpCi0gICAgewotICAgICAgICBpZiAocHJvcGVydHlOYW1lID09PSAicmln
aHRYIikKLSAgICAgICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5yaWdodCA9IGAke3RoaXMuX3Jp
Z2h0WH1weGA7Ci0gICAgICAgIGVsc2UgaWYgKHByb3BlcnR5TmFtZSA9PT0gImJvdHRvbVkiKQot
ICAgICAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmJvdHRvbSA9IGAke3RoaXMuX2JvdHRvbVl9
cHhgOwotICAgICAgICBlbHNlIGlmIChwcm9wZXJ0eU5hbWUgPT09ICJtYXhIZWlnaHQiKSB7Ci0g
ICAgICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUubWF4SGVpZ2h0ID0gYCR7dGhpcy5fbWF4SGVp
Z2h0fXB4YDsKLSAgICAgICAgICAgIHRoaXMuX3Njcm9sbGFibGVDb250YWluZXIuZWxlbWVudC5z
dHlsZS5tYXhIZWlnaHQgPSBgJHt0aGlzLl9tYXhIZWlnaHR9cHhgOwotICAgICAgICB9IGVsc2UK
LSAgICAgICAgICAgIHN1cGVyLmNvbW1pdFByb3BlcnR5KHByb3BlcnR5TmFtZSk7Ci0gICAgfQot
Ci0gICAgaGFuZGxlRXZlbnQoZXZlbnQpCi0gICAgewotICAgICAgICBzd2l0Y2ggKGV2ZW50LnR5
cGUpIHsKLSAgICAgICAgY2FzZSAibW91c2Vkb3duIjoKLSAgICAgICAgICAgIHRoaXMuX2hhbmRs
ZU1vdXNlZG93bihldmVudCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAia2V5
ZG93biI6Ci0gICAgICAgICAgICB0aGlzLl9oYW5kbGVLZXlkb3duKGV2ZW50KTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlICJ0cmFuc2l0aW9uZW5kIjoKLSAgICAgICAgICAgIHRo
aXMucmVtb3ZlKCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLQotICAg
IC8vIFByaXZhdGUKLQotICAgIF9tb3VzZWRvd25UYXJnZXQoKQotICAgIHsKLSAgICAgICAgY29u
c3QgbWVkaWFDb250cm9scyA9IHRoaXMucGFyZW50T2ZUeXBlKE1hY09TRnVsbHNjcmVlbk1lZGlh
Q29udHJvbHMpOwotICAgICAgICBpZiAobWVkaWFDb250cm9scykKLSAgICAgICAgICAgIHJldHVy
biBtZWRpYUNvbnRyb2xzLmVsZW1lbnQ7Ci0gICAgICAgIHJldHVybiB3aW5kb3c7Ci0gICAgfQot
Ci0gICAgX2NoaWxkcmVuRnJvbURhdGFTb3VyY2UoKQotICAgIHsKLSAgICAgICAgY29uc3QgY2hp
bGRyZW4gPSBbXTsKLQotICAgICAgICB0aGlzLl90cmFja05vZGVzID0gW107Ci0KLSAgICAgICAg
Y29uc3QgZGF0YVNvdXJjZSA9IHRoaXMuZGF0YVNvdXJjZTsKLSAgICAgICAgaWYgKCFkYXRhU291
cmNlKQotICAgICAgICAgICAgcmV0dXJuIGNoaWxkcmVuOwotCi0gICAgICAgIGNvbnN0IG51bWJl
ck9mU2VjdGlvbnMgPSBkYXRhU291cmNlLnRyYWNrc1BhbmVsTnVtYmVyT2ZTZWN0aW9ucygpOwot
ICAgICAgICBpZiAobnVtYmVyT2ZTZWN0aW9ucyA9PT0gMCkKLSAgICAgICAgICAgIHJldHVybiBj
aGlsZHJlbjsKLQotICAgICAgICBmb3IgKGxldCBzZWN0aW9uSW5kZXggPSAwOyBzZWN0aW9uSW5k
ZXggPCBudW1iZXJPZlNlY3Rpb25zOyArK3NlY3Rpb25JbmRleCkgewotICAgICAgICAgICAgbGV0
IHNlY3Rpb25Ob2RlID0gbmV3IExheW91dE5vZGUoYDxzZWN0aW9uPjwvc2VjdGlvbj5gKTsKLSAg
ICAgICAgICAgIHNlY3Rpb25Ob2RlLmFkZENoaWxkKG5ldyBMYXlvdXROb2RlKGA8aDM+JHtkYXRh
U291cmNlLnRyYWNrc1BhbmVsVGl0bGVGb3JTZWN0aW9uKHNlY3Rpb25JbmRleCl9PC9oMz5gKSk7
Ci0KLSAgICAgICAgICAgIGxldCB0cmFja3NMaXN0Tm9kZSA9IHNlY3Rpb25Ob2RlLmFkZENoaWxk
KG5ldyBMYXlvdXROb2RlKGA8dWw+PC91bD5gKSk7Ci0gICAgICAgICAgICBsZXQgbnVtYmVyT2ZU
cmFja3MgPSBkYXRhU291cmNlLnRyYWNrc1BhbmVsTnVtYmVyT2ZUcmFja3NJblNlY3Rpb24oc2Vj
dGlvbkluZGV4KTsKLSAgICAgICAgICAgIGZvciAobGV0IHRyYWNrSW5kZXggPSAwOyB0cmFja0lu
ZGV4IDwgbnVtYmVyT2ZUcmFja3M7ICsrdHJhY2tJbmRleCkgewotICAgICAgICAgICAgICAgIGxl
dCB0cmFja1RpdGxlID0gZGF0YVNvdXJjZS50cmFja3NQYW5lbFRpdGxlRm9yVHJhY2tJblNlY3Rp
b24odHJhY2tJbmRleCwgc2VjdGlvbkluZGV4KTsKLSAgICAgICAgICAgICAgICBsZXQgdHJhY2tT
ZWxlY3RlZCA9IGRhdGFTb3VyY2UudHJhY2tzUGFuZWxJc1RyYWNrSW5TZWN0aW9uU2VsZWN0ZWQo
dHJhY2tJbmRleCwgc2VjdGlvbkluZGV4KTsKLSAgICAgICAgICAgICAgICBsZXQgdHJhY2tOb2Rl
ID0gdHJhY2tzTGlzdE5vZGUuYWRkQ2hpbGQobmV3IFRyYWNrTm9kZSh0cmFja0luZGV4LCBzZWN0
aW9uSW5kZXgsIHRyYWNrVGl0bGUsIHRyYWNrU2VsZWN0ZWQsIHRoaXMpKTsKLSAgICAgICAgICAg
ICAgICB0aGlzLl90cmFja05vZGVzLnB1c2godHJhY2tOb2RlKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGNoaWxkcmVuLnB1c2goc2VjdGlvbk5vZGUpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgcmV0dXJuIGNoaWxkcmVuOwotICAgIH0KLQotICAgIF9oYW5kbGVNb3VzZWRvd24oZXZlbnQp
Ci0gICAgewotICAgICAgICBpZiAodGhpcy5faXNQb2ludEluVHJhY2tzUGFuZWwobmV3IERPTVBv
aW50KGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkpKSkKLSAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICB0aGlzLl9kaXNtaXNzKCk7Ci0KLSAgICAgICAgZXZlbnQucHJldmVudERlZmF1
bHQoKTsKLSAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgfQotCi0gICAgX2lz
UG9pbnRJblRyYWNrc1BhbmVsKHBvaW50KQotICAgIHsKLSAgICAgICAgbGV0IGFuY2VzdG9yID0g
dGhpcy5lbGVtZW50LnBhcmVudE5vZGU7Ci0gICAgICAgIHdoaWxlIChhbmNlc3RvciAmJiAhKGFu
Y2VzdG9yIGluc3RhbmNlb2YgU2hhZG93Um9vdCkpCi0gICAgICAgICAgICBhbmNlc3RvciA9IGFu
Y2VzdG9yLnBhcmVudE5vZGU7Ci0KLSAgICAgICAgaWYgKCFhbmNlc3RvcikKLSAgICAgICAgICAg
IGFuY2VzdG9yID0gZG9jdW1lbnQ7Ci0KLSAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5jb250
YWlucyhhbmNlc3Rvci5lbGVtZW50RnJvbVBvaW50KHBvaW50LngsIHBvaW50LnkpKTsKLSAgICB9
Ci0KLSAgICBfaGFuZGxlS2V5ZG93bihldmVudCkKLSAgICB7Ci0gICAgICAgIHN3aXRjaCAoZXZl
bnQua2V5KSB7Ci0gICAgICAgIGNhc2UgIkhvbWUiOgotICAgICAgICBjYXNlICJQYWdlVXAiOgot
ICAgICAgICAgICAgdGhpcy5fZm9jdXNGaXJzdFRyYWNrTm9kZSgpOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgIkVuZCI6Ci0gICAgICAgIGNhc2UgIlBhZ2VEb3duIjoKLSAgICAg
ICAgICAgIHRoaXMuX2ZvY3VzTGFzdFRyYWNrTm9kZSgpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgIkFycm93RG93biI6Ci0gICAgICAgICAgICBpZiAoZXZlbnQuYWx0S2V5IHx8
IGV2ZW50Lm1ldGFLZXkpCi0gICAgICAgICAgICAgICAgdGhpcy5fZm9jdXNMYXN0VHJhY2tOb2Rl
KCk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgdGhpcy5fZm9jdXNOZXh0VHJh
Y2tOb2RlKCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAiQXJyb3dVcCI6Ci0g
ICAgICAgICAgICBpZiAoZXZlbnQuYWx0S2V5IHx8IGV2ZW50Lm1ldGFLZXkpCi0gICAgICAgICAg
ICAgICAgdGhpcy5fZm9jdXNGaXJzdFRyYWNrTm9kZSgpOwotICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIHRoaXMuX2ZvY3VzUHJldmlvdXNUcmFja05vZGUoKTsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlICIgIjoKLSAgICAgICAgY2FzZSAiRW50ZXIiOgotICAgICAg
ICAgICAgaWYgKHRoaXMuX2ZvY3VzZWRUcmFja05vZGUpCi0gICAgICAgICAgICAgICAgdGhpcy5f
Zm9jdXNlZFRyYWNrTm9kZS5hY3RpdmF0ZSgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgIkVzY2FwZSI6Ci0gICAgICAgICAgICB0aGlzLl9kaXNtaXNzKCk7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotCi0gICAgICAgIC8vIEVuc3VyZSB0aGF0IHdlIGRvbid0IGxldCB0aGUgYnJvd3NlciByZWFj
dCB0byBhIGtleSBjb2RlIHdlIGhhbmRsZWQsCi0gICAgICAgIC8vIGZvciBpbnN0YW5jZSBzY3Jv
bGxpbmcgdGhlIHBhZ2UgaWYgd2UgaGFuZGxlZCBhbiBhcnJvdyBrZXkuCi0gICAgICAgIGV2ZW50
LnByZXZlbnREZWZhdWx0KCk7Ci0gICAgfQotCi0gICAgX2Rpc21pc3MoKQotICAgIHsKLSAgICAg
ICAgaWYgKHRoaXMucGFyZW50ICYmIHR5cGVvZiB0aGlzLnBhcmVudC5oaWRlVHJhY2tzUGFuZWwg
PT09ICJmdW5jdGlvbiIpCi0gICAgICAgICAgICB0aGlzLnBhcmVudC5oaWRlVHJhY2tzUGFuZWwo
KTsKLSAgICB9Ci0KLSAgICBfZm9jdXNUcmFja05vZGUodHJhY2tOb2RlKQotICAgIHsKLSAgICAg
ICAgaWYgKCF0cmFja05vZGUgfHwgdHJhY2tOb2RlID09PSB0aGlzLl9mb2N1c2VkVHJhY2tOb2Rl
KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRyYWNrTm9kZS5lbGVtZW50LmZvY3Vz
KCk7Ci0gICAgICAgIHRoaXMuX2ZvY3VzZWRUcmFja05vZGUgPSB0cmFja05vZGU7Ci0gICAgfQot
Ci0gICAgX2ZvY3VzUHJldmlvdXNUcmFja05vZGUoKQotICAgIHsKLSAgICAgICAgY29uc3QgcHJl
dmlvdXNJbmRleCA9IHRoaXMuX2ZvY3VzZWRUcmFja05vZGUgPyB0aGlzLl90cmFja05vZGVzLmlu
ZGV4T2YodGhpcy5fZm9jdXNlZFRyYWNrTm9kZSkgLSAxIDogdGhpcy5fdHJhY2tOb2Rlcy5sZW5n
dGggLSAxOwotICAgICAgICB0aGlzLl9mb2N1c1RyYWNrTm9kZSh0aGlzLl90cmFja05vZGVzW3By
ZXZpb3VzSW5kZXhdKTsKLSAgICB9Ci0KLSAgICBfZm9jdXNOZXh0VHJhY2tOb2RlKCkKLSAgICB7
Ci0gICAgICAgIHRoaXMuX2ZvY3VzVHJhY2tOb2RlKHRoaXMuX3RyYWNrTm9kZXNbdGhpcy5fdHJh
Y2tOb2Rlcy5pbmRleE9mKHRoaXMuX2ZvY3VzZWRUcmFja05vZGUpICsgMV0pOwotICAgIH0KLQot
ICAgIF9mb2N1c0ZpcnN0VHJhY2tOb2RlKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2ZvY3VzVHJh
Y2tOb2RlKHRoaXMuX3RyYWNrTm9kZXNbMF0pOwotICAgIH0KLQotICAgIF9mb2N1c0xhc3RUcmFj
a05vZGUoKQotICAgIHsKLSAgICAgICAgdGhpcy5fZm9jdXNUcmFja05vZGUodGhpcy5fdHJhY2tO
b2Rlc1t0aGlzLl90cmFja05vZGVzLmxlbmd0aCAtIDFdKTsKLSAgICB9Ci0KLX0KLQotY2xhc3Mg
VHJhY2tOb2RlIGV4dGVuZHMgTGF5b3V0Tm9kZQotewotCi0gICAgY29uc3RydWN0b3IoaW5kZXgs
IHNlY3Rpb25JbmRleCwgdGl0bGUsIHNlbGVjdGVkLCBwYW5lbCkKLSAgICB7Ci0gICAgICAgIHN1
cGVyKGA8bGkgdGFiaW5kZXg9IjAiPiR7dGl0bGV9PC9saT5gKTsKLQotICAgICAgICB0aGlzLmlu
ZGV4ID0gaW5kZXg7Ci0gICAgICAgIHRoaXMuc2VjdGlvbkluZGV4ID0gc2VjdGlvbkluZGV4Owot
ICAgICAgICB0aGlzLl9wYW5lbCA9IHBhbmVsOwotICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IHNl
bGVjdGVkOwotCi0gICAgICAgIGlmIChzZWxlY3RlZCkKLSAgICAgICAgICAgIHRoaXMuZWxlbWVu
dC5jbGFzc0xpc3QuYWRkKCJzZWxlY3RlZCIpOwotCi0gICAgICAgIHRoaXMuZWxlbWVudC5hZGRF
dmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCB0aGlzKTsKLSAgICAgICAgdGhpcy5lbGVtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLCB0aGlzKTsKLSAgICAgICAgdGhpcy5lbGVtZW50
LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcyk7Ci0gICAgfQotCi0gICAgLy8gUHVibGlj
Ci0KLSAgICBhY3RpdmF0ZSgpCi0gICAgewotICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigiYW5pbWF0aW9uZW5kIiwgdGhpcyk7Ci0gICAgICAgIHRoaXMuZWxlbWVudC5jbGFz
c0xpc3QuYWRkKCJhbmltYXRlZCIpOwotICAgIH0KLQotICAgIC8vIFByb3RlY3RlZAotCi0gICAg
aGFuZGxlRXZlbnQoZXZlbnQpCi0gICAgewotICAgICAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHsK
LSAgICAgICAgY2FzZSAibW91c2Vtb3ZlIjoKLSAgICAgICAgICAgIHRoaXMuX3BhbmVsLm1vdXNl
TW92ZWRPdmVyVHJhY2tOb2RlKHRoaXMpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgIm1vdXNlbGVhdmUiOgotICAgICAgICAgICAgdGhpcy5fcGFuZWwubW91c2VFeGl0ZWRUcmFj
a05vZGUodGhpcyk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAiY2xpY2siOgot
ICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZSgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgImFuaW1hdGlvbmVuZCI6Ci0gICAgICAgICAgICB0aGlzLl9hbmltYXRpb25EaWRFbmQo
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8gUHJpdmF0
ZQotCi0gICAgX2FuaW1hdGlvbkRpZEVuZCgpCi0gICAgewotICAgICAgICB0aGlzLmVsZW1lbnQu
cmVtb3ZlRXZlbnRMaXN0ZW5lcigiYW5pbWF0aW9uZW5kIiwgdGhpcyk7Ci0gICAgICAgIHRoaXMu
X3BhbmVsLnRyYWNrTm9kZVNlbGVjdGlvbkFuaW1hdGlvbkRpZEVuZCh0aGlzKTsKLSAgICB9Ci0K
LX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL2ltYWdlcy9tYWNPUy9PdmVyZmxvdy5zdmcgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21v
ZGVybi1tZWRpYS1jb250cm9scy9pbWFnZXMvbWFjT1MvT3ZlcmZsb3cuc3ZnCmluZGV4IGVjZjFi
MjQ4YzU4ZGNmYjk4ZGNjNTc2YWJiM2E2NzJlODY2YmFkZDYuLmY4MWRjN2ZlNWJjMDQ2ZjQ3YWMz
OTE0NTMyNzg4MDgwZGIwYmJiMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL2ltYWdlcy9tYWNPUy9PdmVyZmxvdy5zdmcKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvaW1hZ2VzL21hY09TL092
ZXJmbG93LnN2ZwpAQCAtMSw0ICsxLDQgQEAKIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9
IlVURi04Ij8+CiA8c3ZnIHdpZHRoPSIxNnB4IiBoZWlnaHQ9IjEzcHgiIHZpZXdCb3g9IjAgMCAx
NiAxMyIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgot
ICAgIDxwYXRoIGQ9Ik0zLjQ2NTQyMjgsNi41MDAxMDMyMyBDMy40NjU0MjI4LDUuNTY3NjQ3MzEg
Mi43MDkzNjI1OCw0LjgyIDEuNzYwMTE1MjcsNC44MiBDMC44MzYwNTUwNTQsNC44MiAwLjA4LDUu
NTY3NjQ3MzEgMC4wOCw2LjUwMDEwMzIzIEMwLjA4LDcuNDMyNTU5MTQgMC44MzYwNTUwNTQsOC4x
ODAyMDY0NSAxLjc2MDExNTI3LDguMTgwMjA2NDUgQzIuNzA5MzYyNTgsOC4xODAyMDY0NSAzLjQ2
NTQyMjgsNy40MzI1NTkxNCAzLjQ2NTQyMjgsNi41MDAxMDMyMyBaIE05LjY4MTgxODQ5LDYuNTAw
MTAzMjMgQzkuNjgxODE4NDksNS41Njc2NDczMSA4LjkzNDE3MTE4LDQuODIgOC4wMDE3MTUyNyw0
LjgyIEM3LjA3NzY1NTA1LDQuODIgNi4zMzAwMDc3NCw1LjU2NzY0NzMxIDYuMzMwMDA3NzQsNi41
MDAxMDMyMyBDNi4zMzAwMDc3NCw3LjQzMjU1OTE0IDcuMDc3NjU1MDUsOC4xODAyMDY0NSA4LjAw
MTcxNTI3LDguMTgwMjA2NDUgQzguOTM0MTcxMTgsOC4xODAyMDY0NSA5LjY4MTgxODQ5LDcuNDMy
NTU5MTQgOS42ODE4MTg0OSw2LjUwMDEwMzIzIFogTTE1LjkyMzQwMTMsNi41MDAxMDMyMyBDMTUu
OTIzNDAxMyw1LjU2NzY0NzMxIDE1LjE3NTc3MTIsNC44MiAxNC4yNDMzMTUzLDQuODIgQzEzLjI5
NDA1MDgsNC44MiAxMi41NDY0MDM0LDUuNTY3NjQ3MzEgMTIuNTQ2NDAzNCw2LjUwMDEwMzIzIEMx
Mi41NDY0MDM0LDcuNDMyNTU5MTQgMTMuMjk0MDUwOCw4LjE4MDIwNjQ1IDE0LjI0MzMxNTMsOC4x
ODAyMDY0NSBDMTUuMTc1NzcxMiw4LjE4MDIwNjQ1IDE1LjkyMzQwMTMsNy40MzI1NTkxNCAxNS45
MjM0MDEzLDYuNTAwMTAzMjMgWiIvPgorICAgIDxwYXRoIGQ9Ik04LjM2MDI4MDIzLDEyLjkxMDc4
MjkgQzguNTUyMTgxNCwxMi45MTA3ODI5IDguNzE0NTYwNDcsMTIuODM2OTcxNiA4Ljg0MDA0MDcs
MTIuNzExNDk1OSBMMTQuNjg1ODUzNSw2Ljk5ODYwODE0IEMxNC44MjU5ODE0LDYuODU4MzU5MyAx
NC45MDcxNTU4LDYuNjg4NjAzNDkgMTQuOTA3MTU1OCw2LjUwNDA3OTA3IEMxNC45MDcxNTU4LDYu
MzEyMTc3OTEgMTQuODI1OTgxNCw2LjEyNzY1MzQ5IDE0LjY4NTg1MzUsNi4wMDk1NSBMOC44NDAw
NDA3LDAuMjg5Mjc3OTA3IEM4LjcwNzE4MzcyLDAuMTYzNzk3Njc0IDguNTUyMTgxNCwwLjA5IDgu
MzYwMjgwMjMsMC4wOSBDNy45NzY0NjI3OSwwLjA5IDcuNjgxMjI2NzQsMC4zODUyMzYwNDcgNy42
ODEyMjY3NCwwLjc2OTAzODM3MiBDNy42ODEyMjY3NCwwLjk0NjE4NjA0NyA3Ljc2MjQxNjI4LDEu
MTIzMzMzNzIgNy44ODA1MDQ2NSwxLjI0ODgxMzk1IEwxMy4yNTM4NzMzLDYuNTA0MDc5MDcgTDcu
ODgwNTA0NjUsMTEuNzU5MzQ3MSBDNy43NjI0MTYyOCwxMS44ODQ4MjQgNy42ODEyMjY3NCwxMi4w
NTQ1ODYzIDcuNjgxMjI2NzQsMTIuMjM5MTEyMiBDNy42ODEyMjY3NCwxMi42MjI5MjM2IDcuOTc2
NDYyNzksMTIuOTEwNzgyOSA4LjM2MDI4MDIzLDEyLjkxMDc4MjkgWiBNMS43NjE2NjE2MywxMi45
MTA3ODI5IEMxLjk1MzU3NzkxLDEyLjkxMDc4MjkgMi4xMTU5NTY5OCwxMi44MzY5NzE2IDIuMjQ4
ODEzOTUsMTIuNzExNDk1OSBMOC4wOTQ1NjYyOCw2Ljk5ODYwODE0IEM4LjIzNDgsNi44NTgzNTkz
IDguMzA4NjEyNzksNi42ODg2MDM0OSA4LjMwODYxMjc5LDYuNTA0MDc5MDcgQzguMzA4NjEyNzks
Ni4zMTIxNzc5MSA4LjIzNDgsNi4xMjc2NTM0OSA4LjA5NDU2NjI4LDYuMDA5NTUgTDIuMjQxNDM3
MjEsMC4yODkyNzc5MDcgQzIuMTE1OTU2OTgsMC4xNjM3OTc2NzQgMS45NTM1Nzc5MSwwLjA5IDEu
NzYxNjYxNjMsMC4wOSBDMS4zNzc4NTkzLDAuMDkgMS4wOSwwLjM4NTIzNjA0NyAxLjA5LDAuNzY5
MDM4MzcyIEMxLjA5LDAuOTQ2MTg2MDQ3IDEuMTYzODEyNzksMS4xMjMzMzM3MiAxLjI4MTkwMTE2
LDEuMjQ4ODEzOTUgTDYuNjU1MjY5NzcsNi41MDQwNzkwNyBMMS4yODE5MDExNiwxMS43NTkzNDcx
IEMxLjE2MzgxMjc5LDExLjg4NDgyNCAxLjA5LDEyLjA1NDU4NjMgMS4wOSwxMi4yMzkxMTIyIEMx
LjA5LDEyLjYyMjkyMzYgMS4zNzc4NTkzLDEyLjkxMDc4MjkgMS43NjE2NjE2MywxMi45MTA3ODI5
IFoiLz4KIDwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvanMtZmlsZXMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1t
ZWRpYS1jb250cm9scy9qcy1maWxlcwppbmRleCBkMWM5ZTkxYjc0MTVmY2NkN2Q2ZmZkOTgyYjgw
YTRiMmNmN2JkOWE0Li42YTc4MzBhYTA0NTgzMzAyODVhZWIzY2EwNzdjMzk5ZWFlOWExYmYyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9q
cy1maWxlcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9s
cy9qcy1maWxlcwpAQCAtMjYsNyArMjYsNiBAQCBjb250cm9scy9vdmVyZmxvdy1idXR0b24uanMK
IGNvbnRyb2xzL2J1dHRvbnMtY29udGFpbmVyLmpzCiBjb250cm9scy9zdGF0dXMtbGFiZWwuanMK
IGNvbnRyb2xzL2NvbnRyb2xzLWJhci5qcwotY29udHJvbHMvdHJhY2tzLXBhbmVsLmpzCiBjb250
cm9scy9hdXRvLWhpZGUtY29udHJvbGxlci5qcwogY29udHJvbHMvbWVkaWEtY29udHJvbHMuanMK
IGNvbnRyb2xzL2JhY2tncm91bmQtY2xpY2stZGVsZWdhdGUtbm90aWZpZXIuanMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhL21l
ZGlhLWNvbnRyb2xsZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1j
b250cm9scy9tZWRpYS9tZWRpYS1jb250cm9sbGVyLmpzCmluZGV4IGMzZjJmMzQyZDY1Y2JlYjlj
ODEzMTRmM2Q0N2IxM2QyYjYzOGRiZDkuLmZmNmFkZmQ4YjNmZjQxMjhjYzBjZjk2ZWZjYzZjZGYy
MDFmMWM1ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL21lZGlhL21lZGlhLWNvbnRyb2xsZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEvbWVkaWEtY29udHJvbGxlci5qcwpA
QCAtMTMyLDE0ICsxMzIsMTQgQEAgY2xhc3MgTWVkaWFDb250cm9sbGVyCiAgICAgICAgIHJldHVy
biAhIXRoaXMuaG9zdD8uc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudTsKICAgICB9CiAKLSAg
ICBzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KGJ1dHRvbikKKyAgICBzaG93TWVkaWFDb250
cm9sc0NvbnRleHRNZW51KGJ1dHRvbiwgb3B0aW9ucyA9IHt9KQogICAgIHsKICAgICAgICAgaWYg
KCF0aGlzLmNhblNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICAgICAgbGV0IGF1dG9IaWRlQ29udHJvbGxlciA9IHRoaXMuY29udHJv
bHMuYXV0b0hpZGVDb250cm9sbGVyOwogCi0gICAgICAgIGxldCB3aWxsU2hvd0NvbnRleHRNZW51
ID0gdGhpcy5ob3N0LnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoYnV0dG9uLmVsZW1lbnQs
IGJ1dHRvbi5jb250ZXh0TWVudU9wdGlvbnMsICgpID0+IHsKKyAgICAgICAgbGV0IHdpbGxTaG93
Q29udGV4dE1lbnUgPSB0aGlzLmhvc3Quc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShidXR0
b24uZWxlbWVudCwgey4uLmJ1dHRvbi5jb250ZXh0TWVudU9wdGlvbnMsIC4uLm9wdGlvbnN9LCAo
KSA9PiB7CiAgICAgICAgICAgICBidXR0b24ub24gPSBmYWxzZTsKICAgICAgICAgICAgIGF1dG9I
aWRlQ29udHJvbGxlci5oYXNTZWNvbmRhcnlVSUF0dGFjaGVkID0gZmFsc2U7CiAgICAgICAgIH0p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvbWVkaWEvdHJhY2tzLXN1cHBvcnQuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVy
bi1tZWRpYS1jb250cm9scy9tZWRpYS90cmFja3Mtc3VwcG9ydC5qcwppbmRleCA2N2ZjOWM2ZjIw
ZjI5N2FjZWFlNzFlYTMwYTZkZWZmOTAyNDNlZTkxLi5lNzdmYjJkYTM2NDFjYjRlYWE2ZTY0NDBh
M2QwOTE5YmNjMjFiY2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVy
bi1tZWRpYS1jb250cm9scy9tZWRpYS90cmFja3Mtc3VwcG9ydC5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS90cmFja3Mtc3VwcG9ydC5q
cwpAQCAtMjYsMTcgKzI2LDYgQEAKIGNsYXNzIFRyYWNrc1N1cHBvcnQgZXh0ZW5kcyBNZWRpYUNv
bnRyb2xsZXJTdXBwb3J0CiB7CiAKLSAgICBjb25zdHJ1Y3RvcihtZWRpYUNvbnRyb2xsZXIpCi0g
ICAgewotICAgICAgICBzdXBlcihtZWRpYUNvbnRyb2xsZXIpOwotCi0gICAgICAgIGlmICghdGhp
cy5jb250cm9sKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMubWVkaWFDb250
cm9sbGVyLmNvbnRyb2xzLnRyYWNrc1BhbmVsLmRhdGFTb3VyY2UgPSB0aGlzOwotICAgICAgICB0
aGlzLm1lZGlhQ29udHJvbGxlci5jb250cm9scy50cmFja3NQYW5lbC51aURlbGVnYXRlID0gdGhp
czsKLSAgICB9Ci0KICAgICAvLyBQcm90ZWN0ZWQKIAogICAgIGdldCBjb250cm9sKCkKQEAgLTU2
LDg1ICs0NSwxNCBAQCBjbGFzcyBUcmFja3NTdXBwb3J0IGV4dGVuZHMgTWVkaWFDb250cm9sbGVy
U3VwcG9ydAogCiAgICAgYnV0dG9uV2FzUHJlc3NlZChjb250cm9sKQogICAgIHsKLSAgICAgICAg
aWYgKHRoaXMubWVkaWFDb250cm9sbGVyLnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoY29u
dHJvbCkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKHRoaXMubWVkaWFDb250
cm9sbGVyLmxheW91dFRyYWl0cyAmIExheW91dFRyYWl0cy5tYWNPUykKLSAgICAgICAgICAgIHRo
aXMubWVkaWFDb250cm9sbGVyLmNvbnRyb2xzLnNob3dUcmFja3NQYW5lbCgpOwotICAgIH0KLQot
ICAgIHRyYWNrc1BhbmVsTnVtYmVyT2ZTZWN0aW9ucygpCi0gICAgewotICAgICAgICBsZXQgbnVt
YmVyT2ZTZWN0aW9ucyA9IDA7Ci0gICAgICAgIGlmICh0aGlzLl9jYW5QaWNrQXVkaW9UcmFja3Mo
KSkKLSAgICAgICAgICAgIG51bWJlck9mU2VjdGlvbnMrKzsKLSAgICAgICAgaWYgKHRoaXMuX2Nh
blBpY2tUZXh0VHJhY2tzKCkpCi0gICAgICAgICAgICBudW1iZXJPZlNlY3Rpb25zKys7Ci0gICAg
ICAgIHJldHVybiBudW1iZXJPZlNlY3Rpb25zOwotICAgIH0KLQotICAgIHRyYWNrc1BhbmVsVGl0
bGVGb3JTZWN0aW9uKHNlY3Rpb25JbmRleCkKLSAgICB7Ci0gICAgICAgIGlmIChzZWN0aW9uSW5k
ZXggPT0gMCAmJiB0aGlzLl9jYW5QaWNrQXVkaW9UcmFja3MoKSkKLSAgICAgICAgICAgIHJldHVy
biBVSVN0cmluZygiQXVkaW8iKTsKLSAgICAgICAgcmV0dXJuIFVJU3RyaW5nKCJTdWJ0aXRsZXMi
KTsKLSAgICB9Ci0KLSAgICB0cmFja3NQYW5lbE51bWJlck9mVHJhY2tzSW5TZWN0aW9uKHNlY3Rp
b25JbmRleCkKLSAgICB7Ci0gICAgICAgIGlmIChzZWN0aW9uSW5kZXggPT0gMCAmJiB0aGlzLl9j
YW5QaWNrQXVkaW9UcmFja3MoKSkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLl9hdWRpb1RyYWNr
cygpLmxlbmd0aDsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3RleHRUcmFja3MoKS5sZW5ndGg7Ci0g
ICAgfQotCi0gICAgdHJhY2tzUGFuZWxUaXRsZUZvclRyYWNrSW5TZWN0aW9uKHRyYWNrSW5kZXgs
IHNlY3Rpb25JbmRleCkKLSAgICB7Ci0gICAgICAgIGxldCB0cmFjazsKLSAgICAgICAgaWYgKHNl
Y3Rpb25JbmRleCA9PSAwICYmIHRoaXMuX2NhblBpY2tBdWRpb1RyYWNrcygpKQotICAgICAgICAg
ICAgdHJhY2sgPSB0aGlzLl9hdWRpb1RyYWNrcygpW3RyYWNrSW5kZXhdOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICB0cmFjayA9IHRoaXMuX3RleHRUcmFja3MoKVt0cmFja0luZGV4XTsKLQot
ICAgICAgICBpZiAodGhpcy5tZWRpYUNvbnRyb2xsZXIuaG9zdCkKLSAgICAgICAgICAgIHJldHVy
biB0aGlzLm1lZGlhQ29udHJvbGxlci5ob3N0LmRpc3BsYXlOYW1lRm9yVHJhY2sodHJhY2spOwot
ICAgICAgICByZXR1cm4gdHJhY2subGFiZWw7Ci0gICAgfQotCi0gICAgdHJhY2tzUGFuZWxJc1Ry
YWNrSW5TZWN0aW9uU2VsZWN0ZWQodHJhY2tJbmRleCwgc2VjdGlvbkluZGV4KQotICAgIHsKLSAg
ICAgICAgaWYgKHNlY3Rpb25JbmRleCA9PSAwICYmIHRoaXMuX2NhblBpY2tBdWRpb1RyYWNrcygp
KQotICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2F1ZGlvVHJhY2tzKClbdHJhY2tJbmRleF0uZW5h
YmxlZDsKLQotICAgICAgICBjb25zdCB0ZXh0VHJhY2tzID0gdGhpcy5fdGV4dFRyYWNrcygpOwot
ICAgICAgICBjb25zdCB0cmFja0l0ZW0gPSB0ZXh0VHJhY2tzW3RyYWNrSW5kZXhdOwotICAgICAg
ICBjb25zdCBob3N0ID0gdGhpcy5tZWRpYUNvbnRyb2xsZXIuaG9zdDsKLSAgICAgICAgY29uc3Qg
dHJhY2tJc1Nob3dpbmcgPSB0cmFjayA9PiB0cmFjay5tb2RlID09PSAic2hvd2luZyI7Ci0gICAg
ICAgIGNvbnN0IGFsbFRyYWNrc0Rpc2FibGVkID0gIXRleHRUcmFja3Muc29tZSh0cmFja0lzU2hv
d2luZyk7Ci0gICAgICAgIGNvbnN0IHVzZXNBdXRvbWF0aWNUcmFjayA9IGhvc3QgPyAoaG9zdC5j
YXB0aW9uRGlzcGxheU1vZGUgPT09ICJhdXRvbWF0aWMiICYmIGFsbFRyYWNrc0Rpc2FibGVkKSA6
IGZhbHNlOwotCi0gICAgICAgIGlmIChhbGxUcmFja3NEaXNhYmxlZCAmJiBob3N0ICYmIHRyYWNr
SXRlbSA9PT0gaG9zdC5jYXB0aW9uTWVudU9mZkl0ZW0gJiYgKGhvc3QuY2FwdGlvbkRpc3BsYXlN
b2RlID09PSAiZm9yY2VkLW9ubHkiIHx8IGhvc3QuY2FwdGlvbkRpc3BsYXlNb2RlID09PSAibWFu
dWFsIikpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKGhvc3QgJiYgdHJh
Y2tJdGVtID09PSBob3N0LmNhcHRpb25NZW51QXV0b21hdGljSXRlbSAmJiB1c2VzQXV0b21hdGlj
VHJhY2spCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgcmV0dXJuICF1c2VzQXV0
b21hdGljVHJhY2sgJiYgdHJhY2tJc1Nob3dpbmcodHJhY2tJdGVtKTsKLSAgICB9Ci0KLSAgICB0
cmFja3NQYW5lbFNlbGVjdGlvbkRpZENoYW5nZSh0cmFja0luZGV4LCBzZWN0aW9uSW5kZXgpCi0g
ICAgewotICAgICAgICBpZiAoc2VjdGlvbkluZGV4ID09IDAgJiYgdGhpcy5fY2FuUGlja0F1ZGlv
VHJhY2tzKCkpCi0gICAgICAgICAgICB0aGlzLl9hdWRpb1RyYWNrcygpLmZvckVhY2goKGF1ZGlv
VHJhY2ssIGluZGV4KSA9PiBhdWRpb1RyYWNrLmVuYWJsZWQgPSBpbmRleCA9PT0gdHJhY2tJbmRl
eCk7Ci0gICAgICAgIGVsc2UgaWYgKHRoaXMubWVkaWFDb250cm9sbGVyLmhvc3QpIHsKLSAgICAg
ICAgICAgIHRoaXMuX3RleHRUcmFja3MoKS5mb3JFYWNoKHRleHRUcmFjayA9PiB0ZXh0VHJhY2su
bW9kZSA9ICJkaXNhYmxlZCIpOwotICAgICAgICAgICAgdGhpcy5tZWRpYUNvbnRyb2xsZXIuaG9z
dC5zZXRTZWxlY3RlZFRleHRUcmFjayh0aGlzLl90ZXh0VHJhY2tzKClbdHJhY2tJbmRleF0pOwot
ICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHRoaXMuX3RleHRUcmFja3MoKS5mb3JFYWNoKCh0
ZXh0VHJhY2ssIGluZGV4KSA9PiB0ZXh0VHJhY2subW9kZSA9IGluZGV4ID09PSB0cmFja0luZGV4
ID8gInNob3dpbmciIDogImRpc2FibGVkIik7Ci0KLSAgICAgICAgdGhpcy5tZWRpYUNvbnRyb2xs
ZXIuY29udHJvbHMuaGlkZVRyYWNrc1BhbmVsKCk7CisgICAgICAgIHRoaXMubWVkaWFDb250cm9s
bGVyLnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoY29udHJvbCwgeworICAgICAgICAgICAg
cHJvbW90ZVN1Yk1lbnVzOiAhISh0aGlzLm1lZGlhQ29udHJvbGxlci5sYXlvdXRUcmFpdHMgJiBM
YXlvdXRUcmFpdHMubWFjT1MpLAorICAgICAgICB9KTsKICAgICB9CiAKICAgICBzeW5jQ29udHJv
bCgpCiAgICAgewotICAgICAgICB0aGlzLmNvbnRyb2wuZW5hYmxlZCA9ICh0aGlzLm1lZGlhQ29u
dHJvbGxlci5sYXlvdXRUcmFpdHMgJiBMYXlvdXRUcmFpdHMubWFjT1MgfHwgdGhpcy5tZWRpYUNv
bnRyb2xsZXIuY2FuU2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudSkgJiYgKHRoaXMuX2NhblBp
Y2tBdWRpb1RyYWNrcygpIHx8IHRoaXMuX2NhblBpY2tUZXh0VHJhY2tzKCkpOworICAgICAgICB0
aGlzLmNvbnRyb2wuZW5hYmxlZCA9IHRoaXMubWVkaWFDb250cm9sbGVyLmNhblNob3dNZWRpYUNv
bnRyb2xzQ29udGV4dE1lbnUgJiYgKHRoaXMuX2NhblBpY2tBdWRpb1RyYWNrcygpIHx8IHRoaXMu
X2NhblBpY2tUZXh0VHJhY2tzKCkpOwogICAgIH0KIAogICAgIC8vIFByaXZhdGUKQEAgLTE2Myw3
ICs4MSw3IEBAIGNsYXNzIFRyYWNrc1N1cHBvcnQgZXh0ZW5kcyBNZWRpYUNvbnRyb2xsZXJTdXBw
b3J0CiAKICAgICBfc29ydGVkVHJhY2tMaXN0KHRyYWNrcykKICAgICB7Ci0gICAgICAgIHJldHVy
biBBcnJheS5mcm9tKHRoaXMubWVkaWFDb250cm9sbGVyLmhvc3QgPyB0aGlzLm1lZGlhQ29udHJv
bGxlci5ob3N0LnNvcnRlZFRyYWNrTGlzdEZvck1lbnUodHJhY2tzKSA6IHRyYWNrcyk7CisgICAg
ICAgIHJldHVybiB0aGlzLm1lZGlhQ29udHJvbGxlci5ob3N0ID8gdGhpcy5tZWRpYUNvbnRyb2xs
ZXIuaG9zdC5zb3J0ZWRUcmFja0xpc3RGb3JNZW51KHRyYWNrcykgOiBBcnJheS5mcm9tKHRyYWNr
cyk7CiAgICAgfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggYTBjMDU0ZGM0Mzk4OTc1N2NiOTM0ZGIyMmYyMTc4ZmYwYjEx
OGI2MC4uZTc5Mjk2MWU5YTg0Yjg1NTEzYzAwOTZhZmRlMTQwYjM4N2NlNGY3NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTAw
MzIsOCArMTAwMzIsNiBAQAogCQk3MTNGMUQ1QzIzREYyNTYwMDAzRjVFRkEgLyogSlNHZXRBbmlt
YXRpb25zT3B0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0dldEFuaW1hdGlvbnNPcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzE0MTMxNDcxREM5RDZBRjAwMzM2MTA3IC8qIGZ1bGxzY3JlZW4tc3VwcG9ydC5qcyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9ICJmdWxsc2NyZWVuLXN1cHBvcnQuanMi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MTQxMzE0ODFEQzlENkVGMDAzMzYxMDcg
LyoganMtZmlsZXMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gImpzLWZpbGVzIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNzE0NkRGOEIxREVGQzJFRDAwNDZGOThCIC8qIHRyYWNrcy1w
YW5lbC5jc3MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LmNzczsgcGF0aCA9ICJ0cmFja3MtcGFuZWwuY3NzIjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNzE0NkRGOEMxREVGQzJFRDAwNDZGOThCIC8q
IHRyYWNrcy1wYW5lbC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9
ICJ0cmFja3MtcGFuZWwuanMiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MTQ5NURE
ODIwMkIwNkRDMDBBREZEMzQgLyogSlNFZmZlY3RUaW1pbmcuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNFZmZlY3RUaW1pbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3MTQ5NUREQTIwMkIwNkRFMDBBREZEMzQgLyogSlNFZmZlY3RUaW1pbmcu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFZmZlY3RUaW1pbmcuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzE0QzdDNjAxRkRBRDI3OTAwRjJCRUUxIC8qIEFu
aW1hdGlvblBsYXliYWNrRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQW5pbWF0aW9uUGxheWJhY2tFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yMjY4MCw4ICsyMjY3OCw2IEBACiAJCQkJNzE2RkEwRkMxREIyNjU5MTAwNzMyM0ND
IC8qIHRpbWUtbGFiZWwuY3NzICovLAogCQkJCTcxNkZBMEZEMURCMjY1OTEwMDczMjNDQyAvKiB0
aW1lLWxhYmVsLmpzICovLAogCQkJCTcxNkZBMEZFMURCMjY1OTEwMDczMjNDQyAvKiB0cmFja3Mt
YnV0dG9uLmpzICovLAotCQkJCTcxNDZERjhCMURFRkMyRUQwMDQ2Rjk4QiAvKiB0cmFja3MtcGFu
ZWwuY3NzICovLAotCQkJCTcxNDZERjhDMURFRkMyRUQwMDQ2Rjk4QiAvKiB0cmFja3MtcGFuZWwu
anMgKi8sCiAJCQkJOTU1MTk1OEUyNUZBOUUzMDAwRjU4Q0YwIC8qIHdhdGNob3MtYWN0aXZpdHkt
aW5kaWNhdG9yLmNzcyAqLywKIAkJCQk5NTUxOTU4RjI1RkE5RTMxMDBGNThDRjAgLyogd2F0Y2hv
cy1hY3Rpdml0eS1pbmRpY2F0b3IuanMgKi8sCiAJCQkJOTU1MTk1OEQyNUZBOUUzMDAwRjU4Q0Yw
IC8qIHdhdGNob3MtbWVkaWEtY29udHJvbHMuY3NzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKaW5kZXggODFmODAzMDU2Mjc4NjBjZmNhNTg2MTQ5NDJmZGM0MDJmOTFlODk0ZC4uNTRi
NzE0NWY2YzY1MzNhM2ZjNjAxZmYzNTM3ZTI0NDViZGIzYzdlYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCkBAIC01NTksOSArNTU5LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKEVsZW1lbnQmKSB7IH0KICNlbmRpZgogCi0jaWYgRU5B
QkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjaWYgRU5BQkxFKE1FRElBX0NPTlRS
T0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogICAgIHZpcnR1YWwgdm9p
ZCBzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KEZsb2F0UmVjdCYmLCBWZWN0b3I8TWVkaWFD
b250cm9sc0NvbnRleHRNZW51SXRlbT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNZWRpYUNv
bnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxl
dGlvbkhhbmRsZXIoTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6aW52YWxpZElEKTsgfQot
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVO
VSkKIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfkNocm9tZUNsaWVudCgpID0gZGVmYXVsdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250ZXh0LmNwcAppbmRleCBiYzgxZGMw
ZmI5YWRjNWQyYWE5Yzc4ZTI0Y2YxYjAxOTJkYzgxZDBkLi5hYzQ0NjMxZWFjZWRlZDUxNjc2MGQ1
YWQyMjBhMzJlNzNkYjc4NjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRl
eHRNZW51Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNv
bnRleHQuY3BwCkBAIC0zNSw4ICszNSw5IEBAIENvbnRleHRNZW51Q29udGV4dDo6Q29udGV4dE1l
bnVDb250ZXh0KCkKIHsKIH0KIAotQ29udGV4dE1lbnVDb250ZXh0OjpDb250ZXh0TWVudUNvbnRl
eHQoY29uc3QgSGl0VGVzdFJlc3VsdCYgaGl0VGVzdFJlc3VsdCkKLSAgICA6IG1faGl0VGVzdFJl
c3VsdChoaXRUZXN0UmVzdWx0KQorQ29udGV4dE1lbnVDb250ZXh0OjpDb250ZXh0TWVudUNvbnRl
eHQoVHlwZSB0eXBlLCBjb25zdCBIaXRUZXN0UmVzdWx0JiBoaXRUZXN0UmVzdWx0KQorICAgIDog
bV90eXBlKHR5cGUpCisgICAgLCBtX2hpdFRlc3RSZXN1bHQoaGl0VGVzdFJlc3VsdCkKICNpZiBF
TkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICAsIG1fY29udHJvbGxlZEltYWdlKG51bGxwdHIp
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250
ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udGV4dC5oCmluZGV4IGU1
ZjAwNTBiMTc1YmYzMzE1MzQwYjA0YzBiZGI0YWFlNGY3NGY0YWIuLjYxMjZjNTFhZDUzNWM3MGE2
MTMxOGZiOTVjOWRmZTM3MGM5MTQ4ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q29udGV4dE1lbnVDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVu
dUNvbnRleHQuaApAQCAtMzUsOCArMzUsMjAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBDb250ZXh0TWVudUNvbnRleHQgewogcHVibGljOgorICAgIGVudW0gY2xhc3MgVHlwZSA6IHVp
bnQ4X3QgeworICAgICAgICBDb250ZXh0TWVudSwKKyNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9M
UykKKyAgICAgICAgU2VydmljZXNNZW51LAorI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX0NPTlRS
T0xTKQorI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorICAgICAgICBN
ZWRpYUNvbnRyb2xzLAorI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01F
TlVTKQorICAgIH07CisKICAgICBDb250ZXh0TWVudUNvbnRleHQoKTsKLSAgICBDb250ZXh0TWVu
dUNvbnRleHQoY29uc3QgSGl0VGVzdFJlc3VsdCYpOworICAgIENvbnRleHRNZW51Q29udGV4dChU
eXBlLCBjb25zdCBIaXRUZXN0UmVzdWx0Jik7CisKKyAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJl
dHVybiBtX3R5cGU7IH0KIAogICAgIGNvbnN0IEhpdFRlc3RSZXN1bHQmIGhpdFRlc3RSZXN1bHQo
KSBjb25zdCB7IHJldHVybiBtX2hpdFRlc3RSZXN1bHQ7IH0KIApAQCAtNTIsNiArNjQsNyBAQCBw
dWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKKyAgICBUeXBlIG1fdHlwZSB7IFR5cGU6OkNvbnRl
eHRNZW51IH07CiAgICAgSGl0VGVzdFJlc3VsdCBtX2hpdFRlc3RSZXN1bHQ7CiAgICAgU3RyaW5n
IG1fc2VsZWN0ZWRUZXh0OwogICAgIEludFJlY3QgbV9zZWxlY3Rpb25Cb3VuZHM7CkBAIC02Myw0
ICs3NiwyMSBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK25hbWVzcGFj
ZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkNvbnRleHRN
ZW51Q29udGV4dDo6VHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAg
ICAgIFdlYkNvcmU6OkNvbnRleHRNZW51Q29udGV4dDo6VHlwZSwKKyAgICAgICAgV2ViQ29yZTo6
Q29udGV4dE1lbnVDb250ZXh0OjpUeXBlOjpDb250ZXh0TWVudQorI2lmIEVOQUJMRShTRVJWSUNF
X0NPTlRST0xTKQorICAgICAgICAsIFdlYkNvcmU6OkNvbnRleHRNZW51Q29udGV4dDo6VHlwZTo6
U2VydmljZXNNZW51CisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCisjaWYgRU5B
QkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisgICAgICAgICwgV2ViQ29yZTo6Q29u
dGV4dE1lbnVDb250ZXh0OjpUeXBlOjpNZWRpYUNvbnRyb2xzCisjZW5kaWYgLy8gRU5BQkxFKE1F
RElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdURgorCiAjZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRfTUVOVVMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKaW5kZXggZDliZDlkOGVkNGQwOWM1NDc5
NDY2OWMwZDljMzcxMjdmODllNDg2MC4uNzgzMTkzMTNmNGNiNmE0ZTFhZWI5OGZjOGRlZDQ4ODUz
NGZhMGY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVy
LmNwcApAQCAtNTAsNyArNTAsNiBAQAogI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5j
bHVkZSAiSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVu
dC5oIgotI2luY2x1ZGUgIkhpdFRlc3RSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3Vs
dC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJMb2NhbGl6
ZWRTdHJpbmdzLmgiCkBAIC0xMDMsNyArMTAyLDggQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xs
ZXI6OmhhbmRsZUNvbnRleHRNZW51RXZlbnQoRXZlbnQmIGV2ZW50KQogCiAgICAgU2V0Rm9yU2Nv
cGU8Ym9vbD4gaXNIYW5kbGluZ0NvbnRleHRNZW51RXZlbnRGb3JTY29wZShtX2lzSGFuZGxpbmdD
b250ZXh0TWVudUV2ZW50LCB0cnVlKTsKIAotICAgIG1fY29udGV4dE1lbnUgPSBtYXliZUNyZWF0
ZUNvbnRleHRNZW51KGV2ZW50KTsKKyAgICBjb25zdGV4cHIgT3B0aW9uU2V0PEhpdFRlc3RSZXF1
ZXN0OjpSZXF1ZXN0VHlwZT4gaGl0VHlwZSB7IEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSwgSGl0
VGVzdFJlcXVlc3Q6OkFjdGl2ZSwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hh
ZG93Q29udGVudCwgSGl0VGVzdFJlcXVlc3Q6OkFsbG93Q2hpbGRGcmFtZUNvbnRlbnQgfTsKKyAg
ICBtX2NvbnRleHRNZW51ID0gbWF5YmVDcmVhdGVDb250ZXh0TWVudShldmVudCwgaGl0VHlwZSwg
Q29udGV4dE1lbnVDb250ZXh0OjpUeXBlOjpDb250ZXh0TWVudSk7CiAgICAgaWYgKCFtX2NvbnRl
eHRNZW51KQogICAgICAgICByZXR1cm47CiAKQEAgLTEyMSw3ICsxMjEsMTMgQEAgdm9pZCBDb250
ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVudShFdmVudCYgZXZlbnQsIENvbnRleHRN
ZW51UHJvdmlkZXImIHAKIHsKICAgICBtX21lbnVQcm92aWRlciA9ICZwcm92aWRlcjsKIAotICAg
IG1fY29udGV4dE1lbnUgPSBtYXliZUNyZWF0ZUNvbnRleHRNZW51KGV2ZW50KTsKKyAgICBhdXRv
IGNvbnRleHRUeXBlID0gcHJvdmlkZXIuY29udGV4dE1lbnVDb250ZXh0VHlwZSgpOworCisgICAg
T3B0aW9uU2V0PEhpdFRlc3RSZXF1ZXN0OjpSZXF1ZXN0VHlwZT4gaGl0VHlwZSB7IEhpdFRlc3RS
ZXF1ZXN0OjpSZWFkT25seSwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSwgSGl0VGVzdFJlcXVlc3Q6
OkFsbG93Q2hpbGRGcmFtZUNvbnRlbnQgfTsKKyAgICBpZiAoY29udGV4dFR5cGUgPT0gQ29udGV4
dE1lbnVDb250ZXh0OjpUeXBlOjpDb250ZXh0TWVudSkKKyAgICAgICAgaGl0VHlwZS5hZGQoSGl0
VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCk7CisKKyAgICBtX2Nv
bnRleHRNZW51ID0gbWF5YmVDcmVhdGVDb250ZXh0TWVudShldmVudCwgV1RGTW92ZShoaXRUeXBl
KSwgY29udGV4dFR5cGUpOwogICAgIGlmICghbV9jb250ZXh0TWVudSkgewogICAgICAgICBjbGVh
ckNvbnRleHRNZW51KCk7CiAgICAgICAgIHJldHVybjsKQEAgLTEzNSw3ICsxNDEsNyBAQCB2b2lk
IENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2ZW50JiBldmVudCwgQ29u
dGV4dE1lbnVQcm92aWRlciYgcAogICAgIHNob3dDb250ZXh0TWVudShldmVudCk7CiB9CiAKLXN0
ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudT4gQ29udGV4dE1lbnVDb250cm9sbGVyOjptYXliZUNy
ZWF0ZUNvbnRleHRNZW51KEV2ZW50JiBldmVudCkKK3N0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVu
dT4gQ29udGV4dE1lbnVDb250cm9sbGVyOjptYXliZUNyZWF0ZUNvbnRleHRNZW51KEV2ZW50JiBl
dmVudCwgT3B0aW9uU2V0PEhpdFRlc3RSZXF1ZXN0OjpSZXF1ZXN0VHlwZT4gaGl0VHlwZSwgQ29u
dGV4dE1lbnVDb250ZXh0OjpUeXBlIGNvbnRleHRUeXBlKQogewogICAgIGlmICghaXM8TW91c2VF
dmVudD4oZXZlbnQpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTE0OCwxOSArMTU0LDE4
IEBAIHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudT4gQ29udGV4dE1lbnVDb250cm9sbGVyOjpt
YXliZUNyZWF0ZUNvbnRleHRNZW51KEV2ZW50CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKLSAgICBjb25zdGV4cHIgT3B0aW9uU2V0PEhpdFRlc3RSZXF1ZXN0OjpS
ZXF1ZXN0VHlwZT4gaGl0VHlwZSB7IEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSwgSGl0VGVzdFJl
cXVlc3Q6OkFjdGl2ZSwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29u
dGVudCwgSGl0VGVzdFJlcXVlc3Q6OkFsbG93Q2hpbGRGcmFtZUNvbnRlbnQgfTsKLSAgICBhdXRv
IHJlc3VsdCA9IGZyYW1lLT5ldmVudEhhbmRsZXIoKS5oaXRUZXN0UmVzdWx0QXRQb2ludChtb3Vz
ZUV2ZW50LmFic29sdXRlTG9jYXRpb24oKSwgaGl0VHlwZSk7CisgICAgYXV0byByZXN1bHQgPSBm
cmFtZS0+ZXZlbnRIYW5kbGVyKCkuaGl0VGVzdFJlc3VsdEF0UG9pbnQobW91c2VFdmVudC5hYnNv
bHV0ZUxvY2F0aW9uKCksIFdURk1vdmUoaGl0VHlwZSkpOwogICAgIGlmICghcmVzdWx0LmlubmVy
Tm9uU2hhcmVkTm9kZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIG1fY29udGV4
dCA9IENvbnRleHRNZW51Q29udGV4dChyZXN1bHQpOworICAgIG1fY29udGV4dCA9IENvbnRleHRN
ZW51Q29udGV4dChjb250ZXh0VHlwZSwgcmVzdWx0KTsKIAogICAgIHJldHVybiBtYWtlVW5pcXVl
PENvbnRleHRNZW51PigpOwogfQogCiB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0Nv
bnRleHRNZW51KEV2ZW50JiBldmVudCkKIHsKLSAgICBpZiAobV9wYWdlLmluc3BlY3RvckNvbnRy
b2xsZXIoKS5lbmFibGVkKCkpCisgICAgaWYgKCghbV9tZW51UHJvdmlkZXIgfHwgbV9tZW51UHJv
dmlkZXItPmNvbnRleHRNZW51Q29udGV4dFR5cGUoKSA9PSBDb250ZXh0TWVudUNvbnRleHQ6OlR5
cGU6OkNvbnRleHRNZW51KSAmJiBtX3BhZ2UuaW5zcGVjdG9yQ29udHJvbGxlcigpLmVuYWJsZWQo
KSkKICAgICAgICAgYWRkSW5zcGVjdEVsZW1lbnRJdGVtKCk7CiAKICAgICBldmVudC5zZXREZWZh
dWx0SGFuZGxlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVu
dUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVy
LmgKaW5kZXggNDA0NzkzNThmZmI3ZTJmZTUyMzViNjg0ODM4MDVkODRjMjkwZDY5MC4uYzBjZDQ1
NTM3ZDRmZTU2Y2Y5ODBhNWEyNmNkYjI4NDBjN2Y0ODhlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5oCkBAIC0yOSwxMiArMjksMTUgQEAKIAogI2luY2x1
ZGUgIkNvbnRleHRNZW51Q29udGV4dC5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51SXRlbS5oIgor
I2luY2x1ZGUgIkhpdFRlc3RSZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvbnRleHRNZW51Q2xpZW50OwogY2xhc3Mg
Q29udGV4dE1lbnVQcm92aWRlcjsKIGNsYXNzIEV2ZW50OworY2xhc3MgSGl0VGVzdFJlc3VsdDsK
IGNsYXNzIFBhZ2U7CiAKIGNsYXNzIENvbnRleHRNZW51Q29udHJvbGxlciB7CkBAIC02Nyw3ICs3
MCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIHN0ZDo6dW5pcXVlX3B0cjxD
b250ZXh0TWVudT4gbWF5YmVDcmVhdGVDb250ZXh0TWVudShFdmVudCYpOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxDb250ZXh0TWVudT4gbWF5YmVDcmVhdGVDb250ZXh0TWVudShFdmVudCYsIE9wdGlv
blNldDxIaXRUZXN0UmVxdWVzdDo6UmVxdWVzdFR5cGU+IGhpdFR5cGUsIENvbnRleHRNZW51Q29u
dGV4dDo6VHlwZSk7CiAgICAgdm9pZCBzaG93Q29udGV4dE1lbnUoRXZlbnQmKTsKICAgICAKICAg
ICB2b2lkIGFwcGVuZEl0ZW0oQ29udGV4dE1lbnVJdGVtJiwgQ29udGV4dE1lbnUqIHBhcmVudE1l
bnUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudVByb3ZpZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51UHJvdmlkZXIuaAppbmRleCBlZmRj
NDc0NmQxYzk4NjEwMjY4ZmViMWU4ZTViMWYyNGNjZDA0MDMxLi4yM2JlZDY4NTk0YWJhMmY0MGIz
NzQ3YTgxMzVkNTNiZTgxNjljYWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnRleHRNZW51UHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51
UHJvdmlkZXIuaApAQCAtMzAsNiArMzAsOSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJM
RShDT05URVhUX01FTlVTKQorCisjaW5jbHVkZSAiQ29udGV4dE1lbnVDb250ZXh0LmgiCiAjaW5j
bHVkZSAiQ29udGV4dE1lbnVJdGVtLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIApA
QCAtNDQsNiArNDcsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBvcHVsYXRlQ29udGV4
dE1lbnUoQ29udGV4dE1lbnUqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNvbnRleHRNZW51SXRl
bVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGNvbnRleHRNZW51Q2xlYXJlZCgpID0gMDsKKyAgICB2aXJ0dWFsIENv
bnRleHRNZW51Q29udGV4dDo6VHlwZSBjb250ZXh0TWVudUNvbnRleHRUeXBlKCkgeyByZXR1cm4g
Q29udGV4dE1lbnVDb250ZXh0OjpUeXBlOjpDb250ZXh0TWVudTsgfTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShDT05URVhUX01FTlVTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaAppbmRl
eCAxYTIxM2YzZWMxMzg0NTc2MzMyYjFiZGM1ODQ3MTE2MGM5MDRmZjUwLi45YWIyZTZhNmRkYjBk
ZGU2MTg2ZTE1YTRmMzY4MzYyNTkyZjU0NTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL01lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL01lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaApAQCAtMjUsNyArMjUsNyBAQAogCiAj
cHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQor
I2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhU
TUVOVSkKIAogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KQEAgLTQwLDcgKzQwLDcgQEAgc3RydWN0IE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0g
ewogICAgIElEIGlkIHsgaW52YWxpZElEIH07CiAgICAgU3RyaW5nIHRpdGxlOwogICAgIFN0cmlu
ZyBpY29uOwotICAgIGJvb2wgaXNDaGVja2VkIHsgZmFsc2UgfTsKKyAgICBib29sIGNoZWNrZWQg
eyBmYWxzZSB9OwogICAgIFZlY3RvcjxNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiBjaGls
ZHJlbjsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXIm
KSBjb25zdDsKQEAgLTUzLDcgKzUzLDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJ
dGVtOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGlkOwog
ICAgIGVuY29kZXIgPDwgdGl0bGU7CiAgICAgZW5jb2RlciA8PCBpY29uOwotICAgIGVuY29kZXIg
PDwgaXNDaGVja2VkOworICAgIGVuY29kZXIgPDwgY2hlY2tlZDsKICAgICBlbmNvZGVyIDw8IGNo
aWxkcmVuOwogfQogCkBAIC02OSwxNCArNjksMTQgQEAgT3B0aW9uYWw8TWVkaWFDb250cm9sc0Nv
bnRleHRNZW51SXRlbT4gTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6ZGVjb2RlKERlY28K
ICAgICBERUNPREUoaWQsIElEKTsKICAgICBERUNPREUodGl0bGUsIFN0cmluZyk7CiAgICAgREVD
T0RFKGljb24sIFN0cmluZyk7Ci0gICAgREVDT0RFKGlzQ2hlY2tlZCwgYm9vbCk7CisgICAgREVD
T0RFKGNoZWNrZWQsIGJvb2wpOwogICAgIERFQ09ERShjaGlsZHJlbiwgVmVjdG9yPE1lZGlhQ29u
dHJvbHNDb250ZXh0TWVudUl0ZW0+KTsKIAogI3VuZGVmIERFQ09ERQogCi0gICAgcmV0dXJuIHt7
IFdURk1vdmUoKmlkKSwgV1RGTW92ZSgqdGl0bGUpLCBXVEZNb3ZlKCppY29uKSwgV1RGTW92ZSgq
aXNDaGVja2VkKSwgV1RGTW92ZSgqY2hpbGRyZW4pIH19OworICAgIHJldHVybiB7eyBXVEZNb3Zl
KCppZCksIFdURk1vdmUoKnRpdGxlKSwgV1RGTW92ZSgqaWNvbiksIFdURk1vdmUoKmNoZWNrZWQp
LCBXVEZNb3ZlKCpjaGlsZHJlbikgfX07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAot
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVO
VSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uY3BwCmluZGV4IDVh
ZTAyNWU5MTgwYzVkZmIyMTk2MmUxN2YxOWU2NzA0ZDVkNmQ0MjUuLjA2OTU2MmQyM2NjOWNjNDli
Njc5OTk3NGVkZGMzZGEzYzZmYjU4YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0NvbnRleHRNZW51SXRlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29u
dGV4dE1lbnVJdGVtLmNwcApAQCAtMzgsMjYgKzM4LDI5IEBAIENvbnRleHRNZW51SXRlbTo6Q29u
dGV4dE1lbnVJdGVtKENvbnRleHRNZW51SXRlbVR5cGUgdHlwZSwgQ29udGV4dE1lbnVBY3Rpb24g
YWN0CiAgICAgLCBtX3RpdGxlKHRpdGxlKQogICAgICwgbV9lbmFibGVkKHRydWUpCiAgICAgLCBt
X2NoZWNrZWQoZmFsc2UpCisgICAgLCBtX2luZGVudGF0aW9uTGV2ZWwoMCkKIHsKICAgICBpZiAo
c3ViTWVudSkKICAgICAgICAgc2V0U3ViTWVudShzdWJNZW51KTsKIH0KIAotQ29udGV4dE1lbnVJ
dGVtOjpDb250ZXh0TWVudUl0ZW0oQ29udGV4dE1lbnVJdGVtVHlwZSB0eXBlLCBDb250ZXh0TWVu
dUFjdGlvbiBhY3Rpb24sIGNvbnN0IFN0cmluZyYgdGl0bGUsIGJvb2wgZW5hYmxlZCwgYm9vbCBj
aGVja2VkKQorQ29udGV4dE1lbnVJdGVtOjpDb250ZXh0TWVudUl0ZW0oQ29udGV4dE1lbnVJdGVt
VHlwZSB0eXBlLCBDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvbnN0IFN0cmluZyYgdGl0bGUs
IGJvb2wgZW5hYmxlZCwgYm9vbCBjaGVja2VkLCB1bnNpZ25lZCBpbmRlbnRhdGlvbkxldmVsKQog
ICAgIDogbV90eXBlKHR5cGUpCiAgICAgLCBtX2FjdGlvbihhY3Rpb24pCiAgICAgLCBtX3RpdGxl
KHRpdGxlKQogICAgICwgbV9lbmFibGVkKGVuYWJsZWQpCiAgICAgLCBtX2NoZWNrZWQoY2hlY2tl
ZCkKKyAgICAsIG1faW5kZW50YXRpb25MZXZlbChpbmRlbnRhdGlvbkxldmVsKQogewogfQogICAg
ICAgICAKLUNvbnRleHRNZW51SXRlbTo6Q29udGV4dE1lbnVJdGVtKENvbnRleHRNZW51QWN0aW9u
IGFjdGlvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgYm9vbCBlbmFibGVkLCBib29sIGNoZWNrZWQs
IGNvbnN0IFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+JiBzdWJNZW51SXRlbXMpCitDb250ZXh0TWVu
dUl0ZW06OkNvbnRleHRNZW51SXRlbShDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvbnN0IFN0
cmluZyYgdGl0bGUsIGJvb2wgZW5hYmxlZCwgYm9vbCBjaGVja2VkLCBjb25zdCBWZWN0b3I8Q29u
dGV4dE1lbnVJdGVtPiYgc3ViTWVudUl0ZW1zLCB1bnNpZ25lZCBpbmRlbnRhdGlvbkxldmVsKQog
ICAgIDogbV90eXBlKFN1Ym1lbnVUeXBlKQogICAgICwgbV9hY3Rpb24oYWN0aW9uKQogICAgICwg
bV90aXRsZSh0aXRsZSkKICAgICAsIG1fZW5hYmxlZChlbmFibGVkKQogICAgICwgbV9jaGVja2Vk
KGNoZWNrZWQpCisgICAgLCBtX2luZGVudGF0aW9uTGV2ZWwoaW5kZW50YXRpb25MZXZlbCkKICAg
ICAsIG1fc3ViTWVudUl0ZW1zKHN1Yk1lbnVJdGVtcykKIHsKIH0KQEAgLTY3LDYgKzcwLDcgQEAg
Q29udGV4dE1lbnVJdGVtOjpDb250ZXh0TWVudUl0ZW0oKQogICAgICwgbV9hY3Rpb24oQ29udGV4
dE1lbnVJdGVtVGFnTm9BY3Rpb24pCiAgICAgLCBtX2VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2No
ZWNrZWQoZmFsc2UpCisgICAgLCBtX2luZGVudGF0aW9uTGV2ZWwoMCkKIHsKIH0KIApAQCAtMTA5
LDYgKzExMywxNiBAQCBDb250ZXh0TWVudUFjdGlvbiBDb250ZXh0TWVudUl0ZW06OmFjdGlvbigp
IGNvbnN0CiAgICAgcmV0dXJuIG1fYWN0aW9uOwogfQogCit2b2lkIENvbnRleHRNZW51SXRlbTo6
c2V0SW5kZW50YXRpb25MZXZlbCh1bnNpZ25lZCBpbmRlbnRhdGlvbkxldmVsKQoreworICAgIG1f
aW5kZW50YXRpb25MZXZlbCA9IGluZGVudGF0aW9uTGV2ZWw7Cit9CisKK3Vuc2lnbmVkIENvbnRl
eHRNZW51SXRlbTo6aW5kZW50YXRpb25MZXZlbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faW5k
ZW50YXRpb25MZXZlbDsKK30KKwogdm9pZCBDb250ZXh0TWVudUl0ZW06OnNldENoZWNrZWQoYm9v
bCBjaGVja2VkKQogewogICAgIG1fY2hlY2tlZCA9IGNoZWNrZWQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCmluZGV4IGRhMWEwYWU3MmJhMzQyYTMzOWNhMTMxMWNh
N2Y5NTZiYzhhYjNhMTUuLmFjNmU5ZDY3OTA4MjNmYWZjNzQyMWJhODQwNDkzNGIwZDZkZmU0ZGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCkBAIC0xNjcsNyAr
MTY3LDcgQEAgY2xhc3MgQ29udGV4dE1lbnVJdGVtIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBDb250ZXh0TWVudUl0ZW0oQ29udGV4
dE1lbnVJdGVtVHlwZSwgQ29udGV4dE1lbnVBY3Rpb24sIGNvbnN0IFN0cmluZyYsIENvbnRleHRN
ZW51KiBzdWJNZW51ID0gMCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgQ29udGV4dE1lbnVJdGVtKENv
bnRleHRNZW51SXRlbVR5cGUsIENvbnRleHRNZW51QWN0aW9uLCBjb25zdCBTdHJpbmcmLCBib29s
IGVuYWJsZWQsIGJvb2wgY2hlY2tlZCk7CisgICAgV0VCQ09SRV9FWFBPUlQgQ29udGV4dE1lbnVJ
dGVtKENvbnRleHRNZW51SXRlbVR5cGUsIENvbnRleHRNZW51QWN0aW9uLCBjb25zdCBTdHJpbmcm
LCBib29sIGVuYWJsZWQsIGJvb2wgY2hlY2tlZCwgdW5zaWduZWQgaW5kZW50YXRpb25MZXZlbCA9
IDApOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgfkNvbnRleHRNZW51SXRlbSgpOwogCkBAIC0xODMs
OSArMTgzLDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEVuYWJsZWQoYm9vbCA9IHRydWUpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZW5hYmxlZCgpIGNvbnN0OwogCisgICAgdm9pZCBzZXRJ
bmRlbnRhdGlvbkxldmVsKHVuc2lnbmVkKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBp
bmRlbnRhdGlvbkxldmVsKCkgY29uc3Q7CisKICAgICB2b2lkIHNldFN1Yk1lbnUoQ29udGV4dE1l
bnUqKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIENvbnRleHRNZW51SXRlbShDb250ZXh0TWVudUFj
dGlvbiwgY29uc3QgU3RyaW5nJiwgYm9vbCBlbmFibGVkLCBib29sIGNoZWNrZWQsIGNvbnN0IFZl
Y3RvcjxDb250ZXh0TWVudUl0ZW0+JiBzdWJNZW51SXRlbXMpOworICAgIFdFQkNPUkVfRVhQT1JU
IENvbnRleHRNZW51SXRlbShDb250ZXh0TWVudUFjdGlvbiwgY29uc3QgU3RyaW5nJiwgYm9vbCBl
bmFibGVkLCBib29sIGNoZWNrZWQsIGNvbnN0IFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+JiBzdWJN
ZW51SXRlbXMsIHVuc2lnbmVkIGluZGVudGF0aW9uTGV2ZWwgPSAwKTsKICAgICBDb250ZXh0TWVu
dUl0ZW0oKTsKIAogICAgIGJvb2wgaXNOdWxsKCkgY29uc3Q7CkBAIC0yMDAsNiArMjAzLDcgQEAg
cHJpdmF0ZToKICAgICBTdHJpbmcgbV90aXRsZTsKICAgICBib29sIG1fZW5hYmxlZDsKICAgICBi
b29sIG1fY2hlY2tlZDsKKyAgICB1bnNpZ25lZCBtX2luZGVudGF0aW9uTGV2ZWw7CiAgICAgVmVj
dG9yPENvbnRleHRNZW51SXRlbT4gbV9zdWJNZW51SXRlbXM7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggNDYzZWJhMDZjZDI5OTFmYWZmMTdh
MzRjMWVkMDk3YjFkNzFlMWJmOC4uZjE1NGI1ZjVhM2Q3M2U1MDc4MTdjYjkwYjY4ODlmMTA1ZTc1
ZDM3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAt
OTUsNiArOTUsMTAgQEAKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogCisj
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvUmVu
ZGVyVGhlbWVNYWNBZGRpdGlvbnMuY3BwPgorI2VuZGlmCisKIC8vIEZJWE1FOiBUaGlzIHNob3Vs
ZCBnbyBpbnRvIGFuIFNQSS5oIGZpbGUgaW4gdGhlIHNwaSBkaXJlY3RvcnkuCiBAaW50ZXJmYWNl
IE5TVGV4dEZpZWxkQ2VsbCAoKQogLSAoQ0ZEaWN0aW9uYXJ5UmVmKV9jb3JlVUlEcmF3T3B0aW9u
c1dpdGhGcmFtZTooTlNSZWN0KWNlbGxGcmFtZSBpblZpZXc6KE5TVmlldyAqKWNvbnRyb2xWaWV3
IGluY2x1ZGVGb2N1czooQk9PTClpbmNsdWRlRm9jdXM7CkBAIC0zMjQsOSArMzI4LDE0IEBAIFN0
cmluZyBSZW5kZXJUaGVtZU1hYzo6bWVkaWFDb250cm9sc1NjcmlwdCgpCiAgICAgaWYgKFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkubW9kZXJuTWVkaWFDb250cm9sc0Vu
YWJsZWQoKSkgewogICAgICAgICBpZiAobV9tZWRpYUNvbnRyb2xzU2NyaXB0LmlzRW1wdHkoKSkg
ewogICAgICAgICAgICAgTlNCdW5kbGUgKmJ1bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JDbGFz
czpbV2ViQ29yZVJlbmRlclRoZW1lQnVuZGxlIGNsYXNzXV07Ci0gICAgICAgICAgICBOU1N0cmlu
ZyAqbG9jYWxpemVkU3RyaW5ncyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoQ29udGVudHNPZkZpbGU6
W2J1bmRsZSBwYXRoRm9yUmVzb3VyY2U6QCJtb2Rlcm4tbWVkaWEtY29udHJvbHMtbG9jYWxpemVk
LXN0cmluZ3MiIG9mVHlwZTpAImpzIl0gZW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmcgZXJy
b3I6bmlsXTsKLSAgICAgICAgICAgIE5TU3RyaW5nICpzY3JpcHQgPSBbTlNTdHJpbmcgc3RyaW5n
V2l0aENvbnRlbnRzT2ZGaWxlOltidW5kbGUgcGF0aEZvclJlc291cmNlOkAibW9kZXJuLW1lZGlh
LWNvbnRyb2xzIiBvZlR5cGU6QCJqcyIgaW5EaXJlY3Rvcnk6QCJtb2Rlcm4tbWVkaWEtY29udHJv
bHMiXSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZyBlcnJvcjpuaWxdOwotICAgICAgICAg
ICAgbV9tZWRpYUNvbnRyb2xzU2NyaXB0ID0gbWFrZVN0cmluZyhTdHJpbmcgeyBsb2NhbGl6ZWRT
dHJpbmdzIH0sIFN0cmluZyB7IHNjcmlwdCB9KTsKKworICAgICAgICAgICAgU3RyaW5nQnVpbGRl
ciBzY3JpcHRCdWlsZGVyOworICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQoW05TU3Ry
aW5nIHN0cmluZ1dpdGhDb250ZW50c09mRmlsZTpbYnVuZGxlIHBhdGhGb3JSZXNvdXJjZTpAIm1v
ZGVybi1tZWRpYS1jb250cm9scy1sb2NhbGl6ZWQtc3RyaW5ncyIgb2ZUeXBlOkAianMiXSBlbmNv
ZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZyBlcnJvcjpuaWxdKTsKKyAgICAgICAgICAgIHNjcmlw
dEJ1aWxkZXIuYXBwZW5kKFtOU1N0cmluZyBzdHJpbmdXaXRoQ29udGVudHNPZkZpbGU6W2J1bmRs
ZSBwYXRoRm9yUmVzb3VyY2U6QCJtb2Rlcm4tbWVkaWEtY29udHJvbHMiIG9mVHlwZTpAImpzIiBp
bkRpcmVjdG9yeTpAIm1vZGVybi1tZWRpYS1jb250cm9scyJdIGVuY29kaW5nOk5TVVRGOFN0cmlu
Z0VuY29kaW5nIGVycm9yOm5pbF0pOworI2lmIGRlZmluZWQoUmVuZGVyVGhlbWVNYWNBZGRpdGlv
bnNfbWVkaWFDb250cm9sc1NjcmlwdCkKKyAgICAgICAgICAgIFJlbmRlclRoZW1lTWFjQWRkaXRp
b25zX21lZGlhQ29udHJvbHNTY3JpcHQKKyNlbmRpZgorICAgICAgICAgICAgbV9tZWRpYUNvbnRy
b2xzU2NyaXB0ID0gc2NyaXB0QnVpbGRlci50b1N0cmluZygpOwogICAgICAgICB9CiAgICAgICAg
IHJldHVybiBtX21lZGlhQ29udHJvbHNTY3JpcHQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0RGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db250ZXh0TWVudUNvbnRleHREYXRhLmNwcAppbmRleCA4NWY2NTQ3YWE0Yzc0NGNk
YzdkNjEwMDg1NTQ2NGZjY2I0Y2UwZDA5Li44YjAzYThmYTQ3NTAzN2U0NjYxMThjN2Y1OWYwMmEx
YWMwMjZhMGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db250ZXh0TWVudUNv
bnRleHREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db250ZXh0TWVudUNvbnRl
eHREYXRhLmNwcApAQCAtMzAsNyArMzAsNiBAQAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQog
CiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9D
b250ZXh0TWVudUNvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ2LDkgKzQ1LDkgQEAgQ29udGV4dE1lbnVDb250
ZXh0RGF0YTo6Q29udGV4dE1lbnVDb250ZXh0RGF0YSgpCiAKIENvbnRleHRNZW51Q29udGV4dERh
dGE6OkNvbnRleHRNZW51Q29udGV4dERhdGEoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIG1lbnVM
b2NhdGlvbiwgY29uc3QgVmVjdG9yPFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIG1l
bnVJdGVtcywgY29uc3QgQ29udGV4dE1lbnVDb250ZXh0JiBjb250ZXh0KQogI2lmIEVOQUJMRShT
RVJWSUNFX0NPTlRST0xTKQotICAgIDogbV90eXBlKGNvbnRleHQuY29udHJvbGxlZEltYWdlKCkg
PyBUeXBlOjpTZXJ2aWNlc01lbnUgOiBUeXBlOjpDb250ZXh0TWVudSkKKyAgICA6IG1fdHlwZShj
b250ZXh0LmNvbnRyb2xsZWRJbWFnZSgpID8gVHlwZTo6U2VydmljZXNNZW51IDogY29udGV4dC50
eXBlKCkpCiAjZWxzZQotICAgIDogbV90eXBlKFR5cGU6OkNvbnRleHRNZW51KQorICAgIDogbV90
eXBlKGNvbnRleHQudHlwZSgpKQogI2VuZGlmCiAgICAgLCBtX21lbnVMb2NhdGlvbihtZW51TG9j
YXRpb24pCiAgICAgLCBtX21lbnVJdGVtcyhtZW51SXRlbXMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Db250ZXh0TWVudUNvbnRleHREYXRhLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Db250ZXh0TWVudUNvbnRleHREYXRhLmgKaW5kZXggMWQ5NTlhNjg2OThhOTkyY2Q4ZDk3
MmQzMmE5OGQ2YzAwNzM1NDQwNC4uNGY3YjdhNjMxZmM1NzI0OWRjYTczZDJjYTk5Y2RhMGMzODNh
ZGNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29udGV4dE1lbnVDb250ZXh0
RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEu
aApAQCAtMjgsOSArMjgsOSBAQAogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAKLSNpbmNs
dWRlICJTaGFyZWFibGVCaXRtYXAuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudUl0ZW1EYXRh
LmgiCiAjaW5jbHVkZSAiV2ViSGl0VGVzdFJlc3VsdERhdGEuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0NvbnRleHRNZW51Q29udGV4dC5oPgogI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKIG5h
bWVzcGFjZSBJUEMgewpAQCAtMzgsMTggKzM4LDExIEBAIGNsYXNzIERlY29kZXI7CiBjbGFzcyBF
bmNvZGVyOwogfQogCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBDb250ZXh0TWVudUNvbnRl
eHQ7Ci19Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBDb250ZXh0TWVudUNvbnRleHRE
YXRhIHsKIHB1YmxpYzoKLSAgICBlbnVtIGNsYXNzIFR5cGUgOiBib29sIHsKLSAgICAgICAgQ29u
dGV4dE1lbnUsCi0gICAgICAgIFNlcnZpY2VzTWVudSwKLSAgICB9OworICAgIHVzaW5nIFR5cGUg
PSBXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRleHQ6OlR5cGU7CiAKICAgICBDb250ZXh0TWVudUNv
bnRleHREYXRhKCk7CiAgICAgQ29udGV4dE1lbnVDb250ZXh0RGF0YShjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgbWVudUxvY2F0aW9uLCBjb25zdCBWZWN0b3I8V2ViS2l0OjpXZWJDb250ZXh0TWVu
dUl0ZW1EYXRhPiYgbWVudUl0ZW1zLCBjb25zdCBXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRleHQm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURh
dGEuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5jcHAK
aW5kZXggODk0NmMzNTUxNTIzZDg1NjM0ZDk2OWQ0NDM5ODdjZWQ5NjJiMzZhOC4uMGM1ZGM3OTU2
YThlMzE2NjQwOGIwMDJlMDA1ZjdiNTRiNzA2NWViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5jcHAKQEAgLTQyLDI1ICs0MiwyOCBAQCBXZWJD
b250ZXh0TWVudUl0ZW1EYXRhOjpXZWJDb250ZXh0TWVudUl0ZW1EYXRhKCkKICAgICAsIG1fYWN0
aW9uKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ05vQWN0aW9uKQogICAgICwgbV9lbmFibGVk
KHRydWUpCiAgICAgLCBtX2NoZWNrZWQoZmFsc2UpCisgICAgLCBtX2luZGVudGF0aW9uTGV2ZWwo
MCkKIHsKIH0KIAotV2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6V2ViQ29udGV4dE1lbnVJdGVtRGF0
YShXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UeXBlIHR5cGUsIFdlYkNvcmU6OkNvbnRleHRNZW51
QWN0aW9uIGFjdGlvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgYm9vbCBlbmFibGVkLCBib29sIGNo
ZWNrZWQpCitXZWJDb250ZXh0TWVudUl0ZW1EYXRhOjpXZWJDb250ZXh0TWVudUl0ZW1EYXRhKFdl
YkNvcmU6OkNvbnRleHRNZW51SXRlbVR5cGUgdHlwZSwgV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rp
b24gYWN0aW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBib29sIGVuYWJsZWQsIGJvb2wgY2hlY2tl
ZCwgdW5zaWduZWQgaW5kZW50YXRpb25MZXZlbCkKICAgICA6IG1fdHlwZSh0eXBlKQogICAgICwg
bV9hY3Rpb24oYWN0aW9uKQogICAgICwgbV90aXRsZSh0aXRsZSkKICAgICAsIG1fZW5hYmxlZChl
bmFibGVkKQogICAgICwgbV9jaGVja2VkKGNoZWNrZWQpCisgICAgLCBtX2luZGVudGF0aW9uTGV2
ZWwoaW5kZW50YXRpb25MZXZlbCkKIHsKICAgICBBU1NFUlQodHlwZSA9PSBXZWJDb3JlOjpBY3Rp
b25UeXBlIHx8IHR5cGUgPT0gV2ViQ29yZTo6Q2hlY2thYmxlQWN0aW9uVHlwZSB8fCB0eXBlID09
IFdlYkNvcmU6OlNlcGFyYXRvclR5cGUpOwogfQogCi1XZWJDb250ZXh0TWVudUl0ZW1EYXRhOjpX
ZWJDb250ZXh0TWVudUl0ZW1EYXRhKFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwg
Y29uc3QgU3RyaW5nJiB0aXRsZSwgYm9vbCBlbmFibGVkLCBjb25zdCBWZWN0b3I8V2ViQ29udGV4
dE1lbnVJdGVtRGF0YT4mIHN1Ym1lbnUpCitXZWJDb250ZXh0TWVudUl0ZW1EYXRhOjpXZWJDb250
ZXh0TWVudUl0ZW1EYXRhKFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY29uc3Qg
U3RyaW5nJiB0aXRsZSwgYm9vbCBlbmFibGVkLCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJ
dGVtRGF0YT4mIHN1Ym1lbnUsIHVuc2lnbmVkIGluZGVudGF0aW9uTGV2ZWwpCiAgICAgOiBtX3R5
cGUoV2ViQ29yZTo6U3VibWVudVR5cGUpCiAgICAgLCBtX2FjdGlvbihhY3Rpb24pCiAgICAgLCBt
X3RpdGxlKHRpdGxlKQogICAgICwgbV9lbmFibGVkKGVuYWJsZWQpCiAgICAgLCBtX2NoZWNrZWQo
ZmFsc2UpCisgICAgLCBtX2luZGVudGF0aW9uTGV2ZWwoaW5kZW50YXRpb25MZXZlbCkKICAgICAs
IG1fc3VibWVudShzdWJtZW51KQogewogfQpAQCAtNzcsMTUgKzgwLDE2IEBAIFdlYkNvbnRleHRN
ZW51SXRlbURhdGE6OldlYkNvbnRleHRNZW51SXRlbURhdGEoY29uc3QgV2ViQ29yZTo6Q29udGV4
dE1lbnVJdGVtJiBpCiAgICAgCiAgICAgbV9lbmFibGVkID0gaXRlbS5lbmFibGVkKCk7CiAgICAg
bV9jaGVja2VkID0gaXRlbS5jaGVja2VkKCk7CisgICAgbV9pbmRlbnRhdGlvbkxldmVsID0gaXRl
bS5pbmRlbnRhdGlvbkxldmVsKCk7CiB9CiAKIENvbnRleHRNZW51SXRlbSBXZWJDb250ZXh0TWVu
dUl0ZW1EYXRhOjpjb3JlKCkgY29uc3QKIHsKICAgICBpZiAobV90eXBlICE9IFN1Ym1lbnVUeXBl
KQotICAgICAgICByZXR1cm4gQ29udGV4dE1lbnVJdGVtKG1fdHlwZSwgbV9hY3Rpb24sIG1fdGl0
bGUsIG1fZW5hYmxlZCwgbV9jaGVja2VkKTsKKyAgICAgICAgcmV0dXJuIENvbnRleHRNZW51SXRl
bShtX3R5cGUsIG1fYWN0aW9uLCBtX3RpdGxlLCBtX2VuYWJsZWQsIG1fY2hlY2tlZCwgbV9pbmRl
bnRhdGlvbkxldmVsKTsKICAgICAKICAgICBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiBzdWJNZW51
SXRlbXMgPSBjb3JlSXRlbXMobV9zdWJtZW51KTsKLSAgICByZXR1cm4gQ29udGV4dE1lbnVJdGVt
KG1fYWN0aW9uLCBtX3RpdGxlLCBtX2VuYWJsZWQsIG1fY2hlY2tlZCwgc3ViTWVudUl0ZW1zKTsK
KyAgICByZXR1cm4gQ29udGV4dE1lbnVJdGVtKG1fYWN0aW9uLCBtX3RpdGxlLCBtX2VuYWJsZWQs
IG1fY2hlY2tlZCwgc3ViTWVudUl0ZW1zLCBtX2luZGVudGF0aW9uTGV2ZWwpOwogfQogCiBBUEk6
Ok9iamVjdCogV2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6dXNlckRhdGEoKSBjb25zdApAQCAtMTA1
LDYgKzEwOSw3IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6ZW5jb2RlKElQQzo6RW5j
b2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1fdGl0bGU7CiAgICAgZW5jb2Rl
ciA8PCBtX2NoZWNrZWQ7CiAgICAgZW5jb2RlciA8PCBtX2VuYWJsZWQ7CisgICAgZW5jb2RlciA8
PCBtX2luZGVudGF0aW9uTGV2ZWw7CiAgICAgZW5jb2RlciA8PCBtX3N1Ym1lbnU7CiB9CiAKQEAg
LTEzMCw2ICsxMzUsMTAgQEAgT3B0aW9uYWw8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4gV2ViQ29u
dGV4dE1lbnVJdGVtRGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGUKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKGVuYWJsZWQpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCisgICAg
dW5zaWduZWQgaW5kZW50YXRpb25MZXZlbDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZGVu
dGF0aW9uTGV2ZWwpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCiAgICAgT3B0aW9u
YWw8VmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbURhdGE+PiBzdWJtZW51OwogICAgIGRlY29kZXIg
Pj4gc3VibWVudTsKICAgICBpZiAoIXN1Ym1lbnUpCkBAIC0xMzksMTAgKzE0OCwxMCBAQCBPcHRp
b25hbDxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhOjpkZWNv
ZGUoSVBDOjpEZWNvZGVyJiBkZQogICAgIGNhc2UgV2ViQ29yZTo6QWN0aW9uVHlwZToKICAgICBj
YXNlIFdlYkNvcmU6OlNlcGFyYXRvclR5cGU6CiAgICAgY2FzZSBXZWJDb3JlOjpDaGVja2FibGVB
Y3Rpb25UeXBlOgotICAgICAgICByZXR1cm4ge3sgdHlwZSwgYWN0aW9uLCB0aXRsZSwgZW5hYmxl
ZCwgY2hlY2tlZCB9fTsKKyAgICAgICAgcmV0dXJuIHt7IHR5cGUsIGFjdGlvbiwgdGl0bGUsIGVu
YWJsZWQsIGNoZWNrZWQsIGluZGVudGF0aW9uTGV2ZWwgfX07CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgV2ViQ29yZTo6U3VibWVudVR5cGU6Ci0gICAgICAgIHJldHVybiB7eyBhY3Rpb24sIHRp
dGxlLCBlbmFibGVkLCBXVEZNb3ZlKCpzdWJtZW51KSB9fTsKKyAgICAgICAgcmV0dXJuIHt7IGFj
dGlvbiwgdGl0bGUsIGVuYWJsZWQsIFdURk1vdmUoKnN1Ym1lbnUpLCBpbmRlbnRhdGlvbkxldmVs
IH19OwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmgKaW5kZXggNDVl
MzFhZTMzM2E3YjdhNTlmZjRjMTVkOGY1YzkzZmJjOTJlOTQ0NS4uMTU0Mjc4MmEyNzIwNzAxYTlk
M2JkYTQ5ZWVlMGM1NDAzYzVjMDFmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNv
bnRleHRNZW51SXRlbURhdGEuaApAQCAtNDUsMTQgKzQ1LDE1IEBAIGNsYXNzIFdlYkNvbnRleHRN
ZW51SXRlbURhdGEgewogcHVibGljOgogICAgIFdlYkNvbnRleHRNZW51SXRlbURhdGEoKTsKICAg
ICBXZWJDb250ZXh0TWVudUl0ZW1EYXRhKGNvbnN0IFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbSYp
OwotICAgIFdlYkNvbnRleHRNZW51SXRlbURhdGEoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVHlw
ZSwgV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24sIGNvbnN0IFN0cmluZyYgdGl0bGUsIGJvb2wg
ZW5hYmxlZCwgYm9vbCBjaGVja2VkKTsKLSAgICBXZWJDb250ZXh0TWVudUl0ZW1EYXRhKFdlYkNv
cmU6OkNvbnRleHRNZW51QWN0aW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBib29sIGVuYWJsZWQs
IGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgc3VibWVudSk7CisgICAgV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YShXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UeXBlLCBXZWJDb3Jl
OjpDb250ZXh0TWVudUFjdGlvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgYm9vbCBlbmFibGVkLCBi
b29sIGNoZWNrZWQsIHVuc2lnbmVkIGluZGVudGF0aW9uTGV2ZWwgPSAwKTsKKyAgICBXZWJDb250
ZXh0TWVudUl0ZW1EYXRhKFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uLCBjb25zdCBTdHJpbmcm
IHRpdGxlLCBib29sIGVuYWJsZWQsIGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRh
PiYgc3VibWVudSwgdW5zaWduZWQgaW5kZW50YXRpb25MZXZlbCA9IDApOwogCiAgICAgV2ViQ29y
ZTo6Q29udGV4dE1lbnVJdGVtVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAg
ICAgV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24gYWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9h
Y3Rpb247IH0KICAgICBjb25zdCBTdHJpbmcmIHRpdGxlKCkgY29uc3QgeyByZXR1cm4gbV90aXRs
ZTsgfQogICAgIGJvb2wgZW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5hYmxlZDsgfQogICAg
IGJvb2wgY2hlY2tlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hlY2tlZDsgfQorICAgIHVuc2lnbmVk
IGluZGVudGF0aW9uTGV2ZWwoKSBjb25zdCB7IHJldHVybiBtX2luZGVudGF0aW9uTGV2ZWw7IH0K
ICAgICBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIHN1Ym1lbnUoKSBjb25z
dCB7IHJldHVybiBtX3N1Ym1lbnU7IH0KICAgICAKICAgICBXZWJDb3JlOjpDb250ZXh0TWVudUl0
ZW0gY29yZSgpIGNvbnN0OwpAQCAtNjksNiArNzAsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBt
X3RpdGxlOwogICAgIGJvb2wgbV9lbmFibGVkOwogICAgIGJvb2wgbV9jaGVja2VkOworICAgIHVu
c2lnbmVkIG1faW5kZW50YXRpb25MZXZlbDsKICAgICBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVt
RGF0YT4gbV9zdWJtZW51OwogICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gbV91c2VyRGF0YTsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
UHJpdmF0ZUZvclRlc3RpbmcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oCmluZGV4IDYyZTQ2NzE0NGU5MTk0ZWIwYTY4MmEw
OGEyODRkNTk1Zjk1ZTNkOTguLmNhNDU5OTZhNzhkZTI4YTk3Mjk5NWEzMWJjNDUzYTc4ZjRlYjk1
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdQcml2YXRlRm9yVGVzdGluZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oCkBAIC02Myw2ICs2Myw5IEBAIHN0cnVj
dCBXS0FwcEJvdW5kTmF2aWdhdGlvblRlc3RpbmdEYXRhIHsKIAogLSAodm9pZClfc2V0U2hhcmVT
aGVldENvbXBsZXRlc0ltbWVkaWF0ZWx5V2l0aFJlc29sdXRpb25Gb3JUZXN0aW5nOihCT09MKXJl
c29sdmVkOwogCistICh2b2lkKV9kaWRTaG93Q29udGV4dE1lbnU7CistICh2b2lkKV9kaWREaXNt
aXNzQ29udGV4dE1lbnU7CisKIC0gKHZvaWQpX2RpZFByZXNlbnRDb250YWN0UGlja2VyOwogLSAo
dm9pZClfZGlkRGlzbWlzc0NvbnRhY3RQaWNrZXI7CiAtICh2b2lkKV9kaXNtaXNzQ29udGFjdFBp
Y2tlcldpdGhDb250YWN0czooTlNBcnJheSAqKWNvbnRhY3RzOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQppbmRleCBhZDA4
NGQ1MmYyYjg2ZWY3MDQxMWZmZjViN2M3YzRjYzBkZjdiYzc0Li41NDI2MDYwYjI1MGFmM2NhM2M2
Yjg0ZGVlMWJjNWQ1OTU1MzhkMjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQpAQCAtNzEsNiArNzEsOSBAQCAtIChO
U0RpY3Rpb25hcnkgKilfY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtOihOU1N0cmluZyAqKXVz
ZXJJbnRlcmZhY2VJdGVtCiAgICAgICAgIHJldHVybiBAeyB1c2VySW50ZXJmYWNlSXRlbTogQHsg
QCJtZXNzYWdlIjogKE5TU3RyaW5nICopbWVzc2FnZSwgQCJmb250U2l6ZSI6IEAoZm9udFNpemUp
IH0gfTsKICAgICB9CiAKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjb250ZW50cyA9IF9wYWdlLT5j
b250ZW50c09mVXNlckludGVyZmFjZUl0ZW0odXNlckludGVyZmFjZUl0ZW0pKQorICAgICAgICBy
ZXR1cm4gY29udGVudHM7CisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHJldHVybiBb
X2NvbnRlbnRWaWV3IF9jb250ZW50c09mVXNlckludGVyZmFjZUl0ZW06KE5TU3RyaW5nICopdXNl
ckludGVyZmFjZUl0ZW1dOwogI2Vsc2UKQEAgLTMwOSw2ICszMTIsMTYgQEAgLSAodm9pZClfc2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTEZvclRlc3Rpbmc6KE5T
VVJMICopdXJsIGMKICAgICB9KTsKIH0KIAorLSAodm9pZClfZGlkU2hvd0NvbnRleHRNZW51Cit7
CisgICAgLy8gRm9yIHN1YmNsYXNzZXMgdG8gb3ZlcnJpZGUuCit9CisKKy0gKHZvaWQpX2RpZERp
c21pc3NDb250ZXh0TWVudQoreworICAgIC8vIEZvciBzdWJjbGFzc2VzIHRvIG92ZXJyaWRlLgor
fQorCiAtICh2b2lkKV9kaWRQcmVzZW50Q29udGFjdFBpY2tlcgogewogICAgIC8vIEZvciBzdWJj
bGFzc2VzIHRvIG92ZXJyaWRlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2lvcy9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oCmluZGV4IDg5
MzdjODRmY2MyYTAwNjQ3MGYyYzJjOWE4NzFhN2Y5OTk1ZmE5YzMuLjkzODhhZWI0ZjE2NzE4MjJi
YzY0ZjhhZDllZWY3MDUxYTgwYTg4NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9pb3MvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdJT1MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmgK
QEAgLTY2LDggKzY2LDYgQEAKIAogLSAodm9pZClhcHBseUF1dG9jb3JyZWN0aW9uOihOU1N0cmlu
ZyAqKW5ld1N0cmluZyB0b1N0cmluZzooTlNTdHJpbmcgKilvbGRTdHJpbmcgd2l0aENvbXBsZXRp
b25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcjsKIAotLSAodm9pZClf
ZGlkU2hvd0NvbnRleHRNZW51OwotLSAodm9pZClfZGlkRGlzbWlzc0NvbnRleHRNZW51OwogLSAo
dm9pZClfZG9BZnRlclJlc2V0dGluZ1NpbmdsZVRhcEdlc3R1cmU6KGRpc3BhdGNoX2Jsb2NrX3Qp
YWN0aW9uOwogCiAtIChOU0RpY3Rpb25hcnkgKilfcHJvcGVydGllc09mTGF5ZXJXaXRoSUQ6KHVu
c2lnbmVkIGxvbmcgbG9uZylsYXllcklEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tCmluZGV4IGVlOTkwZThlNzBlY2Vi
NmYwMGJmNzIzZWVlYzc0NzEyZTQwYmVmYmIuLmQ5Yzc5OWI4ZGRkNTkxYThlYzE4YTEwNmNlMWJm
YjQ3YzcxYmI4MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3Mv
V0tXZWJWaWV3VGVzdGluZ0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
aW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0KQEAgLTE4NCwxNiArMTg0LDYgQEAgLSAoTlNTdHJp
bmcgKilmb3JtSW5wdXRMYWJlbAogICAgIHJldHVybiBbX2NvbnRlbnRWaWV3IGZvcm1JbnB1dExh
YmVsXTsKIH0KIAotLSAodm9pZClfZGlkU2hvd0NvbnRleHRNZW51Ci17Ci0gICAgLy8gRm9yIHN1
YmNsYXNzZXMgdG8gb3ZlcnJpZGUuCi19Ci0KLS0gKHZvaWQpX2RpZERpc21pc3NDb250ZXh0TWVu
dQotewotICAgIC8vIEZvciBzdWJjbGFzc2VzIHRvIG92ZXJyaWRlLgotfQotCiAtIChDR1JlY3Qp
X2lucHV0Vmlld0JvdW5kcwogewogICAgIHJldHVybiBfaW5wdXRWaWV3Qm91bmRzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdUZXN0aW5nTWFj
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdUZXN0aW5nTWFj
Lm1tCmluZGV4IGFmY2MzMWEwNzFhNGVkOTJmOTM1YjZmYzUzMDk1OWU1MmYzZjRmMzUuLjFlMDZj
OWRmYWQxYTY0MTZkMTllNmY5YzA3MDI4YjVhZTc4MDI0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3VGVzdGluZ01hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLV2ViVmlld1Rlc3RpbmdNYWMubW0KQEAgLTEx
NCw5ICsxMTQsMTEgQEAgLSAoTlNTZXQ8TlNWaWV3ICo+ICopX3BkZkhVRHMKIAogLSAoTlNNZW51
ICopX2FjdGl2ZU1lbnUKIHsKLSAgICAvLyBGSVhNRTogT25seSB0aGUgRE9NIHBhc3RlIGFjY2Vz
cyBtZW51IGlzIHN1cHBvcnRlZCBmb3Igbm93LiBJbiB0aGUgZnV0dXJlLCBpdCBjb3VsZCBiZQot
ICAgIC8vIGV4dGVuZGVkIHRvIHJlY29nbml6ZSB0aGUgcmVndWxhciBjb250ZXh0IG1lbnUgYXMg
d2VsbC4KLSAgICByZXR1cm4gX2ltcGwtPmRvbVBhc3RlTWVudSgpOworICAgIGlmIChOU01lbnUg
KmNvbnRleHRNZW51ID0gX3BhZ2UtPnBsYXRmb3JtQWN0aXZlQ29udGV4dE1lbnUoKSkKKyAgICAg
ICAgcmV0dXJuIGNvbnRleHRNZW51OworICAgIGlmIChOU01lbnUgKmRvbVBhc3RlTWVudSA9IF9p
bXBsLT5kb21QYXN0ZU1lbnUoKSkKKyAgICAgICAgcmV0dXJuIGRvbVBhc3RlTWVudTsKKyAgICBy
ZXR1cm4gbmlsOwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCmluZGV4IGM5ZDkwMmRhOGE1NTM5YWUyNTc0MmMwMWY2
ZGIxN2M1NzRlOThhNmQuLjJhOTlhNTQ1ZGVjZmY3MGRhMDZjNWViMmI5YjhjNzZjZmVlOWMwZjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNv
Y29hLm1tCkBAIC0zOSw2ICszOSw3IEBACiAjaW1wb3J0ICJTYWZlQnJvd3NpbmdXYXJuaW5nLmgi
CiAjaW1wb3J0ICJTaGFyZWRCdWZmZXJDb3B5LmgiCiAjaW1wb3J0ICJTaGFyZWRCdWZmZXJEYXRh
UmVmZXJlbmNlLmgiCisjaW1wb3J0ICJXZWJDb250ZXh0TWVudVByb3h5LmgiCiAjaW1wb3J0ICJX
ZWJQYWdlLmgiCiAjaW1wb3J0ICJXZWJQYWdlTWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlBhc3Rl
Ym9hcmRQcm94eS5oIgpAQCAtNjQyLDYgKzY0MywxNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmV2
b2tlQWNjZXNzVG9Bc3NldFNlcnZpY2VzKCkKICAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6
V2ViUHJvY2Vzczo6UmV2b2tlQWNjZXNzVG9Bc3NldFNlcnZpY2VzKCksIDApOwogfQogCitOU0Rp
Y3Rpb25hcnkgKldlYlBhZ2VQcm94eTo6Y29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtKE5TU3Ry
aW5nICp1c2VySW50ZXJmYWNlSXRlbSkKK3sKKyNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKKyAg
ICBpZiAobV9hY3RpdmVDb250ZXh0TWVudSAmJiBbdXNlckludGVyZmFjZUl0ZW0gaXNFcXVhbFRv
U3RyaW5nOkAibWVkaWFDb250cm9sc0NvbnRleHRNZW51Il0pCisgICAgICAgIHJldHVybiBAeyB1
c2VySW50ZXJmYWNlSXRlbTogbV9hY3RpdmVDb250ZXh0TWVudS0+cGxhdGZvcm1EYXRhKCkgfTsK
KyNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKKworICAgIHJldHVybiBuaWw7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCBiNmMwNzViMWE5NTkyYjFiNTM0NWFh
ZTJlMDczZTZiMjNmNWQwNjU5Li42YzRjODNkMjI1NTU5ODg1OWE1ODE3ZWQ4NzQ4Yjc2MTViZTRi
YjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0zNTUsNiArMzU1LDgg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBjcmVhdGVQ
b3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmKSA9IDA7CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVO
VVMpCiAgICAgdmlydHVhbCBSZWY8V2ViQ29udGV4dE1lbnVQcm94eT4gY3JlYXRlQ29udGV4dE1l
bnVQcm94eShXZWJQYWdlUHJveHkmLCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYsIGNvbnN0IFVz
ZXJEYXRhJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTaG93Q29udGV4dE1lbnUoKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgZGlkRGlzbWlzc0NvbnRleHRNZW51KCkgeyB9CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQpAQCAtNTI3LDkgKzUyOSw5IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEltYWdlRXh0cmFjdGlvbihjb25zdCBVUkwmIGltYWdl
VVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvblJlc3VsdCYmKT4mJiBjb21wbGV0
aW9uKSB7IGNvbXBsZXRpb24oeyB9KTsgfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVESUFfQ09O
VFJPTFNfQ09OVEVYVF9NRU5VUykKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9N
RU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAgICAgdmlydHVhbCB2b2lkIHNob3dNZWRpYUNv
bnRyb2xzQ29udGV4dE1lbnUoV2ViQ29yZTo6RmxvYXRSZWN0JiYsIFZlY3RvcjxXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1l
bnVJdGVtOjppbnZhbGlkSUQpOyB9Ci0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NP
TlRFWFRfTUVOVVMpCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVO
VVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogICAgIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2
aXJ0dWFsIHZvaWQgZGlkUGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRlc3QoY29uc3QgV2ViSGl0
VGVzdFJlc3VsdERhdGEmLCBib29sIGNvbnRlbnRQcmV2ZW50c0RlZmF1bHQsIEFQSTo6T2JqZWN0
KikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1l
bnVQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5o
CmluZGV4IDJkMmM1NzY1YzAxZjI2ODA3NDlhOGYxOTNkNjFmYjY2NmEwOGFiODYuLjFiOGZjYzg0
NjY0ZjMwOWFmZTVmNGVhY2QyOGI1NDEzYzFiMWI5MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJDb250ZXh0TWVudVByb3h5LmgKQEAgLTMzLDYgKzMzLDggQEAKICNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKK09CSkNfQ0xB
U1MgTlNNZW51OworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQ29udGV4dE1lbnVJ
dGVtOwpAQCAtNDYsNiArNDgsMTEgQEAgcHVibGljOgogCiAgICAgV2ViUGFnZVByb3h5KiBwYWdl
KCkgY29uc3QgeyByZXR1cm4gbV9wYWdlLmdldCgpOyB9CiAKKyNpZiBQTEFURk9STShDT0NPQSkK
KyAgICB2aXJ0dWFsIE5TTWVudSAqcGxhdGZvcm1NZW51KCkgY29uc3QgPSAwOworICAgIHZpcnR1
YWwgTlNBcnJheSAqcGxhdGZvcm1EYXRhKCkgY29uc3QgPSAwOworI2VuZGlmIC8vIFBMQVRGT1JN
KENPQ09BKQorCiBwcm90ZWN0ZWQ6CiAgICAgV2ViQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJv
eHkmLCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYsIGNvbnN0IFVzZXJEYXRhJik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDBiYjJjNTA0YzUwZjc3YmFi
Zjg0YmI1MDU3YTlhYTg1YjQ0YjA4OWUuLjYxNzU5Y2E4NDljNDQyNjcwNzA1MzI0OWYyYTVhZjI1
Zjk2ZDdlMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAt
ODMxNiwxNCArODMxNiwxNCBAQCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5JiBXZWJQYWdlUHJveHk6Om1lZGlhS2V5U3lzdGVtUGVybWlzcwogfQogI2VuZGlmCiAK
LSNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyNpZiBFTkFCTEUoTUVE
SUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAKIHZvaWQg
V2ViUGFnZVByb3h5OjpzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KEZsb2F0UmVjdCYmIHRh
cmdldEZyYW1lLCBWZWN0b3I8TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbT4mJiBpdGVtcywg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgcGFnZUNsaWVudCgpLnNob3dNZWRpYUNvbnRy
b2xzQ29udGV4dE1lbnUoV1RGTW92ZSh0YXJnZXRGcmFtZSksIFdURk1vdmUoaXRlbXMpLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09O
VFJPTFNfQ09OVEVYVF9NRU5VUykKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09O
VEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAKIAogdm9pZCBXZWJQYWdlUHJveHk6
OnJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3Qg
U3RyaW5nJiBvcmlnaW5TdHJpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CmluZGV4IDk3YjZkMTI5NjA2OWIxYTEwNDNkOTc0NTRhMWFjMzA0MTUwYzUyNDAuLmY3YjMzOTdk
YjZmZWM1MDlhMDgxNzIyY2U4MGUyM2ZiMzhmNWVhMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCkBAIC0xMzgsNiArMTM4LDcgQEAKICNpbmNsdWRlICJFbmRvd21lbnRT
dGF0ZVRyYWNrZXIuaCIKICNlbmRpZgogCitPQkpDX0NMQVNTIE5TTWVudTsKIE9CSkNfQ0xBU1Mg
TlNUZXh0QWx0ZXJuYXRpdmVzOwogT0JKQ19DTEFTUyBOU1ZpZXc7CiBPQkpDX0NMQVNTIF9XS1Jl
bW90ZU9iamVjdFJlZ2lzdHJ5OwpAQCAtMTYyNyw5ICsxNjI4LDkgQEAgcHVibGljOgogICAgIHZv
aWQgdXBkYXRlV2l0aEltYWdlRXh0cmFjdGlvblJlc3VsdChXZWJDb3JlOjpJbWFnZUV4dHJhY3Rp
b25SZXN1bHQmJiwgY29uc3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQmLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFBvaW50JiBsb2NhdGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHRleHRF
eGlzdHNBdExvY2F0aW9uKT4mJik7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShNRURJQV9DT05UUk9M
U19DT05URVhUX01FTlVTKQorI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVT
KSAmJiBVU0UoVUlDT05URVhUTUVOVSkKICAgICB2b2lkIHNob3dNZWRpYUNvbnRyb2xzQ29udGV4
dE1lbnUoV2ViQ29yZTo6RmxvYXRSZWN0JiYsIFZlY3RvcjxXZWJDb3JlOjpNZWRpYUNvbnRyb2xz
Q29udGV4dE1lbnVJdGVtPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok1lZGlh
Q29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4mJik7Ci0jZW5kaWYgLy8gRU5BQkxFKE1FRElB
X0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xT
X0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogCiAgICAgc3RhdGljIFdlYlBh
Z2VQcm94eSogbm9uRXBoZW1lcmFsV2ViUGFnZVByb3h5KCk7CiAKQEAgLTE4MDUsNiArMTgwNiw3
IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCisgICAgTlNN
ZW51ICpwbGF0Zm9ybUFjdGl2ZUNvbnRleHRNZW51KCkgY29uc3Q7CiAgICAgdm9pZCBwbGF0Zm9y
bURpZFNlbGVjdEl0ZW1Gcm9tQWN0aXZlQ29udGV4dE1lbnUoY29uc3QgV2ViQ29udGV4dE1lbnVJ
dGVtRGF0YSYpOwogI2VuZGlmCiAKQEAgLTE4NzgsNiArMTg4MCwxMCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBjbGVhckFwcEJvdW5kTmF2aWdhdGlvbkRhdGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgTlNEaWN0aW9uYXJ5ICpj
b250ZW50c09mVXNlckludGVyZmFjZUl0ZW0oTlNTdHJpbmcgKnVzZXJJbnRlcmZhY2VJdGVtKTsK
KyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKKwogcHJpdmF0ZToKICAgICBXZWJQYWdlUHJveHko
UGFnZUNsaWVudCYsIFdlYlByb2Nlc3NQcm94eSYsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9u
PiYmKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDg3MzE3NmQ5NTkxNmZm
MDQ4YzBiNTIyNTViZGU5OGZhOTAzMWZkNTcuLmE5MWQ5NjdmZjdlMTlkNTc0YjZmM2ViMzgxMTI1
MTFhNTJhZDcyNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KQEAgLTIyNCw5ICsyMjQsOSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJv
eHkgewogICAgIFJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oVVJMIGltYWdlVVJMLCBXZWJLaXQ6OlNo
YXJlYWJsZUJpdG1hcDo6SGFuZGxlIGltYWdlRGF0YSkgLT4gKHN0cnVjdCBXZWJDb3JlOjpJbWFn
ZUV4dHJhY3Rpb25SZXN1bHQgcmVzdWx0KSBBc3luYwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVE
SUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09O
VEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAgICAgU2hvd01lZGlhQ29udHJvbHND
b250ZXh0TWVudShXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0RnJhbWUsIFZlY3RvcjxXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiBpdGVtcykgLT4gKFdlYkNvcmU6Ok1lZGlh
Q29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEIHNlbGVjdGVkSXRlbUlEKSBBc3luYwotI2VuZGlm
IC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorI2VuZGlmIC8vIEVOQUJM
RShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKIAog
I2lmIEhBVkUoVE9VQ0hfQkFSKQogICAgIFNldElzVG91Y2hCYXJVcGRhdGVTdXByZXNzZWRGb3JI
aWRkZW5Db250ZW50RWRpdGFibGUoYm9vbCBpc1RvdWNoQmFyVXBkYXRlU3VwcmVzc2VkKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAppbmRleCAx
NGZiZTk1YTMzNWU2NjYwZGQ4ZjA4YjA0MTVlMTZlNDlmNjBjYzE0Li4yNjc4YzFhNDA0MmJkNWRj
YTcyMzk5Mjg5NGJjNTFjODI2ZGE2MmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtMjY3LDkgKzI2Nyw5IEBAIHByaXZhdGU6CiAK
ICAgICB2b2lkIHNldE1vdXNlRXZlbnRQb2xpY3koV2ViQ29yZTo6TW91c2VFdmVudFBvbGljeSkg
ZmluYWw7CiAKLSNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyNpZiBF
TkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUp
CiAgICAgdm9pZCBzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KFdlYkNvcmU6OkZsb2F0UmVj
dCYmLCBWZWN0b3I8V2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbT4mJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVt
OjpJRCk+JiYpIGZpbmFsOwotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhU
X01FTlVTKQorI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAm
JiBVU0UoVUlDT05URVhUTUVOVSkKIAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAg
ICAgdm9pZCB3cml0ZVByb21pc2VkQXR0YWNobWVudFRvUGFzdGVib2FyZChXZWJDb3JlOjpQcm9t
aXNlZEF0dGFjaG1lbnRJbmZvJiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGI5ZDg4MzVjZGVmNmFkODc3ODc0NGM2
NjRiMDJkNjgzYTI3YmMxN2UuLjU2ZDBlYjMwNjhlM2Q3MzJlNmFlNjk2N2M2MDAzY2M1NTZmZjdj
MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MubW0KQEAgLTk3NSwxMiArOTc1LDEyIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldE1vdXNl
RXZlbnRQb2xpY3koV2ViQ29yZTo6TW91c2VFdmVudFBvbGljeSBwb2xpY3kpCiAjZW5kaWYKIH0K
IAotI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorI2lmIEVOQUJMRShN
RURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKIHZvaWQg
UGFnZUNsaWVudEltcGw6OnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoRmxvYXRSZWN0JiYg
dGFyZ2V0RnJhbWUsIFZlY3RvcjxNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiYmIGl0ZW1z
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklE
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBbbV9jb250ZW50VmlldyBfc2hvd01lZGlh
Q29udHJvbHNDb250ZXh0TWVudTpXVEZNb3ZlKHRhcmdldEZyYW1lKSBpdGVtczpXVEZNb3ZlKGl0
ZW1zKSBjb21wbGV0aW9uSGFuZGxlcjpXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV07CiB9Ci0j
ZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjZW5kaWYgLy8g
RU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5V
KQogCiAjaWYgSEFWRShVSVNDUk9MTFZJRVdfQVNZTkNIUk9OT1VTX1NDUk9MTF9FVkVOVF9IQU5E
TElORykKIHZvaWQgUGFnZUNsaWVudEltcGw6OmhhbmRsZUFzeW5jaHJvbm91c0NhbmNlbGFibGVT
Y3JvbGxFdmVudChVSVNjcm9sbFZpZXcgKnNjcm9sbFZpZXcsIFVJU2Nyb2xsRXZlbnQgKnNjcm9s
bEV2ZW50LCB2b2lkICheY29tcGxldGlvbikoQk9PTCBoYW5kbGVkKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oCmluZGV4IDZj
NzA5ZDU2MmEzMmYyMTc4ZjI2N2M5Y2E5YWNmY2M2NjhkYmY2NjYuLjk3NjgzMDdiNmZlY2JjOWZl
YTk3NGM0YjRlMjU3Y2I4YzlhZWNkZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaApAQCAtMTAzLDkgKzEwMyw5IEBAIFVJ
Q29udGV4dE1lbnVJbnRlcmFjdGlvbkRlbGVnYXRlPgogLSAodm9pZClzaG93TGlua1NoZWV0Owog
LSAodm9pZClzaG93SW1hZ2VTaGVldDsKIC0gKHZvaWQpc2hvd0RhdGFEZXRlY3RvcnNVSUZvclBv
c2l0aW9uSW5mb3JtYXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb24mKXBvc2l0aW9uSW5mb3JtYXRpb247Ci0jaWYgRU5BQkxFKE1FRElBX0NPTlRST0xT
X0NPTlRFWFRfTUVOVVMpCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMp
ICYmIFVTRShVSUNPTlRFWFRNRU5VKQogLSAodm9pZClzaG93TWVkaWFDb250cm9sc0NvbnRleHRN
ZW51OihXZWJDb3JlOjpGbG9hdFJlY3QmJil0YXJnZXRGcmFtZSBpdGVtczooVmVjdG9yPFdlYkNv
cmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0+JiYpaXRlbXMgY29tcGxldGlvbkhhbmRs
ZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRN
ZW51SXRlbTo6SUQpPiYmKWNvbXBsZXRpb25IYW5kbGVyOwotI2VuZGlmIC8vIEVOQUJMRShNRURJ
QV9DT05UUk9MU19DT05URVhUX01FTlVTKQorI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9M
U19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKIC0gKHZvaWQpY2xlYW51cFNo
ZWV0OwogLSAodm9pZCl1cGRhdGVTaGVldFBvc2l0aW9uOwogLSAoUmV0YWluUHRyPE5TQXJyYXk8
X1dLRWxlbWVudEFjdGlvbiAqPj4pZGVmYXVsdEFjdGlvbnNGb3JMaW5rU2hlZXQ6KF9XS0FjdGl2
YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm87CkBAIC0xMjAsOSArMTIwLDkgQEAgVUlDb250
ZXh0TWVudUludGVyYWN0aW9uRGVsZWdhdGU+CiAKIEBpbnRlcmZhY2UgV0tBY3Rpb25TaGVldEFz
c2lzdGFudCAoV0tUZXN0aW5nKQogLSAoTlNBcnJheSAqKWN1cnJlbnRseUF2YWlsYWJsZUFjdGlv
blRpdGxlczsKLSNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyNpZiBF
TkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUp
CiAtIChOU0FycmF5ICopY3VycmVudGx5QXZhaWxhYmxlTWVkaWFDb250cm9sc0NvbnRleHRNZW51
SXRlbXM7Ci0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisj
ZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNP
TlRFWFRNRU5VKQogQGVuZAogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQu
bW0KaW5kZXggMTM3YWU4ZWUyNmRjMGNhNGU3MWIyZWJjYTA3YmNiMzkyOGFjOTc4OC4uYzI2ZTM4
MWY5MmYyYThmNjYxN2M4NDg5M2U0NGIyODM2NzRlNmFhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0KQEAgLTEwMCwx
NCArMTAwLDE2IEBAIEBpbXBsZW1lbnRhdGlvbiBXS0FjdGlvblNoZWV0QXNzaXN0YW50IHsKICAg
ICBSZXRhaW5QdHI8X1dLQWN0aXZhdGVkRWxlbWVudEluZm8+IF9lbGVtZW50SW5mbzsKICAgICBP
cHRpb25hbDxXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uPiBfcG9zaXRp
b25JbmZvcm1hdGlvbjsKICNpZiBVU0UoVUlDT05URVhUTUVOVSkKKyNpZiBFTkFCTEUoREFUQV9E
RVRFQ1RJT04pCiAgICAgUmV0YWluUHRyPFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbj4gX2RhdGFE
ZXRlY3RvckNvbnRleHRNZW51SW50ZXJhY3Rpb247Ci0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUo
REFUQV9ERVRFQ1RJT04pCiAjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMp
CiAgICAgUmV0YWluUHRyPFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbj4gX21lZGlhQ29udHJvbHND
b250ZXh0TWVudUludGVyYWN0aW9uOwogICAgIFJldGFpblB0cjxVSU1lbnU+IF9tZWRpYUNvbnRy
b2xzQ29udGV4dE1lbnU7CiAgICAgV2ViQ29yZTo6RmxvYXRSZWN0IF9tZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnVUYXJnZXRGcmFtZTsKICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6
Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4gX21lZGlhQ29udHJvbHNDb250ZXh0
TWVudUNhbGxiYWNrOwogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01F
TlVTKQorI2VuZGlmIC8vIFVTRShVSUNPTlRFWFRNRU5VKQogICAgIFdlYWtPYmpDUHRyPFVJVmll
dz4gX3ZpZXc7CiAgICAgQk9PTCBfbmVlZHNMaW5rSW5kaWNhdG9yOwogICAgIEJPT0wgX2lzUHJl
c2VudGluZ0REVXNlckludGVyZmFjZTsKQEAgLTEzMywxMiArMTM1LDE0IEBAIC0gKGlkKWluaXRX
aXRoVmlldzooVUlWaWV3ICopdmlldwogLSAodm9pZClkZWFsbG9jCiB7CiAgICAgW3NlbGYgY2xl
YW51cFNoZWV0XTsKKyNpZiBVU0UoVUlDT05URVhUTUVOVSkKICNpZiBFTkFCTEUoREFUQV9ERVRF
Q1RJT04pCiAgICAgW3NlbGYgX3JlbW92ZURhdGFEZXRlY3RvckNvbnRleHRNZW51SW50ZXJhY3Rp
b25dOwogI2VuZGlmIC8vIEVOQUJMRShEQVRBX0RFVEVDVElPTikKICNpZiBFTkFCTEUoTUVESUFf
Q09OVFJPTFNfQ09OVEVYVF9NRU5VUykKICAgICBbc2VsZiBfcmVtb3ZlTWVkaWFDb250cm9sc0Nv
bnRleHRNZW51SW50ZXJhY3Rpb25dOwogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19D
T05URVhUX01FTlVTKQorI2VuZGlmIC8vIFVTRShVSUNPTlRFWFRNRU5VKQogICAgIFtzdXBlciBk
ZWFsbG9jXTsKIH0KIApAQCAtNzg5LDYgKzc5Myw4IEBAIC0gKHZvaWQpc2hvd0RhdGFEZXRlY3Rv
cnNVSUZvclBvc2l0aW9uSW5mb3JtYXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZv
CiAjZW5kaWYgLy8gRU5BQkxFKERBVEFfREVURUNUSU9OKQogfQogCisjaWYgVVNFKFVJQ09OVEVY
VE1FTlUpCisKICNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKIAogLSAo
TlNBcnJheTxVSU1lbnVFbGVtZW50ICo+ICopX3VpTWVudUVsZW1lbnRzRm9yTWVkaWFDb250cm9s
Q29udGV4dE1lbnVJdGVtczooVmVjdG9yPFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVu
dUl0ZW0+JiYpIGl0ZW1zCkBAIC04MDcsNyArODEzLDcgQEAgLSAoTlNBcnJheTxVSU1lbnVFbGVt
ZW50ICo+ICopX3VpTWVudUVsZW1lbnRzRm9yTWVkaWFDb250cm9sQ29udGV4dE1lbnVJdGVtczoo
VmUKIAogICAgICAgICAgICAgc3Ryb25nU2VsZi0+X21lZGlhQ29udHJvbHNDb250ZXh0TWVudUNh
bGxiYWNrKHNlbGVjdGVkSXRlbUlEKTsKICAgICAgICAgfV07Ci0gICAgICAgIGlmIChpdGVtLmlz
Q2hlY2tlZCkKKyAgICAgICAgaWYgKGl0ZW0uY2hlY2tlZCkKICAgICAgICAgICAgIGFjdGlvbi5z
dGF0ZSA9IFVJTWVudUVsZW1lbnRTdGF0ZU9uOwogICAgICAgICByZXR1cm4gYWN0aW9uOwogICAg
IH0pLmF1dG9yZWxlYXNlKCk7CkBAIC04MzMsOCArODM5LDYgQEAgLSAodm9pZClzaG93TWVkaWFD
b250cm9sc0NvbnRleHRNZW51OihXZWJDb3JlOjpGbG9hdFJlY3QmJil0YXJnZXRGcmFtZSBpdGVt
czooVmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQog
Ci0jaWYgVVNFKFVJQ09OVEVYVE1FTlUpCi0KIHN0YXRpYyBOU0FycmF5PFVJTWVudUVsZW1lbnQg
Kj4gKm1lbnVFbGVtZW50c0Zyb21EZWZhdWx0QWN0aW9ucyhSZXRhaW5QdHI8TlNBcnJheT4gZGVm
YXVsdEVsZW1lbnRBY3Rpb25zLCBSZXRhaW5QdHI8X1dLQWN0aXZhdGVkRWxlbWVudEluZm8+IGVs
ZW1lbnRJbmZvKQogewogICAgIGlmICghW2RlZmF1bHRFbGVtZW50QWN0aW9ucyBjb3VudF0pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLmgKaW5kZXggMDNjZDc0MTNlNjc0OTBkYzA0YmU1Y2VlYjE1ZDMxMzI1NjcxYjc0Zi4u
ODY5MzdkYzNhYmQ0Zjc0ODkzOWYzNTRiYWNmY2RlN2MyNjVhNmM5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApA
QCAtNjgwLDkgKzY4MCw5IEBAIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04o
REVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAtICh2b2lkKV9zZXRN
b3VzZUV2ZW50UG9saWN5OihXZWJDb3JlOjpNb3VzZUV2ZW50UG9saWN5KXBvbGljeTsKICNlbmRp
ZgogCi0jaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjaWYgRU5BQkxF
KE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogLSAo
dm9pZClfc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudTooV2ViQ29yZTo6RmxvYXRSZWN0JiYp
dGFyZ2V0RnJhbWUgaXRlbXM6KFZlY3RvcjxXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1l
bnVJdGVtPiYmKWl0ZW1zIGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4mJiljb21wbGV0aW9u
SGFuZGxlcjsKLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykK
KyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJ
Q09OVEVYVE1FTlUpCiAKICNpZiBFTkFCTEUoSU9TX0ZPUk1fQ09OVFJPTF9SRUZSRVNIKQogLSAo
Qk9PTClfZm9ybUNvbnRyb2xSZWZyZXNoRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IGU0Njcz
YjI2NmU1NjMxMzg3YjdlNDk4OTRjZjJiMzdmZmE1NDVlYjIuLjA4NzYwZmFkNzY0NWY1MWM2YWI2
Yzc4NjQxYzJkNjg4MzJjYTU2YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtOTEyNiwxNCArOTEyNiwx
NCBAQCAtICh2b2lkKV9zZXRNb3VzZUV2ZW50UG9saWN5OihXZWJDb3JlOjpNb3VzZUV2ZW50UG9s
aWN5KXBvbGljeQogCiAjZW5kaWYgLy8gSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpCiAK
LSNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyNpZiBFTkFCTEUoTUVE
SUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAKIC0gKHZv
aWQpX3Nob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnU6KFdlYkNvcmU6OkZsb2F0UmVjdCYmKXRh
cmdldEZyYW1lIGl0ZW1zOihWZWN0b3I8V2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51
SXRlbT4mJilpdGVtcyBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCk+JiYpY29tcGxldGlvbkhh
bmRsZXIKIHsKICAgICBbX2FjdGlvblNoZWV0QXNzaXN0YW50IHNob3dNZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnU6V1RGTW92ZSh0YXJnZXRGcmFtZSkgaXRlbXM6V1RGTW92ZShpdGVtcykgY29tcGxl
dGlvbkhhbmRsZXI6V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildOwogfQogCi0jZW5kaWYgLy8g
RU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjZW5kaWYgLy8gRU5BQkxFKE1F
RElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogCiAjaWYg
SEFWRShVSV9QT0lOVEVSX0lOVEVSQUNUSU9OKQogCkBAIC05NjA5LDEwICs5NjA5LDEwIEBAIC0g
KE5TRGljdGlvbmFyeSAqKV9jb250ZW50c09mVXNlckludGVyZmFjZUl0ZW06KE5TU3RyaW5nICop
dXNlckludGVyZmFjZUl0ZW0KICAgICB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShNRURJQV9DT05U
Uk9MU19DT05URVhUX01FTlVTKQorI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01F
TlVTKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKICAgICBpZiAoW3VzZXJJbnRlcmZhY2VJdGVtIGlz
RXF1YWxUb1N0cmluZzpAIm1lZGlhQ29udHJvbHNDb250ZXh0TWVudSJdKQogICAgICAgICByZXR1
cm4gQHsgdXNlckludGVyZmFjZUl0ZW06IFtfYWN0aW9uU2hlZXRBc3Npc3RhbnQgY3VycmVudGx5
QXZhaWxhYmxlTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbXNdIH07Ci0jZW5kaWYgLy8gRU5B
QkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjZW5kaWYgLy8gRU5BQkxFKE1FRElB
X0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogCiAgICAgaWYg
KFt1c2VySW50ZXJmYWNlSXRlbSBpc0VxdWFsVG9TdHJpbmc6QCJmaWxlVXBsb2FkUGFuZWxNZW51
Il0pIHsKICAgICAgICAgaWYgKCFfZmlsZVVwbG9hZFBhbmVsKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAppbmRleCBjMzdlYjIzZmY1NDA2ZTkz
MDQzZjlmNzg4NmJmZTYwMjJhY2Y5OTJmLi41OTM0ZGEzZGM0MjRhNjI5ZDkwYWM5ZjE4MzE3NWFl
N2EzYjMxOTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNs
aWVudEltcGxNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGxNYWMuaApAQCAtMTM3LDYgKzEzNyw4IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYlBv
cHVwTWVudVByb3h5PiBjcmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmKSBvdmVycmlk
ZTsKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICBSZWY8V2ViQ29udGV4dE1lbnVQcm94
eT4gY3JlYXRlQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJveHkmLCBDb250ZXh0TWVudUNvbnRl
eHREYXRhJiYsIGNvbnN0IFVzZXJEYXRhJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRTaG93Q29u
dGV4dE1lbnUoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZERpc21pc3NDb250ZXh0TWVudSgpIG92
ZXJyaWRlOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQppbmRleCA1NmI0
NDAyMTM1MzJlM2I1ZjlmM2Y2M2JhNDlmNDk0Yjk4YzFkOTRiLi4xOGYzNzNhMjNkODdmNDBmNzVi
YWQ0OWMwZWEzMDIxY2VjNTllYWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCkBAIC00OSw3ICs0OSw3IEBACiAjaW1wb3J0ICJXS1N0
cmluZ0NGLmgiCiAjaW1wb3J0ICJXS1ZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJWaWV3
SW50ZXJuYWwuaCIKLSNpbXBvcnQgIldLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nTWFjLmgiCisj
aW1wb3J0ICJXS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oIgogI2ltcG9ydCAiV2ViQ29sb3JQ
aWNrZXJNYWMuaCIKICNpbXBvcnQgIldlYkNvbnRleHRNZW51UHJveHlNYWMuaCIKICNpbXBvcnQg
IldlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bk1hYy5oIgpAQCAtNDk2LDExICs0OTYsMjMg
QEAgUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlUG9wdXBN
ZW51UHJveHkoV2ViUGFnZVByb3h5JiBwYWcKIH0KIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVT
KQorCiBSZWY8V2ViQ29udGV4dE1lbnVQcm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZUNvbnRl
eHRNZW51UHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYg
Y29udGV4dCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIHJldHVybiBXZWJDb250
ZXh0TWVudVByb3h5TWFjOjpjcmVhdGUobV92aWV3LCBwYWdlLCBXVEZNb3ZlKGNvbnRleHQpLCB1
c2VyRGF0YSk7CiB9Ci0jZW5kaWYKKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkU2hvd0NvbnRl
eHRNZW51KCkKK3sKKyAgICBbbV93ZWJWaWV3IF9kaWRTaG93Q29udGV4dE1lbnVdOworfQorCit2
b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWREaXNtaXNzQ29udGV4dE1lbnUoKQoreworICAgIFttX3dl
YlZpZXcgX2RpZERpc21pc3NDb250ZXh0TWVudV07Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoQ09O
VEVYVF9NRU5VUykKIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogUmVmUHRyPFdlYkNv
bG9yUGlja2VyPiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29sb3JQaWNrZXIoV2ViUGFnZVByb3h5
KiBwYWdlLCBjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiByZWN0LCBWZWN0b3I8V2ViQ29yZTo6Q29sb3I+JiYgc3VnZ2VzdGlvbnMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94
eU1hYy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlN
YWMuaAppbmRleCAwYmIwN2U2NzlmMzBlN2IzNjgyYjM3MzZiNTM3MmNiYmIyZDMxZWM4Li41NjA2
MWFmYzNkMDNlYjFkM2VkOTlhMzlkYWNkNmNjYWQzNjEwOWJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLmgKQEAgLTM1LDYg
KzM1LDcgQEAgT0JKQ19DTEFTUyBOU01lbnU7CiBPQkpDX0NMQVNTIE5TTWVudUl0ZW07CiBPQkpD
X0NMQVNTIE5TVmlldzsKIE9CSkNfQ0xBU1MgTlNXaW5kb3c7CitPQkpDX0NMQVNTIFdLTWVudURl
bGVnYXRlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNzIsNyArNzMsMTEgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHNldHVwU2VydmljZXNNZW51KCk7CiAjZW5kaWYKIAorICAgIE5TTWVudSAq
cGxhdGZvcm1NZW51KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgTlNBcnJheSAqcGxhdGZvcm1EYXRh
KCkgY29uc3Qgb3ZlcnJpZGU7CisKICAgICBSZXRhaW5QdHI8TlNNZW51PiBtX21lbnU7CisgICAg
UmV0YWluUHRyPFdLTWVudURlbGVnYXRlPiBtX21lbnVEZWxlZ2F0ZTsKICAgICBXZWFrT2JqQ1B0
cjxOU1ZpZXc+IG1fd2ViVmlldzsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KaW5kZXggZjBmYWYxMTQwOGRiMDU1
MzVmYmM4ZjQ0YmY5Y2YxMGQ4ODRmYmI2Ny4uNmJmZmQxNGRlNDQ4MWE0ZjQ2Y2I3MDBlZDdhMzUw
NGE1NTQ2NzU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNv
bnRleHRNZW51UHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dl
YkNvbnRleHRNZW51UHJveHlNYWMubW0KQEAgLTMwLDYgKzMwLDcgQEAKIAogI2ltcG9ydCAiQVBJ
Q29udGV4dE1lbnVDbGllbnQuaCIKICNpbXBvcnQgIk1lbnVVdGlsaXRpZXMuaCIKKyNpbXBvcnQg
IlBhZ2VDbGllbnRJbXBsTWFjLmgiCiAjaW1wb3J0ICJTZXJ2aWNlc0NvbnRyb2xsZXIuaCIKICNp
bXBvcnQgIlNoYXJlYWJsZUJpdG1hcC5oIgogI2ltcG9ydCAiV0tNZW51SXRlbUlkZW50aWZpZXJz
UHJpdmF0ZS5oIgpAQCAtMTQ3LDYgKzE0OCwzOCBAQCAtICh2b2lkKWZvcndhcmRDb250ZXh0TWVu
dUFjdGlvbjooaWQpc2VuZGVyCiAKIEBlbmQKIAorQGludGVyZmFjZSBXS01lbnVEZWxlZ2F0ZSA6
IE5TT2JqZWN0IDxOU01lbnVEZWxlZ2F0ZT4geworICAgIFdlYktpdDo6V2ViQ29udGV4dE1lbnVQ
cm94eU1hYyogX21lbnVQcm94eTsKK30KKy0oaW5zdGFuY2V0eXBlKWluaXRXaXRoTWVudVByb3h5
OihXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWMmKW1lbnVQcm94eTsKK0BlbmQKKworQGlt
cGxlbWVudGF0aW9uIFdLTWVudURlbGVnYXRlCisKKy0oaW5zdGFuY2V0eXBlKWluaXRXaXRoTWVu
dVByb3h5OihXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlNYWMmKW1lbnVQcm94eQoreworICAg
IGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAg
X21lbnVQcm94eSA9ICZtZW51UHJveHk7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworI3ByYWdt
YSBtYXJrIC0gTlNNZW51RGVsZWdhdGUKKworLSAodm9pZCltZW51V2lsbE9wZW46KE5TTWVudSAq
KW1lbnUKK3sKKyAgICBfbWVudVByb3h5LT5wYWdlKCktPnBhZ2VDbGllbnQoKS5kaWRTaG93Q29u
dGV4dE1lbnUoKTsKK30KKworLSAodm9pZCltZW51RGlkQ2xvc2U6KE5TTWVudSAqKW1lbnUKK3sK
KyAgICBfbWVudVByb3h5LT5wYWdlKCktPnBhZ2VDbGllbnQoKS5kaWREaXNtaXNzQ29udGV4dE1l
bnUoKTsKK30KKworQGVuZAorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCkBAIC00OTksNiArNTMyLDcgQEAgdm9pZCBXZWJDb250ZXh0TWVudVByb3h5TWFj
OjpnZXRDb250ZXh0TWVudUl0ZW0oY29uc3QgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYgaXQKICAg
ICAgICAgW21lbnVJdGVtIHNldFRhZzppdGVtLmFjdGlvbigpXTsKICAgICAgICAgW21lbnVJdGVt
IHNldEVuYWJsZWQ6aXRlbS5lbmFibGVkKCldOwogICAgICAgICBbbWVudUl0ZW0gc2V0U3RhdGU6
aXRlbS5jaGVja2VkKCkgPyBOU0NvbnRyb2xTdGF0ZVZhbHVlT24gOiBOU0NvbnRyb2xTdGF0ZVZh
bHVlT2ZmXTsKKyAgICAgICAgW21lbnVJdGVtIHNldEluZGVudGF0aW9uTGV2ZWw6aXRlbS5pbmRl
bnRhdGlvbkxldmVsKCldOwogICAgICAgICBbbWVudUl0ZW0gc2V0VGFyZ2V0OltXS01lbnVUYXJn
ZXQgc2hhcmVkTWVudVRhcmdldF1dOwogICAgICAgICBbbWVudUl0ZW0gc2V0SWRlbnRpZmllcjpt
ZW51SXRlbUlkZW50aWZpZXIoaXRlbS5hY3Rpb24oKSldOwogCkBAIC01MTYsOSArNTUwLDEwIEBA
IHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6Z2V0Q29udGV4dE1lbnVJdGVtKGNvbnN0IFdl
YkNvbnRleHRNZW51SXRlbURhdGEmIGl0CiAgICAgICAgIHJldHVybjsKIAogICAgIGNhc2UgV2Vi
Q29yZTo6U3VibWVudVR5cGU6IHsKLSAgICAgICAgZ2V0Q29udGV4dE1lbnVGcm9tSXRlbXMoaXRl
bS5zdWJtZW51KCksIFthY3Rpb24gPSBpdGVtLmFjdGlvbigpLCBjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBlbmFibGVkID0gaXRlbS5lbmFibGVkKCksIHRp
dGxlID0gaXRlbS50aXRsZSgpXShOU01lbnUgKm1lbnUpIG11dGFibGUgeworICAgICAgICBnZXRD
b250ZXh0TWVudUZyb21JdGVtcyhpdGVtLnN1Ym1lbnUoKSwgW2FjdGlvbiA9IGl0ZW0uYWN0aW9u
KCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGVuYWJs
ZWQgPSBpdGVtLmVuYWJsZWQoKSwgdGl0bGUgPSBpdGVtLnRpdGxlKCksIGluZGVudGF0aW9uTGV2
ZWwgPSBpdGVtLmluZGVudGF0aW9uTGV2ZWwoKV0oTlNNZW51ICptZW51KSBtdXRhYmxlIHsKICAg
ICAgICAgICAgIGF1dG8gbWVudUl0ZW0gPSBhZG9wdE5TKFtbTlNNZW51SXRlbSBhbGxvY10gaW5p
dFdpdGhUaXRsZTp0aXRsZSBhY3Rpb246bnVsbHB0ciBrZXlFcXVpdmFsZW50OkAiIl0pOwogICAg
ICAgICAgICAgW21lbnVJdGVtIHNldEVuYWJsZWQ6ZW5hYmxlZF07CisgICAgICAgICAgICBbbWVu
dUl0ZW0gc2V0SW5kZW50YXRpb25MZXZlbDppbmRlbnRhdGlvbkxldmVsXTsKICAgICAgICAgICAg
IFttZW51SXRlbSBzZXRTdWJtZW51Om1lbnVdOwogICAgICAgICAgICAgW21lbnVJdGVtIHNldElk
ZW50aWZpZXI6bWVudUl0ZW1JZGVudGlmaWVyKGFjdGlvbildOwogICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIobWVudUl0ZW0uZ2V0KCkpOwpAQCAtNTcxLDEwICs2MDYsMjIgQEAgdm9pZCBX
ZWJDb250ZXh0TWVudVByb3h5TWFjOjp1c2VDb250ZXh0TWVudUl0ZW1zKFZlY3RvcjxSZWY8V2Vi
Q29udGV4dE1lbnVJdGVtPj4KICAgICAgICAgfQogCiAgICAgICAgIFtbV0tNZW51VGFyZ2V0IHNo
YXJlZE1lbnVUYXJnZXRdIHNldE1lbnVQcm94eTp0aGlzXTsKLSAgICAgICAgcGFnZSgpLT5jb250
ZXh0TWVudUNsaWVudCgpLm1lbnVGcm9tUHJvcG9zZWRNZW51KCpwYWdlKCksIG1lbnUsIG1fY29u
dGV4dC53ZWJIaXRUZXN0UmVzdWx0RGF0YSgpLCBtX3VzZXJEYXRhLm9iamVjdCgpLCBbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldKFJldGFpblB0cjxOU01lbnU+
JiYgbWVudSkgeworCisgICAgICAgIGF1dG8gbWVudUZyb21Qcm9wb3NlZE1lbnUgPSBbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldIChSZXRhaW5QdHI8TlNNZW51
PiYmIG1lbnUpIHsKKyAgICAgICAgICAgIG1fbWVudURlbGVnYXRlID0gYWRvcHROUyhbW1dLTWVu
dURlbGVnYXRlIGFsbG9jXSBpbml0V2l0aE1lbnVQcm94eToqdGhpc10pOworCiAgICAgICAgICAg
ICBtX21lbnUgPSBXVEZNb3ZlKG1lbnUpOworICAgICAgICAgICAgW21fbWVudSBzZXREZWxlZ2F0
ZTptX21lbnVEZWxlZ2F0ZS5nZXQoKV07CisKICAgICAgICAgICAgIFdlYkNvbnRleHRNZW51UHJv
eHk6OnVzZUNvbnRleHRNZW51SXRlbXMoeyB9KTsKLSAgICAgICAgfSk7CisgICAgICAgIH07CisK
KyAgICAgICAgaWYgKG1fY29udGV4dC50eXBlKCkgIT0gQ29udGV4dE1lbnVDb250ZXh0OjpUeXBl
OjpDb250ZXh0TWVudSkgeworICAgICAgICAgICAgbWVudUZyb21Qcm9wb3NlZE1lbnUobWVudSk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBwYWdlKCktPmNvbnRl
eHRNZW51Q2xpZW50KCkubWVudUZyb21Qcm9wb3NlZE1lbnUoKnBhZ2UoKSwgbWVudSwgbV9jb250
ZXh0LndlYkhpdFRlc3RSZXN1bHREYXRhKCksIG1fdXNlckRhdGEub2JqZWN0KCksIFdURk1vdmUo
bWVudUZyb21Qcm9wb3NlZE1lbnUpKTsKICAgICB9KTsKIH0KIApAQCAtNTgzLDYgKzYzMCw1MyBA
QCBOU1dpbmRvdyAqV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6d2luZG93KCkgY29uc3QKICAgICBy
ZXR1cm4gW21fd2ViVmlldyB3aW5kb3ddOwogfQogCitOU01lbnUgKldlYkNvbnRleHRNZW51UHJv
eHlNYWM6OnBsYXRmb3JtTWVudSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbWVudS5nZXQoKTsK
K30KKworc3RhdGljIE5TRGljdGlvbmFyeSAqY29udGVudHNPZkNvbnRleHRNZW51SXRlbShOU01l
bnVJdGVtICppdGVtKQoreworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIHJlc3VsdCA9IE5TTXV0
YWJsZURpY3Rpb25hcnkuZGljdGlvbmFyeTsKKworICAgIGlmIChpdGVtLnRpdGxlLmxlbmd0aCkK
KyAgICAgICAgcmVzdWx0W0AidGl0bGUiXSA9IGl0ZW0udGl0bGU7CisKKyAgICBpZiAoaXRlbS5p
c1NlcGFyYXRvckl0ZW0pCisgICAgICAgIHJlc3VsdFtAInNlcGFyYXRvciJdID0gQFlFUzsKKyAg
ICBlbHNlIGlmICghaXRlbS5lbmFibGVkKQorICAgICAgICByZXN1bHRbQCJlbmFibGVkIl0gPSBA
Tk87CisKKyAgICBpZiAoTlNJbnRlZ2VyIGluZGVudGF0aW9uTGV2ZWwgPSBpdGVtLmluZGVudGF0
aW9uTGV2ZWwpCisgICAgICAgIHJlc3VsdFtAImluZGVudGF0aW9uTGV2ZWwiXSA9IFtOU051bWJl
ciBudW1iZXJXaXRoSW50ZWdlcjppbmRlbnRhdGlvbkxldmVsXTsKKworICAgIGlmIChpdGVtLnN0
YXRlID09IE5TQ29udHJvbFN0YXRlVmFsdWVPbikKKyAgICAgICAgcmVzdWx0W0AiY2hlY2tlZCJd
ID0gQFlFUzsKKworICAgIGlmIChOU0FycmF5PE5TTWVudUl0ZW0gKj4gKnN1Ym1lbnVJdGVtcyA9
IGl0ZW0uc3VibWVudS5pdGVtQXJyYXkpIHsKKyAgICAgICAgTlNNdXRhYmxlQXJyYXkgKmNoaWxk
cmVuID0gW05TTXV0YWJsZUFycmF5IGFycmF5V2l0aENhcGFjaXR5OnN1Ym1lbnVJdGVtcy5jb3Vu
dF07CisgICAgICAgIGZvciAoTlNNZW51SXRlbSAqc3VibWVudUl0ZW0gOiBzdWJtZW51SXRlbXMp
CisgICAgICAgICAgICBbY2hpbGRyZW4gYWRkT2JqZWN0OmNvbnRlbnRzT2ZDb250ZXh0TWVudUl0
ZW0oc3VibWVudUl0ZW0pXTsKKyAgICAgICAgcmVzdWx0W0AiY2hpbGRyZW4iXSA9IGNoaWxkcmVu
OworICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK05TQXJyYXkgKldlYkNvbnRleHRN
ZW51UHJveHlNYWM6OnBsYXRmb3JtRGF0YSgpIGNvbnN0Cit7CisgICAgTlNNdXRhYmxlQXJyYXkg
KnJlc3VsdCA9IE5TTXV0YWJsZUFycmF5LmFycmF5OworCisgICAgaWYgKE5TQXJyYXk8TlNNZW51
SXRlbSAqPiAqc3VibWVudUl0ZW1zID0gW21fbWVudSBpdGVtQXJyYXldKSB7CisgICAgICAgIE5T
TXV0YWJsZUFycmF5ICpjaGlsZHJlbiA9IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhDYXBhY2l0
eTpzdWJtZW51SXRlbXMuY291bnRdOworICAgICAgICBmb3IgKE5TTWVudUl0ZW0gKnN1Ym1lbnVJ
dGVtIDogc3VibWVudUl0ZW1zKQorICAgICAgICAgICAgW2NoaWxkcmVuIGFkZE9iamVjdDpjb250
ZW50c09mQ29udGV4dE1lbnVJdGVtKHN1Ym1lbnVJdGVtKV07CisgICAgICAgIFtyZXN1bHQgYWRk
T2JqZWN0OkB7IEAiY2hpbGRyZW4iOiBjaGlsZHJlbiB9XTsKKyAgICB9CisKKyAgICByZXR1cm4g
cmVzdWx0OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JN
KE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJv
eHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1t
CmluZGV4IGYxYjFmZmZjMjFhMjhjMWRkZDFiMjAxNTJhNzU0M2I4YjYzM2UxMTIuLmYxMTYxNDIx
MzUzMmY4NjZkM2UyZTNmMjY4NThmN2ZlYTZlMDc2MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQpAQCAtNjMzLDYgKzYzMywxMyBAQCBOU1dp
bmRvdyAqV2ViUGFnZVByb3h5OjpwYXltZW50Q29vcmRpbmF0b3JQcmVzZW50aW5nV2luZG93KGNv
bnN0IFdlYlBheW1lbnRDb29yZAogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAKK05TTWVu
dSAqV2ViUGFnZVByb3h5OjpwbGF0Zm9ybUFjdGl2ZUNvbnRleHRNZW51KCkgY29uc3QKK3sKKyAg
ICBpZiAobV9hY3RpdmVDb250ZXh0TWVudSkKKyAgICAgICAgcmV0dXJuIG1fYWN0aXZlQ29udGV4
dE1lbnUtPnBsYXRmb3JtTWVudSgpOworICAgIHJldHVybiBuaWw7Cit9CisKIHZvaWQgV2ViUGFn
ZVByb3h5OjpwbGF0Zm9ybURpZFNlbGVjdEl0ZW1Gcm9tQWN0aXZlQ29udGV4dE1lbnUoY29uc3Qg
V2ViQ29udGV4dE1lbnVJdGVtRGF0YSYgaXRlbSkKIHsKICAgICBpZiAoaXRlbS5hY3Rpb24oKSA9
PSBDb250ZXh0TWVudUl0ZW1UYWdQYXN0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggNDY3
NDlkMzAyMTc2Mzg3ZDk4YmU0YmQwNWJhZjFmZmQzYTVjM2JiZS4uNGMwZTMzZWNkYzhlM2MxZGYw
MzFkMTg5OTMzZDAwNmFiODliMDdiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTE0NTQs
MTMgKzE0NTQsMTMgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RJbWFnZUV4dHJhY3Rp
b24oRWxlbWVudCYgZWxlbWVudCkKIAogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTUVESUFfQ09OVFJP
TFNfQ09OVEVYVF9NRU5VUykKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5V
UykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzaG93TWVk
aWFDb250cm9sc0NvbnRleHRNZW51KEZsb2F0UmVjdCYmIHRhcmdldEZyYW1lLCBWZWN0b3I8TWVk
aWFDb250cm9sc0NvbnRleHRNZW51SXRlbT4mJiBpdGVtcywgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgbV9wYWdlLnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoV1RGTW92ZSh0YXJn
ZXRGcmFtZSksIFdURk1vdmUoaXRlbXMpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9
CiAKLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyNlbmRp
ZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVY
VE1FTlUpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGVm
ZjJlOTA5ZTRlMmFhYzU2MzVmOWM2MDE0ODdkYWUzZWNkYzU1ODYuLjE3OTJkNDM0OGRlNjUwNjYw
NjgwNGI2YzVlZTQyYzUyNGYzZjQzZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTQxOCw5ICs0
MTgsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdEltYWdlRXh0cmFjdGlvbihXZWJDb3Jl
OjpFbGVtZW50JikgZmluYWw7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19D
T05URVhUX01FTlVTKQorI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKSAm
JiBVU0UoVUlDT05URVhUTUVOVSkKICAgICB2b2lkIHNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1l
bnUoV2ViQ29yZTo6RmxvYXRSZWN0JiYsIFZlY3RvcjxXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnVJdGVtPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok1lZGlhQ29u
dHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4mJikgZmluYWw7Ci0jZW5kaWYgLy8gRU5BQkxFKE1F
RElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRS
T0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogCiAgICAgbXV0YWJsZSBi
b29sIG1fY2FjaGVkTWFpbkZyYW1lSGFzSG9yaXpvbnRhbFNjcm9sbGJhciB7IGZhbHNlIH07CiAg
ICAgbXV0YWJsZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFzVmVydGljYWxTY3JvbGxiYXIgeyBm
YWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApp
bmRleCBlNjJiYzM0NWYwNzE1M2NjNzM5NDFkZTk5OTQ3ODFmMTJjYjkzYTUwLi5hZGYwZjc3Yzgz
ZjcyZTEwMzNmMjMzNjQ0Y2VhMzcyZTI0OTU1YzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNzI4MCwxMiArNzI4MCwxMiBAQCB2b2lkIFdl
YlBhZ2U6OnVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQoSW1hZ2VFeHRyYWN0aW9uUmVz
dWx0JiYgcmVzdWx0LCBjbwogCiAjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCiAK
LSNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyNpZiBFTkFCTEUoTUVE
SUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiB2b2lkIFdl
YlBhZ2U6OnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoRmxvYXRSZWN0JiYgdGFyZ2V0RnJh
bWUsIFZlY3RvcjxNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiYmIGl0ZW1zLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6U2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShXVEZNb3ZlKHRhcmdldEZyYW1l
KSwgV1RGTW92ZShpdGVtcykpLCBjb21wbGV0aW9uSGFuZGxlcik7CiB9Ci0jZW5kaWYgLy8gRU5B
QkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisjZW5kaWYgLy8gRU5BQkxFKE1FRElB
X0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogCiAjaWYgIVBM
QVRGT1JNKElPU19GQU1JTFkpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAppbmRleCA4NGM1YzQ5ZDcyZDgzMjYzZjhmYmRhNDRkZjgzOGYxYzUyN2VlOGIxLi4y
MGVhN2Q4ODY1ODMyNzJmNTU5YzRlN2JiNmVhMmJlYmZiMzJkY2E0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMzgyLDkgKzEzODIsOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCB1cGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0KFdlYkNvcmU6Oklt
YWdlRXh0cmFjdGlvblJlc3VsdCYmLCBjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGxvY2F0aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRf
TUVOVVMpCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShV
SUNPTlRFWFRNRU5VKQogICAgIHZvaWQgc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShXZWJD
b3JlOjpGbG9hdFJlY3QmJiwgVmVjdG9yPFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVu
dUl0ZW0+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVkaWFDb250cm9sc0Nv
bnRleHRNZW51SXRlbTo6SUQpPiYmKTsKLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNf
Q09OVEVYVF9NRU5VUykKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9N
RU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAKICNpZiBQTEFURk9STShXSU4pCiAgICAgdWlu
dDY0X3QgbmF0aXZlV2luZG93SGFuZGxlKCkgeyByZXR1cm4gbV9uYXRpdmVXaW5kb3dIYW5kbGU7
IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBj
MTRmNjU4MWFmMjljOGExZGNlYWNkNTk1OWZlNzUwZTNlY2Q3Njk3Li40YmM1YWRjYjYxMmI5YWQ4
MDk1MTY2MWRjOTY4N2E1YzAzYzliNGNjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMjEtMDMtMTYgIERldmluIFJv
dXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gY2hhbmdlIGZvciB0
aGUgbGFuZ3VhZ2Uvc3VidGl0bGUgdHJhY2tzIGJ1dHRvbiB0byB1c2UgYW4gYE5TTWVudWAgaW5z
dGVhZCBvZiB3ZWIgY29udGVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjIzMjM5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NTQ2MjM0MD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcubW06CisgICAgICAgICgtW1Rlc3RSdW5u
ZXJXS1dlYlZpZXcgX2RpZFNob3dDb250ZXh0TWVudV0pOgorICAgICAgICAoLVtUZXN0UnVubmVy
V0tXZWJWaWV3IF9kaWREaXNtaXNzQ29udGV4dE1lbnVdKToKKyAgICAgICAgKC1bVGVzdFJ1bm5l
cldLV2ViVmlldyByZXNldEludGVyYWN0aW9uQ2FsbGJhY2tzXSk6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5oOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW06CisgICAgICAg
IChXVFI6OlVJU2NyaXB0Q29udHJvbGxlckNvY29hOjpzZXREaWRTaG93Q29udGV4dE1lbnVDYWxs
YmFjayk6IEFkZGVkLgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXJDb2NvYTo6c2V0
RGlkRGlzbWlzc0NvbnRleHRNZW51Q2FsbGJhY2spOiBBZGRlZC4KKyAgICAgICAgKFdUUjo6VUlT
Y3JpcHRDb250cm9sbGVyQ29jb2E6OmlzU2hvd2luZ0NvbnRleHRNZW51IGNvbnN0KTogQWRkZWQu
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLmg6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1t
OgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXJJT1M6OnNldERpZFNob3dDb250ZXh0
TWVudUNhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVy
SU9TOjpzZXREaWREaXNtaXNzQ29udGV4dE1lbnVDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAg
IChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcklPUzo6aXNTaG93aW5nQ29udGV4dE1lbnUgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICBNb3ZlIHRoZXNlIG1ldGhvZHMgc28gdGhleSBjYW4gYmUgdXNl
ZCBvbiBtYWNPUyB0b28uCisKIDIwMjEtMDMtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIEVuYWJsZSB2aWRlbyBjYXB0dXJlIGluIEdQVVByb2Nlc3MgYnkg
ZGVmYXVsdCBvbiBpT1MKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2Ev
VGVzdFJ1bm5lcldLV2ViVmlldy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0
UnVubmVyV0tXZWJWaWV3LmgKaW5kZXggMDZhNWE2M2IzZGI5Y2Q5YTQxYjkxNGFlMmM5OTU4ZmVm
OGI1NWRmYi4uMjMyODlhNjEyZjU3NzYyYmNhZDE0OTFlZjQwNjdmM2RiZGE0MWE3MSAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3LmgK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3LmgK
QEAgLTM1LDggKzM1LDYgQEAKIAogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5k
aWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjaykodm9pZCk7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRpZEVuZEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxs
YmFjaykodm9pZCk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRpZFNob3dD
b250ZXh0TWVudUNhbGxiYWNrKSh2b2lkKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2
b2lkICheZGlkRGlzbWlzc0NvbnRleHRNZW51Q2FsbGJhY2spKHZvaWQpOwogQHByb3BlcnR5IChu
b25hdG9taWMsIGNvcHkpIHZvaWQgKF53aWxsQmVnaW5ab29taW5nQ2FsbGJhY2spKHZvaWQpOwog
QHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWRFbmRab29taW5nQ2FsbGJhY2sp
KHZvaWQpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWRTaG93S2V5Ym9h
cmRDYWxsYmFjaykodm9pZCk7CkBAIC02NSwxMiArNjMsMTQgQEAKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSwgZ2V0dGVyPWlzU2hvd2luZ0tleWJvYXJkKSBCT09MIHNob3dpbmdLZXli
b2FyZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzRGlzbWlzc2lu
Z01lbnUpIEJPT0wgZGlzbWlzc2luZ01lbnU7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHksIGdldHRlcj1pc1Nob3dpbmdQb3BvdmVyKSBCT09MIHNob3dpbmdQb3BvdmVyOwotQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9aXNTaG93aW5nQ29udGV4dE1lbnUpIEJP
T0wgc2hvd2luZ0NvbnRleHRNZW51OwogQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgQk9P
TCB1c2VzU2FmYXJpTGlrZVJvdGF0aW9uOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
LCBnZXR0ZXI9aXNJbnRlcmFjdGluZ1dpdGhGb3JtQ29udHJvbCkgQk9PTCBpbnRlcmFjdGluZ1dp
dGhGb3JtQ29udHJvbDsKIAogI2VuZGlmCiAKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSwgZ2V0dGVyPWlzU2hvd2luZ0NvbnRleHRNZW51KSBCT09MIHNob3dpbmdDb250ZXh0TWVudTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGlkU2hvd0NvbnRleHRNZW51Q2Fs
bGJhY2spKHZvaWQpOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWREaXNt
aXNzQ29udGV4dE1lbnVDYWxsYmFjaykodm9pZCk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHksIGdldHRlcj1pc1Nob3dpbmdNZW51KSBCT09MIHNob3dpbmdNZW51OwogQHByb3BlcnR5
IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWRTaG93TWVudUNhbGxiYWNrKSh2b2lkKTsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGlkSGlkZU1lbnVDYWxsYmFjaykodm9p
ZCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJX
S1dlYlZpZXcubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dl
YlZpZXcubW0KaW5kZXggOGIwNmFlNWEyZGIyMWQ1MjI1MWM3ZmFmZjYwYmY3NWM1NWFmZTU5Ny4u
MWM0NWJmZDIzOTlhMjRmY2JhNDdjZTBlYjAwZjJiNGQ4ZTY4MDVhOSAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1tCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5tbQpAQCAtMTM2
LDYgKzEzNiwyNiBAQCAtICh2b2lkKWRlYWxsb2MKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CiAK
Ky0gKHZvaWQpX2RpZFNob3dDb250ZXh0TWVudQoreworICAgIGlmIChzZWxmLnNob3dpbmdDb250
ZXh0TWVudSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2VsZi5zaG93aW5nQ29udGV4dE1lbnUg
PSBZRVM7CisgICAgaWYgKHNlbGYuZGlkU2hvd0NvbnRleHRNZW51Q2FsbGJhY2spCisgICAgICAg
IHNlbGYuZGlkU2hvd0NvbnRleHRNZW51Q2FsbGJhY2soKTsKK30KKworLSAodm9pZClfZGlkRGlz
bWlzc0NvbnRleHRNZW51Cit7CisgICAgaWYgKCFzZWxmLnNob3dpbmdDb250ZXh0TWVudSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgc2VsZi5zaG93aW5nQ29udGV4dE1lbnUgPSBOTzsKKyAgICBp
ZiAoc2VsZi5kaWREaXNtaXNzQ29udGV4dE1lbnVDYWxsYmFjaykKKyAgICAgICAgc2VsZi5kaWRE
aXNtaXNzQ29udGV4dE1lbnVDYWxsYmFjaygpOworfQorCiAtICh2b2lkKV9kaWRTaG93TWVudQog
ewogICAgIGlmIChzZWxmLnNob3dpbmdNZW51KQpAQCAtMTc0LDYgKzE5NCw4IEBAIC0gKHZvaWQp
ZGlzbWlzc0FjdGl2ZU1lbnUKIAogLSAodm9pZClyZXNldEludGVyYWN0aW9uQ2FsbGJhY2tzCiB7
CisgICAgc2VsZi5kaWRTaG93Q29udGV4dE1lbnVDYWxsYmFjayA9IG5pbDsKKyAgICBzZWxmLmRp
ZERpc21pc3NDb250ZXh0TWVudUNhbGxiYWNrID0gbmlsOwogICAgIHNlbGYuZGlkU2hvd01lbnVD
YWxsYmFjayA9IG5pbDsKICAgICBzZWxmLmRpZEhpZGVNZW51Q2FsbGJhY2sgPSBuaWw7CiAgICAg
c2VsZi5kaWRTaG93Q29udGFjdFBpY2tlckNhbGxiYWNrID0gbmlsOwpAQCAtMTgxLDggKzIwMyw2
IEBAIC0gKHZvaWQpcmVzZXRJbnRlcmFjdGlvbkNhbGxiYWNrcwogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCiAgICAgc2VsZi5kaWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjayA9
IG5pbDsKICAgICBzZWxmLmRpZEVuZEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjayA9IG5p
bDsKLSAgICBzZWxmLmRpZFNob3dDb250ZXh0TWVudUNhbGxiYWNrID0gbmlsOwotICAgIHNlbGYu
ZGlkRGlzbWlzc0NvbnRleHRNZW51Q2FsbGJhY2sgPSBuaWw7CiAgICAgc2VsZi53aWxsQmVnaW5a
b29taW5nQ2FsbGJhY2sgPSBuaWw7CiAgICAgc2VsZi5kaWRFbmRab29taW5nQ2FsbGJhY2sgPSBu
aWw7CiAgICAgc2VsZi5kaWRTaG93S2V5Ym9hcmRDYWxsYmFjayA9IG5pbDsKQEAgLTIzOCwyNiAr
MjU4LDYgQEAgLSAodm9pZClpbW1lZGlhdGVseURpc21pc3NDb250ZXh0TWVudUlmTmVlZGVkCiAj
ZW5kaWYKIH0KIAotLSAodm9pZClfZGlkU2hvd0NvbnRleHRNZW51Ci17Ci0gICAgaWYgKHNlbGYu
c2hvd2luZ0NvbnRleHRNZW51KQotICAgICAgICByZXR1cm47Ci0KLSAgICBzZWxmLnNob3dpbmdD
b250ZXh0TWVudSA9IFlFUzsKLSAgICBpZiAoc2VsZi5kaWRTaG93Q29udGV4dE1lbnVDYWxsYmFj
aykKLSAgICAgICAgc2VsZi5kaWRTaG93Q29udGV4dE1lbnVDYWxsYmFjaygpOwotfQotCi0tICh2
b2lkKV9kaWREaXNtaXNzQ29udGV4dE1lbnUKLXsKLSAgICBpZiAoIXNlbGYuc2hvd2luZ0NvbnRl
eHRNZW51KQotICAgICAgICByZXR1cm47Ci0KLSAgICBzZWxmLnNob3dpbmdDb250ZXh0TWVudSA9
IE5POwotICAgIGlmIChzZWxmLmRpZERpc21pc3NDb250ZXh0TWVudUNhbGxiYWNrKQotICAgICAg
ICBzZWxmLmRpZERpc21pc3NDb250ZXh0TWVudUNhbGxiYWNrKCk7Ci19Ci0KIC0gKEJPT0wpYmVj
b21lRmlyc3RSZXNwb25kZXIKIHsKICAgICBCT09MIHdhc0ZpcnN0UmVzcG9uZGVyID0gc2VsZi5p
c0ZpcnN0UmVzcG9uZGVyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2Nv
YS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2Nv
YS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5oCmluZGV4IGU4Y2RjM2NmMGMxMTU0MWE4N2RhYzg1
MDFlNzA4ZjY4OGVhY2IxODQuLjU1MDhjMTMwZGYyOTQ3NDI0NTM4MGRlOGQxNzFkOWYwMDk4OTUy
NWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRDb250
cm9sbGVyQ29jb2EuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0
Q29udHJvbGxlckNvY29hLmgKQEAgLTUzLDYgKzUzLDEwIEBAIHByaXZhdGU6CiAgICAgSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IGZpcnN0UmVkb0xhYmVsKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
TlNVbmRvTWFuYWdlciAqcGxhdGZvcm1VbmRvTWFuYWdlcigpIGNvbnN0IG92ZXJyaWRlOwogCisg
ICAgdm9pZCBzZXREaWRTaG93Q29udGV4dE1lbnVDYWxsYmFjayhKU1ZhbHVlUmVmKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHNldERpZERpc21pc3NDb250ZXh0TWVudUNhbGxiYWNrKEpTVmFsdWVSZWYp
IG92ZXJyaWRlOworICAgIGJvb2wgaXNTaG93aW5nQ29udGV4dE1lbnUoKSBjb25zdCBvdmVycmlk
ZTsKKwogICAgIHZvaWQgc2V0RGlkU2hvd01lbnVDYWxsYmFjayhKU1ZhbHVlUmVmKSBvdmVycmlk
ZTsKICAgICB2b2lkIHNldERpZEhpZGVNZW51Q2FsbGJhY2soSlNWYWx1ZVJlZikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBkaXNtaXNzTWVudSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbSBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0KaW5kZXggYmI1
NGEyYTE2NGJhNThkY2RjNDhkMTY3NmQ0NWE5YWM4Y2I0NzY0YS4uNWQ2ODI0OTdhZDI3NDBjYWQ1
M2NkMjQwNTRjMzQ3ZDliYjY2MDNlYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tCkBAIC0zNSw2ICszNSw3IEBA
CiAjaW1wb3J0IDxXZWJLaXQvV0tVUkxDRi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1By
aXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oPgor
I2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAKIEBpbnRlcmZhY2UgV0tXZWJWaWV3IChXS1dlYlZp
ZXdJbnRlcm5hbCkKIC0gKHZvaWQpcGFzdGU6KGlkKXNlbmRlcjsKQEAgLTE3Miw2ICsxNzMsMzEg
QEAgTlNVbmRvTWFuYWdlciAqVUlTY3JpcHRDb250cm9sbGVyQ29jb2E6OnBsYXRmb3JtVW5kb01h
bmFnZXIoKSBjb25zdAogICAgIHJldHVybiBwbGF0Zm9ybUNvbnRlbnRWaWV3KCkudW5kb01hbmFn
ZXI7CiB9CiAKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyQ29jb2E6OnNldERpZFNob3dDb250ZXh0
TWVudUNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgVUlTY3JpcHRDb250cm9s
bGVyOjpzZXREaWRTaG93Q29udGV4dE1lbnVDYWxsYmFjayhjYWxsYmFjayk7CisgICAgd2ViVmll
dygpLmRpZFNob3dDb250ZXh0TWVudUNhbGxiYWNrID0gbWFrZUJsb2NrUHRyKFt0aGlzLCBzdHJv
bmdUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICAgICAgaWYgKCFtX2NvbnRleHQpCisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIG1fY29udGV4dC0+ZmlyZUNhbGxiYWNrKENhbGxiYWNr
VHlwZURpZFNob3dDb250ZXh0TWVudSk7CisgICAgfSkuZ2V0KCk7Cit9CisKK3ZvaWQgVUlTY3Jp
cHRDb250cm9sbGVyQ29jb2E6OnNldERpZERpc21pc3NDb250ZXh0TWVudUNhbGxiYWNrKEpTVmFs
dWVSZWYgY2FsbGJhY2spCit7CisgICAgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWREaXNtaXNz
Q29udGV4dE1lbnVDYWxsYmFjayhjYWxsYmFjayk7CisgICAgd2ViVmlldygpLmRpZERpc21pc3ND
b250ZXh0TWVudUNhbGxiYWNrID0gbWFrZUJsb2NrUHRyKFt0aGlzLCBzdHJvbmdUaGlzID0gbWFr
ZVJlZigqdGhpcyldIHsKKyAgICAgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIG1fY29udGV4dC0+ZmlyZUNhbGxiYWNrKENhbGxiYWNrVHlwZURpZERpc21p
c3NDb250ZXh0TWVudSk7CisgICAgfSkuZ2V0KCk7Cit9CisKK2Jvb2wgVUlTY3JpcHRDb250cm9s
bGVyQ29jb2E6OmlzU2hvd2luZ0NvbnRleHRNZW51KCkgY29uc3QKK3sKKyAgICByZXR1cm4gd2Vi
VmlldygpLmlzU2hvd2luZ0NvbnRleHRNZW51OworfQorCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxl
ckNvY29hOjpzZXREaWRTaG93TWVudUNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCiB7CiAg
ICAgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWRTaG93TWVudUNhbGxiYWNrKGNhbGxiYWNrKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxl
cklPUy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9T
LmgKaW5kZXggN2EzNjkwY2QxODI5MDEyZTcxNTFhNWYyZmQ0YWYwZDEwMjU4MTZjMS4uMzliZjhh
ZWY5ZjUyMjUyMDY3YzAwMzcwMjRjNDViYTMzNGFkNjY4OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLmgKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLmgKQEAgLTE0MCwxNSArMTQw
LDEyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRBbGxvd3NWaWV3cG9ydFNocmlua1RvRml0KGJv
b2wpIG92ZXJyaWRlOwogICAgIHZvaWQgY29weVRleHQoSlNTdHJpbmdSZWYpIG92ZXJyaWRlOwog
ICAgIHZvaWQgaW5zdGFsbFRhcEdlc3R1cmVPbldpbmRvdyhKU1ZhbHVlUmVmKSBvdmVycmlkZTsK
LSAgICBib29sIGlzU2hvd2luZ0NvbnRleHRNZW51KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBzZXRTcGVsbENoZWNrZXJSZXN1bHRzKEpTVmFsdWVSZWYpIG92ZXJyaWRlIHsgfQogCiAgICAg
Ym9vbCBtYXlDb250YWluRWRpdGFibGVFbGVtZW50c0luUmVjdCh1bnNpZ25lZCB4LCB1bnNpZ25l
ZCB5LCB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KSBvdmVycmlkZTsKIAogICAgIHZv
aWQgc2V0RGlkU3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJhY2soSlNWYWx1ZVJlZikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBzZXREaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJh
Y2soSlNWYWx1ZVJlZikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXREaWRTaG93Q29udGV4dE1lbnVD
YWxsYmFjayhKU1ZhbHVlUmVmKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldERpZERpc21pc3NDb250
ZXh0TWVudUNhbGxiYWNrKEpTVmFsdWVSZWYpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0V2lsbEJl
Z2luWm9vbWluZ0NhbGxiYWNrKEpTVmFsdWVSZWYpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0RGlk
RW5kWm9vbWluZ0NhbGxiYWNrKEpTVmFsdWVSZWYpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0RGlk
U2hvd0tleWJvYXJkQ2FsbGJhY2soSlNWYWx1ZVJlZikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0gYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KaW5kZXggYTg3
NGZiMjU3NGNiMjhiYjMzMzAyZmZhNGQyZmJmZDEzYzVhNmJhNC4uNzBiYWY4MzI0ZDcyNjJkZGJm
YTZiODVlYTgyNDY4NjQ5YmVkZDNlZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQpAQCAtOTIyLDI2ICs5MjIsNiBAQCB2b2lk
IFVJU2NyaXB0Q29udHJvbGxlcklPUzo6c2V0RGlkRW5kRm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNh
bGxiYWNrKEpTVmFsdWVSZWYgYwogICAgICAgICBtX2NvbnRleHQtPmZpcmVDYWxsYmFjayhDYWxs
YmFja1R5cGVEaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uKTsKICAgICB9KS5nZXQoKTsKIH0K
LSAgICAKLXZvaWQgVUlTY3JpcHRDb250cm9sbGVySU9TOjpzZXREaWRTaG93Q29udGV4dE1lbnVD
YWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQotewotICAgIFVJU2NyaXB0Q29udHJvbGxlcjo6
c2V0RGlkU2hvd0NvbnRleHRNZW51Q2FsbGJhY2soY2FsbGJhY2spOwotICAgIHdlYlZpZXcoKS5k
aWRTaG93Q29udGV4dE1lbnVDYWxsYmFjayA9IG1ha2VCbG9ja1B0cihbdGhpcywgc3Ryb25nVGhp
cyA9IG1ha2VSZWYoKnRoaXMpXSB7Ci0gICAgICAgIGlmICghbV9jb250ZXh0KQotICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICBtX2NvbnRleHQtPmZpcmVDYWxsYmFjayhDYWxsYmFja1R5cGVE
aWRTaG93Q29udGV4dE1lbnUpOwotICAgIH0pLmdldCgpOwotfQotCi12b2lkIFVJU2NyaXB0Q29u
dHJvbGxlcklPUzo6c2V0RGlkRGlzbWlzc0NvbnRleHRNZW51Q2FsbGJhY2soSlNWYWx1ZVJlZiBj
YWxsYmFjaykKLXsKLSAgICBVSVNjcmlwdENvbnRyb2xsZXI6OnNldERpZERpc21pc3NDb250ZXh0
TWVudUNhbGxiYWNrKGNhbGxiYWNrKTsKLSAgICB3ZWJWaWV3KCkuZGlkRGlzbWlzc0NvbnRleHRN
ZW51Q2FsbGJhY2sgPSBtYWtlQmxvY2tQdHIoW3RoaXMsIHN0cm9uZ1RoaXMgPSBtYWtlUmVmKCp0
aGlzKV0gewotICAgICAgICBpZiAoIW1fY29udGV4dCkKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgbV9jb250ZXh0LT5maXJlQ2FsbGJhY2soQ2FsbGJhY2tUeXBlRGlkRGlzbWlzc0NvbnRl
eHRNZW51KTsKLSAgICB9KS5nZXQoKTsKLX0KIAogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXJJT1M6
OnNldFdpbGxCZWdpblpvb21pbmdDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQogewpAQCAt
MTI2OCwxMSArMTI0OCw2IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVySU9TOjppbnN0YWxsVGFw
R2VzdHVyZU9uV2luZG93KEpTVmFsdWVSZWYgY2FsbGJhY2spCiAgICAgfSkuZ2V0KCk7CiB9CiAK
LWJvb2wgVUlTY3JpcHRDb250cm9sbGVySU9TOjppc1Nob3dpbmdDb250ZXh0TWVudSgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIHdlYlZpZXcoKS5zaG93aW5nQ29udGV4dE1lbnU7Ci19Ci0KIH0KIAog
I2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzBhNDVlYTFjN2Y2YTYyNTE3
Nzk0ZGQwY2MyMDJlNjU0NDhkOWVhOC4uMGEzNDhmMWVmYjZiNzBlM2VhODA2YmE3YmZhYjFjZWZj
MDAwNDJiZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyOCBAQAorMjAyMS0wMy0xNiAgRGV2aW4gUm91c3Nv
ICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBjaGFuZ2UgZm9yIHRoZSBs
YW5ndWFnZS9zdWJ0aXRsZSB0cmFja3MgYnV0dG9uIHRvIHVzZSBhbiBgTlNNZW51YCBpbnN0ZWFk
IG9mIHdlYiBjb250ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjMyMzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc1NDYyMzQwPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIG1lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9hdXRvLXRleHQtdHJhY2suaHRtbDogQWRkZWQu
CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2F1
dG8tdGV4dC10cmFjay1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9jbGljay10cmFjay1pbi1jb250ZXh0bWVu
dS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvY2xpY2stdHJhY2staW4tY29udGV4dG1lbnUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
aGlkZGVuLXRyYWNrcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaGlkZGVuLXRyYWNrcy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9v
ZmYtdGV4dC10cmFjay5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvb2ZmLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
c2hvdy1jb250ZXh0bWVudS10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3Vw
cG9ydC9zaG93LWNvbnRleHRtZW51LXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24t
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvdGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3Vw
cG9ydC90ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGktZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
aW9zL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tz
LXN1cHBvcnQtYXV0by10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1z
dXBwb3J0LWNsaWNrLXRyYWNrLWluLWNvbnRleHRtZW51Lmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mt
c3VwcG9ydC1jbGljay10cmFjay1pbi1jb250ZXh0bWVudS1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lv
cy90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3Vw
cG9ydC1oaWRkZW4tdHJhY2tzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0
LW9mZi10ZXh0LXRyYWNrLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10
cmFjay1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1zaG93LWNvbnRleHRt
ZW51LXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24uaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3Ry
YWNrcy1zdXBwb3J0LXNob3ctY29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tz
LWJ1dHRvbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNr
LXNlbGVjdGVkLXZpYS1tZWRpYS1hcGkuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LXRl
eHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisg
ICAgICAgIE1vdmUgdGhlIGlPUyB0cmFja3Mgc3VwcG9ydCB0ZXN0cyBvdXQgb2YgYW4gaU9TIGZv
bGRlciBzaW5jZSBtYWNPUyBub3cgYWxzbyB1c2VzIGEgY29udGV4dG1lbnUuCisKKyAgICAgICAg
KiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLWxv
YWRlci5qczoKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcmVzb3VyY2Vz
L21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzOgorICAgICAgICAoc2hvd1RyYWNrc1BhbmVsKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJv
bGxlci9tZWRpYS1jb250cm9sbGVyLWNsaWNrLW9uLXZpZGVvLWJhY2tncm91bmQtdG8tZGlzbWlz
cy10cmFja3MtcGFuZWwtc2hvdWxkLW5vdC10b2dnbGUtcGxheWJhY2suaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbGxlci9t
ZWRpYS1jb250cm9sbGVyLWNsaWNrLW9uLXZpZGVvLWJhY2tncm91bmQtdG8tZGlzbWlzcy10cmFj
a3MtcGFuZWwtc2hvdWxkLW5vdC10b2dnbGUtcGxheWJhY2stZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJh
Y2tzLXBhbmVsLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tz
LXBhbmVsLWNvbnRyb2xzLWJhci1yZW1haW5zLXZpc2libGUtYWZ0ZXItY2xpY2tpbmctb3Zlci1p
dC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWNvbnRyb2xzLWJhci1yZW1haW5zLXZpc2libGUtYWZ0
ZXItY2xpY2tpbmctb3Zlci1pdC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtaGlkZS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3MtcGFuZWwvdHJhY2tzLXBhbmVsLWhpZGUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVs
LWhpZGUtY2xpY2stb3V0c2lkZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWhpZGUtY2xpY2stb3V0
c2lkZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtaGlkZS1lc2Mta2V5Lmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5l
bC90cmFja3MtcGFuZWwtaGlkZS1lc2Mta2V5LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5l
bC1wb3B1bGF0aW9uLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcG9wdWxhdGlvbi1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1wYW5lbC90cmFja3MtcGFuZWwtcG9zaXRpb24tYW5kLXNpemUuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1w
YW5lbC1wb3NpdGlvbi1hbmQtc2l6ZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcHJl
dmVudC1jb250cm9scy1iYXItZnJvbS1mYWRpbmcuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBt
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wcmV2
ZW50LWNvbnRyb2xzLWJhci1mcm9tLWZhZGluZy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFu
ZWwtcHJldmVudC1kZWZhdWx0LW9uLWtleWRvd24uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBt
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wcmV2
ZW50LWRlZmF1bHQtb24ta2V5ZG93bi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcmln
aHQteC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXJpZ2h0LXgtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJh
Y2tzLXBhbmVsLXNlbGVjdC10cmFjay13aXRoLWtleWJvYXJkLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFu
ZWwtc2VsZWN0LXRyYWNrLXdpdGgta2V5Ym9hcmQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBh
bmVsLXNlbGVjdC10cmFjay13aXRoLW1vdXNlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtc2VsZWN0
LXRyYWNrLXdpdGgtbW91c2UtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXVwLWNsaWNr
LW91dHNpZGUtbWVkaWEtZG9lcy1ub3QtZGltaXNzLW1lZGlhLWNvbnRyb2xzLXdoZW4tbWVkaWEt
aXMtcGF1c2VkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtdXAtY2xpY2stb3V0c2lkZS1tZWRpYS1k
b2VzLW5vdC1kaW1pc3MtbWVkaWEtY29udHJvbHMtd2hlbi1tZWRpYS1pcy1wYXVzZWQtZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXVwLWNsaWNrLW92ZXItbWVkaWEtZG9lcy1ub3QtZGlt
aXNzLW1lZGlhLWNvbnRyb2xzLXdoZW4tbWVkaWEtaXMtcGxheWluZy5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tz
LXBhbmVsLXVwLWNsaWNrLW92ZXItbWVkaWEtZG9lcy1ub3QtZGltaXNzLW1lZGlhLWNvbnRyb2xz
LXdoZW4tbWVkaWEtaXMtcGxheWluZy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3Vw
cG9ydC1hdXRvLXRleHQtdHJhY2suaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWF1dG8t
dGV4dC10cmFjay1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1jbGljay10
cmFjay1pbi1wYW5lbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtY2xpY2stdHJhY2st
aW4tcGFuZWwtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRy
YWNrcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC9tYWMvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9t
YWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1hbmQtcG9wdWxhdGUtcGFuZWwuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFj
L3RyYWNrcy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBv
cnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmctY29udHJvbHMu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmct
Y29udHJvbHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5l
bC1mdWxsc2NyZWVuLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1
bGxzY3JlZW4tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5l
bC10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFj
a3Mtc3VwcG9ydC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24t
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxlY3Rl
ZC12aWEtbWVkaWEtYXBpLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNr
LXNlbGVjdGVkLXZpYS1tZWRpYS1hcGktZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICBS
ZW1vdmUgZXZlcnl0aGluZyByZWxhdGVkIHRvIGBUcmFja3NQYW5lbGAgbm93IHRoYXQgbWFjT1Mg
YWxzbyB1c2VzIGEgY29udGV4dG1lbnUuCisKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvY2FwdGlvbnMtb2Zmc2V0LXdpdGgtY29udHJvbHMtYmFy
Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtY2FwdGlvbnMtb2Zmc2V0LXdpdGgtY29u
dHJvbHMtYmFyLmh0bWwuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1zdXBwb3J0L2NhcHRpb25zLW9mZnNldC13aXRoLWNvbnRyb2xzLWJhci1leHBlY3RlZC50
eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtY2FwdGlvbnMtb2Zmc2V0LXdpdGgtY29udHJv
bHMtYmFyLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvbm8tdHJhY2tzLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBv
cnQtbm8tdHJhY2tzLmh0bWwuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1zdXBwb3J0L25vLXRyYWNrcy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tz
LXN1cHBvcnQtbm8tdHJhY2tzLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgUmVuYW1lZCB0aGVzZSB0
ZXN0cyB0byByZW1vdmUgdGhlIHJlZHVuZGFudCAidHJhY2tzLXN1cHBvcnQiLgorCisgICAgICAg
ICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBw
b3J0LWF1ZGlvLXRyYWNrcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1hdWRpby10cmFja3Mt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrcy5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgIFRoZXNlIHRlc3RzIGFyZSBjb3ZlcmVkIGJ5IHRoZSBvdGhlciBhZGRlZC9yZW5hbWVkIHRl
c3RzIGFib3ZlLgorCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29z
LWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9s
cy1idXR0b25zLWNvbnRhaW5lcnMtc3R5bGVzLmh0bWw6CisgICAgICAgICogbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVs
bHNjcmVlbi1tZWRpYS1jb250cm9scy1idXR0b25zLWNvbnRhaW5lcnMtc3R5bGVzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNj
cmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWJ1dHRv
bnMtc3R5bGVzLmh0bWw6CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21h
Y29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250
cm9scy1idXR0b25zLXN0eWxlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVs
bHNjcmVlbi1tZWRpYS1jb250cm9scy1jb25zdHJ1Y3Rvci5odG1sOgorICAgICAgICAqIG1lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21h
Y29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1l
ZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtcmlnaHQtY29udGFp
bmVyLW1hcmdpbi5odG1sOgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9t
YWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29u
dHJvbHMtcmlnaHQtY29udGFpbmVyLW1hcmdpbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1jb250cm9scy9tYWNv
cy1pbmxpbmUtbWVkaWEtY29udHJvbHMtcGxhY2FyZC5odG1sOgorICAgICAgICAqIG1lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMvbWFjb3MtaW5s
aW5lLW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItdmlzaWJpbGl0eS5odG1sOgorICAgICAg
ICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1pbmxpbmUtbWVkaWEtY29udHJv
bHMvbWFjb3MtaW5saW5lLW1lZGlhLWRyb3BwaW5nLWNvbnRyb2xzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNv
bnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1zaG93cy1zdGFydC1idXR0b24uaHRtbDoKKyAgICAg
ICAgVXBkYXRlIGV4aXN0aW5nIHRlc3RzIHRvIGFjY29tb2RhdGUgdGhlIGBPdmVyZmxvd0J1dHRv
bmAuCisKKyAgICAgICAgKiByZXNvdXJjZXMvdWktaGVscGVyLmpzOgorICAgICAgICAod2luZG93
LlVJSGVscGVyLmNob29zZU1lbnVBY3Rpb24pOiBBZGRlZC4KKyAgICAgICAgKHdpbmRvdy5VSUhl
bHBlci5hc3luYyBjaG9vc2VNZW51QWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgVXNlIGBVSVNj
cmlwdENvbnRyb2xsZXIucHJvdG90eXBlLmNob29zZU1lbnVBY3Rpb25gIGluc3RlYWQgb2YgYSBj
b21iaW5hdGlvbiBvZgorICAgICAgICBgVUlTY3JpcHRDb250cm9sbGVyLnByb3RvdHlwZS5yZWN0
Rm9yTWVudUFjdGlvbmAgYW5kIGBVSVNjcmlwdENvbnRyb2xsZXIucHJvdG90eXBlLmFjdGl2YXRl
QXRgCisgICAgICAgIHNpbmNlIGBVSVNjcmlwdENvbnRyb2xsZXI6OmNob29zZU1lbnVBY3Rpb25g
IGJhc2ljYWxseSBkb2VzIHRoYXQgYW55d2F5cy4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlv
bnM6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdr
Mi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIxLTAzLTEyICBSb2JlcnQgSmVubmVyICA8amVubmVy
QGFwcGxlLmNvbT4KIAogICAgICAgICBbIE1hY09TIHdrMiBdIGluc3BlY3Rvci9kZWJ1Z2dlci9i
cmVha3BvaW50cy9yZXNvbHZlZC1kdW1wLWFsbC1pbmxpbmUtc2NyaXB0LXBhdXNlLWxvY2F0aW9u
cy5odG1sIGlzIGZsYWtleSB0aW1pbmcgb3V0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1NWE4OGI5
MmE5OGY4NWM5YTNmMTE2NTM3MDM3NDlmMTA0NzMwMmU0Li4yMTJhNzIzMjNlOTRmZTA0YzlmY2M5
NTM0MGQzN2RhOTk5MTVlMDA1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTY0LDYgKzY0LDcgQEAg
ZmFzdC90ZXh0L21hYyBbIFNraXAgXQogc2Nyb2xsaW5nY29vcmRpbmF0b3IgWyBTa2lwIF0KIG1l
ZGlhL21hYyBbIFNraXAgXQogbWVkaWEvaW9zIFsgU2tpcCBdCittZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQgWyBTa2lwIF0KIGZhc3QvdGV4dC1hdXRvc2l6aW5nIFsg
U2tpcCBdCiBmYXN0L2Nzcy92YXJpYWJsZXMvZW52L2lvcyBbIFNraXAgXQogaHR0cC90ZXN0cy9l
dmVudHMvdG91Y2gvaW9zIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNv
cy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWJ1dHRvbnMtY29udGFpbmVycy1zdHlsZXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29z
LWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9s
cy1idXR0b25zLWNvbnRhaW5lcnMtc3R5bGVzLWV4cGVjdGVkLnR4dAppbmRleCAzNTQzNTgzNGRh
Yzk4ZDNhODJhZjA0MzA4M2I2NDQwYWFlNTAyMjZhLi4xMDIzNTIzODQyZmYyZDliMzRiNmQxY2Zl
NmM4MTU4N2UyNDYzMzNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2Ny
ZWVuLW1lZGlhLWNvbnRyb2xzLWJ1dHRvbnMtY29udGFpbmVycy1zdHlsZXMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxs
c2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtYnV0
dG9ucy1jb250YWluZXJzLXN0eWxlcy1leHBlY3RlZC50eHQKQEAgLTgsOCArOCw4IEBAIFBBU1Mg
Y2VudGVyQ29udGFpbmVyLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCBpcyAz
MTEKIFBBU1MgY2VudGVyQ29udGFpbmVyLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCku
dG9wIGlzIDUwMwogUEFTUyBjZW50ZXJDb250YWluZXIuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKS5oZWlnaHQgaXMgNDQKIAotUEFTUyBNYXRoLmZsb29yKHJpZ2h0Q29udGFpbmVyLmVs
ZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgpIGJlY2FtZSAxNDMKLVBBU1Mgcmln
aHRDb250YWluZXIuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0IGlzIHdpdGhp
biAwLjUgb2YgNDkxCitQQVNTIE1hdGguZmxvb3IocmlnaHRDb250YWluZXIuZWxlbWVudC5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCkgYmVjYW1lIDEzMQorUEFTUyByaWdodENvbnRhaW5l
ci5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgaXMgd2l0aGluIDAuNSBvZiA1
MDMKIFBBU1MgcmlnaHRDb250YWluZXIuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50
b3AgaXMgNTAwCiBQQVNTIHJpZ2h0Q29udGFpbmVyLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCkuaGVpZ2h0IGlzIDQ0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1
bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtYnV0dG9ucy1jb250YWluZXJzLXN0eWxlcy5odG1sIGIv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4t
bWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1idXR0b25zLWNv
bnRhaW5lcnMtc3R5bGVzLmh0bWwKaW5kZXggNWJhZTRiMDM1OTFiODcwZWMxMTg1MmU5Y2RmNDM3
NDkxODJiY2FlYy4uZjRjOTgyOTM1MmQzNmE2ZGZjYzgzNjE2NDMwYzllM2E0ZGUxNmNjMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1
bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1i
dXR0b25zLWNvbnRhaW5lcnMtc3R5bGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3Mt
ZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1idXR0b25zLWNvbnRhaW5lcnMtc3R5bGVzLmh0bWwK
QEAgLTQxLDggKzQxLDggQEAgc2hvdWxkQmVjb21lRXF1YWwoImNlbnRlckNvbnRhaW5lci5lbGVt
ZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIiwgIjE3OCIKICAgICBzaG91bGRCZSgi
Y2VudGVyQ29udGFpbmVyLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0Iiwg
IjQ0Iik7CiAKICAgICBkZWJ1ZygiIik7Ci0gICAgc2hvdWxkQmVjb21lRXF1YWwoIk1hdGguZmxv
b3IocmlnaHRDb250YWluZXIuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCki
LCAiMTQzIiwgKCkgPT4gewotICAgICAgICBzaG91bGRCZUNsb3NlVG8oInJpZ2h0Q29udGFpbmVy
LmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCIsIDQ5MSwgMC41KTsKKyAgICBz
aG91bGRCZWNvbWVFcXVhbCgiTWF0aC5mbG9vcihyaWdodENvbnRhaW5lci5lbGVtZW50LmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKSIsICIxMzEiLCAoKSA9PiB7CisgICAgICAgIHNob3Vs
ZEJlQ2xvc2VUbygicmlnaHRDb250YWluZXIuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KS5sZWZ0IiwgNTAzLCAwLjUpOwogICAgICAgICBzaG91bGRCZSgicmlnaHRDb250YWluZXIuZWxl
bWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AiLCAiNTAwIik7CiAgICAgICAgIHNob3Vs
ZEJlKCJyaWdodENvbnRhaW5lci5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdo
dCIsICI0NCIpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVu
LW1lZGlhLWNvbnRyb2xzLWJ1dHRvbnMtc3R5bGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRy
b2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtYnV0dG9ucy1zdHlsZXMtZXhwZWN0
ZWQudHh0CmluZGV4IGY4OWRiY2I0NzM0OTZiMDgyNGZlMWVmMjM5ZWE1YTc3ZTU2OTUwZTcuLjY4
YmEyMTg5NGJmZDVmMThmYzRkYWZmZDkwOTkzNzkxODgxMTgxMzEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlh
LWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtYnV0dG9ucy1zdHlsZXMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEt
Y29udHJvbHMtYnV0dG9ucy1zdHlsZXMtZXhwZWN0ZWQudHh0CkBAIC0yNiwxNyArMjYsMTcgQEAg
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGJ1dHRvbi5lbGVtZW50KS5oZWlnaHQgaXMgIjE2cHgiCiAK
IFBpUEJ1dHRvbgogUEFTUyBnZXRDb21wdXRlZFN0eWxlKGJ1dHRvbi5lbGVtZW50KS50b3AgYmVj
YW1lICIxOHB4IgotUEFTUyBnZXRDb21wdXRlZFN0eWxlKGJ1dHRvbi5lbGVtZW50KS5sZWZ0IGlz
ICI0N3B4IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGJ1dHRvbi5lbGVtZW50KS5sZWZ0IGlzICI0
M3B4IgogUEFTUyBnZXRDb21wdXRlZFN0eWxlKGJ1dHRvbi5lbGVtZW50KS5oZWlnaHQgaXMgIjE2
cHgiCiAKIFRyYWNrc0J1dHRvbgogUEFTUyBnZXRDb21wdXRlZFN0eWxlKGJ1dHRvbi5lbGVtZW50
KS50b3AgYmVjYW1lICIxOHB4IgotUEFTUyBnZXRDb21wdXRlZFN0eWxlKGJ1dHRvbi5lbGVtZW50
KS5sZWZ0IGlzICI4MnB4IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGJ1dHRvbi5lbGVtZW50KS5s
ZWZ0IGlzICI3NHB4IgogUEFTUyBnZXRDb21wdXRlZFN0eWxlKGJ1dHRvbi5lbGVtZW50KS5oZWln
aHQgaXMgIjE2cHgiCiAKIEZ1bGxzY3JlZW5CdXR0b24KIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShi
dXR0b24uZWxlbWVudCkudG9wIGJlY2FtZSAiMThweCIKLVBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShi
dXR0b24uZWxlbWVudCkubGVmdCBpcyAiMTE1cHgiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoYnV0
dG9uLmVsZW1lbnQpLmxlZnQgaXMgIjEwM3B4IgogUEFTUyBnZXRDb21wdXRlZFN0eWxlKGJ1dHRv
bi5lbGVtZW50KS5oZWlnaHQgaXMgIjE2cHgiCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEt
Y29udHJvbHMtYnV0dG9ucy1zdHlsZXMuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxz
Y3JlZW4tbWVkaWEtY29udHJvbHMtYnV0dG9ucy1zdHlsZXMuaHRtbAppbmRleCBhYWFkZWM0OGM3
NmNiNDRkYjE4YzFkMTE4YWFhZTIzMjZiYmM3NmE1Li5hZTZlMDAwZmMzZjE5N2ViMjg0NThkOWZl
MDI5MzUyMjczMTFlNzc5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2Ny
ZWVuLW1lZGlhLWNvbnRyb2xzLWJ1dHRvbnMtc3R5bGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJv
bHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1idXR0b25zLXN0eWxlcy5odG1sCkBA
IC0xNiw5ICsxNiw5IEBAIGNvbnN0IGJ1dHRvblBvc2l0aW9ucyA9IFsKICAgICBbbWVkaWFDb250
cm9scy5wbGF5UGF1c2VCdXR0b24sIDc4LCA5LCAyNl0sCiAgICAgW21lZGlhQ29udHJvbHMuZm9y
d2FyZEJ1dHRvbiwgMTI3LCAxNCwgMTZdLAogICAgIFttZWRpYUNvbnRyb2xzLmFpcnBsYXlCdXR0
b24sIDEyLCAxOCwgMTZdLAotICAgIFttZWRpYUNvbnRyb2xzLnBpcEJ1dHRvbiwgNDcsIDE4LCAx
Nl0sCi0gICAgW21lZGlhQ29udHJvbHMudHJhY2tzQnV0dG9uLCA4MiwgMTgsIDE2XSwKLSAgICBb
bWVkaWFDb250cm9scy5mdWxsc2NyZWVuQnV0dG9uLCAxMTUsIDE4LCAxNl0KKyAgICBbbWVkaWFD
b250cm9scy5waXBCdXR0b24sIDQzLCAxOCwgMTZdLAorICAgIFttZWRpYUNvbnRyb2xzLnRyYWNr
c0J1dHRvbiwgNzQsIDE4LCAxNl0sCisgICAgW21lZGlhQ29udHJvbHMuZnVsbHNjcmVlbkJ1dHRv
biwgMTAzLCAxOCwgMTZdLAogXTsKIAogbGV0IGJ1dHRvbiwgeCwgeTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1l
ZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtY29uc3RydWN0b3It
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21h
Y29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250
cm9scy1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQKaW5kZXggYWJjYWVlY2YzODRlOTNkZjY5NzNk
OTI1MDRkNDFmNTBlMzg1ZDg1Zi4uNzVmN2UzNzA2ZTIxZjRiNmNjYWJkMWRmOTI5MWI2ZGEyNjAz
MDBlNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1j
b250cm9scy1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFj
b3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQKQEAg
LTI4LDcgKzI4LDcgQEAgUEFTUyBtZWRpYUNvbnRyb2xzLmJvdHRvbUNvbnRyb2xzQmFyLmNoaWxk
cmVuWzJdLnJpZ2h0TWFyZ2luIGlzIDI3CiBQQVNTIG1lZGlhQ29udHJvbHMuYm90dG9tQ29udHJv
bHNCYXIuY2hpbGRyZW5bMl0uYnV0dG9uTWFyZ2luIGlzIDI3CiAKIFJpZ2h0IGNvbnRhaW5lcgot
UEFTUyBtZWRpYUNvbnRyb2xzLmJvdHRvbUNvbnRyb2xzQmFyLmNoaWxkcmVuWzNdLmNoaWxkcmVu
IGlzIFttZWRpYUNvbnRyb2xzLmFpcnBsYXlCdXR0b24sIG1lZGlhQ29udHJvbHMucGlwQnV0dG9u
LCBtZWRpYUNvbnRyb2xzLnRyYWNrc0J1dHRvbiwgbWVkaWFDb250cm9scy5mdWxsc2NyZWVuQnV0
dG9uXQorUEFTUyBtZWRpYUNvbnRyb2xzLmJvdHRvbUNvbnRyb2xzQmFyLmNoaWxkcmVuWzNdLmNo
aWxkcmVuIGlzIFttZWRpYUNvbnRyb2xzLmFpcnBsYXlCdXR0b24sIG1lZGlhQ29udHJvbHMucGlw
QnV0dG9uLCBtZWRpYUNvbnRyb2xzLnRyYWNrc0J1dHRvbiwgbWVkaWFDb250cm9scy5mdWxsc2Ny
ZWVuQnV0dG9uLCBtZWRpYUNvbnRyb2xzLm92ZXJmbG93QnV0dG9uXQogUEFTUyBtZWRpYUNvbnRy
b2xzLmJvdHRvbUNvbnRyb2xzQmFyLmNoaWxkcmVuWzNdLmVsZW1lbnQuY2xhc3NOYW1lIGlzICJi
dXR0b25zLWNvbnRhaW5lciByaWdodCIKIFBBU1MgbWVkaWFDb250cm9scy5ib3R0b21Db250cm9s
c0Jhci5jaGlsZHJlblszXS5sZWZ0TWFyZ2luIGlzIDEyCiBQQVNTIG1lZGlhQ29udHJvbHMuYm90
dG9tQ29udHJvbHNCYXIuY2hpbGRyZW5bM10ucmlnaHRNYXJnaW4gaXMgMTIKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVu
LW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtY29uc3RydWN0
b3IuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1m
dWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMt
Y29uc3RydWN0b3IuaHRtbAppbmRleCA5NjI3NzEwZmU5ZTg1MjRjYmEyZjAyMzRhM2M1ZGQ4N2Ex
Njk1NGU2Li5hOWI1OTVkOWFiMmYyZDEzNzBlOTcyMGYzZmEyNmU5MWVkZWZjNDJkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNj
cmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWNvbnN0
cnVjdG9yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1j
b250cm9scy1jb25zdHJ1Y3Rvci5odG1sCkBAIC0zNiw3ICszNiw3IEBAIHNob3VsZEJlKCJtZWRp
YUNvbnRyb2xzLmJvdHRvbUNvbnRyb2xzQmFyLmNoaWxkcmVuWzJdLmJ1dHRvbk1hcmdpbiIsICIy
NyIpOwogCiBkZWJ1ZygiIik7CiBkZWJ1ZygiUmlnaHQgY29udGFpbmVyIik7Ci1zaG91bGRCZSgi
bWVkaWFDb250cm9scy5ib3R0b21Db250cm9sc0Jhci5jaGlsZHJlblszXS5jaGlsZHJlbiIsICJb
bWVkaWFDb250cm9scy5haXJwbGF5QnV0dG9uLCBtZWRpYUNvbnRyb2xzLnBpcEJ1dHRvbiwgbWVk
aWFDb250cm9scy50cmFja3NCdXR0b24sIG1lZGlhQ29udHJvbHMuZnVsbHNjcmVlbkJ1dHRvbl0i
KTsKK3Nob3VsZEJlKCJtZWRpYUNvbnRyb2xzLmJvdHRvbUNvbnRyb2xzQmFyLmNoaWxkcmVuWzNd
LmNoaWxkcmVuIiwgIlttZWRpYUNvbnRyb2xzLmFpcnBsYXlCdXR0b24sIG1lZGlhQ29udHJvbHMu
cGlwQnV0dG9uLCBtZWRpYUNvbnRyb2xzLnRyYWNrc0J1dHRvbiwgbWVkaWFDb250cm9scy5mdWxs
c2NyZWVuQnV0dG9uLCBtZWRpYUNvbnRyb2xzLm92ZXJmbG93QnV0dG9uXSIpOwogc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJtZWRpYUNvbnRyb2xzLmJvdHRvbUNvbnRyb2xzQmFyLmNoaWxkcmVuWzNd
LmVsZW1lbnQuY2xhc3NOYW1lIiwgImJ1dHRvbnMtY29udGFpbmVyIHJpZ2h0Iik7CiBzaG91bGRC
ZSgibWVkaWFDb250cm9scy5ib3R0b21Db250cm9sc0Jhci5jaGlsZHJlblszXS5sZWZ0TWFyZ2lu
IiwgIjEyIik7CiBzaG91bGRCZSgibWVkaWFDb250cm9scy5ib3R0b21Db250cm9sc0Jhci5jaGls
ZHJlblszXS5yaWdodE1hcmdpbiIsICIxMiIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMv
bWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1yaWdodC1jb250YWluZXItbWFyZ2luLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNv
cy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJv
bHMtcmlnaHQtY29udGFpbmVyLW1hcmdpbi1leHBlY3RlZC50eHQKaW5kZXggNGExODg1ZjU3ZTE1
ZTgwNjhiMzNhMDRkNzRhN2I2NjEwZTljOTIxOS4uNWM0MzczYTdmYzUyMDc5NWFiNzY4NGJhNzdi
ODBkOGZmYzljZDk3ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVl
bi1tZWRpYS1jb250cm9scy1yaWdodC1jb250YWluZXItbWFyZ2luLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVl
bi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLXJpZ2h0LWNv
bnRhaW5lci1tYXJnaW4tZXhwZWN0ZWQudHh0CkBAIC00LDEwICs0LDEwIEBAIE9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFCiAKIAogNCBlbmFibGVkIGJ1dHRvbnMKLVBBU1MgcmlnaHRDb250YWluZXIu
YnV0dG9uTWFyZ2luIGlzIDE2CitQQVNTIHJpZ2h0Q29udGFpbmVyLmJ1dHRvbk1hcmdpbiBpcyAx
MgogCiAzIGVuYWJsZWQgYnV0dG9ucwotUEFTUyByaWdodENvbnRhaW5lci5idXR0b25NYXJnaW4g
aXMgMjQKK1BBU1MgcmlnaHRDb250YWluZXIuYnV0dG9uTWFyZ2luIGlzIDE2CiAKIDIgZW5hYmxl
ZCBidXR0b25zCiBQQVNTIHJpZ2h0Q29udGFpbmVyLmJ1dHRvbk1hcmdpbiBpcyAyNApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxz
Y3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1yaWdo
dC1jb250YWluZXItbWFyZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVu
LW1lZGlhLWNvbnRyb2xzLXJpZ2h0LWNvbnRhaW5lci1tYXJnaW4uaHRtbAppbmRleCBmYjdiZjk4
M2FkOTEwM2NmNDgyOWU4YzJiNzY1ZDEwZWU3YjgwN2M2Li45ZjRjYzBkM2IwNTFmNjAxM2YxYzhj
NzFlZDZmMThjOGY5MDE1YjllIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxs
c2NyZWVuLW1lZGlhLWNvbnRyb2xzLXJpZ2h0LWNvbnRhaW5lci1tYXJnaW4uaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1t
ZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLXJpZ2h0LWNvbnRh
aW5lci1tYXJnaW4uaHRtbApAQCAtMTgsMTIgKzE4LDEyIEBAIHNjaGVkdWxlci5mcmFtZURpZEZp
cmUgPSBmdW5jdGlvbigpCiAKICAgICBpZiAobnVtYmVyT2ZGcmFtZXMgPT0gMSkgewogICAgICAg
ICBkZWJ1ZygiNCBlbmFibGVkIGJ1dHRvbnMiKQotICAgICAgICBzaG91bGRCZSgicmlnaHRDb250
YWluZXIuYnV0dG9uTWFyZ2luIiwgIjE2Iik7CisgICAgICAgIHNob3VsZEJlKCJyaWdodENvbnRh
aW5lci5idXR0b25NYXJnaW4iLCAiMTIiKTsKICAgICAgICAgZGVidWcoIiIpOwogICAgICAgICBt
ZWRpYUNvbnRyb2xzLnRyYWNrc0J1dHRvbi5lbmFibGVkID0gZmFsc2U7CiAgICAgfSBlbHNlIGlm
IChudW1iZXJPZkZyYW1lcyA9PSAyKSB7CiAgICAgICAgIGRlYnVnKCIzIGVuYWJsZWQgYnV0dG9u
cyIpCi0gICAgICAgIHNob3VsZEJlKCJyaWdodENvbnRhaW5lci5idXR0b25NYXJnaW4iLCAiMjQi
KTsKKyAgICAgICAgc2hvdWxkQmUoInJpZ2h0Q29udGFpbmVyLmJ1dHRvbk1hcmdpbiIsICIxNiIp
OwogICAgICAgICBtZWRpYUNvbnRyb2xzLnBpcEJ1dHRvbi5lbmFibGVkID0gZmFsc2U7CiAgICAg
ICAgIGRlYnVnKCIiKTsKICAgICB9IGVsc2UgaWYgKG51bWJlck9mRnJhbWVzID09IDMpIHsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1p
bmxpbmUtbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzLXBsYWNhcmQu
aHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1pbmxp
bmUtbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzLXBsYWNhcmQuaHRt
bAppbmRleCAyMTYyMzQ0Y2VhN2U4NWJlZDAzNDI5MmQ3OWJkNzQxNDg0OTFmMzE0Li40N2ZhNzI1
NjMzZDIxNTkxMzJmOGIwOWJhOTYzM2Y1Y2JkMTMwOGQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xz
L21hY29zLWlubGluZS1tZWRpYS1jb250cm9scy1wbGFjYXJkLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1jb250cm9s
cy9tYWNvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMtcGxhY2FyZC5odG1sCkBAIC01LDcgKzUsNyBA
QAogCiBkZXNjcmlwdGlvbigiVGVzdGluZyB0aGUgPGNvZGU+TWFjT1NJbmxpbmVNZWRpYUNvbnRy
b2xzPC9jb2RlPiBoYW5kbGluZyBvZiBwbGFjYXJkcy4iKTsKIAotY29uc3QgbWVkaWFDb250cm9s
cyA9IG5ldyBNYWNPU0lubGluZU1lZGlhQ29udHJvbHM7Citjb25zdCBtZWRpYUNvbnRyb2xzID0g
bmV3IE1hY09TSW5saW5lTWVkaWFDb250cm9scyh7IHdpZHRoOiA2MDAsIGhlaWdodDogMzAwIH0p
OwogCiBkZWJ1ZygiQnkgZGVmYXVsdCwgbm8gcGxhY2FyZCBpcyBzaG93bi4iKTsKIHNob3VsZEJl
TnVsbCgibWVkaWFDb250cm9scy5wbGFjYXJkIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzL21h
Y29zLWlubGluZS1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLXZpc2liaWxpdHkuaHRtbCBi
L0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1pbmxpbmUtbWVk
aWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItdmlz
aWJpbGl0eS5odG1sCmluZGV4IDIyODg5NWYwNGRkOTRkYzc1NmJkNmZiNmVjOTZlZDJhMmM0OWMz
YmEuLmFkYmJjNjJhMjE3YTZlYjBkYzk4NjY4N2UyNmE3MWVlZTg5MTNjYjggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1pbmxpbmUtbWVk
aWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItdmlz
aWJpbGl0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy9tYWNvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xz
LXZvbHVtZS1zbGlkZXItdmlzaWJpbGl0eS5odG1sCkBAIC01LDcgKzUsNyBAQAogCiBkZXNjcmlw
dGlvbigiVGVzdGluZyB0aGUgPGNvZGU+TWFjT1NJbmxpbmVNZWRpYUNvbnRyb2xzPC9jb2RlPiB2
b2x1bWUgc2xpZGVyIHZpc2liaWxpdHkuIik7CiAKLWNvbnN0IG1lZGlhQ29udHJvbHMgPSBuZXcg
TWFjT1NJbmxpbmVNZWRpYUNvbnRyb2xzOworY29uc3QgbWVkaWFDb250cm9scyA9IG5ldyBNYWNP
U0lubGluZU1lZGlhQ29udHJvbHMoeyB3aWR0aDogNjAwLCBoZWlnaHQ6IDMwMCB9KTsKIGNvbnN0
IHZvbHVtZVNsaWRlckNvbnRhaW5lciA9IG1lZGlhQ29udHJvbHMudm9sdW1lU2xpZGVyLnBhcmVu
dDsKIAogZGVidWcoIkRlZmF1bHQgc3RhdGUiKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1jb250cm9scy9tYWNv
cy1pbmxpbmUtbWVkaWEtZHJvcHBpbmctY29udHJvbHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1jb250cm9s
cy9tYWNvcy1pbmxpbmUtbWVkaWEtZHJvcHBpbmctY29udHJvbHMtZXhwZWN0ZWQudHh0CmluZGV4
IGU2MmNiNjBlOTlhNjkxYjA0YWQzMzdjNjJiNGU5ODUzMWI3NTBhYzMuLmEwMDkyNDQ4NTkzOWE4
OTRlNDYzZmM4YzJhNWJlNDI4OTZmZGExM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMvbWFjb3Mt
aW5saW5lLW1lZGlhLWRyb3BwaW5nLWNvbnRyb2xzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRy
b2xzL21hY29zLWlubGluZS1tZWRpYS1kcm9wcGluZy1jb250cm9scy1leHBlY3RlZC50eHQKQEAg
LTksOSArOSw5IEBAIFNraXBGb3J3YXJkQnV0dG9uIHdhcyBkcm9wcGVkIGF0IDQ4Mi4KIFNraXBC
YWNrQnV0dG9uIHdhcyBkcm9wcGVkIGF0IDQ1My4KIEFpcnBsYXlCdXR0b24gd2FzIGRyb3BwZWQg
YXQgNDI0LgogVHJhY2tzQnV0dG9uIHdhcyBkcm9wcGVkIGF0IDM5Mi4KLVBpUEJ1dHRvbiB3YXMg
ZHJvcHBlZCBhdCAzNjAuCi1GdWxsc2NyZWVuQnV0dG9uIHdhcyBkcm9wcGVkIGF0IDMyNS4KLU11
dGVCdXR0b24gd2FzIGRyb3BwZWQgYXQgMjk0LgorUGlQQnV0dG9uIHdhcyBkcm9wcGVkIGF0IDM5
Mi4KK0Z1bGxzY3JlZW5CdXR0b24gd2FzIGRyb3BwZWQgYXQgMzE5LgorTXV0ZUJ1dHRvbiB3YXMg
ZHJvcHBlZCBhdCAzMTkuCiAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWlu
bGluZS1tZWRpYS1jb250cm9scy9tYWNvcy1pbmxpbmUtbWVkaWEtc2hvd3Mtc3RhcnQtYnV0dG9u
Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtaW5s
aW5lLW1lZGlhLWNvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1zaG93cy1zdGFydC1idXR0b24u
aHRtbAppbmRleCA3MjQwYmFiODhhNTVhNjdkZjI4NzE2ODNhZjUzZjhjYjdmN2VlMmExLi45NzE4
Yzg5ZWM5YTVjNGJjZDRmY2M1YWQxZTFiNmUzYmY2MjA3NWI0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRy
b2xzL21hY29zLWlubGluZS1tZWRpYS1zaG93cy1zdGFydC1idXR0b24uaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNv
bnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1zaG93cy1zdGFydC1idXR0b24uaHRtbApAQCAtNSw3
ICs1LDcgQEAKIAogZGVzY3JpcHRpb24oIlRlc3RpbmcgdGhlIDxjb2RlPk1hY09TSW5saW5lTWVk
aWFDb250cm9sczwvY29kZT4gc2hvd3NTdGFydEJ1dHRvbiBwcm9wZXJ0eS4iKTsKIAotY29uc3Qg
bWVkaWFDb250cm9scyA9IG5ldyBNYWNPU0lubGluZU1lZGlhQ29udHJvbHM7Citjb25zdCBtZWRp
YUNvbnRyb2xzID0gbmV3IE1hY09TSW5saW5lTWVkaWFDb250cm9scyh7IHdpZHRoOiA2MDAsIGhl
aWdodDogMzAwIH0pOwogCiBkZWJ1ZygiRGVmYXVsdCB3aGVyZSBzaG93c1N0YXJ0QnV0dG9uID0g
ZmFsc2UiKTsKIHNob3VsZEJlRmFsc2UoIm1lZGlhQ29udHJvbHMuc2hvd3NTdGFydEJ1dHRvbiIp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21l
ZGlhLWNvbnRyb2xsZXIvbWVkaWEtY29udHJvbGxlci1jbGljay1vbi12aWRlby1iYWNrZ3JvdW5k
LXRvLWRpc21pc3MtdHJhY2tzLXBhbmVsLXNob3VsZC1ub3QtdG9nZ2xlLXBsYXliYWNrLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1j
b250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXItY2xpY2stb24tdmlkZW8tYmFja2dyb3VuZC10by1k
aXNtaXNzLXRyYWNrcy1wYW5lbC1zaG91bGQtbm90LXRvZ2dsZS1wbGF5YmFjay1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3OWNlNGUyYzkxMmM4ZmRjZGY0ZjMz
YjA0NDlhZjRiNzY2NTcyNGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWNv
bnRyb2xsZXIvbWVkaWEtY29udHJvbGxlci1jbGljay1vbi12aWRlby1iYWNrZ3JvdW5kLXRvLWRp
c21pc3MtdHJhY2tzLXBhbmVsLXNob3VsZC1ub3QtdG9nZ2xlLXBsYXliYWNrLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLVRlc3RpbmcgdGhhdCBjbGlja2luZyBv
biBhIHBhdXNlZCB2aWRlbydzIGJhY2tncm91bmQgdG8gZGltaXNzIHRoZSB0cmFja3MgcGFuZWwg
ZG9lcyBub3QgcmVzdW1lIGl0LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFT
UyBtZWRpYS5wYXVzZWQgaXMgdHJ1ZQotCi1DbGlja2luZyBvbiB0cmFja3MgYnV0dG9uIHRvIHNo
b3cgdHJhY2tzIHBhbmVsCi0KLUNsaWNraW5nIG9uIHZpZGVvIGJhY2tncm91bmQKLVBBU1MgbWVk
aWEucGF1c2VkIGlzIHRydWUKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1U
RVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXItY2xpY2stb24tdmlk
ZW8tYmFja2dyb3VuZC10by1kaXNtaXNzLXRyYWNrcy1wYW5lbC1zaG91bGQtbm90LXRvZ2dsZS1w
bGF5YmFjay5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21l
ZGlhLWNvbnRyb2xsZXIvbWVkaWEtY29udHJvbGxlci1jbGljay1vbi12aWRlby1iYWNrZ3JvdW5k
LXRvLWRpc21pc3MtdHJhY2tzLXBhbmVsLXNob3VsZC1ub3QtdG9nZ2xlLXBsYXliYWNrLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0NjVlZWJjMWY5MzhhMzBhMGYzYWI4M2E2
NmJjNmJlMGEwNDc1NmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRy
b2xsZXIvbWVkaWEtY29udHJvbGxlci1jbGljay1vbi12aWRlby1iYWNrZ3JvdW5kLXRvLWRpc21p
c3MtdHJhY2tzLXBhbmVsLXNob3VsZC1ub3QtdG9nZ2xlLXBsYXliYWNrLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw1NSArMCwwIEBACi08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEt
Y29udHJvbHMtbG9hZGVyLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPGJv
ZHk+Ci08dmlkZW8gc3JjPSIuLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJ3
aWR0aDogNjQwcHg7IGhlaWdodDogMzYwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgot
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi1kZXNjcmlwdGlvbigiVGVzdGluZyB0
aGF0IGNsaWNraW5nIG9uIGEgcGF1c2VkIHZpZGVvJ3MgYmFja2dyb3VuZCB0byBkaW1pc3MgdGhl
IHRyYWNrcyBwYW5lbCBkb2VzIG5vdCByZXN1bWUgaXQuIik7Ci0KLXdpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKLQotY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRl
byIpOwotY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRp
YSk7Ci0KLW1lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7Ci0gICAgbWVkaWEu
cGF1c2UoKTsKLSAgICBzaG91bGRCZVRydWUoIm1lZGlhLnBhdXNlZCIpOwotCi0gICAgd2luZG93
LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAgICAgIGNsaWNrT25UcmFja3NCdXR0
b24oKTsKLSAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAg
ICAgICAgICBjbGlja09uVmlkZW9CYWNrZ3JvdW5kKCk7Ci0gICAgICAgICAgICBzaG91bGRCZVRy
dWUoIm1lZGlhLnBhdXNlZCIpOwotCi0gICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAg
ICBtZWRpYS5yZW1vdmUoKTsKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9
KTsKLSAgICB9KTsKLX0pOwotCi1mdW5jdGlvbiBjbGlja09uVHJhY2tzQnV0dG9uKCkKLXsKLSAg
ICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIkNsaWNraW5nIG9uIHRyYWNrcyBidXR0b24gdG8gc2hv
dyB0cmFja3MgcGFuZWwiKTsKLSAgICBjbGlja09uRWxlbWVudChzaGFkb3dSb290Lmxhc3RDaGls
ZC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIiksIDEsIDEpOwotfQotCi1mdW5jdGlvbiBj
bGlja09uVmlkZW9CYWNrZ3JvdW5kKCkKLXsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIkNs
aWNraW5nIG9uIHZpZGVvIGJhY2tncm91bmQiKTsKLSAgICBjbGlja09uRWxlbWVudChtZWRpYSwg
NSwgNSk7Ci19Ci0KLWZ1bmN0aW9uIGNsaWNrT25FbGVtZW50KGVsZW1lbnQsIHJlbGF0aXZlWCwg
cmVsYXRpdmVZKQotewotICAgIGNvbnN0IGJvdW5kcyA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGll
bnRSZWN0KCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYm91bmRzLmxlZnQgKyByZWxh
dGl2ZVgsIGJvdW5kcy50b3AgKyByZWxhdGl2ZVkpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93
bigpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLX0KLQotPC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2Jv
ZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
cmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLWxvYWRlci5qcyBiL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtbG9hZGVyLmpzCmlu
ZGV4IDNkNDlhZmNkZTUwY2UxOTMxMGY4ZjNjMWRhOGNiZmZiYTRkNTcxMzMuLjhlZjJiMzQ4NzVi
ODQ5YmYyOTgxMGNjNDY2ZWFiNGY0OGExNWMwNjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtbG9hZGVy
LmpzCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9yZXNvdXJj
ZXMvbWVkaWEtY29udHJvbHMtbG9hZGVyLmpzCkBAIC02LDcgKzYsNyBAQAogICAgIGNvbnN0IGxh
eW91dFRlc3RzUGF0aCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLnN1YnN0cigwLCB3aW5kb3cubG9j
YXRpb24uaHJlZi5pbmRleE9mKCIvTGF5b3V0VGVzdHMvIikpOwogICAgIGNvbnN0IG1vZHVsZVBh
dGggPSBsYXlvdXRUZXN0c1BhdGggPyBsYXlvdXRUZXN0c1BhdGggKyAiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzIiA6ICIvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
IjsKIAotICAgIFsiYWN0aXZpdHktaW5kaWNhdG9yIiwgImFpcnBsYXktYnV0dG9uIiwgImJhY2tn
cm91bmQtdGludCIsICJidXR0b24iLCAiYnV0dG9ucy1jb250YWluZXIiLCAiY29udHJvbHMtYmFy
IiwgImlubGluZS1tZWRpYS1jb250cm9scyIsICJtYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRy
b2xzIiwgIm1hY29zLWlubGluZS1tZWRpYS1jb250cm9scyIsICJtZWRpYS1jb250cm9scyIsICJt
ZWRpYS1kb2N1bWVudCIsICJwbGFjYXJkIiwgInNsaWRlciIsICJzdGF0dXMtbGFiZWwiLCAidGV4
dC10cmFja3MiLCAidGltZS1sYWJlbCIsICJ0cmFja3MtcGFuZWwiXS5mb3JFYWNoKGNzc0ZpbGUg
PT4geworICAgIFsiYWN0aXZpdHktaW5kaWNhdG9yIiwgImFpcnBsYXktYnV0dG9uIiwgImJhY2tn
cm91bmQtdGludCIsICJidXR0b24iLCAiYnV0dG9ucy1jb250YWluZXIiLCAiY29udHJvbHMtYmFy
IiwgImlubGluZS1tZWRpYS1jb250cm9scyIsICJtYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRy
b2xzIiwgIm1hY29zLWlubGluZS1tZWRpYS1jb250cm9scyIsICJtZWRpYS1jb250cm9scyIsICJt
ZWRpYS1kb2N1bWVudCIsICJwbGFjYXJkIiwgInNsaWRlciIsICJzdGF0dXMtbGFiZWwiLCAidGV4
dC10cmFja3MiLCAidGltZS1sYWJlbCJdLmZvckVhY2goY3NzRmlsZSA9PiB7CiAgICAgICAgIGRv
Y3VtZW50LndyaXRlKGA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVm
PSIke21vZHVsZVBhdGh9L2NvbnRyb2xzLyR7Y3NzRmlsZX0uY3NzIj5gKTsKICAgICB9KTsKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Jlc291
cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMKaW5kZXggMmRj
OGY0YjUyMWFhNzJiNTQ3NWIwYzM2MjBlOTY1YjI2NzdmNTQ4Ny4uZjZlODVhMTdkMDBkZTQwMzMx
ZmQxODBjYzkxZmM0OWYzNjJlNzUxMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcworKysg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcmVzb3VyY2VzL21lZGlh
LWNvbnRyb2xzLXV0aWxzLmpzCkBAIC04MywyNiArODMsNiBAQCBmdW5jdGlvbiBwcmVzc0F0UG9p
bnQoeCwgeSwgY29udGludWF0aW9uKQogICAgIH0KIH0KIAotZnVuY3Rpb24gc2hvd1RyYWNrc1Bh
bmVsKHNoYWRvd1Jvb3QsIGNvbnRpbnVhdGlvbikKLXsKLSAgICBpZiAodHlwZW9mIGNvbnRpbnVh
dGlvbiAhPT0gImZ1bmN0aW9uIikKLSAgICAgICAgY29udGludWF0aW9uID0gbmV3IEZ1bmN0aW9u
OwotCi0gICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3Io
J2J1dHRvbi50cmFja3MnKSIsICJudWxsIiwgKCkgPT4gewotICAgICAgICBzaG91bGRCZWNvbWVE
aWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIiwgIjAiLCAoKSA9PiB7Ci0gICAgICAgICAgICBkZWJ1
ZygiPT4gVHJhY2tzIGJ1dHRvbiBpcyB2aXNpYmxlLiIpCi0gICAgICAgICAgICBkZWJ1ZygiIik7
Ci0gICAgICAgICAgICBkZWJ1ZygiUHJlc3Npbmcgb24gdGhlIHRyYWNrcyBidXR0b24uIik7Ci0g
ICAgICAgICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRv
bi50cmFja3MiKSk7Ci0gICAgICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jv
b3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpIiwgIm51bGwiLCAoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgZGVidWcoIj0+IFRyYWNrcyBwYW5lbCBpcyB2aXNpYmxlLiIpCi0gICAgICAg
ICAgICAgICAgZGVidWcoIiIpOwotICAgICAgICAgICAgICAgIGNvbnRpbnVhdGlvbigpOwotICAg
ICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotfQotCiBmdW5jdGlvbiBnZXRUcmFj
a3NDb250ZXh0TWVudSgpCiB7CiAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1jb250cm9scy1iYXItcmVtYWlucy12aXNpYmxlLWFmdGVy
LWNsaWNraW5nLW92ZXItaXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtY29udHJvbHMtYmFyLXJl
bWFpbnMtdmlzaWJsZS1hZnRlci1jbGlja2luZy1vdmVyLWl0LWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDQxOTEzYzNlZGM2NWQ0NTM4Y2FiOTc4ZjhmOTc0YmI0
NGU1MWZiYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNr
cy1wYW5lbC1jb250cm9scy1iYXItcmVtYWlucy12aXNpYmxlLWFmdGVyLWNsaWNraW5nLW92ZXIt
aXQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotQ2xpY2tpbmcg
b24gdGhlIGNvbnRyb2xzIGJhciB0byBkaXNtaXNzIHRoZSB0cmFja3MgcGFuZWwgc2hvdWxkIG5v
dCBoaWRlIHRoZSBjb250cm9scyBiYXIsIG9ubHkgdGhlIHRyYWNrIHBhbmVsLgotCi1PbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1
dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCA+IDAgYmVjYW1lIHRy
dWUKLVBBU1Mgc2hhZG93Um9vdC5jb250YWlucyhzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50
cmFja3MtcGFuZWwnKSkgYmVjYW1lIHRydWUKLVBBU1MgbWVkaWEuY3VycmVudFRpbWUgPiAwLjI1
MCBiZWNhbWUgdHJ1ZQotCi1XZSd2ZSB3YWl0ZWQgbG9uZyBlbm91Z2ggc28gdGhhdCB0aGUgY29u
dHJvbHMgYmFyIHNob3VsZCBiZSBmYWRlZCBzaG91bGQgdGhlIHRyYWNrcyBwYW5lbCBub3QgYmUg
dmlzaWJsZS4KLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcubWVkaWEtY29udHJvbHMn
KS5jbGFzc0xpc3QuY29udGFpbnMoJ2ZhZGVkJykgaXMgZmFsc2UKLQotQ2xpY2sgb24gdGhlIGNv
bnRyb2xzIGJhciB0byBkaXNtaXNzIHRoZSBwYW5lbCwgdGhlIGNvbnRyb2xzIGJhciBzaG91bGQg
cmVtYWluIHZpc2libGUuCi1QQVNTIHNoYWRvd1Jvb3QuY29udGFpbnMoc2hhZG93Um9vdC5xdWVy
eVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykpIGJlY2FtZSBmYWxzZQotUEFTUyBzaGFkb3dSb290
LnF1ZXJ5U2VsZWN0b3IoJy5tZWRpYS1jb250cm9scycpLmNsYXNzTGlzdC5jb250YWlucygnZmFk
ZWQnKSBpcyBmYWxzZQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENP
TVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWNvbnRyb2xzLWJhci1yZW1haW5zLXZpc2li
bGUtYWZ0ZXItY2xpY2tpbmctb3Zlci1pdC5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtY29udHJvbHMtYmFyLXJl
bWFpbnMtdmlzaWJsZS1hZnRlci1jbGlja2luZy1vdmVyLWl0Lmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGU4ODFmYWY4M2UwZjBkZmNjODJhNzE5MzQxMzg0OWNkNjQ3ZGRhMzAu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwt
Y29udHJvbHMtYmFyLXJlbWFpbnMtdmlzaWJsZS1hZnRlci1jbGlja2luZy1vdmVyLWl0Lmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvbWVkaWEtY29udHJvbHMtbG9hZGVyLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyIg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KLTxib2R5PgotPHZpZGVvIHNyYz0iLi4v
Li4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBs
ZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiA2NDBweDsgaGVpZ2h0OiAzNjBweDsiIGNvbnRyb2xzIGF1
dG9wbGF5IGRhdGEtYXV0by1oaWRlLWRlbGF5PSIyNTAiPjwvdmlkZW8+Ci08c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVz
Y3JpcHRpb24oIkNsaWNraW5nIG9uIHRoZSBjb250cm9scyBiYXIgdG8gZGlzbWlzcyB0aGUgdHJh
Y2tzIHBhbmVsIHNob3VsZCBub3QgaGlkZSB0aGUgY29udHJvbHMgYmFyLCBvbmx5IHRoZSB0cmFj
ayBwYW5lbC4iKTsKLQotY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRl
byIpOwotY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRp
YSk7Ci0KLXNob3VsZEJlY29tZUVxdWFsKCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRv
bi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCA+IDAiLCAidHJ1ZSIsICgp
ID0+IHsKLSAgICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRv
bi50cmFja3MiKSwgKCkgPT4gewotICAgICAgICBzaG91bGRCZWNvbWVFcXVhbCgic2hhZG93Um9v
dC5jb250YWlucyhzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKSkiLCAi
dHJ1ZSIsICgpID0+IHsKLSAgICAgICAgICAgIHNob3VsZEJlY29tZUVxdWFsKCJtZWRpYS5jdXJy
ZW50VGltZSA+IDAuMjUwIiwgInRydWUiLCAoKSA9PiB7Ci0KLSAgICAgICAgICAgICAgICBkZWJ1
ZygiIik7Ci0gICAgICAgICAgICAgICAgZGVidWcoIldlJ3ZlIHdhaXRlZCBsb25nIGVub3VnaCBz
byB0aGF0IHRoZSBjb250cm9scyBiYXIgc2hvdWxkIGJlIGZhZGVkIHNob3VsZCB0aGUgdHJhY2tz
IHBhbmVsIG5vdCBiZSB2aXNpYmxlLiIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlRmFsc2Uo
InNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLm1lZGlhLWNvbnRyb2xzJykuY2xhc3NMaXN0LmNv
bnRhaW5zKCdmYWRlZCcpIik7Ci0KLSAgICAgICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAg
ICAgICAgICAgZGVidWcoIkNsaWNrIG9uIHRoZSBjb250cm9scyBiYXIgdG8gZGlzbWlzcyB0aGUg
cGFuZWwsIHRoZSBjb250cm9scyBiYXIgc2hvdWxkIHJlbWFpbiB2aXNpYmxlLiIpOwotICAgICAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDYzMiwgMzM5KTsKLSAgICAgICAgICAg
ICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICAgICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVVwKCk7Ci0KLSAgICAgICAgICAgICAgICBzaG91bGRCZWNvbWVFcXVhbCgic2hhZG93
Um9vdC5jb250YWlucyhzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKSki
LCAiZmFsc2UiLCAoKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIHNob3VsZEJlRmFsc2UoInNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLm1lZGlhLWNvbnRyb2xzJykuY2xhc3NMaXN0LmNvbnRh
aW5zKCdmYWRlZCcpIik7Ci0gICAgICAgICAgICAgICAgICAgIG1lZGlhLnJlbW92ZSgpOwotICAg
ICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgICAgICAgICB9KTsKLQot
ICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotfSk7Ci0KLTwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOGZkOTYzMmYxM2Fk
NjY2NTE5MDM0OTFjOTNhNzk1MjAwZjRjNDZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDE1ICswLDAgQEAKLVRlc3RpbmcgdGhlIFRyYWNrc1BhbmVsIGNsYXNzIHByb3BlcnRpZXMu
Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1CYXNpYyBwcm9wZXJ0aWVzCi1QQVNT
IHRyYWNrc1BhbmVsLmVsZW1lbnQubG9jYWxOYW1lIGlzICJkaXYiCi1QQVNTIHRyYWNrc1BhbmVs
LmVsZW1lbnQuY2xhc3NOYW1lIGlzICJ0cmFja3MtcGFuZWwiCi1QQVNTIHRyYWNrc1BhbmVsLnBy
ZXNlbnRlZCBpcyBmYWxzZQotUEFTUyB0cmFja3NQYW5lbC5yaWdodFggaXMgMAotCi1QQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFj
a3MtcGFuZWwtaGlkZS1jbGljay1vdXRzaWRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWhpZGUt
Y2xpY2stb3V0c2lkZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAzNzNiNzVjZTQyMjNmY2I2ODA3YzMxOWE4YzRlZTk5NDkzNDAzZTYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtaGlkZS1jbGljay1vdXRz
aWRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRlc3Rpbmcg
YSBUcmFja3NQYW5lbCBpcyBoaWRkZW4gdXBvbiBjbGlja2luZyBvdXRzaWRlIG9mIGl0LgotCi1P
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotbWVkaWFDb250cm9scy5zaG93VHJhY2tzUGFu
ZWwoKQotUEFTUyBkb2N1bWVudC5ib2R5LmNvbnRhaW5zKG1lZGlhQ29udHJvbHMudHJhY2tzUGFu
ZWwuZWxlbWVudCkgYmVjYW1lIHRydWUKLVBBU1MgbWVkaWFDb250cm9scy50cmFja3NQYW5lbC5w
cmVzZW50ZWQgaXMgdHJ1ZQotCi1DbGlja2luZyBvdXRzaWRlIG9mIHRoZSBwYW5lbAotUEFTUyBk
b2N1bWVudC5ib2R5LmNvbnRhaW5zKG1lZGlhQ29udHJvbHMudHJhY2tzUGFuZWwuZWxlbWVudCkg
YmVjYW1lIGZhbHNlCi1QQVNTIG1lZGlhQ29udHJvbHMudHJhY2tzUGFuZWwucHJlc2VudGVkIGlz
IGZhbHNlCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVU
RQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1oaWRlLWNsaWNrLW91dHNpZGUuaHRtbCBiL0xheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBh
bmVsLWhpZGUtY2xpY2stb3V0c2lkZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBjZjk4MDQyYzQyODVkNjE4M2VhZDVjNTc2ZTNmYWE5MzFhMmExMzU5Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWhpZGUtY2xpY2stb3V0
c2lkZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLWxvYWRlci5qcyIgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij48L3NjcmlwdD4KLTxib2R5PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgot
Ci13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJUZXN0aW5nIGEg
PGNvZGU+VHJhY2tzUGFuZWw8L2NvZGU+IGlzIGhpZGRlbiB1cG9uIGNsaWNraW5nIG91dHNpZGUg
b2YgaXQuIik7Ci0KLWNvbnN0IG1lZGlhQ29udHJvbHMgPSBuZXcgTWFjT1NJbmxpbmVNZWRpYUNv
bnRyb2xzKHsgd2lkdGg6IDY4MCwgaGVpZ2h0OiAzMDAgfSk7Ci1kb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKG1lZGlhQ29udHJvbHMuZWxlbWVudCk7Ci0KLWRlYnVnKCJtZWRpYUNvbnRyb2xzLnNo
b3dUcmFja3NQYW5lbCgpIik7Ci1tZWRpYUNvbnRyb2xzLnNob3dUcmFja3NQYW5lbCgpOwotCi1z
aG91bGRCZWNvbWVFcXVhbCgiZG9jdW1lbnQuYm9keS5jb250YWlucyhtZWRpYUNvbnRyb2xzLnRy
YWNrc1BhbmVsLmVsZW1lbnQpIiwgInRydWUiLCAoKSA9PiB7Ci0gICAgc2hvdWxkQmVUcnVlKCJt
ZWRpYUNvbnRyb2xzLnRyYWNrc1BhbmVsLnByZXNlbnRlZCIpOwotICAgIGRlYnVnKCIiKTsKLSAg
ICBkZWJ1ZygiQ2xpY2tpbmcgb3V0c2lkZSBvZiB0aGUgcGFuZWwiKTsKLSAgICBldmVudFNlbmRl
ci5tb3VzZU1vdmVUbygxMCwgMTApOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwotICAg
IGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLSAgICBzaG91bGRCZWNvbWVFcXVhbCgiZG9jdW1lbnQu
Ym9keS5jb250YWlucyhtZWRpYUNvbnRyb2xzLnRyYWNrc1BhbmVsLmVsZW1lbnQpIiwgImZhbHNl
IiwgKCkgPT4gewotICAgICAgICBzaG91bGRCZUZhbHNlKCJtZWRpYUNvbnRyb2xzLnRyYWNrc1Bh
bmVsLnByZXNlbnRlZCIpOwotICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgIG1lZGlhQ29udHJv
bHMuZWxlbWVudC5yZW1vdmUoKTsKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgfSk7Ci19
KTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1oaWRlLWVz
Yy1rZXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtaGlkZS1lc2Mta2V5LWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGU3NTY3ZGQ4NmFjMWQ4NzhiNWYxODAzNmVi
ZGY4ODk4ZDViY2ViMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVs
L3RyYWNrcy1wYW5lbC1oaWRlLWVzYy1rZXktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMTYgKzAsMCBAQAotVGVzdGluZyBhIFRyYWNrc1BhbmVsIGlzIGhpZGRlbiB1cG9uIGhpdHRp
bmcgdGhlIEVzYy4ga2V5LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotbWVkaWFD
b250cm9scy5zaG93VHJhY2tzUGFuZWwoKQotCi1QcmVzc2luZyB0aGUgRXNjYXBlIGtleQotCi1U
cmFuc2l0aW9uIGVuZGVkCi1QQVNTIG1lZGlhQ29udHJvbHMudHJhY2tzUGFuZWwucHJlc2VudGVk
IGlzIGZhbHNlCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01Q
TEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1oaWRlLWVzYy1rZXkuaHRtbCBiL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVs
LWhpZGUtZXNjLWtleS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MGU5YjBk
MjFmNGU3ODdjZTBmZDUwY2UzYmMyNWRhMDZlOTg3NjJkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWhpZGUtZXNjLWtleS5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21l
ZGlhLWNvbnRyb2xzLWxvYWRlci5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4K
LTxib2R5PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0
SXNBc3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJUZXN0aW5nIGEgPGNvZGU+VHJhY2tzUGFu
ZWw8L2NvZGU+IGlzIGhpZGRlbiB1cG9uIGhpdHRpbmcgdGhlIEVzYy4ga2V5LiIpOwotCi1jb25z
dCBtZWRpYUNvbnRyb2xzID0gbmV3IE1hY09TSW5saW5lTWVkaWFDb250cm9scyh7IHdpZHRoOiA2
ODAsIGhlaWdodDogMzAwIH0pOwotZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChtZWRpYUNvbnRy
b2xzLmVsZW1lbnQpOwotCi1kZWJ1ZygibWVkaWFDb250cm9scy5zaG93VHJhY2tzUGFuZWwoKSIp
OwotbWVkaWFDb250cm9scy5zaG93VHJhY2tzUGFuZWwoKTsKLQotc2NoZWR1bGVyLmZyYW1lRGlk
RmlyZSA9IGZ1bmN0aW9uKCkKLXsKLSAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgp
ID0+IHsKLSAgICAgICAgZGVidWcoIiIpOwotICAgICAgICBkZWJ1ZygiUHJlc3NpbmcgdGhlIEVz
Y2FwZSBrZXkiKTsKLSAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiRXNjYXBlIik7Ci0gICAg
ICAgIG1lZGlhQ29udHJvbHMudHJhY2tzUGFuZWwuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ0
cmFuc2l0aW9uZW5kIiwgKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAg
ICAgICAgICBkZWJ1ZygiVHJhbnNpdGlvbiBlbmRlZCIpOwotICAgICAgICAgICAgc2hvdWxkQmVG
YWxzZSgibWVkaWFDb250cm9scy50cmFja3NQYW5lbC5wcmVzZW50ZWQiKTsKLQotICAgICAgICAg
ICAgZGVidWcoIiIpOwotICAgICAgICAgICAgbWVkaWFDb250cm9scy5lbGVtZW50LnJlbW92ZSgp
OwotICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotICAg
IHNjaGVkdWxlci5mcmFtZURpZEZpcmUgPSBudWxsOwotfQotCi08L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9k
eT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLWhpZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtaGlk
ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI2MzY0NTBhZjZh
MThlYmZmMDRjYzk5YzcwOGU0ZmNlNmIxYjljNGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtaGlkZS1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwxOCArMCwwIEBACi1UZXN0aW5nIGEgVHJhY2tzUGFuZWwgaXMgaGlkZGVuIHdp
dGggYW4gYW5pbWF0aW9uLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotdHJhY2tz
UGFuZWwucHJlc2VudEluUGFyZW50KGNvbnRhaW5lcikKLVBBU1MgdHJhY2tzUGFuZWwucHJlc2Vu
dGVkIGlzIHRydWUKLQotdHJhY2tzUGFuZWwuaGlkZSgpCi1QQVNTIHRyYWNrc1BhbmVsLnByZXNl
bnRlZCBpcyBmYWxzZQotCi1UcmFuc2l0aW9uIGVuZGVkCi1QQVNTIHRyYWNrc1BhbmVsLnByZXNl
bnRlZCBpcyBmYWxzZQotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1Qg
Q09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtaGlkZS5odG1sIGIvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtaGlk
ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ODhhMjI4MGQwMzk4YmI2NTZk
MGVlM2E0MjQ5YTNlM2M3OGZjNDhmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3MtcGFuZWwvdHJhY2tzLXBhbmVsLWhpZGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQwICsw
LDAgQEAKLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy1sb2FkZXIu
anMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08Ym9keT4KLTxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1k
ZXNjcmlwdGlvbigiVGVzdGluZyBhIDxjb2RlPlRyYWNrc1BhbmVsPC9jb2RlPiBpcyBoaWRkZW4g
d2l0aCBhbiBhbmltYXRpb24uIik7Ci0KLWNvbnN0IHRyYWNrc1BhbmVsID0gbmV3IFRyYWNrc1Bh
bmVsOwotY29uc3QgY29udGFpbmVyID0gbmV3IExheW91dE5vZGU7Ci0KLWRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoY29udGFpbmVyLmVsZW1lbnQpOwotCi1kZWJ1ZygidHJhY2tzUGFuZWwucHJl
c2VudEluUGFyZW50KGNvbnRhaW5lcikiKTsKLXRyYWNrc1BhbmVsLnByZXNlbnRJblBhcmVudChj
b250YWluZXIpOwotCi1zY2hlZHVsZXIuZnJhbWVEaWRGaXJlID0gZnVuY3Rpb24oKQotewotICAg
IHNob3VsZEJlVHJ1ZSgidHJhY2tzUGFuZWwucHJlc2VudGVkIik7Ci0KLSAgICBkZWJ1ZygiIik7
Ci0gICAgZGVidWcoInRyYWNrc1BhbmVsLmhpZGUoKSIpOwotICAgIHdpbmRvdy5yZXF1ZXN0QW5p
bWF0aW9uRnJhbWUoKCkgPT4gewotICAgICAgICB0cmFja3NQYW5lbC5oaWRlKCk7Ci0gICAgICAg
IHNob3VsZEJlRmFsc2UoInRyYWNrc1BhbmVsLnByZXNlbnRlZCIpOwotICAgICAgICB0cmFja3NQ
YW5lbC5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLCAoZXZlbnQpID0+
IHsKLSAgICAgICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgICAgIGRlYnVnKCJUcmFuc2l0aW9u
IGVuZGVkIik7Ci0gICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJ0cmFja3NQYW5lbC5wcmVzZW50
ZWQiKTsKLSAgICAgICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgp
OwotICAgICAgICB9KTsKLSAgICB9KTsKLSAgICBzY2hlZHVsZXIuZnJhbWVEaWRGaXJlID0gbnVs
bDsKLX0KLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wb3B1
bGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXBvcHVsYXRpb24tZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MzM5ZmIwMzdhMTZkOGRhMDBmN2E4MzM3MmZi
NjFlZjFhYTY3MzMzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwv
dHJhY2tzLXBhbmVsLXBvcHVsYXRpb24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
NTMgKzAsMCBAQAotUG9wdWxhdGluZyBhIFRyYWNrc1BhbmVsIGluc3RhbmNlLgotCi1PbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyB0cmFja3NQYW5lbC5wcmVzZW50ZWQgaXMgdHJ1
ZQotUEFTUyB0cmFja3NQYW5lbC5wYXJlbnQgaXMgY29udGFpbmVyCi1QQVNTIHNjcm9sbENvbnRh
aW5lci5jaGlsZHJlbi5sZW5ndGggaXMgbnVtYmVyT2ZTZWN0aW9ucwotCi1IaWVyYXJjaHkgZm9y
IHNlY3Rpb24gIzAKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWzBdLmVsZW1lbnQubG9j
YWxOYW1lIGlzICJzZWN0aW9uIgotUEFTUyBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5bMF0uY2hp
bGRyZW4ubGVuZ3RoIGlzIDIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWzBdLmNoaWxk
cmVuWzBdLmVsZW1lbnQubG9jYWxOYW1lIGlzICJoMyIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNo
aWxkcmVuWzBdLmNoaWxkcmVuWzBdLmVsZW1lbnQudGV4dENvbnRlbnQgaXMgIlRpdGxlICMwIgot
UEFTUyBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMV0uZWxlbWVudC5sb2Nh
bE5hbWUgaXMgInVsIgotUEFTUyBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5bMF0uY2hpbGRyZW5b
MV0uY2hpbGRyZW4ubGVuZ3RoIGlzIDMKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWzBd
LmNoaWxkcmVuWzFdLmNoaWxkcmVuW3RyYWNrSW5kZXhdLmVsZW1lbnQubG9jYWxOYW1lIGlzICJs
aSIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzFdLmNoaWxkcmVu
W3RyYWNrSW5kZXhdLmVsZW1lbnQuY2xhc3NOYW1lIGlzICIiCi1QQVNTIHNjcm9sbENvbnRhaW5l
ci5jaGlsZHJlblswXS5jaGlsZHJlblsxXS5jaGlsZHJlblt0cmFja0luZGV4XS5lbGVtZW50LnRl
eHRDb250ZW50IGlzICJUcmFjayAweDAiCi1QQVNTIHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblsw
XS5jaGlsZHJlblsxXS5jaGlsZHJlblt0cmFja0luZGV4XS5lbGVtZW50LmxvY2FsTmFtZSBpcyAi
bGkiCi1QQVNTIHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblswXS5jaGlsZHJlblsxXS5jaGlsZHJl
blt0cmFja0luZGV4XS5lbGVtZW50LmNsYXNzTmFtZSBpcyAic2VsZWN0ZWQiCi1QQVNTIHNjcm9s
bENvbnRhaW5lci5jaGlsZHJlblswXS5jaGlsZHJlblsxXS5jaGlsZHJlblt0cmFja0luZGV4XS5l
bGVtZW50LnRleHRDb250ZW50IGlzICJUcmFjayAweDEiCi1QQVNTIHNjcm9sbENvbnRhaW5lci5j
aGlsZHJlblswXS5jaGlsZHJlblsxXS5jaGlsZHJlblt0cmFja0luZGV4XS5lbGVtZW50LmxvY2Fs
TmFtZSBpcyAibGkiCi1QQVNTIHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblswXS5jaGlsZHJlblsx
XS5jaGlsZHJlblt0cmFja0luZGV4XS5lbGVtZW50LmNsYXNzTmFtZSBpcyAiIgotUEFTUyBzY3Jv
bGxDb250YWluZXIuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMV0uY2hpbGRyZW5bdHJhY2tJbmRleF0u
ZWxlbWVudC50ZXh0Q29udGVudCBpcyAiVHJhY2sgMHgyIgotCi1IaWVyYXJjaHkgZm9yIHNlY3Rp
b24gIzEKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWzFdLmVsZW1lbnQubG9jYWxOYW1l
IGlzICJzZWN0aW9uIgotUEFTUyBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5bMV0uY2hpbGRyZW4u
bGVuZ3RoIGlzIDIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWzFdLmNoaWxkcmVuWzBd
LmVsZW1lbnQubG9jYWxOYW1lIGlzICJoMyIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVu
WzFdLmNoaWxkcmVuWzBdLmVsZW1lbnQudGV4dENvbnRlbnQgaXMgIlRpdGxlICMxIgotUEFTUyBz
Y3JvbGxDb250YWluZXIuY2hpbGRyZW5bMV0uY2hpbGRyZW5bMV0uZWxlbWVudC5sb2NhbE5hbWUg
aXMgInVsIgotUEFTUyBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5bMV0uY2hpbGRyZW5bMV0uY2hp
bGRyZW4ubGVuZ3RoIGlzIDUKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWzFdLmNoaWxk
cmVuWzFdLmNoaWxkcmVuW3RyYWNrSW5kZXhdLmVsZW1lbnQubG9jYWxOYW1lIGlzICJsaSIKLVBB
U1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWzFdLmNoaWxkcmVuWzFdLmNoaWxkcmVuW3RyYWNr
SW5kZXhdLmVsZW1lbnQuY2xhc3NOYW1lIGlzICIiCi1QQVNTIHNjcm9sbENvbnRhaW5lci5jaGls
ZHJlblsxXS5jaGlsZHJlblsxXS5jaGlsZHJlblt0cmFja0luZGV4XS5lbGVtZW50LnRleHRDb250
ZW50IGlzICJUcmFjayAxeDAiCi1QQVNTIHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblsxXS5jaGls
ZHJlblsxXS5jaGlsZHJlblt0cmFja0luZGV4XS5lbGVtZW50LmxvY2FsTmFtZSBpcyAibGkiCi1Q
QVNTIHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblsxXS5jaGlsZHJlblsxXS5jaGlsZHJlblt0cmFj
a0luZGV4XS5lbGVtZW50LmNsYXNzTmFtZSBpcyAiIgotUEFTUyBzY3JvbGxDb250YWluZXIuY2hp
bGRyZW5bMV0uY2hpbGRyZW5bMV0uY2hpbGRyZW5bdHJhY2tJbmRleF0uZWxlbWVudC50ZXh0Q29u
dGVudCBpcyAiVHJhY2sgMXgxIgotUEFTUyBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5bMV0uY2hp
bGRyZW5bMV0uY2hpbGRyZW5bdHJhY2tJbmRleF0uZWxlbWVudC5sb2NhbE5hbWUgaXMgImxpIgot
UEFTUyBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5bMV0uY2hpbGRyZW5bMV0uY2hpbGRyZW5bdHJh
Y2tJbmRleF0uZWxlbWVudC5jbGFzc05hbWUgaXMgIiIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNo
aWxkcmVuWzFdLmNoaWxkcmVuWzFdLmNoaWxkcmVuW3RyYWNrSW5kZXhdLmVsZW1lbnQudGV4dENv
bnRlbnQgaXMgIlRyYWNrIDF4MiIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWzFdLmNo
aWxkcmVuWzFdLmNoaWxkcmVuW3RyYWNrSW5kZXhdLmVsZW1lbnQubG9jYWxOYW1lIGlzICJsaSIK
LVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWzFdLmNoaWxkcmVuWzFdLmNoaWxkcmVuW3Ry
YWNrSW5kZXhdLmVsZW1lbnQuY2xhc3NOYW1lIGlzICJzZWxlY3RlZCIKLVBBU1Mgc2Nyb2xsQ29u
dGFpbmVyLmNoaWxkcmVuWzFdLmNoaWxkcmVuWzFdLmNoaWxkcmVuW3RyYWNrSW5kZXhdLmVsZW1l
bnQudGV4dENvbnRlbnQgaXMgIlRyYWNrIDF4MyIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxk
cmVuWzFdLmNoaWxkcmVuWzFdLmNoaWxkcmVuW3RyYWNrSW5kZXhdLmVsZW1lbnQubG9jYWxOYW1l
IGlzICJsaSIKLVBBU1Mgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWzFdLmNoaWxkcmVuWzFdLmNo
aWxkcmVuW3RyYWNrSW5kZXhdLmVsZW1lbnQuY2xhc3NOYW1lIGlzICIiCi1QQVNTIHNjcm9sbENv
bnRhaW5lci5jaGlsZHJlblsxXS5jaGlsZHJlblsxXS5jaGlsZHJlblt0cmFja0luZGV4XS5lbGVt
ZW50LnRleHRDb250ZW50IGlzICJUcmFjayAxeDQiCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wb3B1bGF0
aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXBhbmVsL3RyYWNrcy1wYW5lbC1wb3B1bGF0aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDQ2ODRlNGVlZmQ1NjAzYzdiZDNjZmFiNzE4MTNkYzdjMjRjYTJiM2UuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcG9wdWxh
dGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLWxvYWRlci5qcyIgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij48L3NjcmlwdD4KLTxib2R5PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgot
Ci1kZXNjcmlwdGlvbigiUG9wdWxhdGluZyBhIDxjb2RlPlRyYWNrc1BhbmVsPC9jb2RlPiBpbnN0
YW5jZS4iKTsKLQotY29uc3QgdHJhY2tzUGFuZWwgPSBuZXcgVHJhY2tzUGFuZWw7Ci0KLWNvbnN0
IG51bWJlck9mU2VjdGlvbnMgPSAyOwotY29uc3QgbnVtYmVyT2ZUcmFja3NJblNlY3Rpb24gPSBb
MywgNV07Ci1jb25zdCBzZWxlY3RlZFRyYWNrcyA9IFtbMCwgMV0sIFsxLCAzXV07Ci0KLXRyYWNr
c1BhbmVsLmRhdGFTb3VyY2UgPSB7Ci0gICAgdHJhY2tzUGFuZWxOdW1iZXJPZlNlY3Rpb25zOiBm
dW5jdGlvbigpCi0gICAgewotICAgICAgICByZXR1cm4gbnVtYmVyT2ZTZWN0aW9uczsKLSAgICB9
LAotCi0gICAgdHJhY2tzUGFuZWxUaXRsZUZvclNlY3Rpb246IGZ1bmN0aW9uKHNlY3Rpb25JbmRl
eCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBgVGl0bGUgIyR7c2VjdGlvbkluZGV4fWA7Ci0gICAg
fSwKLQotICAgIHRyYWNrc1BhbmVsTnVtYmVyT2ZUcmFja3NJblNlY3Rpb246IGZ1bmN0aW9uKHNl
Y3Rpb25JbmRleCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBudW1iZXJPZlRyYWNrc0luU2VjdGlv
bltzZWN0aW9uSW5kZXhdOwotICAgIH0sCi0KLSAgICB0cmFja3NQYW5lbFRpdGxlRm9yVHJhY2tJ
blNlY3Rpb246IGZ1bmN0aW9uKHRyYWNrSW5kZXgsIHNlY3Rpb25JbmRleCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBgVHJhY2sgJHtzZWN0aW9uSW5kZXh9eCR7dHJhY2tJbmRleH1gOwotICAgIH0s
Ci0KLSAgICB0cmFja3NQYW5lbElzVHJhY2tJblNlY3Rpb25TZWxlY3RlZDogZnVuY3Rpb24odHJh
Y2tJbmRleCwgc2VjdGlvbkluZGV4KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHNlbGVjdGVkVHJh
Y2tzLnNvbWUoc2VsZWN0ZWRUcmFjayA9PiBzZWxlY3RlZFRyYWNrWzBdID09PSBzZWN0aW9uSW5k
ZXggJiYgc2VsZWN0ZWRUcmFja1sxXSA9PT0gdHJhY2tJbmRleCk7Ci0gICAgfQotfTsKLQotY29u
c3QgY29udGFpbmVyID0gbmV3IExheW91dE5vZGU7Ci10cmFja3NQYW5lbC5wcmVzZW50SW5QYXJl
bnQoY29udGFpbmVyKTsKLQotY29uc3Qgc2Nyb2xsQ29udGFpbmVyID0gdHJhY2tzUGFuZWwuY2hp
bGRyZW5bMV07Ci0KLXNob3VsZEJlVHJ1ZSgidHJhY2tzUGFuZWwucHJlc2VudGVkIik7Ci1zaG91
bGRCZSgidHJhY2tzUGFuZWwucGFyZW50IiwgImNvbnRhaW5lciIpOwotc2hvdWxkQmUoInNjcm9s
bENvbnRhaW5lci5jaGlsZHJlbi5sZW5ndGgiLCAibnVtYmVyT2ZTZWN0aW9ucyIpOwotCi1sZXQg
c2VjdGlvbkluZGV4LCB0cmFja0luZGV4OwotZm9yIChzZWN0aW9uSW5kZXggPSAwOyBzZWN0aW9u
SW5kZXggPCBudW1iZXJPZlNlY3Rpb25zOyArK3NlY3Rpb25JbmRleCkgewotICAgIGRlYnVnKCIi
KTsKLSAgICBkZWJ1ZyhgSGllcmFyY2h5IGZvciBzZWN0aW9uICMke3NlY3Rpb25JbmRleH1gKTsK
LSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoYHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblske3Nl
Y3Rpb25JbmRleH1dLmVsZW1lbnQubG9jYWxOYW1lYCwgInNlY3Rpb24iKTsKLSAgICBzaG91bGRC
ZShgc2Nyb2xsQ29udGFpbmVyLmNoaWxkcmVuWyR7c2VjdGlvbkluZGV4fV0uY2hpbGRyZW4ubGVu
Z3RoYCwgIjIiKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoYHNjcm9sbENvbnRhaW5lci5j
aGlsZHJlblske3NlY3Rpb25JbmRleH1dLmNoaWxkcmVuWzBdLmVsZW1lbnQubG9jYWxOYW1lYCwg
ImgzIik7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKGBzY3JvbGxDb250YWluZXIuY2hpbGRy
ZW5bJHtzZWN0aW9uSW5kZXh9XS5jaGlsZHJlblswXS5lbGVtZW50LnRleHRDb250ZW50YCwgdHJh
Y2tzUGFuZWwuZGF0YVNvdXJjZS50cmFja3NQYW5lbFRpdGxlRm9yU2VjdGlvbihzZWN0aW9uSW5k
ZXgpKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoYHNjcm9sbENvbnRhaW5lci5jaGlsZHJl
blske3NlY3Rpb25JbmRleH1dLmNoaWxkcmVuWzFdLmVsZW1lbnQubG9jYWxOYW1lYCwgInVsIik7
Ci0gICAgc2hvdWxkQmUoYHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblske3NlY3Rpb25JbmRleH1d
LmNoaWxkcmVuWzFdLmNoaWxkcmVuLmxlbmd0aGAsIGAke251bWJlck9mVHJhY2tzSW5TZWN0aW9u
W3NlY3Rpb25JbmRleF19YCk7Ci0gICAgZm9yICh0cmFja0luZGV4ID0gMDsgdHJhY2tJbmRleCA8
IG51bWJlck9mVHJhY2tzSW5TZWN0aW9uW3NlY3Rpb25JbmRleF07ICsrdHJhY2tJbmRleCkgewot
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoYHNjcm9sbENvbnRhaW5lci5jaGlsZHJlblsk
e3NlY3Rpb25JbmRleH1dLmNoaWxkcmVuWzFdLmNoaWxkcmVuW3RyYWNrSW5kZXhdLmVsZW1lbnQu
bG9jYWxOYW1lYCwgImxpIik7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZyhgc2Nyb2xs
Q29udGFpbmVyLmNoaWxkcmVuWyR7c2VjdGlvbkluZGV4fV0uY2hpbGRyZW5bMV0uY2hpbGRyZW5b
dHJhY2tJbmRleF0uZWxlbWVudC5jbGFzc05hbWVgLCBzZWxlY3RlZFRyYWNrcy5zb21lKHNlbGVj
dGVkVHJhY2sgPT4gc2VsZWN0ZWRUcmFja1swXSA9PT0gc2VjdGlvbkluZGV4ICYmIHNlbGVjdGVk
VHJhY2tbMV0gPT09IHRyYWNrSW5kZXgpID8gInNlbGVjdGVkIiA6ICIiKTsKLSAgICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKGBzY3JvbGxDb250YWluZXIuY2hpbGRyZW5bJHtzZWN0aW9uSW5k
ZXh9XS5jaGlsZHJlblsxXS5jaGlsZHJlblt0cmFja0luZGV4XS5lbGVtZW50LnRleHRDb250ZW50
YCwgdHJhY2tzUGFuZWwuZGF0YVNvdXJjZS50cmFja3NQYW5lbFRpdGxlRm9yVHJhY2tJblNlY3Rp
b24odHJhY2tJbmRleCwgc2VjdGlvbkluZGV4KSk7Ci0gICAgfQotfQotCi1kZWJ1ZygiIik7Ci0K
LTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcG9zaXRpb24tYW5k
LXNpemUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcG9zaXRpb24tYW5kLXNpemUtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMDA5NGQyMzMzZTEwZDUzNDE2N2Yx
ZmVjZjMyNjc5YmJmZDBjMTNiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
cGFuZWwvdHJhY2tzLXBhbmVsLXBvc2l0aW9uLWFuZC1zaXplLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRlc3RpbmcgcG9zaXRpb25pbmcgYW5kIHNpemluZyBv
ZiB0aGUgdHJhY2tzIHBhbmVsLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFT
UyBtZWRpYUNvbnRyb2xzLnRyYWNrc0J1dHRvbi5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpLnJpZ2h0IGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCi1tZWRpYUNvbnRyb2xzLnNob3dUcmFj
a3NQYW5lbCgpCi1QQVNTIG1lZGlhQ29udHJvbHMudHJhY2tzUGFuZWwuZWxlbWVudC5zdHlsZS5y
aWdodCBpcyAiMjJweCIKLVBBU1MgbWVkaWFDb250cm9scy50cmFja3NQYW5lbC5lbGVtZW50LnN0
eWxlLmJvdHRvbSBpcyAiMzhweCIKLVBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShtZWRpYUNvbnRyb2xz
LnRyYWNrc1BhbmVsLmVsZW1lbnQpLmhlaWdodCBpcyAiMjUycHgiCi1QQVNTIGdldENvbXB1dGVk
U3R5bGUobWVkaWFDb250cm9scy50cmFja3NQYW5lbC5lbGVtZW50Lmxhc3RFbGVtZW50Q2hpbGQp
LmhlaWdodCBpcyAiMjUycHgiCi1QQVNTIGdldENvbXB1dGVkU3R5bGUobWVkaWFDb250cm9scy50
cmFja3NQYW5lbC5lbGVtZW50Lmxhc3RFbGVtZW50Q2hpbGQpLm92ZXJmbG93WSBpcyAic2Nyb2xs
IgotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1wYW5lbC90cmFja3MtcGFuZWwtcG9zaXRpb24tYW5kLXNpemUuaHRtbCBiL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXBv
c2l0aW9uLWFuZC1zaXplLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUyYTU3
NzVjMTAzNTVkOTQ1OTUxYmFmNWYzZjAzYzc2Y2FjNGE1NmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcG9zaXRpb24tYW5kLXNpemUuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDY3ICswLDAgQEAKLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9tZWRpYS1jb250cm9scy1sb2FkZXIuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9z
Y3JpcHQ+Ci08Ym9keT4KLTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+Ci0g
ICAgCi0gICAgLm1lZGlhLWNvbnRyb2xzIHsKLSAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwot
ICAgICAgICB0b3A6IDA7Ci0gICAgICAgIGxlZnQ6IDA7Ci0gICAgfQotICAgIAotPC9zdHlsZT4K
LTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOwotCi1kZXNjcmlwdGlvbigiVGVzdGluZyBwb3NpdGlvbmluZyBhbmQgc2l6aW5nIG9m
IHRoZSB0cmFja3MgcGFuZWwuIik7Ci0KLWNvbnN0IG1lZGlhQ29udHJvbHMgPSBuZXcgTWFjT1NJ
bmxpbmVNZWRpYUNvbnRyb2xzKHsgd2lkdGg6IDY4MCwgaGVpZ2h0OiAzMDAgfSk7Ci0KLW1lZGlh
Q29udHJvbHMudHJhY2tzUGFuZWwuZGF0YVNvdXJjZSA9IHsKLSAgICB0cmFja3NQYW5lbE51bWJl
ck9mU2VjdGlvbnM6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiAxOwotICAgIH0s
Ci0KLSAgICB0cmFja3NQYW5lbFRpdGxlRm9yU2VjdGlvbjogZnVuY3Rpb24oc2VjdGlvbkluZGV4
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGBUaXRsZWA7Ci0gICAgfSwKLQotICAgIHRyYWNrc1Bh
bmVsTnVtYmVyT2ZUcmFja3NJblNlY3Rpb246IGZ1bmN0aW9uKHNlY3Rpb25JbmRleCkKLSAgICB7
Ci0gICAgICAgIHJldHVybiAyMDsKLSAgICB9LAotCi0gICAgdHJhY2tzUGFuZWxUaXRsZUZvclRy
YWNrSW5TZWN0aW9uOiBmdW5jdGlvbih0cmFja0luZGV4LCBzZWN0aW9uSW5kZXgpCi0gICAgewot
ICAgICAgICByZXR1cm4gYFRyYWNrYDsKLSAgICB9LAotCi0gICAgdHJhY2tzUGFuZWxJc1RyYWNr
SW5TZWN0aW9uU2VsZWN0ZWQ6IGZ1bmN0aW9uKHRyYWNrSW5kZXgsIHNlY3Rpb25JbmRleCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci19OwotCi1kb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKG1lZGlhQ29udHJvbHMuZWxlbWVudCk7Ci0KLXNob3VsZEJlY29tZURpZmZlcmVu
dCgibWVkaWFDb250cm9scy50cmFja3NCdXR0b24uZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJl
Y3QoKS5yaWdodCIsICIwIiwgKCkgPT4gewotICAgIGRlYnVnKCJtZWRpYUNvbnRyb2xzLnNob3dU
cmFja3NQYW5lbCgpIik7Ci0gICAgbWVkaWFDb250cm9scy5zaG93VHJhY2tzUGFuZWwoKTsKLSAg
ICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKLSAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJtZWRpYUNvbnRyb2xzLnRyYWNrc1BhbmVsLmVsZW1lbnQuc3R5bGUucmln
aHQiLCAiMjJweCIpOwotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm1lZGlhQ29udHJv
bHMudHJhY2tzUGFuZWwuZWxlbWVudC5zdHlsZS5ib3R0b20iLCAiMzhweCIpOwotICAgICAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoImdldENvbXB1dGVkU3R5bGUobWVkaWFDb250cm9scy50cmFj
a3NQYW5lbC5lbGVtZW50KS5oZWlnaHQiLCAiMjUycHgiKTsKLSAgICAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJnZXRDb21wdXRlZFN0eWxlKG1lZGlhQ29udHJvbHMudHJhY2tzUGFuZWwuZWxl
bWVudC5sYXN0RWxlbWVudENoaWxkKS5oZWlnaHQiLCAiMjUycHgiKTsKLSAgICAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJnZXRDb21wdXRlZFN0eWxlKG1lZGlhQ29udHJvbHMudHJhY2tzUGFu
ZWwuZWxlbWVudC5sYXN0RWxlbWVudENoaWxkKS5vdmVyZmxvd1kiLCAic2Nyb2xsIik7Ci0gICAg
ICAgIGRlYnVnKCIiKTsKLSAgICAgICAgbWVkaWFDb250cm9scy5lbGVtZW50LnJlbW92ZSgpOwot
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICB9KTsKLX0pOwotCi08L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXByZXZlbnQtY29udHJvbHMtYmFyLWZyb20tZmFk
aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXByZXZlbnQtY29udHJvbHMtYmFyLWZyb20tZmFk
aW5nLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWMxOGExZWEy
MzY4MDMyNTBlMWNjYmJjNDdjZTAwNTM4YTE3NmIxMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wcmV2ZW50LWNvbnRyb2xzLWJhci1mcm9t
LWZhZGluZy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi1TaG93
aW5nIHRoZSB0cmFja3MgcGFuZWwgc2hvdWxkIHN1c3BlbmQgdGhlIGF1dG8taGlkZSBiZWhhdmlv
ciB1bnRpbCBpdCdzIGhpZGRlbi4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLW1l
ZGlhQ29udHJvbHMuc2hvd1RyYWNrc1BhbmVsKCkKLVBBU1MgbWVkaWFDb250cm9scy50cmFja3NQ
YW5lbC5lbGVtZW50LnBhcmVudE5vZGUgYmVjYW1lIG1lZGlhQ29udHJvbHMuZWxlbWVudAotCi1X
ZSd2ZSB3YWl0ZWQgbG9uZyBlbm91Z2ggc28gdGhhdCB0aGUgY29udHJvbHMgYmFyIHNob3VsZCBi
ZSBmYWRlZCBzaG91bGQgdGhlIHRyYWNrcyBwYW5lbCBub3QgYmUgdmlzaWJsZQotUEFTUyBtZWRp
YUNvbnRyb2xzLmZhZGVkIGlzIGZhbHNlCi0KLU5vdyBlbnRlciBhbmQgZXhpdCB0aGUgbWVkaWEg
Y29udHJvbHMsIHRoZSBjb250cm9scyBiYXIgc2hvdWxkIHJlbWFpbiB2aXNpYmxlCi1QQVNTIG1l
ZGlhQ29udHJvbHMuZmFkZWQgaXMgZmFsc2UKLQotbWVkaWFDb250cm9scy5oaWRlVHJhY2tzUGFu
ZWwoKQotUEFTUyBtZWRpYUNvbnRyb2xzLmZhZGVkIGJlY2FtZSB0cnVlCi0KLVBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1w
YW5lbC1wcmV2ZW50LWNvbnRyb2xzLWJhci1mcm9tLWZhZGluZy5odG1sIGIvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcHJl
dmVudC1jb250cm9scy1iYXItZnJvbS1mYWRpbmcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZjk2MGM0YTQ3MmNlMTYyZTk3ZTkzNWQ3ODA4MzY1ZDE5M2RhYjg2ZC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wcmV2ZW50
LWNvbnRyb2xzLWJhci1mcm9tLWZhZGluZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAs
MCBAQAotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLWxvYWRlci5q
cyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KLTxib2R5PgotPHN0eWxlIHR5cGU9
InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KLSAgICAKLSAgICAubWVkaWEtY29udHJvbHMgewot
ICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgICAgIHRvcDogMDsKLSAgICAgICAgbGVm
dDogMDsKLSAgICB9Ci0gICAgCi08L3N0eWxlPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJTaG93
aW5nIHRoZSB0cmFja3MgcGFuZWwgc2hvdWxkIHN1c3BlbmQgdGhlIGF1dG8taGlkZSBiZWhhdmlv
ciB1bnRpbCBpdCdzIGhpZGRlbi4iKTsKLQotY29uc3QgbWVkaWFDb250cm9scyA9IG5ldyBNYWNP
U0lubGluZU1lZGlhQ29udHJvbHMoeyB3aWR0aDogNjgwLCBoZWlnaHQ6IDMwMCB9KTsKLQotZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChtZWRpYUNvbnRyb2xzLmVsZW1lbnQpOwotCi1sZXQgdHJh
Y2tFbGVtZW50OwotCi1tZWRpYUNvbnRyb2xzLmF1dG9IaWRlQ29udHJvbGxlci5hdXRvSGlkZURl
bGF5ID0gMjUwOwotbWVkaWFDb250cm9scy5hdXRvSGlkZUNvbnRyb2xsZXIuZmFkZXNXaGlsZUlk
bGUgPSB0cnVlOwotCi1kZWJ1ZygibWVkaWFDb250cm9scy5zaG93VHJhY2tzUGFuZWwoKSIpOwot
bWVkaWFDb250cm9scy5zaG93VHJhY2tzUGFuZWwoKTsKLQotc2hvdWxkQmVjb21lRXF1YWwoIm1l
ZGlhQ29udHJvbHMudHJhY2tzUGFuZWwuZWxlbWVudC5wYXJlbnROb2RlIiwgIm1lZGlhQ29udHJv
bHMuZWxlbWVudCIsICgpID0+IHsKLSAgICAvLyBMZXQncyB3YWl0IGEgd2hpbGUgdG8gc2VlIHRo
YXQgdGhlIGNvbnRyb2xzIGJhciBpcyBzdGlsbCB2aXNpYmxlLgotICAgIHNldFRpbWVvdXQoKCkg
PT4gewotICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgIGRlYnVnKCJXZSd2ZSB3YWl0ZWQgbG9u
ZyBlbm91Z2ggc28gdGhhdCB0aGUgY29udHJvbHMgYmFyIHNob3VsZCBiZSBmYWRlZCBzaG91bGQg
dGhlIHRyYWNrcyBwYW5lbCBub3QgYmUgdmlzaWJsZSIpOwotICAgICAgICBzaG91bGRCZUZhbHNl
KCJtZWRpYUNvbnRyb2xzLmZhZGVkIik7Ci0KLSAgICAgICAgZGVidWcoIiIpOwotICAgICAgICBk
ZWJ1ZygiTm93IGVudGVyIGFuZCBleGl0IHRoZSBtZWRpYSBjb250cm9scywgdGhlIGNvbnRyb2xz
IGJhciBzaG91bGQgcmVtYWluIHZpc2libGUiKTsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VN
b3ZlVG8oNzAwLCAxMCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDY1MCwgMTAp
OwotICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg3MDAsIDEwKTsKLSAgICAgICAgc2hv
dWxkQmVGYWxzZSgibWVkaWFDb250cm9scy5mYWRlZCIpOwotCi0gICAgICAgIC8vIEFuZCBub3cg
ZGlzbWlzcyB0aGUgdHJhY2tzIHBhbmVsIGFuZCBjaGVjayB0aGF0IHRoZSBjb250cm9scyBiYXIK
LSAgICAgICAgLy8gZmFkZXMgb3V0IGFzIHdlbGwuCi0gICAgICAgIGRlYnVnKCIiKTsKLSAgICAg
ICAgZGVidWcoIm1lZGlhQ29udHJvbHMuaGlkZVRyYWNrc1BhbmVsKCkiKTsKLSAgICAgICAgbWVk
aWFDb250cm9scy5oaWRlVHJhY2tzUGFuZWwoKTsKLSAgICAgICAgc2hvdWxkQmVjb21lRXF1YWwo
Im1lZGlhQ29udHJvbHMuZmFkZWQiLCAidHJ1ZSIsICgpID0+IHsKLSAgICAgICAgICAgIGRlYnVn
KCIiKTsKLSAgICAgICAgICAgIG1lZGlhQ29udHJvbHMuZWxlbWVudC5yZW1vdmUoKTsKLSAgICAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9KTsKLSAgICB9LCBtZWRpYUNvbnRyb2xz
LmF1dG9IaWRlQ29udHJvbGxlci5hdXRvSGlkZURlbGF5KTsKLX0pOwotCi08L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
LTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXByZXZlbnQtZGVmYXVsdC1vbi1rZXlkb3du
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXByZXZlbnQtZGVmYXVsdC1vbi1rZXlkb3duLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDIxYmE2ZDk1ODA2YTlkODQx
ZThhZmViNTI1NzQ3Nzk1MDI5NDg0ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1wcmV2ZW50LWRlZmF1bHQtb24ta2V5ZG93bi1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1UZXN0aW5nIGEgVHJhY2tzUGFu
ZWwgY2FsbHMgcHJldmVudERlZmF1bHQoKSBvbiBldmVudHMgaXQgaGFuZGxlcy4KLQotT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLW1lZGlhQ29udHJvbHMuc2hvd1RyYWNrc1BhbmVsKCkK
LQotUHJlc3NpbmcgdGhlIEFycm93RG93biBrZXkKLVBBU1MgZXZlbnQuZGVmYXVsdFByZXZlbnRl
ZCBpcyB0cnVlCi1QcmVzc2luZyB0aGUgQXJyb3dSaWdodCBrZXkKLVBBU1MgZXZlbnQuZGVmYXVs
dFByZXZlbnRlZCBpcyBmYWxzZQotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0K
LVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcHJldmVudC1kZWZhdWx0LW9u
LWtleWRvd24uaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXByZXZlbnQtZGVmYXVsdC1vbi1rZXlkb3duLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmNWM5MDBhMGNjMzYyZTQ5MTE1MGEzZWJk
MmY1OTFmNGZkMzQ2MTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5l
bC90cmFja3MtcGFuZWwtcHJldmVudC1kZWZhdWx0LW9uLWtleWRvd24uaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDQwICswLDAgQEAKLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1j
b250cm9scy1sb2FkZXIuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08Ym9k
eSBzdHlsZT0iaGVpZ2h0OiAzMDAwcHgiPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
PgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJUZXN0aW5n
IGEgPGNvZGU+VHJhY2tzUGFuZWw8L2NvZGU+IGNhbGxzIHByZXZlbnREZWZhdWx0KCkgb24gZXZl
bnRzIGl0IGhhbmRsZXMuIik7Ci0KLWNvbnN0IG1lZGlhQ29udHJvbHMgPSBuZXcgTWFjT1NJbmxp
bmVNZWRpYUNvbnRyb2xzKHsgd2lkdGg6IDY4MCwgaGVpZ2h0OiAzMDAgfSk7Ci1kb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKG1lZGlhQ29udHJvbHMuZWxlbWVudCk7Ci0KLWRlYnVnKCJtZWRpYUNv
bnRyb2xzLnNob3dUcmFja3NQYW5lbCgpIik7Ci1tZWRpYUNvbnRyb2xzLnNob3dUcmFja3NQYW5l
bCgpOwotCi1zY2hlZHVsZXIuZnJhbWVEaWRGaXJlID0gZnVuY3Rpb24oKQotewotICAgIHdpbmRv
dy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewotICAgICAgICBkZWJ1ZygiIik7Ci0gICAg
ICAgIGRlYnVnKCJQcmVzc2luZyB0aGUgQXJyb3dEb3duIGtleSIpOwotICAgICAgICBldmVudFNl
bmRlci5rZXlEb3duKCJBcnJvd0Rvd24iKTsKLSAgICAgICAgZGVidWcoIlByZXNzaW5nIHRoZSBB
cnJvd1JpZ2h0IGtleSIpOwotICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJBcnJvd1JpZ2h0
Iik7Ci0gICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgbWVkaWFDb250cm9scy5lbGVtZW50LnJl
bW92ZSgpOwotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICB9KTsKLSAgICBzY2hlZHVsZXIu
ZnJhbWVEaWRGaXJlID0gbnVsbDsKLX0KLQotZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVy
KCJrZXlkb3duIiwgZXZlbnQgPT4gewotICAgIGlmIChldmVudC5rZXkgPT09ICJBcnJvd1JpZ2h0
IikKLSAgICAgICAgc2hvdWxkQmVGYWxzZSgiZXZlbnQuZGVmYXVsdFByZXZlbnRlZCIpOwotICAg
IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gIkFycm93RG93biIpCi0gICAgICAgIHNob3VsZEJlVHJ1
ZSgiZXZlbnQuZGVmYXVsdFByZXZlbnRlZCIpOwotfSk7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1wYW5lbC90cmFja3MtcGFuZWwtcmlnaHQteC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1y
aWdodC14LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjQ1MzM3
MTVmODlhOTQyYzdkMTI1YmU3YjAyMzA0NmRkMzQ5NDczYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1yaWdodC14LWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLVRlc3RpbmcgdGhlIFRyYWNrc1BhbmVsIGNs
YXNzLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotdHJhY2tzUGFuZWwucmlnaHRY
ID0gMTAKLVBBU1MgdHJhY2tzUGFuZWwuZWxlbWVudC5zdHlsZS5yaWdodCBpcyAiMTBweCIKLQot
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFu
ZWwvdHJhY2tzLXBhbmVsLXJpZ2h0LXguaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXJpZ2h0LXguaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2FiNzFlMmFjZjFmYjczZTU3YjI2YmFmYTBkMWEw
MWYwYzI0MTM2OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3Ry
YWNrcy1wYW5lbC1yaWdodC14Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtbG9hZGVyLmpzIiB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9t
ZWRpYS1jb250cm9scy11dGlscy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4K
LTxib2R5PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0
SXNBc3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJUZXN0aW5nIHRoZSA8Y29kZT5UcmFja3NQ
YW5lbDwvY29kZT4gY2xhc3MuIik7Ci0KLWNvbnN0IHRyYWNrc1BhbmVsID0gbmV3IFRyYWNrc1Bh
bmVsOwotCi10cmFja3NQYW5lbC5yaWdodFggPSAxMDsKLWRlYnVnKCJ0cmFja3NQYW5lbC5yaWdo
dFggPSAxMCIpOwotCi1zY2hlZHVsZXIuZnJhbWVEaWRGaXJlID0gZnVuY3Rpb24oKQotewotICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygidHJhY2tzUGFuZWwuZWxlbWVudC5zdHlsZS5yaWdodCIs
ICIxMHB4Iik7Ci0KLSAgICBkZWJ1ZygiIik7Ci0gICAgZmluaXNoTWVkaWFDb250cm9sc1Rlc3Qo
KTsKLX07Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtc2Vs
ZWN0LXRyYWNrLXdpdGgta2V5Ym9hcmQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtc2VsZWN0LXRy
YWNrLXdpdGgta2V5Ym9hcmQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBjODUyMzQxYzVhZDIyYzJlYmEyMzAwODdhYTYzOTkyOGVkYTFjNTIyLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXNlbGVjdC10cmFj
ay13aXRoLWtleWJvYXJkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAg
QEAKLVNlbGVjdGluZyBhIHRyYWNrIGluIGEgVHJhY2tzUGFuZWwgd2l0aCB0aGUga2V5Ym9hcmQu
Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1tZWRpYUNvbnRyb2xzLnNob3dUcmFj
a3NQYW5lbCgpCi0KLUZvY3VzaW5nIHRoZSBzZWNvbmQgdHJhY2sgYnkgcHJlc3NpbmcgdGhlIGRv
d24gYXJyb3cga2V5IHR3aWNlCi1PYnRhaW5lZCBmb2N1cyBldmVudAotCi1BY3RpdmF0aW5nIHRo
ZSBmb2N1c2VkIHRyYWNrIGJ5IHByZXNzaW5nIHRoZSBFbnRlciBrZXkKLW1lZGlhQ29udHJvbHMu
dHJhY2tzUGFuZWwudWlEZWxlZ2F0ZS50cmFja3NQYW5lbFNlbGVjdGlvbkRpZENoYW5nZSgpIGNh
bGxlZAotc2VjdGlvbkluZGV4ID0gMAotdHJhY2tJbmRleCA9IDEKLQotUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVs
LXNlbGVjdC10cmFjay13aXRoLWtleWJvYXJkLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1zZWxlY3QtdHJhY2st
d2l0aC1rZXlib2FyZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMTRiYzM3
YThiNzE1MjY3NTQzNmQ3OGUzN2JiMmQ0ODYyYTkzZmY1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXNlbGVjdC10cmFjay13aXRoLWtleWJv
YXJkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5MSArMCwwIEBACi08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtbG9hZGVyLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPjwvc2NyaXB0PgotPGJvZHk+Ci08c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3Jl
ZW4iPgotICAgIAotICAgIC5tZWRpYS1jb250cm9scyB7Ci0gICAgICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKLSAgICAgICAgdG9wOiAwOwotICAgICAgICBsZWZ0OiAwOwotICAgIH0KLSAgICAKLTwv
c3R5bGU+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oIlNlbGVjdGluZyBhIHRyYWNrIGluIGEgPGNv
ZGU+VHJhY2tzUGFuZWw8L2NvZGU+IHdpdGggdGhlIGtleWJvYXJkLiIpOwotCi1jb25zdCBtZWRp
YUNvbnRyb2xzID0gbmV3IE1hY09TSW5saW5lTWVkaWFDb250cm9scyh7IHdpZHRoOiA2ODAsIGhl
aWdodDogMzAwIH0pOwotCi1tZWRpYUNvbnRyb2xzLnRyYWNrc1BhbmVsLmRhdGFTb3VyY2UgPSB7
Ci0gICAgdHJhY2tzUGFuZWxOdW1iZXJPZlNlY3Rpb25zOiBmdW5jdGlvbigpCi0gICAgewotICAg
ICAgICByZXR1cm4gMTsKLSAgICB9LAotCi0gICAgdHJhY2tzUGFuZWxUaXRsZUZvclNlY3Rpb246
IGZ1bmN0aW9uKHNlY3Rpb25JbmRleCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBgVGl0bGVgOwot
ICAgIH0sCi0KLSAgICB0cmFja3NQYW5lbE51bWJlck9mVHJhY2tzSW5TZWN0aW9uOiBmdW5jdGlv
bihzZWN0aW9uSW5kZXgpCi0gICAgewotICAgICAgICByZXR1cm4gMzsKLSAgICB9LAotCi0gICAg
dHJhY2tzUGFuZWxUaXRsZUZvclRyYWNrSW5TZWN0aW9uOiBmdW5jdGlvbih0cmFja0luZGV4LCBz
ZWN0aW9uSW5kZXgpCi0gICAgewotICAgICAgICByZXR1cm4gYFRyYWNrYDsKLSAgICB9LAotCi0g
ICAgdHJhY2tzUGFuZWxJc1RyYWNrSW5TZWN0aW9uU2VsZWN0ZWQ6IGZ1bmN0aW9uKHRyYWNrSW5k
ZXgsIHNlY3Rpb25JbmRleCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci19
OwotCi1tZWRpYUNvbnRyb2xzLnRyYWNrc1BhbmVsLnVpRGVsZWdhdGUgPSB7Ci0gICAgdHJhY2tz
UGFuZWxTZWxlY3Rpb25EaWRDaGFuZ2U6IGZ1bmN0aW9uKHRyYWNrSW5kZXgsIHNlY3Rpb25JbmRl
eCkKLSAgICB7Ci0gICAgICAgIGRlYnVnKCJtZWRpYUNvbnRyb2xzLnRyYWNrc1BhbmVsLnVpRGVs
ZWdhdGUudHJhY2tzUGFuZWxTZWxlY3Rpb25EaWRDaGFuZ2UoKSBjYWxsZWQiKTsKLSAgICAgICAg
ZGVidWcoYHNlY3Rpb25JbmRleCA9ICR7c2VjdGlvbkluZGV4fWApOwotICAgICAgICBkZWJ1Zyhg
dHJhY2tJbmRleCA9ICR7dHJhY2tJbmRleH1gKTsKLQotICAgICAgICBkZWJ1ZygiIik7Ci0gICAg
ICAgIG1lZGlhQ29udHJvbHMuZWxlbWVudC5yZW1vdmUoKTsKLSAgICAgICAgZmluaXNoSlNUZXN0
KCk7Ci0gICAgfQotfTsKLQotZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChtZWRpYUNvbnRyb2xz
LmVsZW1lbnQpOwotCi1sZXQgdHJhY2tFbGVtZW50OwotCi1kZWJ1ZygibWVkaWFDb250cm9scy5z
aG93VHJhY2tzUGFuZWwoKSIpOwotbWVkaWFDb250cm9scy5zaG93VHJhY2tzUGFuZWwoKTsKLQot
c2NoZWR1bGVyLmZyYW1lRGlkRmlyZSA9IGZ1bmN0aW9uKCkKLXsKLSAgICB3aW5kb3cucmVxdWVz
dEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKLSAgICAgICAgZGVidWcoIiIpOwotICAgICAgICBkZWJ1
ZygiRm9jdXNpbmcgdGhlIHNlY29uZCB0cmFjayBieSBwcmVzc2luZyB0aGUgZG93biBhcnJvdyBr
ZXkgdHdpY2UiKTsKLQotICAgICAgICB0cmFja0VsZW1lbnQgPSBtZWRpYUNvbnRyb2xzLnRyYWNr
c1BhbmVsLmVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgibGkiKVsxXTsKLSAgICAgICAgdHJhY2tF
bGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgKCkgPT4gewotICAgICAgICAgICAgZGVi
dWcoIk9idGFpbmVkIGZvY3VzIGV2ZW50Iik7Ci0KLSAgICAgICAgICAgIGRlYnVnKCIiKTsKLSAg
ICAgICAgICAgIGRlYnVnKCJBY3RpdmF0aW5nIHRoZSBmb2N1c2VkIHRyYWNrIGJ5IHByZXNzaW5n
IHRoZSBFbnRlciBrZXkiKTsKLSAgICAgICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJh
bWUoKCkgPT4gZXZlbnRTZW5kZXIua2V5RG93bigiRW50ZXIiKSk7Ci0gICAgICAgIH0pOwotCi0g
ICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oIkFycm93RG93biIpOwotICAgICAgICBldmVudFNl
bmRlci5rZXlEb3duKCJBcnJvd0Rvd24iKTsKLSAgICB9KTsKLSAgICBzY2hlZHVsZXIuZnJhbWVE
aWRGaXJlID0gbnVsbDsKLX0KLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNr
cy1wYW5lbC1zZWxlY3QtdHJhY2std2l0aC1tb3VzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1z
ZWxlY3QtdHJhY2std2l0aC1tb3VzZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGM4MmIxOThjMzI5MmQwNzI5NjA4ZjRiMTM4YjVlM2EwMTBkMjU1YWMuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtc2VsZWN0
LXRyYWNrLXdpdGgtbW91c2UtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAs
MCBAQAotU2VsZWN0aW5nIGEgdHJhY2sgaW4gYSBUcmFja3NQYW5lbCB3aXRoIHRoZSBtb3VzZS4K
LQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgbWVkaWFDb250cm9scy50cmFj
a3NCdXR0b24uZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCBiZWNhbWUgZGlm
ZmVyZW50IGZyb20gMAotbWVkaWFDb250cm9scy5zaG93VHJhY2tzUGFuZWwoKQotCi1Nb3VzaW5n
IG92ZXIgdGhlIHNlY29uZCB0cmFjayBpbiB0aGUgcGFuZWwKLU9idGFpbmVkIGZvY3VzIGV2ZW50
Ci0KLUNsaWNraW5nIG9uIGZvY3VzZWQgdHJhY2sKLW1lZGlhQ29udHJvbHMudHJhY2tzUGFuZWwu
dWlEZWxlZ2F0ZS50cmFja3NQYW5lbFNlbGVjdGlvbkRpZENoYW5nZSgpIGNhbGxlZAotc2VjdGlv
bkluZGV4ID0gMAotdHJhY2tJbmRleCA9IDEKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXNlbGVjdC10cmFj
ay13aXRoLW1vdXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC1zZWxlY3QtdHJhY2std2l0aC1tb3VzZS5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZTM4YjEzYmFiMzU0YWIxMmY1NzU0MjQw
MWJkNDQ5OWU4Y2M4NDMwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFu
ZWwvdHJhY2tzLXBhbmVsLXNlbGVjdC10cmFjay13aXRoLW1vdXNlLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSw5MCArMCwwIEBACi08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEtY29u
dHJvbHMtbG9hZGVyLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPGJvZHk+
Ci08c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgotICAgIAotICAgIC5tZWRp
YS1jb250cm9scyB7Ci0gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICAgICAgdG9wOiAw
OwotICAgICAgICBsZWZ0OiAwOwotICAgIH0KLSAgICAKLTwvc3R5bGU+Ci08c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVz
Y3JpcHRpb24oIlNlbGVjdGluZyBhIHRyYWNrIGluIGEgPGNvZGU+VHJhY2tzUGFuZWw8L2NvZGU+
IHdpdGggdGhlIG1vdXNlLiIpOwotCi1jb25zdCBtZWRpYUNvbnRyb2xzID0gbmV3IE1hY09TSW5s
aW5lTWVkaWFDb250cm9scyh7IHdpZHRoOiA2ODAsIGhlaWdodDogMzAwIH0pOwotCi1tZWRpYUNv
bnRyb2xzLnRyYWNrc1BhbmVsLmRhdGFTb3VyY2UgPSB7Ci0gICAgdHJhY2tzUGFuZWxOdW1iZXJP
ZlNlY3Rpb25zOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICByZXR1cm4gMTsKLSAgICB9LAot
Ci0gICAgdHJhY2tzUGFuZWxUaXRsZUZvclNlY3Rpb246IGZ1bmN0aW9uKHNlY3Rpb25JbmRleCkK
LSAgICB7Ci0gICAgICAgIHJldHVybiBgVGl0bGVgOwotICAgIH0sCi0KLSAgICB0cmFja3NQYW5l
bE51bWJlck9mVHJhY2tzSW5TZWN0aW9uOiBmdW5jdGlvbihzZWN0aW9uSW5kZXgpCi0gICAgewot
ICAgICAgICByZXR1cm4gMzsKLSAgICB9LAotCi0gICAgdHJhY2tzUGFuZWxUaXRsZUZvclRyYWNr
SW5TZWN0aW9uOiBmdW5jdGlvbih0cmFja0luZGV4LCBzZWN0aW9uSW5kZXgpCi0gICAgewotICAg
ICAgICByZXR1cm4gYFRyYWNrYDsKLSAgICB9LAotCi0gICAgdHJhY2tzUGFuZWxJc1RyYWNrSW5T
ZWN0aW9uU2VsZWN0ZWQ6IGZ1bmN0aW9uKHRyYWNrSW5kZXgsIHNlY3Rpb25JbmRleCkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci19OwotCi1tZWRpYUNvbnRyb2xzLnRyYWNr
c1BhbmVsLnVpRGVsZWdhdGUgPSB7Ci0gICAgdHJhY2tzUGFuZWxTZWxlY3Rpb25EaWRDaGFuZ2U6
IGZ1bmN0aW9uKHRyYWNrSW5kZXgsIHNlY3Rpb25JbmRleCkKLSAgICB7Ci0gICAgICAgIGRlYnVn
KCJtZWRpYUNvbnRyb2xzLnRyYWNrc1BhbmVsLnVpRGVsZWdhdGUudHJhY2tzUGFuZWxTZWxlY3Rp
b25EaWRDaGFuZ2UoKSBjYWxsZWQiKTsKLSAgICAgICAgZGVidWcoYHNlY3Rpb25JbmRleCA9ICR7
c2VjdGlvbkluZGV4fWApOwotICAgICAgICBkZWJ1ZyhgdHJhY2tJbmRleCA9ICR7dHJhY2tJbmRl
eH1gKTsKLQotICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgIG1lZGlhQ29udHJvbHMuZWxlbWVu
dC5yZW1vdmUoKTsKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgfQotfTsKLQotZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChtZWRpYUNvbnRyb2xzLmVsZW1lbnQpOwotCi1sZXQgdHJhY2tF
bGVtZW50OwotCi1zaG91bGRCZWNvbWVEaWZmZXJlbnQoIm1lZGlhQ29udHJvbHMudHJhY2tzQnV0
dG9uLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQiLCAiMCIsICgpID0+IHsK
LSAgICBkZWJ1ZygibWVkaWFDb250cm9scy5zaG93VHJhY2tzUGFuZWwoKSIpOwotICAgIG1lZGlh
Q29udHJvbHMuc2hvd1RyYWNrc1BhbmVsKCk7Ci0KLSAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlv
bkZyYW1lKCgpID0+IHsKLSAgICAgICAgZGVidWcoIiIpOwotICAgICAgICBkZWJ1ZygiTW91c2lu
ZyBvdmVyIHRoZSBzZWNvbmQgdHJhY2sgaW4gdGhlIHBhbmVsIik7Ci0KLSAgICAgICAgdHJhY2tF
bGVtZW50ID0gbWVkaWFDb250cm9scy50cmFja3NQYW5lbC5lbGVtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwoImxpIilbMV07Ci0gICAgICAgIHRyYWNrRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJmb2N1
cyIsICgpID0+IHsKLSAgICAgICAgICAgIGRlYnVnKCJPYnRhaW5lZCBmb2N1cyBldmVudCIpOwot
Ci0gICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICBkZWJ1ZygiQ2xpY2tpbmcgb24g
Zm9jdXNlZCB0cmFjayIpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0g
ICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci0gICAgICAgIH0pOwotCi0gICAgICAg
IGNvbnN0IGJvdW5kcyA9IHRyYWNrRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYm91bmRzLmxlZnQgKyAxLCBib3VuZHMudG9w
ICsgMSk7Ci0gICAgfSk7Ci19KTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3Ry
YWNrcy1wYW5lbC11cC1jbGljay1vdXRzaWRlLW1lZGlhLWRvZXMtbm90LWRpbWlzcy1tZWRpYS1j
b250cm9scy13aGVuLW1lZGlhLWlzLXBhdXNlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC11cC1j
bGljay1vdXRzaWRlLW1lZGlhLWRvZXMtbm90LWRpbWlzcy1tZWRpYS1jb250cm9scy13aGVuLW1l
ZGlhLWlzLXBhdXNlZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDEzOTdlYzE0MDJlZGY0YjRhNDkyMmY4ZTBkNWI0NGYyYmFkYzEyOWMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtdXAtY2xpY2stb3V0c2lk
ZS1tZWRpYS1kb2VzLW5vdC1kaW1pc3MtbWVkaWEtY29udHJvbHMtd2hlbi1tZWRpYS1pcy1wYXVz
ZWQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotQ2xpY2tpbmcg
b3V0c2lkZSB0aGUgbWVkaWEgd2hlbiB0aGUgdHJhY2tzIHBhbmVsIGlzIHVwIHNob3VsZCBkaXNt
aXNzIHRoZSB0cmFja3MgcGFuZWwgYnV0IG5vdCB0aGUgbWVkaWEgY29udHJvbHMuCi0KLU9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1NZWRpYSBzdGFydGVkIHBsYXlpbmcgYW5kIHdhcyBw
YXVzZWQuCi0KLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykg
YmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggYmVjYW1lIGRp
ZmZlcmVudCBmcm9tIDAKLT0+IFRyYWNrcyBidXR0b24gaXMgdmlzaWJsZS4KLQotUHJlc3Npbmcg
b24gdGhlIHRyYWNrcyBidXR0b24uCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRy
YWNrcy1wYW5lbCcpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCi09PiBUcmFja3MgcGFuZWwg
aXMgdmlzaWJsZS4KLQotQ2xpY2tpbmcgb3V0c2lkZSB0aGUgbWVkaWEgdG8gZGlzbWlzcyB0aGUg
dHJhY2tzIHBhbmVsLgotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5tZWRpYS1jb250
cm9scycpLmNsYXNzTGlzdC5jb250YWlucygnZmFkZWQnKSBpcyBmYWxzZQotUEFTUyBzaGFkb3dS
b290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5jbGFzc0xpc3QuY29udGFpbnMoJ2Zh
ZGUtb3V0JykgaXMgdHJ1ZQotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRF
U1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtdXAtY2xpY2stb3V0c2lkZS1tZWRp
YS1kb2VzLW5vdC1kaW1pc3MtbWVkaWEtY29udHJvbHMtd2hlbi1tZWRpYS1pcy1wYXVzZWQuaHRt
bCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwv
dHJhY2tzLXBhbmVsLXVwLWNsaWNrLW91dHNpZGUtbWVkaWEtZG9lcy1ub3QtZGltaXNzLW1lZGlh
LWNvbnRyb2xzLXdoZW4tbWVkaWEtaXMtcGF1c2VkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGIwZjI1YjIwMDZmNmZjOWU2ZjZiMjM0NDY4ZTU4ZDA4MTIzMjA2ZTMuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwtdXAtY2xp
Y2stb3V0c2lkZS1tZWRpYS1kb2VzLW5vdC1kaW1pc3MtbWVkaWEtY29udHJvbHMtd2hlbi1tZWRp
YS1pcy1wYXVzZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyIgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij48L3NjcmlwdD4KLTxib2R5PgotPHZpZGVvIHNyYz0iLi4vLi4vY29udGVudC9D
QytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMHB4OyB0
b3A6IDEwcHg7IHdpZHRoOiA2NDBweDsgaGVpZ2h0OiAzNjBweDsiIGNvbnRyb2xzIGF1dG9wbGF5
PjwvdmlkZW8+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXdpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oIkNsaWNraW5nIG91dHNpZGUgdGhlIG1l
ZGlhIHdoZW4gdGhlIHRyYWNrcyBwYW5lbCBpcyB1cCBzaG91bGQgZGlzbWlzcyB0aGUgdHJhY2tz
IHBhbmVsIGJ1dCBub3QgdGhlIG1lZGlhIGNvbnRyb2xzLiIpOwotCi1jb25zdCBtZWRpYSA9IGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Ci1jb25zdCBzaGFkb3dSb290ID0gd2luZG93
LmludGVybmFscy5zaGFkb3dSb290KG1lZGlhKTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigi
cGxheSIsICgpID0+IHsKLSAgICBtZWRpYS5wYXVzZSgpOwotCi0gICAgZGVidWcoIk1lZGlhIHN0
YXJ0ZWQgcGxheWluZyBhbmQgd2FzIHBhdXNlZC4iKTsKLSAgICBkZWJ1ZygiIik7Ci0gICAgc2hv
d1RyYWNrc1BhbmVsKHNoYWRvd1Jvb3QsICgpID0+IHsKLSAgICAgICAgZGVidWcoIkNsaWNraW5n
IG91dHNpZGUgdGhlIG1lZGlhIHRvIGRpc21pc3MgdGhlIHRyYWNrcyBwYW5lbC4iKTsKLSAgICAg
ICAgcHJlc3NBdFBvaW50KDUsIDUsICgpID0+IHsKLSAgICAgICAgICAgIHJlcXVlc3RBbmltYXRp
b25GcmFtZSgoKSA9PiB7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgic2hhZG93Um9v
dC5xdWVyeVNlbGVjdG9yKCcubWVkaWEtY29udHJvbHMnKS5jbGFzc0xpc3QuY29udGFpbnMoJ2Zh
ZGVkJykiKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZVRydWUoInNoYWRvd1Jvb3QucXVlcnlT
ZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpLmNsYXNzTGlzdC5jb250YWlucygnZmFkZS1vdXQnKSIp
OwotICAgICAgICAgICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0pOwotCi08L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBhbmVsLXVwLWNsaWNrLW92ZXItbWVk
aWEtZG9lcy1ub3QtZGltaXNzLW1lZGlhLWNvbnRyb2xzLXdoZW4tbWVkaWEtaXMtcGxheWluZy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXBhbmVsL3RyYWNrcy1wYW5lbC11cC1jbGljay1vdmVyLW1lZGlhLWRvZXMtbm90LWRpbWlz
cy1tZWRpYS1jb250cm9scy13aGVuLW1lZGlhLWlzLXBsYXlpbmctZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMDRhN2UyNzJkZGM1ZjEzZDQ0MmVjNTZhZTgyZDY4
MTU1ZTIxMjY4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJh
Y2tzLXBhbmVsLXVwLWNsaWNrLW92ZXItbWVkaWEtZG9lcy1ub3QtZGltaXNzLW1lZGlhLWNvbnRy
b2xzLXdoZW4tbWVkaWEtaXMtcGxheWluZy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwyMyArMCwwIEBACi1DbGlja2luZyBvdmVyIHRoZSBtZWRpYSB3aGVuIHRoZSB0cmFja3MgcGFu
ZWwgaXMgdXAgYW5kIHRoZSBtZWRpYSBpcyBwbGF5aW5nIHNob3VsZCBkaXNtaXNzIHRoZSB0cmFj
a3MgcGFuZWwgYnV0IG5vdCB0aGUgbWVkaWEgY29udHJvbHMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KLQotCi1NZWRpYSBzdGFydGVkIHBsYXlpbmcuCi0KLVBBU1Mgc2hhZG93Um9vdC5x
dWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwK
LVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KCkud2lkdGggYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKLT0+IFRyYWNrcyBi
dXR0b24gaXMgdmlzaWJsZS4KLQotUHJlc3Npbmcgb24gdGhlIHRyYWNrcyBidXR0b24uCi1QQVNT
IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpIGJlY2FtZSBkaWZmZXJl
bnQgZnJvbSBudWxsCi09PiBUcmFja3MgcGFuZWwgaXMgdmlzaWJsZS4KLQotQ2xpY2tpbmcgb3Zl
ciB0aGUgbWVkaWEgdG8gZGlzbWlzcyB0aGUgdHJhY2tzIHBhbmVsLgotUEFTUyBzaGFkb3dSb290
LnF1ZXJ5U2VsZWN0b3IoJy5tZWRpYS1jb250cm9scycpLmNsYXNzTGlzdC5jb250YWlucygnZmFk
ZWQnKSBpcyBmYWxzZQotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFu
ZWwnKS5jbGFzc0xpc3QuY29udGFpbnMoJ2ZhZGUtb3V0JykgaXMgdHJ1ZQotCi1QQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3Mt
cGFuZWwtdXAtY2xpY2stb3Zlci1tZWRpYS1kb2VzLW5vdC1kaW1pc3MtbWVkaWEtY29udHJvbHMt
d2hlbi1tZWRpYS1pcy1wbGF5aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXBhbmVsL3RyYWNrcy1wYW5lbC11cC1jbGljay1vdmVyLW1lZGlh
LWRvZXMtbm90LWRpbWlzcy1tZWRpYS1jb250cm9scy13aGVuLW1lZGlhLWlzLXBsYXlpbmcuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTYyM2ZkZDFmMTA1ZWY4MTUyZWRkYzg1
NDdlYTI1NmI2OGFjNThmYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBh
bmVsL3RyYWNrcy1wYW5lbC11cC1jbGljay1vdmVyLW1lZGlhLWRvZXMtbm90LWRpbWlzcy1tZWRp
YS1jb250cm9scy13aGVuLW1lZGlhLWlzLXBsYXlpbmcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDMyICswLDAgQEAKLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11
dGlscy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KLTxib2R5PgotPHZpZGVv
IHNyYz0iLi4vLi4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246IGFi
c29sdXRlOyBsZWZ0OiAxMHB4OyB0b3A6IDEwcHg7IHdpZHRoOiA2NDBweDsgaGVpZ2h0OiAzNjBw
eDsiIGNvbnRyb2xzIGF1dG9wbGF5PjwvdmlkZW8+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oIkNs
aWNraW5nIG92ZXIgdGhlIG1lZGlhIHdoZW4gdGhlIHRyYWNrcyBwYW5lbCBpcyB1cCBhbmQgdGhl
IG1lZGlhIGlzIHBsYXlpbmcgc2hvdWxkIGRpc21pc3MgdGhlIHRyYWNrcyBwYW5lbCBidXQgbm90
IHRoZSBtZWRpYSBjb250cm9scy4iKTsKLQotY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hh
ZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7
Ci0gICAgZGVidWcoIk1lZGlhIHN0YXJ0ZWQgcGxheWluZy4iKTsKLSAgICBkZWJ1ZygiIik7Ci0g
ICAgc2hvd1RyYWNrc1BhbmVsKHNoYWRvd1Jvb3QsICgpID0+IHsKLSAgICAgICAgZGVidWcoIkNs
aWNraW5nIG92ZXIgdGhlIG1lZGlhIHRvIGRpc21pc3MgdGhlIHRyYWNrcyBwYW5lbC4iKTsKLSAg
ICAgICAgcHJlc3NBdFBvaW50KDExLCAxMSwgKCkgPT4gewotICAgICAgICAgICAgcmVxdWVzdEFu
aW1hdGlvbkZyYW1lKCgpID0+IHsKLSAgICAgICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJzaGFk
b3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5tZWRpYS1jb250cm9scycpLmNsYXNzTGlzdC5jb250YWlu
cygnZmFkZWQnKSIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgic2hhZG93Um9vdC5x
dWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykuY2xhc3NMaXN0LmNvbnRhaW5zKCdmYWRlLW91
dCcpIik7Ci0gICAgICAgICAgICAgICAgZGVidWcoIiIpOwotICAgICAgICAgICAgICAgIGZpbmlz
aEpTVGVzdCgpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotfSk7Ci0K
LTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1wYW5lbC90cmFja3MtcGFuZWwuaHRtbCBiL0xheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtcGFuZWwvdHJhY2tzLXBh
bmVsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRhMTdiYmFlNzMzYThhNWY4
MTg2NzhiZDA4Y2Q4MGI1Yjk5YmFkNTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1wYW5lbC90cmFja3MtcGFuZWwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAg
QEAKLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy1sb2FkZXIuanMi
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08Ym9keT4KLTxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KLQotZGVzY3JpcHRpb24oIlRlc3RpbmcgdGhlIDxjb2RlPlRyYWNr
c1BhbmVsPC9jb2RlPiBjbGFzcyBwcm9wZXJ0aWVzLiIpOwotCi1jb25zdCB0cmFja3NQYW5lbCA9
IG5ldyBUcmFja3NQYW5lbDsKLQotZGVidWcoIkJhc2ljIHByb3BlcnRpZXMiKTsKLXNob3VsZEJl
RXF1YWxUb1N0cmluZygidHJhY2tzUGFuZWwuZWxlbWVudC5sb2NhbE5hbWUiLCAiZGl2Iik7Ci1z
aG91bGRCZUVxdWFsVG9TdHJpbmcoInRyYWNrc1BhbmVsLmVsZW1lbnQuY2xhc3NOYW1lIiwgInRy
YWNrcy1wYW5lbCIpOwotc2hvdWxkQmVGYWxzZSgidHJhY2tzUGFuZWwucHJlc2VudGVkIik7Ci1z
aG91bGRCZSgidHJhY2tzUGFuZWwucmlnaHRYIiwgIjAiKTsKLQotZGVidWcoIiIpOwotCi08L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9hdXRvLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L2F1dG8tdGV4dC10cmFjay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTY3Y2E2ZTAwYjYzNWQx
MGJhMWY3NDk5NjE3YzAwMjMwZWQ5NmIxYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9hdXRvLXRleHQtdHJh
Y2stZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK0Vuc3VyZSB3ZSBoYXZlIHRoZSBBdXRv
IHRleHQgdHJhY2sgc2VsZWN0ZWQgYnkgZGVmYXVsdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykg
YmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKK1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggYmVjYW1lIGRp
ZmZlcmVudCBmcm9tIDAKK1NldHRpbmcgY2FwdGlvbiBkaXNwbGF5IG1vZGUgdG8gJ2F1dG9tYXRp
YycuLi4KK1RhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLgorUEFTUyBjaGVja2VkSXRlbXMubGVuZ3Ro
IGlzIDEKK1BBU1MgY2hlY2tlZEl0ZW1zWzBdLnRpdGxlIGlzICJBdXRvIChSZWNvbW1lbmRlZCki
CitTZXR0aW5nIGNhcHRpb24gZGlzcGxheSBtb2RlIHRvICdmb3JjZWRvbmx5Jy4uLgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9h
dXRvLXRleHQtdHJhY2suaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9hdXRvLXRleHQtdHJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kM2Nm
MjQ4NmNiM2QxODg4MTE4ZjJlZGRlNjYzZWQ4ZWE2MjE5MzUzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2F1
dG8tdGV4dC10cmFjay5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxib2R5PgorPHZpZGVvIHNyYz0iLi4vLi4vY29udGVudC9jb3VudGluZy1zdWJ0aXRsZWQu
bTR2IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiA0
MDBweDsiIGF1dG9wbGF5IGNvbnRyb2xzIG11dGVkIHBsYXlzaW5saW5lPjwvdmlkZW8+Cis8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKworZGVzY3JpcHRpb24oIkVuc3VyZSB3ZSBoYXZlIHRoZSBBdXRvIHRleHQgdHJhY2sgc2Vs
ZWN0ZWQgYnkgZGVmYXVsdC4iKTsKKworY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yKCJ2aWRlbyIpOworY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93
Um9vdChtZWRpYSk7CisKK2xldCBjaGVja2VkSXRlbXMgPSBudWxsOworCittZWRpYS5hZGRFdmVu
dExpc3RlbmVyKCJwbGF5IiwgKCkgPT4geworICAgIG1lZGlhLnBhdXNlKCk7CisKKyAgICBzaG91
bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNr
cycpIiwgIm51bGwiLCAoKSA9PiB7CisgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hh
ZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCkud2lkdGgiLCAiMCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGRlYnVnKCJTZXR0
aW5nIGNhcHRpb24gZGlzcGxheSBtb2RlIHRvICdhdXRvbWF0aWMnLi4uIik7CisgICAgICAgICAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldENhcHRpb25EaXNwbGF5TW9kZSgiYXV0b21hdGljIik7CisK
KyAgICAgICAgICAgIGRlYnVnKCJUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4iKTsKKyAgICAgICAg
ICAgIGxldCBbY29udGV4dG1lbnVdID0gYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAg
ICAgIGdldFRyYWNrc0NvbnRleHRNZW51KCksCisgICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1l
bnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpLAorICAgICAgICAg
ICAgXSk7CisgICAgICAgICAgICBsZXQgc3VidGl0bGVzTWVudSA9IGNvbnRleHRtZW51WzBdLmNo
aWxkcmVuLmZpbmQoKHN1Ym1lbnUpID0+IHN1Ym1lbnUudGl0bGUgPT09ICJTdWJ0aXRsZXMiKTsK
KyAgICAgICAgICAgIGlmIChzdWJ0aXRsZXNNZW51LmNoaWxkcmVuPy5sZW5ndGgpIHsKKyAgICAg
ICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5jaG9vc2VNZW51QWN0aW9uKHN1YnRpdGxlc01lbnUu
dGl0bGUpOworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmRlbGF5Rm9yKDUwMCk7IC8v
IGdpdmUgdGltZSBmb3IgdGhlIFVJTWVudSB0byBhbmltYXRlCisgICAgICAgICAgICAgICAgY29u
dGV4dG1lbnUgPSBbc3VidGl0bGVzTWVudV07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBj
aGVja2VkSXRlbXMgPSBjb250ZXh0bWVudVswXS5jaGlsZHJlbi5maWx0ZXIoKGl0ZW0pID0+IGl0
ZW0uY2hlY2tlZCk7CisgICAgICAgICAgICBzaG91bGRCZSgiY2hlY2tlZEl0ZW1zLmxlbmd0aCIs
ICIxIik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImNoZWNrZWRJdGVtc1sw
XS50aXRsZSIsICJBdXRvIChSZWNvbW1lbmRlZCkiKTsKKworICAgICAgICAgICAgZGVidWcoIlNl
dHRpbmcgY2FwdGlvbiBkaXNwbGF5IG1vZGUgdG8gJ2ZvcmNlZG9ubHknLi4uIik7CisgICAgICAg
ICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldENhcHRpb25EaXNwbGF5TW9kZSgiZm9yY2Vkb25seSIp
OworCisgICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVz
dCgpOworICAgICAgICB9KTsKKyAgICB9KTsKK30pOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC9jYXB0aW9ucy1vZmZzZXQtd2l0aC1jb250cm9scy1iYXItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L2NhcHRpb25zLW9mZnNldC13aXRoLWNvbnRyb2xzLWJhci1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNjY5ZGI1Zjc4MTRlZjg1MDZkZDk4OTJmNmEwNmE5Y2U0ZThmZTlhOQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3Vw
cG9ydC9jYXB0aW9ucy1vZmZzZXQtd2l0aC1jb250cm9scy1iYXItZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTAgQEAKK0Vuc3VyZSB0aGF0IHRoZSBjYXB0aW9ucyBjb250YWluZXIgYWNjb3VudHMg
Zm9yIHRoZSBjb250cm9scyBiYXIgd2hlbiB2aXNpYmxlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBnZXRDb21wdXRlZFN0eWxlKHNoYWRvd1Jvb3QubGFzdEVsZW1lbnRD
aGlsZC5maXJzdEVsZW1lbnRDaGlsZCkuaGVpZ2h0IGlzICJjYWxjKDEwMCUgLSAzN3B4KSIKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBv
cnQvY2FwdGlvbnMtb2Zmc2V0LXdpdGgtY29udHJvbHMtYmFyLmh0bWwgYi9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvY2FwdGlvbnMtb2Zmc2V0
LXdpdGgtY29udHJvbHMtYmFyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmRhNTE0MWFiMDJlZDA5OWIwMmM5
MTFhMzhkMWQzODg0M2ZhMGIzMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9jYXB0aW9ucy1vZmZzZXQtd2l0
aC1jb250cm9scy1iYXIuaHRtbApAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyIgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KKzxib2R5PgorPHZpZGVvIHNyYz0iLi4vLi4vY29u
dGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAw
OyB0b3A6IDA7IHdpZHRoOiA0MDBweDsiIGF1dG9wbGF5IGNvbnRyb2xzIG11dGVkIHBsYXlzaW5s
aW5lPjwvdmlkZW8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK3dpbmRvdy5q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZGVzY3JpcHRpb24oIkVuc3VyZSB0aGF0IHRoZSBjYXB0
aW9ucyBjb250YWluZXIgYWNjb3VudHMgZm9yIHRoZSBjb250cm9scyBiYXIgd2hlbiB2aXNpYmxl
LiIpOworCitjb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Citj
b25zdCBzaGFkb3dSb290ID0gd2luZG93LmludGVybmFscy5zaGFkb3dSb290KG1lZGlhKTsKKwor
bWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKKyAgICBtZWRpYS5wYXVzZSgp
OworCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRDb21wdXRlZFN0eWxlKHNoYWRvd1Jv
b3QubGFzdEVsZW1lbnRDaGlsZC5maXJzdEVsZW1lbnRDaGlsZCkuaGVpZ2h0IiwgImNhbGMoMTAw
JSAtIDM3cHgpIik7CisgICAgbWVkaWEucmVtb3ZlKCk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9
KTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvY2xpY2stdHJhY2staW4tY29u
dGV4dG1lbnUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L2NsaWNrLXRyYWNrLWluLWNvbnRleHRtZW51LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41OWQ3YzM3YjRkMmE1YWY4OTk2MGQ1MWZhYzdiYWI2ZTMzZTcxNjFi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1zdXBwb3J0L2NsaWNrLXRyYWNrLWluLWNvbnRleHRtZW51LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDI2IEBACitDbGlja2luZyBvbiBhIHRyYWNrIGluIHRoZSB0cmFja3MgY29u
dGV4dG1lbnUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitBdWRpbyB0cmFjayAn
RW5nbGlzaCBTb3VuZCcgaXMgZW5hYmxlZC4KK0F1ZGlvIHRyYWNrICdGcmVuY2ggU291bmQnIGlz
IGRpc2FibGVkLgorQXVkaW8gdHJhY2sgJ1NwYW5pc2ggU291bmQnIGlzIGRpc2FibGVkLgorUEFT
UyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNhbWUgZGlmZmVy
ZW50IGZyb20gbnVsbAorUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFj
a3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20g
MAorVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uCitTZWxlY3RpbmcgJ0ZyZW5jaCcgdHJhY2suLi4K
K0F1ZGlvIHRyYWNrcyBjaGFuZ2VkLgorQXVkaW8gdHJhY2sgJ0VuZ2xpc2ggU291bmQnIGlzIGRp
c2FibGVkLgorQXVkaW8gdHJhY2sgJ0ZyZW5jaCBTb3VuZCcgaXMgZW5hYmxlZC4KK0F1ZGlvIHRy
YWNrICdTcGFuaXNoIFNvdW5kJyBpcyBkaXNhYmxlZC4KK1RhcHBpbmcgdHJhY2tzIGJ1dHRvbi4u
LgorU2VsZWN0aW5nICdTcGFuaXNoJyB0cmFjay4uLgorQXVkaW8gdHJhY2tzIGNoYW5nZWQuCitB
dWRpbyB0cmFjayAnRW5nbGlzaCBTb3VuZCcgaXMgZGlzYWJsZWQuCitBdWRpbyB0cmFjayAnRnJl
bmNoIFNvdW5kJyBpcyBkaXNhYmxlZC4KK0F1ZGlvIHRyYWNrICdTcGFuaXNoIFNvdW5kJyBpcyBl
bmFibGVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3Mtc3VwcG9ydC9jbGljay10cmFjay1pbi1jb250ZXh0bWVudS5odG1sIGIvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2NsaWNrLXRyYWNr
LWluLWNvbnRleHRtZW51Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTk3MTA0MzNhZDkyMDIyNmY4ZDJmNjI1
NDExNTU0YzVkNzdmMGRiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9jbGljay10cmFjay1pbi1jb250ZXh0
bWVudS5odG1sCkBAIC0wLDAgKzEsOTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxib2R5
PgorPHZpZGVvIHNyYz0iLi4vLi4vY29udGVudC9hdWRpby10cmFja3MubXA0IiBzdHlsZT0icG9z
aXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiA0MDBweDsiIGNvbnRyb2xz
IGF1dG9wbGF5IG11dGVkIHBsYXlzaW5saW5lPjwvdmlkZW8+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCI+CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZGVzY3JpcHRp
b24oIkNsaWNraW5nIG9uIGEgdHJhY2sgaW4gdGhlIHRyYWNrcyBjb250ZXh0bWVudS4iKTsKKwor
Y29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOworY29uc3Qgc2hh
ZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7CisKK2xldCBzZWxl
Y3RlZFRyYWNrID0gbnVsbDsKKworbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+
IHsKKyAgICBtZWRpYS5wYXVzZSgpOworCisgICAgZHVtcEF1ZGlvVHJhY2tzRW5hYmxlZFN0YXRl
KCk7CisKKyAgICBtZWRpYS5hdWRpb1RyYWNrcy5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCBo
YW5kbGVBdWRpb1RyYWNrc0NoYW5nZSk7CisKKyAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7
CisgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIsICgp
ID0+IHsKKyAgICAgICAgICAgIGNsaWNrT25UcmFja3NCdXR0b24oY2xpY2tPbkZyZW5jaEF1ZGlv
VHJhY2spOworICAgICAgICB9KTsKKyAgICB9KTsKK30pOworCitmdW5jdGlvbiBjbGlja09uVHJh
Y2tzQnV0dG9uKGNvbnRpbnVhdGlvbikKK3sKKyAgICBkZWJ1ZygiVGFwcGluZyB0cmFja3MgYnV0
dG9uLi4uIik7CisgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJi
dXR0b24udHJhY2tzIiksICgpID0+IHsKKyAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25G
cmFtZShjb250aW51YXRpb24pOworICAgIH0pOworfQorCithc3luYyBmdW5jdGlvbiBjbGlja09u
RnJlbmNoQXVkaW9UcmFjaygpCit7CisgICAgZGVidWcoIlNlbGVjdGluZyAnRnJlbmNoJyB0cmFj
ay4uLiIpOworICAgIGxldCBjb250ZXh0bWVudSA9IGF3YWl0IGdldFRyYWNrc0NvbnRleHRNZW51
KCk7CisgICAgbGV0IGxhbmd1YWdlc01lbnUgPSBjb250ZXh0bWVudVswXS5jaGlsZHJlbi5maW5k
KChzdWJtZW51KSA9PiBzdWJtZW51LnRpdGxlID09PSAiTGFuZ3VhZ2VzIik7CisgICAgaWYgKGxh
bmd1YWdlc01lbnUuY2hpbGRyZW4/Lmxlbmd0aCkgeworICAgICAgICBhd2FpdCBVSUhlbHBlci5j
aG9vc2VNZW51QWN0aW9uKGxhbmd1YWdlc01lbnUudGl0bGUpOworICAgICAgICBhd2FpdCBVSUhl
bHBlci5kZWxheUZvcig1MDApOyAvLyBnaXZlIHRpbWUgZm9yIHRoZSBVSU1lbnUgdG8gYW5pbWF0
ZQorICAgIH0KKyAgICBhd2FpdCBVSUhlbHBlci5jaG9vc2VNZW51QWN0aW9uKCJGcmVuY2ggU291
bmQiKTsKK30KKworYXN5bmMgZnVuY3Rpb24gY2xpY2tPblNwYW5pc2hBdWRpb1RyYWNrKCkKK3sK
KyAgICBkZWJ1ZygiU2VsZWN0aW5nICdTcGFuaXNoJyB0cmFjay4uLiIpOworICAgIGxldCBjb250
ZXh0bWVudSA9IGF3YWl0IGdldFRyYWNrc0NvbnRleHRNZW51KCk7CisgICAgbGV0IGxhbmd1YWdl
c01lbnUgPSBjb250ZXh0bWVudVswXS5jaGlsZHJlbi5maW5kKChzdWJtZW51KSA9PiBzdWJtZW51
LnRpdGxlID09PSAiTGFuZ3VhZ2VzIik7CisgICAgaWYgKGxhbmd1YWdlc01lbnUuY2hpbGRyZW4/
Lmxlbmd0aCkgeworICAgICAgICBhd2FpdCBVSUhlbHBlci5jaG9vc2VNZW51QWN0aW9uKGxhbmd1
YWdlc01lbnUudGl0bGUpOworICAgICAgICBhd2FpdCBVSUhlbHBlci5kZWxheUZvcig1MDApOyAv
LyBnaXZlIHRpbWUgZm9yIHRoZSBVSU1lbnUgdG8gYW5pbWF0ZQorICAgIH0KKyAgICBhd2FpdCBV
SUhlbHBlci5jaG9vc2VNZW51QWN0aW9uKCJTcGFuaXNoIFNvdW5kIik7Cit9CisKK2FzeW5jIGZ1
bmN0aW9uIGhhbmRsZUF1ZGlvVHJhY2tzQ2hhbmdlKCkKK3sKKyAgICBsZXQgbmV3U2VsZWN0ZWRU
cmFjayA9IEFycmF5LmZyb20obWVkaWEuYXVkaW9UcmFja3MpLmZpbmQoKGF1ZGlvVHJhY2spID0+
IGF1ZGlvVHJhY2suZW5hYmxlZCk7CisgICAgaWYgKHNlbGVjdGVkVHJhY2sgPT09IG5ld1NlbGVj
dGVkVHJhY2spCisgICAgICAgIHJldHVybjsKKyAgICBzZWxlY3RlZFRyYWNrID0gbmV3U2VsZWN0
ZWRUcmFjazsKKworICAgIGRlYnVnKCJBdWRpbyB0cmFja3MgY2hhbmdlZC4iKTsKKworICAgIGR1
bXBBdWRpb1RyYWNrc0VuYWJsZWRTdGF0ZSgpOworCisgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZv
ckNvbnRleHRNZW51VG9IaWRlKCk7CisKKyAgICBzd2l0Y2ggKHNlbGVjdGVkVHJhY2subGFiZWwp
IHsKKyAgICBjYXNlICJGcmVuY2ggU291bmQiOgorICAgICAgICBjbGlja09uVHJhY2tzQnV0dG9u
KGNsaWNrT25TcGFuaXNoQXVkaW9UcmFjayk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSAi
U3BhbmlzaCBTb3VuZCI6CisgICAgICAgIG1lZGlhLnJlbW92ZSgpOworICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitmdW5jdGlvbiBkdW1wQXVkaW9U
cmFja3NFbmFibGVkU3RhdGUoKQoreworICAgIGZvciAobGV0IGF1ZGlvVHJhY2sgb2YgbWVkaWEu
YXVkaW9UcmFja3MpCisgICAgICAgIGRlYnVnKGBBdWRpbyB0cmFjayAnJHthdWRpb1RyYWNrLmxh
YmVsfScgaXMgJHthdWRpb1RyYWNrLmVuYWJsZWQgPyAiZW5hYmxlZCIgOiAiZGlzYWJsZWQifS5g
KTsKK30KKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaGlkZGVuLXRyYWNrcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvaGlkZGVuLXRyYWNrcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzFkNTQw
MjBmMjQ3NGU1ZWIwMzY2MzU5ZWYzODQ2ZjkzMmZmMmNiOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9oaWRk
ZW4tdHJhY2tzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitUaGlzIHRlc3QgY2hlY2tz
IHRoYXQgdGhlIHRyYWNrcyBjb250ZXh0bWVudSBkb2Vzbid0IHNob3cgYW55IHRyYWNrIGFzIHNl
bGVjdGVkIGlmIGFsbCB0aGUgdGV4dCB0cmFja3MgZm9yIGEgbWVkaWEgZWxlbWVudCBhcmUgbWFy
a2VkIGFzICJoaWRkZW4iLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBz
aGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50
IGZyb20gbnVsbAorUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3Mn
KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAor
U2V0dGluZyBtb2RlIHRvICdoaWRkZW4nIGZvciBhbGwgdGV4dCB0cmFja3MgdmlhIEphdmFTY3Jp
cHQuLi4KK1RhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLgorUEFTUyBjaGVja2VkSXRlbXMubGVuZ3Ro
IGlzIDEKK1BBU1MgY2hlY2tlZEl0ZW1zWzBdLnRpdGxlIGlzICJPZmYiCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2hpZGRlbi10
cmFja3MuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC9oaWRkZW4tdHJhY2tzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjYxM2ZjOGU2ZTMwNzM3
NGQ4MTY1ZGQ3N2UyMTU2YTFlZTZjNzI1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9oaWRkZW4tdHJhY2tz
Lmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8
dmlkZW8gc3JjPSIuLi8uLi9jb250ZW50L2NvdW50aW5nLXN1YnRpdGxlZC5tNHYiIHN0eWxlPSJw
b3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDQwMHB4OyIgY29udHJv
bHMgYXV0b3BsYXkgbXV0ZWQgcGxheXNpbmxpbmU+PC92aWRlbz4KKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitkZXNjcmlw
dGlvbihgVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSB0cmFja3MgY29udGV4dG1lbnUgZG9lc24n
dCBzaG93IGFueSB0cmFjayBhcyBzZWxlY3RlZCBpZiBhbGwgdGhlIHRleHQgdHJhY2tzIGZvciBh
IG1lZGlhIGVsZW1lbnQgYXJlIG1hcmtlZCBhcyAiaGlkZGVuIi5gKTsKKworY29uc3QgbWVkaWEg
PSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOworY29uc3Qgc2hhZG93Um9vdCA9IHdp
bmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7CisKK2xldCBjaGVja2VkSXRlbXMgPSBu
dWxsOworCittZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4geworICAgIG1lZGlh
LnBhdXNlKCk7CisKKyAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlT
ZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7CisgICAgICAgIHNob3Vs
ZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tz
JykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIsIGFzeW5jICgpID0+IHsKKyAg
ICAgICAgICAgIGRlYnVnKCJTZXR0aW5nIG1vZGUgdG8gJ2hpZGRlbicgZm9yIGFsbCB0ZXh0IHRy
YWNrcyB2aWEgSmF2YVNjcmlwdC4uLiIpOworICAgICAgICAgICAgZm9yIChsZXQgdGV4dFRyYWNr
IG9mIG1lZGlhLnRleHRUcmFja3MpCisgICAgICAgICAgICAgICAgdGV4dFRyYWNrLm1vZGUgPSAi
aGlkZGVuIjsKKworICAgICAgICAgICAgZGVidWcoIlRhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLiIp
OworICAgICAgICAgICAgbGV0IFtjb250ZXh0bWVudV0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisg
ICAgICAgICAgICAgICAgZ2V0VHJhY2tzQ29udGV4dE1lbnUoKSwKKyAgICAgICAgICAgICAgICBw
cmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSks
CisgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgIGxldCBzdWJ0aXRsZXNNZW51ID0gY29udGV4
dG1lbnVbMF0uY2hpbGRyZW4uZmluZCgoc3VibWVudSkgPT4gc3VibWVudS50aXRsZSA9PT0gIlN1
YnRpdGxlcyIpOworICAgICAgICAgICAgaWYgKHN1YnRpdGxlc01lbnUuY2hpbGRyZW4/Lmxlbmd0
aCkgeworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmNob29zZU1lbnVBY3Rpb24oc3Vi
dGl0bGVzTWVudS50aXRsZSk7CisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuZGVsYXlG
b3IoNTAwKTsgLy8gZ2l2ZSB0aW1lIGZvciB0aGUgVUlNZW51IHRvIGFuaW1hdGUKKyAgICAgICAg
ICAgICAgICBjb250ZXh0bWVudSA9IFtzdWJ0aXRsZXNNZW51XTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGNoZWNrZWRJdGVtcyA9IGNvbnRleHRtZW51WzBdLmNoaWxkcmVuLmZpbHRlcigo
aXRlbSkgPT4gaXRlbS5jaGVja2VkKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJjaGVja2VkSXRl
bXMubGVuZ3RoIiwgIjEiKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiY2hl
Y2tlZEl0ZW1zWzBdLnRpdGxlIiwgIk9mZiIpOworCisgICAgICAgICAgICBtZWRpYS5yZW1vdmUo
KTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9KTsKK30p
OworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQt
YXV0by10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtYXV0by10ZXh0
LXRyYWNrLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTQ0NGI2
OTU0NzVhYTQ0MjE3ODI1OWViODk3YWY0N2M2MjBhY2RhNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFj
ay1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi1FbnN1cmUgd2Ug
aGF2ZSB0aGUgQXV0byB0ZXh0IHRyYWNrIHNlbGVjdGVkIGJ5IGRlZmF1bHQuCi0KLU9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0
dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCi1QQVNTIHNoYWRvd1Jvb3Qu
cXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndp
ZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCi1TZXR0aW5nIGNhcHRpb24gZGlzcGxheSBtb2Rl
IHRvICdhdXRvbWF0aWMnLi4uCi1UYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KLVsKLSAgewotICAg
ICJjaGlsZHJlbiI6IFsKLSAgICAgIHsKLSAgICAgICAgInRpdGxlIjogIkxhbmd1YWdlcyIsCi0g
ICAgICAgICJjaGlsZHJlbiI6IFsKLSAgICAgICAgICB7Ci0gICAgICAgICAgICAidGl0bGUiOiAi
RW5nbGlzaCBTb3VuZCIsCi0gICAgICAgICAgICAiY2hlY2tlZCI6IHRydWUKLSAgICAgICAgICB9
LAotICAgICAgICAgIHsKLSAgICAgICAgICAgICJ0aXRsZSI6ICJGcmVuY2ggU291bmQiCi0gICAg
ICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICAidGl0bGUiOiAiU3BhbmlzaCBTb3Vu
ZCIKLSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAgIH0sCi0gICAgICB7Ci0gICAgICAgICJ0
aXRsZSI6ICJTdWJ0aXRsZXMiLAotICAgICAgICAiY2hpbGRyZW4iOiBbCi0gICAgICAgICAgewot
ICAgICAgICAgICAgInRpdGxlIjogIk9mZiIKLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAg
ICAgICAgICAgICJ0aXRsZSI6ICJBdXRvIChSZWNvbW1lbmRlZCkiLAotICAgICAgICAgICAgImNo
ZWNrZWQiOiB0cnVlCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICAidGl0
bGUiOiAiRW5nbGlzaCBTdWJ0aXRsZXMiCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAg
ICAgICAgICAidGl0bGUiOiAiRnJlbmNoIFN1YnRpdGxlcyIKLSAgICAgICAgICB9LAotICAgICAg
ICAgIHsKLSAgICAgICAgICAgICJ0aXRsZSI6ICJHZXJtYW4gU3VidGl0bGVzIgotICAgICAgICAg
IH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgInRpdGxlIjogIlNwYW5pc2ggU3VidGl0bGVz
IgotICAgICAgICAgIH0KLSAgICAgICAgXQotICAgICAgfQotICAgIF0KLSAgfQotXQotU2V0dGlu
ZyBjYXB0aW9uIGRpc3BsYXkgbW9kZSB0byAnZm9yY2Vkb25seScuLi4KLVBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNr
cy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1hdXRvLXRl
eHQtdHJhY2suaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjViZWJjMTg1ZjQx
OTEyYzIyYjVhN2E0OThlNTA3OTAzMTU2MDU2Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgotPGJvZHk+Ci08dmlkZW8gc3JjPSIuLi8uLi8uLi9jb250ZW50L0NDK1N1YnRpdGxl
cy5tb3YiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6
IDMwMHB4OyIgYXV0b3BsYXkgY29udHJvbHMgbXV0ZWQgcGxheXNpbmxpbmU+PC92aWRlbz4KLTxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOwotCi1kZXNjcmlwdGlvbigiRW5zdXJlIHdlIGhhdmUgdGhlIEF1dG8gdGV4dCB0cmFjayBz
ZWxlY3RlZCBieSBkZWZhdWx0LiIpOwotCi1jb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoInZpZGVvIik7Ci1jb25zdCBzaGFkb3dSb290ID0gd2luZG93LmludGVybmFscy5zaGFk
b3dSb290KG1lZGlhKTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsK
LSAgICBtZWRpYS5wYXVzZSgpOwotCi0gICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dS
b290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSIsICJudWxsIiwgKCkgPT4gewotICAg
ICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0
dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIiwgIjAiLCBhc3luYyAo
KSA9PiB7Ci0gICAgICAgICAgICBkZWJ1ZygiU2V0dGluZyBjYXB0aW9uIGRpc3BsYXkgbW9kZSB0
byAnYXV0b21hdGljJy4uLiIpOwotICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRDYXB0
aW9uRGlzcGxheU1vZGUoImF1dG9tYXRpYyIpOwotCi0gICAgICAgICAgICBkZWJ1ZygiVGFwcGlu
ZyB0cmFja3MgYnV0dG9uLi4uIik7Ci0gICAgICAgICAgICBsZXQgW2NvbnRleHRtZW51XSA9IGF3
YWl0IFByb21pc2UuYWxsKFsKLSAgICAgICAgICAgICAgICBnZXRUcmFja3NDb250ZXh0TWVudSgp
LAotICAgICAgICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cigiYnV0dG9uLnRyYWNrcyIpKSwKLSAgICAgICAgICAgIF0pOwotICAgICAgICAgICAgZGVidWco
SlNPTi5zdHJpbmdpZnkoY29udGV4dG1lbnUsIG51bGwsIDIpKTsKLQotICAgICAgICAgICAgZGVi
dWcoIlNldHRpbmcgY2FwdGlvbiBkaXNwbGF5IG1vZGUgdG8gJ2ZvcmNlZG9ubHknLi4uIik7Ci0g
ICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldENhcHRpb25EaXNwbGF5TW9kZSgiZm9yY2Vk
b25seSIpOwotCi0gICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsKLSAgICAgICAgICAgIGZpbmlz
aEpTVGVzdCgpOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0pOwotCi08L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
LTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtY2xpY2stdHJhY2staW4tY29u
dGV4dG1lbnUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1jbGljay10cmFjay1pbi1j
b250ZXh0bWVudS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhi
Y2YwNTI5NmYwZTZiMjNkY2Y1MmM1NjI4ZGMxZWUwMzY0YzYyMTUuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1jbGljay10cmFj
ay1pbi1jb250ZXh0bWVudS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCww
IEBACi1DbGlja2luZyBvbiBhIHRyYWNrIGluIHRoZSB0cmFja3MgY29udGV4dG1lbnUuCi0KLU9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1tZWRpYS5hdWRpb1RyYWNrc1swXS5lbmFibGVk
ID0gdHJ1ZQotbWVkaWEuYXVkaW9UcmFja3NbMV0uZW5hYmxlZCA9IGZhbHNlCi1tZWRpYS5hdWRp
b1RyYWNrc1syXS5lbmFibGVkID0gZmFsc2UKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCdidXR0b24udHJhY2tzJykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1Mgc2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCkud2lkdGggYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKLVRhcHBpbmcgdHJhY2tzIGJ1dHRvbi4u
LgotU2VsZWN0aW5nIHNlY29uZCBhdWRpbyB0cmFjay4uLgotQXVkaW8gdHJhY2tzIGNoYW5nZWQu
Ci1tZWRpYS5hdWRpb1RyYWNrc1swXS5lbmFibGVkID0gZmFsc2UKLW1lZGlhLmF1ZGlvVHJhY2tz
WzFdLmVuYWJsZWQgPSB0cnVlCi1tZWRpYS5hdWRpb1RyYWNrc1syXS5lbmFibGVkID0gZmFsc2UK
LVRhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLgotU2VsZWN0aW5nIHRoaXJkIGF1ZGlvIHRyYWNrLi4u
Ci1BdWRpbyB0cmFja3MgY2hhbmdlZC4KLW1lZGlhLmF1ZGlvVHJhY2tzWzBdLmVuYWJsZWQgPSBm
YWxzZQotbWVkaWEuYXVkaW9UcmFja3NbMV0uZW5hYmxlZCA9IGZhbHNlCi1tZWRpYS5hdWRpb1Ry
YWNrc1syXS5lbmFibGVkID0gdHJ1ZQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQot
Ci1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtY2xpY2stdHJh
Y2staW4tY29udGV4dG1lbnUuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtY2xpY2stdHJhY2staW4t
Y29udGV4dG1lbnUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2ZlZWI2ZGEy
ZjgwMWRmMWRiODRhYmEwZjE5OGMyZDgwZjg0ZmUxMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWNsaWNrLXRyYWNrLWluLWNv
bnRleHRtZW51Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5MSArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxw
ZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08Ym9keT4KLTx2aWRlbyBzcmM9Ii4uLy4uLy4uL2NvbnRl
bnQvYXVkaW8tdHJhY2tzLm1wNCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsg
dG9wOiAwOyB3aWR0aDogMzAwcHg7IiBjb250cm9scyBhdXRvcGxheSBtdXRlZCBwbGF5c2lubGlu
ZT48L3ZpZGVvPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJDbGlja2luZyBvbiBhIHRyYWNrIGlu
IHRoZSB0cmFja3MgY29udGV4dG1lbnUuIik7Ci0KLWNvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxz
LnNoYWRvd1Jvb3QobWVkaWEpOwotCi1sZXQgcHJldmlvdXNseVNlbGVjdGVkVHJhY2sgPSAwOwot
Ci1tZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4gewotICAgIG1lZGlhLnBhdXNl
KCk7Ci0KLSAgICBkdW1wQXVkaW9UcmFja3NFbmFibGVkU3RhdGUoKTsKLQotICAgIG1lZGlhLmF1
ZGlvVHJhY2tzLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIGhhbmRsZUF1ZGlvVHJhY2tzQ2hh
bmdlKTsKLQotICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVj
dG9yKCdidXR0b24udHJhY2tzJykiLCAibnVsbCIsICgpID0+IHsKLSAgICAgICAgc2hvdWxkQmVj
b21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCIsICIwIiwgKCkgPT4gewotICAgICAgICAgICAg
Y2xpY2tPblRyYWNrc0J1dHRvbihjbGlja09uU2Vjb25kQXVkaW9UcmFjayk7Ci0gICAgICAgIH0p
OwotICAgIH0pOwotfSk7Ci0KLWZ1bmN0aW9uIGNsaWNrT25UcmFja3NCdXR0b24oY29udGludWF0
aW9uKQotewotICAgIGRlYnVnKCJUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4iKTsKLSAgICBwcmVz
c09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSwgKCkg
PT4gewotICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNvbnRpbnVhdGlvbik7
Ci0gICAgfSk7Ci19Ci0KLWFzeW5jIGZ1bmN0aW9uIGNsaWNrT25TZWNvbmRBdWRpb1RyYWNrKCkK
LXsKLSAgICBkZWJ1ZygiU2VsZWN0aW5nIHNlY29uZCBhdWRpbyB0cmFjay4uLiIpOwotICAgIGxl
dCBjb250ZXh0bWVudSA9IGF3YWl0IGdldFRyYWNrc0NvbnRleHRNZW51KCk7Ci0gICAgbGV0IGxh
bmd1YWdlc01lbnUgPSBjb250ZXh0bWVudVswXS5jaGlsZHJlblswXTsKLSAgICBhd2FpdCBVSUhl
bHBlci5jaG9vc2VNZW51QWN0aW9uKGxhbmd1YWdlc01lbnUudGl0bGUpOwotICAgIGF3YWl0IFVJ
SGVscGVyLmRlbGF5Rm9yKDUwMCk7IC8vIGdpdmUgdGltZSBmb3IgdGhlIFVJTWVudSB0byBhbmlt
YXRlCi0gICAgYXdhaXQgVUlIZWxwZXIuY2hvb3NlTWVudUFjdGlvbihsYW5ndWFnZXNNZW51LmNo
aWxkcmVuWzFdLnRpdGxlKTsKLX0KLQotYXN5bmMgZnVuY3Rpb24gY2xpY2tPblRoaXJkQXVkaW9U
cmFjaygpCi17Ci0gICAgZGVidWcoIlNlbGVjdGluZyB0aGlyZCBhdWRpbyB0cmFjay4uLiIpOwot
ICAgIGxldCBjb250ZXh0bWVudSA9IGF3YWl0IGdldFRyYWNrc0NvbnRleHRNZW51KCk7Ci0gICAg
bGV0IGxhbmd1YWdlc01lbnUgPSBjb250ZXh0bWVudVswXS5jaGlsZHJlblswXTsKLSAgICBhd2Fp
dCBVSUhlbHBlci5jaG9vc2VNZW51QWN0aW9uKGxhbmd1YWdlc01lbnUudGl0bGUpOwotICAgIGF3
YWl0IFVJSGVscGVyLmRlbGF5Rm9yKDUwMCk7IC8vIGdpdmUgdGltZSBmb3IgdGhlIFVJTWVudSB0
byBhbmltYXRlCi0gICAgYXdhaXQgVUlIZWxwZXIuY2hvb3NlTWVudUFjdGlvbihsYW5ndWFnZXNN
ZW51LmNoaWxkcmVuWzJdLnRpdGxlKTsKLX0KLQotYXN5bmMgZnVuY3Rpb24gaGFuZGxlQXVkaW9U
cmFja3NDaGFuZ2UoKQotewotICAgIGNvbnN0IG5ld1NlbGVjdGVkVHJhY2sgPSBBcnJheS5mcm9t
KG1lZGlhLmF1ZGlvVHJhY2tzKS5maW5kSW5kZXgodHJhY2sgPT4gdHJhY2suZW5hYmxlZCk7Ci0g
ICAgaWYgKHByZXZpb3VzbHlTZWxlY3RlZFRyYWNrID09PSBuZXdTZWxlY3RlZFRyYWNrKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBwcmV2aW91c2x5U2VsZWN0ZWRUcmFjayA9IG5ld1NlbGVjdGVk
VHJhY2s7Ci0KLSAgICBkZWJ1ZygiQXVkaW8gdHJhY2tzIGNoYW5nZWQuIik7Ci0KLSAgICBkdW1w
QXVkaW9UcmFja3NFbmFibGVkU3RhdGUoKTsKLQotICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JD
b250ZXh0TWVudVRvSGlkZSgpOwotCi0gICAgaWYgKG1lZGlhLmF1ZGlvVHJhY2tzWzFdLmVuYWJs
ZWQpCi0gICAgICAgIGNsaWNrT25UcmFja3NCdXR0b24oY2xpY2tPblRoaXJkQXVkaW9UcmFjayk7
Ci0gICAgZWxzZSBpZiAobWVkaWEuYXVkaW9UcmFja3NbMl0uZW5hYmxlZCkgewotICAgICAgICBt
ZWRpYS5yZW1vdmUoKTsKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgfQotfQotCi1mdW5j
dGlvbiBkdW1wQXVkaW9UcmFja3NFbmFibGVkU3RhdGUoKQotewotICAgIEFycmF5LmZyb20obWVk
aWEuYXVkaW9UcmFja3MpLmZvckVhY2goKGF1ZGlvVHJhY2ssIGluZGV4KSA9PiB7Ci0gICAgICAg
IGRlYnVnKGBtZWRpYS5hdWRpb1RyYWNrc1ske2luZGV4fV0uZW5hYmxlZCA9ICR7bWVkaWEuYXVk
aW9UcmFja3NbaW5kZXhdLmVuYWJsZWR9YCk7Ci0gICAgfSk7Ci19Ci0KLTwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhiODY1NmY4ODk4NmI1Y2YwY2RmNDExNmJm
N2MyY2YyZDRmZjk3NzUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L2lvcy90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDU4ICswLDAgQEAKLVRoaXMgdGVzdCBjaGVja3MgdGhhdCB0aGUgdHJhY2tz
IGNvbnRleHRtZW51IGRvZXNuJ3Qgc2hvdyBhbnkgdHJhY2sgYXMgc2VsZWN0ZWQgaWYgYWxsIHRo
ZSB0ZXh0IHRyYWNrcyBmb3IgYSBtZWRpYSBlbGVtZW50IGFyZSBtYXJrZWQgYXMgImhpZGRlbiIu
Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlT
ZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCi1QQVNT
IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCi1TZXR0aW5nIG1vZGUgdG8g
J2hpZGRlbicgZm9yIGFsbCB0ZXh0IHRyYWNrcyB2aWEgSmF2YVNjcmlwdC4uLgotVGFwcGluZyB0
cmFja3MgYnV0dG9uLi4uCi1bCi0gIHsKLSAgICAiY2hpbGRyZW4iOiBbCi0gICAgICB7Ci0gICAg
ICAgICJ0aXRsZSI6ICJMYW5ndWFnZXMiLAotICAgICAgICAiY2hpbGRyZW4iOiBbCi0gICAgICAg
ICAgewotICAgICAgICAgICAgInRpdGxlIjogIkVuZ2xpc2ggU291bmQiLAotICAgICAgICAgICAg
ImNoZWNrZWQiOiB0cnVlCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICAi
dGl0bGUiOiAiRnJlbmNoIFNvdW5kIgotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAg
ICAgICAgInRpdGxlIjogIlNwYW5pc2ggU291bmQiCi0gICAgICAgICAgfQotICAgICAgICBdCi0g
ICAgICB9LAotICAgICAgewotICAgICAgICAidGl0bGUiOiAiU3VidGl0bGVzIiwKLSAgICAgICAg
ImNoaWxkcmVuIjogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgICJ0aXRsZSI6ICJPZmYiLAot
ICAgICAgICAgICAgImNoZWNrZWQiOiB0cnVlCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0g
ICAgICAgICAgICAidGl0bGUiOiAiQXV0byAoUmVjb21tZW5kZWQpIgotICAgICAgICAgIH0sCi0g
ICAgICAgICAgewotICAgICAgICAgICAgInRpdGxlIjogIkVuZ2xpc2ggU3VidGl0bGVzIgotICAg
ICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgInRpdGxlIjogIkZyZW5jaCBTdWJ0
aXRsZXMiCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICAidGl0bGUiOiAi
R2VybWFuIFN1YnRpdGxlcyIKLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAg
ICJ0aXRsZSI6ICJTcGFuaXNoIFN1YnRpdGxlcyIKLSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAg
ICAgIH0KLSAgICBdCi0gIH0KLV0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQot
VEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWhpZGRlbi10cmFj
a3MuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
c3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA5ZGU0ZjhkNjgzNmRjZmJlYmIyMmEyZDE1ODI5ZmMyNWIyNWJh
Y2U4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJh
Y2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL21lZGlh
LWNvbnRyb2xzLXV0aWxzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8gc3Jj
PSIuLi8uLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJwb3NpdGlvbjogYWJz
b2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDMwMHB4OyIgY29udHJvbHMgYXV0b3BsYXkg
bXV0ZWQgcGxheXNpbmxpbmU+PC92aWRlbz4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbihgVGhpcyB0
ZXN0IGNoZWNrcyB0aGF0IHRoZSB0cmFja3MgY29udGV4dG1lbnUgZG9lc24ndCBzaG93IGFueSB0
cmFjayBhcyBzZWxlY3RlZCBpZiBhbGwgdGhlIHRleHQgdHJhY2tzIGZvciBhIG1lZGlhIGVsZW1l
bnQgYXJlIG1hcmtlZCBhcyAiaGlkZGVuIi5gKTsKLQotY29uc3QgbWVkaWEgPSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5h
bHMuc2hhZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAo
KSA9PiB7Ci0gICAgbWVkaWEucGF1c2UoKTsKLQotICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgi
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykiLCAibnVsbCIsICgpID0+
IHsKLSAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0
b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCIsICIwIiwg
YXN5bmMgKCkgPT4gewotICAgICAgICAgICAgZGVidWcoIlNldHRpbmcgbW9kZSB0byAnaGlkZGVu
JyBmb3IgYWxsIHRleHQgdHJhY2tzIHZpYSBKYXZhU2NyaXB0Li4uIik7Ci0gICAgICAgICAgICBB
cnJheS5mcm9tKG1lZGlhLnRleHRUcmFja3MpLmZvckVhY2godHJhY2sgPT4gdHJhY2subW9kZSA9
ICJoaWRkZW4iKTsKLQotICAgICAgICAgICAgZGVidWcoIlRhcHBpbmcgdHJhY2tzIGJ1dHRvbi4u
LiIpOwotICAgICAgICAgICAgbGV0IFtjb250ZXh0bWVudV0gPSBhd2FpdCBQcm9taXNlLmFsbChb
Ci0gICAgICAgICAgICAgICAgZ2V0VHJhY2tzQ29udGV4dE1lbnUoKSwKLSAgICAgICAgICAgICAg
ICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3Mi
KSksCi0gICAgICAgICAgICBdKTsKLSAgICAgICAgICAgIGRlYnVnKEpTT04uc3RyaW5naWZ5KGNv
bnRleHRtZW51LCBudWxsLCAyKSk7Ci0KLSAgICAgICAgICAgIG1lZGlhLnJlbW92ZSgpOwotICAg
ICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotfSk7Ci0KLTwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1vZmYt
dGV4dC10cmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LW9mZi10ZXh0LXRyYWNr
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGFjZWNkMzEwZWUy
NjJmNzU3ZjAwMjE1NWE4OGQxOTVlZjZkOTM3OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LW9mZi10ZXh0LXRyYWNrLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLUVuc3VyZSB3ZSBoYXZlIHRo
ZSBPZmYgdGV4dCB0cmFjayBzZWxlY3RlZCBieSBkZWZhdWx0LgotCi1PbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCi0KLQotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFj
a3MnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2Vs
ZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNh
bWUgZGlmZmVyZW50IGZyb20gMAotVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uCi1bCi0gIHsKLSAg
ICAiY2hpbGRyZW4iOiBbCi0gICAgICB7Ci0gICAgICAgICJ0aXRsZSI6ICJMYW5ndWFnZXMiLAot
ICAgICAgICAiY2hpbGRyZW4iOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgInRpdGxlIjog
IkVuZ2xpc2ggU291bmQiLAotICAgICAgICAgICAgImNoZWNrZWQiOiB0cnVlCi0gICAgICAgICAg
fSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICAidGl0bGUiOiAiRnJlbmNoIFNvdW5kIgotICAg
ICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgInRpdGxlIjogIlNwYW5pc2ggU291
bmQiCi0gICAgICAgICAgfQotICAgICAgICBdCi0gICAgICB9LAotICAgICAgewotICAgICAgICAi
dGl0bGUiOiAiU3VidGl0bGVzIiwKLSAgICAgICAgImNoaWxkcmVuIjogWwotICAgICAgICAgIHsK
LSAgICAgICAgICAgICJ0aXRsZSI6ICJPZmYiLAotICAgICAgICAgICAgImNoZWNrZWQiOiB0cnVl
Ci0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICAidGl0bGUiOiAiQXV0byAo
UmVjb21tZW5kZWQpIgotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgInRp
dGxlIjogIkVuZ2xpc2ggU3VidGl0bGVzIgotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAg
ICAgICAgICAgInRpdGxlIjogIkZyZW5jaCBTdWJ0aXRsZXMiCi0gICAgICAgICAgfSwKLSAgICAg
ICAgICB7Ci0gICAgICAgICAgICAidGl0bGUiOiAiR2VybWFuIFN1YnRpdGxlcyIKLSAgICAgICAg
ICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgICJ0aXRsZSI6ICJTcGFuaXNoIFN1YnRpdGxl
cyIKLSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAgIH0KLSAgICBdCi0gIH0KLV0KLVBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
aW9zL3RyYWNrcy1zdXBwb3J0LW9mZi10ZXh0LXRyYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0
LW9mZi10ZXh0LXRyYWNrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBlYjMx
MzQ4NGVhNDgyMzhmMjM2YzcwZTg5NzMwNzlkNmUzYjNlYWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFj
ay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8gc3JjPSIuLi8uLi8uLi9jb250ZW50L0NDK1N1
YnRpdGxlcy5tb3YiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsg
d2lkdGg6IDMwMHB4OyIgY29udHJvbHMgYXV0b3BsYXkgbXV0ZWQgcGxheXNpbmxpbmU+PC92aWRl
bz4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbigiRW5zdXJlIHdlIGhhdmUgdGhlIE9mZiB0ZXh0IHRy
YWNrIHNlbGVjdGVkIGJ5IGRlZmF1bHQuIik7Ci0KLWNvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxz
LnNoYWRvd1Jvb3QobWVkaWEpOwotCi1tZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkg
PT4gewotICAgIG1lZGlhLnBhdXNlKCk7Ci0KLSAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7
Ci0gICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIsIGFz
eW5jICgpID0+IHsKLSAgICAgICAgICAgIGRlYnVnKCJUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4i
KTsKLSAgICAgICAgICAgIGxldCBbY29udGV4dG1lbnVdID0gYXdhaXQgUHJvbWlzZS5hbGwoWwot
ICAgICAgICAgICAgICAgIGdldFRyYWNrc0NvbnRleHRNZW51KCksCi0gICAgICAgICAgICAgICAg
cHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikp
LAotICAgICAgICAgICAgXSk7Ci0gICAgICAgICAgICBkZWJ1ZyhKU09OLnN0cmluZ2lmeShjb250
ZXh0bWVudSwgbnVsbCwgMikpOwotCi0gICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsKLSAgICAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0pOwotCi08L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtc2hvdy1j
b250ZXh0bWVudS10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC9pb3MvdHJhY2tzLXN1cHBvcnQtc2hvdy1jb250ZXh0bWVudS10aGVuLWRvdWJsZS1jbGljay1v
bi10cmFja3MtYnV0dG9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOGFmYTc1MDY4ZWMyM2RhZTA1NTBmNDhmNWUwZmQ0OGNjZDI3NGJlZC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LXNob3ct
Y29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1FbnN1cmUgdGhhdCBjbGlja2luZyB0
aGUgdHJhY2tzIGJ1dHRvbiB3aGVuIHRoZSB0cmFja3MgY29udGV4dG1lbnUgaXMgc2hvd24gbWFr
ZXMgdGhlIGNvbnRleHRtZW51IGhpZGUuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQot
Ci1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBk
aWZmZXJlbnQgZnJvbSBudWxsCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9u
LnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQg
ZnJvbSAwCi1UYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KLUNvbnRleHQgbWVudSBzaG93bi4KLVRh
cHBpbmcgdHJhY2tzIGJ1dHRvbi4uLgotQ29udGV4dCBtZW51IGhpZGRlbi4KLVRhcHBpbmcgdHJh
Y2tzIGJ1dHRvbi4uLgotQ29udGV4dCBtZW51IHNob3duLgotVGFwcGluZyB0cmFja3MgYnV0dG9u
Li4uCi1Db250ZXh0IG1lbnUgaGlkZGVuLgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtc2hvdy1j
b250ZXh0bWVudS10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLmh0bWwgYi9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3Ry
YWNrcy1zdXBwb3J0LXNob3ctY29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tz
LWJ1dHRvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZGVmMmMwNzM0MTAw
MjkyOWNiZTFkNmNlYzVmNjgwYmIyMGEzZWQ3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtc2hvdy1jb250ZXh0bWVudS10aGVu
LWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1
NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
bWVkaWEtY29udHJvbHMtdXRpbHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
Ly4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08Ym9keT4KLTx2aWRl
byBzcmM9Ii4uLy4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVzLm1vdiIgc3R5bGU9InBvc2l0aW9u
OiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDogMzAwcHg7IiBjb250cm9scyBhdXRv
cGxheSBtdXRlZCBwbGF5c2lubGluZT48L3ZpZGVvPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJF
bnN1cmUgdGhhdCBjbGlja2luZyB0aGUgdHJhY2tzIGJ1dHRvbiB3aGVuIHRoZSB0cmFja3MgY29u
dGV4dG1lbnUgaXMgc2hvd24gbWFrZXMgdGhlIGNvbnRleHRtZW51IGhpZGUuIik7Ci0KLWNvbnN0
IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jv
b3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOwotCi1tZWRpYS5hZGRFdmVu
dExpc3RlbmVyKCJwbGF5IiwgKCkgPT4gewotICAgIG1lZGlhLnBhdXNlKCk7Ci0KLSAgICBzaG91
bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNr
cycpIiwgIm51bGwiLCAoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hh
ZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCkud2lkdGgiLCAiMCIsIGFzeW5jICgpID0+IHsKLSAgICAgICAgICAgIGRlYnVnKCJUYXBw
aW5nIHRyYWNrcyBidXR0b24uLi4iKTsKLSAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsK
LSAgICAgICAgICAgICAgICBVSUhlbHBlci53YWl0Rm9yQ29udGV4dE1lbnVUb1Nob3coKSwKLSAg
ICAgICAgICAgICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1
dHRvbi50cmFja3MiKSksCi0gICAgICAgICAgICBdKTsKLSAgICAgICAgICAgIGRlYnVnKCJDb250
ZXh0IG1lbnUgc2hvd24uIik7Ci0KLSAgICAgICAgICAgIGRlYnVnKCJUYXBwaW5nIHRyYWNrcyBi
dXR0b24uLi4iKTsKLSAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsKLSAgICAgICAgICAg
ICAgICBVSUhlbHBlci53YWl0Rm9yQ29udGV4dE1lbnVUb0hpZGUoKSwKLSAgICAgICAgICAgICAg
ICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3Mi
KSksCi0gICAgICAgICAgICBdKTsKLSAgICAgICAgICAgIGRlYnVnKCJDb250ZXh0IG1lbnUgaGlk
ZGVuLiIpOwotCi0gICAgICAgICAgICBkZWJ1ZygiVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uIik7
Ci0gICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbCi0gICAgICAgICAgICAgICAgVUlIZWxw
ZXIud2FpdEZvckNvbnRleHRNZW51VG9TaG93KCksCi0gICAgICAgICAgICAgICAgcHJlc3NPbkVs
ZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpLAotICAgICAg
ICAgICAgXSk7Ci0gICAgICAgICAgICBkZWJ1ZygiQ29udGV4dCBtZW51IHNob3duLiIpOwotCi0g
ICAgICAgICAgICBkZWJ1ZygiVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uIik7Ci0gICAgICAgICAg
ICBhd2FpdCBQcm9taXNlLmFsbChbCi0gICAgICAgICAgICAgICAgVUlIZWxwZXIud2FpdEZvckNv
bnRleHRNZW51VG9IaWRlKCksCi0gICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpLAotICAgICAgICAgICAgXSk7Ci0g
ICAgICAgICAgICBkZWJ1ZygiQ29udGV4dCBtZW51IGhpZGRlbi4iKTsKLQotICAgICAgICAgICAg
bWVkaWEucmVtb3ZlKCk7Ci0gICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfSk7
Ci0gICAgfSk7Ci19KTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9z
L3RyYWNrcy1zdXBwb3J0LXRleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LXRleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFw
aS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3MGM4YjVmZDVi
YzIzY2Y4MDA4ZGQ3NTkwNTJiNzY2MmM3NzIyZDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVjdGVk
LXZpYS1tZWRpYS1hcGktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBA
QAotVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHNldHRpbmcgYW4gZW1iZWRkZWQgdGV4dCB0cmFjayBh
cyBzZWxlY3RlZCB2aWEgdGhlIEhUTUxNZWRpYUVsZW1lbnQgSlMgQVBJcyB3aWxsIGNvcnJlY3Rs
eSBzaG93IHRoaXMgdHJhY2sgYXMgc2VsZWN0ZWQsIGFuZCB0aGF0IHNlbGVjdGluZyB0aGUgIkF1
dG9tYXRpYyAoUmVjb21tZW5kZWQpIiB0cmFjayB3aWxsIHJldmVydCBiYWNrIHRvIHNlbGVjdGlu
ZyB0aGF0IGVudHJ5LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBzaGFk
b3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50IGZy
b20gbnVsbAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAotU2V0
dGluZyBtb2RlIHRvICdzaG93aW5nJyBmb3IgZmlyc3QgdGV4dCB0cmFjayB2aWEgSmF2YVNjcmlw
dC4uLgotVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uCi1bCi0gIHsKLSAgICAiY2hpbGRyZW4iOiBb
Ci0gICAgICB7Ci0gICAgICAgICJ0aXRsZSI6ICJTdWJ0aXRsZXMiLAotICAgICAgICAiY2hpbGRy
ZW4iOiBbCi0gICAgICAgICAgewotICAgICAgICAgICAgInRpdGxlIjogIk9mZiIKLSAgICAgICAg
ICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgICJ0aXRsZSI6ICJBdXRvIChSZWNvbW1lbmRl
ZCkiCi0gICAgICAgICAgfSwKLSAgICAgICAgICB7Ci0gICAgICAgICAgICAidGl0bGUiOiAiRW5n
bGlzaCIsCi0gICAgICAgICAgICAiY2hlY2tlZCI6IHRydWUKLSAgICAgICAgICB9LAotICAgICAg
ICAgIHsKLSAgICAgICAgICAgICJ0aXRsZSI6ICJGcmVuY2giCi0gICAgICAgICAgfQotICAgICAg
ICBdCi0gICAgICB9Ci0gICAgXQotICB9Ci1dCi1TZWxlY3RpbmcgZmlyc3QgdGV4dCB0cmFjay4u
LgotUEFTUyBtZWRpYS50ZXh0VHJhY2tzWzBdLm1vZGUgaXMgJ2Rpc2FibGVkJwotUEFTUyBtZWRp
YS50ZXh0VHJhY2tzWzFdLm1vZGUgaXMgJ3Nob3dpbmcnCi1UYXBwaW5nIHRyYWNrcyBidXR0b24u
Li4KLVsKLSAgewotICAgICJjaGlsZHJlbiI6IFsKLSAgICAgIHsKLSAgICAgICAgInRpdGxlIjog
IlN1YnRpdGxlcyIsCi0gICAgICAgICJjaGlsZHJlbiI6IFsKLSAgICAgICAgICB7Ci0gICAgICAg
ICAgICAidGl0bGUiOiAiT2ZmIgotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAg
ICAgInRpdGxlIjogIkF1dG8gKFJlY29tbWVuZGVkKSIsCi0gICAgICAgICAgICAiY2hlY2tlZCI6
IHRydWUKLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgICJ0aXRsZSI6ICJF
bmdsaXNoIgotICAgICAgICAgIH0sCi0gICAgICAgICAgewotICAgICAgICAgICAgInRpdGxlIjog
IkZyZW5jaCIKLSAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICAgIH0KLSAgICBdCi0gIH0KLV0K
LVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LXRleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFw
aS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1z
dXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1h
cGkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWRiYWU5M2MwN2Y5NGEyM2Y2
NDhkYmQ1MGE5NDkyNTk2NTBkOWI5My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LXRleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1l
ZGlhLWFwaS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVy
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8gc3JjPSIuLi8uLi8uLi9jb250ZW50
L2NvdW50aW5nLXN1YnRpdGxlZC5tNHYiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6
IDA7IHRvcDogMDsgd2lkdGg6IDMwMHB4OyIgY29udHJvbHMgYXV0b3BsYXkgbXV0ZWQgcGxheXNp
bmxpbmU+PC92aWRlbz4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbihgVGhpcyB0ZXN0IGNoZWNrcyB0
aGF0IHNldHRpbmcgYW4gZW1iZWRkZWQgdGV4dCB0cmFjayBhcyBzZWxlY3RlZCB2aWEgdGhlIEhU
TUxNZWRpYUVsZW1lbnQgSlMgQVBJcyB3aWxsIGNvcnJlY3RseSBzaG93IHRoaXMgdHJhY2sgYXMg
c2VsZWN0ZWQsIGFuZCB0aGF0IHNlbGVjdGluZyB0aGUgCi0iQXV0b21hdGljIChSZWNvbW1lbmRl
ZCkiIHRyYWNrIHdpbGwgcmV2ZXJ0IGJhY2sgdG8gc2VsZWN0aW5nIHRoYXQgZW50cnkuYCk7Ci0K
LWNvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IHNo
YWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOwotCi1tZWRpYS5h
ZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4gewotICAgIG1lZGlhLnBhdXNlKCk7Ci0KLSAg
ICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9u
LnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVu
dCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCkud2lkdGgiLCAiMCIsIGFzeW5jICgpID0+IHsKLSAgICAgICAgICAgIGRlYnVn
KCJTZXR0aW5nIG1vZGUgdG8gJ3Nob3dpbmcnIGZvciBmaXJzdCB0ZXh0IHRyYWNrIHZpYSBKYXZh
U2NyaXB0Li4uIik7Ci0gICAgICAgICAgICBtZWRpYS50ZXh0VHJhY2tzWzBdLm1vZGUgPSAic2hv
d2luZyI7Ci0KLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBkZWJ1ZygiVGFwcGluZyB0
cmFja3MgYnV0dG9uLi4uIik7Ci0gICAgICAgICAgICAgICAgbGV0IFtjb250ZXh0bWVudV0gPSBh
d2FpdCBQcm9taXNlLmFsbChbCi0gICAgICAgICAgICAgICAgICAgIGdldFRyYWNrc0NvbnRleHRN
ZW51KCksCi0gICAgICAgICAgICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVl
cnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKSwKLSAgICAgICAgICAgICAgICBdKTsKLSAgICAg
ICAgICAgICAgICBkZWJ1ZyhKU09OLnN0cmluZ2lmeShjb250ZXh0bWVudSwgbnVsbCwgMikpOwot
Ci0gICAgICAgICAgICAgICAgZGVidWcoIlNlbGVjdGluZyBmaXJzdCB0ZXh0IHRyYWNrLi4uIik7
Ci0gICAgICAgICAgICAgICAgbGV0IHN1YnRpdGxlc01lbnUgPSBjb250ZXh0bWVudVswXS5jaGls
ZHJlblswXTsKLSAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5jaG9vc2VNZW51QWN0aW9u
KHN1YnRpdGxlc01lbnUudGl0bGUpOwotICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmRl
bGF5Rm9yKDUwMCk7IC8vIGdpdmUgdGltZSBmb3IgdGhlIFVJTWVudSB0byBhbmltYXRlCi0gICAg
ICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuY2hvb3NlTWVudUFjdGlvbihzdWJ0aXRsZXNNZW51
LmNoaWxkcmVuWzFdLnRpdGxlKTsKLSAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0
Rm9yQ29udGV4dE1lbnVUb0hpZGUoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgc2hv
dWxkQmUoIm1lZGlhLnRleHRUcmFja3NbMF0ubW9kZSIsICInZGlzYWJsZWQnIik7Ci0gICAgICAg
ICAgICBzaG91bGRCZSgibWVkaWEudGV4dFRyYWNrc1sxXS5tb2RlIiwgIidzaG93aW5nJyIpOwot
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZGVidWcoIlRhcHBpbmcgdHJhY2tzIGJ1
dHRvbi4uLiIpOwotICAgICAgICAgICAgICAgIGxldCBbY29udGV4dG1lbnVdID0gYXdhaXQgUHJv
bWlzZS5hbGwoWwotICAgICAgICAgICAgICAgICAgICBnZXRUcmFja3NDb250ZXh0TWVudSgpLAot
ICAgICAgICAgICAgICAgICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0
b3IoImJ1dHRvbi50cmFja3MiKSksCi0gICAgICAgICAgICAgICAgXSk7Ci0gICAgICAgICAgICAg
ICAgZGVidWcoSlNPTi5zdHJpbmdpZnkoY29udGV4dG1lbnUsIG51bGwsIDIpKTsKLSAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAgICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19KTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08
L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFkYWMwYjc1NWNjYmE5ODA2OTg5NDM1ZTRm
YmI3ODUzNTA2YWQ5N2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L21hYy90cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotRW5zdXJlIHdlIGhhdmUgdGhlIEF1dG8gdGV4dCB0
cmFjayBzZWxlY3RlZCBieSBkZWZhdWx0LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0K
LQotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNhbWUg
ZGlmZmVyZW50IGZyb20gbnVsbAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRv
bi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVyZW50
IGZyb20gMAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKSBi
ZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JB
bGwoJ2xpLnNlbGVjdGVkJylbMV0udGV4dENvbnRlbnQgaXMgIkF1dG8gKFJlY29tbWVuZGVkKSIK
LQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
c3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtYXV0by10ZXh0LXRyYWNrLmh0bWwgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNr
cy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBhM2ZmNzc5ZjI5M2ZmMWNjNTc4ZDU3YjY1OGJjYjQzMGZjNWZhZDMyLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtYXV0
by10ZXh0LXRyYWNrLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9s
cy11dGlscy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KLTxib2R5PgotPHZp
ZGVvIHNyYz0iLi4vLi4vLi4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRp
b246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiA2NDBweDsgaGVpZ2h0OiAzNjBw
eDsiIGNvbnRyb2xzIGF1dG9wbGF5PjwvdmlkZW8+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oIkVu
c3VyZSB3ZSBoYXZlIHRoZSBBdXRvIHRleHQgdHJhY2sgc2VsZWN0ZWQgYnkgZGVmYXVsdC4iKTsK
LQotY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qg
c2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlh
LmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7Ci0gICAgbWVkaWEucGF1c2UoKTsKLQot
ICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0
b24udHJhY2tzJykiLCAibnVsbCIsICgpID0+IHsKLSAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVy
ZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKS53aWR0aCIsICIwIiwgKCkgPT4gewotICAgICAgICAgICAgd2luZG93Lmlu
dGVybmFscy5zZXRDYXB0aW9uRGlzcGxheU1vZGUoImF1dG9tYXRpYyIpOwotICAgICAgICAgICAg
cHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikp
OwotICAgICAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2Vs
ZWN0b3IoJy50cmFja3MtcGFuZWwnKSIsICJudWxsIiwgKCkgPT4gewotICAgICAgICAgICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdsaS5z
ZWxlY3RlZCcpWzFdLnRleHRDb250ZW50IiwgIkF1dG8gKFJlY29tbWVuZGVkKSIpOwotICAgICAg
ICAgICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNl
dENhcHRpb25EaXNwbGF5TW9kZSgiZm9yY2Vkb25seSIpOwotICAgICAgICAgICAgICAgIG1lZGlh
LnJlbW92ZSgpOwotICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICAgICAg
fSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotfSk7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1jbGljay10cmFjay1pbi1wYW5lbC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWNsaWNrLXRyYWNrLWluLXBhbmVsLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTI5NDExMDViZmE5Y2VmMjZmN2Mz
MGY4YjlkYzUzMjY5M2YzNWIyZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWNsaWNrLXRyYWNrLWluLXBhbmVsLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLUNsaWNraW5nIG9uIGEgdHJhY2sg
aW4gdGhlIHRyYWNrcyBwYW5lbC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLW1l
ZGlhLmF1ZGlvVHJhY2tzWzBdLmVuYWJsZWQgPSB0cnVlCi1tZWRpYS5hdWRpb1RyYWNrc1sxXS5l
bmFibGVkID0gZmFsc2UKLW1lZGlhLmF1ZGlvVHJhY2tzWzJdLmVuYWJsZWQgPSBmYWxzZQotCi1Q
QVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZm
ZXJlbnQgZnJvbSBudWxsCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRy
YWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJv
bSAwCi0KLUNsaWNraW5nIG9uIHRoZSB0cmFja3MgYnV0dG9uCi1DbGlja2luZyBvbiBzZWNvbmQg
YXVkaW8gdHJhY2sgaW4gdHJhY2tzIHBhbmVsCi0KLU9idGFpbmVkIGNoYW5nZSBldmVudCBvbiBt
ZWRpYSBhdWRpbyB0cmFja3MKLW1lZGlhLmF1ZGlvVHJhY2tzWzBdLmVuYWJsZWQgPSBmYWxzZQot
bWVkaWEuYXVkaW9UcmFja3NbMV0uZW5hYmxlZCA9IHRydWUKLW1lZGlhLmF1ZGlvVHJhY2tzWzJd
LmVuYWJsZWQgPSBmYWxzZQotCi1DbGlja2luZyBvbiB0aGUgdHJhY2tzIGJ1dHRvbgotQ2xpY2tp
bmcgb24gdGhpcmQgYXVkaW8gdHJhY2sgaW4gdHJhY2tzIHBhbmVsCi0KLU9idGFpbmVkIGNoYW5n
ZSBldmVudCBvbiBtZWRpYSBhdWRpbyB0cmFja3MKLW1lZGlhLmF1ZGlvVHJhY2tzWzBdLmVuYWJs
ZWQgPSBmYWxzZQotbWVkaWEuYXVkaW9UcmFja3NbMV0uZW5hYmxlZCA9IGZhbHNlCi1tZWRpYS5h
dWRpb1RyYWNrc1syXS5lbmFibGVkID0gdHJ1ZQotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1j
bGljay10cmFjay1pbi1wYW5lbC5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1jbGljay10cmFjay1p
bi1wYW5lbC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZmIyY2IzYzNhMzA3
YzA5ZTNjOWMwZmZlYWU5ZTYyNDcxNTE0OTg3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtY2xpY2stdHJhY2staW4tcGFuZWwu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDk3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Ci08Ym9keT4KLTx2aWRlbyBzcmM9Ii4uLy4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVzLm1vdiIg
c3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDogNjQwcHg7
IGhlaWdodDogMzYwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgotPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRl
c2NyaXB0aW9uKCJDbGlja2luZyBvbiBhIHRyYWNrIGluIHRoZSB0cmFja3MgcGFuZWwuIik7Ci0K
LWNvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IHNo
YWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOwotCi1sZXQgcHJl
dmlvdXNseVNlbGVjdGVkVHJhY2sgPSAwOwotCi1tZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5
IiwgKCkgPT4gewotICAgIG1lZGlhLnBhdXNlKCk7Ci0KLSAgICBkdW1wQXVkaW9UcmFja3NFbmFi
bGVkU3RhdGUoKTsKLQotICAgIG1lZGlhLmF1ZGlvVHJhY2tzLmFkZEV2ZW50TGlzdGVuZXIoImNo
YW5nZSIsIGF1ZGlvVHJhY2tzRGlkQ2hhbmdlKTsKLQotICAgIGRlYnVnKCIiKTsKLSAgICBzaG91
bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNr
cycpIiwgIm51bGwiLCAoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hh
ZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCkud2lkdGgiLCAiMCIsICgpID0+IHsKLSAgICAgICAgICAgIGNsaWNrT25UcmFja3NCdXR0
b24oY2xpY2tPblNlY29uZEF1ZGlvVHJhY2spOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0pOwot
Ci1mdW5jdGlvbiBjbGlja09uVHJhY2tzQnV0dG9uKGNvbnRpbnVhdGlvbikKLXsKLSAgICB3aW5k
b3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKLSAgICAgICAgZGVidWcoIiIpOwotICAg
ICAgICBkZWJ1ZygiQ2xpY2tpbmcgb24gdGhlIHRyYWNrcyBidXR0b24iKTsKLSAgICAgICAgY2xp
Y2tPbkVsZW1lbnQoc2hhZG93Um9vdC5sYXN0Q2hpbGQucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRy
YWNrcyIpKTsKLSAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShjb250aW51YXRp
b24pOwotICAgIH0pOwotfQotCi1mdW5jdGlvbiBjbGlja09uU2Vjb25kQXVkaW9UcmFjaygpCi17
Ci0gICAgZGVidWcoIkNsaWNraW5nIG9uIHNlY29uZCBhdWRpbyB0cmFjayBpbiB0cmFja3MgcGFu
ZWwiKTsKLSAgICBjbGlja09uQXVkaW9UcmFja0F0SW5kZXgoMSk7Ci19Ci0KLWZ1bmN0aW9uIGNs
aWNrT25UaGlyZEF1ZGlvVHJhY2soKQotewotICAgIGRlYnVnKCJDbGlja2luZyBvbiB0aGlyZCBh
dWRpbyB0cmFjayBpbiB0cmFja3MgcGFuZWwiKTsKLSAgICBjbGlja09uQXVkaW9UcmFja0F0SW5k
ZXgoMik7Ci19Ci0KLWZ1bmN0aW9uIGNsaWNrT25BdWRpb1RyYWNrQXRJbmRleChpbmRleCkKLXsK
LSAgICBjbGlja09uRWxlbWVudChzaGFkb3dSb290Lmxhc3RDaGlsZC5xdWVyeVNlbGVjdG9yQWxs
KCJsaSIpW2luZGV4XSk7Ci19Ci0KLWZ1bmN0aW9uIGNsaWNrT25FbGVtZW50KGVsZW1lbnQpCi17
Ci0gICAgY29uc3QgYm91bmRzID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAg
ICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhib3VuZHMubGVmdCArIDEsIGJvdW5kcy50b3AgKyAx
KTsKLSAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVVw
KCk7Ci19Ci0KLWZ1bmN0aW9uIGF1ZGlvVHJhY2tzRGlkQ2hhbmdlKCkKLXsKLSAgICBjb25zdCBu
ZXdTZWxlY3RlZFRyYWNrID0gQXJyYXkuZnJvbShtZWRpYS5hdWRpb1RyYWNrcykuZmluZEluZGV4
KHRyYWNrID0+IHRyYWNrLmVuYWJsZWQpOwotICAgIGlmIChwcmV2aW91c2x5U2VsZWN0ZWRUcmFj
ayA9PT0gbmV3U2VsZWN0ZWRUcmFjaykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgcHJldmlvdXNs
eVNlbGVjdGVkVHJhY2sgPSBuZXdTZWxlY3RlZFRyYWNrOwotCi0gICAgZGVidWcoIiIpOwotICAg
IGRlYnVnKCJPYnRhaW5lZCBjaGFuZ2UgZXZlbnQgb24gbWVkaWEgYXVkaW8gdHJhY2tzIik7Ci0K
LSAgICBkdW1wQXVkaW9UcmFja3NFbmFibGVkU3RhdGUoKTsKLQotICAgIGlmIChtZWRpYS5hdWRp
b1RyYWNrc1sxXS5lbmFibGVkKQotICAgICAgICBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi50
cmFja3MtcGFuZWwiKS5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIiwgZXZlbnQgPT4g
Y2xpY2tPblRyYWNrc0J1dHRvbihjbGlja09uVGhpcmRBdWRpb1RyYWNrKSk7Ci0gICAgZWxzZSBp
ZiAobWVkaWEuYXVkaW9UcmFja3NbMl0uZW5hYmxlZCkgewotICAgICAgICBkZWJ1ZygiIik7Ci0g
ICAgICAgIG1lZGlhLnJlbW92ZSgpOwotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICB9Ci19
Ci0KLWZ1bmN0aW9uIGR1bXBBdWRpb1RyYWNrc0VuYWJsZWRTdGF0ZSgpCi17Ci0gICAgQXJyYXku
ZnJvbShtZWRpYS5hdWRpb1RyYWNrcykuZm9yRWFjaCgoYXVkaW9UcmFjaywgaW5kZXgpID0+IHsK
LSAgICAgICAgZGVidWcoYG1lZGlhLmF1ZGlvVHJhY2tzWyR7aW5kZXh9XS5lbmFibGVkID0gJHtt
ZWRpYS5hdWRpb1RyYWNrc1tpbmRleF0uZW5hYmxlZH1gKTsKLSAgICB9KTsKLX0KLQotPC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWhpZGRlbi10
cmFja3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2FkM2ZjMTk2YjY1OTk1ZjNh
NzA0YzdjMjE3ODBmNTMzMjZhYjg0ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWhpZGRlbi10cmFja3MtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRo
ZSB0cmFja3MgcGFuZWwgZG9lc24ndCBzaG93IGFueSB0cmFjayBhcyBzZWxlY3RlZCBpZiBhbGwg
dGhlIHRleHQgdHJhY2tzIGZvciBhIG1lZGlhIGVsZW1lbnQgYXJlIG1hcmtlZCBhcyAiaGlkZGVu
Ii4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgc2hhZG93Um9vdC5xdWVy
eVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKLVBB
U1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCkud2lkdGggYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKLQotPT09IEluaXRpYWwg
c3RhdGUgPT09Ci0KLVt4XSBPZmYKLVstXSBBdXRvIChSZWNvbW1lbmRlZCkKLVstXSBFbmdsaXNo
IFN1YnRpdGxlcwotWy1dIEZyZW5jaCBTdWJ0aXRsZXMKLVstXSBHZXJtYW4gU3VidGl0bGVzCi1b
LV0gU3BhbmlzaCBTdWJ0aXRsZXMKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQot
Ci1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRy
YWNrcy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5YTJiNTM3NjcxMWNmZDkyYThjNGQ5ZDkxODE2Y2JlZWRj
MGU4M2YuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90
cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MiAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8gc3JjPSIuLi8uLi8u
Li9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxl
ZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDY0MHB4OyBoZWlnaHQ6IDM2MHB4OyIgY29udHJvbHMgYXV0
b3BsYXk+PC92aWRlbz4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbihgVGhpcyB0ZXN0IGNoZWNrcyB0
aGF0IHRoZSB0cmFja3MgcGFuZWwgZG9lc24ndCBzaG93IGFueSB0cmFjayBhcyBzZWxlY3RlZCBp
ZiBhbGwgdGhlIHRleHQgdHJhY2tzIGZvciBhIG1lZGlhIGVsZW1lbnQgYXJlIG1hcmtlZCBhcyAi
aGlkZGVuIi5gKTsKLQotY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRl
byIpOwotY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRp
YSk7Ci0KLW1lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7Ci0gICAgbWVkaWEu
cGF1c2UoKTsKLQotICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNl
bGVjdG9yKCdidXR0b24udHJhY2tzJykiLCAibnVsbCIsICgpID0+IHsKLSAgICAgICAgc2hvdWxk
QmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3Mn
KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCIsICIwIiwgcnVuVGVzdCk7Ci0gICAgfSk7
Ci19KTsKLQotYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCi17Ci0gICAgLy8gU3RhcnQgYnkgbWFr
aW5nIHN1cmUgYWxsIHRyYWNrcyBhcmUgbWFya2VkIGFzICJoaWRkZW4iLgotICAgIEFycmF5LmZy
b20obWVkaWEudGV4dFRyYWNrcykuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5tb2RlID0gImhpZGRl
biIpOwotCi0gICAgLy8gTmV4dCwgYnJpbmcgdXAgdGhlIHRyYWNrcyBtZW51IGJ5IGNsaWNraW5n
IG9uIHRoZSB0cmFja3MgYnV0dG9uLgotICAgIGF3YWl0IGNsaWNrT25UcmFja3NCdXR0b24oKTsK
LSAgICAvLyBEdW1wIHRoZSBzdGF0ZSBvZiB0aGUgdHJhY2tzIG1lbnUgZm9yIHRleHQgdHJhY2tz
LCB3aGljaCBzaG91bGQgc2hvdyB0aGUgZmlyc3QgZW1iZWRkZWQgdGV4dCB0cmFjayBhcyBzZWxl
Y3RlZC4KLSAgICBkdW1wVGV4dFRyYWNrc0xpc3ROb2RlcygiSW5pdGlhbCBzdGF0ZSIpOwotCi0g
ICAgZmluaXNoVGVzdCgpOwotfQotCi1mdW5jdGlvbiB0ZXh0VHJhY2tzTGlzdE5vZGVzKCkKLXsK
LSAgICByZXR1cm4gc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCIudHJhY2tzLXBhbmVsIHNl
Y3Rpb246bGFzdC1vZi10eXBlID4gdWwgPiBsaSIpOwotfQotCi1mdW5jdGlvbiBkdW1wVGV4dFRy
YWNrc0xpc3ROb2Rlcyhtc2cpCi17Ci0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKGA9PT0gJHtt
c2d9ID09PWApOwotICAgIGRlYnVnKCIiKTsKLSAgICBBcnJheS5mcm9tKHRleHRUcmFja3NMaXN0
Tm9kZXMoKSkuZm9yRWFjaChsaSA9PiBkZWJ1ZyhgJHtsaS5jbGFzc0xpc3QuY29udGFpbnMoInNl
bGVjdGVkIikgPyAiW3hdIiA6ICJbLV0ifSAke2xpLnRleHRDb250ZW50fWApKTsKLX0KLQotYXN5
bmMgZnVuY3Rpb24gY2xpY2tPblRyYWNrc0J1dHRvbigpCi17Ci0gICAgYXdhaXQgbmV3IFByb21p
c2UocmVxdWVzdEFuaW1hdGlvbkZyYW1lKTsKLSAgICBjbGlja09uRWxlbWVudChzaGFkb3dSb290
Lmxhc3RDaGlsZC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpOwotICAgIGF3YWl0IG5l
dyBQcm9taXNlKHJlcXVlc3RBbmltYXRpb25GcmFtZSk7Ci19Ci0KLWZ1bmN0aW9uIGNsaWNrT25F
bGVtZW50KGVsZW1lbnQpCi17Ci0gICAgY29uc3QgYm91bmRzID0gZWxlbWVudC5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKTsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhib3VuZHMubGVmdCAr
IDEsIGJvdW5kcy50b3AgKyAxKTsKLSAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICBl
dmVudFNlbmRlci5tb3VzZVVwKCk7Ci19Ci0KLWZ1bmN0aW9uIGZpbmlzaFRlc3QoKQotewotICAg
IGRlYnVnKCIiKTsKLSAgICBtZWRpYS5yZW1vdmUoKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0K
LQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0
LW9mZi10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQt
dHJhY2stZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYjNlMzE4
MDVkZWU4MjdmOGI3ZThhZjExYTBmYmI5NjUwNWU4MTdkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJhY2st
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotRW5zdXJlIHdlIGhh
dmUgdGhlIE9mZiB0ZXh0IHRyYWNrIHNlbGVjdGVkIGJ5IGRlZmF1bHQuCi0KLU9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9u
LnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCi1QQVNTIHNoYWRvd1Jvb3QucXVl
cnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRo
IGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcign
LnRyYWNrcy1wYW5lbCcpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCi1QQVNTIHNoYWRvd1Jv
b3QucXVlcnlTZWxlY3RvckFsbCgnbGkuc2VsZWN0ZWQnKVsxXS50ZXh0Q29udGVudCBpcyAiT2Zm
IgotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay5odG1sIGIvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFj
a3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBmNjA4MDg3ODQ0NTUwZDk3ZTdjYWM4N2FiMjZkNTNkZDY4NDFjZDNjLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtb2Zm
LXRleHQtdHJhY2suaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xz
LXV0aWxzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlk
ZW8gc3JjPSIuLi8uLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJwb3NpdGlv
bjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDY0MHB4OyBoZWlnaHQ6IDM2MHB4
OyIgY29udHJvbHMgYXV0b3BsYXk+PC92aWRlbz4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbigiRW5z
dXJlIHdlIGhhdmUgdGhlIE9mZiB0ZXh0IHRyYWNrIHNlbGVjdGVkIGJ5IGRlZmF1bHQuIik7Ci0K
LWNvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IHNo
YWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOwotCi1tZWRpYS5h
ZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4gewotICAgIG1lZGlhLnBhdXNlKCk7Ci0KLSAg
ICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9u
LnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVu
dCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCkud2lkdGgiLCAiMCIsICgpID0+IHsKLSAgICAgICAgICAgIHByZXNzT25FbGVt
ZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKTsKLSAgICAgICAg
ICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJh
Y2tzLXBhbmVsJykiLCAibnVsbCIsICgpID0+IHsKLSAgICAgICAgICAgICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnbGkuc2VsZWN0ZWQnKVsx
XS50ZXh0Q29udGVudCIsICJPZmYiKTsKLSAgICAgICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAg
ICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0
KCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19KTsKLQotPC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctYW5k
LXBvcHVsYXRlLXBhbmVsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1hbmQt
cG9wdWxhdGUtcGFuZWwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwNTJkNmNiMTk4Nzg4MDU4OWNhMGVjOGFkZTAwMDcxMTdiM2FkNTA3Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1h
bmQtcG9wdWxhdGUtcGFuZWwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAs
MCBAQAotU2hvd2luZyBhbmQgcG9wdWxhdGluZyB0aGUgdHJhY2tzIHBhbmVsLgotCi1PbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCi0KLQotQXVkaW8KLSAgRW5nbGlzaCBTb3VuZAotICBGcmVuY2gg
U291bmQKLSAgU3BhbmlzaCBTb3VuZAotCi1TdWJ0aXRsZXMKLSAgT2ZmCi0gIEF1dG8gKFJlY29t
bWVuZGVkKQotICBFbmdsaXNoIFN1YnRpdGxlcwotICBGcmVuY2ggU3VidGl0bGVzCi0gIEdlcm1h
biBTdWJ0aXRsZXMKLSAgU3BhbmlzaCBTdWJ0aXRsZXMKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBv
cnQtc2hvdy1hbmQtcG9wdWxhdGUtcGFuZWwuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1h
bmQtcG9wdWxhdGUtcGFuZWwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTNi
M2FiN2JhZTMyNGI4MWJkMWFmMDNjNGM5NTE4Mzk2YjkyZGQ0OC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctYW5kLXBv
cHVsYXRlLXBhbmVsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8gc3JjPSIuLi8uLi8uLi9jb250ZW50L0NDK1N1
YnRpdGxlcy5tb3YiIHN0eWxlPSJ3aWR0aDogNjQwcHg7IGhlaWdodDogMzYwcHg7IiBjb250cm9s
cyBhdXRvcGxheT48L3ZpZGVvPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13
aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJTaG93aW5nIGFuZCBw
b3B1bGF0aW5nIHRoZSB0cmFja3MgcGFuZWwuIik7Ci0KLWNvbnN0IG1lZGlhID0gZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJu
YWxzLnNoYWRvd1Jvb3QobWVkaWEpOwotCi1tZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5Iiwg
KCkgPT4gewotICAgIG1lZGlhLnBhdXNlKCk7Ci0gICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25G
cmFtZSgoKSA9PiB7Ci0gICAgICAgIGNsaWNrT25UcmFja3NCdXR0b24oKTsKLSAgICAgICAgd2lu
ZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAgICAgICAgICBsaXN0Q29udGVu
dHNPZlRyYWNrc1BhbmVsKCk7Ci0gICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsKLSAgICAgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0pOwotCi1mdW5jdGlv
biBjbGlja09uVHJhY2tzQnV0dG9uKCkKLXsKLSAgICBjb25zdCBib3VuZHMgPSBzaGFkb3dSb290
Lmxhc3RDaGlsZC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikuZ2V0Qm91bmRpbmdDbGll
bnRSZWN0KCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYm91bmRzLmxlZnQgKyAxLCBi
b3VuZHMudG9wICsgMSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgZXZlbnRT
ZW5kZXIubW91c2VVcCgpOwotfQotCi1mdW5jdGlvbiBsaXN0Q29udGVudHNPZlRyYWNrc1BhbmVs
KCkKLXsKLSAgICBmb3IgKGxldCBzZWN0aW9uIG9mIHNoYWRvd1Jvb3QubGFzdENoaWxkLnF1ZXJ5
U2VsZWN0b3JBbGwoInNlY3Rpb24iKSkgewotICAgICAgICBkZWJ1ZyhzZWN0aW9uLnF1ZXJ5U2Vs
ZWN0b3IoImgzIikudGV4dENvbnRlbnQpOwotICAgICAgICBmb3IgKGxldCBpdGVtIG9mIHNlY3Rp
b24ucXVlcnlTZWxlY3RvckFsbCgibGkiKSkKLSAgICAgICAgICAgIGRlYnVnKCIgICIgKyBpdGVt
LnRleHRDb250ZW50KTsKLSAgICAgICAgZGVidWcoIiIpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwt
YWZ0ZXItZHJhZ2dpbmctY29udHJvbHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1z
aG93LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNvbnRyb2xzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDk4NDMwYmYzOGYxMjY2MGI4ZWZjYzc5NjE2ZWYxODRiNTEw
ODRlOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3Ry
YWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmctY29udHJvbHMtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotVGVzdGluZyB0aGUgZGlzcGxheSBv
ZiBhIHRyYWNrcyBwYW5lbCBhZnRlciBkcmFnZ2luZyB0aGUgY29udHJvbHMgYmFyIGluIGZ1bGxz
Y3JlZW4uCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHNoYWRvd1Jvb3Qu
cXVlcnlTZWxlY3RvcignYnV0dG9uLmZ1bGxzY3JlZW4nKS5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KSBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3Io
J2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSBiZWNhbWUgZGlmZmVyZW50
IGZyb20gMAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCBpcyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3Io
Jy50cmFja3MtcGFuZWwnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodAotUEFTUyBzaGFk
b3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5zdHlsZS5ib3R0b20gaXMgIjE1
MXB4IgotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFmdGVyLWRyYWdnaW5n
LWNvbnRyb2xzLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dp
bmctY29udHJvbHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmFiYWI5MDU4
NThmY2FlZjk4YjI5OGNlNzcwZjliMWI2Njg2NjgxOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXIt
ZHJhZ2dpbmctY29udHJvbHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL21lZGlhLWNv
bnRyb2xzLXV0aWxzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPGJvZHk+
Ci08dmlkZW8gc3JjPSIuLi8uLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJ3
aWR0aDogMzIwcHg7IGhlaWdodDogMjQwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgot
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJUZXN0aW5nIHRoZSBkaXNwbGF5IG9mIGEgdHJhY2tzIHBh
bmVsIGFmdGVyIGRyYWdnaW5nIHRoZSBjb250cm9scyBiYXIgaW4gZnVsbHNjcmVlbi4iKTsKLQot
Y29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qgc2hh
ZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlhLmFk
ZEV2ZW50TGlzdGVuZXIoIndlYmtpdGJlZ2luZnVsbHNjcmVlbiIsICgpID0+IHsKLSAgICBkZWJ1
Zygid2Via2l0YmVnaW5mdWxsc2NyZWVuIik7Ci19KTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5l
cigid2Via2l0ZnVsbHNjcmVlbmNoYW5nZSIsICgpID0+IHsKLSAgICBpZiAoIW1lZGlhLndlYmtp
dERpc3BsYXlpbmdGdWxsc2NyZWVuKQotICAgICAgICByZXR1cm47Ci0KLSAgICB3aW5kb3cucmVx
dWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKLSAgICAgICAgY29uc3QgYm91bmRzID0gc2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yKCIuY29udHJvbHMtYmFyIikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGJvdW5kcy5sZWZ0ICsgMTE4LCBi
b3VuZHMudG9wICsgMTApOwotICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYm91bmRzLmxlZnQgKyA2OCwgYm91bmRzLnRvcCAt
IDQwKTsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotCi0gICAgICAgIHJlcXVlc3RB
bmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAgICAgICAgICBjbGlja09uQnV0dG9uKCJ0cmFja3Mi
LCAoKSA9PiB7Ci0gICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsK
LSAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcign
YnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0IiwgInNoYWRvd1Jv
b3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
LnJpZ2h0IikKLSAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzaGFk
b3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5zdHlsZS5ib3R0b20iLCAiMTUx
cHgiKTsKLQotICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICAgICAg
ICAgIG1lZGlhLnJlbW92ZSgpOwotICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
LSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9
KTsKLX0pOwotCi1tZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4gewotICAgIG1l
ZGlhLnBhdXNlKCk7Ci0gICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiBjbGlj
a09uQnV0dG9uKCJmdWxsc2NyZWVuIikpOwotfSk7Ci0KLWZ1bmN0aW9uIGNsaWNrT25CdXR0b24o
bmFtZSwgY29udGludWF0aW9uKQotewotICAgIHNob3VsZEJlY29tZURpZmZlcmVudChgc2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24uJHtuYW1lfScpLmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpYCwgIjAiLCAoKSA9PiB7Ci0gICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVl
cnlTZWxlY3RvcihgYnV0dG9uLiR7bmFtZX1gKSwgY29udGludWF0aW9uKTsKLSAgICB9KTsKLX0K
LQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0
LXNob3ctcGFuZWwtZnVsbHNjcmVlbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNo
b3ctcGFuZWwtZnVsbHNjcmVlbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDUyNTNlYTBmZTQwNTk2OTIxNGE4NzI3ZTUxOWUxNjFjMmY2Nzg5NTQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1z
aG93LXBhbmVsLWZ1bGxzY3JlZW4tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjIg
KzAsMCBAQAotU2hvd2luZyB0aGUgdHJhY2tzIHBhbmVsIGluIGZ1bGxzY3JlZW4uCi0KLU9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIGludGVybmFscy5zaGFkb3dSb290KG1lZGlh
KS5xdWVyeVNlbGVjdG9yKCJidXR0b24uZnVsbHNjcmVlbiIpIGJlY2FtZSBkaWZmZXJlbnQgZnJv
bSBudWxsCi1QQVNTIGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJi
dXR0b24uZnVsbHNjcmVlbiIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBk
aWZmZXJlbnQgZnJvbSAwCi13ZWJraXRmdWxsc2NyZWVuY2hhbmdlIGV2ZW50IGlzIGZpcmVkCi1Q
QVNTIGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZShtZWRpYSkgYmVjYW1lIGZh
bHNlCi1QQVNTIGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJidXR0
b24udHJhY2tzIikgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1MgaW50ZXJuYWxzLnNo
YWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKS5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAotUEFTUyBpbnRlcm5h
bHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpLmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0IGJlY2FtZSA1ODIKLVBBU1MgaW50ZXJuYWxzLnNoYWRv
d1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKSBiZWNhbWUgZGlmZmVy
ZW50IGZyb20gbnVsbAotUEFTUyBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxl
Y3RvcignLnRyYWNrcy1wYW5lbCcpLnN0eWxlLnJpZ2h0IGlzICIyMThweCIKLVBBU1MgaW50ZXJu
YWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5zdHls
ZS5ib3R0b20gaXMgIjEwMXB4IgotCi13ZWJraXRmdWxsc2NyZWVuY2hhbmdlIGV2ZW50IGlzIGZp
cmVkCi1QQVNTIGludGVybmFscy5pc0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZShtZWRpYSkgYmVj
YW1lIGZhbHNlCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExF
VEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1bGxzY3JlZW4u
aHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3Vw
cG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1mdWxsc2NyZWVuLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlNmFhMGRlZTJmN2Q2Y2E1N2FlN2Q1ZGRlYTI4MmFl
OGFiNWUwYWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21h
Yy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1bGxzY3JlZW4uaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDU4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzIiB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8gc3JjPSIuLi8uLi8uLi9jb250ZW50L0ND
K1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJ3aWR0aDogMzIwcHg7IGhlaWdodDogMjQwcHg7IiBjb250
cm9scyBhdXRvcGxheT48L3ZpZGVvPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgot
Ci13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJTaG93aW5nIHRo
ZSB0cmFja3MgcGFuZWwgaW4gZnVsbHNjcmVlbi4iKTsKLQotc2V0VGltZW91dCgoKSA9PiB7Ci0g
ICAgZGVidWcoIkZBSUw6IGRpZCBub3QgZW5kIGZhc3QgZW5vdWdoIik7Ci0gICAgZmluaXNoSlNU
ZXN0KCk7Ci19LCAxMDAwMCk7Ci0KLWludGVybmFscy5zZXRNb2NrVmlkZW9QcmVzZW50YXRpb25N
b2RlRW5hYmxlZCh0cnVlKTsKLQotY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCJ2aWRlbyIpOwotCi1tZWRpYS5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRmdWxsc2NyZWVuY2hh
bmdlIiwgKCkgPT4gewotICAgIGRlYnVnKCJ3ZWJraXRmdWxsc2NyZWVuY2hhbmdlIGV2ZW50IGlz
IGZpcmVkIik7Ci0gICAgc2hvdWxkQmVjb21lRXF1YWwoImludGVybmFscy5pc0NoYW5naW5nUHJl
c2VudGF0aW9uTW9kZShtZWRpYSkiLCAiZmFsc2UiLCAoKSA9PiB7Ci0gICAgICAgIGlmICghbWVk
aWEud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4pIHsKLSAgICAgICAgICAgIG1lZGlhLnJlbW92
ZSgpOwotICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgIH0KLQotICAgICAgICBz
aG91bGRCZWNvbWVEaWZmZXJlbnQoYGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNl
bGVjdG9yKCJidXR0b24udHJhY2tzIilgLCAibnVsbCIsICgpID0+IHsKLSAgICAgICAgICAgIHNo
b3VsZEJlY29tZURpZmZlcmVudChgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2Vs
ZWN0b3IoImJ1dHRvbi50cmFja3MiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aGAsICIw
IiwgKCkgPT4gewotICAgICAgICAgICAgICAgIHNob3VsZEJlY29tZUVxdWFsKGBpbnRlcm5hbHMu
c2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpLmdldEJvdW5k
aW5nQ2xpZW50UmVjdCgpLnJpZ2h0YCwgIjU4MiIsIGFzeW5jICgpID0+IHsKLSAgICAgICAgICAg
ICAgICAgICAgYXdhaXQgVUlIZWxwZXIucmVuZGVyaW5nVXBkYXRlKCk7Ci0gICAgICAgICAgICAg
ICAgICAgIHByZXNzT25FbGVtZW50KGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNl
bGVjdG9yKCJidXR0b24udHJhY2tzIikpOwotICAgICAgICAgICAgICAgICAgICBzaG91bGRCZWNv
bWVEaWZmZXJlbnQoYGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCcu
dHJhY2tzLXBhbmVsJylgLCAibnVsbCIsICgpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygiaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5
U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5zdHlsZS5yaWdodCIsICIyMThweCIpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJpbnRlcm5hbHMuc2hhZG93
Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpLnN0eWxlLmJvdHRvbSIs
ICIxMDFweCIpOwotICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoIiIpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgbWVkaWEud2Via2l0RXhpdEZ1bGxzY3JlZW4oKTsKLSAgICAgICAgICAg
ICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAg
ICAgfSk7Ci0gICAgfSk7Ci19KTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgp
ID0+IHsKLSAgICBtZWRpYS5wYXVzZSgpOwotICAgIHNob3VsZEJlY29tZURpZmZlcmVudChgaW50
ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi5mdWxsc2NyZWVu
IilgLCAibnVsbCIsICgpID0+IHsKLSAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KGBpbnRl
cm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcigiYnV0dG9uLmZ1bGxzY3JlZW4i
KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aGAsICIwIiwgKCkgPT4gewotICAgICAgICAg
ICAgcHJlc3NPbkVsZW1lbnQoaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0
b3IoYGJ1dHRvbi5mdWxsc2NyZWVuYCkpOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0pOwotCi08
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hv
dy1wYW5lbC10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9t
YWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3Mt
YnV0dG9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOThiZDc3
OGMyODIyZjgzZjRjZmU4ZTEzNDE1MmYwN2EyNGMxNDZhYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtdGhl
bi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwxNSArMCwwIEBACi1FbnN1cmUgdGhhdCBkb3VibGUtY2xpY2tpbmcgdGhlIHRyYWNr
cyBidXR0b24gd2hlbiB0aGUgdHJhY2tzIHBhbmVsIG1ha2VzIHRoZSBwYW5lbCBhcHBlYXIgYWdh
aW4uCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1NZWRpYSBzdGFydGVkIHBsYXlp
bmcKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykgYmVjYW1l
IGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0
b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggYmVjYW1lIGRpZmZlcmVu
dCBmcm9tIDAKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykg
YmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCcudHJhY2tzLXBhbmVsJykgaXMgbm90IG51bGwKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQt
c2hvdy1wYW5lbC10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLmh0bWwgYi9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3Ry
YWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRv
bi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NWVkMDQyZDQ3Y2QxYWIxYmFm
YTA2NmVhZjk4NGE4NjZlN2M2M2NkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC10aGVuLWRvdWJsZS1jbGlj
ay1vbi10cmFja3MtYnV0dG9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9tZWRpYS1j
b250cm9scy11dGlscy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KLTxib2R5
PgotPHZpZGVvIHNyYz0iLi4vLi4vLi4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0i
cG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiA2NDBweDsgaGVpZ2h0
OiAzNjBweDsiIGNvbnRyb2xzIGF1dG9wbGF5PjwvdmlkZW8+Ci08c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRp
b24oIkVuc3VyZSB0aGF0IGRvdWJsZS1jbGlja2luZyB0aGUgdHJhY2tzIGJ1dHRvbiB3aGVuIHRo
ZSB0cmFja3MgcGFuZWwgbWFrZXMgdGhlIHBhbmVsIGFwcGVhciBhZ2Fpbi4iKTsKLQotY29uc3Qg
bWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qgc2hhZG93Um9v
dCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlhLmFkZEV2ZW50
TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7Ci0gICAgbWVkaWEucGF1c2UoKTsKLQotICAgIGRlYnVn
KCJNZWRpYSBzdGFydGVkIHBsYXlpbmciKTsKLSAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7
Ci0gICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIsICgp
ID0+IHsKLSAgICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cigiYnV0dG9uLnRyYWNrcyIpKTsKLSAgICAgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgi
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykiLCAibnVsbCIsICgpID0+
IHsKLSAgICAgICAgICAgICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0
b3IoImJ1dHRvbi50cmFja3MiKSk7Ci0gICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZy
YW1lKCgpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9v
dC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpOwotICAgICAgICAgICAgICAgICAgICAv
LyBHaXZlIHRoZSB0cmFuc2l0aW9uZW5kIGV2ZW50IHRpbWUgdG8gZmlyZSBpZiBpdCB3ZXJlIHRv
IGhhcHBlbiwgd2hpY2ggaXQgc2hvdWxkIG5vdC4KLSAgICAgICAgICAgICAgICAgICAgc2V0VGlt
ZW91dCgoKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzaG91bGROb3RCZSgic2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykiLCAibnVsbCIpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgZGVidWcoIiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgbWVkaWEu
cmVtb3ZlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAg
ICAgICAgICAgICAgICAgfSwgNTAwKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
IH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0pOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9k
eT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxlY3RlZC12aWEt
bWVkaWEtYXBpLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxl
Y3RlZC12aWEtbWVkaWEtYXBpLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNWM4YzczNDU2MGJlODg4ZTJlNDhlMTlmZTVhZDNkNjVjNTE5M2E1My4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXRl
eHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwzMCArMCwwIEBACi1UaGlzIHRlc3QgY2hlY2tzIHRoYXQgc2V0dGluZyBhbiBlbWJl
ZGRlZCB0ZXh0IHRyYWNrIGFzIHNlbGVjdGVkIHZpYSB0aGUgSFRNTE1lZGlhRWxlbWVudCBKUyBB
UElzIHdpbGwgY29ycmVjdGx5IHNob3cgdGhpcyB0cmFjayBhcyBzZWxlY3RlZCwgYW5kIHRoYXQg
c2VsZWN0aW5nIHRoZSAiQXV0b21hdGljIChSZWNvbW1lbmRlZCkiIHRyYWNrIHdpbGwgcmV2ZXJ0
IGJhY2sgdG8gc2VsZWN0aW5nIHRoYXQgZW50cnkuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KLQotCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJl
Y2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcign
YnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZm
ZXJlbnQgZnJvbSAwCi0KLT09PSBJbml0aWFsIHN0YXRlID09PQotCi1bLV0gT2ZmCi1bLV0gQXV0
byAoUmVjb21tZW5kZWQpCi1beF0gRW5nbGlzaCBTdWJ0aXRsZXMKLVstXSBGcmVuY2ggU3VidGl0
bGVzCi1bLV0gR2VybWFuIFN1YnRpdGxlcwotWy1dIFNwYW5pc2ggU3VidGl0bGVzCi0KLT09PSBB
ZnRlciBwaWNraW5nIGF1dG8gdHJhY2sgaW50ZXJhY3RpdmVseSA9PT0KLQotWy1dIE9mZgotW3hd
IEF1dG8gKFJlY29tbWVuZGVkKQotWy1dIEVuZ2xpc2ggU3VidGl0bGVzCi1bLV0gRnJlbmNoIFN1
YnRpdGxlcwotWy1dIEdlcm1hbiBTdWJ0aXRsZXMKLVstXSBTcGFuaXNoIFN1YnRpdGxlcwotCi1Q
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L21hYy90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGku
aHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3Vw
cG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBp
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwMjJlYjk2ZGY5NDRlZjFhODIz
YmU5MWYxZjkwZGQzOWI3MzAwNTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRp
YS1hcGkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci08Ym9keT4KLTx2aWRlbyBzcmM9Ii4uLy4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVz
Lm1vdiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDog
NjQwcHg7IGhlaWdodDogMzYwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgotPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
Ci0KLWRlc2NyaXB0aW9uKGBUaGlzIHRlc3QgY2hlY2tzIHRoYXQgc2V0dGluZyBhbiBlbWJlZGRl
ZCB0ZXh0IHRyYWNrIGFzIHNlbGVjdGVkIHZpYSB0aGUgSFRNTE1lZGlhRWxlbWVudCBKUyBBUElz
IHdpbGwgY29ycmVjdGx5IHNob3cgdGhpcyB0cmFjayBhcyBzZWxlY3RlZCwgYW5kIHRoYXQgc2Vs
ZWN0aW5nIHRoZSAKLSJBdXRvbWF0aWMgKFJlY29tbWVuZGVkKSIgdHJhY2sgd2lsbCByZXZlcnQg
YmFjayB0byBzZWxlY3RpbmcgdGhhdCBlbnRyeS5gKTsKLQotY29uc3QgbWVkaWEgPSBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRl
cm5hbHMuc2hhZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInBsYXki
LCAoKSA9PiB7Ci0gICAgbWVkaWEucGF1c2UoKTsKLQotICAgIHNob3VsZEJlY29tZURpZmZlcmVu
dCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykiLCAibnVsbCIsICgp
ID0+IHsKLSAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2Vs
ZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCIsICIw
IiwgcnVuVGVzdCk7Ci0gICAgfSk7Ci19KTsKLQotYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCi17
Ci0gICAgLy8gU3RhcnQgYnkgc2VsZWN0aW5nIG9uZSBvZiB0aGUgdGV4dCB0cmFja3MgdXNpbmcg
dGhlIG1lZGlhIEpTIEFQSS4KLSAgICAvLyBUaGlzIHdpbGwgY2F1c2UgdGV4dFRyYWNrc0RpZENo
YW5nZSB0byBiZSBjYWxsZWQgZm9yIHRoZSBmaXJzdCB0aW1lLgotICAgIG1lZGlhLnRleHRUcmFj
a3NbMF0ubW9kZSA9ICJzaG93aW5nIjsKLQotICAgIC8vIE5leHQsIGJyaW5nIHVwIHRoZSB0cmFj
a3MgbWVudSBieSBjbGlja2luZyBvbiB0aGUgdHJhY2tzIGJ1dHRvbi4KLSAgICBhd2FpdCBjbGlj
a09uVHJhY2tzQnV0dG9uKCk7Ci0gICAgLy8gRHVtcCB0aGUgc3RhdGUgb2YgdGhlIHRyYWNrcyBt
ZW51IGZvciB0ZXh0IHRyYWNrcywgd2hpY2ggc2hvdWxkIHNob3cgdGhlIGZpcnN0IGVtYmVkZGVk
IHRleHQgdHJhY2sgYXMgc2VsZWN0ZWQuCi0gICAgZHVtcFRleHRUcmFja3NMaXN0Tm9kZXMoIklu
aXRpYWwgc3RhdGUiKTsKLSAgICAvLyBOb3csIHNlbGVjdCB0aGUgIkF1dG9tYXRpYyAoUmVjb21t
ZW5kZWQpIiB0ZXh0IHRyYWNrLiAKLSAgICBhd2FpdCBjbGlja09uVGV4dFRyYWNrQXRJbmRleCgx
KTsKLSAgICAvLyBXYWl0IGZvciB0aGUgc2VsZWN0aW9uIHRvIGhhdmUgZ29uZSB0aHJvdWdoIGFu
ZCB0aGUgcGFuZWwgdG8gaGF2ZSB0cmFuc2l0aW9uZWQgb3V0IG9mIHZpZXcuCi0gICAgYXdhaXQg
bmV3IFByb21pc2UocmVzb2x2ZSA9PiBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi50cmFja3Mt
cGFuZWwiKS5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIiwgcmVzb2x2ZSwgeyBvbmNl
OiB0cnVlIH0pKTsKLQotICAgIC8vIE5vdywgYnJpbmcgdXAgdGhlIHRyYWNrcyBtZW51IGFnYWlu
IGJ5IGNsaWNraW5nIG9uIHRoZSB0cmFja3MgYnV0dG9uLgotICAgIGF3YWl0IGNsaWNrT25UcmFj
a3NCdXR0b24oKTsKLSAgICAvLyBEdW1wIHRoZSBzdGF0ZSBvZiB0aGUgdHJhY2tzIG1lbnUgZm9y
IHRleHQgdHJhY2tzLCB3aGljaCBzaG91bGQgbm93IHNob3cgIkF1dG9tYXRpYyAoUmVjb21tZW5k
ZWQpIiBhcyBzZWxlY3RlZC4KLSAgICBkdW1wVGV4dFRyYWNrc0xpc3ROb2RlcygiQWZ0ZXIgcGlj
a2luZyBhdXRvIHRyYWNrIGludGVyYWN0aXZlbHkiKTsKLQotICAgIGZpbmlzaFRlc3QoKTsKLX0K
LQotZnVuY3Rpb24gdGV4dFRyYWNrc0xpc3ROb2RlcygpCi17Ci0gICAgcmV0dXJuIHNoYWRvd1Jv
b3QucXVlcnlTZWxlY3RvckFsbCgiLnRyYWNrcy1wYW5lbCBzZWN0aW9uOmxhc3Qtb2YtdHlwZSA+
IHVsID4gbGkiKTsKLX0KLQotZnVuY3Rpb24gZHVtcFRleHRUcmFja3NMaXN0Tm9kZXMobXNnKQot
ewotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZyhgPT09ICR7bXNnfSA9PT1gKTsKLSAgICBkZWJ1
ZygiIik7Ci0gICAgQXJyYXkuZnJvbSh0ZXh0VHJhY2tzTGlzdE5vZGVzKCkpLmZvckVhY2gobGkg
PT4gZGVidWcoYCR7bGkuY2xhc3NMaXN0LmNvbnRhaW5zKCJzZWxlY3RlZCIpID8gIlt4XSIgOiAi
Wy1dIn0gJHtsaS50ZXh0Q29udGVudH1gKSk7Ci19Ci0KLWFzeW5jIGZ1bmN0aW9uIGNsaWNrT25U
cmFja3NCdXR0b24oKQotewotICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlcXVlc3RBbmltYXRpb25G
cmFtZSk7Ci0gICAgY2xpY2tPbkVsZW1lbnQoc2hhZG93Um9vdC5sYXN0Q2hpbGQucXVlcnlTZWxl
Y3RvcigiYnV0dG9uLnRyYWNrcyIpKTsKLSAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXF1ZXN0QW5p
bWF0aW9uRnJhbWUpOwotfQotCi1mdW5jdGlvbiBjbGlja09uVGV4dFRyYWNrQXRJbmRleChpbmRl
eCkKLXsKLSAgICBjbGlja09uRWxlbWVudCh0ZXh0VHJhY2tzTGlzdE5vZGVzKClbaW5kZXhdKTsK
LX0KLQotZnVuY3Rpb24gY2xpY2tPbkVsZW1lbnQoZWxlbWVudCkKLXsKLSAgICBjb25zdCBib3Vu
ZHMgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKGJvdW5kcy5sZWZ0ICsgMSwgYm91bmRzLnRvcCArIDEpOwotICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlRG93bigpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLX0KLQotZnVuY3Rp
b24gZmluaXNoVGVzdCgpCi17Ci0gICAgZGVidWcoIiIpOwotICAgIG1lZGlhLnJlbW92ZSgpOwot
ICAgIGZpbmlzaEpTVGVzdCgpOwotfQotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3Vw
cG9ydC9uby10cmFja3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L25vLXRyYWNrcy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjA1MTQyZDEyOWYyZDg1MjllMGMzODEzYzUzYjQ1ZDQ2ZWI3ZDE3MAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
c3VwcG9ydC9uby10cmFja3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3Rpbmcg
dGhlIFRyYWNrc1N1cHBvcnQgYmVoYXZpb3Igd2l0aCBubyB0cmFja3MuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9u
LnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGlzIDAKKworUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9uby10
cmFja3MuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC9uby10cmFja3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNjg2NjZmZjU3ZjVlYjllNWJm
YWU2MTZkMTY3ZjhiMWYyZDA4ZWU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L25vLXRyYWNrcy5odG1sCkBA
IC0wLDAgKzEsMjcgQEAKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9s
cy1sb2FkZXIuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Cis8Ym9keT4KKzx2
aWRlbyBzcmM9Ii4uLy4uL2NvbnRlbnQvdGVzdC5tcDQiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1
dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDQwMHB4OyIgYXV0b3BsYXkgY29udHJvbHMgbXV0
ZWQgcGxheXNpbmxpbmU+PC92aWRlbz4KKzxkaXYgaWQ9InNoYWRvdyI+PC9kaXY+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KworZGVzY3JpcHRpb24oIlRlc3RpbmcgdGhlIDxjb2RlPlRyYWNrc1N1cHBvcnQ8L2NvZGU+IGJl
aGF2aW9yIHdpdGggbm8gdHJhY2tzLiIpOworCitjb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoInZpZGVvIik7Citjb25zdCBzaGFkb3dSb290ID0gd2luZG93LmludGVybmFscy5z
aGFkb3dSb290KG1lZGlhKTsKKworbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsIGZ1bmN0
aW9uKCkgeworICAgIG1lZGlhLnBhdXNlKCk7CisKKyAgICBzaG91bGRCZSgic2hhZG93Um9vdC5x
dWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lk
dGgiLCAiMCIpOworCisgICAgZGVidWcoIiIpOworICAgIG1lZGlhLnJlbW92ZSgpOworICAgIGZp
bmlzaEpTVGVzdCgpOworfSk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L29m
Zi10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9vZmYtdGV4dC10cmFjay1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzJlMGQ5NmNjMDdlOGUxMTZkMzVhYjI3MjU4ZTAxNWNhMmQ5MTEyNgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC9vZmYtdGV4dC10cmFjay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAor
RW5zdXJlIHdlIGhhdmUgdGhlIE9mZiB0ZXh0IHRyYWNrIHNlbGVjdGVkIGJ5IGRlZmF1bHQuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxl
Y3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQQVNTIHNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50
UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitUYXBwaW5nIHRyYWNrcyBidXR0
b24uLi4KK1BBU1MgY2hlY2tlZEl0ZW1zLmxlbmd0aCBpcyAxCitQQVNTIGNoZWNrZWRJdGVtc1sw
XS50aXRsZSBpcyAiT2ZmIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC9vZmYtdGV4dC10cmFjay5odG1sIGIvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L29mZi10ZXh0LXRyYWNr
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOGI3MDNhMDA2YTgwZTBjMjFkZmQyNGY0MTdmNWE1ODQwNWY5YTQ1
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9vZmYtdGV4dC10cmFjay5odG1sCkBAIC0wLDAgKzEsNDYgQEAK
KzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9s
cy11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Vp
LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxib2R5PgorPHZpZGVvIHNyYz0iLi4vLi4vY29udGVu
dC9jb3VudGluZy1zdWJ0aXRsZWQubTR2IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0
OiAwOyB0b3A6IDA7IHdpZHRoOiA0MDBweDsiIGF1dG9wbGF5IGNvbnRyb2xzIG11dGVkIHBsYXlz
aW5saW5lPjwvdmlkZW8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK3dpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZGVzY3JpcHRpb24oIkVuc3VyZSB3ZSBoYXZlIHRo
ZSBPZmYgdGV4dCB0cmFjayBzZWxlY3RlZCBieSBkZWZhdWx0LiIpOworCitjb25zdCBtZWRpYSA9
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Citjb25zdCBzaGFkb3dSb290ID0gd2lu
ZG93LmludGVybmFscy5zaGFkb3dSb290KG1lZGlhKTsKKworbGV0IGNoZWNrZWRJdGVtcyA9IG51
bGw7CisKK21lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7CisgICAgbWVkaWEu
cGF1c2UoKTsKKworICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNl
bGVjdG9yKCdidXR0b24udHJhY2tzJykiLCAibnVsbCIsICgpID0+IHsKKyAgICAgICAgc2hvdWxk
QmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3Mn
KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCIsICIwIiwgYXN5bmMgKCkgPT4geworICAg
ICAgICAgICAgZGVidWcoIlRhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLiIpOworICAgICAgICAgICAg
bGV0IFtjb250ZXh0bWVudV0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAg
Z2V0VHJhY2tzQ29udGV4dE1lbnUoKSwKKyAgICAgICAgICAgICAgICBwcmVzc09uRWxlbWVudChz
aGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSksCisgICAgICAgICAgICBd
KTsKKyAgICAgICAgICAgIGxldCBzdWJ0aXRsZXNNZW51ID0gY29udGV4dG1lbnVbMF0uY2hpbGRy
ZW4uZmluZCgoc3VibWVudSkgPT4gc3VibWVudS50aXRsZSA9PT0gIlN1YnRpdGxlcyIpOworICAg
ICAgICAgICAgaWYgKHN1YnRpdGxlc01lbnUuY2hpbGRyZW4/Lmxlbmd0aCkgeworICAgICAgICAg
ICAgICAgIGF3YWl0IFVJSGVscGVyLmNob29zZU1lbnVBY3Rpb24oc3VidGl0bGVzTWVudS50aXRs
ZSk7CisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuZGVsYXlGb3IoNTAwKTsgLy8gZ2l2
ZSB0aW1lIGZvciB0aGUgVUlNZW51IHRvIGFuaW1hdGUKKyAgICAgICAgICAgICAgICBjb250ZXh0
bWVudSA9IFtzdWJ0aXRsZXNNZW51XTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNoZWNr
ZWRJdGVtcyA9IGNvbnRleHRtZW51WzBdLmNoaWxkcmVuLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5j
aGVja2VkKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJjaGVja2VkSXRlbXMubGVuZ3RoIiwgIjEi
KTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiY2hlY2tlZEl0ZW1zWzBdLnRp
dGxlIiwgIk9mZiIpOworCisgICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsKKyAgICAgICAgICAg
IGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9KTsKK30pOworCis8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC9zaG93LWNvbnRleHRtZW51LXRoZW4tZG91YmxlLWNsaWNr
LW9uLXRyYWNrcy1idXR0b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3Nob3ctY29udGV4dG1lbnUtdGhlbi1kb3Vi
bGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGFmYTc1
MDY4ZWMyM2RhZTA1NTBmNDhmNWUwZmQ0OGNjZDI3NGJlZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9zaG93
LWNvbnRleHRtZW51LXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24tZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTkgQEAKK0Vuc3VyZSB0aGF0IGNsaWNraW5nIHRoZSB0cmFja3MgYnV0
dG9uIHdoZW4gdGhlIHRyYWNrcyBjb250ZXh0bWVudSBpcyBzaG93biBtYWtlcyB0aGUgY29udGV4
dG1lbnUgaGlkZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykgYmVjYW1lIGRpZmZlcmVudCBmcm9t
IG51bGwKK1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKK1RhcHBp
bmcgdHJhY2tzIGJ1dHRvbi4uLgorQ29udGV4dCBtZW51IHNob3duLgorVGFwcGluZyB0cmFja3Mg
YnV0dG9uLi4uCitDb250ZXh0IG1lbnUgaGlkZGVuLgorVGFwcGluZyB0cmFja3MgYnV0dG9uLi4u
CitDb250ZXh0IG1lbnUgc2hvd24uCitUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KK0NvbnRleHQg
bWVudSBoaWRkZW4uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1zdXBwb3J0L3Nob3ctY29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24t
dHJhY2tzLWJ1dHRvbi5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1zdXBwb3J0L3Nob3ctY29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24t
dHJhY2tzLWJ1dHRvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5MDNiMTA2MzEzYjQ1Y2FmM2MxZjRmMTk1
MGI1ZDNjY2EzZjFkN2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvc2hvdy1jb250ZXh0bWVudS10aGVuLWRv
dWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NU
WVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVy
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8dmlkZW8gc3JjPSIuLi8uLi9jb250ZW50L0NDK1N1
YnRpdGxlcy5tb3YiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsg
d2lkdGg6IDQwMHB4OyIgYXV0b3BsYXkgY29udHJvbHMgbXV0ZWQgcGxheXNpbmxpbmU+PC92aWRl
bz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKword2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworCitkZXNjcmlwdGlvbigiRW5zdXJlIHRoYXQgY2xpY2tpbmcgdGhlIHRyYWNr
cyBidXR0b24gd2hlbiB0aGUgdHJhY2tzIGNvbnRleHRtZW51IGlzIHNob3duIG1ha2VzIHRoZSBj
b250ZXh0bWVudSBoaWRlLiIpOworCitjb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoInZpZGVvIik7Citjb25zdCBzaGFkb3dSb290ID0gd2luZG93LmludGVybmFscy5zaGFkb3dS
b290KG1lZGlhKTsKKworbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKKyAg
ICBtZWRpYS5wYXVzZSgpOworCisgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290
LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSIsICJudWxsIiwgKCkgPT4geworICAgICAg
ICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9u
LnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIiwgIjAiLCBhc3luYyAoKSA9
PiB7CisgICAgICAgICAgICBkZWJ1ZygiVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uIik7CisgICAg
ICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgVUlIZWxwZXIud2Fp
dEZvckNvbnRleHRNZW51VG9TaG93KCksCisgICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQo
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpLAorICAgICAgICAgICAg
XSk7CisgICAgICAgICAgICBkZWJ1ZygiQ29udGV4dCBtZW51IHNob3duLiIpOworCisgICAgICAg
ICAgICBkZWJ1ZygiVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uIik7CisgICAgICAgICAgICBhd2Fp
dCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgVUlIZWxwZXIud2FpdEZvckNvbnRleHRN
ZW51VG9IaWRlKCksCisgICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5x
dWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpLAorICAgICAgICAgICAgXSk7CisgICAgICAg
ICAgICBkZWJ1ZygiQ29udGV4dCBtZW51IGhpZGRlbi4iKTsKKworICAgICAgICAgICAgZGVidWco
IlRhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLiIpOworICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5h
bGwoWworICAgICAgICAgICAgICAgIFVJSGVscGVyLndhaXRGb3JDb250ZXh0TWVudVRvU2hvdygp
LAorICAgICAgICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cigiYnV0dG9uLnRyYWNrcyIpKSwKKyAgICAgICAgICAgIF0pOworICAgICAgICAgICAgZGVidWco
IkNvbnRleHQgbWVudSBzaG93bi4iKTsKKworICAgICAgICAgICAgZGVidWcoIlRhcHBpbmcgdHJh
Y2tzIGJ1dHRvbi4uLiIpOworICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAg
ICAgICAgICAgIFVJSGVscGVyLndhaXRGb3JDb250ZXh0TWVudVRvSGlkZSgpLAorICAgICAgICAg
ICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRy
YWNrcyIpKSwKKyAgICAgICAgICAgIF0pOworICAgICAgICAgICAgZGVidWcoIkNvbnRleHQgbWVu
dSBoaWRkZW4uIik7CisKKyAgICAgICAgICAgIG1lZGlhLnJlbW92ZSgpOworICAgICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0pOworICAgIH0pOworfSk7CisKKzwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvdGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lYzYxN2Q5MWNmZjI3Nzc3NmEwMzEzM2M0OGViNDk3MGZkMjIwN2VmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1zdXBwb3J0L3RleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwyMSBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHNldHRpbmcgYW4g
ZW1iZWRkZWQgdGV4dCB0cmFjayBhcyBzZWxlY3RlZCB2aWEgdGhlIEhUTUxNZWRpYUVsZW1lbnQg
SlMgQVBJcyB3aWxsIGNvcnJlY3RseSBzaG93IHRoaXMgdHJhY2sgYXMgc2VsZWN0ZWQsIGFuZCB0
aGF0IHNlbGVjdGluZyB0aGUgIkF1dG9tYXRpYyAoUmVjb21tZW5kZWQpIiB0cmFjayB3aWxsIHJl
dmVydCBiYWNrIHRvIHNlbGVjdGluZyB0aGF0IGVudHJ5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3Mn
KSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAorUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0
b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUg
ZGlmZmVyZW50IGZyb20gMAorU2V0dGluZyBtb2RlIHRvICdzaG93aW5nJyBmb3IgJ0VuZ2xpc2gn
IHRleHQgdHJhY2sgdmlhIEphdmFTY3JpcHQuLi4KK1RhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLgor
UEFTUyBjb250ZXh0bWVudUl0ZW0oJ0VuZ2xpc2gnKS5jaGVja2VkIGlzIHRydWUKK1BBU1MgY29u
dGV4dG1lbnVJdGVtKCdGcmVuY2gnKS5jaGVja2VkIGlzIHVuZGVmaW5lZC4KK1NlbGVjdGluZyAn
RnJlbmNoJyB0ZXh0IHRyYWNrLi4uCitQQVNTIHN1YnRpdGxlVHJhY2soJ2VuJykubW9kZSBpcyAn
ZGlzYWJsZWQnCitQQVNTIHN1YnRpdGxlVHJhY2soJ2ZyJykubW9kZSBpcyAnc2hvd2luZycKK1Rh
cHBpbmcgdHJhY2tzIGJ1dHRvbi4uLgorUEFTUyBjb250ZXh0bWVudUl0ZW0oJ0VuZ2xpc2gnKS5j
aGVja2VkIGlzIHVuZGVmaW5lZC4KK1BBU1MgY29udGV4dG1lbnVJdGVtKCdGcmVuY2gnKS5jaGVj
a2VkIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvdGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLmh0bWwg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
dGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGFmYzEz
M2Q0ZTNkOGU2MDk5ODE1MzQzYmNhMjFmZTg1OGViNGMyNQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90ZXh0
LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGkuaHRtbApAQCAtMCwwICsxLDgyIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRp
bHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxw
ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzx2aWRlbyBzcmM9Ii4uLy4uL2NvbnRlbnQvY291
bnRpbmctc3VidGl0bGVkLm00diIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsg
dG9wOiAwOyB3aWR0aDogNDAwcHg7IiBhdXRvcGxheSBjb250cm9scyBtdXRlZCBwbGF5c2lubGlu
ZT48L3ZpZGVvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCit3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKGBUaGlzIHRlc3QgY2hlY2tzIHRoYXQg
c2V0dGluZyBhbiBlbWJlZGRlZCB0ZXh0IHRyYWNrIGFzIHNlbGVjdGVkIHZpYSB0aGUgSFRNTE1l
ZGlhRWxlbWVudCBKUyBBUElzIHdpbGwgY29ycmVjdGx5IHNob3cgdGhpcyB0cmFjayBhcyBzZWxl
Y3RlZCwgYW5kIHRoYXQgc2VsZWN0aW5nIHRoZSAKKyJBdXRvbWF0aWMgKFJlY29tbWVuZGVkKSIg
dHJhY2sgd2lsbCByZXZlcnQgYmFjayB0byBzZWxlY3RpbmcgdGhhdCBlbnRyeS5gKTsKKworY29u
c3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOworY29uc3Qgc2hhZG93
Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7CisKK2xldCBjb250ZXh0
bWVudSA9IG51bGw7CisKK2Z1bmN0aW9uIHN1YnRpdGxlVHJhY2sobGFuZ3VhZ2UpIHsKKyAgICBy
ZXR1cm4gQXJyYXkuZnJvbShtZWRpYS50ZXh0VHJhY2tzKS5maW5kKCh0ZXh0VHJhY2spID0+IHRl
eHRUcmFjay5raW5kID09PSAic3VidGl0bGVzIiAmJiB0ZXh0VHJhY2subGFuZ3VhZ2UgPT09IGxh
bmd1YWdlKTsKK30KKworZnVuY3Rpb24gY29udGV4dG1lbnVJdGVtKHRpdGxlKSB7CisgICAgcmV0
dXJuIGNvbnRleHRtZW51WzBdLmNoaWxkcmVuLmZpbmQoKGl0ZW0pID0+IGl0ZW0udGl0bGUgPT09
IHRpdGxlKTsKK30KKworbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKKyAg
ICBtZWRpYS5wYXVzZSgpOworCisgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290
LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSIsICJudWxsIiwgKCkgPT4geworICAgICAg
ICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9u
LnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIiwgIjAiLCBhc3luYyAoKSA9
PiB7CisgICAgICAgICAgICBkZWJ1ZygiU2V0dGluZyBtb2RlIHRvICdzaG93aW5nJyBmb3IgJ0Vu
Z2xpc2gnIHRleHQgdHJhY2sgdmlhIEphdmFTY3JpcHQuLi4iKTsKKyAgICAgICAgICAgIHN1YnRp
dGxlVHJhY2soImVuIikubW9kZSA9ICJzaG93aW5nIjsKKworICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgIGRlYnVnKCJUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4iKTsKKyAgICAgICAgICAg
ICAgICBbY29udGV4dG1lbnVdID0gYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAg
ICAgICBnZXRUcmFja3NDb250ZXh0TWVudSgpLAorICAgICAgICAgICAgICAgICAgICBwcmVzc09u
RWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSksCisgICAg
ICAgICAgICAgICAgXSk7CisgICAgICAgICAgICAgICAgbGV0IHN1YnRpdGxlc01lbnUgPSBjb250
ZXh0bWVudVswXS5jaGlsZHJlbi5maW5kKChzdWJtZW51KSA9PiBzdWJtZW51LnRpdGxlID09PSAi
U3VidGl0bGVzIik7CisgICAgICAgICAgICAgICAgaWYgKHN1YnRpdGxlc01lbnUuY2hpbGRyZW4/
Lmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5jaG9vc2VNZW51
QWN0aW9uKHN1YnRpdGxlc01lbnUudGl0bGUpOworICAgICAgICAgICAgICAgICAgICBhd2FpdCBV
SUhlbHBlci5kZWxheUZvcig1MDApOyAvLyBnaXZlIHRpbWUgZm9yIHRoZSBVSU1lbnUgdG8gYW5p
bWF0ZQorICAgICAgICAgICAgICAgICAgICBjb250ZXh0bWVudSA9IFtzdWJ0aXRsZXNNZW51XTsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJjb250ZXh0
bWVudUl0ZW0oJ0VuZ2xpc2gnKS5jaGVja2VkIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVV
bmRlZmluZWQoImNvbnRleHRtZW51SXRlbSgnRnJlbmNoJykuY2hlY2tlZCIpOworCisgICAgICAg
ICAgICAgICAgZGVidWcoIlNlbGVjdGluZyAnRnJlbmNoJyB0ZXh0IHRyYWNrLi4uIik7CisgICAg
ICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuY2hvb3NlTWVudUFjdGlvbigiRnJlbmNoIik7Cisg
ICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvckNvbnRleHRNZW51VG9IaWRlKCk7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNob3VsZEJlKCJzdWJ0aXRsZVRyYWNrKCdl
bicpLm1vZGUiLCAiJ2Rpc2FibGVkJyIpOworICAgICAgICAgICAgc2hvdWxkQmUoInN1YnRpdGxl
VHJhY2soJ2ZyJykubW9kZSIsICInc2hvd2luZyciKTsKKworICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgIGRlYnVnKCJUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4iKTsKKyAgICAgICAgICAg
ICAgICBbY29udGV4dG1lbnVdID0gYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAg
ICAgICBnZXRUcmFja3NDb250ZXh0TWVudSgpLAorICAgICAgICAgICAgICAgICAgICBwcmVzc09u
RWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSksCisgICAg
ICAgICAgICAgICAgXSk7CisgICAgICAgICAgICAgICAgbGV0IHN1YnRpdGxlc01lbnUgPSBjb250
ZXh0bWVudVswXS5jaGlsZHJlbi5maW5kKChzdWJtZW51KSA9PiBzdWJtZW51LnRpdGxlID09PSAi
U3VidGl0bGVzIik7CisgICAgICAgICAgICAgICAgaWYgKHN1YnRpdGxlc01lbnUuY2hpbGRyZW4/
Lmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5jaG9vc2VNZW51
QWN0aW9uKHN1YnRpdGxlc01lbnUudGl0bGUpOworICAgICAgICAgICAgICAgICAgICBhd2FpdCBV
SUhlbHBlci5kZWxheUZvcig1MDApOyAvLyBnaXZlIHRpbWUgZm9yIHRoZSBVSU1lbnUgdG8gYW5p
bWF0ZQorICAgICAgICAgICAgICAgICAgICBjb250ZXh0bWVudSA9IFtzdWJ0aXRsZXNNZW51XTsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc2hvdWxkQmVVbmRlZmluZWQoImNv
bnRleHRtZW51SXRlbSgnRW5nbGlzaCcpLmNoZWNrZWQiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZVRydWUoImNvbnRleHRtZW51SXRlbSgnRnJlbmNoJykuY2hlY2tlZCIpOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsKKyAgICAgICAgICAgIGZpbmlzaEpT
VGVzdCgpOworICAgICAgICB9KTsKKyAgICB9KTsKK30pOworCis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1hdWRpby10cmFja3MtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3Ry
YWNrcy1zdXBwb3J0LWF1ZGlvLXRyYWNrcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGI5YTQ3ZGI4YmUxZTY4OGNiM2EzZDdiNzcwOTQ3NDRhNmExNmYyZTkuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0
LWF1ZGlvLXRyYWNrcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBA
Ci1UZXN0aW5nIHRoZSBUcmFja3NTdXBwb3J0IGJlaGF2aW9yIHdpdGggYXVkaW8gdHJhY2tzLgot
Ci1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotVGhlIHRyYWNrcyBidXR0b24gc2hvdWxk
IGJlIGRpc2FibGVkIGluaXRpYWxseSBhcyB3ZSB3YWl0IGZvciBtZXRhZGF0YSBhbmQgYXVkaW8g
dHJhY2tzIHRvIGJlIGFkZGVkLgotUEFTUyBtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMudHJhY2tz
QnV0dG9uLmVuYWJsZWQgaXMgZmFsc2UKLQotRXZlbnR1YWxseSB0aGUgYXVkaW8gdHJhY2tzIHdp
bGwgYmUgYWRkZWQgYW5kIHRoZSB0cmFja3MgYnV0dG9uIHdpbGwgYmUgZW5hYmxlZC4KLVBBU1Mg
bWVkaWFDb250cm9sbGVyLmNvbnRyb2xzLnRyYWNrc0J1dHRvbi5lbmFibGVkIGJlY2FtZSB0cnVl
Ci0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtYXVkaW8tdHJhY2tzLmh0bWwgYi9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQt
YXVkaW8tdHJhY2tzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc4Nzg2YWM0
OGIyOWNkNmIzMjg1MWJjOTIwYzdiZmJkN2Q4NjVkNDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LWF1ZGlvLXRyYWNrcy5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L21lZGlhLWNvbnRyb2xzLWxvYWRlci5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3Njcmlw
dD4KLTxib2R5PgotPHZpZGVvIHNyYz0iLi4vLi4vY29udGVudC9hdWRpby10cmFja3MubXA0IiBz
dHlsZT0id2lkdGg6IDMyMHB4OyBoZWlnaHQ6IDI0MHB4OyIgY29udHJvbHM+PC92aWRlbz4KLTxk
aXYgaWQ9InNoYWRvdyI+PC9kaXY+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0K
LXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oIlRlc3RpbmcgdGhl
IDxjb2RlPlRyYWNrc1N1cHBvcnQ8L2NvZGU+IGJlaGF2aW9yIHdpdGggYXVkaW8gdHJhY2tzLiIp
OwotCi1jb25zdCBzaGFkb3dSb290ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGl2I3NoYWRv
dyIpLmF0dGFjaFNoYWRvdyh7IG1vZGU6ICJvcGVuIiB9KTsKLWNvbnN0IG1lZGlhID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IG1lZGlhQ29udHJvbGxlciA9IGNyZWF0
ZUNvbnRyb2xzKHNoYWRvd1Jvb3QsIG1lZGlhLCBudWxsKTsKLQotZGVidWcoIlRoZSB0cmFja3Mg
YnV0dG9uIHNob3VsZCBiZSBkaXNhYmxlZCBpbml0aWFsbHkgYXMgd2Ugd2FpdCBmb3IgbWV0YWRh
dGEgYW5kIGF1ZGlvIHRyYWNrcyB0byBiZSBhZGRlZC4iKTsKLXNob3VsZEJlRmFsc2UoIm1lZGlh
Q29udHJvbGxlci5jb250cm9scy50cmFja3NCdXR0b24uZW5hYmxlZCIpOwotCi1kZWJ1ZygiIik7
Ci1kZWJ1ZygiRXZlbnR1YWxseSB0aGUgYXVkaW8gdHJhY2tzIHdpbGwgYmUgYWRkZWQgYW5kIHRo
ZSB0cmFja3MgYnV0dG9uIHdpbGwgYmUgZW5hYmxlZC4iKTsKLXNob3VsZEJlY29tZUVxdWFsKCJt
ZWRpYUNvbnRyb2xsZXIuY29udHJvbHMudHJhY2tzQnV0dG9uLmVuYWJsZWQiLCAidHJ1ZSIsICgp
ID0+IHsKLSAgICBkZWJ1ZygiIik7Ci0gICAgc2hhZG93Um9vdC5ob3N0LnJlbW92ZSgpOwotICAg
IG1lZGlhLnJlbW92ZSgpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci0KLTwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LWNhcHRpb25zLW9mZnNldC13aXRo
LWNvbnRyb2xzLWJhci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtY2FwdGlvbnMtb2Zmc2V0
LXdpdGgtY29udHJvbHMtYmFyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYTlhOTQ5NzMzMWVmYzQyMTEyMzhkOWUxNWZhMzVmOTBhYmFiMzZmMy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtY2FwdGlv
bnMtb2Zmc2V0LXdpdGgtY29udHJvbHMtYmFyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDEwICswLDAgQEAKLUVuc3VyZSB0aGF0IHRoZSBjYXB0aW9ucyBjb250YWluZXIgYWNjb3Vu
dHMgZm9yIHRoZSBjb250cm9zbCBiYXIgd2hlbiB2aXNpYmxlLgotCi1PbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCi0KLQotUEFTUyBnZXRDb21wdXRlZFN0eWxlKHNoYWRvd1Jvb3QubGFzdEVsZW1l
bnRDaGlsZC5maXJzdEVsZW1lbnRDaGlsZCkuaGVpZ2h0IGlzICJjYWxjKDEwMCUgLSAzN3B4KSIK
LVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvdHJhY2tzLXN1cHBvcnQtY2FwdGlvbnMtb2Zmc2V0LXdpdGgtY29udHJvbHMtYmFyLmh0
bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBv
cnQvdHJhY2tzLXN1cHBvcnQtY2FwdGlvbnMtb2Zmc2V0LXdpdGgtY29udHJvbHMtYmFyLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk3NTM0ZTY1NDY0ODczMjU3YWM5ZGIyYzEx
NmMzYjNhNzkzMzMyZWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L3RyYWNrcy1zdXBwb3J0LWNhcHRpb25zLW9mZnNldC13aXRoLWNvbnRyb2xzLWJhci5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMiIHR5cGU9InRleHQv
amF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08Ym9keT4KLTx2aWRlbyBzcmM9Ii4uLy4uL2NvbnRlbnQv
Q0MrU3VidGl0bGVzLm1vdiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9w
OiAwOyB3aWR0aDogNjQwcHg7IGhlaWdodDogMzYwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3Zp
ZGVvPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJFbnN1cmUgdGhhdCB0aGUgY2FwdGlvbnMgY29u
dGFpbmVyIGFjY291bnRzIGZvciB0aGUgY29udHJvc2wgYmFyIHdoZW4gdmlzaWJsZS4iKTsKLQot
Y29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qgc2hh
ZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlhLmFk
ZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7Ci0gICAgbWVkaWEucGF1c2UoKTsKLQotICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0Q29tcHV0ZWRTdHlsZShzaGFkb3dSb290Lmxhc3RF
bGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQpLmhlaWdodCIsICJjYWxjKDEwMCUgLSAzN3B4
KSIpOwotICAgIG1lZGlhLnJlbW92ZSgpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci0KLTwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LW5vLXRyYWNrcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtbm8tdHJhY2tzLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmM0NGM3ODVkZjFhNTBlMGExZjk5MGM3NmFiNDU4ZTU3
MWY0OTJhMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJh
Y2tzLXN1cHBvcnQtbm8tdHJhY2tzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEx
ICswLDAgQEAKLVRlc3RpbmcgdGhlIFRyYWNrc1N1cHBvcnQgYmVoYXZpb3Igd2l0aCBubyB0cmFj
a3MuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIG1lZGlhQ29udHJvbGxl
ci5jb250cm9scy50cmFja3NCdXR0b24uZW5hYmxlZCBpcyBmYWxzZQotCi1QQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1z
dXBwb3J0LW5vLXRyYWNrcy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LW5vLXRyYWNrcy5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMDJlYjRiNjI3MmUxZTJmYWZhY2M0YmE5Y2E2MDE3
ZjlhNGZlZDAyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90
cmFja3Mtc3VwcG9ydC1uby10cmFja3MuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAg
QEAKLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy1sb2FkZXIuanMi
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08Ym9keT4KLTx2aWRlbyBzcmM9Ii4u
Ly4uL2NvbnRlbnQvdGVzdC5tcDQiIHN0eWxlPSJ3aWR0aDogMzIwcHg7IGhlaWdodDogMjQwcHg7
Ij48L3ZpZGVvPgotPGRpdiBpZD0ic2hhZG93Ij48L2Rpdj4KLTxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlv
bigiVGVzdGluZyB0aGUgPGNvZGU+VHJhY2tzU3VwcG9ydDwvY29kZT4gYmVoYXZpb3Igd2l0aCBu
byB0cmFja3MuIik7Ci0KLWNvbnN0IHNoYWRvd1Jvb3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCJkaXYjc2hhZG93IikuYXR0YWNoU2hhZG93KHsgbW9kZTogIm9wZW4iIH0pOwotY29uc3QgbWVk
aWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwotY29uc3QgbWVkaWFDb250cm9s
bGVyID0gY3JlYXRlQ29udHJvbHMoc2hhZG93Um9vdCwgbWVkaWEsIG51bGwpOwotCi1tZWRpYS5h
ZGRFdmVudExpc3RlbmVyKCJsb2FkZWRtZXRhZGF0YSIsIGZ1bmN0aW9uKCkgewotICAgIHNob3Vs
ZEJlRmFsc2UoIm1lZGlhQ29udHJvbGxlci5jb250cm9scy50cmFja3NCdXR0b24uZW5hYmxlZCIp
OwotICAgIGRlYnVnKCIiKTsKLSAgICBzaGFkb3dSb290Lmhvc3QucmVtb3ZlKCk7Ci0gICAgbWVk
aWEucmVtb3ZlKCk7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLQotPC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08
L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFja3MtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L3RyYWNrcy1zdXBwb3J0LXRleHQtdHJhY2tzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNWI5M2Y1NjA4OWRmMmY2YjU1MTMxZTcyZDZkNDQyNzYyNTZjZTVmNS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBv
cnQtdGV4dC10cmFja3MtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBA
QAotVGVzdGluZyB0aGUgVHJhY2tzU3VwcG9ydCBiZWhhdmlvciB3aXRoIHRleHQgdHJhY2tzLgot
Ci1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotVGhlIHRyYWNrcyBidXR0b24gc2hvdWxk
IGJlIGRpc2FibGVkIGluaXRpYWxseSBhcyB3ZSB3YWl0IGZvciBtZXRhZGF0YSBhbmQgdGV4dCB0
cmFja3MgdG8gYmUgYWRkZWQuCi1QQVNTIG1lZGlhQ29udHJvbGxlci5jb250cm9scy50cmFja3NC
dXR0b24uZW5hYmxlZCBpcyBmYWxzZQotCi1FdmVudHVhbGx5IHRoZSB0ZXh0IHRyYWNrcyB3aWxs
IGJlIGFkZGVkIGFuZCB0aGUgdHJhY2tzIGJ1dHRvbiB3aWxsIGJlIGVuYWJsZWQuCi1QQVNTIG1l
ZGlhQ29udHJvbGxlci5jb250cm9scy50cmFja3NCdXR0b24uZW5hYmxlZCBiZWNhbWUgdHJ1ZQot
Ci1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1z
dXBwb3J0L3RyYWNrcy1zdXBwb3J0LXRleHQtdHJhY2tzLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtdGV4
dC10cmFja3MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTE3OTY2ZDczNzJi
OGFlMWJhYjM4ZmIwNzkzMDUwMjRjY2Q4YmIwYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFja3MuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDMwICswLDAgQEAKLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRp
YS1jb250cm9scy1sb2FkZXIuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08
Ym9keT4KLTx2aWRlbyBzcmM9Ii4uLy4uL2NvbnRlbnQvY291bnRpbmctc3VidGl0bGVkLm00diIg
c3R5bGU9IndpZHRoOiAzMjBweDsgaGVpZ2h0OiAyNDBweDsiIHByZWxvYWQ9InByZWxvYWQiIGNv
bnRyb2xzPjwvdmlkZW8+Ci08ZGl2IGlkPSJzaGFkb3ciPjwvZGl2PgotPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2Ny
aXB0aW9uKCJUZXN0aW5nIHRoZSA8Y29kZT5UcmFja3NTdXBwb3J0PC9jb2RlPiBiZWhhdmlvciB3
aXRoIHRleHQgdHJhY2tzLiIpOwotCi1jb25zdCBzaGFkb3dSb290ID0gZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcigiZGl2I3NoYWRvdyIpLmF0dGFjaFNoYWRvdyh7IG1vZGU6ICJvcGVuIiB9KTsKLWNv
bnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IG1lZGlh
Q29udHJvbGxlciA9IGNyZWF0ZUNvbnRyb2xzKHNoYWRvd1Jvb3QsIG1lZGlhLCBudWxsKTsKLQot
ZGVidWcoIlRoZSB0cmFja3MgYnV0dG9uIHNob3VsZCBiZSBkaXNhYmxlZCBpbml0aWFsbHkgYXMg
d2Ugd2FpdCBmb3IgbWV0YWRhdGEgYW5kIHRleHQgdHJhY2tzIHRvIGJlIGFkZGVkLiIpOwotc2hv
dWxkQmVGYWxzZSgibWVkaWFDb250cm9sbGVyLmNvbnRyb2xzLnRyYWNrc0J1dHRvbi5lbmFibGVk
Iik7Ci0KLWRlYnVnKCIiKTsKLWRlYnVnKCJFdmVudHVhbGx5IHRoZSB0ZXh0IHRyYWNrcyB3aWxs
IGJlIGFkZGVkIGFuZCB0aGUgdHJhY2tzIGJ1dHRvbiB3aWxsIGJlIGVuYWJsZWQuIik7Ci1zaG91
bGRCZWNvbWVFcXVhbCgibWVkaWFDb250cm9sbGVyLmNvbnRyb2xzLnRyYWNrc0J1dHRvbi5lbmFi
bGVkIiwgInRydWUiLCAoKSA9PiB7Ci0gICAgZGVidWcoIiIpOwotICAgIHNoYWRvd1Jvb3QuaG9z
dC5yZW1vdmUoKTsKLSAgICBtZWRpYS5yZW1vdmUoKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0p
OwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggZWY3ZmRlYjNjODg3MDUzYzE5N2VhNWRlZDI0NjA3YjM4MjJkYjZm
NC4uODc4MTVhMDE4ZTAwN2M5OGRiOTVlYjdkNDI1OGVhMjFjZWQ1YjM5NCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI5NDMsNyArMjk0Myw2IEBAIG1l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xs
ZXItYXV0by1oaWRlLW1vdXNlLWxlCiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEt
Y29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWF1dG8taGlkZS1yZXdpbmQtd2l0aC1tb3VzZS1l
bnRlci5odG1sIFsgU2tpcCBdCiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29u
dHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWNsaWNrLW9uLXZpZGVvLWJhY2tncm91bmQtc2hvdWxk
LXBhdXNlLWZ1bGxzY3JlZW4uaHRtbCBbIFNraXAgXQogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL21lZGlhLWNvbnRyb2xsZXIvbWVkaWEtY29udHJvbGxlci1jbGljay1vbi12aWRlby1iYWNr
Z3JvdW5kLXNob3VsZC1wYXVzZS5odG1sIFsgU2tpcCBdCi1tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWNsaWNrLW9uLXZpZGVvLWJh
Y2tncm91bmQtdG8tZGlzbWlzcy10cmFja3MtcGFuZWwtc2hvdWxkLW5vdC10b2dnbGUtcGxheWJh
Y2suaHRtbCBbIFNraXAgXQogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRy
b2xsZXIvbWVkaWEtY29udHJvbGxlci1zcGFjZS1iYXItdG9nZ2xlLXBsYXliYWNrLmh0bWwgWyBT
a2lwIF0KIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1kb2N1bWVudHMvbWVkaWEt
ZG9jdW1lbnQtYXVkaW8tbWFjLXNpemluZy5odG1sIFsgU2tpcCBdCiBtZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvbWVkaWEtZG9jdW1lbnRzL21lZGlhLWRvY3VtZW50LXZpZGVvLW1hYy1zaXpp
bmcuaHRtbCBbIFNraXAgXQpAQCAtMjk1NSw4ICsyOTU0LDYgQEAgbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3NjcnViYmVyLXN1cHBvcnQvc2NydWJiZXItc3VwcG9ydC1jbGljay5odG1sIFsg
U2tpcAogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3NjcnViYmVyLXN1cHBvcnQvc2NydWJi
ZXItc3VwcG9ydC1kcmFnLmh0bWwgWyBTa2lwIF0KIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy9zbGlkZXIvc2xpZGVyLXZhbHVlLmh0bWwgWyBTa2lwIF0KIG1lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90ZXh0LXRyYWNrcyBbIFNraXAgXQotbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1wYW5lbCBbIFNraXAgXQotbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1zdXBwb3J0IFsgU2tpcCBdCiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdm9sdW1lLXN1
cHBvcnQgWyBTa2lwIF0KIAogd2Via2l0Lm9yZy9iLzE3ODEyNyBtZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLXZpZGVvLXdpdGgtb25s
eS1hdWRpby5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggMzNhOTQ0MDRkNzA5MjMwYWU3Y2Y5MTM3MDdlMDBkZmU2ZjVh
ZGVhMy4uOGFmZmE0YWViNDlhY2RmNDQ0NjU3NGQ1OTczYmZlZjNlY2ZiYjdhZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTksNiArMTks
NyBAQCBmYXN0L3Njcm9sbGluZy9tYWMgWyBQYXNzIF0KIGZhc3QvdmlzdWFsLXZpZXdwb3J0L3Rp
bGVkLWRyYXdpbmcgWyBQYXNzIF0KIGZhc3Qvd2ViLXNoYXJlIFsgUGFzcyBdCiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1zaGFyZSBbIFBhc3MgXQorbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0IFsgUGFzcyBdCiBzY3JvbGxpbmdjb29yZGluYXRv
ciBbIFBhc3MgXQogc2Nyb2xsaW5nY29vcmRpbmF0b3IvaW9zIFsgU2tpcCBdCiBzd2lwZSBbIFBh
c3MgXQpAQCAtODAxLDggKzgwMiw2IEBAIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1nZXQtc3VjY2Vzcy1sb2NhbC5odHRwcy5odG1sIFsgU2tpcCBdCiBbIE1vamF2ZSBd
IGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1uZmMu
aHR0cHMuaHRtbCBbIFNraXAgXQogWyBNb2phdmUgXSBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMt
a2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtbmZjLmh0dHBzLmh0bWwgWyBTa2lwIF0KIAotd2Vi
a2l0Lm9yZy9iLzE4Mzg3OCBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXBhbmVs
L3RyYWNrcy1wYW5lbC11cC1jbGljay1vdmVyLW1lZGlhLWRvZXMtbm90LWRpbWlzcy1tZWRpYS1j
b250cm9scy13aGVuLW1lZGlhLWlzLXBsYXlpbmcuaHRtbCBbIFBhc3MgVGltZW91dCBdIAotCiB3
ZWJraXQub3JnL2IvMTk0ODI2IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kby1u
b3QtYmxvY2stdG9wLWxldmVsLW5hdmlnYXRpb24tcmVkaXJlY3QuaHRtbCBbIFBhc3MgVGltZW91
dCBdCiAKIHdlYmtpdC5vcmcvYi8xODczOTEgYWNjZXNzaWJpbGl0eS9tYWMvYXN5bmMtaW5jcmVt
ZW50LWRlY3JlbWVudC1hY3Rpb24uaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBhYzk2NTBkNzA3ZmQxZjU4YmI2ZWRhM2EwMmY4YjBm
MjYzMWFkYjlhLi45NzJmNDhmZTU4NDdiODc3ZGI1Njk5ZGIyNzIyNTc4Mjg4ODcxYWQxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTI2NCw3ICsxMjY0
LDYgQEAgbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWRvY3VtZW50cy9tZWRpYS1k
b2N1bWVudC1hdWRpby1pb3Mtc2l6aW5nLmh0bWwKIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy9tZWRpYS1kb2N1bWVudHMvbWVkaWEtZG9jdW1lbnQtdmlkZW8taXBob25lLXNpemluZy5odG1s
IFsgU2tpcCBdCiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtZG9jdW1lbnRzL21l
ZGlhLWRvY3VtZW50LXZpZGVvLWlwYWQtc2l6aW5nLmh0bWwgWyBTa2lwIF0KIG1lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy9zY3J1YmJlci1zdXBwb3J0L2lwYWQgWyBTa2lwIF0KLW1lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MgWyBTa2lwIF0KIAogIyBUaGVz
ZSB0ZXN0cyBhcmUgdGltaW5nLXJlbGF0ZWQgYW5kIGNhbiBmYWlsIGR1ZSB0byBwZXJmb3JtYW5j
ZSBpc3N1ZXMgb24gYm90cwogd2Via2l0Lm9yZy9iLzE2OTg3NiBtZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWF1dG8taGlkZS1tb3Vz
ZS1lbnRlci1hbmQtbW91c2UtbGVhdmUuaHRtbCBbIFBhc3MgVGltZW91dCBdCkBAIC0xMjgwLDgg
KzEyNzksNiBAQCB3ZWJraXQub3JnL2IvMTc4MTI3IG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZQogIyBvbiBpT1MsIGFuZCB0aGUgYnVn
IGl0IHdhcyBjcmVhdGVkIHRvIHJlZ3Jlc3Npb24tdGVzdCB3YXMgaU9TLW9ubHksIHNvIHRoZXJl
IGlzIG5vIGh1cnJ5IHRvIG1ha2UgaXQgd29yayBvbiBNYWMuCiBtZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvbWVkaWEtZG9jdW1lbnRzL2JhY2tncm91bmQtY29sb3ItYW5kLWNlbnRlcmluZy5o
dG1sIFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzE2OTE1OCBtZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0
LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmctY29udHJvbHMuaHRtbCBbIFNraXAgXQotCiB3ZWJr
aXQub3JnL2IvMTc4MDgzIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcGFpbnQtdG8t
Y2FudmFzLmh0bWwgWyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzE3MzA2OCBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9nZXRLZXkuaHRt
bCBbIFBhc3MgRmFpbHVyZSBdCkBAIC0yMjg1LDggKzIyODIsNiBAQCB3ZWJraXQub3JnL2IvMjIy
MTE4IFsgQmlnU3VyKyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b3VudGVyLQogCiB3ZWJraXQub3JnL2IvMjIyMTg1IG1lZGlhL21lZGlhLWV4dGVuc2lvbi13aXRo
LWZyYWdtZW50Lmh0bWwgWyBDcmFzaCBdCiAKLXdlYmtpdC5vcmcvYi8yMjIxOTcgbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LWF1ZGlvLXRy
YWNrcy5odG1sIFsgUGFzcyBUaW1lb3V0IF0KLQogd2Via2l0Lm9yZy9iLzIyMjIwNSBjc3MzL2Nh
bGMvdHJhbnNmb3Jtcy10cmFuc2xhdGUuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdCiAK
IHdlYmtpdC5vcmcvYi8yMjIxOTUgaW5zcGVjdG9yL2FuaW1hdGlvbi9saWZlY3ljbGUtY3NzLXRy
YW5zaXRpb24uaHRtbCBbIFBhc3MgVGltZW91dCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9y
ZXNvdXJjZXMvdWktaGVscGVyLmpzIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5q
cwppbmRleCAxZWQyZWEzMjgxZmJlYjQ0NzY3NzI4ZGY5YjAzNzUyNDQwMzhmNzRhLi5jOTkyZWJm
YjFjM2JlNTk0MzNmMjQwZjJlM2ZmNzY3MzFhNzMzZTY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1o
ZWxwZXIuanMKQEAgLTEyMTksMTEgKzEyMTksMTcgQEAgd2luZG93LlVJSGVscGVyID0gY2xhc3Mg
VUlIZWxwZXIgewogICAgICAgICB9KTsKICAgICB9CiAKLSAgICBzdGF0aWMgYXN5bmMgY2hvb3Nl
TWVudUFjdGlvbihhY3Rpb24pCisgICAgc3RhdGljIGNob29zZU1lbnVBY3Rpb24oYWN0aW9uKQog
ICAgIHsKLSAgICAgICAgY29uc3QgbWVudVJlY3QgPSBhd2FpdCB0aGlzLnJlY3RGb3JNZW51QWN0
aW9uKGFjdGlvbik7Ci0gICAgICAgIGlmIChtZW51UmVjdCkKLSAgICAgICAgICAgIGF3YWl0IHRo
aXMuYWN0aXZhdGVBdChtZW51UmVjdC5sZWZ0ICsgbWVudVJlY3Qud2lkdGggLyAyLCBtZW51UmVj
dC50b3AgKyBtZW51UmVjdC5oZWlnaHQgLyAyKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNl
KHJlc29sdmUgPT4geworICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAg
ICAgICAgICAgICAgKCgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLmNo
b29zZU1lbnVBY3Rpb24oIiR7YWN0aW9ufSIsICgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgIH0pKCk7CisgICAgICAgICAgICBgLCByZXNvbHZlKTsKKyAg
ICAgICAgfSk7CiAgICAgfQogCiAgICAgc3RhdGljIHdhaXRGb3JFdmVudCh0YXJnZXQsIGV2ZW50
TmFtZSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>