<?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>160194</bug_id>
          
          <creation_ts>2016-07-26 05:34:59 -0700</creation_ts>
          <short_desc>[Streams API] Replace ReadableStreamReader by ReadableStreamDefaultReader</short_desc>
          <delta_ts>2019-05-02 16:23:57 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Romain Bellessort">romain.wkt</reporter>
          <assigned_to name="Romain Bellessort">romain.wkt</assigned_to>
          <cc>ap</cc>
    
    <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>helen_hope</cc>
    
    <cc>lucasashtonn</cc>
    
    <cc>rajsnh200</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1214514</commentid>
    <comment_count>0</comment_count>
    <who name="Romain Bellessort">romain.wkt</who>
    <bug_when>2016-07-26 05:34:59 -0700</bug_when>
    <thetext>Streams API now considers different kinds of readers. To start aligning with spec, ReadableStreamReader should be replaced by ReadableStreamDefaultReader.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214519</commentid>
    <comment_count>1</comment_count>
      <attachid>284585</attachid>
    <who name="Romain Bellessort">romain.wkt</who>
    <bug_when>2016-07-26 06:05:16 -0700</bug_when>
    <thetext>Created attachment 284585
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214533</commentid>
    <comment_count>2</comment_count>
      <attachid>284591</attachid>
    <who name="Romain Bellessort">romain.wkt</who>
    <bug_when>2016-07-26 08:18:49 -0700</bug_when>
    <thetext>Created attachment 284591
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214564</commentid>
    <comment_count>3</comment_count>
      <attachid>284591</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-07-26 09:44:26 -0700</bug_when>
    <thetext>Comment on attachment 284591
Patch

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

&gt; Source/WebCore/features.json:681
&gt; +        &quot;comment&quot;: &quot;The ReadableStream and ReadableStreamDefaultReader interfaces are available but not functional.&quot;

This comment is no longer valid. Also ReadableStreamDefaultReader is NoInterfaceObject.

I would rewrite the comment to something like:
The implementation does not support ReadableStreamBYOBReader.

Also, it might be worth investigating the removal of STREAMS_API for ReadableStream (probably not WritableStream) and add a runtime flag for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214841</commentid>
    <comment_count>4</comment_count>
      <attachid>284682</attachid>
    <who name="Romain Bellessort">romain.wkt</who>
    <bug_when>2016-07-27 02:40:50 -0700</bug_when>
    <thetext>Created attachment 284682
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214842</commentid>
    <comment_count>5</comment_count>
    <who name="Romain Bellessort">romain.wkt</who>
    <bug_when>2016-07-27 02:44:10 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 284591 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=284591&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/features.json:681
&gt; &gt; +        &quot;comment&quot;: &quot;The ReadableStream and ReadableStreamDefaultReader interfaces are available but not functional.&quot;
&gt; 
&gt; This comment is no longer valid. Also ReadableStreamDefaultReader is
&gt; NoInterfaceObject.
&gt; 
&gt; I would rewrite the comment to something like:
&gt; The implementation does not support ReadableStreamBYOBReader.

The new patch fixes that and also replaces ReadableStreamReader by ReadableStreamDefaultReader in LayoutTests/streams.

&gt; Also, it might be worth investigating the removal of STREAMS_API for
&gt; ReadableStream (probably not WritableStream) and add a runtime flag for it.

Thanks, I&apos;ll try to investigate this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214845</commentid>
    <comment_count>6</comment_count>
      <attachid>284682</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-07-27 03:18:35 -0700</bug_when>
    <thetext>Comment on attachment 284682
Patch

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

&gt; Source/WebCore/Modules/streams/ReadableStreamDefaultReader.js:33
&gt; +        return @Promise.@reject(new @TypeError(&quot;Can only call ReadableStreamDefaultReader.cancel on instances of ReadableStreamDefaultReader&quot;));

This should use makeThisTypeError. See the latest change to Source/WebCore/Modules/streams/ReadableStreamReader.js
Let&apos;s do that as a follow-up patch.
Ditto for other functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214846</commentid>
    <comment_count>7</comment_count>
      <attachid>284682</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-27 03:41:30 -0700</bug_when>
    <thetext>Comment on attachment 284682
Patch

Clearing flags on attachment: 284682

Committed r203772: &lt;http://trac.webkit.org/changeset/203772&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214847</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-27 03:41:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284585</attachid>
            <date>2016-07-26 06:05:16 -0700</date>
            <delta_ts>2016-07-26 08:18:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160194-20160726150406.patch</filename>
            <type>text/plain</type>
            <size>31676</size>
            <attacher name="Romain Bellessort">romain.wkt</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGJjM2YwNjc3ZTY3YTYz
ZmM5MTM4MTJlNzliODlhZjBkZjQ3ODdiMC4uZmNhY2MxZTcxMDQ0YzEyMzI0ZmNmMzhmMmY5NDE2
NmJkNWViMDc2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE2LTA3LTI2ICBSb21h
aW4gQmVsbGVzc29ydCAgPHJvbWFpbi5iZWxsZXNzb3J0QGNyZi5jYW5vbi5mcj4KKworICAgICAg
ICBbU3RyZWFtcyBBUEldIFJlcGxhY2UgUmVhZGFibGVTdHJlYW1SZWFkZXIgYnkgUmVhZGFibGVT
dHJlYW1EZWZhdWx0UmVhZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjAxOTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZXBsYWNlZCBSZWFkYWJsZVN0cmVhbVJlYWRlciBieSBSZWFkYWJsZVN0cmVh
bURlZmF1bHRSZWFkZXIgdG8gYWxpZ24KKyAgICAgICAgd2l0aCB1cGRhdGVkIFN0cmVhbXMgQVBJ
IHNwZWNpZmljYXRpb24uCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkuCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNo
L0ZldGNoUmVzcG9uc2UuanM6CisgICAgICAgIChib2R5KToKKyAgICAgICAgKiBNb2R1bGVzL3N0
cmVhbXMvUmVhZGFibGVTdHJlYW0uanM6CisgICAgICAgIChnZXRSZWFkZXIpOgorICAgICAgICAo
cGlwZVRvKToKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0
UmVhZGVyLmlkbDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9S
ZWFkYWJsZVN0cmVhbVJlYWRlci5pZGwuCisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtRGVmYXVsdFJlYWRlci5qczogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVJlYWRlci5qcy4KKyAgICAgICAgKGNhbmNlbCk6
CisgICAgICAgIChyZWFkKToKKyAgICAgICAgKHJlbGVhc2VMb2NrKToKKyAgICAgICAgKGNsb3Nl
ZCk6CisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpz
OgorICAgICAgICAocHJpdmF0ZUluaXRpYWxpemVSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIp
OgorICAgICAgICAodGVlUmVhZGFibGVTdHJlYW0pOgorICAgICAgICAodGVlUmVhZGFibGVTdHJl
YW1QdWxsRnVuY3Rpb24pOgorICAgICAgICAoaXNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIp
OgorICAgICAgICAoY2xvc2VSZWFkYWJsZVN0cmVhbSk6CisgICAgICAgIChyZWFkRnJvbVJlYWRh
YmxlU3RyZWFtRGVmYXVsdFJlYWRlcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01HbG9i
YWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01HbG9iYWxPYmplY3Q6OmFkZEJ1
aWx0aW5HbG9iYWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NR2xvYmFsT2JqZWN0OjpmaW5p
c2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbVByaXZh
dGVDb25zdHJ1Y3RvcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0SlNSZWFkYWJs
ZVN0cmVhbURlZmF1bHRSZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6SlNCdWlsdGluUmVhZGFi
bGVTdHJlYW1EZWZhdWx0UmVhZGVyUHJpdmF0ZUNvbnN0cnVjdG9yOjppbml0aWFsaXplRXhlY3V0
YWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFk
ZXJQcml2YXRlQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUmVhZGFibGVT
dHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmg6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29y
ZUJ1aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGZlYXR1cmVzLmpzb246CisKIDIwMTYtMDctMjUg
IFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW2Nz
cy1ncmlkXSBncmlkLWF1dG8tZmxvd3xyb3cgc2hvdWxkIHRha2UgYSA8dHJhY2stc2l6ZT4rCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CmluZGV4IDZkYzExM2Y4YTJjNjAyZTNmNTAxMzMxMzczNmVjYWEzNjZi
ZTU3ZmQuLjA3OWQ5NGMyNDNkYjMxNzJiZTgyNWYyODg2OTU1MTE2NWQ2Yjg0NGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CkBAIC0yNjMsNyArMjYzLDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExf
RklMRVMKICAgICBNb2R1bGVzL3N0cmVhbXMvQ291bnRRdWV1aW5nU3RyYXRlZ3kuaWRsCiAgICAg
TW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmlkbAogICAgIE1vZHVsZXMvc3RyZWFtcy9S
ZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuaWRsCi0gICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtUmVhZGVyLmlkbAorICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbURlZmF1
bHRSZWFkZXIuaWRsCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmlk
bAogICAgIE1vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbS5pZGwKIApAQCAtMzcyNyw3ICsz
NzI3LDcgQEAgc2V0KFdlYkNvcmVfQlVJTFRJTlNfU09VUkNFUwogICAgICR7V0VCQ09SRV9ESVJ9
L01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5qcwogICAgICR7V0VCQ09SRV9ESVJ9L01v
ZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuanMKICAgICAke1dFQkNPUkVf
RElSfS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1JbnRlcm5hbHMuanMKLSAgICAke1dF
QkNPUkVfRElSfS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1SZWFkZXIuanMKKyAgICAk
e1dFQkNPUkVfRElSfS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVy
LmpzCiAgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9zdHJlYW1zL1N0cmVhbUludGVybmFscy5q
cwogICAgICR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbS5qcwog
ICAgICR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbUludGVybmFs
cy5qcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCmluZGV4IDkwNjA5ZGNlNmZmZjQ1ZTUyZjg1
NzgxYzA0ZDE0YjQzMzE3MzhkYzcuLjgxYWRjYmQ4YzQ3YWQyZjYxY2Y5MzlmYWIyMjI5YTE3ZDE2
NDBmZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTk5LDcgKzk5LDcgQEAKICNp
bmNsdWRlICJKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIgogI2luY2x1ZGUgIkpTV2Vi
R0xTYW1wbGVyLmNwcCIKICNpbmNsdWRlICJKU1dlYkdMU2hhZGVyLmNwcCIKLSNpbmNsdWRlICJK
U1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmNwcCIgCisjaW5jbHVkZSAiSlNXZWJHTFNoYWRl
clByZWNpc2lvbkZvcm1hdC5jcHAiCiAjaW5jbHVkZSAiSlNXZWJHTFN5bmMuY3BwIgogI2luY2x1
ZGUgIkpTV2ViR0xUZXh0dXJlLmNwcCIKICNpbmNsdWRlICJKU1dlYkdMVHJhbnNmb3JtRmVlZGJh
Y2suY3BwIgpAQCAtMzk2LDcgKzM5Niw3IEBACiAjaWYgRU5BQkxFKFNUUkVBTVNfQVBJKQogI2lu
Y2x1ZGUgIkpTUmVhZGFibGVTdHJlYW0uY3BwIgogI2luY2x1ZGUgIkpTUmVhZGFibGVTdHJlYW1D
b250cm9sbGVyLmNwcCIKLSNpbmNsdWRlICJKU1JlYWRhYmxlU3RyZWFtUmVhZGVyLmNwcCIKKyNp
bmNsdWRlICJKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5jcHAiCiAjaW5jbHVkZSAiSlNX
cml0YWJsZVN0cmVhbS5jcHAiCiAjZW5kaWYKICNpbmNsdWRlICJKU1JlY3QuY3BwIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNTY4NWRjMjU3YjA2NTk2ZDdhYWYyNDZlMDYzYWY5
Zjc4NzczMjZmYS4uMjZhZjJkYTgzNjk5ODdlOWMyN2YyZDk4ZDhjM2RiMTc0Y2ExYzcwYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xODYsNyArMTg2LDcgQEAgTk9OX1NWR19C
SU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvQ291bnRRdWV1
aW5nU3RyYXRlZ3kuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJs
ZVN0cmVhbS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3Ry
ZWFtQ29udHJvbGxlci5pZGwgXAotICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtUmVhZGVyLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvUmVh
ZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0
cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
c3RyZWFtcy9Xcml0YWJsZVN0cmVhbS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0J1ZmZlci5pZGwgXApAQCAtMTI5OCw3ICsxMjk4LDcgQEAgV2ViQ29yZV9CVUlM
VElOU19TT1VSQ0VTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtLmpzIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bUNvbnRyb2xsZXIuanMgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtSW50ZXJuYWxzLmpzIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9SZWFk
YWJsZVN0cmVhbVJlYWRlci5qcyBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvUmVh
ZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmpzIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3Ry
ZWFtcy9TdHJlYW1JbnRlcm5hbHMuanMgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1z
L1dyaXRhYmxlU3RyZWFtLmpzIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9Xcml0
YWJsZVN0cmVhbUludGVybmFscy5qcyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L0ZldGNoUmVzcG9uc2UuanMKaW5kZXggYzRhY2MwMTAxMWY0YzFlZTYzNzBkYzMzNDEzMzlkYjY4
NTgxOTAzZS4uOTMwOGI3MmIxYzk2OTY0YjliZmE2OTQ4ZmE5ZDc0MGY3NDE3NzdkMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5qcwpAQCAtNjAsNyAr
NjAsNyBAQCBmdW5jdGlvbiBib2R5KCkKICAgICAgICAgaWYgKEBSZXNwb25zZS5wcm90b3R5cGUu
QGlzRGlzdHVyYmVkLkBjYWxsKHRoaXMpKSB7CiAgICAgICAgICAgICB0aGlzLkBib2R5ID0gbmV3
IEBSZWFkYWJsZVN0cmVhbSgpOwogICAgICAgICAgICAgLy8gR2V0IHJlYWRlciB0byBsb2NrIGl0
LgotICAgICAgICAgICAgbmV3IEBSZWFkYWJsZVN0cmVhbVJlYWRlcih0aGlzLkBib2R5KTsKKyAg
ICAgICAgICAgIG5ldyBAUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyKHRoaXMuQGJvZHkpOwog
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgdmFyIHNvdXJjZSA9IEBSZXNwb25zZS5wcm90
b3R5cGUuQGNyZWF0ZVJlYWRhYmxlU3RyZWFtU291cmNlLkBjYWxsKHRoaXMpOwogICAgICAgICAg
ICAgdGhpcy5AYm9keSA9IHNvdXJjZSA/IG5ldyBAUmVhZGFibGVTdHJlYW0oc291cmNlKSA6IG51
bGw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW0uanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0u
anMKaW5kZXggOWU2YTlkZjU2MWUzMTVjODQyM2JlMTIzNGFlOGU3ODNjNThiZGI3Zi4uNDUwZjhk
MTNiYWZiOWYxODkwYzczNWVkMjIwOTlmYWExYWQ5YTUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5qcwpAQCAtODYsNyArODYsNyBAQCBm
dW5jdGlvbiBnZXRSZWFkZXIoKQogICAgIGlmICghQGlzUmVhZGFibGVTdHJlYW0odGhpcykpCiAg
ICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJGdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIG9u
IGEgUmVhZGFibGVTdHJlYW0iKTsKIAotICAgIHJldHVybiBuZXcgQFJlYWRhYmxlU3RyZWFtUmVh
ZGVyKHRoaXMpOworICAgIHJldHVybiBuZXcgQFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlcih0
aGlzKTsKIH0KIAogZnVuY3Rpb24gcGlwZVRocm91Z2goc3RyZWFtcywgb3B0aW9ucykKQEAgLTE4
Niw3ICsxODYsNyBAQCBmdW5jdGlvbiBwaXBlVG8oZGVzdGluYXRpb24pCiAgICAgKTsKIAogICAg
IGRvUGlwZSgpOwotICAgIAorCiAgICAgcmV0dXJuIHByb21pc2VDYXBhYmlsaXR5LkBwcm9taXNl
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFi
bGVTdHJlYW1EZWZhdWx0UmVhZGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFt
cy9SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyMTNhYTFlODhl
OWIzZWU5MTY4ZDFlMjgxYmQ2YzA4MWUwM2E0MjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmlkbApA
QCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IENhbm9uIEluYy4KKyAq
IENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIHJlcXVpcmVkIHRvIGJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIENhbm9uIEluYy4gbm9yIHRoZSBu
YW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBDQU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJ
UyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgor
ICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9
U1RSRUFNU19BUEksCisgICAgQ3VzdG9tQ29uc3RydWN0b3IoUmVhZGFibGVTdHJlYW0gc3RyZWFt
KSwKKyAgICBFeHBvc2VkPShXaW5kb3csV29ya2VyKSwKKyAgICBKU0J1aWx0aW4sCisgICAgTm9J
bnRlcmZhY2VPYmplY3QKK10gaW50ZXJmYWNlIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlciB7
CisgICAgW05vdEVudW1lcmFibGVdIFByb21pc2UgcmVhZCgpOworICAgIFtOb3RFbnVtZXJhYmxl
XSBQcm9taXNlIGNhbmNlbChvcHRpb25hbCBhbnkgcmVhc29uKTsKKyAgICBbTm90RW51bWVyYWJs
ZV0gdm9pZCByZWxlYXNlTG9jaygpOworCisgICAgW05vdEVudW1lcmFibGVdIHJlYWRvbmx5IGF0
dHJpYnV0ZSBQcm9taXNlIGNsb3NlZDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmpzIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wZGRmYzQ1NjE4OTY0ZWY0ZGRmNDQ2YTM3MzQyY2U0NmE5MjA3OWQxCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFt
RGVmYXVsdFJlYWRlci5qcwpAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IENhbm9uIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworLy8gQGNvbmRpdGlvbmFsPUVOQUJMRShTVFJFQU1TX0FQSSkKKworZnVuY3Rpb24gY2FuY2Vs
KHJlYXNvbikKK3sKKyAgICAidXNlIHN0cmljdCI7CisKKyAgICBpZiAoIUBpc1JlYWRhYmxlU3Ry
ZWFtRGVmYXVsdFJlYWRlcih0aGlzKSkKKyAgICAgICAgcmV0dXJuIEBQcm9taXNlLkByZWplY3Qo
bmV3IEBUeXBlRXJyb3IoIkZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWQgb24gYSBSZWFkYWJsZVN0
cmVhbURlZmF1bHRSZWFkZXIiKSk7CisKKyAgICBpZiAoIXRoaXMuQG93bmVyUmVhZGFibGVTdHJl
YW0pCisgICAgICAgIHJldHVybiBAUHJvbWlzZS5AcmVqZWN0KG5ldyBAVHlwZUVycm9yKCJjYW5j
ZWwoKSBjYWxsZWQgb24gYSByZWFkZXIgb3duZWQgYnkgbm8gcmVhZGFibGUgc3RyZWFtIikpOwor
CisgICAgcmV0dXJuIEBjYW5jZWxSZWFkYWJsZVN0cmVhbSh0aGlzLkBvd25lclJlYWRhYmxlU3Ry
ZWFtLCByZWFzb24pOworfQorCitmdW5jdGlvbiByZWFkKCkKK3sKKyAgICAidXNlIHN0cmljdCI7
CisKKyAgICBpZiAoIUBpc1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlcih0aGlzKSkKKyAgICAg
ICAgcmV0dXJuIEBQcm9taXNlLkByZWplY3QobmV3IEBUeXBlRXJyb3IoIkZ1bmN0aW9uIHNob3Vs
ZCBiZSBjYWxsZWQgb24gYSBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIiKSk7CisgICAgaWYg
KCF0aGlzLkBvd25lclJlYWRhYmxlU3RyZWFtKQorICAgICAgICByZXR1cm4gQFByb21pc2UuQHJl
amVjdChuZXcgQFR5cGVFcnJvcigicmVhZCgpIGNhbGxlZCBvbiBhIHJlYWRlciBvd25lZCBieSBu
byByZWFkYWJsZSBzdHJlYW0iKSk7CisKKyAgICByZXR1cm4gQHJlYWRGcm9tUmVhZGFibGVTdHJl
YW1EZWZhdWx0UmVhZGVyKHRoaXMpOworfQorCitmdW5jdGlvbiByZWxlYXNlTG9jaygpCit7Cisg
ICAgInVzZSBzdHJpY3QiOworCisgICAgaWYgKCFAaXNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFk
ZXIodGhpcykpCisgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJGdW5jdGlvbiBzaG91bGQg
YmUgY2FsbGVkIG9uIGEgUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyIik7CisKKyAgICBjb25z
dCBzdHJlYW0gPSB0aGlzLkBvd25lclJlYWRhYmxlU3RyZWFtOworICAgIGlmICghc3RyZWFtKQor
ICAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHRoaXMuQHJlYWRSZXF1ZXN0cy5sZW5ndGgpCisg
ICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJUaGVyZSBhcmUgc3RpbGwgcGVuZGluZyByZWFk
IHJlcXVlc3RzLCBjYW5ub3QgcmVsZWFzZSB0aGUgbG9jayIpOworCisgICAgaWYgKHN0cmVhbS5A
c3RhdGUgPT09IEBzdHJlYW1SZWFkYWJsZSkKKyAgICAgICAgdGhpcy5AY2xvc2VkUHJvbWlzZUNh
cGFiaWxpdHkuQHJlamVjdC5AY2FsbChAdW5kZWZpbmVkLCBuZXcgQFR5cGVFcnJvcigicmVsZWFz
aW5nIGxvY2sgb2YgcmVhZGVyIHdob3NlIHN0cmVhbSBpcyBzdGlsbCBpbiByZWFkYWJsZSBzdGF0
ZSIpKTsKKyAgICBlbHNlCisgICAgICAgIHRoaXMuQGNsb3NlZFByb21pc2VDYXBhYmlsaXR5ID0g
eyBAcHJvbWlzZTogQFByb21pc2UuQHJlamVjdChuZXcgQFR5cGVFcnJvcigicmVhZGVyIHJlbGVh
c2VkIGxvY2siKSkgfTsKKworICAgIHN0cmVhbS5AcmVhZGVyID0gQHVuZGVmaW5lZDsKKyAgICB0
aGlzLkBvd25lclJlYWRhYmxlU3RyZWFtID0gbnVsbDsKK30KKworZnVuY3Rpb24gY2xvc2VkKCkK
K3sKKyAgICAidXNlIHN0cmljdCI7CisKKyAgICBpZiAoIUBpc1JlYWRhYmxlU3RyZWFtRGVmYXVs
dFJlYWRlcih0aGlzKSkKKyAgICAgICAgcmV0dXJuIEBQcm9taXNlLkByZWplY3QobmV3IEBUeXBl
RXJyb3IoIkNhbGxlZSBvZiBjbG9zZWQgaXMgbm90IGEgUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVh
ZGVyIikpOworCisgICAgcmV0dXJuIHRoaXMuQGNsb3NlZFByb21pc2VDYXBhYmlsaXR5LkBwcm9t
aXNlOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtSW50ZXJuYWxzLmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1Jl
YWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzCmluZGV4IGE5YmU3MGZhYTdmM2UyNDZjYWRmY2Q2ZjAz
NmE0NDE5M2YxZDI4ZDIuLjEwOTA5Y2QxODBiMDkwMzA4YTA4ZGE1ZDk1NWM3ZThlNzljMGU1ZTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bUludGVybmFscy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFi
bGVTdHJlYW1JbnRlcm5hbHMuanMKQEAgLTI3LDEyICsyNywxMiBAQAogLy8gQGNvbmRpdGlvbmFs
PUVOQUJMRShTVFJFQU1TX0FQSSkKIC8vIEBpbnRlcm5hbAogCi1mdW5jdGlvbiBwcml2YXRlSW5p
dGlhbGl6ZVJlYWRhYmxlU3RyZWFtUmVhZGVyKHN0cmVhbSkKK2Z1bmN0aW9uIHByaXZhdGVJbml0
aWFsaXplUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyKHN0cmVhbSkKIHsKICAgICAidXNlIHN0
cmljdCI7CiAKICAgICBpZiAoIUBpc1JlYWRhYmxlU3RyZWFtKHN0cmVhbSkpCi0gICAgICAgdGhy
b3cgbmV3IEBUeXBlRXJyb3IoIlJlYWRhYmxlU3RyZWFtUmVhZGVyIG5lZWRzIGEgUmVhZGFibGVT
dHJlYW0iKTsKKyAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiUmVhZGFibGVTdHJlYW1EZWZh
dWx0UmVhZGVyIG5lZWRzIGEgUmVhZGFibGVTdHJlYW0iKTsKICAgICBpZiAoQGlzUmVhZGFibGVT
dHJlYW1Mb2NrZWQoc3RyZWFtKSkKICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiUmVhZGFi
bGVTdHJlYW0gaXMgbG9ja2VkIik7CiAKQEAgLTczLDcgKzczLDcgQEAgZnVuY3Rpb24gdGVlUmVh
ZGFibGVTdHJlYW0oc3RyZWFtLCBzaG91bGRDbG9uZSkKICAgICBAYXNzZXJ0KEBpc1JlYWRhYmxl
U3RyZWFtKHN0cmVhbSkpOwogICAgIEBhc3NlcnQodHlwZW9mKHNob3VsZENsb25lKSA9PT0gImJv
b2xlYW4iKTsKIAotICAgIGNvbnN0IHJlYWRlciA9IG5ldyBAUmVhZGFibGVTdHJlYW1SZWFkZXIo
c3RyZWFtKTsKKyAgICBjb25zdCByZWFkZXIgPSBuZXcgQFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJl
YWRlcihzdHJlYW0pOwogCiAgICAgY29uc3QgdGVlU3RhdGUgPSB7CiAgICAgICAgIGNsb3NlZE9y
RXJyb3JlZDogZmFsc2UsCkBAIC0xMTYsNyArMTE2LDcgQEAgZnVuY3Rpb24gdGVlUmVhZGFibGVT
dHJlYW1QdWxsRnVuY3Rpb24odGVlU3RhdGUsIHJlYWRlciwgc2hvdWxkQ2xvbmUpCiAgICAgInVz
ZSBzdHJpY3QiOwogCiAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICBAUHJvbWlzZS5w
cm90b3R5cGUuQHRoZW4uQGNhbGwoQHJlYWRGcm9tUmVhZGFibGVTdHJlYW1SZWFkZXIocmVhZGVy
KSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgIEBQcm9taXNlLnByb3RvdHlwZS5AdGhlbi5A
Y2FsbChAcmVhZEZyb21SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIocmVhZGVyKSwgZnVuY3Rp
b24ocmVzdWx0KSB7CiAgICAgICAgICAgICBAYXNzZXJ0KEBpc09iamVjdChyZXN1bHQpKTsKICAg
ICAgICAgICAgIEBhc3NlcnQodHlwZW9mIHJlc3VsdC5kb25lID09PSAiYm9vbGVhbiIpOwogICAg
ICAgICAgICAgaWYgKHJlc3VsdC5kb25lICYmICF0ZWVTdGF0ZS5jbG9zZWRPckVycm9yZWQpIHsK
QEAgLTE3Nyw3ICsxNzcsNyBAQCBmdW5jdGlvbiBpc1JlYWRhYmxlU3RyZWFtKHN0cmVhbSkKICAg
ICByZXR1cm4gQGlzT2JqZWN0KHN0cmVhbSkgJiYgISFzdHJlYW0uQHVuZGVybHlpbmdTb3VyY2U7
CiB9CiAKLWZ1bmN0aW9uIGlzUmVhZGFibGVTdHJlYW1SZWFkZXIocmVhZGVyKQorZnVuY3Rpb24g
aXNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIocmVhZGVyKQogewogICAgICJ1c2Ugc3RyaWN0
IjsKIApAQCAtMjI2LDcgKzIyNiw3IEBAIGZ1bmN0aW9uIHJlcXVlc3RSZWFkYWJsZVN0cmVhbVB1
bGwoc3RyZWFtKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKCghQGlzUmVhZGFibGVTdHJlYW1M
b2NrZWQoc3RyZWFtKSB8fCAhc3RyZWFtLkByZWFkZXIuQHJlYWRSZXF1ZXN0cy5sZW5ndGgpICYm
IEBnZXRSZWFkYWJsZVN0cmVhbURlc2lyZWRTaXplKHN0cmVhbSkgPD0gMCkKICAgICAgICAgcmV0
dXJuOwotIAorCiAgICAgaWYgKHN0cmVhbS5AcHVsbGluZykgewogICAgICAgICBzdHJlYW0uQHB1
bGxBZ2FpbiA9IHRydWU7CiAgICAgICAgIHJldHVybjsKQEAgLTI5OSw3ICsyOTksNyBAQCBmdW5j
dGlvbiBjbG9zZVJlYWRhYmxlU3RyZWFtKHN0cmVhbSkKICAgICBAYXNzZXJ0KCFzdHJlYW0uQGNs
b3NlUmVxdWVzdGVkKTsKICAgICBAYXNzZXJ0KHN0cmVhbS5Ac3RhdGUgIT09IEBzdHJlYW1FcnJv
cmVkKTsKICAgICBpZiAoc3RyZWFtLkBzdGF0ZSA9PT0gQHN0cmVhbUNsb3NlZCkKLSAgICAgICAg
cmV0dXJuOyAKKyAgICAgICAgcmV0dXJuOwogICAgIHN0cmVhbS5AY2xvc2VSZXF1ZXN0ZWQgPSB0
cnVlOwogICAgIGlmICghc3RyZWFtLkBxdWV1ZS5jb250ZW50Lmxlbmd0aCkKICAgICAgICAgQGZp
bmlzaENsb3NpbmdSZWFkYWJsZVN0cmVhbShzdHJlYW0pOwpAQCAtMzM1LDcgKzMzNSw3IEBAIGZ1
bmN0aW9uIGVucXVldWVJblJlYWRhYmxlU3RyZWFtKHN0cmVhbSwgY2h1bmspCiAgICAgQHJlcXVl
c3RSZWFkYWJsZVN0cmVhbVB1bGwoc3RyZWFtKTsKIH0KIAotZnVuY3Rpb24gcmVhZEZyb21SZWFk
YWJsZVN0cmVhbVJlYWRlcihyZWFkZXIpCitmdW5jdGlvbiByZWFkRnJvbVJlYWRhYmxlU3RyZWFt
RGVmYXVsdFJlYWRlcihyZWFkZXIpCiB7CiAgICAgInVzZSBzdHJpY3QiOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1SZWFkZXIuaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtUmVhZGVyLmlk
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTRlN2I3ZDNlNGRhZGRhOTAzYjdmY2Y5
ZTk0MTA4NDk5YmNlNTlhNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1SZWFk
ZXIuaWRsCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNSBDYW5vbiBJbmMuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCwgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSByZXF1aXJlZCB0byBiZSBtZXQ6
Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBv
ZiBDYW5vbiBJbmMuIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAg
ZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQ0FOT04gSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIENBTk9OIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotICogQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAot
ICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IKLSAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0gKiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLAotICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotWwotICAgIENvbmRpdGlvbmFsPVNUUkVBTVNfQVBJLAotICAgIEN1c3RvbUNvbnN0cnVjdG9y
KFJlYWRhYmxlU3RyZWFtIHN0cmVhbSksCi0gICAgRXhwb3NlZD0oV2luZG93LFdvcmtlciksCi0g
ICAgSlNCdWlsdGluLAotICAgIE5vSW50ZXJmYWNlT2JqZWN0Ci1dIGludGVyZmFjZSBSZWFkYWJs
ZVN0cmVhbVJlYWRlciB7Ci0gICAgW05vdEVudW1lcmFibGVdIFByb21pc2UgcmVhZCgpOwotICAg
IFtOb3RFbnVtZXJhYmxlXSBQcm9taXNlIGNhbmNlbChvcHRpb25hbCBhbnkgcmVhc29uKTsKLSAg
ICBbTm90RW51bWVyYWJsZV0gdm9pZCByZWxlYXNlTG9jaygpOwotCi0gICAgW05vdEVudW1lcmFi
bGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBQcm9taXNlIGNsb3NlZDsKLX07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1SZWFkZXIuanMgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1SZWFkZXIuanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMyNjQ3ZDVlYjZkMWZmYTdmMGYzMjFlOWY0OGM3
YjQyMWJkNzdlOWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtUmVhZGVyLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsODQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NSBDYW5vbiBJbmMuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LS8vIEBjb25kaXRpb25hbD1FTkFCTEUoU1RSRUFNU19BUEkpCi0KLWZ1bmN0aW9uIGNhbmNlbChy
ZWFzb24pCi17Ci0gICAgInVzZSBzdHJpY3QiOwotCi0gICAgaWYgKCFAaXNSZWFkYWJsZVN0cmVh
bVJlYWRlcih0aGlzKSkKLSAgICAgICAgcmV0dXJuIEBQcm9taXNlLkByZWplY3QobmV3IEBUeXBl
RXJyb3IoIkZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWQgb24gYSBSZWFkYWJsZVN0cmVhbVJlYWRl
ciIpKTsKLQotICAgIGlmICghdGhpcy5Ab3duZXJSZWFkYWJsZVN0cmVhbSkKLSAgICAgICAgcmV0
dXJuIEBQcm9taXNlLkByZWplY3QobmV3IEBUeXBlRXJyb3IoImNhbmNlbCgpIGNhbGxlZCBvbiBh
IHJlYWRlciBvd25lZCBieSBubyByZWFkYWJsZSBzdHJlYW0iKSk7Ci0KLSAgICByZXR1cm4gQGNh
bmNlbFJlYWRhYmxlU3RyZWFtKHRoaXMuQG93bmVyUmVhZGFibGVTdHJlYW0sIHJlYXNvbik7Ci19
Ci0KLWZ1bmN0aW9uIHJlYWQoKQotewotICAgICJ1c2Ugc3RyaWN0IjsKLQotICAgIGlmICghQGlz
UmVhZGFibGVTdHJlYW1SZWFkZXIodGhpcykpCi0gICAgICAgIHJldHVybiBAUHJvbWlzZS5AcmVq
ZWN0KG5ldyBAVHlwZUVycm9yKCJGdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIG9uIGEgUmVhZGFi
bGVTdHJlYW1SZWFkZXIiKSk7Ci0gICAgaWYgKCF0aGlzLkBvd25lclJlYWRhYmxlU3RyZWFtKQot
ICAgICAgICByZXR1cm4gQFByb21pc2UuQHJlamVjdChuZXcgQFR5cGVFcnJvcigicmVhZCgpIGNh
bGxlZCBvbiBhIHJlYWRlciBvd25lZCBieSBubyByZWFkYWJsZSBzdHJlYW0iKSk7Ci0KLSAgICBy
ZXR1cm4gQHJlYWRGcm9tUmVhZGFibGVTdHJlYW1SZWFkZXIodGhpcyk7Ci19Ci0KLWZ1bmN0aW9u
IHJlbGVhc2VMb2NrKCkKLXsKLSAgICAidXNlIHN0cmljdCI7Ci0KLSAgICBpZiAoIUBpc1JlYWRh
YmxlU3RyZWFtUmVhZGVyKHRoaXMpKQotICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiRnVu
Y3Rpb24gc2hvdWxkIGJlIGNhbGxlZCBvbiBhIFJlYWRhYmxlU3RyZWFtUmVhZGVyIik7Ci0KLSAg
ICBjb25zdCBzdHJlYW0gPSB0aGlzLkBvd25lclJlYWRhYmxlU3RyZWFtOwotICAgIGlmICghc3Ry
ZWFtKQotICAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKHRoaXMuQHJlYWRSZXF1ZXN0cy5sZW5n
dGgpCi0gICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJUaGVyZSBhcmUgc3RpbGwgcGVuZGlu
ZyByZWFkIHJlcXVlc3RzLCBjYW5ub3QgcmVsZWFzZSB0aGUgbG9jayIpOwotCi0gICAgaWYgKHN0
cmVhbS5Ac3RhdGUgPT09IEBzdHJlYW1SZWFkYWJsZSkKLSAgICAgICAgdGhpcy5AY2xvc2VkUHJv
bWlzZUNhcGFiaWxpdHkuQHJlamVjdC5AY2FsbChAdW5kZWZpbmVkLCBuZXcgQFR5cGVFcnJvcigi
cmVsZWFzaW5nIGxvY2sgb2YgcmVhZGVyIHdob3NlIHN0cmVhbSBpcyBzdGlsbCBpbiByZWFkYWJs
ZSBzdGF0ZSIpKTsKLSAgICBlbHNlCi0gICAgICAgIHRoaXMuQGNsb3NlZFByb21pc2VDYXBhYmls
aXR5ID0geyBAcHJvbWlzZTogQFByb21pc2UuQHJlamVjdChuZXcgQFR5cGVFcnJvcigicmVhZGVy
IHJlbGVhc2VkIGxvY2siKSkgfTsKLQotICAgIHN0cmVhbS5AcmVhZGVyID0gQHVuZGVmaW5lZDsK
LSAgICB0aGlzLkBvd25lclJlYWRhYmxlU3RyZWFtID0gbnVsbDsKLX0KLQotZnVuY3Rpb24gY2xv
c2VkKCkKLXsKLSAgICAidXNlIHN0cmljdCI7Ci0KLSAgICBpZiAoIUBpc1JlYWRhYmxlU3RyZWFt
UmVhZGVyKHRoaXMpKQotICAgICAgICByZXR1cm4gQFByb21pc2UuQHJlamVjdChuZXcgQFR5cGVF
cnJvcigiQ2FsbGVlIG9mIGNsb3NlZCBpcyBub3QgYSBSZWFkYWJsZVN0cmVhbVJlYWRlciIpKTsK
LQotICAgIHJldHVybiB0aGlzLkBjbG9zZWRQcm9taXNlQ2FwYWJpbGl0eS5AcHJvbWlzZTsKLX0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcApp
bmRleCA1ZmQ1ZTE4MTUyNTFlZGZlMjdiYjlmZDc4ZjQzNjM1NzMwMzExNmM2Li4yOTRmN2RkNjkz
NDYyYTRhODc5YTdiMTVmMTBhM2EyYTVmZWY0NDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCkBAIC02NywxMyArNjcsMTMgQEAgdm9p
ZCBKU0RPTUdsb2JhbE9iamVjdDo6YWRkQnVpbHRpbkdsb2JhbHMoVk0mIHZtKQogCiAjaWYgRU5B
QkxFKFNUUkVBTVNfQVBJKQogICAgIEpTT2JqZWN0KiBwcml2YXRlUmVhZGFibGVTdHJlYW1Db250
cm9sbGVyQ29uc3RydWN0b3IgPSBjcmVhdGVSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJQcml2YXRl
Q29uc3RydWN0b3Iodm0sICp0aGlzKTsKLSAgICBKU09iamVjdCogcHJpdmF0ZVJlYWRhYmxlU3Ry
ZWFtUmVhZGVyQ29uc3RydWN0b3IgPSBjcmVhdGVSZWFkYWJsZVN0cmVhbVJlYWRlclByaXZhdGVD
b25zdHJ1Y3Rvcih2bSwgKnRoaXMpOworICAgIEpTT2JqZWN0KiBwcml2YXRlUmVhZGFibGVTdHJl
YW1EZWZhdWx0UmVhZGVyQ29uc3RydWN0b3IgPSBjcmVhdGVSZWFkYWJsZVN0cmVhbURlZmF1bHRS
ZWFkZXJQcml2YXRlQ29uc3RydWN0b3Iodm0sICp0aGlzKTsKIAogICAgIEFTU0VSVCghY29uc3Ry
dWN0b3JzKCkuZ2V0KHByaXZhdGVSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJDb25zdHJ1Y3Rvci0+
aW5mbygpKS5nZXQoKSk7Ci0gICAgQVNTRVJUKCFjb25zdHJ1Y3RvcnMoKS5nZXQocHJpdmF0ZVJl
YWRhYmxlU3RyZWFtUmVhZGVyQ29uc3RydWN0b3ItPmluZm8oKSkuZ2V0KCkpOworICAgIEFTU0VS
VCghY29uc3RydWN0b3JzKCkuZ2V0KHByaXZhdGVSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJD
b25zdHJ1Y3Rvci0+aW5mbygpKS5nZXQoKSk7CiAgICAgSlNDOjpXcml0ZUJhcnJpZXI8SlNDOjpK
U09iamVjdD4gdGVtcDsKICAgICBjb25zdHJ1Y3RvcnMoKS5hZGQocHJpdmF0ZVJlYWRhYmxlU3Ry
ZWFtQ29udHJvbGxlckNvbnN0cnVjdG9yLT5pbmZvKCksIHRlbXApLml0ZXJhdG9yLT52YWx1ZS5z
ZXQodm0sIHRoaXMsIHByaXZhdGVSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJDb25zdHJ1Y3Rvcik7
Ci0gICAgY29uc3RydWN0b3JzKCkuYWRkKHByaXZhdGVSZWFkYWJsZVN0cmVhbVJlYWRlckNvbnN0
cnVjdG9yLT5pbmZvKCksIHRlbXApLml0ZXJhdG9yLT52YWx1ZS5zZXQodm0sIHRoaXMsIHByaXZh
dGVSZWFkYWJsZVN0cmVhbVJlYWRlckNvbnN0cnVjdG9yKTsKKyAgICBjb25zdHJ1Y3RvcnMoKS5h
ZGQocHJpdmF0ZVJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlckNvbnN0cnVjdG9yLT5pbmZvKCks
IHRlbXApLml0ZXJhdG9yLT52YWx1ZS5zZXQodm0sIHRoaXMsIHByaXZhdGVSZWFkYWJsZVN0cmVh
bURlZmF1bHRSZWFkZXJDb25zdHJ1Y3Rvcik7CiAKICAgICBKU1ZNQ2xpZW50RGF0YSYgY2xpZW50
RGF0YSA9ICpzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpOwogICAg
IEpTRE9NR2xvYmFsT2JqZWN0OjpHbG9iYWxQcm9wZXJ0eUluZm8gc3RhdGljR2xvYmFsc1tdID0g
ewpAQCAtODQsNyArODQsNyBAQCB2b2lkIEpTRE9NR2xvYmFsT2JqZWN0OjphZGRCdWlsdGluR2xv
YmFscyhWTSYgdm0pCiAgICAgICAgIEpTRE9NR2xvYmFsT2JqZWN0OjpHbG9iYWxQcm9wZXJ0eUlu
Zm8oY2xpZW50RGF0YS5idWlsdGluTmFtZXMoKS5zdHJlYW1XYWl0aW5nUHJpdmF0ZU5hbWUoKSwg
anNOdW1iZXIoNSksIERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEpTRE9NR2xvYmFs
T2JqZWN0OjpHbG9iYWxQcm9wZXJ0eUluZm8oY2xpZW50RGF0YS5idWlsdGluTmFtZXMoKS5zdHJl
YW1Xcml0YWJsZVByaXZhdGVOYW1lKCksIGpzTnVtYmVyKDYpLCBEb250RGVsZXRlIHwgUmVhZE9u
bHkpLAogICAgICAgICBKU0RPTUdsb2JhbE9iamVjdDo6R2xvYmFsUHJvcGVydHlJbmZvKGNsaWVu
dERhdGEuYnVpbHRpbk5hbWVzKCkuUmVhZGFibGVTdHJlYW1Db250cm9sbGVyUHJpdmF0ZU5hbWUo
KSwgcHJpdmF0ZVJlYWRhYmxlU3RyZWFtQ29udHJvbGxlckNvbnN0cnVjdG9yLCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAotICAgICAgICBKU0RPTUdsb2JhbE9iamVjdDo6R2xvYmFsUHJvcGVydHlJ
bmZvKGNsaWVudERhdGEuYnVpbHRpbk5hbWVzKCkuUmVhZGFibGVTdHJlYW1SZWFkZXJQcml2YXRl
TmFtZSgpLCBwcml2YXRlUmVhZGFibGVTdHJlYW1SZWFkZXJDb25zdHJ1Y3RvciwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgSlNET01HbG9iYWxPYmplY3Q6Okdsb2JhbFByb3BlcnR5
SW5mbyhjbGllbnREYXRhLmJ1aWx0aW5OYW1lcygpLlJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRl
clByaXZhdGVOYW1lKCksIHByaXZhdGVSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJDb25zdHJ1
Y3RvciwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICB9OwogICAgIGFkZFN0YXRpY0dsb2Jh
bHMoc3RhdGljR2xvYmFscywgV1RGX0FSUkFZX0xFTkdUSChzdGF0aWNHbG9iYWxzKSk7CiAjZWxz
ZQpAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgSlNET01HbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSwgSlNPYmplY3QqIHRoaXNWYWx1ZSkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVh
dGlvbih2bSwgdGhpc1ZhbHVlKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAg
CisKICAgICBhZGRCdWlsdGluR2xvYmFscyh2bSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29u
c3RydWN0b3JzLmNwcAppbmRleCA0OWRkZjczMGExZTFlYzYwNGQ0MmRhOGYzM2I5NDNkYTAwMzU5
ODYzLi43NzdkMDVlMjE4ZTA5M2QzZDg5NTQ1YjgwNjlmZjM2Yjk1ODRjZjk1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0
cnVjdG9ycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0
cmVhbVByaXZhdGVDb25zdHJ1Y3RvcnMuY3BwCkBAIC0yNSw3ICsyNSw3IEBACiAjaW5jbHVkZSAi
SlNET01Db25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkpTUmVhZGFibGVTdHJlYW0uaCIKICNpbmNs
dWRlICJKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkpTUmVhZGFibGVT
dHJlYW1SZWFkZXIuaCIKKyNpbmNsdWRlICJKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5o
IgogI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaCIKICNpbmNsdWRl
IDxydW50aW1lL0NhbGxEYXRhLmg+CiAKQEAgLTM5LDExICszOSwxMSBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyKEV4ZWNT
dGF0ZSYgZXhlYwogICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKCZleGVjLCBBU0NJSUxpdGVy
YWwoIlJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciBjb25zdHJ1Y3RvciBzaG91bGQgbm90IGJlIGNh
bGxlZCBkaXJlY3RseSIpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
dHJ1Y3RKU1JlYWRhYmxlU3RyZWFtUmVhZGVyKEV4ZWNTdGF0ZSYgZXhlYykKK0VuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIo
RXhlY1N0YXRlJiBleGVjKQogewogICAgIEpTUmVhZGFibGVTdHJlYW0qIHN0cmVhbSA9IGpzRHlu
YW1pY0Nhc3Q8SlNSZWFkYWJsZVN0cmVhbSo+KGV4ZWMuYXJndW1lbnQoMCkpOwogICAgIGlmICgh
c3RyZWFtKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcigmZXhlYywgQVNDSUlMaXRl
cmFsKCJSZWFkYWJsZVN0cmVhbVJlYWRlciBjb25zdHJ1Y3RvciBwYXJhbWV0ZXIgaXMgbm90IGEg
UmVhZGFibGVTdHJlYW0iKSk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKCZleGVj
LCBBU0NJSUxpdGVyYWwoIlJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlciBjb25zdHJ1Y3RvciBw
YXJhbWV0ZXIgaXMgbm90IGEgUmVhZGFibGVTdHJlYW0iKSk7CiAKICAgICBKU1ZhbHVlIGpzRnVu
Y3Rpb24gPSBzdHJlYW0tPmdldCgmZXhlYywgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmZXhlYywg
ImdldFJlYWRlciIpKTsKIApAQCAtNTQsMTggKzU0LDE4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY29uc3RydWN0SlNSZWFkYWJsZVN0cmVhbVJlYWRlcihFeGVjU3RhdGUmIGV4ZWMp
CiB9CiAKIC8vIFByaXZhdGUgSlMgUmVhZGFibGVTdHJlYW1SZWRlciBhbmQgUmVhZGFibGVTdHJl
YW1Db250cm9sbGVyIGNvbnN0cnVjdG9ycy4KLXR5cGVkZWYgSlNCdWlsdGluQ29uc3RydWN0b3I8
SlNSZWFkYWJsZVN0cmVhbVJlYWRlcj4gSlNCdWlsdGluUmVhZGFibGVTdHJlYW1SZWFkZXJQcml2
YXRlQ29uc3RydWN0b3I7Cit0eXBlZGVmIEpTQnVpbHRpbkNvbnN0cnVjdG9yPEpTUmVhZGFibGVT
dHJlYW1EZWZhdWx0UmVhZGVyPiBKU0J1aWx0aW5SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJQ
cml2YXRlQ29uc3RydWN0b3I7CiB0eXBlZGVmIEpTQnVpbHRpbkNvbnN0cnVjdG9yPEpTUmVhZGFi
bGVTdHJlYW1Db250cm9sbGVyPiBKU0J1aWx0aW5SZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJQcml2
YXRlQ29uc3RydWN0b3I7CiAKLVNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJM
RShKU0J1aWx0aW5SZWFkYWJsZVN0cmVhbVJlYWRlclByaXZhdGVDb25zdHJ1Y3Rvcik7CitTVEFU
SUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoSlNCdWlsdGluUmVhZGFibGVTdHJl
YW1EZWZhdWx0UmVhZGVyUHJpdmF0ZUNvbnN0cnVjdG9yKTsKIFNUQVRJQ19BU1NFUlRfSVNfVFJJ
VklBTExZX0RFU1RSVUNUSUJMRShKU0J1aWx0aW5SZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJQcml2
YXRlQ29uc3RydWN0b3IpOwogCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU0J1aWx0aW5S
ZWFkYWJsZVN0cmVhbVJlYWRlclByaXZhdGVDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiUmVhZGFi
bGVTdHJlYW1SZWFkZXJQcml2YXRlQ29uc3RydWN0b3IiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEpTQnVpbHRpblJlYWRhYmxlU3RyZWFtUmVhZGVyUHJpdmF0ZUNvbnN0
cnVjdG9yKSB9OwordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNCdWlsdGluUmVhZGFibGVT
dHJlYW1EZWZhdWx0UmVhZGVyUHJpdmF0ZUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJSZWFkYWJs
ZVN0cmVhbURlZmF1bHRSZWFkZXJQcml2YXRlQ29uc3RydWN0b3IiLCAmQmFzZTo6c19pbmZvLCAw
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTQnVpbHRpblJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRl
clByaXZhdGVDb25zdHJ1Y3RvcikgfTsKIHRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTQnVp
bHRpblJlYWRhYmxlU3RyZWFtQ29udHJvbGxlclByaXZhdGVDb25zdHJ1Y3Rvcjo6c19pbmZvID0g
eyAiUmVhZGFibGVTdHJlYW1Db250cm9sbGVyUHJpdmF0ZUNvbnN0cnVjdG9yIiwgJkJhc2U6OnNf
aW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0J1aWx0aW5SZWFkYWJsZVN0cmVhbUNvbnRy
b2xsZXJQcml2YXRlQ29uc3RydWN0b3IpIH07CiAKLXRlbXBsYXRlPD4gRnVuY3Rpb25FeGVjdXRh
YmxlKiBKU0J1aWx0aW5SZWFkYWJsZVN0cmVhbVJlYWRlclByaXZhdGVDb25zdHJ1Y3Rvcjo6aW5p
dGlhbGl6ZUV4ZWN1dGFibGUoSlNDOjpWTSYgdm0pCit0ZW1wbGF0ZTw+IEZ1bmN0aW9uRXhlY3V0
YWJsZSogSlNCdWlsdGluUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyUHJpdmF0ZUNvbnN0cnVj
dG9yOjppbml0aWFsaXplRXhlY3V0YWJsZShKU0M6OlZNJiB2bSkKIHsKLSAgICByZXR1cm4gcmVh
ZGFibGVTdHJlYW1JbnRlcm5hbHNQcml2YXRlSW5pdGlhbGl6ZVJlYWRhYmxlU3RyZWFtUmVhZGVy
Q29kZUdlbmVyYXRvcih2bSk7CisgICAgcmV0dXJuIHJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzUHJp
dmF0ZUluaXRpYWxpemVSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJDb2RlR2VuZXJhdG9yKHZt
KTsKIH0KIAogdGVtcGxhdGU8PiBGdW5jdGlvbkV4ZWN1dGFibGUqIEpTQnVpbHRpblJlYWRhYmxl
U3RyZWFtQ29udHJvbGxlclByaXZhdGVDb25zdHJ1Y3Rvcjo6aW5pdGlhbGl6ZUV4ZWN1dGFibGUo
SlNDOjpWTSYgdm0pCkBAIC03Myw5ICs3Myw5IEBAIHRlbXBsYXRlPD4gRnVuY3Rpb25FeGVjdXRh
YmxlKiBKU0J1aWx0aW5SZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJQcml2YXRlQ29uc3RydWN0CiAg
ICAgcmV0dXJuIHJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzUHJpdmF0ZUluaXRpYWxpemVSZWFkYWJs
ZVN0cmVhbUNvbnRyb2xsZXJDb2RlR2VuZXJhdG9yKHZtKTsKIH0KIAotSlNPYmplY3QqIGNyZWF0
ZVJlYWRhYmxlU3RyZWFtUmVhZGVyUHJpdmF0ZUNvbnN0cnVjdG9yKFZNJiB2bSwgSlNET01HbG9i
YWxPYmplY3QmIGdsb2JhbE9iamVjdCkKK0pTT2JqZWN0KiBjcmVhdGVSZWFkYWJsZVN0cmVhbURl
ZmF1bHRSZWFkZXJQcml2YXRlQ29uc3RydWN0b3IoVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYg
Z2xvYmFsT2JqZWN0KQogewotICAgIHJldHVybiBKU0J1aWx0aW5SZWFkYWJsZVN0cmVhbVJlYWRl
clByaXZhdGVDb25zdHJ1Y3Rvcjo6Y3JlYXRlKHZtLCBKU0J1aWx0aW5SZWFkYWJsZVN0cmVhbVJl
YWRlclByaXZhdGVDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3Qs
IGdsb2JhbE9iamVjdC5vYmplY3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVjdCk7CisgICAgcmV0
dXJuIEpTQnVpbHRpblJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlclByaXZhdGVDb25zdHJ1Y3Rv
cjo6Y3JlYXRlKHZtLCBKU0J1aWx0aW5SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJQcml2YXRl
Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmpl
Y3Qub2JqZWN0UHJvdG90eXBlKCkpLCBnbG9iYWxPYmplY3QpOwogfQogCiBKU09iamVjdCogY3Jl
YXRlUmVhZGFibGVTdHJlYW1Db250cm9sbGVyUHJpdmF0ZUNvbnN0cnVjdG9yKFZNJiB2bSwgSlNE
T01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9y
cy5oCmluZGV4IGVlZDBhYjJlMWQ5YWI0YjZkMWM2Y2ZhMzY0YTc0YzExZWM3OGZiMDAuLjM2YzZl
ZjI1YzMxNmI3ZTdhMWRjYWE0YzhhYmNmYTUzZWQ5MWRhNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbVByaXZhdGVD
b25zdHJ1Y3RvcnMuaApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBKU0RPTUdsb2JhbE9iamVjdDsKIAogSlNDOjpKU09iamVjdCogY3JlYXRlUmVhZGFibGVTdHJl
YW1Db250cm9sbGVyUHJpdmF0ZUNvbnN0cnVjdG9yKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVj
dCYpOwotSlNDOjpKU09iamVjdCogY3JlYXRlUmVhZGFibGVTdHJlYW1SZWFkZXJQcml2YXRlQ29u
c3RydWN0b3IoSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7CitKU0M6OkpTT2JqZWN0KiBj
cmVhdGVSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJQcml2YXRlQ29uc3RydWN0b3IoSlNDOjpW
TSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4
IGE1YWRkOTRiMjA5YTI2OTNiZWMzNTFjOThmZmM1Y2UyOGE3NjFiZTIuLjhmYTdlYTY5ZjM1NmE4
MDc2MGQwZDNiNTBiMWM0YzdhMDU3ZTY2NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKQEAgLTg5LDcgKzg5LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIG1hY3JvKE1lZGlhU3RyZWFtKSBcCiAgICAgbWFjcm8oTWVkaWFTdHJl
YW1UcmFjaykgXAogICAgIG1hY3JvKFJlYWRhYmxlU3RyZWFtKSBcCi0gICAgbWFjcm8oUmVhZGFi
bGVTdHJlYW1SZWFkZXIpIFwKKyAgICBtYWNybyhSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIp
IFwKICAgICBtYWNybyhSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIpIFwKICAgICBtYWNybyhSZXF1
ZXN0KSBcCiAgICAgbWFjcm8oUmVzcG9uc2UpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2ZlYXR1cmVzLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9mZWF0dXJlcy5qc29uCmluZGV4IDJmYzIw
M2RlMmUxOGJjMzM5OWZlODhkZDBlOTk4NDY4M2VjMzU2NTkuLjk3YzJkZjkxZWRkODU4YzYzMGFl
OGVlN2U2MjZmZjFmOWRkMzIwMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZlYXR1cmVz
Lmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvZmVhdHVyZXMuanNvbgpAQCAtMjE5LDcgKzIxOSw3
IEBACiAgICAgICAgIH0sCiAgICAgICAgICJ1cmwiOiAiaHR0cDovL3d3dy53My5vcmcvVFIvcmVz
b3VyY2UtdGltaW5nLyIsCiAgICAgICAgICJ3ZWJraXQtdXJsIjogImh0dHBzOi8vd2Via2l0Lm9y
Zy9iLzYxMTM4IiwKLSAgICAgICAgImtleXdvcmRzIjogWyJyZXNvdXJjZXRpbWluZyIsInJlc291
cmNlIHRpbWluZyIsInJzcmMiXSwgCisgICAgICAgICJrZXl3b3JkcyI6IFsicmVzb3VyY2V0aW1p
bmciLCJyZXNvdXJjZSB0aW1pbmciLCJyc3JjIl0sCiAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJQ
cm92aWRlcyBkZXRhaWxlZCB0aW1pbmcgaW5mb3JtYXRpb24gdG8gSmF2YVNjcmlwdCBmb3Igc3Vi
LXJlc291cmNlcyBsb2FkZWQgYnkgdGhlIHBhZ2UuIiwKICAgICAgICAgImNvbnRhY3QiOiB7CiAg
ICAgICAgICAgICAibmFtZSI6ICJKb25hdGhhbiBEYXZpcyIsCkBAIC02NzgsNyArNjc4LDcgQEAK
ICAgICAgICAgInVybCI6ICJodHRwczovL3N0cmVhbXMuc3BlYy53aGF0d2cub3JnLyNycyIsCiAg
ICAgICAgICJ3ZWJraXQtdXJsIjogImh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzg5NjciLAogICAgICAgICAic3BlY2lmaWNhdGlvbiI6ICJTdHJlYW1zIiwKLSAgICAg
ICAgImNvbW1lbnQiOiAiVGhlIFJlYWRhYmxlU3RyZWFtIGFuZCBSZWFkYWJsZVN0cmVhbVJlYWRl
ciBpbnRlcmZhY2VzIGFyZSBhdmFpbGFibGUgYnV0IG5vdCBmdW5jdGlvbmFsLiIKKyAgICAgICAg
ImNvbW1lbnQiOiAiVGhlIFJlYWRhYmxlU3RyZWFtIGFuZCBSZWFkYWJsZVN0cmVhbURlZmF1bHRS
ZWFkZXIgaW50ZXJmYWNlcyBhcmUgYXZhaWxhYmxlIGJ1dCBub3QgZnVuY3Rpb25hbC4iCiAgICAg
fSwKICAgICB7CiAgICAgICAgICJuYW1lIjogIlNoYWRvdyBET00iLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284591</attachid>
            <date>2016-07-26 08:18:49 -0700</date>
            <delta_ts>2016-07-27 02:40:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160194-20160726171740.patch</filename>
            <type>text/plain</type>
            <size>44398</size>
            <attacher name="Romain Bellessort">romain.wkt</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGJjM2YwNjc3ZTY3YTYz
