<?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>217457</bug_id>
          
          <creation_ts>2020-10-07 16:47:01 -0700</creation_ts>
          <short_desc>Implement Blob.stream</short_desc>
          <delta_ts>2020-10-12 12:36:49 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mek</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1695744</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-10-07 16:47:01 -0700</bug_when>
    <thetext>Implement Blob.stream</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695745</commentid>
    <comment_count>1</comment_count>
      <attachid>410801</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-10-07 16:47:54 -0700</bug_when>
    <thetext>Created attachment 410801
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695813</commentid>
    <comment_count>2</comment_count>
      <attachid>410801</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-08 00:51:10 -0700</bug_when>
    <thetext>Comment on attachment 410801
Patch

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

&gt; Source/WebCore/fileapi/Blob.cpp:266
&gt; +            controller().enqueue(m_loader-&gt;takeRawData());

This is fine as is for now.
In the future, if we have some piping operations, we might actually want to enqueue only after the first pull operation.

&gt; Source/WebCore/fileapi/Blob.cpp:275
&gt; +            controller().close();

Do we have a test case for this one?
I do not think we want to call close after error.
I would guess we could try something like: create a large blob. Try stream it and synchronously kill the network process.

&gt; Source/WebCore/fileapi/Blob.idl:46
&gt; +    [NewObject, CallWith=ScriptExecutionContext, MayThrowException] ReadableStream stream();

I think it makes sense to use CallWith=ScriptExecutionContext instead of the blob context.
Do we have a test for that though? Something like frame A creates a blob that i used by frame B to create a stream while frame A gets destroyed.
That also leads to the question whether Blob needs to be an ActiveDOMObject?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695945</commentid>
    <comment_count>3</comment_count>
      <attachid>410858</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-10-08 10:13:06 -0700</bug_when>
    <thetext>Created attachment 410858
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695956</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-10-08 10:45:00 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #2)
&gt; Comment on attachment 410801 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=410801&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/fileapi/Blob.cpp:266
&gt; &gt; +            controller().enqueue(m_loader-&gt;takeRawData());
&gt; 
&gt; This is fine as is for now.
&gt; In the future, if we have some piping operations, we might actually want to
&gt; enqueue only after the first pull operation.
&gt; 
&gt; &gt; Source/WebCore/fileapi/Blob.cpp:275
&gt; &gt; +            controller().close();
&gt; 
&gt; Do we have a test case for this one?
&gt; I do not think we want to call close after error.
&gt; I would guess we could try something like: create a large blob. Try stream
&gt; it and synchronously kill the network process.
You&apos;re right.  The test showed that we don&apos;t want this close call.

&gt; &gt; Source/WebCore/fileapi/Blob.idl:46
&gt; &gt; +    [NewObject, CallWith=ScriptExecutionContext, MayThrowException] ReadableStream stream();
&gt; 
&gt; I think it makes sense to use CallWith=ScriptExecutionContext instead of the
&gt; blob context.
&gt; Do we have a test for that though? Something like frame A creates a blob
&gt; that i used by frame B to create a stream while frame A gets destroyed.
This is indeed fine as it is.  We want the ScriptExecutionContext of the current Blob/ReadableStream.  I added a test.
&gt; That also leads to the question whether Blob needs to be an ActiveDOMObject?
I don&apos;t think so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696064</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-10-08 16:28:52 -0700</bug_when>
    <thetext>http://trac.webkit.org/r268228</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696065</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-08 16:29:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/70116459&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696981</commentid>
    <comment_count>7</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-10-12 12:36:49 -0700</bug_when>
    <thetext>*** Bug 196258 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410801</attachid>
            <date>2020-10-07 16:47:54 -0700</date>
            <delta_ts>2020-10-08 10:13:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217457-20201007164753.patch</filename>
            <type>text/plain</type>
            <size>20416</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MDc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTg2MDA0MDFlNGVlNzY5