ZmM5MTM4MTJlNzliODlhZjBkZjQ3ODdiMC4uN2E2NjUzOTk1NGQ4MTVmZTM3OWVhNzRkMTI2MjNl
OTBjMmVjYjE0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE2LTA3LTI2ICBSb21h
aW4gQmVsbGVzc29ydCAgPHJvbWFpbi5iZWxsZXNzb3J0QGNyZi5jYW5vbi5mcj4KKworICAgICAg
ICBbU3RyZWFtcyBBUEldIFJlcGxhY2UgUmVhZGFibGVTdHJlYW1SZWFkZXIgYnkgUmVhZGFibGVT
dHJlYW1EZWZhdWx0UmVhZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjAxOTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZXBsYWNlZCBSZWFkYWJsZVN0cmVhbVJlYWRlciBieSBSZWFkYWJsZVN0cmVh
bURlZmF1bHRSZWFkZXIgdG8gYWxpZ24KKyAgICAgICAgd2l0aCB1cGRhdGVkIFN0cmVhbXMgQVBJ
IHNwZWNpZmljYXRpb24uCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkuCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNo
L0ZldGNoUmVzcG9uc2UuanM6CisgICAgICAgIChib2R5KToKKyAgICAgICAgKiBNb2R1bGVzL3N0
cmVhbXMvUmVhZGFibGVTdHJlYW0uanM6CisgICAgICAgIChnZXRSZWFkZXIpOgorICAgICAgICAo
cGlwZVRvKToKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0
UmVhZGVyLmlkbDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9S
ZWFkYWJsZVN0cmVhbVJlYWRlci5pZGwuCisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtRGVmYXVsdFJlYWRlci5qczogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVJlYWRlci5qcy4KKyAgICAgICAgKGNhbmNlbCk6
CisgICAgICAgIChyZWFkKToKKyAgICAgICAgKHJlbGVhc2VMb2NrKToKKyAgICAgICAgKGNsb3Nl
ZCk6CisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpz
OgorICAgICAgICAocHJpdmF0ZUluaXRpYWxpemVSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIp
OgorICAgICAgICAodGVlUmVhZGFibGVTdHJlYW0pOgorICAgICAgICAodGVlUmVhZGFibGVTdHJl
YW1QdWxsRnVuY3Rpb24pOgorICAgICAgICAoaXNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIp
OgorICAgICAgICAoY2xvc2VSZWFkYWJsZVN0cmVhbSk6CisgICAgICAgIChyZWFkRnJvbVJlYWRh
YmxlU3RyZWFtRGVmYXVsdFJlYWRlcik6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NR2xvYmFsT2JqZWN0OjphZGRCdWlsdGluR2xvYmFs
cyk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6ZmluaXNoQ3JlYXRpb24p
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0
b3JzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN0cnVjdEpTUmVhZGFibGVTdHJlYW1EZWZh
dWx0UmVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQnVpbHRpblJlYWRhYmxlU3RyZWFtRGVm
YXVsdFJlYWRlclByaXZhdGVDb25zdHJ1Y3Rvcjo6aW5pdGlhbGl6ZUV4ZWN1dGFibGUpOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyUHJpdmF0ZUNv
bnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtUHJpdmF0
ZUNvbnN0cnVjdG9ycy5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFt
ZXMuaDoKKyAgICAgICAgKiBmZWF0dXJlcy5qc29uOgorCiAyMDE2LTA3LTI1ICBTZXJnaW8gVmls
bGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtjc3MtZ3JpZF0gZ3Jp
ZC1hdXRvLWZsb3d8cm93IHNob3VsZCB0YWtlIGEgPHRyYWNrLXNpemU+KwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCA2ZGMxMTNmOGEyYzYwMmUzZjUwMTMzMTM3MzZlY2FhMzY2YmU1N2ZkLi4wNzlk
OTRjMjQzZGIzMTcyYmU4MjVmMjg4Njk1NTExNjVkNmI4NDRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dApAQCAtMjYzLDcgKzI2Myw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAg
TW9kdWxlcy9zdHJlYW1zL0NvdW50UXVldWluZ1N0cmF0ZWd5LmlkbAogICAgIE1vZHVsZXMvc3Ry
ZWFtcy9SZWFkYWJsZVN0cmVhbS5pZGwKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJl
YW1Db250cm9sbGVyLmlkbAotICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVJlYWRl
ci5pZGwKKyAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmlk
bAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5pZGwKICAgICBNb2R1
bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW0uaWRsCiAKQEAgLTM3MjcsNyArMzcyNyw3IEBAIHNl
dChXZWJDb3JlX0JVSUxUSU5TX1NPVVJDRVMKICAgICAke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3N0
cmVhbXMvUmVhZGFibGVTdHJlYW0uanMKICAgICAke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3N0cmVh
bXMvUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmpzCiAgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxl
cy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzCi0gICAgJHtXRUJDT1JFX0RJUn0v
TW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtUmVhZGVyLmpzCisgICAgJHtXRUJDT1JFX0RJ
Un0vTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5qcwogICAgICR7
V0VCQ09SRV9ESVJ9L01vZHVsZXMvc3RyZWFtcy9TdHJlYW1JbnRlcm5hbHMuanMKICAgICAke1dF
QkNPUkVfRElSfS9Nb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW0uanMKICAgICAke1dFQkNP
UkVfRElSfS9Nb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW1JbnRlcm5hbHMuanMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRleCA5MDYwOWRjZTZmZmY0NWU1MmY4NTc4MWMwNGQxNGI0
MzMxNzM4ZGM3Li44MWFkY2JkOGM0N2FkMmY2MWNmOTM5ZmFiMjIyOWExN2QxNjQwZmViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCkBAIC05OSw3ICs5OSw3IEBACiAjaW5jbHVkZSAiSlNX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCIKICNpbmNsdWRlICJKU1dlYkdMU2FtcGxlci5j
cHAiCiAjaW5jbHVkZSAiSlNXZWJHTFNoYWRlci5jcHAiCi0jaW5jbHVkZSAiSlNXZWJHTFNoYWRl
clByZWNpc2lvbkZvcm1hdC5jcHAiIAorI2luY2x1ZGUgIkpTV2ViR0xTaGFkZXJQcmVjaXNpb25G
b3JtYXQuY3BwIgogI2luY2x1ZGUgIkpTV2ViR0xTeW5jLmNwcCIKICNpbmNsdWRlICJKU1dlYkdM
VGV4dHVyZS5jcHAiCiAjaW5jbHVkZSAiSlNXZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmNwcCIKQEAg
LTM5Niw3ICszOTYsNyBAQAogI2lmIEVOQUJMRShTVFJFQU1TX0FQSSkKICNpbmNsdWRlICJKU1Jl
YWRhYmxlU3RyZWFtLmNwcCIKICNpbmNsdWRlICJKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5j
cHAiCi0jaW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVhbVJlYWRlci5jcHAiCisjaW5jbHVkZSAiSlNS
ZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuY3BwIgogI2luY2x1ZGUgIkpTV3JpdGFibGVTdHJl
YW0uY3BwIgogI2VuZGlmCiAjaW5jbHVkZSAiSlNSZWN0LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCmluZGV4IDU2ODVkYzI1N2IwNjU5NmQ3YWFmMjQ2ZTA2M2FmOWY3ODc3MzI2ZmEu
LjI2YWYyZGE4MzY5OTg3ZTljMjdmMmQ5OGQ4YzNkYjE3NGNhMWM3MGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQpAQCAtMTg2LDcgKzE4Niw3IEBAIE5PTl9TVkdfQklORElOR19JRExT
ID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL0NvdW50UXVldWluZ1N0cmF0ZWd5
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaWRs
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUNvbnRyb2xs
ZXIuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVJl
YWRlci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFt
RGVmYXVsdFJlYWRlci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtU291cmNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvV3Jp
dGFibGVTdHJlYW0uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9C
dWZmZXIuaWRsIFwKQEAgLTEyOTgsNyArMTI5OCw3IEBAIFdlYkNvcmVfQlVJTFRJTlNfU09VUkNF
UyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5qcyBc
CiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Db250cm9sbGVy
LmpzIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUludGVy
bmFscy5qcyBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1S
ZWFkZXIuanMgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFt
RGVmYXVsdFJlYWRlci5qcyBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvU3RyZWFt
SW50ZXJuYWxzLmpzIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0
cmVhbS5qcyBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW1J
bnRlcm5hbHMuanMgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9G
ZXRjaFJlc3BvbnNlLmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3Bv
bnNlLmpzCmluZGV4IGM0YWNjMDEwMTFmNGMxZWU2MzcwZGMzMzQxMzM5ZGI2ODU4MTkwM2UuLjkz
MDhiNzJiMWM5Njk2NGI5YmZhNjk0OGZhOWQ3NDBmNzQxNzc3ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuanMKQEAgLTYwLDcgKzYwLDcgQEAgZnVu
Y3Rpb24gYm9keSgpCiAgICAgICAgIGlmIChAUmVzcG9uc2UucHJvdG90eXBlLkBpc0Rpc3R1cmJl
ZC5AY2FsbCh0aGlzKSkgewogICAgICAgICAgICAgdGhpcy5AYm9keSA9IG5ldyBAUmVhZGFibGVT
dHJlYW0oKTsKICAgICAgICAgICAgIC8vIEdldCByZWFkZXIgdG8gbG9jayBpdC4KLSAgICAgICAg
ICAgIG5ldyBAUmVhZGFibGVTdHJlYW1SZWFkZXIodGhpcy5AYm9keSk7CisgICAgICAgICAgICBu
ZXcgQFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlcih0aGlzLkBib2R5KTsKICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgIHZhciBzb3VyY2UgPSBAUmVzcG9uc2UucHJvdG90eXBlLkBjcmVh
dGVSZWFkYWJsZVN0cmVhbVNvdXJjZS5AY2FsbCh0aGlzKTsKICAgICAgICAgICAgIHRoaXMuQGJv
ZHkgPSBzb3VyY2UgPyBuZXcgQFJlYWRhYmxlU3RyZWFtKHNvdXJjZSkgOiBudWxsOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzCmluZGV4IDll
NmE5ZGY1NjFlMzE1Yzg0MjNiZTEyMzRhZThlNzgzYzU4YmRiN2YuLjQ1MGY4ZDEzYmFmYjlmMTg5
MGM3MzVlZDIyMDk5ZmFhMWFkOWE1MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanMKQEAgLTg2LDcgKzg2LDcgQEAgZnVuY3Rpb24gZ2V0
UmVhZGVyKCkKICAgICBpZiAoIUBpc1JlYWRhYmxlU3RyZWFtKHRoaXMpKQogICAgICAgICB0aHJv
dyBuZXcgQFR5cGVFcnJvcigiRnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZCBvbiBhIFJlYWRhYmxl
U3RyZWFtIik7CiAKLSAgICByZXR1cm4gbmV3IEBSZWFkYWJsZVN0cmVhbVJlYWRlcih0aGlzKTsK
KyAgICByZXR1cm4gbmV3IEBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIodGhpcyk7CiB9CiAK
IGZ1bmN0aW9uIHBpcGVUaHJvdWdoKHN0cmVhbXMsIG9wdGlvbnMpCkBAIC0xODYsNyArMTg2LDcg
QEAgZnVuY3Rpb24gcGlwZVRvKGRlc3RpbmF0aW9uKQogICAgICk7CiAKICAgICBkb1BpcGUoKTsK
LSAgICAKKwogICAgIHJldHVybiBwcm9taXNlQ2FwYWJpbGl0eS5AcHJvbWlzZTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtRGVm
YXVsdFJlYWRlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW1EZWZhdWx0UmVhZGVyLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMjEzYWExZTg4ZTliM2VlOTE2OGQx
ZTI4MWJkNmMwODFlMDNhNDIwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5pZGwKQEAgLTAsMCArMSw0
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBDYW5vbiBJbmMuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSByZXF1aXJlZCB0byBiZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBDYW5vbiBJbmMuIG5vciB0aGUgbmFtZXMgb2YKKyAq
ICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIENBTk9OIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVNUUkVBTVNfQVBJ
LAorICAgIEN1c3RvbUNvbnN0cnVjdG9yKFJlYWRhYmxlU3RyZWFtIHN0cmVhbSksCisgICAgRXhw
b3NlZD0oV2luZG93LFdvcmtlciksCisgICAgSlNCdWlsdGluLAorICAgIE5vSW50ZXJmYWNlT2Jq
ZWN0CitdIGludGVyZmFjZSBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIgeworICAgIFtOb3RF
bnVtZXJhYmxlXSBQcm9taXNlIHJlYWQoKTsKKyAgICBbTm90RW51bWVyYWJsZV0gUHJvbWlzZSBj
YW5jZWwob3B0aW9uYWwgYW55IHJlYXNvbik7CisgICAgW05vdEVudW1lcmFibGVdIHZvaWQgcmVs
ZWFzZUxvY2soKTsKKworICAgIFtOb3RFbnVtZXJhYmxlXSByZWFkb25seSBhdHRyaWJ1dGUgUHJv
bWlzZSBjbG9zZWQ7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJl
YW1zL1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGRk
ZmM0NTYxODk2NGVmNGRkZjQ0NmEzNzM0MmNlNDZhOTIwNzlkMQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFk
ZXIuanMKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBDYW5vbiBJ
bmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8vIEBjb25k
aXRpb25hbD1FTkFCTEUoU1RSRUFNU19BUEkpCisKK2Z1bmN0aW9uIGNhbmNlbChyZWFzb24pCit7
CisgICAgInVzZSBzdHJpY3QiOworCisgICAgaWYgKCFAaXNSZWFkYWJsZVN0cmVhbURlZmF1bHRS
ZWFkZXIodGhpcykpCisgICAgICAgIHJldHVybiBAUHJvbWlzZS5AcmVqZWN0KG5ldyBAVHlwZUVy
cm9yKCJGdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIG9uIGEgUmVhZGFibGVTdHJlYW1EZWZhdWx0
UmVhZGVyIikpOworCisgICAgaWYgKCF0aGlzLkBvd25lclJlYWRhYmxlU3RyZWFtKQorICAgICAg
ICByZXR1cm4gQFByb21pc2UuQHJlamVjdChuZXcgQFR5cGVFcnJvcigiY2FuY2VsKCkgY2FsbGVk
IG9uIGEgcmVhZGVyIG93bmVkIGJ5IG5vIHJlYWRhYmxlIHN0cmVhbSIpKTsKKworICAgIHJldHVy
biBAY2FuY2VsUmVhZGFibGVTdHJlYW0odGhpcy5Ab3duZXJSZWFkYWJsZVN0cmVhbSwgcmVhc29u
KTsKK30KKworZnVuY3Rpb24gcmVhZCgpCit7CisgICAgInVzZSBzdHJpY3QiOworCisgICAgaWYg
KCFAaXNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIodGhpcykpCisgICAgICAgIHJldHVybiBA
UHJvbWlzZS5AcmVqZWN0KG5ldyBAVHlwZUVycm9yKCJGdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVk
IG9uIGEgUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyIikpOworICAgIGlmICghdGhpcy5Ab3du
ZXJSZWFkYWJsZVN0cmVhbSkKKyAgICAgICAgcmV0dXJuIEBQcm9taXNlLkByZWplY3QobmV3IEBU
eXBlRXJyb3IoInJlYWQoKSBjYWxsZWQgb24gYSByZWFkZXIgb3duZWQgYnkgbm8gcmVhZGFibGUg
c3RyZWFtIikpOworCisgICAgcmV0dXJuIEByZWFkRnJvbVJlYWRhYmxlU3RyZWFtRGVmYXVsdFJl
YWRlcih0aGlzKTsKK30KKworZnVuY3Rpb24gcmVsZWFzZUxvY2soKQoreworICAgICJ1c2Ugc3Ry
aWN0IjsKKworICAgIGlmICghQGlzUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyKHRoaXMpKQor
ICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiRnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZCBv
biBhIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlciIpOworCisgICAgY29uc3Qgc3RyZWFtID0g
dGhpcy5Ab3duZXJSZWFkYWJsZVN0cmVhbTsKKyAgICBpZiAoIXN0cmVhbSkKKyAgICAgICAgIHJl
dHVybjsKKworICAgIGlmICh0aGlzLkByZWFkUmVxdWVzdHMubGVuZ3RoKQorICAgICAgICB0aHJv
dyBuZXcgQFR5cGVFcnJvcigiVGhlcmUgYXJlIHN0aWxsIHBlbmRpbmcgcmVhZCByZXF1ZXN0cywg
Y2Fubm90IHJlbGVhc2UgdGhlIGxvY2siKTsKKworICAgIGlmIChzdHJlYW0uQHN0YXRlID09PSBA
c3RyZWFtUmVhZGFibGUpCisgICAgICAgIHRoaXMuQGNsb3NlZFByb21pc2VDYXBhYmlsaXR5LkBy
ZWplY3QuQGNhbGwoQHVuZGVmaW5lZCwgbmV3IEBUeXBlRXJyb3IoInJlbGVhc2luZyBsb2NrIG9m
IHJlYWRlciB3aG9zZSBzdHJlYW0gaXMgc3RpbGwgaW4gcmVhZGFibGUgc3RhdGUiKSk7CisgICAg
ZWxzZQorICAgICAgICB0aGlzLkBjbG9zZWRQcm9taXNlQ2FwYWJpbGl0eSA9IHsgQHByb21pc2U6
IEBQcm9taXNlLkByZWplY3QobmV3IEBUeXBlRXJyb3IoInJlYWRlciByZWxlYXNlZCBsb2NrIikp
IH07CisKKyAgICBzdHJlYW0uQHJlYWRlciA9IEB1bmRlZmluZWQ7CisgICAgdGhpcy5Ab3duZXJS
ZWFkYWJsZVN0cmVhbSA9IG51bGw7Cit9CisKK2Z1bmN0aW9uIGNsb3NlZCgpCit7CisgICAgInVz
ZSBzdHJpY3QiOworCisgICAgaWYgKCFAaXNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIodGhp
cykpCisgICAgICAgIHJldHVybiBAUHJvbWlzZS5AcmVqZWN0KG5ldyBAVHlwZUVycm9yKCJDYWxs
ZWUgb2YgY2xvc2VkIGlzIG5vdCBhIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlciIpKTsKKwor
ICAgIHJldHVybiB0aGlzLkBjbG9zZWRQcm9taXNlQ2FwYWJpbGl0eS5AcHJvbWlzZTsKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUlu
dGVybmFscy5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bUludGVybmFscy5qcwppbmRleCBhOWJlNzBmYWE3ZjNlMjQ2Y2FkZmNkNmYwMzZhNDQxOTNmMWQy
OGQyLi4xMDkwOWNkMTgwYjA5MDMwOGEwOGRhNWQ5NTVjN2U4ZTc5YzBlNWUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1JbnRlcm5hbHMu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50
ZXJuYWxzLmpzCkBAIC0yNywxMiArMjcsMTIgQEAKIC8vIEBjb25kaXRpb25hbD1FTkFCTEUoU1RS
RUFNU19BUEkpCiAvLyBAaW50ZXJuYWwKIAotZnVuY3Rpb24gcHJpdmF0ZUluaXRpYWxpemVSZWFk
YWJsZVN0cmVhbVJlYWRlcihzdHJlYW0pCitmdW5jdGlvbiBwcml2YXRlSW5pdGlhbGl6ZVJlYWRh
YmxlU3RyZWFtRGVmYXVsdFJlYWRlcihzdHJlYW0pCiB7CiAgICAgInVzZSBzdHJpY3QiOwogCiAg
ICAgaWYgKCFAaXNSZWFkYWJsZVN0cmVhbShzdHJlYW0pKQotICAgICAgIHRocm93IG5ldyBAVHlw
ZUVycm9yKCJSZWFkYWJsZVN0cmVhbVJlYWRlciBuZWVkcyBhIFJlYWRhYmxlU3RyZWFtIik7Cisg
ICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIlJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlciBu
ZWVkcyBhIFJlYWRhYmxlU3RyZWFtIik7CiAgICAgaWYgKEBpc1JlYWRhYmxlU3RyZWFtTG9ja2Vk
KHN0cmVhbSkpCiAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIlJlYWRhYmxlU3RyZWFtIGlz
IGxvY2tlZCIpOwogCkBAIC03Myw3ICs3Myw3IEBAIGZ1bmN0aW9uIHRlZVJlYWRhYmxlU3RyZWFt
KHN0cmVhbSwgc2hvdWxkQ2xvbmUpCiAgICAgQGFzc2VydChAaXNSZWFkYWJsZVN0cmVhbShzdHJl
YW0pKTsKICAgICBAYXNzZXJ0KHR5cGVvZihzaG91bGRDbG9uZSkgPT09ICJib29sZWFuIik7CiAK
LSAgICBjb25zdCByZWFkZXIgPSBuZXcgQFJlYWRhYmxlU3RyZWFtUmVhZGVyKHN0cmVhbSk7Cisg
ICAgY29uc3QgcmVhZGVyID0gbmV3IEBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIoc3RyZWFt
KTsKIAogICAgIGNvbnN0IHRlZVN0YXRlID0gewogICAgICAgICBjbG9zZWRPckVycm9yZWQ6IGZh
bHNlLApAQCAtMTE2LDcgKzExNiw3IEBAIGZ1bmN0aW9uIHRlZVJlYWRhYmxlU3RyZWFtUHVsbEZ1
bmN0aW9uKHRlZVN0YXRlLCByZWFkZXIsIHNob3VsZENsb25lKQogICAgICJ1c2Ugc3RyaWN0IjsK
IAogICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgICAgQFByb21pc2UucHJvdG90eXBlLkB0
aGVuLkBjYWxsKEByZWFkRnJvbVJlYWRhYmxlU3RyZWFtUmVhZGVyKHJlYWRlciksIGZ1bmN0aW9u
KHJlc3VsdCkgeworICAgICAgICBAUHJvbWlzZS5wcm90b3R5cGUuQHRoZW4uQGNhbGwoQHJlYWRG
cm9tUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyKHJlYWRlciksIGZ1bmN0aW9uKHJlc3VsdCkg
ewogICAgICAgICAgICAgQGFzc2VydChAaXNPYmplY3QocmVzdWx0KSk7CiAgICAgICAgICAgICBA
YXNzZXJ0KHR5cGVvZiByZXN1bHQuZG9uZSA9PT0gImJvb2xlYW4iKTsKICAgICAgICAgICAgIGlm
IChyZXN1bHQuZG9uZSAmJiAhdGVlU3RhdGUuY2xvc2VkT3JFcnJvcmVkKSB7CkBAIC0xNzcsNyAr
MTc3LDcgQEAgZnVuY3Rpb24gaXNSZWFkYWJsZVN0cmVhbShzdHJlYW0pCiAgICAgcmV0dXJuIEBp
c09iamVjdChzdHJlYW0pICYmICEhc3RyZWFtLkB1bmRlcmx5aW5nU291cmNlOwogfQogCi1mdW5j
dGlvbiBpc1JlYWRhYmxlU3RyZWFtUmVhZGVyKHJlYWRlcikKK2Z1bmN0aW9uIGlzUmVhZGFibGVT
dHJlYW1EZWZhdWx0UmVhZGVyKHJlYWRlcikKIHsKICAgICAidXNlIHN0cmljdCI7CiAKQEAgLTIy
Niw3ICsyMjYsNyBAQCBmdW5jdGlvbiByZXF1ZXN0UmVhZGFibGVTdHJlYW1QdWxsKHN0cmVhbSkK
ICAgICAgICAgcmV0dXJuOwogICAgIGlmICgoIUBpc1JlYWRhYmxlU3RyZWFtTG9ja2VkKHN0cmVh
bSkgfHwgIXN0cmVhbS5AcmVhZGVyLkByZWFkUmVxdWVzdHMubGVuZ3RoKSAmJiBAZ2V0UmVhZGFi
bGVTdHJlYW1EZXNpcmVkU2l6ZShzdHJlYW0pIDw9IDApCiAgICAgICAgIHJldHVybjsKLSAKKwog
ICAgIGlmIChzdHJlYW0uQHB1bGxpbmcpIHsKICAgICAgICAgc3RyZWFtLkBwdWxsQWdhaW4gPSB0
cnVlOwogICAgICAgICByZXR1cm47CkBAIC0yOTksNyArMjk5LDcgQEAgZnVuY3Rpb24gY2xvc2VS
ZWFkYWJsZVN0cmVhbShzdHJlYW0pCiAgICAgQGFzc2VydCghc3RyZWFtLkBjbG9zZVJlcXVlc3Rl
ZCk7CiAgICAgQGFzc2VydChzdHJlYW0uQHN0YXRlICE9PSBAc3RyZWFtRXJyb3JlZCk7CiAgICAg
aWYgKHN0cmVhbS5Ac3RhdGUgPT09IEBzdHJlYW1DbG9zZWQpCi0gICAgICAgIHJldHVybjsgCisg
ICAgICAgIHJldHVybjsKICAgICBzdHJlYW0uQGNsb3NlUmVxdWVzdGVkID0gdHJ1ZTsKICAgICBp
ZiAoIXN0cmVhbS5AcXVldWUuY29udGVudC5sZW5ndGgpCiAgICAgICAgIEBmaW5pc2hDbG9zaW5n
UmVhZGFibGVTdHJlYW0oc3RyZWFtKTsKQEAgLTMzNSw3ICszMzUsNyBAQCBmdW5jdGlvbiBlbnF1
ZXVlSW5SZWFkYWJsZVN0cmVhbShzdHJlYW0sIGNodW5rKQogICAgIEByZXF1ZXN0UmVhZGFibGVT
dHJlYW1QdWxsKHN0cmVhbSk7CiB9CiAKLWZ1bmN0aW9uIHJlYWRGcm9tUmVhZGFibGVTdHJlYW1S
ZWFkZXIocmVhZGVyKQorZnVuY3Rpb24gcmVhZEZyb21SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFk
ZXIocmVhZGVyKQogewogICAgICJ1c2Ugc3RyaWN0IjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtUmVhZGVyLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVJlYWRlci5pZGwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0ZTdiN2QzZTRkYWRkYTkwM2I3ZmNmOWU5NDEwODQ5OWJj
ZTU5YTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtUmVhZGVyLmlkbAorKysg
L2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQ2Fu
b24gSW5jLgotICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgcmVxdWlyZWQgdG8gYmUgbWV0OgotICoKLSAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQ2Fub24gSW5j
LiBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIENBTk9OIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBDQU5PTiBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLSAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSAqIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SCi0gKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgotICogQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwK
LSAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLVsKLSAgICBD
b25kaXRpb25hbD1TVFJFQU1TX0FQSSwKLSAgICBDdXN0b21Db25zdHJ1Y3RvcihSZWFkYWJsZVN0
cmVhbSBzdHJlYW0pLAotICAgIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpLAotICAgIEpTQnVpbHRp
biwKLSAgICBOb0ludGVyZmFjZU9iamVjdAotXSBpbnRlcmZhY2UgUmVhZGFibGVTdHJlYW1SZWFk
ZXIgewotICAgIFtOb3RFbnVtZXJhYmxlXSBQcm9taXNlIHJlYWQoKTsKLSAgICBbTm90RW51bWVy
YWJsZV0gUHJvbWlzZSBjYW5jZWwob3B0aW9uYWwgYW55IHJlYXNvbik7Ci0gICAgW05vdEVudW1l
cmFibGVdIHZvaWQgcmVsZWFzZUxvY2soKTsKLQotICAgIFtOb3RFbnVtZXJhYmxlXSByZWFkb25s
eSBhdHRyaWJ1dGUgUHJvbWlzZSBjbG9zZWQ7Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtUmVhZGVyLmpzIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtUmVhZGVyLmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjMjY0N2Q1ZWI2ZDFmZmE3ZjBmMzIxZTlmNDhjN2I0MjFiZDc3ZTll
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVJlYWRlci5qcworKysgL2Rldi9u
dWxsCkBAIC0xLDg0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQ2Fub24gSW5j
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0vLyBAY29uZGl0
aW9uYWw9RU5BQkxFKFNUUkVBTVNfQVBJKQotCi1mdW5jdGlvbiBjYW5jZWwocmVhc29uKQotewot
ICAgICJ1c2Ugc3RyaWN0IjsKLQotICAgIGlmICghQGlzUmVhZGFibGVTdHJlYW1SZWFkZXIodGhp
cykpCi0gICAgICAgIHJldHVybiBAUHJvbWlzZS5AcmVqZWN0KG5ldyBAVHlwZUVycm9yKCJGdW5j
dGlvbiBzaG91bGQgYmUgY2FsbGVkIG9uIGEgUmVhZGFibGVTdHJlYW1SZWFkZXIiKSk7Ci0KLSAg
ICBpZiAoIXRoaXMuQG93bmVyUmVhZGFibGVTdHJlYW0pCi0gICAgICAgIHJldHVybiBAUHJvbWlz
ZS5AcmVqZWN0KG5ldyBAVHlwZUVycm9yKCJjYW5jZWwoKSBjYWxsZWQgb24gYSByZWFkZXIgb3du
ZWQgYnkgbm8gcmVhZGFibGUgc3RyZWFtIikpOwotCi0gICAgcmV0dXJuIEBjYW5jZWxSZWFkYWJs
ZVN0cmVhbSh0aGlzLkBvd25lclJlYWRhYmxlU3RyZWFtLCByZWFzb24pOwotfQotCi1mdW5jdGlv
biByZWFkKCkKLXsKLSAgICAidXNlIHN0cmljdCI7Ci0KLSAgICBpZiAoIUBpc1JlYWRhYmxlU3Ry
ZWFtUmVhZGVyKHRoaXMpKQotICAgICAgICByZXR1cm4gQFByb21pc2UuQHJlamVjdChuZXcgQFR5
cGVFcnJvcigiRnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZCBvbiBhIFJlYWRhYmxlU3RyZWFtUmVh
ZGVyIikpOwotICAgIGlmICghdGhpcy5Ab3duZXJSZWFkYWJsZVN0cmVhbSkKLSAgICAgICAgcmV0
dXJuIEBQcm9taXNlLkByZWplY3QobmV3IEBUeXBlRXJyb3IoInJlYWQoKSBjYWxsZWQgb24gYSBy
ZWFkZXIgb3duZWQgYnkgbm8gcmVhZGFibGUgc3RyZWFtIikpOwotCi0gICAgcmV0dXJuIEByZWFk
RnJvbVJlYWRhYmxlU3RyZWFtUmVhZGVyKHRoaXMpOwotfQotCi1mdW5jdGlvbiByZWxlYXNlTG9j
aygpCi17Ci0gICAgInVzZSBzdHJpY3QiOwotCi0gICAgaWYgKCFAaXNSZWFkYWJsZVN0cmVhbVJl
YWRlcih0aGlzKSkKLSAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIkZ1bmN0aW9uIHNob3Vs
ZCBiZSBjYWxsZWQgb24gYSBSZWFkYWJsZVN0cmVhbVJlYWRlciIpOwotCi0gICAgY29uc3Qgc3Ry
ZWFtID0gdGhpcy5Ab3duZXJSZWFkYWJsZVN0cmVhbTsKLSAgICBpZiAoIXN0cmVhbSkKLSAgICAg
ICAgIHJldHVybjsKLQotICAgIGlmICh0aGlzLkByZWFkUmVxdWVzdHMubGVuZ3RoKQotICAgICAg
ICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiVGhlcmUgYXJlIHN0aWxsIHBlbmRpbmcgcmVhZCByZXF1
ZXN0cywgY2Fubm90IHJlbGVhc2UgdGhlIGxvY2siKTsKLQotICAgIGlmIChzdHJlYW0uQHN0YXRl
ID09PSBAc3RyZWFtUmVhZGFibGUpCi0gICAgICAgIHRoaXMuQGNsb3NlZFByb21pc2VDYXBhYmls
aXR5LkByZWplY3QuQGNhbGwoQHVuZGVmaW5lZCwgbmV3IEBUeXBlRXJyb3IoInJlbGVhc2luZyBs
b2NrIG9mIHJlYWRlciB3aG9zZSBzdHJlYW0gaXMgc3RpbGwgaW4gcmVhZGFibGUgc3RhdGUiKSk7
Ci0gICAgZWxzZQotICAgICAgICB0aGlzLkBjbG9zZWRQcm9taXNlQ2FwYWJpbGl0eSA9IHsgQHBy
b21pc2U6IEBQcm9taXNlLkByZWplY3QobmV3IEBUeXBlRXJyb3IoInJlYWRlciByZWxlYXNlZCBs
b2NrIikpIH07Ci0KLSAgICBzdHJlYW0uQHJlYWRlciA9IEB1bmRlZmluZWQ7Ci0gICAgdGhpcy5A
b3duZXJSZWFkYWJsZVN0cmVhbSA9IG51bGw7Ci19Ci0KLWZ1bmN0aW9uIGNsb3NlZCgpCi17Ci0g
ICAgInVzZSBzdHJpY3QiOwotCi0gICAgaWYgKCFAaXNSZWFkYWJsZVN0cmVhbVJlYWRlcih0aGlz
KSkKLSAgICAgICAgcmV0dXJuIEBQcm9taXNlLkByZWplY3QobmV3IEBUeXBlRXJyb3IoIkNhbGxl
ZSBvZiBjbG9zZWQgaXMgbm90IGEgUmVhZGFibGVTdHJlYW1SZWFkZXIiKSk7Ci0KLSAgICByZXR1
cm4gdGhpcy5AY2xvc2VkUHJvbWlzZUNhcGFiaWxpdHkuQHByb21pc2U7Ci19CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjRhNTU5
N2EwNjgwOGUzNDMxZmRkOTlkMmRhZGNmZjljNDRlNGMxNi4uNzA0NzM2ZGFkYTdlNGVlOGNlY2Vh
NzVkOTM0OWZkZmNlZjhhNDY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjgxNCw4ICsyODE0LDggQEAKIAkJN0M0Qzk2REMx
QUQ0NDgzNTAwMzY1QTYwIC8qIEpTV3JpdGFibGVTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0Qzk2RDgxQUQ0NDgzNTAwMzY1QTYwIC8q
IEpTV3JpdGFibGVTdHJlYW0uY3BwICovOyB9OwogCQk3QzRDOTZERDFBRDQ0ODM1MDAzNjVBNTAg
LyogSlNSZWFkYWJsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0M0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW0u
aCAqLzsgfTsKIAkJN0M0Qzk2REQxQUQ0NDgzNTAwMzY1QTYwIC8qIEpTV3JpdGFibGVTdHJlYW0u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNEM5NkQ5
MUFENDQ4MzUwMDM2NUE2MCAvKiBKU1dyaXRhYmxlU3RyZWFtLmggKi87IH07Ci0JCTdDNEM5NkRF
MUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtUmVhZGVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNEM5NkRBMUFENDQ4MzUwMDM2
NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtUmVhZGVyLmNwcCAqLzsgfTsKLQkJN0M0Qzk2REYxQUQ0
NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1SZWFkZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNEM5NkRCMUFENDQ4MzUwMDM2NUE1MCAv
KiBKU1JlYWRhYmxlU3RyZWFtUmVhZGVyLmggKi87IH07CisJCTdDNEM5NkRFMUFENDQ4MzUwMDM2
NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzRDOTZEQTFBRDQ0ODM1MDAzNjVBNTAg
LyogSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuY3BwICovOyB9OworCQk3QzRDOTZERjFB
RDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNEM5NkRCMUFENDQ4MzUw
MDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5oICovOyB9OwogCQk3QzRD
OTZFMzFBRDQ0QUJGMDAzNjVBNTAgLyogTGF1bmNoU2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNEM5NkUyMUFENDRBQkYwMDM2NUE1
MCAvKiBMYXVuY2hTZXJ2aWNlc1NQSS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTdDNEVERDc0MUE3QjYwNzgwMDE5OEM0RCAvKiBGb250Q29jb2Eu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzRFREQ3
MzFBN0I2MDc4MDAxOThDNEQgLyogRm9udENvY29hLm1tICovOyB9OwogCQk3QzUyMkQ0QjE1QjQ3
N0U4MDA5QjdDOTUgLyogSW5zcGVjdG9yT3ZlcmxheS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzUyMkQ0OTE1QjQ3N0U4MDA5QjdDOTUgLyogSW5z
cGVjdG9yT3ZlcmxheS5jcHAgKi87IH07CkBAIC05MjA2LDcgKzkyMDYsNyBAQAogCQk0MTlCQzJE
RDE2ODUzMjk5MDBENjRENkQgLyogVmlzaXRlZExpbmtTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBWaXNpdGVkTGlua1N0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxOUJFNzUyMUJDN0YzREIwMEUxQzg1QiAvKiBXZWJDb3JlQnVpbHRpbk5hbWVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVCdWlsdGluTmFtZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5QkU3NUExQkNCRDNFRDAwRTFDODVC
IC8qIE5hdmlnYXRvclVzZXJNZWRpYS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlw
dDsgcGF0aCA9IE5hdmlnYXRvclVzZXJNZWRpYS5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJNDE5RkFGQUQxQUJBQkNENTAwNUI4MjhCIC8qIFJlYWRhYmxlU3RyZWFtUmVhZGVyLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVhbVJlYWRlci5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxOUZBRkFEMUFCQUJDRDUwMDVCODI4QiAvKiBSZWFk
YWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlYWRh
YmxlU3RyZWFtRGVmYXVsdFJlYWRlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxQTAyM0VEMUEzOURCNzkwMEY3MjJDRiAvKiBSZWFkYWJsZVN0cmVhbS5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gUmVhZGFibGVTdHJlYW0uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MUEwMjNFRDFBMzlEQjc5MDBGNzIyREYgLyogV3JpdGFibGVTdHJlYW0uaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFdyaXRhYmxlU3RyZWFtLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDFBM0Q1OEMxMDFDMTUyRDAwMzE2RDA3IC8qIERlZGljYXRlZFdvcmtl
clRocmVhZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZWRpY2F0
ZWRXb3JrZXJUaHJlYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA1NTAs
OCArMTA1NTAsOCBAQAogCQk3QzRDOTZEODFBRDQ0ODM1MDAzNjVBNjAgLyogSlNXcml0YWJsZVN0
cmVhbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dyaXRhYmxl
U3RyZWFtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M0Qzk2RDkxQUQ0NDgz
NTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNSZWFkYWJsZVN0cmVhbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3QzRDOTZEOTFBRDQ0ODM1MDAzNjVBNjAgLyogSlNXcml0YWJsZVN0cmVhbS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dyaXRhYmxlU3RyZWFtLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTdDNEM5NkRBMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxl
U3RyZWFtUmVhZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
UmVhZGFibGVTdHJlYW1SZWFkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3
QzRDOTZEQjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbVJlYWRlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtUmVhZGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDNEM5NkRBMUFENDQ4MzUwMDM2NUE1MCAvKiBK
U1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDNEM5NkRCMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRh
YmxlU3RyZWFtRGVmYXVsdFJlYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3QzRDOTZFMjFBRDQ0QUJGMDAzNjVBNTAgLyogTGF1bmNoU2VydmljZXNTUEkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF1bmNoU2VydmljZXNTUEkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M0RURENzMxQTdCNjA3ODAwMTk4QzREIC8qIEZv
bnRDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZvbnRD
b2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M1MjJENDkxNUI0NzdFODAw
OUI3Qzk1IC8qIEluc3BlY3Rvck92ZXJsYXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSW5zcGVjdG9yT3ZlcmxheS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xMTgxMyw3ICsxMTgxMyw3IEBACiAJCTk5MDhCMEYxMUJDQUNGOTEwMEVEMEY1NSAv
KiBTdHJlYW1JbnRlcm5hbHMuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBh
dGggPSBTdHJlYW1JbnRlcm5hbHMuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5
MDhCMEYxMUJDQUNGOTEwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbUludGVybmFscy5qcyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtSW50ZXJu
YWxzLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBGMTFCQ0FDRjkxMDBF
RDBGNzUgLyogV3JpdGFibGVTdHJlYW1JbnRlcm5hbHMuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmphdmFzY3JpcHQ7IHBhdGggPSBXcml0YWJsZVN0cmVhbUludGVybmFscy5qczsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTkwOEIwRjIxQkNBQ0Y5MTAwRUQwRjY1IC8qIFJlYWRhYmxl
U3RyZWFtUmVhZGVyLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0g
UmVhZGFibGVTdHJlYW1SZWFkZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5
MDhCMEYyMUJDQUNGOTEwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuanMg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVhbURl
ZmF1bHRSZWFkZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEYzMUJD
QUNGRkUwMEVEMEY2NSAvKiBCeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5QnVpbHRpbnMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQnl0ZUxlbmd0aFF1ZXVpbmdTdHJh
dGVneUJ1aWx0aW5zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRjUx
QkNBRDA3RDAwRUQwRjY1IC8qIEJ5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3lCdWlsdGlucy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5
QnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRjYxQkNBRDA3
RDAwRUQwRjY1IC8qIENvdW50UXVldWluZ1N0cmF0ZWd5QnVpbHRpbnMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ291bnRRdWV1aW5nU3RyYXRlZ3lCdWlsdGlucy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTgyNiw4ICsxMTgyNiw4IEBACiAJ
CTk5MDhCMEZEMUJDQUQwN0QwMEVEMEY1NSAvKiBTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHJlYW1JbnRlcm5hbHNCdWls
dGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEZEMUJDQUQwN0Qw
MEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRp
bnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBGRDFCQ0FEMDdEMDBF
RDBGNzUgLyogV3JpdGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXcml0YWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5z
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTkwOEIwRkUxQkNBRDA3RDAwRUQw
RjY1IC8qIFJlYWRhYmxlU3RyZWFtUmVhZGVyQnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVhZGFibGVTdHJlYW1SZWFkZXJCdWlsdGlucy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk5MDhCMEZGMUJDQUQwN0QwMEVEMEY2NSAvKiBS
ZWFkYWJsZVN0cmVhbVJlYWRlckJ1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlYWRhYmxlU3RyZWFtUmVhZGVyQnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTkwOEIwRkUxQkNBRDA3RDAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtRGVm
YXVsdFJlYWRlckJ1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlckJ1aWx0aW5zLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTkwOEIwRkYxQkNBRDA3RDAwRUQwRjY1IC8qIFJlYWRhYmxlU3Ry
ZWFtRGVmYXVsdFJlYWRlckJ1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlckJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTk5MjAzOTgwMThCOTVCQzYwMEIzOUFGOSAvKiBVc2VySW5wdXRCcmlk
Z2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlcklucHV0QnJp
ZGdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkyMDM5ODExOEI5NUJDNjAw
QjM5QUY5IC8qIFVzZXJJbnB1dEJyaWRnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBVc2VySW5wdXRCcmlkZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk5
NEU1RDgxQkQ4NDNBMzAwRjJEODM1IC8qIE1lZGlhRGV2aWNlcy5qcyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IE1lZGlhRGV2aWNlcy5qczsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE3MDYyLDggKzE3MDYyLDggQEAKIAkJCQk0MTE4OUVGNzFBRDgyMzI4
MDBCOTBBMEQgLyogUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmlkbCAqLywKIAkJCQk5OTA4QjBG
MDFCQ0FDRjkxMDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmpzICovLAogCQkJ
CTk5MDhCMEYxMUJDQUNGOTEwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbUludGVybmFscy5qcyAq
LywKLQkJCQk0MTlGQUZBRDFBQkFCQ0Q1MDA1QjgyOEIgLyogUmVhZGFibGVTdHJlYW1SZWFkZXIu
aWRsICovLAotCQkJCTk5MDhCMEYyMUJDQUNGOTEwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbVJl
YWRlci5qcyAqLywKKwkJCQk0MTlGQUZBRDFBQkFCQ0Q1MDA1QjgyOEIgLyogUmVhZGFibGVTdHJl
YW1EZWZhdWx0UmVhZGVyLmlkbCAqLywKKwkJCQk5OTA4QjBGMjFCQ0FDRjkxMDBFRDBGNjUgLyog
UmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmpzICovLAogCQkJCTQxOEMzOTVCMUM4RjBBNjEw
MDUxQzhBMyAvKiBSZWFkYWJsZVN0cmVhbVNvdXJjZS5oICovLAogCQkJCTQxOEMzOTVDMUM4RjBB
NjEwMDUxQzhBMyAvKiBSZWFkYWJsZVN0cmVhbVNvdXJjZS5pZGwgKi8sCiAJCQkJOTkwOEIwRjEx
QkNBQ0Y5MTAwRUQwRjU1IC8qIFN0cmVhbUludGVybmFscy5qcyAqLywKQEAgLTE3MDgxLDggKzE3
MDgxLDggQEAKIAkJCQk3QzRDOTZEOTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVh
bS5oICovLAogCQkJCTZDNEM5NkRBMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFt
Q29udHJvbGxlci5jcHAgKi8sCiAJCQkJNkM0Qzk2REIxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVh
ZGFibGVTdHJlYW1Db250cm9sbGVyLmggKi8sCi0JCQkJN0M0Qzk2REExQUQ0NDgzNTAwMzY1QTUw
IC8qIEpTUmVhZGFibGVTdHJlYW1SZWFkZXIuY3BwICovLAotCQkJCTdDNEM5NkRCMUFENDQ4MzUw
MDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtUmVhZGVyLmggKi8sCisJCQkJN0M0Qzk2REExQUQ0
NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmNwcCAqLywKKwkJ
CQk3QzRDOTZEQjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFk
ZXIuaCAqLywKIAkJCQk3QzRDOTZEODFBRDQ0ODM1MDAzNjVBNjAgLyogSlNXcml0YWJsZVN0cmVh
bS5jcHAgKi8sCiAJCQkJN0M0Qzk2RDkxQUQ0NDgzNTAwMzY1QTYwIC8qIEpTV3JpdGFibGVTdHJl
YW0uaCAqLywKIAkJCSk7CkBAIC0xNzkzMyw4ICsxNzkzMyw4IEBACiAJCQkJOTkwOEIwRkQxQkNB
RDA3RDAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuY3BwICovLAog
CQkJCTlCMDNEODA2MUJCMzExMEQwMEI3NjRCOSAvKiBGZXRjaEludGVybmFsc0J1aWx0aW5zLmgg
Ki8sCiAJCQkJOUIwM0Q4MDYxQkIzMTEwRDAwQjc2NEQ5IC8qIFJlYWRhYmxlU3RyZWFtSW50ZXJu
YWxzQnVpbHRpbnMuaCAqLywKLQkJCQk5OTA4QjBGRTFCQ0FEMDdEMDBFRDBGNjUgLyogUmVhZGFi
bGVTdHJlYW1SZWFkZXJCdWlsdGlucy5jcHAgKi8sCi0JCQkJOTkwOEIwRkYxQkNBRDA3RDAwRUQw
RjY1IC8qIFJlYWRhYmxlU3RyZWFtUmVhZGVyQnVpbHRpbnMuaCAqLywKKwkJCQk5OTA4QjBGRTFC
Q0FEMDdEMDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyQnVpbHRpbnMuY3Bw
ICovLAorCQkJCTk5MDhCMEZGMUJDQUQwN0QwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbURlZmF1
bHRSZWFkZXJCdWlsdGlucy5oICovLAogCQkJCTVFMkM0Mzc1MUJDRjlBMEIwMDAxRTJCQyAvKiBS
VENQZWVyQ29ubmVjdGlvbkJ1aWx0aW5zLmNwcCAqLywKIAkJCQk1RTJDNDM3NjFCQ0Y5QTBCMDAw
MUUyQkMgLyogUlRDUGVlckNvbm5lY3Rpb25CdWlsdGlucy5oICovLAogCQkJCTVFMkM0Mzc4MUJD
RjlBMEIwMDAxRTJCQyAvKiBSVENQZWVyQ29ubmVjdGlvbkludGVybmFsc0J1aWx0aW5zLmNwcCAq
LywKQEAgLTI3MTA1LDcgKzI3MTA1LDcgQEAKIAkJCQk3QzRDOTZERDFBRDQ0ODM1MDAzNjVBNTAg
LyogSlNSZWFkYWJsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkM0Qzk2REYxQUQ0NDgz
NTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MTI5REY4NjFCQjVCODBDMDAzMjJBMTYgLyogSlNSZWFkYWJsZVN0cmVhbVByaXZhdGVD
b25zdHJ1Y3RvcnMuaCBpbiBIZWFkZXJzICovLAotCQkJCTdDNEM5NkRGMUFENDQ4MzUwMDM2NUE1
MCAvKiBKU1JlYWRhYmxlU3RyZWFtUmVhZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk3QzRDOTZE
RjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTdFNEM5NkREMUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxlU3Ry
ZWFtU291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0ZFMkYxMjBDMUI1ODM4MDAyMDIzNUYg
LyogSlNSZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTk4QUVDRTEzRjlENkM5MDA5MEIxQUEg
LyogSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCkBAIC0z
MDkxMiw3ICszMDkxMiw3IEBACiAJCQkJN0M0Qzk2REMxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVh
ZGFibGVTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkM0Qzk2REUxQUQ0NDgzNTAwMzY1
QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTQxMjlERjg1MUJCNUI4MDcwMDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0
cnVjdG9ycy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk3QzRDOTZERTFBRDQ0ODM1MDAzNjVBNTAg
LyogSlNSZWFkYWJsZVN0cmVhbVJlYWRlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3QzRDOTZE
RTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0U0Qzk2REMxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFibGVT
dHJlYW1Tb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFOTZBOEUxRDFBMERERDAwQjg2
NzY4IC8qIEpTQXBwbGVQYXlTZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxOEMzOTYw
MUM4RjBBQUUwMDUxQzhBMyAvKiBKU1JlYWRhYmxlU3RyZWFtU291cmNlQ3VzdG9tLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01H
bG9iYWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxP
YmplY3QuY3BwCmluZGV4IDVmZDVlMTgxNTI1MWVkZmUyN2JiOWZkNzhmNDM2MzU3MzAzMTE2YzYu
LjI5NGY3ZGQ2OTM0NjJhNGE4NzlhN2IxNWYxMGEzYTJhNWZlZjQ0MjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKQEAgLTY3LDEzICs2
NywxMyBAQCB2b2lkIEpTRE9NR2xvYmFsT2JqZWN0OjphZGRCdWlsdGluR2xvYmFscyhWTSYgdm0p
CiAKICNpZiBFTkFCTEUoU1RSRUFNU19BUEkpCiAgICAgSlNPYmplY3QqIHByaXZhdGVSZWFkYWJs
ZVN0cmVhbUNvbnRyb2xsZXJDb25zdHJ1Y3RvciA9IGNyZWF0ZVJlYWRhYmxlU3RyZWFtQ29udHJv
bGxlclByaXZhdGVDb25zdHJ1Y3Rvcih2bSwgKnRoaXMpOwotICAgIEpTT2JqZWN0KiBwcml2YXRl
UmVhZGFibGVTdHJlYW1SZWFkZXJDb25zdHJ1Y3RvciA9IGNyZWF0ZVJlYWRhYmxlU3RyZWFtUmVh
ZGVyUHJpdmF0ZUNvbnN0cnVjdG9yKHZtLCAqdGhpcyk7CisgICAgSlNPYmplY3QqIHByaXZhdGVS
ZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJDb25zdHJ1Y3RvciA9IGNyZWF0ZVJlYWRhYmxlU3Ry
ZWFtRGVmYXVsdFJlYWRlclByaXZhdGVDb25zdHJ1Y3Rvcih2bSwgKnRoaXMpOwogCiAgICAgQVNT
RVJUKCFjb25zdHJ1Y3RvcnMoKS5nZXQocHJpdmF0ZVJlYWRhYmxlU3RyZWFtQ29udHJvbGxlckNv
bnN0cnVjdG9yLT5pbmZvKCkpLmdldCgpKTsKLSAgICBBU1NFUlQoIWNvbnN0cnVjdG9ycygpLmdl
dChwcml2YXRlUmVhZGFibGVTdHJlYW1SZWFkZXJDb25zdHJ1Y3Rvci0+aW5mbygpKS5nZXQoKSk7
CisgICAgQVNTRVJUKCFjb25zdHJ1Y3RvcnMoKS5nZXQocHJpdmF0ZVJlYWRhYmxlU3RyZWFtRGVm
YXVsdFJlYWRlckNvbnN0cnVjdG9yLT5pbmZvKCkpLmdldCgpKTsKICAgICBKU0M6OldyaXRlQmFy
cmllcjxKU0M6OkpTT2JqZWN0PiB0ZW1wOwogICAgIGNvbnN0cnVjdG9ycygpLmFkZChwcml2YXRl
UmVhZGFibGVTdHJlYW1Db250cm9sbGVyQ29uc3RydWN0b3ItPmluZm8oKSwgdGVtcCkuaXRlcmF0
b3ItPnZhbHVlLnNldCh2bSwgdGhpcywgcHJpdmF0ZVJlYWRhYmxlU3RyZWFtQ29udHJvbGxlckNv
bnN0cnVjdG9yKTsKLSAgICBjb25zdHJ1Y3RvcnMoKS5hZGQocHJpdmF0ZVJlYWRhYmxlU3RyZWFt
UmVhZGVyQ29uc3RydWN0b3ItPmluZm8oKSwgdGVtcCkuaXRlcmF0b3ItPnZhbHVlLnNldCh2bSwg
dGhpcywgcHJpdmF0ZVJlYWRhYmxlU3RyZWFtUmVhZGVyQ29uc3RydWN0b3IpOworICAgIGNvbnN0
cnVjdG9ycygpLmFkZChwcml2YXRlUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyQ29uc3RydWN0
b3ItPmluZm8oKSwgdGVtcCkuaXRlcmF0b3ItPnZhbHVlLnNldCh2bSwgdGhpcywgcHJpdmF0ZVJl
YWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlckNvbnN0cnVjdG9yKTsKIAogICAgIEpTVk1DbGllbnRE
YXRhJiBjbGllbnREYXRhID0gKnN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50
RGF0YSk7CiAgICAgSlNET01HbG9iYWxPYmplY3Q6Okdsb2JhbFByb3BlcnR5SW5mbyBzdGF0aWNH
bG9iYWxzW10gPSB7CkBAIC04NCw3ICs4NCw3IEBAIHZvaWQgSlNET01HbG9iYWxPYmplY3Q6OmFk
ZEJ1aWx0aW5HbG9iYWxzKFZNJiB2bSkKICAgICAgICAgSlNET01HbG9iYWxPYmplY3Q6Okdsb2Jh
bFByb3BlcnR5SW5mbyhjbGllbnREYXRhLmJ1aWx0aW5OYW1lcygpLnN0cmVhbVdhaXRpbmdQcml2
YXRlTmFtZSgpLCBqc051bWJlcig1KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAg
SlNET01HbG9iYWxPYmplY3Q6Okdsb2JhbFByb3BlcnR5SW5mbyhjbGllbnREYXRhLmJ1aWx0aW5O
YW1lcygpLnN0cmVhbVdyaXRhYmxlUHJpdmF0ZU5hbWUoKSwganNOdW1iZXIoNiksIERvbnREZWxl
dGUgfCBSZWFkT25seSksCiAgICAgICAgIEpTRE9NR2xvYmFsT2JqZWN0OjpHbG9iYWxQcm9wZXJ0
eUluZm8oY2xpZW50RGF0YS5idWlsdGluTmFtZXMoKS5SZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJQ
cml2YXRlTmFtZSgpLCBwcml2YXRlUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQ29uc3RydWN0b3Is
IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEpTRE9NR2xvYmFsT2JqZWN0OjpHbG9i
YWxQcm9wZXJ0eUluZm8oY2xpZW50RGF0YS5idWlsdGluTmFtZXMoKS5SZWFkYWJsZVN0cmVhbVJl
YWRlclByaXZhdGVOYW1lKCksIHByaXZhdGVSZWFkYWJsZVN0cmVhbVJlYWRlckNvbnN0cnVjdG9y
LCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBKU0RPTUdsb2JhbE9iamVjdDo6R2xv
YmFsUHJvcGVydHlJbmZvKGNsaWVudERhdGEuYnVpbHRpbk5hbWVzKCkuUmVhZGFibGVTdHJlYW1E
ZWZhdWx0UmVhZGVyUHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZVJlYWRhYmxlU3RyZWFtRGVmYXVsdFJl
YWRlckNvbnN0cnVjdG9yLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgIH07CiAgICAgYWRk
U3RhdGljR2xvYmFscyhzdGF0aWNHbG9iYWxzLCBXVEZfQVJSQVlfTEVOR1RIKHN0YXRpY0dsb2Jh
bHMpKTsKICNlbHNlCkBAIC0xMDQsNyArMTA0LDcgQEAgdm9pZCBKU0RPTUdsb2JhbE9iamVjdDo6
ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU09iamVjdCogdGhpc1ZhbHVlKQogewogICAgIEJhc2U6
OmZpbmlzaENyZWF0aW9uKHZtLCB0aGlzVmFsdWUpOwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZv
KCkpKTsKLSAgICAKKwogICAgIGFkZEJ1aWx0aW5HbG9iYWxzKHZtKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbVByaXZhdGVDb25z
dHJ1Y3RvcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVh
bVByaXZhdGVDb25zdHJ1Y3RvcnMuY3BwCmluZGV4IDQ5ZGRmNzMwYTFlMWVjNjA0ZDQyZGE4ZjMz
Yjk0M2RhMDAzNTk4NjMuLjc3N2QwNWUyMThlMDkzZDNkODk1NDViODA2OWZmMzZiOTU4NGNmOTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1Q
cml2YXRlQ29uc3RydWN0b3JzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5jcHAKQEAgLTI1LDcgKzI1LDcgQEAK
ICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVh
bS5oIgogI2luY2x1ZGUgIkpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmgiCi0jaW5jbHVkZSAi
SlNSZWFkYWJsZVN0cmVhbVJlYWRlci5oIgorI2luY2x1ZGUgIkpTUmVhZGFibGVTdHJlYW1EZWZh
dWx0UmVhZGVyLmgiCiAjaW5jbHVkZSAiUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5o
IgogI2luY2x1ZGUgPHJ1bnRpbWUvQ2FsbERhdGEuaD4KIApAQCAtMzksMTEgKzM5LDExIEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNSZWFkYWJsZVN0cmVhbUNvbnRy
b2xsZXIoRXhlY1N0YXRlJiBleGVjCiAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoJmV4ZWMs
IEFTQ0lJTGl0ZXJhbCgiUmVhZGFibGVTdHJlYW1Db250cm9sbGVyIGNvbnN0cnVjdG9yIHNob3Vs
ZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IikpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNvbnN0cnVjdEpTUmVhZGFibGVTdHJlYW1SZWFkZXIoRXhlY1N0YXRlJiBleGVjKQor
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1JlYWRhYmxlU3RyZWFtRGVm
YXVsdFJlYWRlcihFeGVjU3RhdGUmIGV4ZWMpCiB7CiAgICAgSlNSZWFkYWJsZVN0cmVhbSogc3Ry
ZWFtID0ganNEeW5hbWljQ2FzdDxKU1JlYWRhYmxlU3RyZWFtKj4oZXhlYy5hcmd1bWVudCgwKSk7
CiAgICAgaWYgKCFzdHJlYW0pCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKCZleGVj
LCBBU0NJSUxpdGVyYWwoIlJlYWRhYmxlU3RyZWFtUmVhZGVyIGNvbnN0cnVjdG9yIHBhcmFtZXRl
ciBpcyBub3QgYSBSZWFkYWJsZVN0cmVhbSIpKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoJmV4ZWMsIEFTQ0lJTGl0ZXJhbCgiUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyIGNv
bnN0cnVjdG9yIHBhcmFtZXRlciBpcyBub3QgYSBSZWFkYWJsZVN0cmVhbSIpKTsKIAogICAgIEpT
VmFsdWUganNGdW5jdGlvbiA9IHN0cmVhbS0+Z2V0KCZleGVjLCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKCZleGVjLCAiZ2V0UmVhZGVyIikpOwogCkBAIC01NCwxOCArNTQsMTggQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1JlYWRhYmxlU3RyZWFtUmVhZGVyKEV4ZWNT
dGF0ZSYgZXhlYykKIH0KIAogLy8gUHJpdmF0ZSBKUyBSZWFkYWJsZVN0cmVhbVJlZGVyIGFuZCBS
ZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIgY29uc3RydWN0b3JzLgotdHlwZWRlZiBKU0J1aWx0aW5D
b25zdHJ1Y3RvcjxKU1JlYWRhYmxlU3RyZWFtUmVhZGVyPiBKU0J1aWx0aW5SZWFkYWJsZVN0cmVh
bVJlYWRlclByaXZhdGVDb25zdHJ1Y3RvcjsKK3R5cGVkZWYgSlNCdWlsdGluQ29uc3RydWN0b3I8
SlNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXI+IEpTQnVpbHRpblJlYWRhYmxlU3RyZWFtRGVm
YXVsdFJlYWRlclByaXZhdGVDb25zdHJ1Y3RvcjsKIHR5cGVkZWYgSlNCdWlsdGluQ29uc3RydWN0
b3I8SlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXI+IEpTQnVpbHRpblJlYWRhYmxlU3RyZWFtQ29u
dHJvbGxlclByaXZhdGVDb25zdHJ1Y3RvcjsKIAotU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlf
REVTVFJVQ1RJQkxFKEpTQnVpbHRpblJlYWRhYmxlU3RyZWFtUmVhZGVyUHJpdmF0ZUNvbnN0cnVj
dG9yKTsKK1NUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShKU0J1aWx0aW5S
ZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJQcml2YXRlQ29uc3RydWN0b3IpOwogU1RBVElDX0FT
U0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEpTQnVpbHRpblJlYWRhYmxlU3RyZWFtQ29u
dHJvbGxlclByaXZhdGVDb25zdHJ1Y3Rvcik7CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZv
IEpTQnVpbHRpblJlYWRhYmxlU3RyZWFtUmVhZGVyUHJpdmF0ZUNvbnN0cnVjdG9yOjpzX2luZm8g
PSB7ICJSZWFkYWJsZVN0cmVhbVJlYWRlclByaXZhdGVDb25zdHJ1Y3RvciIsICZCYXNlOjpzX2lu
Zm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNCdWlsdGluUmVhZGFibGVTdHJlYW1SZWFkZXJQ
cml2YXRlQ29uc3RydWN0b3IpIH07Cit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU0J1aWx0
aW5SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJQcml2YXRlQ29uc3RydWN0b3I6OnNfaW5mbyA9
IHsgIlJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlclByaXZhdGVDb25zdHJ1Y3RvciIsICZCYXNl
OjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNCdWlsdGluUmVhZGFibGVTdHJlYW1E
ZWZhdWx0UmVhZGVyUHJpdmF0ZUNvbnN0cnVjdG9yKSB9OwogdGVtcGxhdGU8PiBjb25zdCBDbGFz
c0luZm8gSlNCdWlsdGluUmVhZGFibGVTdHJlYW1Db250cm9sbGVyUHJpdmF0ZUNvbnN0cnVjdG9y
OjpzX2luZm8gPSB7ICJSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJQcml2YXRlQ29uc3RydWN0b3Ii
LCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTQnVpbHRpblJlYWRhYmxl
U3RyZWFtQ29udHJvbGxlclByaXZhdGVDb25zdHJ1Y3RvcikgfTsKIAotdGVtcGxhdGU8PiBGdW5j
dGlvbkV4ZWN1dGFibGUqIEpTQnVpbHRpblJlYWRhYmxlU3RyZWFtUmVhZGVyUHJpdmF0ZUNvbnN0
cnVjdG9yOjppbml0aWFsaXplRXhlY3V0YWJsZShKU0M6OlZNJiB2bSkKK3RlbXBsYXRlPD4gRnVu
Y3Rpb25FeGVjdXRhYmxlKiBKU0J1aWx0aW5SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJQcml2
YXRlQ29uc3RydWN0b3I6OmluaXRpYWxpemVFeGVjdXRhYmxlKEpTQzo6Vk0mIHZtKQogewotICAg
IHJldHVybiByZWFkYWJsZVN0cmVhbUludGVybmFsc1ByaXZhdGVJbml0aWFsaXplUmVhZGFibGVT
dHJlYW1SZWFkZXJDb2RlR2VuZXJhdG9yKHZtKTsKKyAgICByZXR1cm4gcmVhZGFibGVTdHJlYW1J
bnRlcm5hbHNQcml2YXRlSW5pdGlhbGl6ZVJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlckNvZGVH
ZW5lcmF0b3Iodm0pOwogfQogCiB0ZW1wbGF0ZTw+IEZ1bmN0aW9uRXhlY3V0YWJsZSogSlNCdWls
dGluUmVhZGFibGVTdHJlYW1Db250cm9sbGVyUHJpdmF0ZUNvbnN0cnVjdG9yOjppbml0aWFsaXpl
RXhlY3V0YWJsZShKU0M6OlZNJiB2bSkKQEAgLTczLDkgKzczLDkgQEAgdGVtcGxhdGU8PiBGdW5j
dGlvbkV4ZWN1dGFibGUqIEpTQnVpbHRpblJlYWRhYmxlU3RyZWFtQ29udHJvbGxlclByaXZhdGVD
b25zdHJ1Y3QKICAgICByZXR1cm4gcmVhZGFibGVTdHJlYW1JbnRlcm5hbHNQcml2YXRlSW5pdGlh
bGl6ZVJlYWRhYmxlU3RyZWFtQ29udHJvbGxlckNvZGVHZW5lcmF0b3Iodm0pOwogfQogCi1KU09i
amVjdCogY3JlYXRlUmVhZGFibGVTdHJlYW1SZWFkZXJQcml2YXRlQ29uc3RydWN0b3IoVk0mIHZt
LCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQorSlNPYmplY3QqIGNyZWF0ZVJlYWRh
YmxlU3RyZWFtRGVmYXVsdFJlYWRlclByaXZhdGVDb25zdHJ1Y3RvcihWTSYgdm0sIEpTRE9NR2xv
YmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7Ci0gICAgcmV0dXJuIEpTQnVpbHRpblJlYWRhYmxl
U3RyZWFtUmVhZGVyUHJpdmF0ZUNvbnN0cnVjdG9yOjpjcmVhdGUodm0sIEpTQnVpbHRpblJlYWRh
YmxlU3RyZWFtUmVhZGVyUHJpdmF0ZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGds
b2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0Lm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0
KTsKKyAgICByZXR1cm4gSlNCdWlsdGluUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyUHJpdmF0
ZUNvbnN0cnVjdG9yOjpjcmVhdGUodm0sIEpTQnVpbHRpblJlYWRhYmxlU3RyZWFtRGVmYXVsdFJl
YWRlclByaXZhdGVDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3Qs
IGdsb2JhbE9iamVjdC5vYmplY3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVjdCk7CiB9CiAKIEpT
T2JqZWN0KiBjcmVhdGVSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJQcml2YXRlQ29uc3RydWN0b3Io
Vk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbVByaXZhdGVDb25zdHJ1Y3Rv
cnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1Qcml2YXRl
Q29uc3RydWN0b3JzLmgKaW5kZXggZWVkMGFiMmUxZDlhYjRiNmQxYzZjZmEzNjRhNzRjMTFlYzc4
ZmIwMC4uMzZjNmVmMjVjMzE2YjdlN2ExZGNhYTRjOGFiY2ZhNTNlZDkxZGE2NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbVByaXZhdGVDb25z
dHJ1Y3RvcnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3Ry
ZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5oCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIEpTRE9NR2xvYmFsT2JqZWN0OwogCiBKU0M6OkpTT2JqZWN0KiBjcmVhdGVS
ZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJQcml2YXRlQ29uc3RydWN0b3IoSlNDOjpWTSYsIEpTRE9N
R2xvYmFsT2JqZWN0Jik7Ci1KU0M6OkpTT2JqZWN0KiBjcmVhdGVSZWFkYWJsZVN0cmVhbVJlYWRl
clByaXZhdGVDb25zdHJ1Y3RvcihKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTsKK0pTQzo6
SlNPYmplY3QqIGNyZWF0ZVJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlclByaXZhdGVDb25zdHJ1
Y3RvcihKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVp
bHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5h
bWVzLmgKaW5kZXggYTVhZGQ5NGIyMDlhMjY5M2JlYzM1MWM5OGZmYzVjZTI4YTc2MWJlMi4uOGZh
N2VhNjlmMzU2YTgwNzYwZDBkM2I1MGIxYzRjN2EwNTdlNjY3NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtODksNyArODksNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oTWVkaWFTdHJlYW0pIFwKICAgICBtYWNy
byhNZWRpYVN0cmVhbVRyYWNrKSBcCiAgICAgbWFjcm8oUmVhZGFibGVTdHJlYW0pIFwKLSAgICBt
YWNybyhSZWFkYWJsZVN0cmVhbVJlYWRlcikgXAorICAgIG1hY3JvKFJlYWRhYmxlU3RyZWFtRGVm
YXVsdFJlYWRlcikgXAogICAgIG1hY3JvKFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlcikgXAogICAg
IG1hY3JvKFJlcXVlc3QpIFwKICAgICBtYWNybyhSZXNwb25zZSkgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZmVhdHVyZXMuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2ZlYXR1cmVzLmpzb24K
aW5kZXggMmZjMjAzZGUyZTE4YmMzMzk5ZmU4OGRkMGU5OTg0NjgzZWMzNTY1OS4uOTdjMmRmOTFl
ZGQ4NThjNjMwYWU4ZWU3ZTYyNmZmMWY5ZGQzMjAyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZmVhdHVyZXMuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9mZWF0dXJlcy5qc29uCkBAIC0y
MTksNyArMjE5LDcgQEAKICAgICAgICAgfSwKICAgICAgICAgInVybCI6ICJodHRwOi8vd3d3Lncz
Lm9yZy9UUi9yZXNvdXJjZS10aW1pbmcvIiwKICAgICAgICAgIndlYmtpdC11cmwiOiAiaHR0cHM6
Ly93ZWJraXQub3JnL2IvNjExMzgiLAotICAgICAgICAia2V5d29yZHMiOiBbInJlc291cmNldGlt
aW5nIiwicmVzb3VyY2UgdGltaW5nIiwicnNyYyJdLCAKKyAgICAgICAgImtleXdvcmRzIjogWyJy
ZXNvdXJjZXRpbWluZyIsInJlc291cmNlIHRpbWluZyIsInJzcmMiXSwKICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIlByb3ZpZGVzIGRldGFpbGVkIHRpbWluZyBpbmZvcm1hdGlvbiB0byBKYXZhU2Ny
aXB0IGZvciBzdWItcmVzb3VyY2VzIGxvYWRlZCBieSB0aGUgcGFnZS4iLAogICAgICAgICAiY29u
dGFjdCI6IHsKICAgICAgICAgICAgICJuYW1lIjogIkpvbmF0aGFuIERhdmlzIiwKQEAgLTY3OCw3
ICs2NzgsNyBAQAogICAgICAgICAidXJsIjogImh0dHBzOi8vc3RyZWFtcy5zcGVjLndoYXR3Zy5v
cmcvI3JzIiwKICAgICAgICAgIndlYmtpdC11cmwiOiAiaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEzODk2NyIsCiAgICAgICAgICJzcGVjaWZpY2F0aW9uIjogIlN0cmVh
bXMiLAotICAgICAgICAiY29tbWVudCI6ICJUaGUgUmVhZGFibGVTdHJlYW0gYW5kIFJlYWRhYmxl
U3RyZWFtUmVhZGVyIGludGVyZmFjZXMgYXJlIGF2YWlsYWJsZSBidXQgbm90IGZ1bmN0aW9uYWwu
IgorICAgICAgICAiY29tbWVudCI6ICJUaGUgUmVhZGFibGVTdHJlYW0gYW5kIFJlYWRhYmxlU3Ry
ZWFtRGVmYXVsdFJlYWRlciBpbnRlcmZhY2VzIGFyZSBhdmFpbGFibGUgYnV0IG5vdCBmdW5jdGlv
bmFsLiIKICAgICB9LAogICAgIHsKICAgICAgICAgIm5hbWUiOiAiU2hhZG93IERPTSIsCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284682</attachid>
            <date>2016-07-27 02:40:50 -0700</date>
            <delta_ts>2016-07-27 03:41:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160194-20160727113939.patch</filename>
            <type>text/plain</type>
            <size>71400</size>
            <attacher name="Romain Bellessort">romain.wkt</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmViZjExMDIxOTNkYzU4
MTY0NmRjZjlhMDRjOTMyYzRiNTIzNDMzZC4uZWNjMjAyZGEwY2VkNjllYjQ0Y2M5ZmZjMjFmODQz
Zjg4NTljNmE2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE2LTA3LTI3ICBSb21h
aW4gQmVsbGVzc29ydCAgPHJvbWFpbi5iZWxsZXNzb3J0QGNyZi5jYW5vbi5mcj4KKworICAgICAg
ICBbU3RyZWFtcyBBUEldIFJlcGxhY2UgUmVhZGFibGVTdHJlYW1SZWFkZXIgYnkgUmVhZGFibGVT
dHJlYW1EZWZhdWx0UmVhZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjAxOTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZXBsYWNlZCBSZWFkYWJsZVN0cmVhbVJlYWRlciBieSBSZWFkYWJsZVN0cmVh
bURlZmF1bHRSZWFkZXIgdG8gYWxpZ24KKyAgICAgICAgd2l0aCB1cGRhdGVkIFN0cmVhbXMgQVBJ
IHNwZWNpZmljYXRpb24uCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkuCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNo
L0ZldGNoSW50ZXJuYWxzLmpzOgorICAgICAgICAoY29uc3VtZVN0cmVhbSk6CisgICAgICAgICog
TW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmpzOgorICAgICAgICAoYm9keSk6CisgICAgICAg
ICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzOgorICAgICAgICAoZ2V0UmVhZGVy
KToKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVy
LmlkbDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJs
ZVN0cmVhbVJlYWRlci5pZGwuCisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3Ry
ZWFtRGVmYXVsdFJlYWRlci5qczogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3RyZWFtcy9SZWFkYWJsZVN0cmVhbVJlYWRlci5qcy4KKyAgICAgICAgKGNhbmNlbCk6CisgICAg
ICAgIChyZWFkKToKKyAgICAgICAgKHJlbGVhc2VMb2NrKToKKyAgICAgICAgKGNsb3NlZCk6Cisg
ICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzOgorICAg
ICAgICAocHJpdmF0ZUluaXRpYWxpemVSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIpOgorICAg
ICAgICAodGVlUmVhZGFibGVTdHJlYW0pOgorICAgICAgICAodGVlUmVhZGFibGVTdHJlYW1QdWxs
RnVuY3Rpb24pOgorICAgICAgICAoaXNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIpOgorICAg
ICAgICAoY2xvc2VSZWFkYWJsZVN0cmVhbSk6CisgICAgICAgIChyZWFkRnJvbVJlYWRhYmxlU3Ry
ZWFtRGVmYXVsdFJlYWRlcik6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTRE9NR2xvYmFsT2JqZWN0OjphZGRCdWlsdGluR2xvYmFscyk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN0cnVjdEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVh
ZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQnVpbHRpblJlYWRhYmxlU3RyZWFtRGVmYXVsdFJl
YWRlclByaXZhdGVDb25zdHJ1Y3Rvcjo6aW5pdGlhbGl6ZUV4ZWN1dGFibGUpOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyUHJpdmF0ZUNvbnN0cnVj
dG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0
cnVjdG9ycy5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaDoK
KyAgICAgICAgKiBmZWF0dXJlcy5qc29uOgorCiAyMDE2LTA3LTI2ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBbRmV0Y2ggQVBJXSBSZXNwb25zZSBjb25zdHJ1
Y3RvciBzaG91bGQgYmUgYWJsZSB0byB0YWtlIGEgUmVhZGFibGVTdHJlYW0gYXMgYm9keQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAppbmRleCA2MmE3MjMyY2Q4YjNkZjViNzQ4ZmE3ZDc0ODFmNDZhMzA4NTEw
MjU4Li5lNjkzNzIxZGRkZWE2NzNhOTg4NzIyN2Q4NDM5Y2YxYzgzMjRkNDdkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dApAQCAtMjYzLDcgKzI2Myw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJ
TEVTCiAgICAgTW9kdWxlcy9zdHJlYW1zL0NvdW50UXVldWluZ1N0cmF0ZWd5LmlkbAogICAgIE1v
ZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5pZGwKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVh
ZGFibGVTdHJlYW1Db250cm9sbGVyLmlkbAotICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0
cmVhbVJlYWRlci5pZGwKKyAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0
UmVhZGVyLmlkbAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5pZGwK
ICAgICBNb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW0uaWRsCiAKQEAgLTM3MjgsNyArMzcy
OCw3IEBAIHNldChXZWJDb3JlX0JVSUxUSU5TX1NPVVJDRVMKICAgICAke1dFQkNPUkVfRElSfS9N
b2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanMKICAgICAke1dFQkNPUkVfRElSfS9Nb2R1
bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmpzCiAgICAgJHtXRUJDT1JFX0RJ
Un0vTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzCi0gICAgJHtXRUJD
T1JFX0RJUn0vTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtUmVhZGVyLmpzCisgICAgJHtX
RUJDT1JFX0RJUn0vTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5q
cwogICAgICR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvc3RyZWFtcy9TdHJlYW1JbnRlcm5hbHMuanMK
ICAgICAke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW0uanMKICAg
ICAke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW1JbnRlcm5hbHMu
anMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRleCA5MDYwOWRjZTZmZmY0NWU1MmY4NTc4
MWMwNGQxNGI0MzMxNzM4ZGM3Li44MWFkY2JkOGM0N2FkMmY2MWNmOTM5ZmFiMjIyOWExN2QxNjQw
ZmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCkBAIC05OSw3ICs5OSw3IEBACiAjaW5j
bHVkZSAiSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCIKICNpbmNsdWRlICJKU1dlYkdM
U2FtcGxlci5jcHAiCiAjaW5jbHVkZSAiSlNXZWJHTFNoYWRlci5jcHAiCi0jaW5jbHVkZSAiSlNX
ZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5jcHAiIAorI2luY2x1ZGUgIkpTV2ViR0xTaGFkZXJQ
cmVjaXNpb25Gb3JtYXQuY3BwIgogI2luY2x1ZGUgIkpTV2ViR0xTeW5jLmNwcCIKICNpbmNsdWRl
ICJKU1dlYkdMVGV4dHVyZS5jcHAiCiAjaW5jbHVkZSAiSlNXZWJHTFRyYW5zZm9ybUZlZWRiYWNr
LmNwcCIKQEAgLTM5Niw3ICszOTYsNyBAQAogI2lmIEVOQUJMRShTVFJFQU1TX0FQSSkKICNpbmNs
dWRlICJKU1JlYWRhYmxlU3RyZWFtLmNwcCIKICNpbmNsdWRlICJKU1JlYWRhYmxlU3RyZWFtQ29u
dHJvbGxlci5jcHAiCi0jaW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVhbVJlYWRlci5jcHAiCisjaW5j
bHVkZSAiSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuY3BwIgogI2luY2x1ZGUgIkpTV3Jp
dGFibGVTdHJlYW0uY3BwIgogI2VuZGlmCiAjaW5jbHVkZSAiSlNSZWN0LmNwcCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDU2ODVkYzI1N2IwNjU5NmQ3YWFmMjQ2ZTA2M2FmOWY3
ODc3MzI2ZmEuLjI2YWYyZGE4MzY5OTg3ZTljMjdmMmQ5OGQ4YzNkYjE3NGNhMWM3MGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTg2LDcgKzE4Niw3IEBAIE5PTl9TVkdfQklO
RElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL0NvdW50UXVldWlu
Z1N0cmF0ZWd5LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW0uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bUNvbnRyb2xsZXIuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJs
ZVN0cmVhbVJlYWRlci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtRGVmYXVsdFJlYWRlci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJl
YW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0
cmVhbXMvV3JpdGFibGVTdHJlYW0uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9CdWZmZXIuaWRsIFwKQEAgLTEyOTgsNyArMTI5OCw3IEBAIFdlYkNvcmVfQlVJTFRJ
TlNfU09VUkNFUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0
cmVhbS5qcyBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1D
b250cm9sbGVyLmpzIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0
cmVhbUludGVybmFscy5qcyBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFi
bGVTdHJlYW1SZWFkZXIuanMgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtRGVmYXVsdFJlYWRlci5qcyBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVh
bXMvU3RyZWFtSW50ZXJuYWxzLmpzIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9X
cml0YWJsZVN0cmVhbS5qcyBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvV3JpdGFi
bGVTdHJlYW1JbnRlcm5hbHMuanMgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9mZXRjaC9GZXRjaEludGVybmFscy5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gv
RmV0Y2hJbnRlcm5hbHMuanMKaW5kZXggZDc1MDA0ZTJmODA4NWIxNWM3MTAwNzAwMTViZWRkMWI1
YWJiMjJjNi4uNDM4ZWFjNDQ0YmI4MWQyZTkzMzkxZWEwMTY2Mzc5NDlhMzVjYTFiZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEludGVybmFscy5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoSW50ZXJuYWxzLmpzCkBAIC02MSwx
NiArNjEsMTYgQEAgZnVuY3Rpb24gY29uc3VtZVN0cmVhbShyZXNwb25zZSwgdHlwZSkKICAgICAg
ICAgcmV0dXJuIEBQcm9taXNlLkByZWplY3QobmV3IEBUeXBlRXJyb3IoIkNhbm5vdCBjb25zdW1l
IGEgZGlzdHVyYmVkIFJlc3BvbnNlIGJvZHkgUmVhZGFibGVTdHJlYW0iKSk7CiAKICAgICB0cnkg
ewotICAgICAgICBsZXQgcmVhZGVyID0gbmV3IEBSZWFkYWJsZVN0cmVhbVJlYWRlcihyZXNwb25z
ZS5AYm9keSk7CisgICAgICAgIGxldCByZWFkZXIgPSBuZXcgQFJlYWRhYmxlU3RyZWFtRGVmYXVs
dFJlYWRlcihyZXNwb25zZS5AYm9keSk7CiAKICAgICAgICAgQFJlc3BvbnNlLnByb3RvdHlwZS5A
c3RhcnRDb25zdW1pbmdTdHJlYW0uQGNhbGwocmVzcG9uc2UsIHR5cGUpOwogICAgICAgICBsZXQg
cHVsbCA9IChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGlmIChyZXN1bHQuZG9uZSkKICAgICAg
ICAgICAgICAgICByZXR1cm4gQFJlc3BvbnNlLnByb3RvdHlwZS5AZmluaXNoQ29uc3VtaW5nU3Ry
ZWFtLkBjYWxsKHJlc3BvbnNlKTsKICAgICAgICAgICAgIEBSZXNwb25zZS5wcm90b3R5cGUuQGNv
bnN1bWVDaHVuay5AY2FsbChyZXNwb25zZSwgcmVzdWx0LnZhbHVlKTsKLSAgICAgICAgICAgIHJl
dHVybiBAUHJvbWlzZS5wcm90b3R5cGUuQHRoZW4uQGNhbGwoQHJlYWRGcm9tUmVhZGFibGVTdHJl
YW1SZWFkZXIocmVhZGVyKSwgcHVsbCk7CisgICAgICAgICAgICByZXR1cm4gQFByb21pc2UucHJv
dG90eXBlLkB0aGVuLkBjYWxsKEByZWFkRnJvbVJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlcihy
ZWFkZXIpLCBwdWxsKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gQFByb21pc2UucHJvdG90
eXBlLkB0aGVuLkBjYWxsKEByZWFkRnJvbVJlYWRhYmxlU3RyZWFtUmVhZGVyKHJlYWRlciksIHB1
bGwpOworICAgICAgICByZXR1cm4gQFByb21pc2UucHJvdG90eXBlLkB0aGVuLkBjYWxsKEByZWFk
RnJvbVJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlcihyZWFkZXIpLCBwdWxsKTsKICAgICB9IGNh
dGNoKGUpIHsKICAgICAgICAgcmV0dXJuIEBQcm9taXNlLkByZWplY3QoZSk7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmpzIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmpzCmluZGV4IGFjMzI4
ZjMzZTlhYWJhZWY3NzczYjViMDg0MTA4MDI2NGE0Y2I4OTUuLjAxODgzZWU2NmU3ZjkxYmRkNDRm
MGVkMGZjNThmZDljMDEyY2I3ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmV0Y2gvRmV0Y2hSZXNwb25zZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L0ZldGNoUmVzcG9uc2UuanMKQEAgLTY5LDcgKzY5LDcgQEAgZnVuY3Rpb24gYm9keSgpCiAgICAg
ICAgIGlmIChAUmVzcG9uc2UucHJvdG90eXBlLkBpc0Rpc3R1cmJlZC5AY2FsbCh0aGlzKSkgewog
ICAgICAgICAgICAgdGhpcy5AYm9keSA9IG5ldyBAUmVhZGFibGVTdHJlYW0oKTsKICAgICAgICAg
ICAgIC8vIEdldCByZWFkZXIgdG8gbG9jayBpdC4KLSAgICAgICAgICAgIG5ldyBAUmVhZGFibGVT
dHJlYW1SZWFkZXIodGhpcy5AYm9keSk7CisgICAgICAgICAgICBuZXcgQFJlYWRhYmxlU3RyZWFt
RGVmYXVsdFJlYWRlcih0aGlzLkBib2R5KTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
IHZhciBzb3VyY2UgPSBAUmVzcG9uc2UucHJvdG90eXBlLkBjcmVhdGVSZWFkYWJsZVN0cmVhbVNv
dXJjZS5AY2FsbCh0aGlzKTsKICAgICAgICAgICAgIHRoaXMuQGJvZHkgPSBzb3VyY2UgPyBuZXcg
QFJlYWRhYmxlU3RyZWFtKHNvdXJjZSkgOiBudWxsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzCmluZGV4IDcyYmQ1MzA3MTA5MDZhNjNiZjE2
YmNkNDkwYTMzMGIwYmFkMjliZmUuLjY3ZTNiZDM4YmMwNTRhNTYxNTY1NjVmZmQwYTc0YjhlZDY1
ODM0ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJs
ZVN0cmVhbS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW0uanMKQEAgLTg2LDcgKzg2LDcgQEAgZnVuY3Rpb24gZ2V0UmVhZGVyKCkKICAgICBpZiAo
IUBpc1JlYWRhYmxlU3RyZWFtKHRoaXMpKQogICAgICAgICB0aHJvdyBAbWFrZVRoaXNUeXBlRXJy
b3IoIlJlYWRhYmxlU3RyZWFtIiwgImdldFJlYWRlciIpOwogCi0gICAgcmV0dXJuIG5ldyBAUmVh
ZGFibGVTdHJlYW1SZWFkZXIodGhpcyk7CisgICAgcmV0dXJuIG5ldyBAUmVhZGFibGVTdHJlYW1E
ZWZhdWx0UmVhZGVyKHRoaXMpOwogfQogCiBmdW5jdGlvbiBwaXBlVGhyb3VnaChzdHJlYW1zLCBv
cHRpb25zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtRGVmYXVsdFJlYWRlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVh
bXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMjEzYWExZTg4
ZTliM2VlOTE2OGQxZTI4MWJkNmMwODFlMDNhNDIwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5pZGwK
QEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBDYW5vbiBJbmMuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSByZXF1aXJlZCB0byBiZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBDYW5vbiBJbmMuIG5vciB0aGUg
bmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIENBTk9OIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IK
KyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFs
PVNUUkVBTVNfQVBJLAorICAgIEN1c3RvbUNvbnN0cnVjdG9yKFJlYWRhYmxlU3RyZWFtIHN0cmVh
bSksCisgICAgRXhwb3NlZD0oV2luZG93LFdvcmtlciksCisgICAgSlNCdWlsdGluLAorICAgIE5v
SW50ZXJmYWNlT2JqZWN0CitdIGludGVyZmFjZSBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIg
eworICAgIFtOb3RFbnVtZXJhYmxlXSBQcm9taXNlIHJlYWQoKTsKKyAgICBbTm90RW51bWVyYWJs
ZV0gUHJvbWlzZSBjYW5jZWwob3B0aW9uYWwgYW55IHJlYXNvbik7CisgICAgW05vdEVudW1lcmFi
bGVdIHZvaWQgcmVsZWFzZUxvY2soKTsKKworICAgIFtOb3RFbnVtZXJhYmxlXSByZWFkb25seSBh
dHRyaWJ1dGUgUHJvbWlzZSBjbG9zZWQ7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5qcyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTZlNWU2YjNlYjJlNzI1ZWFjZWIxOGFhNTFkODY3MTQzMmQxYTE3OAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bURlZmF1bHRSZWFkZXIuanMKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBDYW5vbiBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKy8vIEBjb25kaXRpb25hbD1FTkFCTEUoU1RSRUFNU19BUEkpCisKK2Z1bmN0aW9uIGNhbmNl
bChyZWFzb24pCit7CisgICAgInVzZSBzdHJpY3QiOworCisgICAgaWYgKCFAaXNSZWFkYWJsZVN0
cmVhbURlZmF1bHRSZWFkZXIodGhpcykpCisgICAgICAgIHJldHVybiBAUHJvbWlzZS5AcmVqZWN0
KG5ldyBAVHlwZUVycm9yKCJDYW4gb25seSBjYWxsIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRl
ci5jYW5jZWwgb24gaW5zdGFuY2VzIG9mIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlciIpKTsK
KworICAgIGlmICghdGhpcy5Ab3duZXJSZWFkYWJsZVN0cmVhbSkKKyAgICAgICAgcmV0dXJuIEBQ
cm9taXNlLkByZWplY3QobmV3IEBUeXBlRXJyb3IoImNhbmNlbCgpIGNhbGxlZCBvbiBhIHJlYWRl
ciBvd25lZCBieSBubyByZWFkYWJsZSBzdHJlYW0iKSk7CisKKyAgICByZXR1cm4gQGNhbmNlbFJl
YWRhYmxlU3RyZWFtKHRoaXMuQG93bmVyUmVhZGFibGVTdHJlYW0sIHJlYXNvbik7Cit9CisKK2Z1
bmN0aW9uIHJlYWQoKQoreworICAgICJ1c2Ugc3RyaWN0IjsKKworICAgIGlmICghQGlzUmVhZGFi
bGVTdHJlYW1EZWZhdWx0UmVhZGVyKHRoaXMpKQorICAgICAgICByZXR1cm4gQFByb21pc2UuQHJl
amVjdChuZXcgQFR5cGVFcnJvcigiQ2FuIG9ubHkgY2FsbCBSZWFkYWJsZVN0cmVhbURlZmF1bHRS
ZWFkZXIucmVhZCBvbiBpbnN0YW5jZXMgb2YgUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyIikp
OworICAgIGlmICghdGhpcy5Ab3duZXJSZWFkYWJsZVN0cmVhbSkKKyAgICAgICAgcmV0dXJuIEBQ
cm9taXNlLkByZWplY3QobmV3IEBUeXBlRXJyb3IoInJlYWQoKSBjYWxsZWQgb24gYSByZWFkZXIg
b3duZWQgYnkgbm8gcmVhZGFibGUgc3RyZWFtIikpOworCisgICAgcmV0dXJuIEByZWFkRnJvbVJl
YWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlcih0aGlzKTsKK30KKworZnVuY3Rpb24gcmVsZWFzZUxv
Y2soKQoreworICAgICJ1c2Ugc3RyaWN0IjsKKworICAgIGlmICghQGlzUmVhZGFibGVTdHJlYW1E
ZWZhdWx0UmVhZGVyKHRoaXMpKQorICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiQ2FuIG9u
bHkgY2FsbCBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIucmVsZWFzZUxvY2sgb24gaW5zdGFu
Y2VzIG9mIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlciIpOworCisgICAgY29uc3Qgc3RyZWFt
ID0gdGhpcy5Ab3duZXJSZWFkYWJsZVN0cmVhbTsKKyAgICBpZiAoIXN0cmVhbSkKKyAgICAgICAg
IHJldHVybjsKKworICAgIGlmICh0aGlzLkByZWFkUmVxdWVzdHMubGVuZ3RoKQorICAgICAgICB0
aHJvdyBuZXcgQFR5cGVFcnJvcigiVGhlcmUgYXJlIHN0aWxsIHBlbmRpbmcgcmVhZCByZXF1ZXN0
cywgY2Fubm90IHJlbGVhc2UgdGhlIGxvY2siKTsKKworICAgIGlmIChzdHJlYW0uQHN0YXRlID09
PSBAc3RyZWFtUmVhZGFibGUpCisgICAgICAgIHRoaXMuQGNsb3NlZFByb21pc2VDYXBhYmlsaXR5
LkByZWplY3QuQGNhbGwoQHVuZGVmaW5lZCwgbmV3IEBUeXBlRXJyb3IoInJlbGVhc2luZyBsb2Nr
IG9mIHJlYWRlciB3aG9zZSBzdHJlYW0gaXMgc3RpbGwgaW4gcmVhZGFibGUgc3RhdGUiKSk7Cisg
ICAgZWxzZQorICAgICAgICB0aGlzLkBjbG9zZWRQcm9taXNlQ2FwYWJpbGl0eSA9IHsgQHByb21p
c2U6IEBQcm9taXNlLkByZWplY3QobmV3IEBUeXBlRXJyb3IoInJlYWRlciByZWxlYXNlZCBsb2Nr
IikpIH07CisKKyAgICBzdHJlYW0uQHJlYWRlciA9IEB1bmRlZmluZWQ7CisgICAgdGhpcy5Ab3du
ZXJSZWFkYWJsZVN0cmVhbSA9IG51bGw7Cit9CisKK2Z1bmN0aW9uIGNsb3NlZCgpCit7CisgICAg
InVzZSBzdHJpY3QiOworCisgICAgaWYgKCFAaXNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIo
dGhpcykpCisgICAgICAgIHJldHVybiBAUHJvbWlzZS5AcmVqZWN0KG5ldyBAVHlwZUVycm9yKCJU
aGUgUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmNsb3NlZCBnZXR0ZXIgY2FuIG9ubHkgYmUg
dXNlZCBvbiBpbnN0YW5jZXMgb2YgUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyIikpOworCisg
ICAgcmV0dXJuIHRoaXMuQGNsb3NlZFByb21pc2VDYXBhYmlsaXR5LkBwcm9taXNlOworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50
ZXJuYWxzLmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFt
SW50ZXJuYWxzLmpzCmluZGV4IGE5YmU3MGZhYTdmM2UyNDZjYWRmY2Q2ZjAzNmE0NDE5M2YxZDI4
ZDIuLjEwOTA5Y2QxODBiMDkwMzA4YTA4ZGE1ZDk1NWM3ZThlNzljMGU1ZTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUludGVybmFscy5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1JbnRl
cm5hbHMuanMKQEAgLTI3LDEyICsyNywxMiBAQAogLy8gQGNvbmRpdGlvbmFsPUVOQUJMRShTVFJF
QU1TX0FQSSkKIC8vIEBpbnRlcm5hbAogCi1mdW5jdGlvbiBwcml2YXRlSW5pdGlhbGl6ZVJlYWRh
YmxlU3RyZWFtUmVhZGVyKHN0cmVhbSkKK2Z1bmN0aW9uIHByaXZhdGVJbml0aWFsaXplUmVhZGFi
bGVTdHJlYW1EZWZhdWx0UmVhZGVyKHN0cmVhbSkKIHsKICAgICAidXNlIHN0cmljdCI7CiAKICAg
ICBpZiAoIUBpc1JlYWRhYmxlU3RyZWFtKHN0cmVhbSkpCi0gICAgICAgdGhyb3cgbmV3IEBUeXBl
RXJyb3IoIlJlYWRhYmxlU3RyZWFtUmVhZGVyIG5lZWRzIGEgUmVhZGFibGVTdHJlYW0iKTsKKyAg
ICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyIG5l
ZWRzIGEgUmVhZGFibGVTdHJlYW0iKTsKICAgICBpZiAoQGlzUmVhZGFibGVTdHJlYW1Mb2NrZWQo
c3RyZWFtKSkKICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiUmVhZGFibGVTdHJlYW0gaXMg
bG9ja2VkIik7CiAKQEAgLTczLDcgKzczLDcgQEAgZnVuY3Rpb24gdGVlUmVhZGFibGVTdHJlYW0o
c3RyZWFtLCBzaG91bGRDbG9uZSkKICAgICBAYXNzZXJ0KEBpc1JlYWRhYmxlU3RyZWFtKHN0cmVh
bSkpOwogICAgIEBhc3NlcnQodHlwZW9mKHNob3VsZENsb25lKSA9PT0gImJvb2xlYW4iKTsKIAot
ICAgIGNvbnN0IHJlYWRlciA9IG5ldyBAUmVhZGFibGVTdHJlYW1SZWFkZXIoc3RyZWFtKTsKKyAg
ICBjb25zdCByZWFkZXIgPSBuZXcgQFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlcihzdHJlYW0p
OwogCiAgICAgY29uc3QgdGVlU3RhdGUgPSB7CiAgICAgICAgIGNsb3NlZE9yRXJyb3JlZDogZmFs
c2UsCkBAIC0xMTYsNyArMTE2LDcgQEAgZnVuY3Rpb24gdGVlUmVhZGFibGVTdHJlYW1QdWxsRnVu
Y3Rpb24odGVlU3RhdGUsIHJlYWRlciwgc2hvdWxkQ2xvbmUpCiAgICAgInVzZSBzdHJpY3QiOwog
CiAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICBAUHJvbWlzZS5wcm90b3R5cGUuQHRo
ZW4uQGNhbGwoQHJlYWRGcm9tUmVhZGFibGVTdHJlYW1SZWFkZXIocmVhZGVyKSwgZnVuY3Rpb24o
cmVzdWx0KSB7CisgICAgICAgIEBQcm9taXNlLnByb3RvdHlwZS5AdGhlbi5AY2FsbChAcmVhZEZy
b21SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIocmVhZGVyKSwgZnVuY3Rpb24ocmVzdWx0KSB7
CiAgICAgICAgICAgICBAYXNzZXJ0KEBpc09iamVjdChyZXN1bHQpKTsKICAgICAgICAgICAgIEBh
c3NlcnQodHlwZW9mIHJlc3VsdC5kb25lID09PSAiYm9vbGVhbiIpOwogICAgICAgICAgICAgaWYg
KHJlc3VsdC5kb25lICYmICF0ZWVTdGF0ZS5jbG9zZWRPckVycm9yZWQpIHsKQEAgLTE3Nyw3ICsx
NzcsNyBAQCBmdW5jdGlvbiBpc1JlYWRhYmxlU3RyZWFtKHN0cmVhbSkKICAgICByZXR1cm4gQGlz
T2JqZWN0KHN0cmVhbSkgJiYgISFzdHJlYW0uQHVuZGVybHlpbmdTb3VyY2U7CiB9CiAKLWZ1bmN0
aW9uIGlzUmVhZGFibGVTdHJlYW1SZWFkZXIocmVhZGVyKQorZnVuY3Rpb24gaXNSZWFkYWJsZVN0
cmVhbURlZmF1bHRSZWFkZXIocmVhZGVyKQogewogICAgICJ1c2Ugc3RyaWN0IjsKIApAQCAtMjI2
LDcgKzIyNiw3IEBAIGZ1bmN0aW9uIHJlcXVlc3RSZWFkYWJsZVN0cmVhbVB1bGwoc3RyZWFtKQog
ICAgICAgICByZXR1cm47CiAgICAgaWYgKCghQGlzUmVhZGFibGVTdHJlYW1Mb2NrZWQoc3RyZWFt
KSB8fCAhc3RyZWFtLkByZWFkZXIuQHJlYWRSZXF1ZXN0cy5sZW5ndGgpICYmIEBnZXRSZWFkYWJs
ZVN0cmVhbURlc2lyZWRTaXplKHN0cmVhbSkgPD0gMCkKICAgICAgICAgcmV0dXJuOwotIAorCiAg
ICAgaWYgKHN0cmVhbS5AcHVsbGluZykgewogICAgICAgICBzdHJlYW0uQHB1bGxBZ2FpbiA9IHRy
dWU7CiAgICAgICAgIHJldHVybjsKQEAgLTI5OSw3ICsyOTksNyBAQCBmdW5jdGlvbiBjbG9zZVJl
YWRhYmxlU3RyZWFtKHN0cmVhbSkKICAgICBAYXNzZXJ0KCFzdHJlYW0uQGNsb3NlUmVxdWVzdGVk
KTsKICAgICBAYXNzZXJ0KHN0cmVhbS5Ac3RhdGUgIT09IEBzdHJlYW1FcnJvcmVkKTsKICAgICBp
ZiAoc3RyZWFtLkBzdGF0ZSA9PT0gQHN0cmVhbUNsb3NlZCkKLSAgICAgICAgcmV0dXJuOyAKKyAg
ICAgICAgcmV0dXJuOwogICAgIHN0cmVhbS5AY2xvc2VSZXF1ZXN0ZWQgPSB0cnVlOwogICAgIGlm
ICghc3RyZWFtLkBxdWV1ZS5jb250ZW50Lmxlbmd0aCkKICAgICAgICAgQGZpbmlzaENsb3NpbmdS
ZWFkYWJsZVN0cmVhbShzdHJlYW0pOwpAQCAtMzM1LDcgKzMzNSw3IEBAIGZ1bmN0aW9uIGVucXVl
dWVJblJlYWRhYmxlU3RyZWFtKHN0cmVhbSwgY2h1bmspCiAgICAgQHJlcXVlc3RSZWFkYWJsZVN0
cmVhbVB1bGwoc3RyZWFtKTsKIH0KIAotZnVuY3Rpb24gcmVhZEZyb21SZWFkYWJsZVN0cmVhbVJl
YWRlcihyZWFkZXIpCitmdW5jdGlvbiByZWFkRnJvbVJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRl
cihyZWFkZXIpCiB7CiAgICAgInVzZSBzdHJpY3QiOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1SZWFkZXIuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtUmVhZGVyLmlkbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZTRlN2I3ZDNlNGRhZGRhOTAzYjdmY2Y5ZTk0MTA4NDk5YmNl
NTlhNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1SZWFkZXIuaWRsCisrKyAv
ZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBDYW5v
biBJbmMuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSByZXF1aXJlZCB0byBiZSBtZXQ6Ci0gKgotICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBDYW5vbiBJbmMu
IG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIENBTk9OIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotICogREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IKLSAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0gKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAot
ICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotWwotICAgIENv
bmRpdGlvbmFsPVNUUkVBTVNfQVBJLAotICAgIEN1c3RvbUNvbnN0cnVjdG9yKFJlYWRhYmxlU3Ry
ZWFtIHN0cmVhbSksCi0gICAgRXhwb3NlZD0oV2luZG93LFdvcmtlciksCi0gICAgSlNCdWlsdGlu
LAotICAgIE5vSW50ZXJmYWNlT2JqZWN0Ci1dIGludGVyZmFjZSBSZWFkYWJsZVN0cmVhbVJlYWRl
ciB7Ci0gICAgW05vdEVudW1lcmFibGVdIFByb21pc2UgcmVhZCgpOwotICAgIFtOb3RFbnVtZXJh
YmxlXSBQcm9taXNlIGNhbmNlbChvcHRpb25hbCBhbnkgcmVhc29uKTsKLSAgICBbTm90RW51bWVy
YWJsZV0gdm9pZCByZWxlYXNlTG9jaygpOwotCi0gICAgW05vdEVudW1lcmFibGVdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBQcm9taXNlIGNsb3NlZDsKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1SZWFkZXIuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1SZWFkZXIuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGNiMjExYjhmNzM2YmFkZjQ5ODcyZWRhNzhlMTk2Mzk5ZDRjZjkyYTAu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtUmVhZGVyLmpzCisrKyAvZGV2L251
bGwKQEAgLTEsODQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBDYW5vbiBJbmMu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS8vIEBjb25kaXRp
b25hbD1FTkFCTEUoU1RSRUFNU19BUEkpCi0KLWZ1bmN0aW9uIGNhbmNlbChyZWFzb24pCi17Ci0g
ICAgInVzZSBzdHJpY3QiOwotCi0gICAgaWYgKCFAaXNSZWFkYWJsZVN0cmVhbVJlYWRlcih0aGlz
KSkKLSAgICAgICAgcmV0dXJuIEBQcm9taXNlLkByZWplY3QoQG1ha2VUaGlzVHlwZUVycm9yKCJS
ZWFkYWJsZVN0cmVhbVJlYWRlciIsICJjYW5jZWwiKSk7Ci0KLSAgICBpZiAoIXRoaXMuQG93bmVy
UmVhZGFibGVTdHJlYW0pCi0gICAgICAgIHJldHVybiBAUHJvbWlzZS5AcmVqZWN0KG5ldyBAVHlw
ZUVycm9yKCJjYW5jZWwoKSBjYWxsZWQgb24gYSByZWFkZXIgb3duZWQgYnkgbm8gcmVhZGFibGUg
c3RyZWFtIikpOwotCi0gICAgcmV0dXJuIEBjYW5jZWxSZWFkYWJsZVN0cmVhbSh0aGlzLkBvd25l
clJlYWRhYmxlU3RyZWFtLCByZWFzb24pOwotfQotCi1mdW5jdGlvbiByZWFkKCkKLXsKLSAgICAi
dXNlIHN0cmljdCI7Ci0KLSAgICBpZiAoIUBpc1JlYWRhYmxlU3RyZWFtUmVhZGVyKHRoaXMpKQot
ICAgICAgICByZXR1cm4gQFByb21pc2UuQHJlamVjdChAbWFrZVRoaXNUeXBlRXJyb3IoIlJlYWRh
YmxlU3RyZWFtUmVhZGVyIiwgInJlYWQiKSk7Ci0gICAgaWYgKCF0aGlzLkBvd25lclJlYWRhYmxl
U3RyZWFtKQotICAgICAgICByZXR1cm4gQFByb21pc2UuQHJlamVjdChuZXcgQFR5cGVFcnJvcigi
cmVhZCgpIGNhbGxlZCBvbiBhIHJlYWRlciBvd25lZCBieSBubyByZWFkYWJsZSBzdHJlYW0iKSk7
Ci0KLSAgICByZXR1cm4gQHJlYWRGcm9tUmVhZGFibGVTdHJlYW1SZWFkZXIodGhpcyk7Ci19Ci0K
LWZ1bmN0aW9uIHJlbGVhc2VMb2NrKCkKLXsKLSAgICAidXNlIHN0cmljdCI7Ci0KLSAgICBpZiAo
IUBpc1JlYWRhYmxlU3RyZWFtUmVhZGVyKHRoaXMpKQotICAgICAgICB0aHJvdyBAbWFrZVRoaXNU
eXBlRXJyb3IoIlJlYWRhYmxlU3RyZWFtUmVhZGVyIiwgInJlbGVhc2VMb2NrIik7Ci0KLSAgICBj
b25zdCBzdHJlYW0gPSB0aGlzLkBvd25lclJlYWRhYmxlU3RyZWFtOwotICAgIGlmICghc3RyZWFt
KQotICAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKHRoaXMuQHJlYWRSZXF1ZXN0cy5sZW5ndGgp
Ci0gICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJUaGVyZSBhcmUgc3RpbGwgcGVuZGluZyBy
ZWFkIHJlcXVlc3RzLCBjYW5ub3QgcmVsZWFzZSB0aGUgbG9jayIpOwotCi0gICAgaWYgKHN0cmVh
bS5Ac3RhdGUgPT09IEBzdHJlYW1SZWFkYWJsZSkKLSAgICAgICAgdGhpcy5AY2xvc2VkUHJvbWlz
ZUNhcGFiaWxpdHkuQHJlamVjdC5AY2FsbChAdW5kZWZpbmVkLCBuZXcgQFR5cGVFcnJvcigicmVs
ZWFzaW5nIGxvY2sgb2YgcmVhZGVyIHdob3NlIHN0cmVhbSBpcyBzdGlsbCBpbiByZWFkYWJsZSBz
dGF0ZSIpKTsKLSAgICBlbHNlCi0gICAgICAgIHRoaXMuQGNsb3NlZFByb21pc2VDYXBhYmlsaXR5
ID0geyBAcHJvbWlzZTogQFByb21pc2UuQHJlamVjdChuZXcgQFR5cGVFcnJvcigicmVhZGVyIHJl
bGVhc2VkIGxvY2siKSkgfTsKLQotICAgIHN0cmVhbS5AcmVhZGVyID0gQHVuZGVmaW5lZDsKLSAg
ICB0aGlzLkBvd25lclJlYWRhYmxlU3RyZWFtID0gbnVsbDsKLX0KLQotZnVuY3Rpb24gY2xvc2Vk
KCkKLXsKLSAgICAidXNlIHN0cmljdCI7Ci0KLSAgICBpZiAoIUBpc1JlYWRhYmxlU3RyZWFtUmVh
ZGVyKHRoaXMpKQotICAgICAgICByZXR1cm4gQFByb21pc2UuQHJlamVjdChAbWFrZUdldHRlclR5
cGVFcnJvcigiUmVhZGFibGVTdHJlYW1SZWFkZXIiLCAiY2xvc2VkIikpOwotCi0gICAgcmV0dXJu
IHRoaXMuQGNsb3NlZFByb21pc2VDYXBhYmlsaXR5LkBwcm9taXNlOwotfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNiOGEzNjZk
NmI4YmY3ZWQ3OWFiMTYxYzY2NTVkZDA3YTQ4N2M4ODMuLmNkNjk4OTc0NjkwY2Q2YzI1YzBiMjQy
NWNjNWYxZjgzNzc1MzY0MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4MTgsOCArMjgxOCw4IEBACiAJCTdDNEM5NkRDMUFE
NDQ4MzUwMDM2NUE2MCAvKiBKU1dyaXRhYmxlU3RyZWFtLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNEM5NkQ4MUFENDQ4MzUwMDM2NUE2MCAvKiBK
U1dyaXRhYmxlU3RyZWFtLmNwcCAqLzsgfTsKIAkJN0M0Qzk2REQxQUQ0NDgzNTAwMzY1QTUwIC8q
IEpTUmVhZGFibGVTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdDNEM5NkQ5MUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmgg
Ki87IH07CiAJCTdDNEM5NkREMUFENDQ4MzUwMDM2NUE2MCAvKiBKU1dyaXRhYmxlU3RyZWFtLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzRDOTZEOTFB
RDQ0ODM1MDAzNjVBNjAgLyogSlNXcml0YWJsZVN0cmVhbS5oICovOyB9OwotCQk3QzRDOTZERTFB
RDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbVJlYWRlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzRDOTZEQTFBRDQ0ODM1MDAzNjVB
NTAgLyogSlNSZWFkYWJsZVN0cmVhbVJlYWRlci5jcHAgKi87IH07Ci0JCTdDNEM5NkRGMUFENDQ4
MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtUmVhZGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzRDOTZEQjFBRDQ0ODM1MDAzNjVBNTAgLyog
SlNSZWFkYWJsZVN0cmVhbVJlYWRlci5oICovOyB9OworCQk3QzRDOTZERTFBRDQ0ODM1MDAzNjVB
NTAgLyogSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0Qzk2REExQUQ0NDgzNTAwMzY1QTUwIC8q
IEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmNwcCAqLzsgfTsKKwkJN0M0Qzk2REYxQUQ0
NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzRDOTZEQjFBRDQ0ODM1MDAz
NjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaCAqLzsgfTsKIAkJN0M0Qzk2
RTMxQUQ0NEFCRjAwMzY1QTUwIC8qIExhdW5jaFNlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzRDOTZFMjFBRDQ0QUJGMDAzNjVBNTAg
LyogTGF1bmNoU2VydmljZXNTUEkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk3QzRFREQ3NDFBN0I2MDc4MDAxOThDNEQgLyogRm9udENvY29hLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0RURENzMx
QTdCNjA3ODAwMTk4QzREIC8qIEZvbnRDb2NvYS5tbSAqLzsgfTsKIAkJN0M1MjJENEIxNUI0NzdF
ODAwOUI3Qzk1IC8qIEluc3BlY3Rvck92ZXJsYXkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M1MjJENDkxNUI0NzdFODAwOUI3Qzk1IC8qIEluc3Bl
Y3Rvck92ZXJsYXkuY3BwICovOyB9OwpAQCAtOTIxMiw3ICs5MjEyLDcgQEAKIAkJNDE5QkMyREQx
Njg1MzI5OTAwRDY0RDZEIC8qIFZpc2l0ZWRMaW5rU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVmlzaXRlZExpbmtTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTlCRTc1MjFCQzdGM0RCMDBFMUM4NUIgLyogV2ViQ29yZUJ1aWx0aW5OYW1lcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlQnVpbHRpbk5hbWVzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOUJFNzVBMUJDQkQzRUQwMEUxQzg1QiAv
KiBOYXZpZ2F0b3JVc2VyTWVkaWEuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7
IHBhdGggPSBOYXZpZ2F0b3JVc2VyTWVkaWEuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTQxOUZBRkFEMUFCQUJDRDUwMDVCODI4QiAvKiBSZWFkYWJsZVN0cmVhbVJlYWRlci5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVhZGFibGVTdHJlYW1SZWFkZXIuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0MTlGQUZBRDFBQkFCQ0Q1MDA1QjgyOEIgLyogUmVhZGFi
bGVTdHJlYW1EZWZhdWx0UmVhZGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZWFkYWJs
ZVN0cmVhbURlZmF1bHRSZWFkZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MUEwMjNFRDFBMzlEQjc5MDBGNzIyQ0YgLyogUmVhZGFibGVTdHJlYW0uaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDFBMDIzRUQxQTM5REI3OTAwRjcyMkRGIC8qIFdyaXRhYmxlU3RyZWFtLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBXcml0YWJsZVN0cmVhbS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxQTNENThDMTAxQzE1MkQwMDMxNkQwNyAvKiBEZWRpY2F0ZWRXb3JrZXJU
aHJlYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVkaWNhdGVk
V29ya2VyVGhyZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwNTU5LDgg
KzEwNTU5LDggQEAKIAkJN0M0Qzk2RDgxQUQ0NDgzNTAwMzY1QTYwIC8qIEpTV3JpdGFibGVTdHJl
YW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXcml0YWJsZVN0
cmVhbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNEM5NkQ5MUFENDQ4MzUw
MDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTUmVhZGFibGVTdHJlYW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
N0M0Qzk2RDkxQUQ0NDgzNTAwMzY1QTYwIC8qIEpTV3JpdGFibGVTdHJlYW0uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXcml0YWJsZVN0cmVhbS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk3QzRDOTZEQTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0
cmVhbVJlYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Jl
YWRhYmxlU3RyZWFtUmVhZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0M0
Qzk2REIxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1SZWFkZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSZWFkYWJsZVN0cmVhbVJlYWRlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QzRDOTZEQTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNS
ZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk3QzRDOTZEQjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJs
ZVN0cmVhbURlZmF1bHRSZWFkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJN0M0Qzk2RTIxQUQ0NEFCRjAwMzY1QTUwIC8qIExhdW5jaFNlcnZpY2VzU1BJLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExhdW5jaFNlcnZpY2VzU1BJLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNEVERDczMUE3QjYwNzgwMDE5OEM0RCAvKiBGb250
Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBGb250Q29j
b2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNTIyRDQ5MTVCNDc3RTgwMDlC
N0M5NSAvKiBJbnNwZWN0b3JPdmVybGF5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEluc3BlY3Rvck92ZXJsYXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTE4MjIsNyArMTE4MjIsNyBAQAogCQk5OTA4QjBGMTFCQ0FDRjkxMDBFRDBGNTUgLyog
U3RyZWFtSW50ZXJuYWxzLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRo
ID0gU3RyZWFtSW50ZXJuYWxzLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4
QjBGMTFCQ0FDRjkxMDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW1JbnRlcm5hbHMuanMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVhbUludGVybmFs
cy5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRjExQkNBQ0Y5MTAwRUQw
Rjc1IC8qIFdyaXRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5q
YXZhc2NyaXB0OyBwYXRoID0gV3JpdGFibGVTdHJlYW1JbnRlcm5hbHMuanM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTk5MDhCMEYyMUJDQUNGOTEwMEVEMEY2NSAvKiBSZWFkYWJsZVN0
cmVhbVJlYWRlci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IFJl
YWRhYmxlU3RyZWFtUmVhZGVyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTA4
QjBGMjFCQ0FDRjkxMDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmpzICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gUmVhZGFibGVTdHJlYW1EZWZh
dWx0UmVhZGVyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBGMzFCQ0FD
RkZFMDBFRDBGNjUgLyogQnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5zLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJ5dGVMZW5ndGhRdWV1aW5nU3RyYXRl
Z3lCdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEY1MUJD
QUQwN0QwMEVEMEY2NSAvKiBCeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5QnVpbHRpbnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneUJ1
aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDhCMEY2MUJDQUQwN0Qw
MEVEMEY2NSAvKiBDb3VudFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvdW50UXVldWluZ1N0cmF0ZWd5QnVpbHRpbnMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE4MzUsOCArMTE4MzUsOCBAQAogCQk5
OTA4QjBGRDFCQ0FEMDdEMDBFRDBGNTUgLyogU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RyZWFtSW50ZXJuYWxzQnVpbHRp
bnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTA4QjBGRDFCQ0FEMDdEMDBF
RDBGNjUgLyogUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5z
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwOEIwRkQxQkNBRDA3RDAwRUQw
Rjc1IC8qIFdyaXRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV3JpdGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk5MDhCMEZFMUJDQUQwN0QwMEVEMEY2
NSAvKiBSZWFkYWJsZVN0cmVhbVJlYWRlckJ1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtUmVhZGVyQnVpbHRpbnMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5OTA4QjBGRjFCQ0FEMDdEMDBFRDBGNjUgLyogUmVh
ZGFibGVTdHJlYW1SZWFkZXJCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZWFkYWJsZVN0cmVhbVJlYWRlckJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTk5MDhCMEZFMUJDQUQwN0QwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbURlZmF1
bHRSZWFkZXJCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJCdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTk5MDhCMEZGMUJDQUQwN0QwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVh
bURlZmF1bHRSZWFkZXJCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5OTIwMzk4MDE4Qjk1QkM2MDBCMzlBRjkgLyogVXNlcklucHV0QnJpZGdl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJJbnB1dEJyaWRn
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MjAzOTgxMThCOTVCQzYwMEIz
OUFGOSAvKiBVc2VySW5wdXRCcmlkZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVXNlcklucHV0QnJpZGdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5OTRF
NUQ4MUJEODQzQTMwMEYyRDgzNSAvKiBNZWRpYURldmljZXMuanMgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmphdmFzY3JpcHQ7IHBhdGggPSBNZWRpYURldmljZXMuanM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xNzA3MSw4ICsxNzA3MSw4IEBACiAJCQkJNDExODlFRjcxQUQ4MjMyODAw
QjkwQTBEIC8qIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5pZGwgKi8sCiAJCQkJOTkwOEIwRjAx
QkNBQ0Y5MTAwRUQwRjY1IC8qIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5qcyAqLywKIAkJCQk5
OTA4QjBGMTFCQ0FDRjkxMDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW1JbnRlcm5hbHMuanMgKi8s
Ci0JCQkJNDE5RkFGQUQxQUJBQkNENTAwNUI4MjhCIC8qIFJlYWRhYmxlU3RyZWFtUmVhZGVyLmlk
bCAqLywKLQkJCQk5OTA4QjBGMjFCQ0FDRjkxMDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW1SZWFk
ZXIuanMgKi8sCisJCQkJNDE5RkFGQUQxQUJBQkNENTAwNUI4MjhCIC8qIFJlYWRhYmxlU3RyZWFt
RGVmYXVsdFJlYWRlci5pZGwgKi8sCisJCQkJOTkwOEIwRjIxQkNBQ0Y5MTAwRUQwRjY1IC8qIFJl
YWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5qcyAqLywKIAkJCQk0MThDMzk1QjFDOEYwQTYxMDA1
MUM4QTMgLyogUmVhZGFibGVTdHJlYW1Tb3VyY2UuaCAqLywKIAkJCQk0MThDMzk1QzFDOEYwQTYx
MDA1MUM4QTMgLyogUmVhZGFibGVTdHJlYW1Tb3VyY2UuaWRsICovLAogCQkJCTk5MDhCMEYxMUJD
QUNGOTEwMEVEMEY1NSAvKiBTdHJlYW1JbnRlcm5hbHMuanMgKi8sCkBAIC0xNzA5MCw4ICsxNzA5
MCw4IEBACiAJCQkJN0M0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW0u
aCAqLywKIAkJCQk2QzRDOTZEQTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbUNv
bnRyb2xsZXIuY3BwICovLAogCQkJCTZDNEM5NkRCMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRh
YmxlU3RyZWFtQ29udHJvbGxlci5oICovLAotCQkJCTdDNEM5NkRBMUFENDQ4MzUwMDM2NUE1MCAv
KiBKU1JlYWRhYmxlU3RyZWFtUmVhZGVyLmNwcCAqLywKLQkJCQk3QzRDOTZEQjFBRDQ0ODM1MDAz
NjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbVJlYWRlci5oICovLAorCQkJCTdDNEM5NkRBMUFENDQ4
MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5jcHAgKi8sCisJCQkJ
N0M0Qzk2REIxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVy
LmggKi8sCiAJCQkJN0M0Qzk2RDgxQUQ0NDgzNTAwMzY1QTYwIC8qIEpTV3JpdGFibGVTdHJlYW0u
Y3BwICovLAogCQkJCTdDNEM5NkQ5MUFENDQ4MzUwMDM2NUE2MCAvKiBKU1dyaXRhYmxlU3RyZWFt
LmggKi8sCiAJCQkpOwpAQCAtMTc5NDUsOCArMTc5NDUsOCBAQAogCQkJCTk5MDhCMEZCMUJDQUQw
N0QwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJCdWlsdGlucy5oICovLAogCQkJ
CTk5MDhCMEZEMUJDQUQwN0QwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0
aW5zLmNwcCAqLywKIAkJCQk5QjAzRDgwNjFCQjMxMTBEMDBCNzY0RDkgLyogUmVhZGFibGVTdHJl
YW1JbnRlcm5hbHNCdWlsdGlucy5oICovLAotCQkJCTk5MDhCMEZFMUJDQUQwN0QwMEVEMEY2NSAv
KiBSZWFkYWJsZVN0cmVhbVJlYWRlckJ1aWx0aW5zLmNwcCAqLywKLQkJCQk5OTA4QjBGRjFCQ0FE
MDdEMDBFRDBGNjUgLyogUmVhZGFibGVTdHJlYW1SZWFkZXJCdWlsdGlucy5oICovLAorCQkJCTk5
MDhCMEZFMUJDQUQwN0QwMEVEMEY2NSAvKiBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJCdWls
dGlucy5jcHAgKi8sCisJCQkJOTkwOEIwRkYxQkNBRDA3RDAwRUQwRjY1IC8qIFJlYWRhYmxlU3Ry
ZWFtRGVmYXVsdFJlYWRlckJ1aWx0aW5zLmggKi8sCiAJCQkJNUUyQzQzNzUxQkNGOUEwQjAwMDFF
MkJDIC8qIFJUQ1BlZXJDb25uZWN0aW9uQnVpbHRpbnMuY3BwICovLAogCQkJCTVFMkM0Mzc2MUJD
RjlBMEIwMDAxRTJCQyAvKiBSVENQZWVyQ29ubmVjdGlvbkJ1aWx0aW5zLmggKi8sCiAJCQkJNUUy
QzQzNzgxQkNGOUEwQjAwMDFFMkJDIC8qIFJUQ1BlZXJDb25uZWN0aW9uSW50ZXJuYWxzQnVpbHRp
bnMuY3BwICovLApAQCAtMjcxMTksNyArMjcxMTksNyBAQAogCQkJCTdDNEM5NkREMUFENDQ4MzUw
MDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk2QzRDOTZE
RjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxMjlERjg2MUJCNUI4MEMwMDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFt
UHJpdmF0ZUNvbnN0cnVjdG9ycy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJN0M0Qzk2REYxQUQ0NDgz
NTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1SZWFkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTdDNEM5NkRGMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0U0Qzk2REQxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVh
ZGFibGVTdHJlYW1Tb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRkUyRjEyMEMxQjU4Mzgw
MDIwMjM1RiAvKiBKU1JlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5OThBRUNFMTNGOUQ2Qzkw
MDkwQjFBQSAvKiBKU1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmggaW4gSGVhZGVycyAq
LywKQEAgLTMwOTI3LDcgKzMwOTI3LDcgQEAKIAkJCQk3QzRDOTZEQzFBRDQ0ODM1MDAzNjVBNTAg
LyogSlNSZWFkYWJsZVN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2QzRDOTZERTFBRDQ0
ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDEyOURGODUxQkI1QjgwNzAwMzIyQTE2IC8qIEpTUmVhZGFibGVTdHJlYW1Qcml2
YXRlQ29uc3RydWN0b3JzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTdDNEM5NkRFMUFENDQ4MzUw
MDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtUmVhZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTdDNEM5NkRFMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3RTRDOTZEQzFBRDQ0ODM1MDAzNjVBNTEgLyogSlNS
ZWFkYWJsZVN0cmVhbVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MThDMzk2MDFDOEYw
QUFFMDA1MUM4QTMgLyogSlNSZWFkYWJsZVN0cmVhbVNvdXJjZUN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQ0ZFMkYxMTBDMUI1ODM3MDAyMDIzNUYgLyogSlNSZWN0LmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9i
YWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmpl
Y3QuY3BwCmluZGV4IGZkYTJjNTlhNDdmODA1ZmM4M2NiOGM1OWE4MDI4MzZjMTU2ZDI3MTAuLmQ3
ZmU2MzBlNTRhZDJlNzEwZmQyMzk1Nzg3NzY2ODZiMTM5MDA4ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKQEAgLTk0LDE1ICs5NCwx
NCBAQCB2b2lkIEpTRE9NR2xvYmFsT2JqZWN0OjphZGRCdWlsdGluR2xvYmFscyhWTSYgdm0pCiAK
ICNpZiBFTkFCTEUoU1RSRUFNU19BUEkpCiAgICAgSlNPYmplY3QqIHByaXZhdGVSZWFkYWJsZVN0
cmVhbUNvbnRyb2xsZXJDb25zdHJ1Y3RvciA9IGNyZWF0ZVJlYWRhYmxlU3RyZWFtQ29udHJvbGxl
clByaXZhdGVDb25zdHJ1Y3Rvcih2bSwgKnRoaXMpOwotICAgIEpTT2JqZWN0KiBwcml2YXRlUmVh
ZGFibGVTdHJlYW1SZWFkZXJDb25zdHJ1Y3RvciA9IGNyZWF0ZVJlYWRhYmxlU3RyZWFtUmVhZGVy
UHJpdmF0ZUNvbnN0cnVjdG9yKHZtLCAqdGhpcyk7CisgICAgSlNPYmplY3QqIHByaXZhdGVSZWFk
YWJsZVN0cmVhbURlZmF1bHRSZWFkZXJDb25zdHJ1Y3RvciA9IGNyZWF0ZVJlYWRhYmxlU3RyZWFt
RGVmYXVsdFJlYWRlclByaXZhdGVDb25zdHJ1Y3Rvcih2bSwgKnRoaXMpOwogCiAgICAgQVNTRVJU
KCFjb25zdHJ1Y3RvcnMoKS5nZXQocHJpdmF0ZVJlYWRhYmxlU3RyZWFtQ29udHJvbGxlckNvbnN0
cnVjdG9yLT5pbmZvKCkpLmdldCgpKTsKLSAgICBBU1NFUlQoIWNvbnN0cnVjdG9ycygpLmdldChw
cml2YXRlUmVhZGFibGVTdHJlYW1SZWFkZXJDb25zdHJ1Y3Rvci0+aW5mbygpKS5nZXQoKSk7Cisg
ICAgQVNTRVJUKCFjb25zdHJ1Y3RvcnMoKS5nZXQocHJpdmF0ZVJlYWRhYmxlU3RyZWFtRGVmYXVs
dFJlYWRlckNvbnN0cnVjdG9yLT5pbmZvKCkpLmdldCgpKTsKICAgICBKU0M6OldyaXRlQmFycmll
cjxKU0M6OkpTT2JqZWN0PiB0ZW1wOwogICAgIGNvbnN0cnVjdG9ycygpLmFkZChwcml2YXRlUmVh
ZGFibGVTdHJlYW1Db250cm9sbGVyQ29uc3RydWN0b3ItPmluZm8oKSwgdGVtcCkuaXRlcmF0b3It
PnZhbHVlLnNldCh2bSwgdGhpcywgcHJpdmF0ZVJlYWRhYmxlU3RyZWFtQ29udHJvbGxlckNvbnN0
cnVjdG9yKTsKLSAgICBjb25zdHJ1Y3RvcnMoKS5hZGQocHJpdmF0ZVJlYWRhYmxlU3RyZWFtUmVh
ZGVyQ29uc3RydWN0b3ItPmluZm8oKSwgdGVtcCkuaXRlcmF0b3ItPnZhbHVlLnNldCh2bSwgdGhp
cywgcHJpdmF0ZVJlYWRhYmxlU3RyZWFtUmVhZGVyQ29uc3RydWN0b3IpOworICAgIGNvbnN0cnVj
dG9ycygpLmFkZChwcml2YXRlUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyQ29uc3RydWN0b3It
PmluZm8oKSwgdGVtcCkuaXRlcmF0b3ItPnZhbHVlLnNldCh2bSwgdGhpcywgcHJpdmF0ZVJlYWRh
YmxlU3RyZWFtRGVmYXVsdFJlYWRlckNvbnN0cnVjdG9yKTsKICNlbmRpZgotCiAgICAgSlNWTUNs
aWVudERhdGEmIGNsaWVudERhdGEgPSAqc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5j
bGllbnREYXRhKTsKICAgICBKU0RPTUdsb2JhbE9iamVjdDo6R2xvYmFsUHJvcGVydHlJbmZvIHN0
YXRpY0dsb2JhbHNbXSA9IHsKICAgICAgICAgSlNET01HbG9iYWxPYmplY3Q6Okdsb2JhbFByb3Bl
cnR5SW5mbyhjbGllbnREYXRhLmJ1aWx0aW5OYW1lcygpLm1ha2VUaGlzVHlwZUVycm9yUHJpdmF0
ZU5hbWUoKSwKQEAgLTExNyw3ICsxMTYsNyBAQCB2b2lkIEpTRE9NR2xvYmFsT2JqZWN0OjphZGRC
dWlsdGluR2xvYmFscyhWTSYgdm0pCiAgICAgICAgIEpTRE9NR2xvYmFsT2JqZWN0OjpHbG9iYWxQ
cm9wZXJ0eUluZm8oY2xpZW50RGF0YS5idWlsdGluTmFtZXMoKS5zdHJlYW1XYWl0aW5nUHJpdmF0
ZU5hbWUoKSwganNOdW1iZXIoNSksIERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEpT
RE9NR2xvYmFsT2JqZWN0OjpHbG9iYWxQcm9wZXJ0eUluZm8oY2xpZW50RGF0YS5idWlsdGluTmFt
ZXMoKS5zdHJlYW1Xcml0YWJsZVByaXZhdGVOYW1lKCksIGpzTnVtYmVyKDYpLCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpLAogICAgICAgICBKU0RPTUdsb2JhbE9iamVjdDo6R2xvYmFsUHJvcGVydHlJ
bmZvKGNsaWVudERhdGEuYnVpbHRpbk5hbWVzKCkuUmVhZGFibGVTdHJlYW1Db250cm9sbGVyUHJp
dmF0ZU5hbWUoKSwgcHJpdmF0ZVJlYWRhYmxlU3RyZWFtQ29udHJvbGxlckNvbnN0cnVjdG9yLCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBKU0RPTUdsb2JhbE9iamVjdDo6R2xvYmFs
UHJvcGVydHlJbmZvKGNsaWVudERhdGEuYnVpbHRpbk5hbWVzKCkuUmVhZGFibGVTdHJlYW1SZWFk
ZXJQcml2YXRlTmFtZSgpLCBwcml2YXRlUmVhZGFibGVTdHJlYW1SZWFkZXJDb25zdHJ1Y3Rvciwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgSlNET01HbG9iYWxPYmplY3Q6Okdsb2Jh
bFByb3BlcnR5SW5mbyhjbGllbnREYXRhLmJ1aWx0aW5OYW1lcygpLlJlYWRhYmxlU3RyZWFtRGVm
YXVsdFJlYWRlclByaXZhdGVOYW1lKCksIHByaXZhdGVSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFk
ZXJDb25zdHJ1Y3RvciwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICNlbmRpZgogICAgIH07CiAg
ICAgYWRkU3RhdGljR2xvYmFscyhzdGF0aWNHbG9iYWxzLCBXVEZfQVJSQVlfTEVOR1RIKHN0YXRp
Y0dsb2JhbHMpKTsKQEAgLTEzNSw3ICsxMzQsNyBAQCB2b2lkIEpTRE9NR2xvYmFsT2JqZWN0Ojpm
aW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTT2JqZWN0KiB0aGlzVmFsdWUpCiB7CiAgICAgQmFzZTo6
ZmluaXNoQ3JlYXRpb24odm0sIHRoaXNWYWx1ZSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8o
KSkpOwotICAgIAorCiAgICAgYWRkQnVpbHRpbkdsb2JhbHModm0pOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0
cnVjdG9ycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFt
UHJpdmF0ZUNvbnN0cnVjdG9ycy5jcHAKaW5kZXggNDlkZGY3MzBhMWUxZWM2MDRkNDJkYThmMzNi
OTQzZGEwMDM1OTg2My4uNzc3ZDA1ZTIxOGUwOTNkM2Q4OTU0NWI4MDY5ZmYzNmI5NTg0Y2Y5NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbVBy
aXZhdGVDb25zdHJ1Y3RvcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
UmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmNwcApAQCAtMjUsNyArMjUsNyBAQAog
I2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJKU1JlYWRhYmxlU3RyZWFt
LmgiCiAjaW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJK
U1JlYWRhYmxlU3RyZWFtUmVhZGVyLmgiCisjaW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVhbURlZmF1
bHRSZWFkZXIuaCIKICNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmgi
CiAjaW5jbHVkZSA8cnVudGltZS9DYWxsRGF0YS5oPgogCkBAIC0zOSwxMSArMzksMTEgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1JlYWRhYmxlU3RyZWFtQ29udHJv
bGxlcihFeGVjU3RhdGUmIGV4ZWMKICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcigmZXhlYywg
QVNDSUlMaXRlcmFsKCJSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIgY29uc3RydWN0b3Igc2hvdWxk
IG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkiKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY29uc3RydWN0SlNSZWFkYWJsZVN0cmVhbVJlYWRlcihFeGVjU3RhdGUmIGV4ZWMpCitF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTUmVhZGFibGVTdHJlYW1EZWZh
dWx0UmVhZGVyKEV4ZWNTdGF0ZSYgZXhlYykKIHsKICAgICBKU1JlYWRhYmxlU3RyZWFtKiBzdHJl
YW0gPSBqc0R5bmFtaWNDYXN0PEpTUmVhZGFibGVTdHJlYW0qPihleGVjLmFyZ3VtZW50KDApKTsK
ICAgICBpZiAoIXN0cmVhbSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoJmV4ZWMs
IEFTQ0lJTGl0ZXJhbCgiUmVhZGFibGVTdHJlYW1SZWFkZXIgY29uc3RydWN0b3IgcGFyYW1ldGVy
IGlzIG5vdCBhIFJlYWRhYmxlU3RyZWFtIikpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcigmZXhlYywgQVNDSUlMaXRlcmFsKCJSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIgY29u
c3RydWN0b3IgcGFyYW1ldGVyIGlzIG5vdCBhIFJlYWRhYmxlU3RyZWFtIikpOwogCiAgICAgSlNW
YWx1ZSBqc0Z1bmN0aW9uID0gc3RyZWFtLT5nZXQoJmV4ZWMsIElkZW50aWZpZXI6OmZyb21TdHJp
bmcoJmV4ZWMsICJnZXRSZWFkZXIiKSk7CiAKQEAgLTU0LDE4ICs1NCwxOCBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTUmVhZGFibGVTdHJlYW1SZWFkZXIoRXhlY1N0
YXRlJiBleGVjKQogfQogCiAvLyBQcml2YXRlIEpTIFJlYWRhYmxlU3RyZWFtUmVkZXIgYW5kIFJl
YWRhYmxlU3RyZWFtQ29udHJvbGxlciBjb25zdHJ1Y3RvcnMuCi10eXBlZGVmIEpTQnVpbHRpbkNv
bnN0cnVjdG9yPEpTUmVhZGFibGVTdHJlYW1SZWFkZXI+IEpTQnVpbHRpblJlYWRhYmxlU3RyZWFt
UmVhZGVyUHJpdmF0ZUNvbnN0cnVjdG9yOwordHlwZWRlZiBKU0J1aWx0aW5Db25zdHJ1Y3RvcjxK
U1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlcj4gSlNCdWlsdGluUmVhZGFibGVTdHJlYW1EZWZh
dWx0UmVhZGVyUHJpdmF0ZUNvbnN0cnVjdG9yOwogdHlwZWRlZiBKU0J1aWx0aW5Db25zdHJ1Y3Rv
cjxKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlcj4gSlNCdWlsdGluUmVhZGFibGVTdHJlYW1Db250
cm9sbGVyUHJpdmF0ZUNvbnN0cnVjdG9yOwogCi1TVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9E
RVNUUlVDVElCTEUoSlNCdWlsdGluUmVhZGFibGVTdHJlYW1SZWFkZXJQcml2YXRlQ29uc3RydWN0
b3IpOworU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEpTQnVpbHRpblJl
YWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlclByaXZhdGVDb25zdHJ1Y3Rvcik7CiBTVEFUSUNfQVNT
RVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoSlNCdWlsdGluUmVhZGFibGVTdHJlYW1Db250
cm9sbGVyUHJpdmF0ZUNvbnN0cnVjdG9yKTsKIAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8g
SlNCdWlsdGluUmVhZGFibGVTdHJlYW1SZWFkZXJQcml2YXRlQ29uc3RydWN0b3I6OnNfaW5mbyA9
IHsgIlJlYWRhYmxlU3RyZWFtUmVhZGVyUHJpdmF0ZUNvbnN0cnVjdG9yIiwgJkJhc2U6OnNfaW5m
bywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0J1aWx0aW5SZWFkYWJsZVN0cmVhbVJlYWRlclBy
aXZhdGVDb25zdHJ1Y3RvcikgfTsKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTQnVpbHRp
blJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlclByaXZhdGVDb25zdHJ1Y3Rvcjo6c19pbmZvID0g
eyAiUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyUHJpdmF0ZUNvbnN0cnVjdG9yIiwgJkJhc2U6
OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0J1aWx0aW5SZWFkYWJsZVN0cmVhbURl
ZmF1bHRSZWFkZXJQcml2YXRlQ29uc3RydWN0b3IpIH07CiB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNz
SW5mbyBKU0J1aWx0aW5SZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJQcml2YXRlQ29uc3RydWN0b3I6
OnNfaW5mbyA9IHsgIlJlYWRhYmxlU3RyZWFtQ29udHJvbGxlclByaXZhdGVDb25zdHJ1Y3RvciIs
ICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNCdWlsdGluUmVhZGFibGVT
dHJlYW1Db250cm9sbGVyUHJpdmF0ZUNvbnN0cnVjdG9yKSB9OwogCi10ZW1wbGF0ZTw+IEZ1bmN0
aW9uRXhlY3V0YWJsZSogSlNCdWlsdGluUmVhZGFibGVTdHJlYW1SZWFkZXJQcml2YXRlQ29uc3Ry
dWN0b3I6OmluaXRpYWxpemVFeGVjdXRhYmxlKEpTQzo6Vk0mIHZtKQordGVtcGxhdGU8PiBGdW5j
dGlvbkV4ZWN1dGFibGUqIEpTQnVpbHRpblJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlclByaXZh
dGVDb25zdHJ1Y3Rvcjo6aW5pdGlhbGl6ZUV4ZWN1dGFibGUoSlNDOjpWTSYgdm0pCiB7Ci0gICAg
cmV0dXJuIHJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzUHJpdmF0ZUluaXRpYWxpemVSZWFkYWJsZVN0
cmVhbVJlYWRlckNvZGVHZW5lcmF0b3Iodm0pOworICAgIHJldHVybiByZWFkYWJsZVN0cmVhbUlu
dGVybmFsc1ByaXZhdGVJbml0aWFsaXplUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyQ29kZUdl
bmVyYXRvcih2bSk7CiB9CiAKIHRlbXBsYXRlPD4gRnVuY3Rpb25FeGVjdXRhYmxlKiBKU0J1aWx0
aW5SZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJQcml2YXRlQ29uc3RydWN0b3I6OmluaXRpYWxpemVF
eGVjdXRhYmxlKEpTQzo6Vk0mIHZtKQpAQCAtNzMsOSArNzMsOSBAQCB0ZW1wbGF0ZTw+IEZ1bmN0
aW9uRXhlY3V0YWJsZSogSlNCdWlsdGluUmVhZGFibGVTdHJlYW1Db250cm9sbGVyUHJpdmF0ZUNv
bnN0cnVjdAogICAgIHJldHVybiByZWFkYWJsZVN0cmVhbUludGVybmFsc1ByaXZhdGVJbml0aWFs
aXplUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQ29kZUdlbmVyYXRvcih2bSk7CiB9CiAKLUpTT2Jq
ZWN0KiBjcmVhdGVSZWFkYWJsZVN0cmVhbVJlYWRlclByaXZhdGVDb25zdHJ1Y3RvcihWTSYgdm0s
IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCitKU09iamVjdCogY3JlYXRlUmVhZGFi
bGVTdHJlYW1EZWZhdWx0UmVhZGVyUHJpdmF0ZUNvbnN0cnVjdG9yKFZNJiB2bSwgSlNET01HbG9i
YWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKLSAgICByZXR1cm4gSlNCdWlsdGluUmVhZGFibGVT
dHJlYW1SZWFkZXJQcml2YXRlQ29uc3RydWN0b3I6OmNyZWF0ZSh2bSwgSlNCdWlsdGluUmVhZGFi
bGVTdHJlYW1SZWFkZXJQcml2YXRlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xv
YmFsT2JqZWN0LCBnbG9iYWxPYmplY3Qub2JqZWN0UHJvdG90eXBlKCkpLCBnbG9iYWxPYmplY3Qp
OworICAgIHJldHVybiBKU0J1aWx0aW5SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJQcml2YXRl
Q29uc3RydWN0b3I6OmNyZWF0ZSh2bSwgSlNCdWlsdGluUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVh
ZGVyUHJpdmF0ZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwg
Z2xvYmFsT2JqZWN0Lm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KTsKIH0KIAogSlNP
YmplY3QqIGNyZWF0ZVJlYWRhYmxlU3RyZWFtQ29udHJvbGxlclByaXZhdGVDb25zdHJ1Y3RvcihW
TSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9y
cy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbVByaXZhdGVD
b25zdHJ1Y3RvcnMuaAppbmRleCBlZWQwYWIyZTFkOWFiNGI2ZDFjNmNmYTM2NGE3NGMxMWVjNzhm
YjAwLi4zNmM2ZWYyNWMzMTZiN2U3YTFkY2FhNGM4YWJjZmE1M2VkOTFkYTY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0
cnVjdG9ycy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJl
YW1Qcml2YXRlQ29uc3RydWN0b3JzLmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CiAKIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVJl
YWRhYmxlU3RyZWFtQ29udHJvbGxlclByaXZhdGVDb25zdHJ1Y3RvcihKU0M6OlZNJiwgSlNET01H
bG9iYWxPYmplY3QmKTsKLUpTQzo6SlNPYmplY3QqIGNyZWF0ZVJlYWRhYmxlU3RyZWFtUmVhZGVy
UHJpdmF0ZUNvbnN0cnVjdG9yKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpOworSlNDOjpK
U09iamVjdCogY3JlYXRlUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyUHJpdmF0ZUNvbnN0cnVj
dG9yKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWls
dGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFt
ZXMuaAppbmRleCBhMjY2YWY2MDQ4NWQwYzBiNGMxMTJkZTM0MjA3YzhkYzliZjUyZGUyLi5kOGNl
NTQ4NDk2Y2MxYjFkMjBkY2VlNzA1NGU3OWJlNmNhNzlmOTRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCkBAIC05Niw3ICs5Niw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhNZWRpYVN0cmVhbSkgXAogICAgIG1hY3Jv
KE1lZGlhU3RyZWFtVHJhY2spIFwKICAgICBtYWNybyhSZWFkYWJsZVN0cmVhbSkgXAotICAgIG1h
Y3JvKFJlYWRhYmxlU3RyZWFtUmVhZGVyKSBcCisgICAgbWFjcm8oUmVhZGFibGVTdHJlYW1EZWZh
dWx0UmVhZGVyKSBcCiAgICAgbWFjcm8oUmVhZGFibGVTdHJlYW1Db250cm9sbGVyKSBcCiAgICAg
bWFjcm8oUmVxdWVzdCkgXAogICAgIG1hY3JvKFJlc3BvbnNlKSBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9mZWF0dXJlcy5qc29uIGIvU291cmNlL1dlYkNvcmUvZmVhdHVyZXMuanNvbgpp
bmRleCAyZmMyMDNkZTJlMThiYzMzOTlmZTg4ZGQwZTk5ODQ2ODNlYzM1NjU5Li42MDk3ZTgyYWRm
MzA2NTMxMzUzZDI4MDllMmExMWNjYTcwZDQ1MTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9mZWF0dXJlcy5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZlYXR1cmVzLmpzb24KQEAgLTIx
OSw3ICsyMTksNyBAQAogICAgICAgICB9LAogICAgICAgICAidXJsIjogImh0dHA6Ly93d3cudzMu
b3JnL1RSL3Jlc291cmNlLXRpbWluZy8iLAogICAgICAgICAid2Via2l0LXVybCI6ICJodHRwczov
L3dlYmtpdC5vcmcvYi82MTEzOCIsCi0gICAgICAgICJrZXl3b3JkcyI6IFsicmVzb3VyY2V0aW1p
bmciLCJyZXNvdXJjZSB0aW1pbmciLCJyc3JjIl0sIAorICAgICAgICAia2V5d29yZHMiOiBbInJl
c291cmNldGltaW5nIiwicmVzb3VyY2UgdGltaW5nIiwicnNyYyJdLAogICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiUHJvdmlkZXMgZGV0YWlsZWQgdGltaW5nIGluZm9ybWF0aW9uIHRvIEphdmFTY3Jp
cHQgZm9yIHN1Yi1yZXNvdXJjZXMgbG9hZGVkIGJ5IHRoZSBwYWdlLiIsCiAgICAgICAgICJjb250
YWN0IjogewogICAgICAgICAgICAgIm5hbWUiOiAiSm9uYXRoYW4gRGF2aXMiLApAQCAtNjc4LDcg
KzY3OCw3IEBACiAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9zdHJlYW1zLnNwZWMud2hhdHdnLm9y
Zy8jcnMiLAogICAgICAgICAid2Via2l0LXVybCI6ICJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTM4OTY3IiwKICAgICAgICAgInNwZWNpZmljYXRpb24iOiAiU3RyZWFt
cyIsCi0gICAgICAgICJjb21tZW50IjogIlRoZSBSZWFkYWJsZVN0cmVhbSBhbmQgUmVhZGFibGVT
dHJlYW1SZWFkZXIgaW50ZXJmYWNlcyBhcmUgYXZhaWxhYmxlIGJ1dCBub3QgZnVuY3Rpb25hbC4i
CisgICAgICAgICJjb21tZW50IjogIlRoZSBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCBzdXBwb3J0
IFJlYWRhYmxlU3RyZWFtQllPQlJlYWRlci4iCiAgICAgfSwKICAgICB7CiAgICAgICAgICJuYW1l
IjogIlNoYWRvdyBET00iLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGViOWZkNjEwY2RiMGQzNGM4ZjE0NTFjYzBjMTlhOTNi
MjJjMDZlMTcuLmZkYTdkNGQ2ZDM1MWExYTZmMWE4MTM0ZmVkMjM3NzI1YzIxNTNiODYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNiBAQAorMjAxNi0wNy0yNyAgUm9tYWluIEJlbGxlc3NvcnQgIDxyb21haW4u
YmVsbGVzc29ydEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgW1N0cmVhbXMgQVBJXSBSZXBsYWNl
IFJlYWRhYmxlU3RyZWFtUmVhZGVyIGJ5IFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwMTk0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZWQgUmVh
ZGFibGVTdHJlYW1SZWFkZXIgYnkgUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyIHRvIGFsaWdu
CisgICAgICAgIHdpdGggdXBkYXRlZCBTdHJlYW1zIEFQSSBzcGVjaWZpY2F0aW9uLgorCisgICAg
ICAgIE5vIGNoYW5nZSBpbiBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogc3RyZWFtcy9icmFu
ZC1jaGVja3MuaHRtbDoKKyAgICAgICAgKiBzdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1jb250cm9s
bGVyLWVycm9yLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdHJlYW1zL3JlYWRhYmxlLXN0cmVh
bS1jb250cm9sbGVyLWVycm9yLmh0bWw6CisgICAgICAgICogc3RyZWFtcy9yZWFkYWJsZS1zdHJl
YW0tZGVmYXVsdC1yZWFkZXItcmVhZC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1yZWFkZXItcmVhZC1leHBlY3RlZC50eHQuCisg
ICAgICAgICogc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tZGVmYXVsdC1yZWFkZXItcmVhZC5odG1s
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcmVhZGVy
LXJlYWQuaHRtbC4KKyAgICAgICAgKiBzdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1lcnJvci1tZXNz
YWdlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tZXJy
b3ItbWVzc2FnZXMuaHRtbDoKKyAgICAgICAgKiBzdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRh
dGlvbi9yZWFkYWJsZS1zdHJlYW0tcmVhZGVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdHJl
YW1zL3NoYWRvd2luZy1Qcm9taXNlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdHJlYW1zL3No
YWRvd2luZy1Qcm9taXNlLmh0bWw6CisKIDIwMTYtMDctMjYgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5mQGdtYWlsLmNvbT4KIAogICAgICAgICBKUyBCdWlsdC1pbnMgc2hvdWxkIHRocm93IHRoaXMt
ZXJyb3IgbWVzc2FnZXMgY29uc2lzdGVudGx5IHdpdGggYmluZGluZyBnZW5lcmF0ZWQgY29kZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9icmFuZC1jaGVja3MuaHRtbCBiL0xheW91
dFRlc3RzL3N0cmVhbXMvYnJhbmQtY2hlY2tzLmh0bWwKaW5kZXggNGJhZTM1Mzc0ODMwYjgyZWMw
NzZmOTAwY2E2ZDVhYzE2MDFkZjBmNS4uNmIyMjg5YjM4YjIyYmEyNzdiNWE2MGIwODBlMjJkZWEy
MGQzOTY3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9icmFuZC1jaGVja3MuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL2JyYW5kLWNoZWNrcy5odG1sCkBAIC01LDcgKzUs
NyBAQAogPHNjcmlwdD4KIC8vIFRoaXMgaXMgdXBkYXRlZCB0aWxsIGh0dHBzOi8vZ2l0aHViLmNv
bS93aGF0d2cvc3RyZWFtcy9jb21taXQvNGJhODYxZTZmNjBjMjQ4MDYwODExODMwZTExMjcxYzg0
YjQzOWNjMwogCi1sZXQgUmVhZGFibGVTdHJlYW1SZWFkZXIgPSAobmV3IFJlYWRhYmxlU3RyZWFt
KCkpLmdldFJlYWRlcigpLmNvbnN0cnVjdG9yOworbGV0IFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJl
YWRlciA9IChuZXcgUmVhZGFibGVTdHJlYW0oKSkuZ2V0UmVhZGVyKCkuY29uc3RydWN0b3I7CiAK
IGZ1bmN0aW9uIGZha2VXcml0YWJsZVN0cmVhbSgpIHsKICAgcmV0dXJuIHsKQEAgLTI1LDcgKzI1
LDcgQEAgZnVuY3Rpb24gcmVhbFJlYWRhYmxlU3RyZWFtKCkgewogZnVuY3Rpb24gZmFrZVJlYWRh
YmxlU3RyZWFtKCkgewogICAgIHJldHVybiB7CiAgICAgICAgIGNhbmNlbDogZnVuY3Rpb24ocmVh
c29uKSB7IHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsgfSwKLSAgICAgICAgZ2V0UmVhZGVyOiBm
dW5jdGlvbigpIHsgcmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbVJlYWRlcihuZXcgUmVhZGFibGVT
dHJlYW0oKSk7IH0sCisgICAgICAgIGdldFJlYWRlcjogZnVuY3Rpb24oKSB7IHJldHVybiBuZXcg
UmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyKG5ldyBSZWFkYWJsZVN0cmVhbSgpKTsgfSwKICAg
ICAgICAgcGlwZVRocm91Z2g6IGZ1bmN0aW9uKG9iaiwgb3B0aW9ucykgeyByZXR1cm4gb2JqLnJl
YWRhYmxlOyB9LAogICAgICAgICBwaXBlVG86IGZ1bmN0aW9uKCkgeyByZXR1cm4gUHJvbWlzZS5y
ZXNvbHZlKCk7IH0sCiAgICAgICAgIHRlZTogZnVuY3Rpb24oKSB7IHJldHVybiBbcmVhbFJlYWRh
YmxlU3RyZWFtKCksIHJlYWxSZWFkYWJsZVN0cmVhbSgpXTsgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tY29udHJvbGxlci1lcnJvci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1jb250cm9sbGVyLWVycm9y
LWV4cGVjdGVkLnR4dAppbmRleCA0MmViMzAyNGU2ZmFhNmI1OTViZGJiODlkNjlkY2FmYWI1YmZl
MzgwLi5kMmE3NWU5MmUzMTY1MzU3MTk3ZmIwNTcxYWQ0MzZkZTAzYTk3NzQ3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1jb250cm9sbGVyLWVycm9yLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1jb250
cm9sbGVyLWVycm9yLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAotUEFTUyBFcnJvcmlu
ZyBhIFJlYWRhYmxlU3RyZWFtIGFmdGVyIGNoZWNraW5nIGNsb3NlZCBzaG91bGQgcmVqZWN0IFJl
YWRhYmxlU3RyZWFtUmVhZGVyIGNsb3NlZCBwcm9taXNlIAotUEFTUyBFcnJvcmluZyBhIFJlYWRh
YmxlU3RyZWFtIGJlZm9yZSBjaGVja2luZyBjbG9zZWQgc2hvdWxkIHJlamVjdCBSZWFkYWJsZVN0
cmVhbVJlYWRlciBjbG9zZWQgcHJvbWlzZSAKK1BBU1MgRXJyb3JpbmcgYSBSZWFkYWJsZVN0cmVh
bSBhZnRlciBjaGVja2luZyBjbG9zZWQgc2hvdWxkIHJlamVjdCBSZWFkYWJsZVN0cmVhbURlZmF1
bHRSZWFkZXIgY2xvc2VkIHByb21pc2UgCitQQVNTIEVycm9yaW5nIGEgUmVhZGFibGVTdHJlYW0g
YmVmb3JlIGNoZWNraW5nIGNsb3NlZCBzaG91bGQgcmVqZWN0IFJlYWRhYmxlU3RyZWFtRGVmYXVs
dFJlYWRlciBjbG9zZWQgcHJvbWlzZSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFt
cy9yZWFkYWJsZS1zdHJlYW0tY29udHJvbGxlci1lcnJvci5odG1sIGIvTGF5b3V0VGVzdHMvc3Ry
ZWFtcy9yZWFkYWJsZS1zdHJlYW0tY29udHJvbGxlci1lcnJvci5odG1sCmluZGV4IDAwZjYxNzdm
ZjQwMjkzNzY1ODg5NjZjMmU4ZTlmOTY5N2NjMmU2OTEuLjI2YTYzNmQzN2ZmODc0MDMwNzNhMDQz
MjQ1Yjc5Nzc3MGRhYWQ2YWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFi
bGUtc3RyZWFtLWNvbnRyb2xsZXItZXJyb3IuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdHJlYW1z
L3JlYWRhYmxlLXN0cmVhbS1jb250cm9sbGVyLWVycm9yLmh0bWwKQEAgLTQsNyArNCw3IEBACiA8
c2NyaXB0PgogLy8gVGhpcyBpcyB1cGRhdGVkIHRpbGwgaHR0cHM6Ly9naXRodWIuY29tL3doYXR3
Zy9zdHJlYW1zL2NvbW1pdC80YmE4NjFlNmY2MGMyNDgwNjA4MTE4MzBlMTEyNzFjODRiNDM5Y2Mz
CiAKLXZhciB0ZXN0MSA9IGFzeW5jX3Rlc3QoJ0Vycm9yaW5nIGEgUmVhZGFibGVTdHJlYW0gYWZ0
ZXIgY2hlY2tpbmcgY2xvc2VkIHNob3VsZCByZWplY3QgUmVhZGFibGVTdHJlYW1SZWFkZXIgY2xv
c2VkIHByb21pc2UnKTsKK3ZhciB0ZXN0MSA9IGFzeW5jX3Rlc3QoJ0Vycm9yaW5nIGEgUmVhZGFi
bGVTdHJlYW0gYWZ0ZXIgY2hlY2tpbmcgY2xvc2VkIHNob3VsZCByZWplY3QgUmVhZGFibGVTdHJl
YW1EZWZhdWx0UmVhZGVyIGNsb3NlZCBwcm9taXNlJyk7CiB0ZXN0MS5zdGVwKGZ1bmN0aW9uKCkg
ewogICAgIHZhciBjb250cm9sbGVyOwogICAgIHZhciBycyA9IG5ldyBSZWFkYWJsZVN0cmVhbSh7
CkBAIC0yNCw3ICsyNCw3IEBAIHRlc3QxLnN0ZXAoZnVuY3Rpb24oKSB7CiAgICAgY29udHJvbGxl
ci5lcnJvcihyc0Vycm9yKTsKIH0pOwogCi12YXIgdGVzdDIgPSBhc3luY190ZXN0KCdFcnJvcmlu
ZyBhIFJlYWRhYmxlU3RyZWFtIGJlZm9yZSBjaGVja2luZyBjbG9zZWQgc2hvdWxkIHJlamVjdCBS
ZWFkYWJsZVN0cmVhbVJlYWRlciBjbG9zZWQgcHJvbWlzZScpOwordmFyIHRlc3QyID0gYXN5bmNf
dGVzdCgnRXJyb3JpbmcgYSBSZWFkYWJsZVN0cmVhbSBiZWZvcmUgY2hlY2tpbmcgY2xvc2VkIHNo
b3VsZCByZWplY3QgUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyIGNsb3NlZCBwcm9taXNlJyk7
CiB0ZXN0Mi5zdGVwKGZ1bmN0aW9uKCkgewogICAgIHZhciBjb250cm9sbGVyOwogICAgIHZhciBy
cyA9IG5ldyBSZWFkYWJsZVN0cmVhbSh7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1z
L3JlYWRhYmxlLXN0cmVhbS1kZWZhdWx0LXJlYWRlci1yZWFkLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLWRlZmF1bHQtcmVhZGVyLXJlYWQtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA3ZWQzMGUyNjA4OGNhYjgxYWFjMGQ2YjU4NDY4MjdlMzJmYzBk
MDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVh
bS1kZWZhdWx0LXJlYWRlci1yZWFkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKKworUEFT
UyBSZWFkaW5nIHR3aWNlIG9uIGEgc3RyZWFtIHRoYXQgZ2V0cyBjbG9zZWQgCitQQVNTIFJlYWRp
bmcgdHdpY2Ugb24gYSBjbG9zZWQgc3RyZWFtIAorUEFTUyBSZWFkaW5nIHR3aWNlIG9uIGFuIGVy
cm9yZWQgc3RyZWFtIAorUEFTUyBSZWFkaW5nIHR3aWNlIG9uIGEgc3RyZWFtIHRoYXQgZ2V0cyBl
cnJvcmVkIAorUEFTUyBSZWFkYWJsZVN0cmVhbTogaWYgc3RhcnQgcmVqZWN0cyB3aXRoIG5vIHBh
cmFtZXRlciwgaXQgc2hvdWxkIGVycm9yIHRoZSBzdHJlYW0gd2l0aCBhbiB1bmRlZmluZWQgZXJy
b3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLWRl
ZmF1bHQtcmVhZGVyLXJlYWQuaHRtbCBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3Ry
ZWFtLWRlZmF1bHQtcmVhZGVyLXJlYWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZDYxNGM0Y2M0NzYxM2Uz
NWU1NjVmMjg1YzA1YzE1M2JhYjNiNDE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
c3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tZGVmYXVsdC1yZWFkZXItcmVhZC5odG1sCkBAIC0wLDAg
KzEsMTUzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPScuLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMnPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Jy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0PgorLy8gVGhpcyBpcyB1cGRhdGVkIHRp
bGwgaHR0cHM6Ly9naXRodWIuY29tL3doYXR3Zy9zdHJlYW1zL2NvbW1pdC80YmE4NjFlNmY2MGMy
NDgwNjA4MTE4MzBlMTEyNzFjODRiNDM5Y2MzCisKK3ZhciB0ZXN0MSA9IGFzeW5jX3Rlc3QoJ1Jl
YWRpbmcgdHdpY2Ugb24gYSBzdHJlYW0gdGhhdCBnZXRzIGNsb3NlZCcpOwordGVzdDEuc3RlcChm
dW5jdGlvbigpIHsKKyAgICB2YXIgY29udHJvbGxlcjsKKyAgICB2YXIgcnMgPSBuZXcgUmVhZGFi
bGVTdHJlYW0oeworICAgICAgICBzdGFydDogZnVuY3Rpb24oYykgeworICAgICAgICAgICAgY29u
dHJvbGxlciA9IGM7CisgICAgICAgIH0KKyAgICB9KTsKKyAgICB2YXIgY291bnRlciA9IDA7Cisg
ICAgdmFyIHJlYWRlciA9IHJzLmdldFJlYWRlcigpOworCisgICAgcmVhZGVyLnJlYWQoKS50aGVu
KHRlc3QxLnN0ZXBfZnVuYyhmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgYXNzZXJ0X29iamVj
dF9lcXVhbHMocmVzdWx0LCB7IHZhbHVlOiB1bmRlZmluZWQsIGRvbmU6IHRydWUgfSwgJ3JlYWQo
KSBzaG91bGQgZnVsZmlsbCB3aXRoIGNsb3NlJyk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoKytj
b3VudGVyLCAxKTsKKyAgICB9KSk7CisgICAgcmVhZGVyLnJlYWQoKS50aGVuKHRlc3QxLnN0ZXBf
ZnVuYyhmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgYXNzZXJ0X29iamVjdF9lcXVhbHMocmVz
dWx0LCB7IHZhbHVlOiB1bmRlZmluZWQsIGRvbmU6IHRydWUgfSwgJ3JlYWQoKSBzaG91bGQgZnVs
ZmlsbCB3aXRoIGNsb3NlJyk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoKytjb3VudGVyLCAyKTsK
KyAgICB9KSk7CisgICAgcmVhZGVyLmNsb3NlZC50aGVuKHRlc3QxLnN0ZXBfZnVuYyhmdW5jdGlv
bigpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscygrK2NvdW50ZXIsIDMpOworICAgICAgICB0ZXN0
MS5kb25lKCk7CisgICAgfSkpOworCisgICAgY29udHJvbGxlci5jbG9zZSgpOworfSk7CisKK3Zh
ciB0ZXN0MiA9IGFzeW5jX3Rlc3QoJ1JlYWRpbmcgdHdpY2Ugb24gYSBjbG9zZWQgc3RyZWFtJyk7
Cit0ZXN0Mi5zdGVwKGZ1bmN0aW9uKCkgeworICAgIHZhciBjb250cm9sbGVyOworICAgIHZhciBy
cyA9IG5ldyBSZWFkYWJsZVN0cmVhbSh7CisgICAgICAgIHN0YXJ0OiBmdW5jdGlvbihjKSB7Cisg
ICAgICAgICAgICBjb250cm9sbGVyID0gYzsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgY29u
dHJvbGxlci5jbG9zZSgpOworCisgICAgdmFyIGNvdW50ZXIgPSAwOworICAgIHZhciByZWFkZXIg
PSBycy5nZXRSZWFkZXIoKTsKKworICAgIHJlYWRlci5yZWFkKCkudGhlbih0ZXN0Mi5zdGVwX2Z1
bmMoZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgIGFzc2VydF9vYmplY3RfZXF1YWxzKHJlc3Vs
dCwgeyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH0sICdyZWFkKCkgc2hvdWxkIGZ1bGZp
bGwgd2l0aCBjbG9zZScpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50ZXIsIDApOworICAg
ICAgICBjb3VudGVyKys7CisgICAgfSkpOworICAgIHJlYWRlci5yZWFkKCkudGhlbih0ZXN0Mi5z
dGVwX2Z1bmMoZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgIGFzc2VydF9vYmplY3RfZXF1YWxz
KHJlc3VsdCwgeyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH0sICdyZWFkKCkgc2hvdWxk
IGZ1bGZpbGwgd2l0aCBjbG9zZScpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50ZXIsIDEp
OworICAgICAgICBjb3VudGVyKys7CisgICAgfSkpOworICAgIHJlYWRlci5jbG9zZWQudGhlbih0
ZXN0Mi5zdGVwX2Z1bmMoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnRl
ciwgMik7CisgICAgICAgIGNvdW50ZXIrKzsKKyAgICAgICAgdGVzdDIuZG9uZSgpOworICAgIH0p
KTsKK30pOworCit2YXIgdGVzdDMgPSBhc3luY190ZXN0KCdSZWFkaW5nIHR3aWNlIG9uIGFuIGVy
cm9yZWQgc3RyZWFtJyk7Cit0ZXN0My5zdGVwKGZ1bmN0aW9uKCkgeworICAgIHZhciBjb250cm9s
bGVyOworICAgIHZhciBycyA9IG5ldyBSZWFkYWJsZVN0cmVhbSh7CisgICAgICAgIHN0YXJ0OiBm
dW5jdGlvbihjKSB7CisgICAgICAgICAgICBjb250cm9sbGVyID0gYzsKKyAgICAgICAgfQorICAg
IH0pOworCisgICAgdmFyIG15RXJyb3IgPSB7IHBvdGF0bzogIm1hc2hlZCIgfTsKKyAgICBjb250
cm9sbGVyLmVycm9yKG15RXJyb3IpOworCisgICAgdmFyIGNvdW50ZXIgPSAwOworICAgIHZhciBy
ZWFkZXIgPSBycy5nZXRSZWFkZXIoKTsKKworICAgIHJlYWRlci5yZWFkKCkudGhlbih0ZXN0My5z
dGVwX2Z1bmMoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF91bnJlYWNoZWQoJ3JlYWQoKSBz
aG91bGQgcmVqZWN0IG9uIGFuIGVycm9yZWQgc3RyZWFtJyk7CisgICAgfSksIHRlc3QzLnN0ZXBf
ZnVuYyhmdW5jdGlvbihlcnIpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhteUVycm9yLCBlcnIp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50ZXIsIDApOworICAgICAgICBjb3VudGVyKys7
CisgICAgfSkpOworICAgIHJlYWRlci5yZWFkKCkudGhlbih0ZXN0My5zdGVwX2Z1bmMoZnVuY3Rp
b24oKSB7CisgICAgICAgIGFzc2VydF91bnJlYWNoZWQoJ3JlYWQoKSBzaG91bGQgcmVqZWN0IG9u
IGFuIGVycm9yZWQgc3RyZWFtJyk7CisgICAgfSksIHRlc3QzLnN0ZXBfZnVuYyhmdW5jdGlvbihl
cnIpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhteUVycm9yLCBlcnIpOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKGNvdW50ZXIsIDEpOworICAgICAgICBjb3VudGVyKys7CisgICAgfSkpOworICAg
IHJlYWRlci5jbG9zZWQudGhlbih0ZXN0My5zdGVwX2Z1bmMoZnVuY3Rpb24oKSB7CisgICAgICAg
IGFzc2VydF91bnJlYWNoZWQoJ3JlYWQoKSBzaG91bGQgcmVqZWN0IG9uIGFuIGVycm9yZWQgc3Ry
ZWFtJyk7CisgICAgfSksIHRlc3QzLnN0ZXBfZnVuYyhmdW5jdGlvbihlcnIpIHsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhteUVycm9yLCBlcnIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50
ZXIsIDIpOworICAgICAgICBjb3VudGVyKys7CisgICAgICAgIHRlc3QzLmRvbmUoKTsKKyAgICB9
KSk7Cit9KTsKKwordmFyIHRlc3Q0ID0gYXN5bmNfdGVzdCgnUmVhZGluZyB0d2ljZSBvbiBhIHN0
cmVhbSB0aGF0IGdldHMgZXJyb3JlZCcpOwordGVzdDQuc3RlcChmdW5jdGlvbigpIHsKKyAgICB2
YXIgY29udHJvbGxlcjsKKyAgICB2YXIgcnMgPSBuZXcgUmVhZGFibGVTdHJlYW0oeworICAgICAg
ICBzdGFydDogZnVuY3Rpb24oYykgeworICAgICAgICAgICAgY29udHJvbGxlciA9IGM7CisgICAg
ICAgIH0KKyAgICB9KTsKKworICAgIHZhciBjb3VudGVyID0gMDsKKyAgICB2YXIgcmVhZGVyID0g
cnMuZ2V0UmVhZGVyKCk7CisKKyAgICByZWFkZXIucmVhZCgpLnRoZW4odGVzdDQuc3RlcF9mdW5j
KGZ1bmN0aW9uKCkgeworICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCdyZWFkKCkgc2hvdWxkIHJl
amVjdCBvbiBhbiBlcnJvcmVkIHN0cmVhbScpOworICAgIH0pLCB0ZXN0NC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZXJyKSB7CisgICAgICAgIGFzc2VydF9lcXVhbHMobXlFcnJvciwgZXJyKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscygrK2NvdW50ZXIsIDEpOworICAgIH0pKTsKKyAgICByZWFkZXIucmVh
ZCgpLnRoZW4odGVzdDQuc3RlcF9mdW5jKGZ1bmN0aW9uKCkgeworICAgICAgICBhc3NlcnRfdW5y
ZWFjaGVkKCdyZWFkKCkgc2hvdWxkIHJlamVjdCBvbiBhbiBlcnJvcmVkIHN0cmVhbScpOworICAg
IH0pLCB0ZXN0NC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXJyKSB7CisgICAgICAgIGFzc2VydF9lcXVh
bHMobXlFcnJvciwgZXJyKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscygrK2NvdW50ZXIsIDIpOwor
ICAgIH0pKTsKKyAgICByZWFkZXIuY2xvc2VkLnRoZW4odGVzdDQuc3RlcF9mdW5jKGZ1bmN0aW9u
KCkgeworICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCdyZWFkKCkgc2hvdWxkIHJlamVjdCBvbiBh
biBlcnJvcmVkIHN0cmVhbScpOworICAgIH0pLCB0ZXN0NC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXJy
KSB7CisgICAgICAgIGFzc2VydF9lcXVhbHMobXlFcnJvciwgZXJyKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscygrK2NvdW50ZXIsIDMpOworICAgICAgICB0ZXN0NC5kb25lKCk7CisgICAgfSkpOwor
CisgICAgdmFyIG15RXJyb3IgPSB7IHBvdGF0bzogJ21hc2hlZCcgfTsKKyAgICBjb250cm9sbGVy
LmVycm9yKG15RXJyb3IpOworIH0pOworCit2YXIgdGVzdDUgPSBhc3luY190ZXN0KCdSZWFkYWJs
ZVN0cmVhbTogaWYgc3RhcnQgcmVqZWN0cyB3aXRoIG5vIHBhcmFtZXRlciwgaXQgc2hvdWxkIGVy
cm9yIHRoZSBzdHJlYW0gd2l0aCBhbiB1bmRlZmluZWQgZXJyb3InKTsKK3Rlc3Q1LnN0ZXAoZnVu
Y3Rpb24oKSB7CisgICAgdmFyIHJzID0gbmV3IFJlYWRhYmxlU3RyZWFtKHsKKyAgICAgICAgc3Rh
cnQ6IGZ1bmN0aW9uKGMpIHsKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgpOwor
ICAgICAgICB9CisgICAgfSk7CisKKyAgICBycy5nZXRSZWFkZXIoKS5yZWFkKCkuY2F0Y2godGVz
dDUuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2Yg
ZSwgInVuZGVmaW5lZCIpOworICAgICAgICB0ZXN0NS5kb25lKCk7CisgICAgfSkpOworfSk7Cis8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFt
LWVycm9yLW1lc3NhZ2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFi
bGUtc3RyZWFtLWVycm9yLW1lc3NhZ2VzLWV4cGVjdGVkLnR4dAppbmRleCA5YTc3NTBjNTZiZGY5
YzBhOGY2NzZmNGFkY2E3OTE0MmFjMDExMzBmLi45NzEzOTY4ZmNkMjVjYjZkM2ZiYmU1YjFmNTA5
MDQ3NzhiM2RhZjc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0
cmVhbS1lcnJvci1tZXNzYWdlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RyZWFt
cy9yZWFkYWJsZS1zdHJlYW0tZXJyb3ItbWVzc2FnZXMtZXhwZWN0ZWQudHh0CkBAIC01LDExICs1
LDExIEBAIENPTlNPTEUgTUVTU0FHRTogbGluZSAxMTogVHlwZUVycm9yOiBDYW4gb25seSBjYWxs
IFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5lbnF1CiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTE6
IFR5cGVFcnJvcjogQ2FuIG9ubHkgY2FsbCBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuZXJyb3Ig
b24gaW5zdGFuY2VzIG9mIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlcgogQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDExOiBUeXBlRXJyb3I6IENhbiBvbmx5IGNhbGwgUmVhZGFibGVTdHJlYW1Db250cm9s
bGVyLmNsb3NlIG9uIGluc3RhbmNlcyBvZiBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIKIENPTlNP
TEUgTUVTU0FHRTogbGluZSAxMTogVHlwZUVycm9yOiBUaGUgUmVhZGFibGVTdHJlYW1Db250cm9s
bGVyLmRlc2lyZWRTaXplIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBS
ZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMTogVHlwZUVy
cm9yOiBDYW4gb25seSBjYWxsIFJlYWRhYmxlU3RyZWFtUmVhZGVyLnJlbGVhc2VMb2NrIG9uIGlu
c3RhbmNlcyBvZiBSZWFkYWJsZVN0cmVhbVJlYWRlcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEx
OiBUeXBlRXJyb3I6IENhbiBvbmx5IGNhbGwgUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLnJl
bGVhc2VMb2NrIG9uIGluc3RhbmNlcyBvZiBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIKIENP
TlNPTEUgTUVTU0FHRTogbGluZSAxODogVHlwZUVycm9yOiBDYW4gb25seSBjYWxsIFJlYWRhYmxl
U3RyZWFtLmNhbmNlbCBvbiBpbnN0YW5jZXMgb2YgUmVhZGFibGVTdHJlYW0KLUNPTlNPTEUgTUVT
U0FHRTogbGluZSAxODogVHlwZUVycm9yOiBDYW4gb25seSBjYWxsIFJlYWRhYmxlU3RyZWFtUmVh
ZGVyLmNhbmNlbCBvbiBpbnN0YW5jZXMgb2YgUmVhZGFibGVTdHJlYW1SZWFkZXIKLUNPTlNPTEUg
TUVTU0FHRTogbGluZSAxODogVHlwZUVycm9yOiBDYW4gb25seSBjYWxsIFJlYWRhYmxlU3RyZWFt
UmVhZGVyLnJlYWQgb24gaW5zdGFuY2VzIG9mIFJlYWRhYmxlU3RyZWFtUmVhZGVyCi1DT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTg6IFR5cGVFcnJvcjogVGhlIFJlYWRhYmxlU3RyZWFtUmVhZGVyLmNs
b3NlZCBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgUmVhZGFibGVTdHJl
YW1SZWFkZXIKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxODogVHlwZUVycm9yOiBDYW4gb25seSBj
YWxsIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5jYW5jZWwgb24gaW5zdGFuY2VzIG9mIFJl
YWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4OiBUeXBl
RXJyb3I6IENhbiBvbmx5IGNhbGwgUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLnJlYWQgb24g
aW5zdGFuY2VzIG9mIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlcgorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDE4OiBUeXBlRXJyb3I6IFRoZSBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuY2xv
c2VkIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBSZWFkYWJsZVN0cmVh
bURlZmF1bHRSZWFkZXIKIAotUEFTUyBFeGVyY2lzaW5nIFR5cGVFcnJvciBtZXNzYWdlcyBpbiBS
ZWFkYWJsZVN0cmVhbSwgUmVhZGFibGVTdHJlYW1Db250cm9sbGVyIGFuZCBSZWFkYWJsZVN0cmVh
bVJlYWRlciAKK1BBU1MgRXhlcmNpc2luZyBUeXBlRXJyb3IgbWVzc2FnZXMgaW4gUmVhZGFibGVT
dHJlYW0sIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciBhbmQgUmVhZGFibGVTdHJlYW1EZWZhdWx0
UmVhZGVyIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVh
bS1lcnJvci1tZXNzYWdlcy5odG1sIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJl
YW0tZXJyb3ItbWVzc2FnZXMuaHRtbAppbmRleCA3YzU4NGIyY2FiMjkwODNkYmFmNDdkY2U1ZGI2
YjQxMzA0MTZmMzZhLi5iNDcxMzM3Y2FiYTFmMzE0YjZmNjkzNGEzNDEwOWMwNDVkMGJmN2Q0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1lcnJvci1tZXNz
YWdlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLWVycm9y
LW1lc3NhZ2VzLmh0bWwKQEAgLTU5LDUgKzU5LDUgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRl
c3QpIHsKICAgICByZXN1bHRzLnB1c2gocHJpbnRQcm9taXNlR2V0dGVyRXJyb3IocmVhZGVyLCAi
Y2xvc2VkIiwgc3RyZWFtKSk7CiAKICAgICByZXR1cm4gUHJvbWlzZS5hbGwocmVzdWx0cyk7Ci19
LCAiRXhlcmNpc2luZyBUeXBlRXJyb3IgbWVzc2FnZXMgaW4gUmVhZGFibGVTdHJlYW0sIFJlYWRh
YmxlU3RyZWFtQ29udHJvbGxlciBhbmQgUmVhZGFibGVTdHJlYW1SZWFkZXIiKTsKK30sICJFeGVy
Y2lzaW5nIFR5cGVFcnJvciBtZXNzYWdlcyBpbiBSZWFkYWJsZVN0cmVhbSwgUmVhZGFibGVTdHJl
YW1Db250cm9sbGVyIGFuZCBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIiKTsKIDwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcmVhZGVy
LXJlYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0t
cmVhZGVyLXJlYWQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
N2VkMzBlMjYwODhjYWI4MWFhYzBkNmI1ODQ2ODI3ZTMyZmMwZDA5Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFi
bGUtc3RyZWFtLXJlYWRlci1yZWFkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDcg
KzAsMCBAQAotCi1QQVNTIFJlYWRpbmcgdHdpY2Ugb24gYSBzdHJlYW0gdGhhdCBnZXRzIGNsb3Nl
ZCAKLVBBU1MgUmVhZGluZyB0d2ljZSBvbiBhIGNsb3NlZCBzdHJlYW0gCi1QQVNTIFJlYWRpbmcg
dHdpY2Ugb24gYW4gZXJyb3JlZCBzdHJlYW0gCi1QQVNTIFJlYWRpbmcgdHdpY2Ugb24gYSBzdHJl
YW0gdGhhdCBnZXRzIGVycm9yZWQgCi1QQVNTIFJlYWRhYmxlU3RyZWFtOiBpZiBzdGFydCByZWpl
Y3RzIHdpdGggbm8gcGFyYW1ldGVyLCBpdCBzaG91bGQgZXJyb3IgdGhlIHN0cmVhbSB3aXRoIGFu
IHVuZGVmaW5lZCBlcnJvciAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFk
YWJsZS1zdHJlYW0tcmVhZGVyLXJlYWQuaHRtbCBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFi
bGUtc3RyZWFtLXJlYWRlci1yZWFkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDRkNjE0YzRjYzQ3NjEzZTM1ZTU2NWYyODVjMDVjMTUzYmFiM2I0MTQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFk
YWJsZS1zdHJlYW0tcmVhZGVyLXJlYWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE1MyArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPScuLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMnPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Jy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyc+PC9zY3JpcHQ+Ci08c2NyaXB0PgotLy8gVGhpcyBpcyB1cGRhdGVkIHRpbGwgaHR0
cHM6Ly9naXRodWIuY29tL3doYXR3Zy9zdHJlYW1zL2NvbW1pdC80YmE4NjFlNmY2MGMyNDgwNjA4
MTE4MzBlMTEyNzFjODRiNDM5Y2MzCi0KLXZhciB0ZXN0MSA9IGFzeW5jX3Rlc3QoJ1JlYWRpbmcg
dHdpY2Ugb24gYSBzdHJlYW0gdGhhdCBnZXRzIGNsb3NlZCcpOwotdGVzdDEuc3RlcChmdW5jdGlv
bigpIHsKLSAgICB2YXIgY29udHJvbGxlcjsKLSAgICB2YXIgcnMgPSBuZXcgUmVhZGFibGVTdHJl
YW0oewotICAgICAgICBzdGFydDogZnVuY3Rpb24oYykgewotICAgICAgICAgICAgY29udHJvbGxl
ciA9IGM7Ci0gICAgICAgIH0KLSAgICB9KTsKLSAgICB2YXIgY291bnRlciA9IDA7Ci0gICAgdmFy
IHJlYWRlciA9IHJzLmdldFJlYWRlcigpOwotCi0gICAgcmVhZGVyLnJlYWQoKS50aGVuKHRlc3Qx
LnN0ZXBfZnVuYyhmdW5jdGlvbihyZXN1bHQpIHsKLSAgICAgICAgYXNzZXJ0X29iamVjdF9lcXVh
bHMocmVzdWx0LCB7IHZhbHVlOiB1bmRlZmluZWQsIGRvbmU6IHRydWUgfSwgJ3JlYWQoKSBzaG91
bGQgZnVsZmlsbCB3aXRoIGNsb3NlJyk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoKytjb3VudGVy
LCAxKTsKLSAgICB9KSk7Ci0gICAgcmVhZGVyLnJlYWQoKS50aGVuKHRlc3QxLnN0ZXBfZnVuYyhm
dW5jdGlvbihyZXN1bHQpIHsKLSAgICAgICAgYXNzZXJ0X29iamVjdF9lcXVhbHMocmVzdWx0LCB7
IHZhbHVlOiB1bmRlZmluZWQsIGRvbmU6IHRydWUgfSwgJ3JlYWQoKSBzaG91bGQgZnVsZmlsbCB3
aXRoIGNsb3NlJyk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoKytjb3VudGVyLCAyKTsKLSAgICB9
KSk7Ci0gICAgcmVhZGVyLmNsb3NlZC50aGVuKHRlc3QxLnN0ZXBfZnVuYyhmdW5jdGlvbigpIHsK
LSAgICAgICAgYXNzZXJ0X2VxdWFscygrK2NvdW50ZXIsIDMpOwotICAgICAgICB0ZXN0MS5kb25l
KCk7Ci0gICAgfSkpOwotCi0gICAgY29udHJvbGxlci5jbG9zZSgpOwotfSk7Ci0KLXZhciB0ZXN0
MiA9IGFzeW5jX3Rlc3QoJ1JlYWRpbmcgdHdpY2Ugb24gYSBjbG9zZWQgc3RyZWFtJyk7Ci10ZXN0
Mi5zdGVwKGZ1bmN0aW9uKCkgewotICAgIHZhciBjb250cm9sbGVyOwotICAgIHZhciBycyA9IG5l
dyBSZWFkYWJsZVN0cmVhbSh7Ci0gICAgICAgIHN0YXJ0OiBmdW5jdGlvbihjKSB7Ci0gICAgICAg
ICAgICBjb250cm9sbGVyID0gYzsKLSAgICAgICAgfQotICAgIH0pOwotCi0gICAgY29udHJvbGxl
ci5jbG9zZSgpOwotCi0gICAgdmFyIGNvdW50ZXIgPSAwOwotICAgIHZhciByZWFkZXIgPSBycy5n
ZXRSZWFkZXIoKTsKLQotICAgIHJlYWRlci5yZWFkKCkudGhlbih0ZXN0Mi5zdGVwX2Z1bmMoZnVu
Y3Rpb24ocmVzdWx0KSB7Ci0gICAgICAgIGFzc2VydF9vYmplY3RfZXF1YWxzKHJlc3VsdCwgeyB2
YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH0sICdyZWFkKCkgc2hvdWxkIGZ1bGZpbGwgd2l0
aCBjbG9zZScpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50ZXIsIDApOwotICAgICAgICBj
b3VudGVyKys7Ci0gICAgfSkpOwotICAgIHJlYWRlci5yZWFkKCkudGhlbih0ZXN0Mi5zdGVwX2Z1
bmMoZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgICAgIGFzc2VydF9vYmplY3RfZXF1YWxzKHJlc3Vs
dCwgeyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH0sICdyZWFkKCkgc2hvdWxkIGZ1bGZp
bGwgd2l0aCBjbG9zZScpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50ZXIsIDEpOwotICAg
ICAgICBjb3VudGVyKys7Ci0gICAgfSkpOwotICAgIHJlYWRlci5jbG9zZWQudGhlbih0ZXN0Mi5z
dGVwX2Z1bmMoZnVuY3Rpb24oKSB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoY291bnRlciwgMik7
Ci0gICAgICAgIGNvdW50ZXIrKzsKLSAgICAgICAgdGVzdDIuZG9uZSgpOwotICAgIH0pKTsKLX0p
OwotCi12YXIgdGVzdDMgPSBhc3luY190ZXN0KCdSZWFkaW5nIHR3aWNlIG9uIGFuIGVycm9yZWQg
c3RyZWFtJyk7Ci10ZXN0My5zdGVwKGZ1bmN0aW9uKCkgewotICAgIHZhciBjb250cm9sbGVyOwot
ICAgIHZhciBycyA9IG5ldyBSZWFkYWJsZVN0cmVhbSh7Ci0gICAgICAgIHN0YXJ0OiBmdW5jdGlv
bihjKSB7Ci0gICAgICAgICAgICBjb250cm9sbGVyID0gYzsKLSAgICAgICAgfQotICAgIH0pOwot
Ci0gICAgdmFyIG15RXJyb3IgPSB7IHBvdGF0bzogIm1hc2hlZCIgfTsKLSAgICBjb250cm9sbGVy
LmVycm9yKG15RXJyb3IpOwotCi0gICAgdmFyIGNvdW50ZXIgPSAwOwotICAgIHZhciByZWFkZXIg
PSBycy5nZXRSZWFkZXIoKTsKLQotICAgIHJlYWRlci5yZWFkKCkudGhlbih0ZXN0My5zdGVwX2Z1
bmMoZnVuY3Rpb24oKSB7Ci0gICAgICAgIGFzc2VydF91bnJlYWNoZWQoJ3JlYWQoKSBzaG91bGQg
cmVqZWN0IG9uIGFuIGVycm9yZWQgc3RyZWFtJyk7Ci0gICAgfSksIHRlc3QzLnN0ZXBfZnVuYyhm
dW5jdGlvbihlcnIpIHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhteUVycm9yLCBlcnIpOwotICAg
ICAgICBhc3NlcnRfZXF1YWxzKGNvdW50ZXIsIDApOwotICAgICAgICBjb3VudGVyKys7Ci0gICAg
fSkpOwotICAgIHJlYWRlci5yZWFkKCkudGhlbih0ZXN0My5zdGVwX2Z1bmMoZnVuY3Rpb24oKSB7
Ci0gICAgICAgIGFzc2VydF91bnJlYWNoZWQoJ3JlYWQoKSBzaG91bGQgcmVqZWN0IG9uIGFuIGVy
cm9yZWQgc3RyZWFtJyk7Ci0gICAgfSksIHRlc3QzLnN0ZXBfZnVuYyhmdW5jdGlvbihlcnIpIHsK
LSAgICAgICAgYXNzZXJ0X2VxdWFscyhteUVycm9yLCBlcnIpOwotICAgICAgICBhc3NlcnRfZXF1
YWxzKGNvdW50ZXIsIDEpOwotICAgICAgICBjb3VudGVyKys7Ci0gICAgfSkpOwotICAgIHJlYWRl
ci5jbG9zZWQudGhlbih0ZXN0My5zdGVwX2Z1bmMoZnVuY3Rpb24oKSB7Ci0gICAgICAgIGFzc2Vy
dF91bnJlYWNoZWQoJ3JlYWQoKSBzaG91bGQgcmVqZWN0IG9uIGFuIGVycm9yZWQgc3RyZWFtJyk7
Ci0gICAgfSksIHRlc3QzLnN0ZXBfZnVuYyhmdW5jdGlvbihlcnIpIHsKLSAgICAgICAgYXNzZXJ0
X2VxdWFscyhteUVycm9yLCBlcnIpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50ZXIsIDIp
OwotICAgICAgICBjb3VudGVyKys7Ci0gICAgICAgIHRlc3QzLmRvbmUoKTsKLSAgICB9KSk7Ci19
KTsKLQotdmFyIHRlc3Q0ID0gYXN5bmNfdGVzdCgnUmVhZGluZyB0d2ljZSBvbiBhIHN0cmVhbSB0
aGF0IGdldHMgZXJyb3JlZCcpOwotdGVzdDQuc3RlcChmdW5jdGlvbigpIHsKLSAgICB2YXIgY29u
dHJvbGxlcjsKLSAgICB2YXIgcnMgPSBuZXcgUmVhZGFibGVTdHJlYW0oewotICAgICAgICBzdGFy
dDogZnVuY3Rpb24oYykgewotICAgICAgICAgICAgY29udHJvbGxlciA9IGM7Ci0gICAgICAgIH0K
LSAgICB9KTsKLQotICAgIHZhciBjb3VudGVyID0gMDsKLSAgICB2YXIgcmVhZGVyID0gcnMuZ2V0
UmVhZGVyKCk7Ci0KLSAgICByZWFkZXIucmVhZCgpLnRoZW4odGVzdDQuc3RlcF9mdW5jKGZ1bmN0
aW9uKCkgewotICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCdyZWFkKCkgc2hvdWxkIHJlamVjdCBv
biBhbiBlcnJvcmVkIHN0cmVhbScpOwotICAgIH0pLCB0ZXN0NC5zdGVwX2Z1bmMoZnVuY3Rpb24o
ZXJyKSB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMobXlFcnJvciwgZXJyKTsKLSAgICAgICAgYXNz
ZXJ0X2VxdWFscygrK2NvdW50ZXIsIDEpOwotICAgIH0pKTsKLSAgICByZWFkZXIucmVhZCgpLnRo
ZW4odGVzdDQuc3RlcF9mdW5jKGZ1bmN0aW9uKCkgewotICAgICAgICBhc3NlcnRfdW5yZWFjaGVk
KCdyZWFkKCkgc2hvdWxkIHJlamVjdCBvbiBhbiBlcnJvcmVkIHN0cmVhbScpOwotICAgIH0pLCB0
ZXN0NC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXJyKSB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMobXlF
cnJvciwgZXJyKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscygrK2NvdW50ZXIsIDIpOwotICAgIH0p
KTsKLSAgICByZWFkZXIuY2xvc2VkLnRoZW4odGVzdDQuc3RlcF9mdW5jKGZ1bmN0aW9uKCkgewot
ICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCdyZWFkKCkgc2hvdWxkIHJlamVjdCBvbiBhbiBlcnJv
cmVkIHN0cmVhbScpOwotICAgIH0pLCB0ZXN0NC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXJyKSB7Ci0g
ICAgICAgIGFzc2VydF9lcXVhbHMobXlFcnJvciwgZXJyKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFs
cygrK2NvdW50ZXIsIDMpOwotICAgICAgICB0ZXN0NC5kb25lKCk7Ci0gICAgfSkpOwotCi0gICAg
dmFyIG15RXJyb3IgPSB7IHBvdGF0bzogJ21hc2hlZCcgfTsKLSAgICBjb250cm9sbGVyLmVycm9y
KG15RXJyb3IpOwotIH0pOwotCi12YXIgdGVzdDUgPSBhc3luY190ZXN0KCdSZWFkYWJsZVN0cmVh
bTogaWYgc3RhcnQgcmVqZWN0cyB3aXRoIG5vIHBhcmFtZXRlciwgaXQgc2hvdWxkIGVycm9yIHRo
ZSBzdHJlYW0gd2l0aCBhbiB1bmRlZmluZWQgZXJyb3InKTsKLXRlc3Q1LnN0ZXAoZnVuY3Rpb24o
KSB7Ci0gICAgdmFyIHJzID0gbmV3IFJlYWRhYmxlU3RyZWFtKHsKLSAgICAgICAgc3RhcnQ6IGZ1
bmN0aW9uKGMpIHsKLSAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgpOwotICAgICAg
ICB9Ci0gICAgfSk7Ci0KLSAgICBycy5nZXRSZWFkZXIoKS5yZWFkKCkuY2F0Y2godGVzdDUuc3Rl
cF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgZSwgInVu
ZGVmaW5lZCIpOwotICAgICAgICB0ZXN0NS5kb25lKCk7Ci0gICAgfSkpOwotfSk7Ci08L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0
aW9uL3JlYWRhYmxlLXN0cmVhbS1yZWFkZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3Ry
ZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVhZGFibGUtc3RyZWFtLXJlYWRlci1leHBl
Y3RlZC50eHQKaW5kZXggMDhmZTI3YmYzZWNhOWFhZGZkN2U3YmQ1MjVlMTU3MWI2ZmZhNjIxNi4u
ODc0NjYzNmQ3MTZjMjdmZjcyYzhlOGQ2YjJjYmViYjc3NzQ3OTBiZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVhZGFibGUtc3RyZWFt
LXJlYWRlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2Ut
aW1wbGVtZW50YXRpb24vcmVhZGFibGUtc3RyZWFtLXJlYWRlci1leHBlY3RlZC50eHQKQEAgLTEs
MTQgKzEsMTQgQEAKIAotUEFTUyBDYW4gZ2V0IHRoZSBSZWFkYWJsZVN0cmVhbVJlYWRlciBjb25z
dHJ1Y3RvciBpbmRpcmVjdGx5IAotUEFTUyBSZWFkYWJsZVN0cmVhbVJlYWRlciBjb25zdHJ1Y3Rv
ciBzaG91bGQgZ2V0IGEgUmVhZGFibGVTdHJlYW0gb2JqZWN0IGFzIGFyZ3VtZW50IAotRkFJTCBS
ZWFkYWJsZVN0cmVhbVJlYWRlciBpbnN0YW5jZXMgc2hvdWxkIGhhdmUgdGhlIGNvcnJlY3QgbGlz
dCBvZiBwcm9wZXJ0aWVzIGFzc2VydF9lcXVhbHM6IG1ldGhvZCBzaG91bGQgYmUgbm9uLWVudW1l
cmFibGUgZXhwZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVlCi1QQVNTIFJlYWRhYmxlU3RyZWFtUmVh
ZGVyIGNsb3NlZCBzaG91bGQgYWx3YXlzIHJldHVybiB0aGUgc2FtZSBwcm9taXNlIG9iamVjdCAK
LVBBU1MgQ29uc3RydWN0aW5nIGEgUmVhZGFibGVTdHJlYW1SZWFkZXIgZGlyZWN0bHkgc2hvdWxk
IGZhaWwgaWYgdGhlIHN0cmVhbSBpcyBhbHJlYWR5IGxvY2tlZCAodmlhIGRpcmVjdCBjb25zdHJ1
Y3Rpb24pIAotUEFTUyBHZXR0aW5nIGEgUmVhZGFibGVTdHJlYW1SZWFkZXIgdmlhIGdldFJlYWRl
ciBzaG91bGQgZmFpbCBpZiB0aGUgc3RyZWFtIGlzIGFscmVhZHkgbG9ja2VkICh2aWEgZGlyZWN0
IGNvbnN0cnVjdGlvbikgCi1QQVNTIENvbnN0cnVjdGluZyBhIFJlYWRhYmxlU3RyZWFtUmVhZGVy
IGRpcmVjdGx5IHNob3VsZCBmYWlsIGlmIHRoZSBzdHJlYW0gaXMgYWxyZWFkeSBsb2NrZWQgKHZp
YSBnZXRSZWFkZXIpIAotUEFTUyBHZXR0aW5nIGEgUmVhZGFibGVTdHJlYW1SZWFkZXIgdmlhIGdl
dFJlYWRlciBzaG91bGQgZmFpbCBpZiB0aGUgc3RyZWFtIGlzIGFscmVhZHkgbG9ja2VkICh2aWEg
Z2V0UmVhZGVyKSAKLVBBU1MgQ29uc3RydWN0aW5nIGEgUmVhZGFibGVTdHJlYW1SZWFkZXIgZGly
ZWN0bHkgc2hvdWxkIGJlIE9LIGlmIHRoZSBzdHJlYW0gaXMgY2xvc2VkIAotUEFTUyBDb25zdHJ1
Y3RpbmcgYSBSZWFkYWJsZVN0cmVhbVJlYWRlciBkaXJlY3RseSBzaG91bGQgYmUgT0sgaWYgdGhl
IHN0cmVhbSBpcyBlcnJvcmVkIAorUEFTUyBDYW4gZ2V0IHRoZSBSZWFkYWJsZVN0cmVhbURlZmF1
bHRSZWFkZXIgY29uc3RydWN0b3IgaW5kaXJlY3RseSAKK1BBU1MgUmVhZGFibGVTdHJlYW1EZWZh
dWx0UmVhZGVyIGNvbnN0cnVjdG9yIHNob3VsZCBnZXQgYSBSZWFkYWJsZVN0cmVhbSBvYmplY3Qg
YXMgYXJndW1lbnQgCitGQUlMIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlciBpbnN0YW5jZXMg
c2hvdWxkIGhhdmUgdGhlIGNvcnJlY3QgbGlzdCBvZiBwcm9wZXJ0aWVzIGFzc2VydF9lcXVhbHM6
IG1ldGhvZCBzaG91bGQgYmUgbm9uLWVudW1lcmFibGUgZXhwZWN0ZWQgZmFsc2UgYnV0IGdvdCB0
cnVlCitQQVNTIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlciBjbG9zZWQgc2hvdWxkIGFsd2F5
cyByZXR1cm4gdGhlIHNhbWUgcHJvbWlzZSBvYmplY3QgCitQQVNTIENvbnN0cnVjdGluZyBhIFJl
YWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlciBkaXJlY3RseSBzaG91bGQgZmFpbCBpZiB0aGUgc3Ry
ZWFtIGlzIGFscmVhZHkgbG9ja2VkICh2aWEgZGlyZWN0IGNvbnN0cnVjdGlvbikgCitQQVNTIEdl
dHRpbmcgYSBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIgdmlhIGdldFJlYWRlciBzaG91bGQg
ZmFpbCBpZiB0aGUgc3RyZWFtIGlzIGFscmVhZHkgbG9ja2VkICh2aWEgZGlyZWN0IGNvbnN0cnVj
dGlvbikgCitQQVNTIENvbnN0cnVjdGluZyBhIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlciBk
aXJlY3RseSBzaG91bGQgZmFpbCBpZiB0aGUgc3RyZWFtIGlzIGFscmVhZHkgbG9ja2VkICh2aWEg
Z2V0UmVhZGVyKSAKK1BBU1MgR2V0dGluZyBhIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlciB2
aWEgZ2V0UmVhZGVyIHNob3VsZCBmYWlsIGlmIHRoZSBzdHJlYW0gaXMgYWxyZWFkeSBsb2NrZWQg
KHZpYSBnZXRSZWFkZXIpIAorUEFTUyBDb25zdHJ1Y3RpbmcgYSBSZWFkYWJsZVN0cmVhbURlZmF1
bHRSZWFkZXIgZGlyZWN0bHkgc2hvdWxkIGJlIE9LIGlmIHRoZSBzdHJlYW0gaXMgY2xvc2VkIAor
UEFTUyBDb25zdHJ1Y3RpbmcgYSBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIgZGlyZWN0bHkg
c2hvdWxkIGJlIE9LIGlmIHRoZSBzdHJlYW0gaXMgZXJyb3JlZCAKIFBBU1MgUmVhZGluZyBmcm9t
IGEgcmVhZGVyIGZvciBhbiBlbXB0eSBzdHJlYW0gd2lsbCB3YWl0IHVudGlsIGEgY2h1bmsgaXMg
YXZhaWxhYmxlIAogUEFTUyBjYW5jZWwoKSBvbiBhIHJlYWRlciBkb2VzIG5vdCByZWxlYXNlIHRo
ZSByZWFkZXIgCiBQQVNTIGNsb3NlZCBzaG91bGQgYmUgZnVsZmlsbGVkIGFmdGVyIHN0cmVhbSBp
cyBjbG9zZWQgKC5jbG9zZWQgYWNjZXNzIGJlZm9yZSBhY3F1aXJpbmcpIApAQCAtMTcsNiArMTcs
NiBAQCBQQVNTIE11bHRpcGxlIHJlYWRlcnMgY2FuIGFjY2VzcyB0aGUgc3RyZWFtIGluIHNlcXVl
bmNlCiBQQVNTIENhbm5vdCB1c2UgYW4gYWxyZWFkeS1yZWxlYXNlZCByZWFkZXIgdG8gdW5sb2Nr
IGEgc3RyZWFtIGFnYWluIAogUEFTUyBjYW5jZWwoKSBvbiBhIHJlbGVhc2VkIHJlYWRlciBpcyBh
IG5vLW9wIGFuZCBkb2VzIG5vdCBwYXNzIHRocm91Z2ggCiBQQVNTIEdldHRpbmcgYSBzZWNvbmQg
cmVhZGVyIGFmdGVyIGVycm9yaW5nIHRoZSBzdHJlYW0gc2hvdWxkIHN1Y2NlZWQgCi1QQVNTIEdh
cmJhZ2UtY29sbGVjdGluZyBhIFJlYWRhYmxlU3RyZWFtUmVhZGVyIHNob3VsZCBub3QgdW5sb2Nr
IGl0cyBzdHJlYW0gCi1QQVNTIFJlYWRhYmxlU3RyZWFtUmVhZGVyIGNsb3NlZCBwcm9taXNlIHNo
b3VsZCBiZSByZWplY3RlZCB3aXRoIHVuZGVmaW5lZCBpZiB0aGF0IGlzIHRoZSBlcnJvciAKK1BB
U1MgR2FyYmFnZS1jb2xsZWN0aW5nIGEgUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyIHNob3Vs
ZCBub3QgdW5sb2NrIGl0cyBzdHJlYW0gCitQQVNTIFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRl
ciBjbG9zZWQgcHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQgd2l0aCB1bmRlZmluZWQgaWYgdGhh
dCBpcyB0aGUgZXJyb3IgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0cmVhbXMvc2hhZG93
aW5nLVByb21pc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9zaGFkb3dpbmct
UHJvbWlzZS1leHBlY3RlZC50eHQKaW5kZXggNjAxNzllNjZlZmRlYWEwZDQwNjI3YTAwZGZiZDA1
M2JmN2EzZTcwYi4uMzczOGE1MTcxZWU5Y2UxNDYxODdkMjg3NTBiYzEyOWE3ZjgyNjU4YiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9zaGFkb3dpbmctUHJvbWlzZS1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9zaGFkb3dpbmctUHJvbWlzZS1leHBlY3RlZC50
eHQKQEAgLTgsNiArOCw2IEBAIFBBU1MgU3RyZWFtcyBhbmQgcHJvbWlzZXM6IHJlcGxhY2UgY2F0
Y2ggbWV0aG9kIGluIFByb21pc2UgcHJvdG90eXBlCiBQQVNTIFN0cmVhbXMgYW5kIHByb21pc2Vz
OiByZXBsYWNlIHRoZW4gbWV0aG9kIGluIHByb21pc2Ugb2JqZWN0IAogUEFTUyBTdHJlYW1zIHNo
b3VsZCBub3QgZGlyZWN0bHkgdXNlIE51bWJlciBhbmQgcmVsYXRlZCBtZXRob2RzIAogUEFTUyBT
dHJlYW1zIHNob3VsZCBub3QgZGlyZWN0bHkgdXNlIFJlYWRhYmxlU3RyZWFtIHB1YmxpYyBBUElz
IAotUEFTUyBTdHJlYW1zIHNob3VsZCBub3QgZGlyZWN0bHkgdXNlIFJlYWRhYmxlU3RyZWFtUmVh
ZGVyIHJlYWQgcHVibGljIEFQSSAKK1BBU1MgU3RyZWFtcyBzaG91bGQgbm90IGRpcmVjdGx5IHVz
ZSBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIgcmVhZCBwdWJsaWMgQVBJIAogUEFTUyBTdHJl
YW1zIHNob3VsZCBub3QgZGlyZWN0bHkgdXNlIGFycmF5IHB1YmxpYyBBUElzIAogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3NoYWRvd2luZy1Qcm9taXNlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9zdHJlYW1zL3NoYWRvd2luZy1Qcm9taXNlLmh0bWwKaW5kZXggMzNlMGZkMWFlNWFkNWU4
NzI2ZjFkNmI1NTcyMTdjODk3MzRkOWExYi4uZDgyZmU0NmRkMmMxYzFkODFkZTM4Nzk4ODM0NzFj
N2E5ZDZkMjg3YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9zaGFkb3dpbmctUHJv
bWlzZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0cmVhbXMvc2hhZG93aW5nLVByb21pc2UuaHRt
bApAQCAtMTI3LDE1ICsxMjcsMTUgQEAgdGVzdChmdW5jdGlvbigpIHsKIH0sICdTdHJlYW1zIHNo
b3VsZCBub3QgZGlyZWN0bHkgdXNlIFJlYWRhYmxlU3RyZWFtIHB1YmxpYyBBUElzJyk7CiAKIHBy
b21pc2VfdGVzdChmdW5jdGlvbigpIHsKLSAgICBjb25zdCBSZWFkYWJsZVN0cmVhbVJlYWRlciA9
IG5ldyBSZWFkYWJsZVN0cmVhbSgpLmdldFJlYWRlcigpLmNvbnN0cnVjdG9yOwotICAgIGNvbnN0
IFJlYWRhYmxlU3RyZWFtUmVhZGVyUmVhZEJhY2t1cCA9IFJlYWRhYmxlU3RyZWFtUmVhZGVyLnBy
b3RvdHlwZS5yZWFkOworICAgIGNvbnN0IFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlciA9IG5l
dyBSZWFkYWJsZVN0cmVhbSgpLmdldFJlYWRlcigpLmNvbnN0cnVjdG9yOworICAgIGNvbnN0IFJl
YWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlclJlYWRCYWNrdXAgPSBSZWFkYWJsZVN0cmVhbURlZmF1
bHRSZWFkZXIucHJvdG90eXBlLnJlYWQ7CiAKICAgICBmdW5jdGlvbiBjbGVhblRlc3QoKSB7Ci0g
ICAgICAgIFJlYWRhYmxlU3RyZWFtUmVhZGVyLnByb3RvdHlwZS5yZWFkID0gUmVhZGFibGVTdHJl
YW1SZWFkZXJSZWFkQmFja3VwOworICAgICAgICBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIu
cHJvdG90eXBlLnJlYWQgPSBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJSZWFkQmFja3VwOwog
ICAgIH0KIAogICAgIHRyeSB7Ci0gICAgICAgIFJlYWRhYmxlU3RyZWFtUmVhZGVyLnByb3RvdHlw
ZS5yZWFkID0gZnVuY3Rpb24oKSB7IGFzc2VydF91bnJlYWNoZWQoInN0cmVhbXMgc2hvdWxkIG5v
dCB1c2UgdGhpcyBSZWFkYWJsZVN0cmVhbVJlYWRlci5yZWFkIG1ldGhvZCIpOyB9OworICAgICAg
ICBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIucHJvdG90eXBlLnJlYWQgPSBmdW5jdGlvbigp
IHsgYXNzZXJ0X3VucmVhY2hlZCgic3RyZWFtcyBzaG91bGQgbm90IHVzZSB0aGlzIFJlYWRhYmxl
U3RyZWFtRGVmYXVsdFJlYWRlci5yZWFkIG1ldGhvZCIpOyB9OwogCiAgICAgICAgIFtzMSwgczJd
ID0gbmV3IFJlYWRhYmxlU3RyZWFtKHsKICAgICAgICAgICAgIHN0YXJ0OiBmdW5jdGlvbihjb250
cm9sbGVyKSB7CkBAIC0xNDgsNyArMTQ4LDcgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKCkgewog
ICAgICAgICBjbGVhblRlc3QoKTsKICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgidGVzdCBzaG91
bGQgbm90IHRocm93Iik7CiAgICAgfQotfSwgJ1N0cmVhbXMgc2hvdWxkIG5vdCBkaXJlY3RseSB1
c2UgUmVhZGFibGVTdHJlYW1SZWFkZXIgcmVhZCBwdWJsaWMgQVBJJyk7Cit9LCAnU3RyZWFtcyBz
aG91bGQgbm90IGRpcmVjdGx5IHVzZSBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIgcmVhZCBw
dWJsaWMgQVBJJyk7CiAKIHByb21pc2VfdGVzdChmdW5jdGlvbigpIHsKICAgICBjb25zdCBBcnJh
eVB1c2hCYWNrdXAgPSBBcnJheS5wcm90b3R5cGUucHVzaDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>