YTg3Mjk0N2E3ZTY4OWJmNmY2NDBhOTUwZi4uNDFmYWQ0OTY3MDdiNzRkM2YyOGJhMjZlNWJjNDA2
N2FkNmNlOTM4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTEwLTA3ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVt
ZW50IEJsb2Iuc3RyZWFtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTc0NTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJdCdzIGltcGxlbWVudGVkIGluIENocm9tZSBhbmQgRmlyZWZveC4KKworICAgICAg
ICAqIE1vZHVsZXMvYXN5bmMtY2xpcGJvYXJkL0NsaXBib2FyZEl0ZW1CaW5kaW5nc0RhdGFTb3Vy
Y2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5oOgorICAgICAgICAo
V2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChBZGRUb0luY2x1ZGVzRm9ySURMVHlwZSk6Cisg
ICAgICAgICogZmlsZWFwaS9CbG9iLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJsb2I6OnN0cmVh
bSk6CisgICAgICAgICogZmlsZWFwaS9CbG9iLmg6CisgICAgICAgICogZmlsZWFwaS9CbG9iLmlk
bDoKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsZVJlYWRlckxvYWRlcjo6RmlsZVJlYWRlckxvYWRlcik6CisgICAgICAgIChXZWJD
b3JlOjpGaWxlUmVhZGVyTG9hZGVyOjp0YWtlUmF3RGF0YSk6CisgICAgICAgICogZmlsZWFwaS9G
aWxlUmVhZGVyTG9hZGVyLmg6CisgICAgICAgICogZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyQ2xp
ZW50Lmg6CisKIDIwMjAtMTAtMDYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CiAKICAgICAgICAgUmVuYW1lIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
dG8gTWVkaWFQbGF5ZXJJZGVudGlmaWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FzeW5jLWNsaXBib2FyZC9DbGlwYm9hcmRJdGVtQmluZGluZ3NEYXRhU291cmNlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FzeW5jLWNsaXBib2FyZC9DbGlwYm9hcmRJdGVtQmluZGlu
Z3NEYXRhU291cmNlLmgKaW5kZXggM2E5MDc2N2ZiZjc3NmM0NWQ4NDdlM2MwMTA5ZTg2YTJkMjcz
ZTQyMS4uZTg0ZmJjMzNjNWMyMmM4ZTQ3ZDk5MDdjMGRhYmZiZTdiY2Q0MGRkNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJkSXRlbUJp
bmRpbmdzRGF0YVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXN5bmMtY2xp
cGJvYXJkL0NsaXBib2FyZEl0ZW1CaW5kaW5nc0RhdGFTb3VyY2UuaApAQCAtNTUsNyArNTUsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgaW52b2tlQ29tcGxldGlvbkhhbmRsZXIoKTsKIAogICAgIHVz
aW5nIEJ1ZmZlck9yU3RyaW5nID0gVmFyaWFudDxTdHJpbmcsIFJlZjxTaGFyZWRCdWZmZXI+PjsK
LSAgICBjbGFzcyBDbGlwYm9hcmRJdGVtVHlwZUxvYWRlciA6IHB1YmxpYyBGaWxlUmVhZGVyTG9h
ZGVyQ2xpZW50LCBwdWJsaWMgUmVmQ291bnRlZDxDbGlwYm9hcmRJdGVtVHlwZUxvYWRlcj4sIHB1
YmxpYyBDYW5NYWtlV2Vha1B0cjxDbGlwYm9hcmRJdGVtVHlwZUxvYWRlcj4geworICAgIGNsYXNz
IENsaXBib2FyZEl0ZW1UeXBlTG9hZGVyIDogcHVibGljIEZpbGVSZWFkZXJMb2FkZXJDbGllbnQs
IHB1YmxpYyBSZWZDb3VudGVkPENsaXBib2FyZEl0ZW1UeXBlTG9hZGVyPiB7CiAgICAgcHVibGlj
OgogICAgICAgICBzdGF0aWMgUmVmPENsaXBib2FyZEl0ZW1UeXBlTG9hZGVyPiBjcmVhdGUoY29u
c3QgU3RyaW5nJiB0eXBlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1JlYWRhYmxlU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0
cmVhbS5oCmluZGV4IDM4MTQxM2UwYzQyNDhmMjBkOWZhN2ZiMTJlOGNjMWYwMDdkZWU5NTYuLjY1
ZmU5ZDcyODA3OGI2Y2I3NzcxMTc1YjZlNjFkMDY1ODBhMDczOGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uaApAQCAtODQsNCArODQsOSBAQCBpbmxpbmUg
SlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBSZWFkYWJsZVN0cgogICAgIHJldHVybiBzdHJlYW0gPyBzdHJlYW0tPnJlYWRhYmxlU3Ry
ZWFtKCkgOiBKU0M6OmpzVW5kZWZpbmVkKCk7CiB9CiAKK2lubGluZSBKU0M6OkpTVmFsdWUgdG9K
U05ld2x5Q3JlYXRlZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNET01HbG9iYWxPYmplY3QqLCBS
ZWY8UmVhZGFibGVTdHJlYW0+JiYgc3RyZWFtKQoreworICAgIHJldHVybiBzdHJlYW0tPnJlYWRh
YmxlU3RyZWFtKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggMWU1YWI1ODU1ZGU2ODdhYWRjZGNmMzhlYTdl
OTExY2ZlZjlhZGEwNS4uYWM2YTMyOTIxOGZhODY1NDBmNjE1NTZiNGNkNTc2Mzc5NTljNWFhOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0KQEAgLTYzMyw2ICs2MzMsMTEgQEAgc3ViIEFkZFRvSW5jbHVkZXNGb3JJRExUeXBlCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoJHR5cGUtPm5hbWUgZXEgIlJlYWRhYmxl
U3RyZWFtIikgeworICAgICAgICBBZGRUb0luY2x1ZGVzKCJSZWFkYWJsZVN0cmVhbS5oIiwgJGlu
Y2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAog
ICAgIGlmICgkdHlwZS0+bmFtZSBlcSAiWFBhdGhOU1Jlc29sdmVyIikgewogICAgICAgICBBZGRU
b0luY2x1ZGVzKCJKU1hQYXRoTlNSZXNvbHZlci5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9u
YWwpOwogICAgICAgICBBZGRUb0luY2x1ZGVzKCJKU0RPTUNvbnZlcnRYUGF0aE5TUmVzb2x2ZXIu
aCIsICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2ZpbGVhcGkvQmxvYi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwCmlu
ZGV4IGY1YmMzY2E3MjY5NjRkNjE2ZTAwZmU2MjE5YjRhNWNiODlhZGFkZjguLjAxYjgwZDVlNzJm
YjhjZTAwZTI5ODdhOWMzZWZmM2Y4NTQxNGI4MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvQmxvYi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmNwcApA
QCAtMzcsNiArMzcsOCBAQAogI2luY2x1ZGUgIkJsb2JVUkwuaCIKICNpbmNsdWRlICJGaWxlLmgi
CiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJSZWFkYWJsZVN0
cmVhbS5oIgorI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtU291cmNlLmgiCiAjaW5jbHVkZSAiU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1
ZGUgIlRocmVhZGFibGVCbG9iUmVnaXN0cnkuaCIKQEAgLTIzNiw2ICsyMzgsNDkgQEAgdm9pZCBC
bG9iOjphcnJheUJ1ZmZlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmIHAKICAgICB9KTsKIH0KIAorRXhjZXB0aW9uT3I8UmVmPFJlYWRhYmxl
U3RyZWFtPj4gQmxvYjo6c3RyZWFtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpCit7CisgICAgY2xhc3MgQmxvYlN0cmVhbVNvdXJjZSA6IHB1YmxpYyBGaWxl
UmVhZGVyTG9hZGVyQ2xpZW50LCBwdWJsaWMgUmVhZGFibGVTdHJlYW1Tb3VyY2UgeworICAgIHB1
YmxpYzoKKyAgICAgICAgQmxvYlN0cmVhbVNvdXJjZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0LCBCbG9iJiBibG9iKQorICAgICAgICAgICAgOiBtX2xvYWRl
cihtYWtlVW5pcXVlUmVmPEZpbGVSZWFkZXJMb2FkZXI+KEZpbGVSZWFkZXJMb2FkZXI6OlJlYWRU
eXBlOjpSZWFkQXNBcnJheUJ1ZmZlciwgdGhpcykpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1f
bG9hZGVyLT5zdGFydCgmc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgYmxvYik7CisgICAgICAgIH0K
KworICAgIHByaXZhdGU6CisgICAgICAgIC8vIFJlYWRhYmxlU3RyZWFtU291cmNlCisgICAgICAg
IHZvaWQgc2V0QWN0aXZlKCkgZmluYWwgeyB9CisgICAgICAgIHZvaWQgc2V0SW5hY3RpdmUoKSBm
aW5hbCB7IH0KKyAgICAgICAgdm9pZCBkb1N0YXJ0KCkgZmluYWwgeyB9CisgICAgICAgIHZvaWQg
ZG9QdWxsKCkgZmluYWwgeyB9CisgICAgICAgIHZvaWQgZG9DYW5jZWwoKSBmaW5hbAorICAgICAg
ICB7CisgICAgICAgICAgICBtX2xvYWRlci0+Y2FuY2VsKCk7CisgICAgICAgIH0KKworICAgICAg
ICAvLyBGaWxlUmVhZGVyTG9hZGVyQ2xpZW50CisgICAgICAgIHZvaWQgZGlkU3RhcnRMb2FkaW5n
KCkgZmluYWwgeyB9CisgICAgICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoKSBmaW5hbAorICAgICAg
ICB7CisgICAgICAgICAgICBjb250cm9sbGVyKCkuZW5xdWV1ZShtX2xvYWRlci0+dGFrZVJhd0Rh
dGEoKSk7CisgICAgICAgIH0KKyAgICAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKCkgZmluYWwK
KyAgICAgICAgeworICAgICAgICAgICAgY29udHJvbGxlcigpLmNsb3NlKCk7CisgICAgICAgIH0K
KyAgICAgICAgdm9pZCBkaWRGYWlsKEV4Y2VwdGlvbkNvZGUgZXhjZXB0aW9uKSBmaW5hbAorICAg
ICAgICB7CisgICAgICAgICAgICBjb250cm9sbGVyKCkuZXJyb3IoRXhjZXB0aW9uIHsgZXhjZXB0
aW9uIH0pOworICAgICAgICAgICAgY29udHJvbGxlcigpLmNsb3NlKCk7CisgICAgICAgIH0KKwor
ICAgICAgICBVbmlxdWVSZWY8RmlsZVJlYWRlckxvYWRlcj4gbV9sb2FkZXI7CisgICAgfTsKKwor
ICAgIHJldHVybiBSZWFkYWJsZVN0cmVhbTo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0
LmV4ZWNTdGF0ZSgpLCBhZG9wdFJlZigqbmV3IEJsb2JTdHJlYW1Tb3VyY2Uoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCwgKnRoaXMpKSk7Cit9CisKICNpZiBBU1NFUlRfRU5BQkxFRAogYm9vbCBCbG9i
Ojppc05vcm1hbGl6ZWRDb250ZW50VHlwZShjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmggYi9Tb3VyY2UvV2ViQ29y
ZS9maWxlYXBpL0Jsb2IuaAppbmRleCAzMDE4MTE3YmI1MTI2ZjI2OWRkOThlOTA4ZjAwMWY3MWU0
ZTNlNDg4Li45MzRhZmNhMjgyN2QzZGEwOTljNjBhYzBlYzk0NWI0YjdlM2Y5M2Y3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9m
aWxlYXBpL0Jsb2IuaApAQCAtNTAsOSArNTAsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgQmxvYjsKIGNsYXNzIEJsb2JMb2FkZXI7CiBjbGFzcyBEZWZlcnJlZFByb21pc2U7CitjbGFz
cyBSZWFkYWJsZVN0cmVhbTsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBT
aGFyZWRCdWZmZXI7CiAKK3RlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKKwog
dXNpbmcgQmxvYlBhcnRWYXJpYW50ID0gVmFyaWFudDxSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlclZp
ZXc+LCBSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4sIFJlZlB0cjxCbG9iPiwgU3RyaW5nPjsKIAog
Y2xhc3MgQmxvYiA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBVUkxSZWdpc3RyYWJs
ZSwgcHVibGljIFJlZkNvdW50ZWQ8QmxvYj4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QgewpAQCAt
MTIzLDYgKzEyNiw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdGV4dChTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CiAgICAgdm9pZCBhcnJheUJ1ZmZlcihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CisgICAgRXhj
ZXB0aW9uT3I8UmVmPFJlYWRhYmxlU3RyZWFtPj4gc3RyZWFtKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmKTsKIAogcHJvdGVjdGVkOgogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IEJsb2IoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFw
aS9CbG9iLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5pZGwKaW5kZXggNzlmMzkz
MDA5NzZhZjRjYjdlNmRkNjVmMmJmZWMyMDhhYTA1MmYwZC4uNDM0OWNjOWQ5MTIyYTI2YmM4NDJi
ZWNiYjJlZmU5ZTc5YjFmMDRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9C
bG9iLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuaWRsCkBAIC00Myw3ICs0
Myw3IEBAIHR5cGVkZWYgKEJ1ZmZlclNvdXJjZSBvciBCbG9iIG9yIFVTVlN0cmluZykgQmxvYlBh
cnQ7CiAKICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gQmxvYiBzbGljZShv
cHRpb25hbCBsb25nIGxvbmcgc3RhcnQgPSAwLCBvcHRpb25hbCBsb25nIGxvbmcgZW5kID0gMHg3
RkZGRkZGRkZGRkZGRkZGLCBvcHRpb25hbCBET01TdHJpbmcgY29udGVudFR5cGUgPSAiIik7CiAK
LSAgICAvLyBbTmV3T2JqZWN0XSBSZWFkYWJsZVN0cmVhbSBzdHJlYW0oKTsKKyAgICBbTmV3T2Jq
ZWN0LCBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbl0g
UmVhZGFibGVTdHJlYW0gc3RyZWFtKCk7CiAgICAgW05ld09iamVjdCwgQ2FsbFdpdGg9U2NyaXB0
RXhlY3V0aW9uQ29udGV4dF0gUHJvbWlzZTxVU1ZTdHJpbmc+IHRleHQoKTsKICAgICBbTmV3T2Jq
ZWN0LCBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBQcm9taXNlPEFycmF5QnVmZmVy
PiBhcnJheUJ1ZmZlcigpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
RmlsZVJlYWRlckxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJM
b2FkZXIuY3BwCmluZGV4IGNjNGNiMzFmNTdmYTRhMmY2YWRhMDQ0Y2IxMzc1YTc1OGZjNmFhMDku
LjQ0ZTEyMDg0NWY2MmE3OWRhNzg4NTYxM2I3ZDg1OThjNTRhNGE5YWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcApAQCAtNTYsNyArNTYsNyBAQCBjb25z
dCBpbnQgZGVmYXVsdEJ1ZmZlckxlbmd0aCA9IDMyNzY4OwogCiBGaWxlUmVhZGVyTG9hZGVyOjpG
aWxlUmVhZGVyTG9hZGVyKFJlYWRUeXBlIHJlYWRUeXBlLCBGaWxlUmVhZGVyTG9hZGVyQ2xpZW50
KiBjbGllbnQpCiAgICAgOiBtX3JlYWRUeXBlKHJlYWRUeXBlKQotICAgICwgbV9jbGllbnQoY2xp
ZW50KQorICAgICwgbV9jbGllbnQobWFrZVdlYWtQdHIoY2xpZW50KSkKICAgICAsIG1faXNSYXdE
YXRhQ29udmVydGVkKGZhbHNlKQogICAgICwgbV9zdHJpbmdSZXN1bHQoZW1wdHlTdHJpbmcoKSkK
ICAgICAsIG1fdmFyaWFibGVMZW5ndGgoZmFsc2UpCkBAIC0yNzksNiArMjc5LDExIEBAIFJlZlB0
cjxBcnJheUJ1ZmZlcj4gRmlsZVJlYWRlckxvYWRlcjo6YXJyYXlCdWZmZXJSZXN1bHQoKSBjb25z
dAogICAgIHJldHVybiBBcnJheUJ1ZmZlcjo6Y3JlYXRlKCptX3Jhd0RhdGEpOwogfQogCitSZWZQ
dHI8SlNDOjpBcnJheUJ1ZmZlcj4gRmlsZVJlYWRlckxvYWRlcjo6dGFrZVJhd0RhdGEoKQorewor
ICAgIHJldHVybiBzdGQ6OmV4Y2hhbmdlKG1fcmF3RGF0YSwgbnVsbHB0cik7Cit9CisKIFN0cmlu
ZyBGaWxlUmVhZGVyTG9hZGVyOjpzdHJpbmdSZXN1bHQoKQogewogICAgIEFTU0VSVChtX3JlYWRU
eXBlICE9IFJlYWRBc0FycmF5QnVmZmVyICYmIG1fcmVhZFR5cGUgIT0gUmVhZEFzQmxvYik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5oCmluZGV4IGUzZjQ2NjJmODVk
MGYzZjdiZDU0YzJhZWVkYzdkMWVlZmQxMmEwZWIuLjcyZjFiZGRhN2Y2YzcyNjI5NjE1Mjk1Mjli
N2NjZGY5YzQzYzcxNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJl
YWRlckxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRl
ci5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiVGhyZWFkYWJsZUxvYWRlckNsaWVudC5o
IgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+Cisj
aW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAogbmFtZXNwYWNlIEpTQyB7CkBAIC03OCw2ICs3OSw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JF
X0VYUE9SVCBSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4gYXJyYXlCdWZmZXJSZXN1bHQoKSBjb25z
dDsKICAgICB1bnNpZ25lZCBieXRlc0xvYWRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYnl0ZXNMb2Fk
ZWQ7IH0KICAgICB1bnNpZ25lZCB0b3RhbEJ5dGVzKCkgY29uc3QgeyByZXR1cm4gbV90b3RhbEJ5
dGVzOyB9CisgICAgUmVmUHRyPEpTQzo6QXJyYXlCdWZmZXI+IHRha2VSYXdEYXRhKCk7CiAgICAg
T3B0aW9uYWw8RXhjZXB0aW9uQ29kZT4gZXJyb3JDb2RlKCkgY29uc3QgeyByZXR1cm4gbV9lcnJv
ckNvZGU7IH0KIAogICAgIHZvaWQgc2V0RW5jb2RpbmcoY29uc3QgU3RyaW5nJik7CkBAIC05OCw3
ICsxMDAsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBFeGNlcHRpb25Db2RlIHRvRXJyb3JDb2Rl
KEJsb2JSZXNvdXJjZUhhbmRsZTo6RXJyb3IpOwogCiAgICAgUmVhZFR5cGUgbV9yZWFkVHlwZTsK
LSAgICBGaWxlUmVhZGVyTG9hZGVyQ2xpZW50KiBtX2NsaWVudDsKKyAgICBXZWFrUHRyPEZpbGVS
ZWFkZXJMb2FkZXJDbGllbnQ+IG1fY2xpZW50OwogICAgIFRleHRFbmNvZGluZyBtX2VuY29kaW5n
OwogICAgIFN0cmluZyBtX2RhdGFUeXBlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9m
aWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
RmlsZVJlYWRlckxvYWRlckNsaWVudC5oCmluZGV4IGM2M2JjNjg5NDJmZDRjZThiYWUzOWRiOGQ0
NjBlYmM3YmVhYTFhNmYuLmJmZjNlMzZkYzI2ZDUxZWU4Mjk0MmFmMDA0NDg3ZDgyZjQ4ZTdkMzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlckNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlckNsaWVudC5o
CkBAIC0zMSwxMCArMzEsMTEgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotY2xhc3MgRmlsZVJlYWRlckxvYWRlckNsaWVudCB7CitjbGFzcyBGaWxlUmVhZGVyTG9hZGVy
Q2xpZW50IDogcHVibGljIENhbk1ha2VXZWFrUHRyPEZpbGVSZWFkZXJMb2FkZXJDbGllbnQ+IHsK
IHB1YmxpYzoKICAgICB2aXJ0dWFsIH5GaWxlUmVhZGVyTG9hZGVyQ2xpZW50KCkgPSBkZWZhdWx0
OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA3OTVkYjBkYzA4NGYyMDZlYjk5
ZDM3ZDIxMDAwMzE3MDk0ZDJiZTFlLi44Yjc0YzA5MDFjMGVjYWQyM2NhYTgwMmRjMzZhZTYxZDFk
OTVlZjRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAyMC0xMC0wNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgor
CisgICAgICAgIEltcGxlbWVudCBCbG9iLnN0cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NDU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvRmlsZUFQSS9ibG9i
L0Jsb2Itc3RyZWFtLmFueS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL0ZpbGVBUEkvYmxvYi9CbG9iLXN0cmVhbS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvRmlsZUFQSS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvRmlsZUFQSS9pZGxoYXJuZXNzLndvcmtl
ci1leHBlY3RlZC50eHQ6CisKIDIwMjAtMTAtMDYgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBGaWxlUmVhZGVyIHNob3VsZCB0cmFuc2l0aW9u
IHRvIHJlYWR5U3RhdGUgRE9ORSBhZnRlciBsYXN0IG9ucHJvZ3Jlc3MgZXZlbnQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvRmlsZUFQSS9i
bG9iL0Jsb2Itc3RyZWFtLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkvYmxvYi9CbG9iLXN0cmVhbS5hbnktZXhwZWN0
ZWQudHh0CmluZGV4IDJhYWNlMDU0ZmVhNDE0ZDAwYmM0ZjEwZWUzMjYyZjY4ZTczNTY4NmMuLmFi
YjZjN2ZlNWNmYmNkZmM1ZjQ1OGMwZGE4OGYzZGVkMDJhZGI0OTUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvRmlsZUFQSS9ibG9iL0Jsb2It
c3RyZWFtLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9GaWxlQVBJL2Jsb2IvQmxvYi1zdHJlYW0uYW55LWV4cGVjdGVkLnR4
dApAQCAtMSw2ICsxLDYgQEAKIAotRkFJTCBCbG9iLnN0cmVhbSgpIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogYmxvYi5zdHJl
YW0gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnYmxvYi5zdHJlYW0oKScsICdibG9iLnN0cmVhbScg
aXMgdW5kZWZpbmVkKSIKLUZBSUwgQmxvYi5zdHJlYW0oKSBlbXB0eSBCbG9iIHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogYmxv
Yi5zdHJlYW0gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnYmxvYi5zdHJlYW0oKScsICdibG9iLnN0
cmVhbScgaXMgdW5kZWZpbmVkKSIKLUZBSUwgQmxvYi5zdHJlYW0oKSBub24tdW5pY29kZSBpbnB1
dCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJU
eXBlRXJyb3I6IGJsb2Iuc3RyZWFtIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2Jsb2Iuc3RyZWFt
KCknLCAnYmxvYi5zdHJlYW0nIGlzIHVuZGVmaW5lZCkiCi1GQUlMIEJsb2Iuc3RyZWFtKCkgZ2Fy
YmFnZSBjb2xsZWN0aW9uIG9mIGJsb2Igc2hvdWxkbid0IGJyZWFrIHN0cmVhbWNvbnN1bXB0aW9u
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5
cGVFcnJvcjogYmxvYi5zdHJlYW0gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnYmxvYi5zdHJlYW0o
KScsICdibG9iLnN0cmVhbScgaXMgdW5kZWZpbmVkKSIKK1BBU1MgQmxvYi5zdHJlYW0oKQorUEFT
UyBCbG9iLnN0cmVhbSgpIGVtcHR5IEJsb2IKK1BBU1MgQmxvYi5zdHJlYW0oKSBub24tdW5pY29k
ZSBpbnB1dAorUEFTUyBCbG9iLnN0cmVhbSgpIGdhcmJhZ2UgY29sbGVjdGlvbiBvZiBibG9iIHNo
b3VsZG4ndCBicmVhayBzdHJlYW1jb25zdW1wdGlvbgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkvYmxvYi9CbG9iLXN0cmVh
bS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvRmlsZUFQSS9ibG9iL0Jsb2Itc3RyZWFtLmFueS53b3JrZXItZXhwZWN0
ZWQudHh0CmluZGV4IDJhYWNlMDU0ZmVhNDE0ZDAwYmM0ZjEwZWUzMjYyZjY4ZTczNTY4NmMuLmFi
YjZjN2ZlNWNmYmNkZmM1ZjQ1OGMwZGE4OGYzZGVkMDJhZGI0OTUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvRmlsZUFQSS9ibG9iL0Jsb2It
c3RyZWFtLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvRmlsZUFQSS9ibG9iL0Jsb2Itc3RyZWFtLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogCi1GQUlMIEJsb2Iuc3RyZWFtKCkgcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVy
cm9yOiBibG9iLnN0cmVhbSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdibG9iLnN0cmVhbSgpJywg
J2Jsb2Iuc3RyZWFtJyBpcyB1bmRlZmluZWQpIgotRkFJTCBCbG9iLnN0cmVhbSgpIGVtcHR5IEJs
b2IgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAi
VHlwZUVycm9yOiBibG9iLnN0cmVhbSBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdibG9iLnN0cmVh
bSgpJywgJ2Jsb2Iuc3RyZWFtJyBpcyB1bmRlZmluZWQpIgotRkFJTCBCbG9iLnN0cmVhbSgpIG5v
bi11bmljb2RlIGlucHV0IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIlR5cGVFcnJvcjogYmxvYi5zdHJlYW0gaXMgbm90IGEgZnVuY3Rpb24uIChJ
biAnYmxvYi5zdHJlYW0oKScsICdibG9iLnN0cmVhbScgaXMgdW5kZWZpbmVkKSIKLUZBSUwgQmxv
Yi5zdHJlYW0oKSBnYXJiYWdlIGNvbGxlY3Rpb24gb2YgYmxvYiBzaG91bGRuJ3QgYnJlYWsgc3Ry
ZWFtY29uc3VtcHRpb24gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IG9iamVjdCAiVHlwZUVycm9yOiBibG9iLnN0cmVhbSBpcyBub3QgYSBmdW5jdGlvbi4gKElu
ICdibG9iLnN0cmVhbSgpJywgJ2Jsb2Iuc3RyZWFtJyBpcyB1bmRlZmluZWQpIgorUEFTUyBCbG9i
LnN0cmVhbSgpCitQQVNTIEJsb2Iuc3RyZWFtKCkgZW1wdHkgQmxvYgorUEFTUyBCbG9iLnN0cmVh
bSgpIG5vbi11bmljb2RlIGlucHV0CitQQVNTIEJsb2Iuc3RyZWFtKCkgZ2FyYmFnZSBjb2xsZWN0
aW9uIG9mIGJsb2Igc2hvdWxkbid0IGJyZWFrIHN0cmVhbWNvbnN1bXB0aW9uCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvRmlsZUFQSS9p
ZGxoYXJuZXNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvRmlsZUFQSS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dAppbmRleCBhNjE2YWI1
MDM0NDU2ODY4ZTdiY2QwNjJlN2EzZjgyYmMyMTZmYmQ1Li4zZmY1MjY5MTliNWYzNGQzODhlOTM3
ODdjNzFhZmFiNWI2Yjg3ZjQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkvaWRsaGFybmVzcy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9GaWxlQVBJL2lkbGhh
cm5lc3MtZXhwZWN0ZWQudHh0CkBAIC0xNSw3ICsxNSw3IEBAIFBBU1MgQmxvYiBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdz
IEBACiBQQVNTIEJsb2IgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc2l6ZQogUEFTUyBCbG9iIGludGVy
ZmFjZTogYXR0cmlidXRlIHR5cGUKIFBBU1MgQmxvYiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzbGlj
ZShvcHRpb25hbCBsb25nIGxvbmcsIG9wdGlvbmFsIGxvbmcgbG9uZywgb3B0aW9uYWwgRE9NU3Ry
aW5nKQotRkFJTCBCbG9iIGludGVyZmFjZTogb3BlcmF0aW9uIHN0cmVhbSgpIGFzc2VydF9vd25f
cHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBv
cGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgInN0cmVhbSIgbWlzc2luZworUEFTUyBCbG9iIGlu
dGVyZmFjZTogb3BlcmF0aW9uIHN0cmVhbSgpCiBQQVNTIEJsb2IgaW50ZXJmYWNlOiBvcGVyYXRp
b24gdGV4dCgpCiBQQVNTIEJsb2IgaW50ZXJmYWNlOiBvcGVyYXRpb24gYXJyYXlCdWZmZXIoKQog
UEFTUyBCbG9iIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmV3IEJsb2IoWyJURVNUIl0p
CkBAIC0yNCw3ICsyNCw3IEBAIFBBU1MgQmxvYiBpbnRlcmZhY2U6IG5ldyBCbG9iKFsiVEVTVCJd
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNpemUiIHdpdGggdGhlIHByCiBQQVNTIEJsb2IgaW50
ZXJmYWNlOiBuZXcgQmxvYihbIlRFU1QiXSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0eXBlIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBCbG9iIGludGVyZmFjZTogbmV3IEJsb2IoWyJURVNU
Il0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2xpY2Uob3B0aW9uYWwgbG9uZyBsb25nLCBvcHRp
b25hbCBsb25nIGxvbmcsIG9wdGlvbmFsIERPTVN0cmluZykiIHdpdGggdGhlIHByb3BlciB0eXBl
CiBQQVNTIEJsb2IgaW50ZXJmYWNlOiBjYWxsaW5nIHNsaWNlKG9wdGlvbmFsIGxvbmcgbG9uZywg
b3B0aW9uYWwgbG9uZyBsb25nLCBvcHRpb25hbCBET01TdHJpbmcpIG9uIG5ldyBCbG9iKFsiVEVT
VCJdKSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yCi1GQUlMIEJs
b2IgaW50ZXJmYWNlOiBuZXcgQmxvYihbIlRFU1QiXSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJz
dHJlYW0oKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAi
c3RyZWFtIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitQQVNTIEJsb2IgaW50ZXJmYWNl
OiBuZXcgQmxvYihbIlRFU1QiXSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzdHJlYW0oKSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUKIFBBU1MgQmxvYiBpbnRlcmZhY2U6IG5ldyBCbG9iKFsiVEVTVCJd
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInRleHQoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKIFBB
U1MgQmxvYiBpbnRlcmZhY2U6IG5ldyBCbG9iKFsiVEVTVCJdKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImFycmF5QnVmZmVyKCkiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIEZpbGUgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdApAQCAtNDMs
NyArNDMsNyBAQCBQQVNTIEJsb2IgaW50ZXJmYWNlOiBuZXcgRmlsZShbIm15RmlsZUJpdHMiXSwg
Im15RmlsZU5hbWUiKSBtdXN0IGluaGVyaXQgcHJvcGVydAogUEFTUyBCbG9iIGludGVyZmFjZTog
bmV3IEZpbGUoWyJteUZpbGVCaXRzIl0sICJteUZpbGVOYW1lIikgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJ0eXBlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBCbG9iIGludGVyZmFjZTogbmV3
IEZpbGUoWyJteUZpbGVCaXRzIl0sICJteUZpbGVOYW1lIikgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJzbGljZShvcHRpb25hbCBsb25nIGxvbmcsIG9wdGlvbmFsIGxvbmcgbG9uZywgb3B0aW9uYWwg
RE9NU3RyaW5nKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKIFBBU1MgQmxvYiBpbnRlcmZhY2U6IGNh
bGxpbmcgc2xpY2Uob3B0aW9uYWwgbG9uZyBsb25nLCBvcHRpb25hbCBsb25nIGxvbmcsIG9wdGlv
bmFsIERPTVN0cmluZykgb24gbmV3IEZpbGUoWyJteUZpbGVCaXRzIl0sICJteUZpbGVOYW1lIikg
d2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvcgotRkFJTCBCbG9iIGlu
dGVyZmFjZTogbmV3IEZpbGUoWyJteUZpbGVCaXRzIl0sICJteUZpbGVOYW1lIikgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJzdHJlYW0oKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVy
aXRzOiBwcm9wZXJ0eSAic3RyZWFtIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitQQVNT
IEJsb2IgaW50ZXJmYWNlOiBuZXcgRmlsZShbIm15RmlsZUJpdHMiXSwgIm15RmlsZU5hbWUiKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgInN0cmVhbSgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFT
UyBCbG9iIGludGVyZmFjZTogbmV3IEZpbGUoWyJteUZpbGVCaXRzIl0sICJteUZpbGVOYW1lIikg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0ZXh0KCkiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNT
IEJsb2IgaW50ZXJmYWNlOiBuZXcgRmlsZShbIm15RmlsZUJpdHMiXSwgIm15RmlsZU5hbWUiKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgImFycmF5QnVmZmVyKCkiIHdpdGggdGhlIHByb3BlciB0eXBl
CiBQQVNTIEZpbGVMaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBvYmplY3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvRmlsZUFQSS9pZGxoYXJuZXNzLndvcmtlci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkvaWRsaGFy
bmVzcy53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGFlN2E2OWYzMWYxN2U0YzFhM2U5ODAwZjk3
MGI3YTlkMmIyYTg2YjcuLjEwZGRlM2RlZTgzZDk5ZTFmMDNmMmU4YmY5YzQ2YzUxMzQ5NmFmZGYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
RmlsZUFQSS9pZGxoYXJuZXNzLndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9GaWxlQVBJL2lkbGhhcm5lc3Mud29ya2Vy
LWV4cGVjdGVkLnR4dApAQCAtMTMsNyArMTMsNyBAQCBQQVNTIEJsb2IgaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQAog
UEFTUyBCbG9iIGludGVyZmFjZTogYXR0cmlidXRlIHNpemUKIFBBU1MgQmxvYiBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSB0eXBlCiBQQVNTIEJsb2IgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2xpY2Uob3B0
aW9uYWwgbG9uZyBsb25nLCBvcHRpb25hbCBsb25nIGxvbmcsIG9wdGlvbmFsIERPTVN0cmluZykK
LUZBSUwgQmxvYiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzdHJlYW0oKSBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0
aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJzdHJlYW0iIG1pc3NpbmcKK1BBU1MgQmxvYiBpbnRlcmZh
Y2U6IG9wZXJhdGlvbiBzdHJlYW0oKQogUEFTUyBCbG9iIGludGVyZmFjZTogb3BlcmF0aW9uIHRl
eHQoKQogUEFTUyBCbG9iIGludGVyZmFjZTogb3BlcmF0aW9uIGFycmF5QnVmZmVyKCkKIFBBU1Mg
QmxvYiBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9mIG5ldyBCbG9iKFsiVEVTVCJdKQpAQCAt
MjIsNyArMjIsNyBAQCBQQVNTIEJsb2IgaW50ZXJmYWNlOiBuZXcgQmxvYihbIlRFU1QiXSkgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJzaXplIiB3aXRoIHRoZSBwcgogUEFTUyBCbG9iIGludGVyZmFj
ZTogbmV3IEJsb2IoWyJURVNUIl0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidHlwZSIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUKIFBBU1MgQmxvYiBpbnRlcmZhY2U6IG5ldyBCbG9iKFsiVEVTVCJdKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgInNsaWNlKG9wdGlvbmFsIGxvbmcgbG9uZywgb3B0aW9uYWwg
bG9uZyBsb25nLCBvcHRpb25hbCBET01TdHJpbmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFT
UyBCbG9iIGludGVyZmFjZTogY2FsbGluZyBzbGljZShvcHRpb25hbCBsb25nIGxvbmcsIG9wdGlv
bmFsIGxvbmcgbG9uZywgb3B0aW9uYWwgRE9NU3RyaW5nKSBvbiBuZXcgQmxvYihbIlRFU1QiXSkg
d2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvcgotRkFJTCBCbG9iIGlu
dGVyZmFjZTogbmV3IEJsb2IoWyJURVNUIl0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic3RyZWFt
KCkiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgInN0cmVh
bSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorUEFTUyBCbG9iIGludGVyZmFjZTogbmV3
IEJsb2IoWyJURVNUIl0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic3RyZWFtKCkiIHdpdGggdGhl
IHByb3BlciB0eXBlCiBQQVNTIEJsb2IgaW50ZXJmYWNlOiBuZXcgQmxvYihbIlRFU1QiXSkgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJ0ZXh0KCkiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIEJs
b2IgaW50ZXJmYWNlOiBuZXcgQmxvYihbIlRFU1QiXSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJh
cnJheUJ1ZmZlcigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBGaWxlIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKQEAgLTQxLDcgKzQx
LDcgQEAgUEFTUyBCbG9iIGludGVyZmFjZTogbmV3IEZpbGUoWyJteUZpbGVCaXRzIl0sICJteUZp
bGVOYW1lIikgbXVzdCBpbmhlcml0IHByb3BlcnQKIFBBU1MgQmxvYiBpbnRlcmZhY2U6IG5ldyBG
aWxlKFsibXlGaWxlQml0cyJdLCAibXlGaWxlTmFtZSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
dHlwZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKIFBBU1MgQmxvYiBpbnRlcmZhY2U6IG5ldyBGaWxl
KFsibXlGaWxlQml0cyJdLCAibXlGaWxlTmFtZSIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2xp
Y2Uob3B0aW9uYWwgbG9uZyBsb25nLCBvcHRpb25hbCBsb25nIGxvbmcsIG9wdGlvbmFsIERPTVN0
cmluZykiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIEJsb2IgaW50ZXJmYWNlOiBjYWxsaW5n
IHNsaWNlKG9wdGlvbmFsIGxvbmcgbG9uZywgb3B0aW9uYWwgbG9uZyBsb25nLCBvcHRpb25hbCBE
T01TdHJpbmcpIG9uIG5ldyBGaWxlKFsibXlGaWxlQml0cyJdLCAibXlGaWxlTmFtZSIpIHdpdGgg
dG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IKLUZBSUwgQmxvYiBpbnRlcmZh
Y2U6IG5ldyBGaWxlKFsibXlGaWxlQml0cyJdLCAibXlGaWxlTmFtZSIpIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAic3RyZWFtKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czog
cHJvcGVydHkgInN0cmVhbSIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorUEFTUyBCbG9i
IGludGVyZmFjZTogbmV3IEZpbGUoWyJteUZpbGVCaXRzIl0sICJteUZpbGVOYW1lIikgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJzdHJlYW0oKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKIFBBU1MgQmxv
YiBpbnRlcmZhY2U6IG5ldyBGaWxlKFsibXlGaWxlQml0cyJdLCAibXlGaWxlTmFtZSIpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAidGV4dCgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBCbG9i
IGludGVyZmFjZTogbmV3IEZpbGUoWyJteUZpbGVCaXRzIl0sICJteUZpbGVOYW1lIikgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJhcnJheUJ1ZmZlcigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFT
UyBGaWxlTGlzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZh
Y2Ugb2JqZWN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410858</attachid>
            <date>2020-10-08 10:13:06 -0700</date>
            <delta_ts>2020-10-08 10:17:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217457-20201008101305.patch</filename>
            <type>text/plain</type>
            <size>23144</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2ODE4MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIwLTEwLTA4ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IEJsb2Iuc3RyZWFtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc0NTcKKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAg
ICAgIEl0J3MgaW1wbGVtZW50ZWQgaW4gQ2hyb21lIGFuZCBGaXJlZm94LgorCisgICAgICAgICog
TW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJkSXRlbUJpbmRpbmdzRGF0YVNvdXJjZS5o
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmg6CisgICAgICAgIChXZWJD
b3JlOjp0b0pTTmV3bHlDcmVhdGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEFkZFRvSW5jbHVkZXNGb3JJRExUeXBlKToKKyAgICAg
ICAgKiBmaWxlYXBpL0Jsb2IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmxvYjo6c3RyZWFtKToK
KyAgICAgICAgKiBmaWxlYXBpL0Jsb2IuaDoKKyAgICAgICAgKiBmaWxlYXBpL0Jsb2IuaWRsOgor
ICAgICAgICAqIGZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxlUmVhZGVyTG9hZGVyOjpGaWxlUmVhZGVyTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVSZWFkZXJMb2FkZXI6OnRha2VSYXdEYXRhKToKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVS
ZWFkZXJMb2FkZXIuaDoKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXJDbGllbnQu
aDoKKwogMjAyMC0xMC0wOCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtMRkNdW0lGQ10gVXNpbmcgdGhlIG1peHR1cmUgb2YgTGF5b3V0VW5pdCBhbmQgSW5saW5l
TGF5b3V0VW5pdCB0eXBlcyBjYXVzZXMgQVNTRVJUKHZlcnRpY2FsR2FwID49IDApCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FzeW5jLWNsaXBib2FyZC9DbGlwYm9hcmRJdGVtQmluZGlu
Z3NEYXRhU291cmNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hc3lu
Yy1jbGlwYm9hcmQvQ2xpcGJvYXJkSXRlbUJpbmRpbmdzRGF0YVNvdXJjZS5oCShyZXZpc2lvbiAy
NjgxODEpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FzeW5jLWNsaXBib2FyZC9DbGlwYm9h
cmRJdGVtQmluZGluZ3NEYXRhU291cmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDcgKzU1LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGludm9rZUNvbXBsZXRpb25IYW5kbGVyKCk7CiAKICAgICB1
c2luZyBCdWZmZXJPclN0cmluZyA9IFZhcmlhbnQ8U3RyaW5nLCBSZWY8U2hhcmVkQnVmZmVyPj47
Ci0gICAgY2xhc3MgQ2xpcGJvYXJkSXRlbVR5cGVMb2FkZXIgOiBwdWJsaWMgRmlsZVJlYWRlckxv
YWRlckNsaWVudCwgcHVibGljIFJlZkNvdW50ZWQ8Q2xpcGJvYXJkSXRlbVR5cGVMb2FkZXI+LCBw
dWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q2xpcGJvYXJkSXRlbVR5cGVMb2FkZXI+IHsKKyAgICBjbGFz
cyBDbGlwYm9hcmRJdGVtVHlwZUxvYWRlciA6IHB1YmxpYyBGaWxlUmVhZGVyTG9hZGVyQ2xpZW50
LCBwdWJsaWMgUmVmQ291bnRlZDxDbGlwYm9hcmRJdGVtVHlwZUxvYWRlcj4gewogICAgIHB1Ymxp
YzoKICAgICAgICAgc3RhdGljIFJlZjxDbGlwYm9hcmRJdGVtVHlwZUxvYWRlcj4gY3JlYXRlKGNv
bnN0IFN0cmluZyYgdHlwZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogICAgICAgICB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFk
YWJsZVN0cmVhbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Jl
YWRhYmxlU3RyZWFtLmgJKHJldmlzaW9uIDI2ODE4MSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1JlYWRhYmxlU3RyZWFtLmgJKHdvcmtpbmcgY29weSkKQEAgLTg0LDQgKzg0LDkgQEAg
aW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6SlNHbG9iYWxPYgogICAgIHJldHVybiBzdHJl
YW0gPyBzdHJlYW0tPnJlYWRhYmxlU3RyZWFtKCkgOiBKU0M6OmpzVW5kZWZpbmVkKCk7CiB9CiAK
K2lubGluZSBKU0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNET01HbG9iYWxPYmplY3QqLCBSZWY8UmVhZGFibGVTdHJlYW0+JiYgc3RyZWFtKQorewor
ICAgIHJldHVybiBzdHJlYW0tPnJlYWRhYmxlU3RyZWFtKCk7Cit9CisKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShy
ZXZpc2lvbiAyNjgxODEpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5KQpAQCAtNjMzLDYgKzYzMywxMSBAQCBzdWIgQWRk
VG9JbmNsdWRlc0ZvcklETFR5cGUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmICgk
dHlwZS0+bmFtZSBlcSAiUmVhZGFibGVTdHJlYW0iKSB7CisgICAgICAgIEFkZFRvSW5jbHVkZXMo
IlJlYWRhYmxlU3RyZWFtLmgiLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKICAgICBpZiAoJHR5cGUtPm5hbWUgZXEgIlhQYXRoTlNSZXNvbHZl
ciIpIHsKICAgICAgICAgQWRkVG9JbmNsdWRlcygiSlNYUGF0aE5TUmVzb2x2ZXIuaCIsICRpbmNs
dWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKICAgICAgICAgQWRkVG9JbmNsdWRlcygiSlNET01Db252
ZXJ0WFBhdGhOU1Jlc29sdmVyLmgiLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2ZpbGVhcGkvQmxvYi5jcHAJKHJldmlzaW9uIDI2ODE4MSkKKysrIFNvdXJjZS9XZWJD
b3JlL2ZpbGVhcGkvQmxvYi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDggQEAKICNp
bmNsdWRlICJCbG9iVVJMLmgiCiAjaW5jbHVkZSAiRmlsZS5oIgogI2luY2x1ZGUgIkpTRE9NUHJv
bWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiUmVhZGFibGVTdHJlYW0uaCIKKyNpbmNsdWRlICJS
ZWFkYWJsZVN0cmVhbVNvdXJjZS5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlQmxvYlJl
Z2lzdHJ5LmgiCkBAIC0yMzYsNiArMjM4LDQ4IEBAIHZvaWQgQmxvYjo6YXJyYXlCdWZmZXIoU2Ny
aXB0RXhlY3V0aW9uQ28KICAgICB9KTsKIH0KIAorRXhjZXB0aW9uT3I8UmVmPFJlYWRhYmxlU3Ry
ZWFtPj4gQmxvYjo6c3RyZWFtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQpCit7CisgICAgY2xhc3MgQmxvYlN0cmVhbVNvdXJjZSA6IHB1YmxpYyBGaWxlUmVh
ZGVyTG9hZGVyQ2xpZW50LCBwdWJsaWMgUmVhZGFibGVTdHJlYW1Tb3VyY2UgeworICAgIHB1Ymxp
YzoKKyAgICAgICAgQmxvYlN0cmVhbVNvdXJjZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0LCBCbG9iJiBibG9iKQorICAgICAgICAgICAgOiBtX2xvYWRlciht
YWtlVW5pcXVlUmVmPEZpbGVSZWFkZXJMb2FkZXI+KEZpbGVSZWFkZXJMb2FkZXI6OlJlYWRUeXBl
OjpSZWFkQXNBcnJheUJ1ZmZlciwgdGhpcykpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fbG9h
ZGVyLT5zdGFydCgmc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgYmxvYik7CisgICAgICAgIH0KKwor
ICAgIHByaXZhdGU6CisgICAgICAgIC8vIFJlYWRhYmxlU3RyZWFtU291cmNlCisgICAgICAgIHZv
aWQgc2V0QWN0aXZlKCkgZmluYWwgeyB9CisgICAgICAgIHZvaWQgc2V0SW5hY3RpdmUoKSBmaW5h
bCB7IH0KKyAgICAgICAgdm9pZCBkb1N0YXJ0KCkgZmluYWwgeyB9CisgICAgICAgIHZvaWQgZG9Q
dWxsKCkgZmluYWwgeyB9CisgICAgICAgIHZvaWQgZG9DYW5jZWwoKSBmaW5hbAorICAgICAgICB7
CisgICAgICAgICAgICBtX2xvYWRlci0+Y2FuY2VsKCk7CisgICAgICAgIH0KKworICAgICAgICAv
LyBGaWxlUmVhZGVyTG9hZGVyQ2xpZW50CisgICAgICAgIHZvaWQgZGlkU3RhcnRMb2FkaW5nKCkg
ZmluYWwgeyB9CisgICAgICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoKSBmaW5hbAorICAgICAgICB7
CisgICAgICAgICAgICBjb250cm9sbGVyKCkuZW5xdWV1ZShtX2xvYWRlci0+dGFrZVJhd0RhdGEo
KSk7CisgICAgICAgIH0KKyAgICAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKCkgZmluYWwKKyAg
ICAgICAgeworICAgICAgICAgICAgY29udHJvbGxlcigpLmNsb3NlKCk7CisgICAgICAgIH0KKyAg
ICAgICAgdm9pZCBkaWRGYWlsKEV4Y2VwdGlvbkNvZGUgZXhjZXB0aW9uKSBmaW5hbAorICAgICAg
ICB7CisgICAgICAgICAgICBjb250cm9sbGVyKCkuZXJyb3IoRXhjZXB0aW9uIHsgZXhjZXB0aW9u
IH0pOworICAgICAgICB9CisKKyAgICAgICAgVW5pcXVlUmVmPEZpbGVSZWFkZXJMb2FkZXI+IG1f
bG9hZGVyOworICAgIH07CisKKyAgICByZXR1cm4gUmVhZGFibGVTdHJlYW06OmNyZWF0ZSgqc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5leGVjU3RhdGUoKSwgYWRvcHRSZWYoKm5ldyBCbG9iU3RyZWFt
U291cmNlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsICp0aGlzKSkpOworfQorCiAjaWYgQVNTRVJU
X0VOQUJMRUQKIGJvb2wgQmxvYjo6aXNOb3JtYWxpemVkQ29udGVudFR5cGUoY29uc3QgU3RyaW5n
JiBjb250ZW50VHlwZSkKIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5oCShyZXZpc2lvbiAyNjgx
ODEpCisrKyBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuaAkod29ya2luZyBjb3B5KQpAQCAt
NTAsOSArNTAsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQmxvYjsKIGNsYXNzIEJs
b2JMb2FkZXI7CiBjbGFzcyBEZWZlcnJlZFByb21pc2U7CitjbGFzcyBSZWFkYWJsZVN0cmVhbTsK
IGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiAKK3Rl
bXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKKwogdXNpbmcgQmxvYlBhcnRWYXJp
YW50ID0gVmFyaWFudDxSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlclZpZXc+LCBSZWZQdHI8SlNDOjpB
cnJheUJ1ZmZlcj4sIFJlZlB0cjxCbG9iPiwgU3RyaW5nPjsKIAogY2xhc3MgQmxvYiA6IHB1Ymxp
YyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBVUkxSZWdpc3RyYWJsZSwgcHVibGljIFJlZkNvdW50
ZWQ8QmxvYj4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QgewpAQCAtMTIzLDYgKzEyNiw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgdGV4dChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPERlZmVy
cmVkUHJvbWlzZT4mJik7CiAgICAgdm9pZCBhcnJheUJ1ZmZlcihTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CisgICAgRXhjZXB0aW9uT3I8UmVmPFJlYWRh
YmxlU3RyZWFtPj4gc3RyZWFtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKIAogcHJvdGVjdGVk
OgogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IEJsb2IoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCopOwpJbmRleDogU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuaWRsCShyZXZpc2lvbiAyNjgxODEpCisrKyBT
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0
Myw3IEBAIHR5cGVkZWYgKEJ1ZmZlclNvdXJjZSBvciBCbG9iIG9yIFVTVlN0cmkKIAogICAgIFtD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBCbG9iIHNsaWNlKG9wdGlvbmFsIGxvbmcg
bG9uZyBzdGFydCA9IDAsIG9wdGlvbmFsIGxvbmcgbG9uZyBlbmQgPSAweDdGRkZGRkZGRkZGRkZG
RkYsIG9wdGlvbmFsIERPTVN0cmluZyBjb250ZW50VHlwZSA9ICIiKTsKIAotICAgIC8vIFtOZXdP
YmplY3RdIFJlYWRhYmxlU3RyZWFtIHN0cmVhbSgpOworICAgIFtOZXdPYmplY3QsIENhbGxXaXRo
PVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIE1heVRocm93RXhjZXB0aW9uXSBSZWFkYWJsZVN0cmVh
bSBzdHJlYW0oKTsKICAgICBbTmV3T2JqZWN0LCBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250
ZXh0XSBQcm9taXNlPFVTVlN0cmluZz4gdGV4dCgpOwogICAgIFtOZXdPYmplY3QsIENhbGxXaXRo
PVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIFByb21pc2U8QXJyYXlCdWZmZXI+IGFycmF5QnVmZmVy
KCk7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIu
Y3BwCShyZXZpc2lvbiAyNjgxODEpCisrKyBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFk
ZXJMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1Niw3IEBAIGNvbnN0IGludCBk
ZWZhdWx0QnVmZmVyTGVuZ3RoID0gMzI3Njg7CiAKIEZpbGVSZWFkZXJMb2FkZXI6OkZpbGVSZWFk
ZXJMb2FkZXIoUmVhZFR5cGUgcmVhZFR5cGUsIEZpbGVSZWFkZXJMb2FkZXJDbGllbnQqIGNsaWVu
dCkKICAgICA6IG1fcmVhZFR5cGUocmVhZFR5cGUpCi0gICAgLCBtX2NsaWVudChjbGllbnQpCisg
ICAgLCBtX2NsaWVudChtYWtlV2Vha1B0cihjbGllbnQpKQogICAgICwgbV9pc1Jhd0RhdGFDb252
ZXJ0ZWQoZmFsc2UpCiAgICAgLCBtX3N0cmluZ1Jlc3VsdChlbXB0eVN0cmluZygpKQogICAgICwg
bV92YXJpYWJsZUxlbmd0aChmYWxzZSkKQEAgLTI3OSw2ICsyNzksMTEgQEAgUmVmUHRyPEFycmF5
QnVmZmVyPiBGaWxlUmVhZGVyTG9hZGVyOjphcgogICAgIHJldHVybiBBcnJheUJ1ZmZlcjo6Y3Jl
YXRlKCptX3Jhd0RhdGEpOwogfQogCitSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4gRmlsZVJlYWRl
ckxvYWRlcjo6dGFrZVJhd0RhdGEoKQoreworICAgIHJldHVybiBzdGQ6OmV4Y2hhbmdlKG1fcmF3
RGF0YSwgbnVsbHB0cik7Cit9CisKIFN0cmluZyBGaWxlUmVhZGVyTG9hZGVyOjpzdHJpbmdSZXN1
bHQoKQogewogICAgIEFTU0VSVChtX3JlYWRUeXBlICE9IFJlYWRBc0FycmF5QnVmZmVyICYmIG1f
cmVhZFR5cGUgIT0gUmVhZEFzQmxvYik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Zp
bGVSZWFkZXJMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Zp
bGVSZWFkZXJMb2FkZXIuaAkocmV2aXNpb24gMjY4MTgxKQorKysgU291cmNlL1dlYkNvcmUvZmls
ZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAK
ICNpbmNsdWRlICJUaHJlYWRhYmxlTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKQEAg
LTc4LDYgKzc5LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxKU0M6OkFy
cmF5QnVmZmVyPiBhcnJheUJ1ZmZlclJlc3VsdCgpIGNvbnN0OwogICAgIHVuc2lnbmVkIGJ5dGVz
TG9hZGVkKCkgY29uc3QgeyByZXR1cm4gbV9ieXRlc0xvYWRlZDsgfQogICAgIHVuc2lnbmVkIHRv
dGFsQnl0ZXMoKSBjb25zdCB7IHJldHVybiBtX3RvdGFsQnl0ZXM7IH0KKyAgICBSZWZQdHI8SlND
OjpBcnJheUJ1ZmZlcj4gdGFrZVJhd0RhdGEoKTsKICAgICBPcHRpb25hbDxFeGNlcHRpb25Db2Rl
PiBlcnJvckNvZGUoKSBjb25zdCB7IHJldHVybiBtX2Vycm9yQ29kZTsgfQogCiAgICAgdm9pZCBz
ZXRFbmNvZGluZyhjb25zdCBTdHJpbmcmKTsKQEAgLTk4LDcgKzEwMCw3IEBAIHByaXZhdGU6CiAg
ICAgc3RhdGljIEV4Y2VwdGlvbkNvZGUgdG9FcnJvckNvZGUoQmxvYlJlc291cmNlSGFuZGxlOjpF
cnJvcik7CiAKICAgICBSZWFkVHlwZSBtX3JlYWRUeXBlOwotICAgIEZpbGVSZWFkZXJMb2FkZXJD
bGllbnQqIG1fY2xpZW50OworICAgIFdlYWtQdHI8RmlsZVJlYWRlckxvYWRlckNsaWVudD4gbV9j
bGllbnQ7CiAgICAgVGV4dEVuY29kaW5nIG1fZW5jb2Rpbmc7CiAgICAgU3RyaW5nIG1fZGF0YVR5
cGU7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlckNsaWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRl
ckNsaWVudC5oCShyZXZpc2lvbiAyNjgxODEpCisrKyBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Zp
bGVSZWFkZXJMb2FkZXJDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsMTAgKzMxLDExIEBA
CiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlIDx3
dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEZpbGVSZWFkZXJM
b2FkZXJDbGllbnQgeworY2xhc3MgRmlsZVJlYWRlckxvYWRlckNsaWVudCA6IHB1YmxpYyBDYW5N
YWtlV2Vha1B0cjxGaWxlUmVhZGVyTG9hZGVyQ2xpZW50PiB7CiBwdWJsaWM6CiAgICAgdmlydHVh
bCB+RmlsZVJlYWRlckxvYWRlckNsaWVudCgpID0gZGVmYXVsdDsKIApJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gMjY4MTgxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMjAtMTAtMDggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgQmxvYi5zdHJlYW0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzQ1NworCisgICAgICAgIFJl
dmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBmYXN0L2ZpbGVzL2Jsb2Itc3Ry
ZWFtLWVycm9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlcy9ibG9i
LXN0cmVhbS1lcnJvci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzL2Jsb2Itc3Ry
ZWFtLWZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlcy9ibG9i
LXN0cmVhbS1mcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzL3Jlc291cmNl
cy9ibG9iLXN0cmVhbS1pZnJhbWUuaHRtbDogQWRkZWQuCisKIDIwMjAtMTAtMDggIFBlciBBcm5l
IFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gRGVueSBhY2Nl
c3MgdG8gcGVyZm9ybWFuY2UgYW5hbHlzaXMgc2VydmljZSBpbiB0aGUgV2ViQ29udGVudCBwcm9j
ZXNzCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL2Jsb2Itc3RyZWFtLWVycm9yLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL2Jsb2Itc3RyZWFt
LWVycm9yLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zp
bGVzL2Jsb2Itc3RyZWFtLWVycm9yLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDIgQEAKK0FMRVJUOiBQQVNTCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZmlsZXMvYmxv
Yi1zdHJlYW0tZXJyb3IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZpbGVz
L2Jsb2Itc3RyZWFtLWVycm9yLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9maWxlcy9ibG9iLXN0cmVhbS1lcnJvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MzUgQEAKKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKKyAgICB9CisgICAgYXN5bmMgZnVuY3Rpb24gcmVhZFVudGlsRXJyb3Ioc3RyZWFtKSB7Cisg
ICAgICAgIGNvbnN0IHJlYWRlciA9IHN0cmVhbS5nZXRSZWFkZXIoKTsKKyAgICAgICAgdHJ5IHsK
KyAgICAgICAgICAgIGxldCByZWFkX3ZhbHVlID0gYXdhaXQgcmVhZGVyLnJlYWQoKTsKKyAgICAg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cudGVzdFJ1bm5lci50ZXJtaW5h
dGVOZXR3b3JrUHJvY2VzcykgeworICAgICAgICAgICAgICAgIGFsZXJ0KCJGQUlMIC0gc3VjY2Vz
c2Z1bGx5IHJlYWQgZnJvbSBzdHJlYW0iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgLy8gV2ViS2l0TGVnYWN5IGNhbid0IHRlcm1pbmF0ZSB0aGUgbmV0d29yayBwcm9j
ZXNzLgorICAgICAgICAgICAgICAgIGFsZXJ0KCJQQVNTIik7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoZSkgewor
ICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy50ZXN0UnVubmVyLnRl
cm1pbmF0ZU5ldHdvcmtQcm9jZXNzKSB7CisgICAgICAgICAgICAgICAgYWxlcnQoIlBBU1MiKTsK
KyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYWxlcnQoIkZBSUwgLSBlcnJv
ciB3aXRob3V0IHRlcm1pbmF0aW5nIG5ldHdvcmsgcHJvY2VzcyIpOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cisg
ICAgdmFyIGIgPSBuZXcgQmxvYihbMSwgMiwgM10pOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
ciAmJiB3aW5kb3cudGVzdFJ1bm5lci50ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcykgeworICAgICAg
ICB0ZXN0UnVubmVyLnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CisgICAgfQorICAgIHJlYWRV
bnRpbEVycm9yKGIuc3RyZWFtKCkpOworPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2ZpbGVzL2Jsb2Itc3RyZWFtLWZyYW1lLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2ZpbGVzL2Jsb2Itc3RyZWFtLWZyYW1lLWV4cGVjdGVkLnR4dAkobm9uZXhp
c3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL2Jsb2Itc3RyZWFtLWZyYW1lLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIgQEAKK0FMRVJUOiBQQVNTCisKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZmlsZXMvYmxvYi1zdHJlYW0tZnJhbWUuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL2Jsb2Itc3RyZWFtLWZyYW1lLmh0bWwJKG5v
bmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9ibG9iLXN0cmVhbS1mcmFtZS5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTUgQEAKKzxzY3JpcHQ+CisgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAg
ICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgd2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbihldmVudCkgeworICAgICAgICBldmVudC5k
YXRhLnN0cmVhbSgpLmdldFJlYWRlcigpLnJlYWQoKS50aGVuKGZ1bmN0aW9uKHsgZG9uZSwgdmFs
dWUgfSkgeworICAgICAgICAgICAgYWxlcnQoU3RyaW5nLmZyb21DaGFyQ29kZSh2YWx1ZVswXSkg
PT0gIjciID8gIlBBU1MiIDogIkZBSUwiKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICAgICAgfQorICAgICAgICB9KTsKKyAgICB9KTsKKzwvc2NyaXB0PgorPGlmcmFtZSBzcmM9InJl
c291cmNlcy9ibG9iLXN0cmVhbS1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2ZpbGVzL3Jlc291cmNlcy9ibG9iLXN0cmVhbS1pZnJhbWUuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3Jlc291cmNlcy9ibG9iLXN0cmVhbS1pZnJh
bWUuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3Jlc291cmNl
cy9ibG9iLXN0cmVhbS1pZnJhbWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMgQEAK
KzxzY3JpcHQ+CisgICAgcGFyZW50LnBvc3RNZXNzYWdlKG5ldyBCbG9iKFs3XSksICIqIik7Cis8
L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwkocmV2aXNpb24gMjY4
MTg2KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE1IEBACisyMDIwLTEwLTA4ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IEJsb2Iuc3RyZWFtCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc0NTcKKworICAg
ICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL0ZpbGVBUEkvYmxvYi9CbG9iLXN0cmVhbS5hbnktZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9GaWxlQVBJL2Jsb2IvQmxvYi1zdHJlYW0uYW55Lndvcmtl
ci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkvaWRs
aGFybmVzcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVB
UEkvaWRsaGFybmVzcy53b3JrZXItZXhwZWN0ZWQudHh0OgorCiAyMDIwLTEwLTA4ICBSb2IgQnVp
cyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgRml4IGltYWdlLWxvYWRpbmctbGF6eS1t
dWx0aXBsZS10aW1lcy5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0ZpbGVBUEkvaWRsaGFybmVzcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9GaWxlQVBJL2lk
bGhhcm5lc3MtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjgxODEpCisrKyBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkvaWRsaGFybmVzcy1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE1LDcgKzE1LDcgQEAgUEFTUyBCbG9iIGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZQogUEFTUyBCbG9iIGludGVyZmFjZTogYXR0cmlidXRlIHNp
emUKIFBBU1MgQmxvYiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB0eXBlCiBQQVNTIEJsb2IgaW50ZXJm
YWNlOiBvcGVyYXRpb24gc2xpY2Uob3B0aW9uYWwgbG9uZyBsb25nLCBvcHRpb25hbCBsb25nIGxv
bmcsIG9wdGlvbmFsIERPTVN0cmluZykKLUZBSUwgQmxvYiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBz
dHJlYW0oKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBt
aXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJzdHJlYW0iIG1p
c3NpbmcKK1BBU1MgQmxvYiBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzdHJlYW0oKQogUEFTUyBCbG9i
IGludGVyZmFjZTogb3BlcmF0aW9uIHRleHQoKQogUEFTUyBCbG9iIGludGVyZmFjZTogb3BlcmF0
aW9uIGFycmF5QnVmZmVyKCkKIFBBU1MgQmxvYiBtdXN0IGJlIHByaW1hcnkgaW50ZXJmYWNlIG9m
IG5ldyBCbG9iKFsiVEVTVCJdKQpAQCAtMjQsNyArMjQsNyBAQCBQQVNTIEJsb2IgaW50ZXJmYWNl
OiBuZXcgQmxvYihbIlRFU1QiXSkgCiBQQVNTIEJsb2IgaW50ZXJmYWNlOiBuZXcgQmxvYihbIlRF
U1QiXSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0eXBlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQog
UEFTUyBCbG9iIGludGVyZmFjZTogbmV3IEJsb2IoWyJURVNUIl0pIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAic2xpY2Uob3B0aW9uYWwgbG9uZyBsb25nLCBvcHRpb25hbCBsb25nIGxvbmcsIG9wdGlv
bmFsIERPTVN0cmluZykiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIEJsb2IgaW50ZXJmYWNl
OiBjYWxsaW5nIHNsaWNlKG9wdGlvbmFsIGxvbmcgbG9uZywgb3B0aW9uYWwgbG9uZyBsb25nLCBv
cHRpb25hbCBET01TdHJpbmcpIG9uIG5ldyBCbG9iKFsiVEVTVCJdKSB3aXRoIHRvbyBmZXcgYXJn
dW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yCi1GQUlMIEJsb2IgaW50ZXJmYWNlOiBuZXcgQmxv
YihbIlRFU1QiXSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzdHJlYW0oKSIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAic3RyZWFtIiBub3QgZm91bmQgaW4g
cHJvdG90eXBlIGNoYWluCitQQVNTIEJsb2IgaW50ZXJmYWNlOiBuZXcgQmxvYihbIlRFU1QiXSkg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJzdHJlYW0oKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKIFBB
U1MgQmxvYiBpbnRlcmZhY2U6IG5ldyBCbG9iKFsiVEVTVCJdKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgInRleHQoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKIFBBU1MgQmxvYiBpbnRlcmZhY2U6IG5l
dyBCbG9iKFsiVEVTVCJdKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFycmF5QnVmZmVyKCkiIHdp
dGggdGhlIHByb3BlciB0eXBlCiBQQVNTIEZpbGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdApAQCAtNDMsNyArNDMsNyBAQCBQQVNTIEJsb2Ig
aW50ZXJmYWNlOiBuZXcgRmlsZShbIm15RmlsZUJpCiBQQVNTIEJsb2IgaW50ZXJmYWNlOiBuZXcg
RmlsZShbIm15RmlsZUJpdHMiXSwgIm15RmlsZU5hbWUiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InR5cGUiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIEJsb2IgaW50ZXJmYWNlOiBuZXcgRmls
ZShbIm15RmlsZUJpdHMiXSwgIm15RmlsZU5hbWUiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNs
aWNlKG9wdGlvbmFsIGxvbmcgbG9uZywgb3B0aW9uYWwgbG9uZyBsb25nLCBvcHRpb25hbCBET01T
dHJpbmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBCbG9iIGludGVyZmFjZTogY2FsbGlu
ZyBzbGljZShvcHRpb25hbCBsb25nIGxvbmcsIG9wdGlvbmFsIGxvbmcgbG9uZywgb3B0aW9uYWwg
RE9NU3RyaW5nKSBvbiBuZXcgRmlsZShbIm15RmlsZUJpdHMiXSwgIm15RmlsZU5hbWUiKSB3aXRo
IHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yCi1GQUlMIEJsb2IgaW50ZXJm
YWNlOiBuZXcgRmlsZShbIm15RmlsZUJpdHMiXSwgIm15RmlsZU5hbWUiKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgInN0cmVhbSgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBhc3NlcnRfaW5oZXJpdHM6
IHByb3BlcnR5ICJzdHJlYW0iIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK1BBU1MgQmxv
YiBpbnRlcmZhY2U6IG5ldyBGaWxlKFsibXlGaWxlQml0cyJdLCAibXlGaWxlTmFtZSIpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAic3RyZWFtKCkiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIEJs
b2IgaW50ZXJmYWNlOiBuZXcgRmlsZShbIm15RmlsZUJpdHMiXSwgIm15RmlsZU5hbWUiKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgInRleHQoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKIFBBU1MgQmxv
YiBpbnRlcmZhY2U6IG5ldyBGaWxlKFsibXlGaWxlQml0cyJdLCAibXlGaWxlTmFtZSIpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAiYXJyYXlCdWZmZXIoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKIFBB
U1MgRmlsZUxpc3QgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIG9iamVjdApJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9GaWxlQVBJL2lkbGhhcm5lc3Mud29ya2VyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkvaWRs
aGFybmVzcy53b3JrZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjgxODEpCisrKyBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkvaWRsaGFybmVzcy53
b3JrZXItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMyw3ICsxMyw3IEBAIFBBU1Mg
QmxvYiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGUKIFBBU1MgQmxvYiBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBzaXplCiBQQVNTIEJsb2IgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdHlwZQogUEFT
UyBCbG9iIGludGVyZmFjZTogb3BlcmF0aW9uIHNsaWNlKG9wdGlvbmFsIGxvbmcgbG9uZywgb3B0
aW9uYWwgbG9uZyBsb25nLCBvcHRpb25hbCBET01TdHJpbmcpCi1GQUlMIEJsb2IgaW50ZXJmYWNl
OiBvcGVyYXRpb24gc3RyZWFtKCkgYXNzZXJ0X293bl9wcm9wZXJ0eTogaW50ZXJmYWNlIHByb3Rv
dHlwZSBvYmplY3QgbWlzc2luZyBub24tc3RhdGljIG9wZXJhdGlvbiBleHBlY3RlZCBwcm9wZXJ0
eSAic3RyZWFtIiBtaXNzaW5nCitQQVNTIEJsb2IgaW50ZXJmYWNlOiBvcGVyYXRpb24gc3RyZWFt
KCkKIFBBU1MgQmxvYiBpbnRlcmZhY2U6IG9wZXJhdGlvbiB0ZXh0KCkKIFBBU1MgQmxvYiBpbnRl
cmZhY2U6IG9wZXJhdGlvbiBhcnJheUJ1ZmZlcigpCiBQQVNTIEJsb2IgbXVzdCBiZSBwcmltYXJ5
IGludGVyZmFjZSBvZiBuZXcgQmxvYihbIlRFU1QiXSkKQEAgLTIyLDcgKzIyLDcgQEAgUEFTUyBC
bG9iIGludGVyZmFjZTogbmV3IEJsb2IoWyJURVNUIl0pIAogUEFTUyBCbG9iIGludGVyZmFjZTog
bmV3IEJsb2IoWyJURVNUIl0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidHlwZSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUKIFBBU1MgQmxvYiBpbnRlcmZhY2U6IG5ldyBCbG9iKFsiVEVTVCJdKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgInNsaWNlKG9wdGlvbmFsIGxvbmcgbG9uZywgb3B0aW9uYWwgbG9u
ZyBsb25nLCBvcHRpb25hbCBET01TdHJpbmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBC
bG9iIGludGVyZmFjZTogY2FsbGluZyBzbGljZShvcHRpb25hbCBsb25nIGxvbmcsIG9wdGlvbmFs
IGxvbmcgbG9uZywgb3B0aW9uYWwgRE9NU3RyaW5nKSBvbiBuZXcgQmxvYihbIlRFU1QiXSkgd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvcgotRkFJTCBCbG9iIGludGVy
ZmFjZTogbmV3IEJsb2IoWyJURVNUIl0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic3RyZWFtKCki
IHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgInN0cmVhbSIg
bm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorUEFTUyBCbG9iIGludGVyZmFjZTogbmV3IEJs
b2IoWyJURVNUIl0pIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic3RyZWFtKCkiIHdpdGggdGhlIHBy
b3BlciB0eXBlCiBQQVNTIEJsb2IgaW50ZXJmYWNlOiBuZXcgQmxvYihbIlRFU1QiXSkgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJ0ZXh0KCkiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIEJsb2Ig
aW50ZXJmYWNlOiBuZXcgQmxvYihbIlRFU1QiXSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJhcnJh
eUJ1ZmZlcigpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBGaWxlIGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKQEAgLTQxLDcgKzQxLDcg
QEAgUEFTUyBCbG9iIGludGVyZmFjZTogbmV3IEZpbGUoWyJteUZpbGVCaQogUEFTUyBCbG9iIGlu
dGVyZmFjZTogbmV3IEZpbGUoWyJteUZpbGVCaXRzIl0sICJteUZpbGVOYW1lIikgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJ0eXBlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBCbG9iIGludGVy
ZmFjZTogbmV3IEZpbGUoWyJteUZpbGVCaXRzIl0sICJteUZpbGVOYW1lIikgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJzbGljZShvcHRpb25hbCBsb25nIGxvbmcsIG9wdGlvbmFsIGxvbmcgbG9uZywg
b3B0aW9uYWwgRE9NU3RyaW5nKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKIFBBU1MgQmxvYiBpbnRl
cmZhY2U6IGNhbGxpbmcgc2xpY2Uob3B0aW9uYWwgbG9uZyBsb25nLCBvcHRpb25hbCBsb25nIGxv
bmcsIG9wdGlvbmFsIERPTVN0cmluZykgb24gbmV3IEZpbGUoWyJteUZpbGVCaXRzIl0sICJteUZp
bGVOYW1lIikgd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvcgotRkFJ
TCBCbG9iIGludGVyZmFjZTogbmV3IEZpbGUoWyJteUZpbGVCaXRzIl0sICJteUZpbGVOYW1lIikg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJzdHJlYW0oKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNz
ZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAic3RyZWFtIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNo
YWluCitQQVNTIEJsb2IgaW50ZXJmYWNlOiBuZXcgRmlsZShbIm15RmlsZUJpdHMiXSwgIm15Rmls
ZU5hbWUiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInN0cmVhbSgpIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZQogUEFTUyBCbG9iIGludGVyZmFjZTogbmV3IEZpbGUoWyJteUZpbGVCaXRzIl0sICJteUZp
bGVOYW1lIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0ZXh0KCkiIHdpdGggdGhlIHByb3BlciB0
eXBlCiBQQVNTIEJsb2IgaW50ZXJmYWNlOiBuZXcgRmlsZShbIm15RmlsZUJpdHMiXSwgIm15Rmls
ZU5hbWUiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFycmF5QnVmZmVyKCkiIHdpdGggdGhlIHBy
b3BlciB0eXBlCiBQQVNTIEZpbGVMaXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBvYmplY3QKSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvRmlsZUFQSS9ibG9iL0Jsb2Itc3RyZWFtLmFueS1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9GaWxlQVBJL2Jsb2IvQmxvYi1zdHJlYW0uYW55LWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MjY4MTgxKQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9G
aWxlQVBJL2Jsb2IvQmxvYi1zdHJlYW0uYW55LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMSw2ICsxLDYgQEAKIAotRkFJTCBCbG9iLnN0cmVhbSgpIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogYmxvYi5zdHJlYW0g
aXMgbm90IGEgZnVuY3Rpb24uIChJbiAnYmxvYi5zdHJlYW0oKScsICdibG9iLnN0cmVhbScgaXMg
dW5kZWZpbmVkKSIKLUZBSUwgQmxvYi5zdHJlYW0oKSBlbXB0eSBCbG9iIHByb21pc2VfdGVzdDog
VW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogYmxvYi5z
dHJlYW0gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnYmxvYi5zdHJlYW0oKScsICdibG9iLnN0cmVh
bScgaXMgdW5kZWZpbmVkKSIKLUZBSUwgQmxvYi5zdHJlYW0oKSBub24tdW5pY29kZSBpbnB1dCBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBl
RXJyb3I6IGJsb2Iuc3RyZWFtIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2Jsb2Iuc3RyZWFtKCkn
LCAnYmxvYi5zdHJlYW0nIGlzIHVuZGVmaW5lZCkiCi1GQUlMIEJsb2Iuc3RyZWFtKCkgZ2FyYmFn
ZSBjb2xsZWN0aW9uIG9mIGJsb2Igc2hvdWxkbid0IGJyZWFrIHN0cmVhbWNvbnN1bXB0aW9uIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVF
cnJvcjogYmxvYi5zdHJlYW0gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnYmxvYi5zdHJlYW0oKScs
ICdibG9iLnN0cmVhbScgaXMgdW5kZWZpbmVkKSIKK1BBU1MgQmxvYi5zdHJlYW0oKQorUEFTUyBC
bG9iLnN0cmVhbSgpIGVtcHR5IEJsb2IKK1BBU1MgQmxvYi5zdHJlYW0oKSBub24tdW5pY29kZSBp
bnB1dAorUEFTUyBCbG9iLnN0cmVhbSgpIGdhcmJhZ2UgY29sbGVjdGlvbiBvZiBibG9iIHNob3Vs
ZG4ndCBicmVhayBzdHJlYW1jb25zdW1wdGlvbgogCkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkvYmxvYi9CbG9iLXN0cmVhbS5hbnkud29y
a2VyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0ZpbGVBUEkvYmxvYi9CbG9iLXN0cmVhbS5hbnkud29ya2VyLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMjY4MTgxKQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9GaWxlQVBJL2Jsb2IvQmxvYi1zdHJlYW0uYW55Lndvcmtlci1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAKLUZBSUwgQmxvYi5z
dHJlYW0oKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2Jq
ZWN0ICJUeXBlRXJyb3I6IGJsb2Iuc3RyZWFtIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2Jsb2Iu
c3RyZWFtKCknLCAnYmxvYi5zdHJlYW0nIGlzIHVuZGVmaW5lZCkiCi1GQUlMIEJsb2Iuc3RyZWFt
KCkgZW1wdHkgQmxvYiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1
ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGJsb2Iuc3RyZWFtIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4g
J2Jsb2Iuc3RyZWFtKCknLCAnYmxvYi5zdHJlYW0nIGlzIHVuZGVmaW5lZCkiCi1GQUlMIEJsb2Iu
c3RyZWFtKCkgbm9uLXVuaWNvZGUgaW5wdXQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0
aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBibG9iLnN0cmVhbSBpcyBub3QgYSBm
dW5jdGlvbi4gKEluICdibG9iLnN0cmVhbSgpJywgJ2Jsb2Iuc3RyZWFtJyBpcyB1bmRlZmluZWQp
IgotRkFJTCBCbG9iLnN0cmVhbSgpIGdhcmJhZ2UgY29sbGVjdGlvbiBvZiBibG9iIHNob3VsZG4n
dCBicmVhayBzdHJlYW1jb25zdW1wdGlvbiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGJsb2Iuc3RyZWFtIGlzIG5vdCBhIGZ1
bmN0aW9uLiAoSW4gJ2Jsb2Iuc3RyZWFtKCknLCAnYmxvYi5zdHJlYW0nIGlzIHVuZGVmaW5lZCki
CitQQVNTIEJsb2Iuc3RyZWFtKCkKK1BBU1MgQmxvYi5zdHJlYW0oKSBlbXB0eSBCbG9iCitQQVNT
IEJsb2Iuc3RyZWFtKCkgbm9uLXVuaWNvZGUgaW5wdXQKK1BBU1MgQmxvYi5zdHJlYW0oKSBnYXJi
YWdlIGNvbGxlY3Rpb24gb2YgYmxvYiBzaG91bGRuJ3QgYnJlYWsgc3RyZWFtY29uc3VtcHRpb24K
IAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>