<?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>95093</bug_id>
          
          <creation_ts>2012-08-27 08:51:54 -0700</creation_ts>
          <short_desc>Update TestRunner API for web notifications</short_desc>
          <delta_ts>2012-08-29 10:41: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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          <blocked>77969</blocked>
    
    <blocked>79492</blocked>
    
    <blocked>95154</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>ap</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>haraken</cc>
    
    <cc>jberlin</cc>
    
    <cc>jianli</cc>
    
    <cc>mifenton</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>705303</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-08-27 08:51:54 -0700</bug_when>
    <thetext>Remove some unused legacy API, add some new API, and rename the functions from &quot;desktop notifications&quot; to &quot;web notifications&quot;, since that is the official name of the spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705305</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-08-27 08:52:08 -0700</bug_when>
    <thetext>&lt;rdar://problem/12179649&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705333</commentid>
    <comment_count>2</comment_count>
      <attachid>160734</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-08-27 09:48:10 -0700</bug_when>
    <thetext>Created attachment 160734
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705571</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-08-27 13:15:28 -0700</bug_when>
    <thetext>Could we do this in window.internals instead? so we only have to implement it once instead of for each DRT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705621</commentid>
    <comment_count>4</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-08-27 13:45:02 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Could we do this in window.internals instead? so we only have to implement it once instead of for each DRT?

It would be great if we can only do this once, but I do not think it is possible with this feature.

There are three sets of APIs involved:

1) Permissions management: retrieving and requesting from JS.
2) Notification management: showing and closing from JS.
3) Platform events: mimicking a user clicking on and closing a notification from the platform.

The first two sets are handled at the WK1/2 layer through port-specific implementations of NotificationClient, which I think implies different solutions for each DRT/WTR port.

The last set is needed only by DRT/WTR, so I think it should remain in testRunner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707533</commentid>
    <comment_count>5</comment_count>
      <attachid>160734</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-08-29 09:41:27 -0700</bug_when>
    <thetext>Comment on attachment 160734
Patch

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

I going to say r+, but I think that naming needs to be clarified.

&gt; Tools/ChangeLog:22
&gt; +        (simulateLegacyWebNotificationClickCallback): Renamed.

Unsure if you are talking about &quot;legacy web notifications&quot;, or a &quot;legacy way to simulate working with them&quot;. From the ChangeLog it sounds like the latter, but function name shouts the former.

&gt; Tools/DumpRenderTree/TestRunner.h:421
&gt; -    bool m_areDesktopNotificationPermissionRequestsIgnored;
&gt; +    bool m_areLegacyWebNotificationPermissionRequestsIgnored;

I could have used a comment here explaining what &quot;legacy&quot; means in this context. Specifically, how will one determine that it&apos;s time to remove this code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707593</commentid>
    <comment_count>6</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-08-29 10:17:28 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 160734 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=160734&amp;action=review
&gt; 
&gt; I going to say r+, but I think that naming needs to be clarified.
&gt; 
&gt; &gt; Tools/ChangeLog:22
&gt; &gt; +        (simulateLegacyWebNotificationClickCallback): Renamed.
&gt; 
&gt; Unsure if you are talking about &quot;legacy web notifications&quot;, or a &quot;legacy way to simulate working with them&quot;. From the ChangeLog it sounds like the latter, but function name shouts the former.

You&apos;re right. I mean to say the latter. I&apos;ll make a comment about this. I hope we can deprecate it soon enough when the tests get migrated to http/tests.

&gt; 
&gt; &gt; Tools/DumpRenderTree/TestRunner.h:421
&gt; &gt; -    bool m_areDesktopNotificationPermissionRequestsIgnored;
&gt; &gt; +    bool m_areLegacyWebNotificationPermissionRequestsIgnored;
&gt; 
&gt; I could have used a comment here explaining what &quot;legacy&quot; means in this context. Specifically, how will one determine that it&apos;s time to remove this code?

Added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707609</commentid>
    <comment_count>7</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-08-29 10:27:28 -0700</bug_when>
    <thetext>Looks like in my fervor to check in 95099 (r126909) I ended up accidentally including this patch!

I&apos;ll still check in another patch to add comments as ap suggested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707624</commentid>
    <comment_count>8</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-08-29 10:41:49 -0700</bug_when>
    <thetext>Committed r127018: &lt;http://trac.webkit.org/changeset/127018&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160734</attachid>
            <date>2012-08-27 09:48:10 -0700</date>
            <delta_ts>2012-08-29 09:41:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95093-20120827094803.patch</filename>
            <type>text/plain</type>
            <size>39776</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2NzY0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOGQ3MmQzODIxYTI1M2M5MmUwMzMzNmViMmM5MTdjMzY2
NjcxZTE1Mi4uYjJmOGI2Mjg1ZWExNTJkZTg3NGU3NWI3ZGFkMTIyYTQxYmM5OWRjMCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUw
IEBACisyMDEyLTA4LTI3ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBV
cGRhdGUgVGVzdFJ1bm5lciBBUEkgZm9yIHdlYiBub3RpZmljYXRpb25zCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTA5MworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMTIxNzk2NDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyBpcyB3b3JrIHRvd2FyZCBwcm92aWRpbmcgTWFjIHN1cHBvcnQgZm9y
IHdlYiBub3RpZmljYXRpb25zIGluIERSVCBhbmQgV1RSICg3Nzk2OSkuCisKKyAgICAgICAgU29t
ZSBvZiB0aGUgbGVnYWN5IEFQSXMgYXJlIGxlc3MgdGhhbiBpZGVhbCwgYW5kIG5vdCB0ZW5hYmxl
IHdpdGggdGhlIFdUUiBpbmZyYXN0cnVjdHVyZS4KKyAgICAgICAgVGhpcyBmaXJzdCBwYXRjaCBy
ZW5hbWVzIHRoZSBUZXN0UnVubmVyIGNhbGxzIHRvIHVzZSB0aGUgdGVybSAid2ViIG5vdGlmaWNh
dGlvbnMiIGluc3RlYWQgb2YKKyAgICAgICAgImRlc2t0b3Agbm90aWZpY2F0aW9ucyIsIGRlcHJl
Y2F0ZXMgYSBjb3VwbGUgQVBJIGNhbGxzIHRoYXQgYXJlIG5vdCB1c2VkIGJ5IGFueW9uZSwgYW5k
IGFkZHMKKyAgICAgICAgYWRkaXRpb25hbCBjYWxscyB0aGF0IHdpbGwgYmUgdXNlZCBpbiB0aGUg
dGVzdHMgdGhhdCB0ZXN0IHRoZSBzdGFuZGFyZCBBUEkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9UZXN0UnVubmVyLmg6CisgICAgICAgIChUZXN0UnVubmVyKTogRm9yIGNvbnNpc3RlbmN5
LCByZW5hbWUgYSBjb3VwbGUgbWVtYmVyIHZhcmlhYmxlcy4gUmVtb3ZlIHVudXNlZCBjaGVja0Rl
c2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uKCkKKyAgICAgICAgYW5kIGFyZURlc2t0b3BOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdHNJZ25vcmVkKCkuIFJlbW92ZSBvcmlnaW4gbWFwcGlu
ZyBzaW5jZSBlYWNoIHBvcnQgaW1wbGVtZW50cyBpdHMgb3duIHNvbHV0aW9uLgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwOiBQdXNoIGdyYW50V2ViTm90aWZpY2F0aW9u
UGVybWlzc2lvbigpIHRvIGluZGl2aWR1YWwgcG9ydHMuCisgICAgICAgIChUZXN0UnVubmVyOjpU
ZXN0UnVubmVyKToKKyAgICAgICAgKGlnbm9yZUxlZ2FjeVdlYk5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0c0NhbGxiYWNrKTogUmVuYW1lZC4KKyAgICAgICAgKHNpbXVsYXRlTGVnYWN5V2Vi
Tm90aWZpY2F0aW9uQ2xpY2tDYWxsYmFjayk6IFJlbmFtZWQuCisgICAgICAgIChncmFudFdlYk5v
dGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjayk6IFJlbmFtZWQuCisgICAgICAgIChkZW55V2Vi
Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrKTogQWRkZWQuCisgICAgICAgIChyZW1vdmVB
bGxXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uc0NhbGxiYWNrKTogQWRkZWQuCisgICAgICAgIChz
aW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrQ2FsbGJhY2spOiBBZGRlZC4KKyAgICAgICAgKFRl
c3RSdW5uZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgIChUZXN0UnVubmVyOjppZ25vcmVM
ZWdhY3lXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMpOgorCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChEUlRUZXN0
UnVubmVyOjpEUlRUZXN0UnVubmVyKTogQWRkZWQgYmluZGluZ3MgZm9yIG5ldyBBUElzLgorICAg
ICAgICAoRFJUVGVzdFJ1bm5lcjo6Z3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKToKKyAg
ICAgICAgKERSVFRlc3RSdW5uZXI6OmRlbnlXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKTogU3R1
Yi4KKyAgICAgICAgKERSVFRlc3RSdW5uZXI6OnJlbW92ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1p
c3Npb25zKTogU3R1Yi4KKyAgICAgICAgKERSVFRlc3RSdW5uZXI6OnNpbXVsYXRlV2ViTm90aWZp
Y2F0aW9uQ2xpY2spOiBTdHViLgorICAgICAgICAoRFJUVGVzdFJ1bm5lcjo6c2ltdWxhdGVMZWdh
Y3lXZWJOb3RpZmljYXRpb25DbGljayk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vRFJUVGVzdFJ1bm5lci5oOgorICAgICAgICAoRFJUVGVzdFJ1bm5lcik6CisKKyAgICAgICAg
QWRkZWQgc3R1YnMuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVu
bmVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5u
ZXJFZmwuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNw
cDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbTogTGF0ZXIg
cGF0Y2ggd2lsbCBjb250YWluIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgQVBJLgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHA6IEFkZGVkIFF0LWJhc2VkIHN0dWJz
LgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcDoKKwogMjAx
Mi0wOC0yNyAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0dTdHJlYW1lcl1bUXRdIFdlYkF1ZGlvIHN1cHBvcnQKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1
bm5lci5jcHAKaW5kZXggMjI5YmYwNjgwNGRjMjMwNTYyZjk1MDE5Nzc4Y2QzOGYwZmIxNTBjYi4u
ZDVlNzk5ZDhmZDEzNGFiMGRiOWQ5ZDYwNzRkMGJmMWU5YTA4ZDIzZiAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvVGVzdFJ1bm5lci5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgVGVzdFJ1bm5lcjo6VGVzdFJ1bm5l
cihjb25zdCBzdGQ6OnN0cmluZyYgdGVzdFBhdGhPclVSTCwgY29uc3Qgc3RkOjpzdHJpbmcmIGV4
cGUKICAgICAsIG1fdXNlRGVmZXJyZWRGcmFtZUxvYWRpbmcoZmFsc2UpCiAgICAgLCBtX3Nob3Vs
ZFBhaW50QnJva2VuSW1hZ2UodHJ1ZSkKICAgICAsIG1fc2hvdWxkU3RheU9uUGFnZUFmdGVySGFu
ZGxpbmdCZWZvcmVVbmxvYWQoZmFsc2UpCi0gICAgLCBtX2FyZURlc2t0b3BOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdHNJZ25vcmVkKGZhbHNlKQorICAgICwgbV9hcmVMZWdhY3lXZWJOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdHNJZ25vcmVkKGZhbHNlKQogICAgICwgbV9jdXN0b21G
dWxsU2NyZWVuQmVoYXZpb3IoZmFsc2UpIAogICAgICwgbV90ZXN0UGF0aE9yVVJMKHRlc3RQYXRo
T3JVUkwpCiAgICAgLCBtX2V4cGVjdGVkUGl4ZWxIYXNoKGV4cGVjdGVkUGl4ZWxIYXNoKQpAQCAt
NjQ4LDE5ICs2NDgsNiBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBnb0JhY2tDYWxsYmFjayhKU0NvbnRl
eHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTTwogICAgIHJldHVybiBKU1Zh
bHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAotc3RhdGljIEpTVmFsdWVSZWYgZ3JhbnRE
ZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0
LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFy
Z3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4
Y2VwdGlvbikKLXsKLSAgICAvLyBIYXMgV2luZG93cyBpbXBsZW1lbnRhdGlvbgotICAgIGlmIChh
cmd1bWVudENvdW50IDwgMSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNv
bnRleHQpOwotCi0gICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PFRlc3RS
dW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwotCi0gICAgY29udHJvbGxl
ci0+Z3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbihKU1ZhbHVlVG9TdHJpbmdDb3B5
KGNvbnRleHQsIGFyZ3VtZW50c1swXSwgTlVMTCkpOwotICAgICAgICAKLSAgICByZXR1cm4gSlNW
YWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19Ci0KIHN0YXRpYyBKU1ZhbHVlUmVmIGlzQ29t
bWFuZEVuYWJsZWRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVu
Y3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25z
dCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAg
Ly8gSGFzIE1hYyBpbXBsZW1lbnRhdGlvbi4KQEAgLTIxMzQsMTggKzIxMjEsMTggQEAgc3RhdGlj
IGJvb2wgc2V0R2xvYmFsRmxhZ0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVj
dFJlZiB0aGlzT2JqZWN0LAogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgSlNWYWx1ZVJl
ZiBpZ25vcmVEZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzQ2FsbGJhY2soSlND
b250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlz
T2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNb
XSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQorc3RhdGljIEpTVmFsdWVSZWYgaWdub3JlTGVnYWN5
V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNv
bnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXpl
X3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKQogewogICAgIFRlc3RSdW5uZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2Fz
dDxUZXN0UnVubmVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICBjb250
cm9sbGVyLT5pZ25vcmVEZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKCk7Cisg
ICAgY29udHJvbGxlci0+aWdub3JlTGVnYWN5V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RzKCk7CiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCi1z
dGF0aWMgSlNWYWx1ZVJlZiBzaW11bGF0ZURlc2t0b3BOb3RpZmljYXRpb25DbGlja0NhbGxiYWNr
KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYg
dGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1l
bnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3N0YXRpYyBKU1ZhbHVlUmVmIHNpbXVsYXRl
TGVnYWN5V2ViTm90aWZpY2F0aW9uQ2xpY2tDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwg
SlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1
bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNl
cHRpb24pCiB7CiAgICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PFRlc3RS
dW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOyAKICAgICBKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gdGl0bGUoQWRvcHQsIEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwg
YXJndW1lbnRzWzBdLCBleGNlcHRpb24pKTsKLSAgICBjb250cm9sbGVyLT5zaW11bGF0ZURlc2t0
b3BOb3RpZmljYXRpb25DbGljayh0aXRsZS5nZXQoKSk7CisgICAgY29udHJvbGxlci0+c2ltdWxh
dGVMZWdhY3lXZWJOb3RpZmljYXRpb25DbGljayh0aXRsZS5nZXQoKSk7CiAgICAgcmV0dXJuIEpT
VmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCkBAIC0yMjAwLDYgKzIxODcsNTkgQEAg
c3RhdGljIEpTVmFsdWVSZWYgc2V0U3RvcmFnZURhdGFiYXNlSWRsZUludGVydmFsQ2FsbGJhY2so
SlNDb250ZXh0UmVmIGNvbnRleHQsIEoKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQo
Y29udGV4dCk7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIGdyYW50V2ViTm90aWZpY2F0aW9uUGVy
bWlzc2lvbkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlv
biwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpT
VmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBpZiAo
YXJndW1lbnRDb3VudCA8IDEpCisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChj
b250ZXh0KTsKKworICAgIFRlc3RSdW5uZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0
UnVubmVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKKworICAgIEpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBvcmlnaW4oQWRvcHQsIEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4
dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pKTsKKyAgICBBU1NFUlQoISpleGNlcHRpb24pOwor
ICAgIGNvbnRyb2xsZXItPmdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihvcmlnaW4uZ2V0
KCkpOworCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworfQorCisK
K3N0YXRpYyBKU1ZhbHVlUmVmIGRlbnlXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2so
SlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0
aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVu
dHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIGlmIChhcmd1bWVudENvdW50IDwg
MSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworCisgICAg
VGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihKU09iamVj
dEdldFByaXZhdGUodGhpc09iamVjdCkpOworCisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IG9yaWdpbihBZG9wdCwgSlNWYWx1ZVRvU3RyaW5nQ29weShjb250ZXh0LCBhcmd1bWVudHNbMF0s
IGV4Y2VwdGlvbikpOworICAgIEFTU0VSVCghKmV4Y2VwdGlvbik7CisgICAgY29udHJvbGxlci0+
ZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24ob3JpZ2luLmdldCgpKTsKKworICAgIHJldHVy
biBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKK30KKworCitzdGF0aWMgSlNWYWx1ZVJl
ZiByZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uc0NhbGxiYWNrKEpTQ29udGV4dFJl
ZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwg
c2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0gc3RhdGlj
X2Nhc3Q8VGVzdFJ1bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisKKyAg
ICBjb250cm9sbGVyLT5yZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9ucygpOworCisg
ICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworfQorCisKK3N0YXRpYyBK
U1ZhbHVlUmVmIHNpbXVsYXRlV2ViTm90aWZpY2F0aW9uQ2xpY2tDYWxsYmFjayhKU0NvbnRleHRS
ZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3Qs
IHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1Zh
bHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgLy8gSGFzIFdpbmRvd3MgaW1wbGVtZW50YXRpb24K
KyAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVu
ZGVmaW5lZChjb250ZXh0KTsKKworICAgIFRlc3RSdW5uZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNf
Y2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKKworICAg
IGNvbnRyb2xsZXItPnNpbXVsYXRlV2ViTm90aWZpY2F0aW9uQ2xpY2soYXJndW1lbnRzWzBdKTsK
KworICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKK30KKwogc3RhdGlj
IHZvaWQgdGVzdFJ1bm5lck9iamVjdEZpbmFsaXplKEpTT2JqZWN0UmVmIG9iamVjdCkKIHsKICAg
ICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8VGVzdFJ1bm5lcio+KEpTT2Jq
ZWN0R2V0UHJpdmF0ZShvYmplY3QpKTsKQEAgLTIzMDIsOCArMjM0Miw3IEBAIEpTU3RhdGljRnVu
Y3Rpb24qIFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsgImZpbmRTdHJp
bmciLCBmaW5kU3RyaW5nQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAib3JpZ2luc1dpdGhB
cHBsaWNhdGlvbkNhY2hlIiwgb3JpZ2luc1dpdGhBcHBsaWNhdGlvbkNhY2hlQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKICAgICAgICAgeyAiZ29CYWNrIiwgZ29CYWNrQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwgCi0gICAg
ICAgIHsgImdyYW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24iLCBncmFudERlc2t0b3BO
b3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwgCi0gICAgICAgIHsgImlnbm9y
ZURlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMiLCBpZ25vcmVEZXNrdG9wTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAi
aWdub3JlTGVnYWN5V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzIiwgaWdub3JlTGVn
YWN5V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAg
ICAgICAgeyAiaXNDb21tYW5kRW5hYmxlZCIsIGlzQ29tbWFuZEVuYWJsZWRDYWxsYmFjaywga0pT
UHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0
ZSB9LAogICAgICAgICB7ICJrZWVwV2ViSGlzdG9yeSIsIGtlZXBXZWJIaXN0b3J5Q2FsbGJhY2ss
IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRE
ZWxldGUgfSwKICAgICAgICAgeyAibGF5ZXJUcmVlQXNUZXh0IiwgbGF5ZXJUcmVlQXNUZXh0Q2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKQEAgLTIzOTIsNyArMjQzMSw3IEBAIEpTU3RhdGljRnVuY3Rpb24qIFRl
c3RSdW5uZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsgInNldFhTU0F1ZGl0b3JFbmFi
bGVkIiwgc2V0WFNTQXVkaXRvckVuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJz
ZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCIsIHNldEFzeW5jaHJvbm91c1NwZWxs
Q2hlY2tpbmdFbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2hvd1dlYkluc3Bl
Y3RvciIsIHNob3dXZWJJbnNwZWN0b3JDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAgICAgICB7ICJzaW11
bGF0ZURlc2t0b3BOb3RpZmljYXRpb25DbGljayIsIHNpbXVsYXRlRGVza3RvcE5vdGlmaWNhdGlv
bkNsaWNrQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAic2ltdWxhdGVMZWdhY3lXZWJOb3Rp
ZmljYXRpb25DbGljayIsIHNpbXVsYXRlTGVnYWN5V2ViTm90aWZpY2F0aW9uQ2xpY2tDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJ0ZXN0T25zY3JlZW4iLCB0ZXN0T25zY3JlZW5DYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJ0ZXN0UmVwYWludCIsIHRlc3RSZXBhaW50Q2FsbGJhY2ss
IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRE
ZWxldGUgfSwKICAgICAgICAgeyAid2FpdEZvclBvbGljeURlbGVnYXRlIiwgd2FpdEZvclBvbGlj
eURlbGVnYXRlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKQEAgLTI0MTcsNiArMjQ1NiwxMCBAQCBKU1N0YXRp
Y0Z1bmN0aW9uKiBUZXN0UnVubmVyOjpzdGF0aWNGdW5jdGlvbnMoKQogICAgICAgICB7ICJwcmVj
aXNlVGltZSIsIHByZWNpc2VUaW1lQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0SGFz
Q3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yIiwgc2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9y
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0U3RvcmFnZURhdGFiYXNlSWRsZUludGVy
dmFsIiwgc2V0U3RvcmFnZURhdGFiYXNlSWRsZUludGVydmFsQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAg
ICAgICAgeyAiZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uIiwgZ3JhbnRXZWJOb3RpZmlj
YXRpb25QZXJtaXNzaW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAiZGVueVdlYk5vdGlm
aWNhdGlvblBlcm1pc3Npb24iLCBkZW55V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCisgICAgICAgIHsgInJlbW92ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25z
IiwgcmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbnNDYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAor
ICAgICAgICB7ICJzaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrIiwgc2ltdWxhdGVXZWJOb3Rp
ZmljYXRpb25DbGlja0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgMCwgMCwgMCB9CiAgICAg
fTsKIApAQCAtMjQ1OCwyNiArMjUwMSw5IEBAIHZvaWQgVGVzdFJ1bm5lcjo6cXVldWVSZWxvYWQo
KQogICAgIFdvcmtRdWV1ZTo6c2hhcmVkKCktPnF1ZXVlKG5ldyBSZWxvYWRJdGVtKTsKIH0KIAot
dm9pZCBUZXN0UnVubmVyOjpncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uKEpTU3Ry
aW5nUmVmIG9yaWdpbikKLXsKLSAgICBtX2Rlc2t0b3BOb3RpZmljYXRpb25BbGxvd2VkT3JpZ2lu
cy5wdXNoX2JhY2soSlNTdHJpbmdSZXRhaW4ob3JpZ2luKSk7Ci19Ci0KLWJvb2wgVGVzdFJ1bm5l
cjo6Y2hlY2tEZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbihKU1N0cmluZ1JlZiBvcmlnaW4p
Ci17Ci0gICAgc3RkOjp2ZWN0b3I8SlNTdHJpbmdSZWY+OjppdGVyYXRvciBpOwotICAgIGZvciAo
aSA9IG1fZGVza3RvcE5vdGlmaWNhdGlvbkFsbG93ZWRPcmlnaW5zLmJlZ2luKCk7Ci0gICAgICAg
ICBpICE9IG1fZGVza3RvcE5vdGlmaWNhdGlvbkFsbG93ZWRPcmlnaW5zLmVuZCgpOwotICAgICAg
ICAgKytpKSB7Ci0gICAgICAgIGlmIChKU1N0cmluZ0lzRXF1YWwoKmksIG9yaWdpbikpCi0gICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi12b2lk
IFRlc3RSdW5uZXI6Omlnbm9yZURlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMo
KQordm9pZCBUZXN0UnVubmVyOjppZ25vcmVMZWdhY3lXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdHMoKQogewotICAgIG1fYXJlRGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0c0lnbm9yZWQgPSBmYWxzZTsKKyAgICBtX2FyZUxlZ2FjeVdlYk5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0c0lnbm9yZWQgPSBmYWxzZTsKIH0KIAogdm9pZCBUZXN0UnVubmVyOjp3YWl0
VG9EdW1wV2F0Y2hkb2dUaW1lckZpcmVkKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAppbmRl
eCA4ODViMWRlNzI4MjY5YmE3NGEyMWNiYWU1ZGYyYzdkZGViMGY5YzczLi44OWViOTM1NTUxMTA2
NDYwOTQyNWEwZTIzN2Q5ODExODcwMTM2ZGNlIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5o
CkBAIC0xMzYsMTEgKzEzNiwxMiBAQCBwdWJsaWM6CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IHBsYXRmb3JtTmFtZSgpIGNvbnN0OwogI2VuZGlmCiAKLSAgICB2b2lkIGdyYW50RGVza3Rv
cE5vdGlmaWNhdGlvblBlcm1pc3Npb24oSlNTdHJpbmdSZWYgb3JpZ2luKTsKLSAgICBib29sIGNo
ZWNrRGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24oSlNTdHJpbmdSZWYgb3JpZ2luKTsKLSAg
ICB2b2lkIGlnbm9yZURlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMoKTsKLSAg
ICBib29sIGFyZURlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdHNJZ25vcmVkKCkg
Y29uc3QgeyByZXR1cm4gbV9hcmVEZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Rz
SWdub3JlZDsgfQotICAgIHZvaWQgc2ltdWxhdGVEZXNrdG9wTm90aWZpY2F0aW9uQ2xpY2soSlNT
dHJpbmdSZWYgdGl0bGUpOworICAgIHZvaWQgaWdub3JlTGVnYWN5V2ViTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RzKCk7CisgICAgdm9pZCBzaW11bGF0ZUxlZ2FjeVdlYk5vdGlmaWNhdGlv
bkNsaWNrKEpTU3RyaW5nUmVmIHRpdGxlKTsKKyAgICB2b2lkIGdyYW50V2ViTm90aWZpY2F0aW9u
UGVybWlzc2lvbihKU1N0cmluZ1JlZiBvcmlnaW4pOworICAgIHZvaWQgZGVueVdlYk5vdGlmaWNh
dGlvblBlcm1pc3Npb24oSlNTdHJpbmdSZWYgb3JpZ2luKTsKKyAgICB2b2lkIHJlbW92ZUFsbFdl
Yk5vdGlmaWNhdGlvblBlcm1pc3Npb25zKCk7CisgICAgdm9pZCBzaW11bGF0ZVdlYk5vdGlmaWNh
dGlvbkNsaWNrKEpTVmFsdWVSZWYgbm90aWZpY2F0aW9uKTsKIAogICAgIGJvb2wgZWxlbWVudERv
ZXNBdXRvQ29tcGxldGVGb3JFbGVtZW50V2l0aElkKEpTU3RyaW5nUmVmIGlkKTsKIApAQCAtNDE3
LDcgKzQxOCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3VzZURlZmVycmVkRnJhbWVMb2FkaW5n
OwogICAgIGJvb2wgbV9zaG91bGRQYWludEJyb2tlbkltYWdlOwogICAgIGJvb2wgbV9zaG91bGRT
dGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZDsKLSAgICBib29sIG1fYXJlRGVza3Rv
cE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0c0lnbm9yZWQ7CisgICAgYm9vbCBtX2FyZUxl
Z2FjeVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0c0lnbm9yZWQ7CiAgICAgYm9vbCBt
X2N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcjsKIAogICAgIHN0ZDo6c3RyaW5nIG1fYXV0aGVudGlj
YXRpb25Vc2VybmFtZTsKQEAgLTQzMCw5ICs0MzEsNiBAQCBwcml2YXRlOgogICAgIAogICAgIC8v
IGJhc2U2NCBlbmNvZGVkIFdBViBhdWRpbyBkYXRhIGlzIHN0b3JlZCBoZXJlLgogICAgIHN0ZDo6
c3RyaW5nIG1fZW5jb2RlZEF1ZGlvRGF0YTsKLSAgICAKLSAgICAvLyBvcmlnaW5zIHdoaWNoIGhh
dmUgYmVlbiBncmFudGVkIGRlc2t0b3Agbm90aWZpY2F0aW9uIGFjY2VzcwotICAgIHN0ZDo6dmVj
dG9yPEpTU3RyaW5nUmVmPiBtX2Rlc2t0b3BOb3RpZmljYXRpb25BbGxvd2VkT3JpZ2luczsKIAog
ICAgIHN0ZDo6bWFwPHN0ZDo6c3RyaW5nLCBzdGQ6OnN0cmluZz4gbV9VUkxzVG9SZWRpcmVjdDsK
ICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1
bm5lckJsYWNrQmVycnkuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0
UnVubmVyQmxhY2tCZXJyeS5jcHAKaW5kZXggZjYzOTVmYmYwZGRlYjNlMGY1YmIxZWM4ZThhNmM5
ZTI2MmQyYWQyZS4uNjA3NDYxNDllMzUyYTg3MDE1ZmM5MmEzZTdhNjZiYjhmM2NjY2ZmMyAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tC
ZXJyeS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVy
QmxhY2tCZXJyeS5jcHAKQEAgLTgxOCw3ICs4MTgsMjMgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRN
b2NrU3BlZWNoSW5wdXREdW1wUmVjdChib29sKQogewogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNp
bXVsYXRlRGVza3RvcE5vdGlmaWNhdGlvbkNsaWNrKEpTU3RyaW5nUmVmIHRpdGxlKQordm9pZCBU
ZXN0UnVubmVyOjpncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oSlNTdHJpbmdSZWYgb3Jp
Z2luKQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OmRlbnlXZWJOb3RpZmljYXRpb25QZXJtaXNz
aW9uKEpTU3RyaW5nUmVmIGpzT3JpZ2luKQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OnJlbW92
ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25zKCkKK3sKK30KKwordm9pZCBUZXN0UnVubmVy
OjpzaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKEpTVmFsdWVSZWYganNOb3RpZmljYXRpb24p
Cit7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2ltdWxhdGVMZWdhY3lXZWJOb3RpZmljYXRpb25D
bGljayhKU1N0cmluZ1JlZiB0aXRsZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmNwcAppbmRleCBiYmM5ZjliYzZmMjhiN2U5OWI5YzM4
NzNiNGI5M2JjNzZlNjgzYjA0Li5mOTM3Y2FkMzc2NzFkNWM2ZTViMmJiYmRjMmVlYzRlMDdkZWYz
N2ViIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVu
bmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVy
LmNwcApAQCAtMTU1LDcgKzE1NSwxMCBAQCBEUlRUZXN0UnVubmVyOjpEUlRUZXN0UnVubmVyKFRl
c3RTaGVsbCogc2hlbGwpCiAgICAgYmluZE1ldGhvZCgiZXhlY0NvbW1hbmQiLCAmRFJUVGVzdFJ1
bm5lcjo6ZXhlY0NvbW1hbmQpOwogICAgIGJpbmRNZXRob2QoImZvcmNlUmVkU2VsZWN0aW9uQ29s
b3JzIiwgJkRSVFRlc3RSdW5uZXI6OmZvcmNlUmVkU2VsZWN0aW9uQ29sb3JzKTsKICNpZiBFTkFC
TEUoTk9USUZJQ0FUSU9OUykKLSAgICBiaW5kTWV0aG9kKCJncmFudERlc2t0b3BOb3RpZmljYXRp
b25QZXJtaXNzaW9uIiwgJkRSVFRlc3RSdW5uZXI6OmdyYW50RGVza3RvcE5vdGlmaWNhdGlvblBl
cm1pc3Npb24pOworICAgIGJpbmRNZXRob2QoImdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lv
biIsICZEUlRUZXN0UnVubmVyOjpncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24pOworICAg
IGJpbmRNZXRob2QoImRlbnlXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uIiwgJkRSVFRlc3RSdW5u
ZXI6OmRlbnlXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKTsKKyAgICBiaW5kTWV0aG9kKCJyZW1v
dmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9ucyIsICZEUlRUZXN0UnVubmVyOjpyZW1vdmVB
bGxXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9ucyk7CisgICAgYmluZE1ldGhvZCgic2ltdWxhdGVX
ZWJOb3RpZmljYXRpb25DbGljayIsICZEUlRUZXN0UnVubmVyOjpzaW11bGF0ZVdlYk5vdGlmaWNh
dGlvbkNsaWNrKTsKICNlbmRpZgogICAgIGJpbmRNZXRob2QoImZpbmRTdHJpbmciLCAmRFJUVGVz
dFJ1bm5lcjo6ZmluZFN0cmluZyk7CiAgICAgYmluZE1ldGhvZCgiaXNDb21tYW5kRW5hYmxlZCIs
ICZEUlRUZXN0UnVubmVyOjppc0NvbW1hbmRFbmFibGVkKTsKQEAgLTIzMyw3ICsyMzYsNyBAQCBE
UlRUZXN0UnVubmVyOjpEUlRUZXN0UnVubmVyKFRlc3RTaGVsbCogc2hlbGwpCiAgICAgYmluZE1l
dGhvZCgic2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQiLCAmRFJUVGVzdFJ1bm5l
cjo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOwogICAgIGJpbmRNZXRob2Qo
InNob3dXZWJJbnNwZWN0b3IiLCAmRFJUVGVzdFJ1bm5lcjo6c2hvd1dlYkluc3BlY3Rvcik7CiAj
aWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgYmluZE1ldGhvZCgic2ltdWxhdGVEZXNrdG9w
Tm90aWZpY2F0aW9uQ2xpY2siLCAmRFJUVGVzdFJ1bm5lcjo6c2ltdWxhdGVEZXNrdG9wTm90aWZp
Y2F0aW9uQ2xpY2spOworICAgIGJpbmRNZXRob2QoInNpbXVsYXRlTGVnYWN5V2ViTm90aWZpY2F0
aW9uQ2xpY2siLCAmRFJUVGVzdFJ1bm5lcjo6c2ltdWxhdGVMZWdhY3lXZWJOb3RpZmljYXRpb25D
bGljayk7CiAjZW5kaWYKICAgICBiaW5kTWV0aG9kKCJzdGFydFNwZWVjaElucHV0IiwgJkRSVFRl
c3RSdW5uZXI6OnN0YXJ0U3BlZWNoSW5wdXQpOwogICAgIGJpbmRNZXRob2QoInRlc3RSZXBhaW50
IiwgJkRSVFRlc3RSdW5uZXI6OnRlc3RSZXBhaW50KTsKQEAgLTExNzgsNyArMTE4MSw3IEBAIHZv
aWQgRFJUVGVzdFJ1bm5lcjo6Y2FsbFNob3VsZENsb3NlT25XZWJWaWV3KGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYsIENwcFZhcmlhbnQqCiB9CiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLXZv
aWQgRFJUVGVzdFJ1bm5lcjo6Z3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbihjb25z
dCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQordm9pZCBE
UlRUZXN0UnVubmVyOjpncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oY29uc3QgQ3BwQXJn
dW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICBpZiAoYXJn
dW1lbnRzLnNpemUoKSAhPSAxIHx8ICFhcmd1bWVudHNbMF0uaXNTdHJpbmcoKSkgewogICAgICAg
ICByZXN1bHQtPnNldChmYWxzZSk7CkBAIC0xMTkwLDcgKzExOTMsMjUgQEAgdm9pZCBEUlRUZXN0
UnVubmVyOjpncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYgYXIKICAgICByZXN1bHQtPnNldCh0cnVlKTsKIH0KIAotdm9pZCBEUlRUZXN0UnVu
bmVyOjpzaW11bGF0ZURlc2t0b3BOb3RpZmljYXRpb25DbGljayhjb25zdCBDcHBBcmd1bWVudExp
c3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQordm9pZCBEUlRUZXN0UnVubmVyOjpk
ZW55V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3Vt
ZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCisg
ICAgcmVzdWx0LT5zZXROdWxsKCk7Cit9CisKK3ZvaWQgRFJUVGVzdFJ1bm5lcjo6cmVtb3ZlQWxs
V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbnMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVu
dHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorICAg
IHJlc3VsdC0+c2V0TnVsbCgpOworfQorCit2b2lkIERSVFRlc3RSdW5uZXI6OnNpbXVsYXRlV2Vi
Tm90aWZpY2F0aW9uQ2xpY2soY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZh
cmlhbnQqIHJlc3VsdCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorICAgIHJlc3VsdC0+
c2V0TnVsbCgpOworfQorCit2b2lkIERSVFRlc3RSdW5uZXI6OnNpbXVsYXRlTGVnYWN5V2ViTm90
aWZpY2F0aW9uQ2xpY2soY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlh
bnQqIHJlc3VsdCkKIHsKICAgICBpZiAoYXJndW1lbnRzLnNpemUoKSAhPSAxIHx8ICFhcmd1bWVu
dHNbMF0uaXNTdHJpbmcoKSkgewogICAgICAgICByZXN1bHQtPnNldChmYWxzZSk7CmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmggYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmgKaW5kZXggZTljMDE3MWY5
YjEwNzU0NWQ0ZjNlYmJjNjEzZjc0ZGQ5NjNiNjgwNS4uMmZmZmQ1OTM2MGMyZjM1N2YxNTQzYTFl
YzlhOTIwZjBjMDdjZTRhZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vRFJUVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RS
VFRlc3RSdW5uZXIuaApAQCAtMjM0LDkgKzIzNCwxMiBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUo
Tk9USUZJQ0FUSU9OUykKICAgICAvLyBHcmFudHMgcGVybWlzc2lvbiBmb3IgZGVza3RvcCBub3Rp
ZmljYXRpb25zIHRvIGFuIG9yaWdpbgotICAgIHZvaWQgZ3JhbnREZXNrdG9wTm90aWZpY2F0aW9u
UGVybWlzc2lvbihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9p
ZCBncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oY29uc3QgQ3BwQXJndW1lbnRMaXN0Jiwg
Q3BwVmFyaWFudCopOworICAgIHZvaWQgZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgcmVtb3ZlQWxsV2Vi
Tm90aWZpY2F0aW9uUGVybWlzc2lvbnMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFu
dCopOworICAgIHZvaWQgc2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGljayhjb25zdCBDcHBBcmd1
bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgLy8gU2ltdWxhdGVzIGEgY2xpY2sgb24gYSBk
ZXNrdG9wIG5vdGlmaWNhdGlvbi4KLSAgICB2b2lkIHNpbXVsYXRlRGVza3RvcE5vdGlmaWNhdGlv
bkNsaWNrKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIHNp
bXVsYXRlTGVnYWN5V2ViTm90aWZpY2F0aW9uQ2xpY2soY29uc3QgQ3BwQXJndW1lbnRMaXN0Jiwg
Q3BwVmFyaWFudCopOwogI2VuZGlmCiAKICAgICB2b2lkIHNldERvbWFpblJlbGF4YXRpb25Gb3Ji
aWRkZW5Gb3JVUkxTY2hlbWUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCmluZGV4IDFiMWRjYTMy
Njg0MWMyOTA1MjlhYzE1NzRjOTY2ODJiYWNiNmM0OWUuLjhiOTEwODBjZDQ2NmVjMzA5MmZkOTYy
MzQ4YmNiZWRkYjBiMWM4M2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9U
ZXN0UnVubmVyRWZsLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5l
ckVmbC5jcHAKQEAgLTg4MCw3ICs4ODAsMjMgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRCYWNraW5n
U2NhbGVGYWN0b3IoZG91YmxlKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgVGVz
dFJ1bm5lcjo6c2ltdWxhdGVEZXNrdG9wTm90aWZpY2F0aW9uQ2xpY2soSlNTdHJpbmdSZWYgdGl0
bGUpCit2b2lkIFRlc3RSdW5uZXI6OmdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihKU1N0
cmluZ1JlZiBvcmlnaW4pCit7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6ZGVueVdlYk5vdGlmaWNh
dGlvblBlcm1pc3Npb24oSlNTdHJpbmdSZWYganNPcmlnaW4pCit7Cit9CisKK3ZvaWQgVGVzdFJ1
bm5lcjo6cmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbnMoKQoreworfQorCit2b2lk
IFRlc3RSdW5uZXI6OnNpbXVsYXRlV2ViTm90aWZpY2F0aW9uQ2xpY2soSlNWYWx1ZVJlZiBqc05v
dGlmaWNhdGlvbikKK3sKK30KKwordm9pZCBUZXN0UnVubmVyOjpzaW11bGF0ZUxlZ2FjeVdlYk5v
dGlmaWNhdGlvbkNsaWNrKEpTU3RyaW5nUmVmIHRpdGxlKQogewogfQogCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKaW5kZXggNDE1NzVkNzJmOTQ0ZWQ4ZWFiZmIy
NWU5MDkzYTAxYzkxY2EzZjdiYi4uODQ4Zjc4Y2ZhZTk5ODljYzM0M2VmMTc2MzM4MzBiMTE5MzY2
ZTk0NSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsu
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcApAQCAt
OTY3LDcgKzk2NywyMyBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldEJhY2tpbmdTY2FsZUZhY3Rvcihk
b3VibGUpCiB7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2ltdWxhdGVEZXNrdG9wTm90aWZpY2F0
aW9uQ2xpY2soSlNTdHJpbmdSZWYgdGl0bGUpCit2b2lkIFRlc3RSdW5uZXI6OmdyYW50V2ViTm90
aWZpY2F0aW9uUGVybWlzc2lvbihKU1N0cmluZ1JlZiBvcmlnaW4pCit7Cit9CisKK3ZvaWQgVGVz
dFJ1bm5lcjo6ZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oSlNTdHJpbmdSZWYganNPcmln
aW4pCit7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6cmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVy
bWlzc2lvbnMoKQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OnNpbXVsYXRlV2ViTm90aWZpY2F0
aW9uQ2xpY2soSlNWYWx1ZVJlZiBqc05vdGlmaWNhdGlvbikKK3sKK30KKwordm9pZCBUZXN0UnVu
bmVyOjpzaW11bGF0ZUxlZ2FjeVdlYk5vdGlmaWNhdGlvbkNsaWNrKEpTU3RyaW5nUmVmIHRpdGxl
KQogewogfQogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5l
ck1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCmluZGV4
IDFkN2RlODVlMmE2NjYzYmM4OGE3NmIwYzVmMGY3ZWIyNTExYzVmNmUuLmIzNmE4YWMzYmJkMDZi
MTE2MTMxODU3ZTQ5ZmYyNWUwMzFiNTY2YjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9U
ZXN0UnVubmVyTWFjLm1tCkBAIC0xMTYzLDkgKzExNjMsOCBAQCB2b2lkIFRlc3RSdW5uZXI6OnNl
dEJhY2tpbmdTY2FsZUZhY3Rvcihkb3VibGUgYmFja2luZ1NjYWxlRmFjdG9yKQogICAgIFtbbWFp
bkZyYW1lIHdlYlZpZXddIF9zZXRDdXN0b21CYWNraW5nU2NhbGVGYWN0b3I6YmFja2luZ1NjYWxl
RmFjdG9yXTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzaW11bGF0ZURlc2t0b3BOb3RpZmljYXRp
b25DbGljayhKU1N0cmluZ1JlZiB0aXRsZSkKK3ZvaWQgVGVzdFJ1bm5lcjo6c2ltdWxhdGVMZWdh
Y3lXZWJOb3RpZmljYXRpb25DbGljayhKU1N0cmluZ1JlZiBqc1RpdGxlKQogewotICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQuCiB9CiAKIHZvaWQgVGVzdFJ1bm5lcjo6cmVzZXRQYWdlVmlzaWJpbGl0
eSgpCkBAIC0xMTg3LDMgKzExODYsMjEgQEAgdm9pZCBUZXN0UnVubmVyOjpkZWxpdmVyV2ViSW50
ZW50KEpTU3RyaW5nUmVmLCBKU1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYpCiB7CiAgICAgLy8gRklY
TUU6IEltcGxlbWVudC4KIH0KKworCit2b2lkIFRlc3RSdW5uZXI6OmdyYW50V2ViTm90aWZpY2F0
aW9uUGVybWlzc2lvbihKU1N0cmluZ1JlZiBqc09yaWdpbikKK3sKK30KKwordm9pZCBUZXN0UnVu
bmVyOjpkZW55V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihKU1N0cmluZ1JlZiBqc09yaWdpbikK
K3sKK30KKwordm9pZCBUZXN0UnVubmVyOjpyZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNz
aW9ucygpCit7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2ltdWxhdGVXZWJOb3RpZmljYXRpb25D
bGljayhKU1ZhbHVlUmVmIGpzTm90aWZpY2F0aW9uKQoreworfQorCmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvVGVzdFJ1bm5lclF0LmNwcAppbmRleCBmMzVmZTI2MTRlZjNlZmYyMTA2ZTI0NTRjZTBi
ZmFlOWYwYjMwM2MzLi41ZTM2MjRmYzhlYjM1ZGYxNTgxMmYxZDViNzE2YTFlNmQyNWFjOWIwIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAKQEAgLTIwMiwyNCArMjAy
LDM0IEBAIGludCBUZXN0UnVubmVyOjp3aW5kb3dDb3VudCgpCiAgICAgcmV0dXJuIG1fZHJ0LT53
aW5kb3dDb3VudCgpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OmdyYW50RGVza3RvcE5vdGlmaWNh
dGlvblBlcm1pc3Npb24oY29uc3QgUVN0cmluZyYgb3JpZ2luKQordm9pZCBUZXN0UnVubmVyOjpn
cmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oY29uc3QgUVN0cmluZyYgb3JpZ2luKQogewog
ICAgIFFXZWJGcmFtZSogZnJhbWUgPSBtX2RydC0+d2ViUGFnZSgpLT5tYWluRnJhbWUoKTsKICAg
ICBtX2RydC0+d2ViUGFnZSgpLT5zZXRGZWF0dXJlUGVybWlzc2lvbihmcmFtZSwgUVdlYlBhZ2U6
Ok5vdGlmaWNhdGlvbnMsIFFXZWJQYWdlOjpQZXJtaXNzaW9uR3JhbnRlZEJ5VXNlcik7CiAgICAg
bV9kZXNrdG9wTm90aWZpY2F0aW9uQWxsb3dlZE9yaWdpbnMuYXBwZW5kKG9yaWdpbik7CiB9CiAK
LXZvaWQgVGVzdFJ1bm5lcjo6aWdub3JlRGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0cygpCit2b2lkIFRlc3RSdW5uZXI6Omlnbm9yZUxlZ2FjeVdlYk5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0cygpCiB7CiAgICAgbV9pZ25vcmVEZXNrdG9wTm90aWZpY2F0aW9uID0gdHJ1
ZTsKIH0KIAotYm9vbCBUZXN0UnVubmVyOjpjaGVja0Rlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNz
aW9uKGNvbnN0IFFTdHJpbmcmIG9yaWdpbikKK3ZvaWQgVGVzdFJ1bm5lcjo6ZGVueVdlYk5vdGlm
aWNhdGlvblBlcm1pc3Npb24oY29uc3QgUVN0cmluZyYgb3JpZ2luKQogewotICAgIHJldHVybiAh
bV9pZ25vcmVEZXNrdG9wTm90aWZpY2F0aW9uICYmIG1fZGVza3RvcE5vdGlmaWNhdGlvbkFsbG93
ZWRPcmlnaW5zLmNvbnRhaW5zKG9yaWdpbik7CisgICAgLy8gRklYTUU6IGltcGxlbWVudC4KIH0K
IAotdm9pZCBUZXN0UnVubmVyOjpzaW11bGF0ZURlc2t0b3BOb3RpZmljYXRpb25DbGljayhjb25z
dCBRU3RyaW5nJiB0aXRsZSkKK3ZvaWQgVGVzdFJ1bm5lcjo6cmVtb3ZlQWxsV2ViTm90aWZpY2F0
aW9uUGVybWlzc2lvbnMoKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQuCit9CisKK3ZvaWQg
VGVzdFJ1bm5lcjo6c2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGljayhjb25zdCBRV2ViRWxlbWVu
dCYgbm90aWZpY2F0aW9uKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQuCit9CisKK3ZvaWQg
VGVzdFJ1bm5lcjo6c2ltdWxhdGVMZWdhY3lXZWJOb3RpZmljYXRpb25DbGljayhjb25zdCBRU3Ry
aW5nJiB0aXRsZSkKIHsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2ltdWxhdGVEZXNr
dG9wTm90aWZpY2F0aW9uQ2xpY2sodGl0bGUpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0
UnVubmVyUXQuaAppbmRleCA1MmQ1MTJjYTBlZWM5NGM0N2FhMGNmMDUyOGQwOWZlNjllN2I2NWY2
Li4zNmQ5ZDFiZTA2M2QxYTYzZDYzMWY3NGZkYWY5NTY5N2Q3N2QxMGI0IDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuaAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuaApAQCAtMTM0LDEwICsxMzQsMTIgQEAgcHVibGljIFFf
U0xPVFM6CiAgICAgdm9pZCBwcm92aXNpb25hbExvYWQoKTsKICAgICB2b2lkIHNldENsb3NlUmVt
YWluaW5nV2luZG93c1doZW5Db21wbGV0ZShib29sID0gZmFsc2UpIHsgfQogICAgIGludCB3aW5k
b3dDb3VudCgpOwotICAgIHZvaWQgZ3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbihj
b25zdCBRU3RyaW5nJiBvcmlnaW4pOwotICAgIHZvaWQgaWdub3JlRGVza3RvcE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0cygpOwotICAgIGJvb2wgY2hlY2tEZXNrdG9wTm90aWZpY2F0aW9u
UGVybWlzc2lvbihjb25zdCBRU3RyaW5nJiBvcmlnaW4pOwotICAgIHZvaWQgc2ltdWxhdGVEZXNr
dG9wTm90aWZpY2F0aW9uQ2xpY2soY29uc3QgUVN0cmluZyYgdGl0bGUpOworICAgIHZvaWQgaWdu
b3JlTGVnYWN5V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKCk7CisgICAgdm9pZCBz
aW11bGF0ZUxlZ2FjeVdlYk5vdGlmaWNhdGlvbkNsaWNrKGNvbnN0IFFTdHJpbmcmIHRpdGxlKTsK
KyAgICB2b2lkIGdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihjb25zdCBRU3RyaW5nJiBv
cmlnaW4pOworICAgIHZvaWQgZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oY29uc3QgUVN0
cmluZyYgb3JpZ2luKTsKKyAgICB2b2lkIHJlbW92ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Np
b25zKCk7CisgICAgdm9pZCBzaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKGNvbnN0IFFXZWJF
bGVtZW50Jik7CiAgICAgdm9pZCBkaXNwbGF5KCk7CiAgICAgdm9pZCBkaXNwbGF5SW52YWxpZGF0
ZWRSZWdpb24oKTsKICAgICB2b2lkIGNsZWFyQmFja0ZvcndhcmRMaXN0KCk7CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKaW5kZXggYTJjMTVlMzBkYzFlMDYwYmY1
ODUzNWFkYjc0Yjg0YjkwNzg4ZTRjMS4uNTMwMjYwYmJiZjYwZTUzZWZiMzhkNDFjNjgwZWI4MTA3
YzE0MWQ3MSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJX
aW4uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcApA
QCAtMTQzNCw3ICsxNDM0LDIzIEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0QmFja2luZ1NjYWxlRmFj
dG9yKGRvdWJsZSkKIHsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzaW11bGF0ZURlc2t0b3BOb3Rp
ZmljYXRpb25DbGljayhKU1N0cmluZ1JlZiB0aXRsZSkKK3ZvaWQgVGVzdFJ1bm5lcjo6Z3JhbnRX
ZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKEpTU3RyaW5nUmVmIG9yaWdpbikKK3sKK30KKwordm9p
ZCBUZXN0UnVubmVyOjpkZW55V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihKU1N0cmluZ1JlZiBq
c09yaWdpbikKK3sKK30KKwordm9pZCBUZXN0UnVubmVyOjpyZW1vdmVBbGxXZWJOb3RpZmljYXRp
b25QZXJtaXNzaW9ucygpCit7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2ltdWxhdGVXZWJOb3Rp
ZmljYXRpb25DbGljayhKU1ZhbHVlUmVmIGpzTm90aWZpY2F0aW9uKQoreworfQorCit2b2lkIFRl
c3RSdW5uZXI6OnNpbXVsYXRlTGVnYWN5V2ViTm90aWZpY2F0aW9uQ2xpY2soSlNTdHJpbmdSZWYg
dGl0bGUpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudC4KIH0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1MzEwYmNkM2M2
YWQ3NTMxYTMwOTE1YWVkN2JkYmY4MzQzMTBiYTJkLi5iNmZmMmM1NWRiYjVkNjhjNWMyOTg5YmFm
ZjBhMmU5NDhkMmRiYTZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTItMDgtMjQgIEpvbiBM
ZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIFdvcmsgdG93YXJkcyBXZWJLaXRUZXN0
UnVubmVyIHNob3VsZCBzdXBwb3J0IG5vdGlmaWNhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3OTY5CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8xMDM1NzYxOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZWZhY3RvciB0aGUgdGVzdHMgdG8gdXNlIHRoZSByZW5hbWVkIGxlZ2FjeSBBUEkgY2Fs
bHMuCisKKyAgICAgICAgKiBmYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1jaGVjay1w
ZXJtaXNzaW9uLmh0bWw6CisgICAgICAgICogZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlv
bnMtY2xpY2stZXZlbnQtZm9jdXMuaHRtbDoKKyAgICAgICAgKiBmYXN0L25vdGlmaWNhdGlvbnMv
bm90aWZpY2F0aW9ucy1jbGljay1ldmVudC5odG1sOgorICAgICAgICAqIGZhc3Qvbm90aWZpY2F0
aW9ucy9ub3RpZmljYXRpb25zLWRpc3BsYXktY2xvc2UtZXZlbnRzLmh0bWw6CisgICAgICAgICog
ZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtZG9jdW1lbnQtY2xvc2UtY3Jhc2guaHRt
bDoKKyAgICAgICAgKiBmYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1kb3VibGUtc2hv
dy5odG1sOgorICAgICAgICAqIGZhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWV2ZW50
LXN0b3AtcHJvcGFnYXRpb24uaHRtbC1kaXNhYmxlZDoKKyAgICAgICAgKiBmYXN0L25vdGlmaWNh
dGlvbnMvbm90aWZpY2F0aW9ucy1tdWx0aS1ldmVudHMuaHRtbC1kaXNhYmxlZDoKKyAgICAgICAg
KiBmYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1uby1pY29uLmh0bWw6CisgICAgICAg
ICogZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtcmVwbGFjZS5odG1sOgorICAgICAg
ICAqIGZhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLXJ0bC5odG1sOgorICAgICAgICAq
IGZhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLXdpdGgtcGVybWlzc2lvbi5odG1sOgor
ICAgICAgICAqIGZhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLXdpdGhvdXQtcGVybWlz
c2lvbi5odG1sOgorICAgICAgICAqIGZhc3Qvbm90aWZpY2F0aW9ucy9yZXNvdXJjZXMvbm90aWZp
Y2F0aW9ucy1jYW5jZWwtcmVxdWVzdC1wZXJtaXNzaW9uLmh0bWw6CisgICAgICAgICogcGxhdGZv
cm0vcXQtNS4wLXdrMi9Ta2lwcGVkOgorCiAyMDEyLTA4LTI3ICBWc2V2b2xvZCBWbGFzb3YgIDx2
c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IERlYnVnZ2VyIHNo
b3VsZCBicmVhayBvbiBmYWlsZWQgYXNzZXJ0aW9ucyBpbiBCcmVhayBvbiBleGNlcHRpb25zIG1v
ZGUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0
aW9ucy1jaGVjay1wZXJtaXNzaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlv
bnMvbm90aWZpY2F0aW9ucy1jaGVjay1wZXJtaXNzaW9uLmh0bWwKaW5kZXggNTkxYmM5MTBiODhh
ZTk4YmJhNDJhNmFhMTZjOThmNzYxMTY3YjljNy4uYzg5Mzg1OGQ4ZTk4MTQ3MjlhYjZlNWQzYTc0
YTIxMTVkZGNiMWFmMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25z
L25vdGlmaWNhdGlvbnMtY2hlY2stcGVybWlzc2lvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWNoZWNrLXBlcm1pc3Npb24uaHRtbApAQCAt
MjUsNyArMjUsNyBAQAogICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmdyYW50
RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24oImZpbGU6Ly8iKTsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLmdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbigiZmlsZTovLyIpOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBOID0gd2luZG93LndlYmtp
dE5vdGlmaWNhdGlvbnMuY2hlY2tQZXJtaXNzaW9uKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1jbGljay1ldmVudC1mb2N1cy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtY2xpY2stZXZl
bnQtZm9jdXMuaHRtbAppbmRleCBjZWVlMTk1OTc0NmZmMGM3ZTJmZGY3YWQyZDUzODJhZGI4YzM0
MzliLi5iYjM5YTBjNDJhMGE0YTEwMThjMDNmMTRhYmRkM2EwNTA0MDgyMDkyIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1jbGljay1ldmVu
dC1mb2N1cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmlj
YXRpb25zLWNsaWNrLWV2ZW50LWZvY3VzLmh0bWwKQEAgLTEwLDcgKzEwLDcgQEAKICAgICAgICAg
ZnVuY3Rpb24gcnVuVGVzdHMoKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmdyYW50RGVza3RvcE5vdGlm
aWNhdGlvblBlcm1pc3Npb24oImZpbGU6Ly8iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LmdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbigiZmlsZTovLyIpOwogICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOwogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3Blbldp
bmRvd3MoKTsKQEAgLTMyLDcgKzMyLDcgQEAKICAgICAgICAgICAgIE4uc2hvdygpOwogCiAgICAg
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNpbXVsYXRlRGVza3RvcE5vdGlmaWNhdGlvbkNsaWNrKCJOZXcgRS1tYWlsIik7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zaW11bGF0ZUxlZ2FjeVdlYk5vdGlmaWNhdGlvbkNsaWNr
KCJOZXcgRS1tYWlsIik7CiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
bm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWNsaWNrLWV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1jbGljay1ldmVudC5odG1sCmluZGV4
IDBlZTdmZDk2Y2E4NzA0MWEyOWNhYzE4NWU4YjQ5N2UyNTNkNjc1MmUuLjU4MzZhNWJhMDA2NGFl
MzAxYzlhZmFlNmE4OTU3YWRjODVjZmRjNjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
bm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWNsaWNrLWV2ZW50Lmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtY2xpY2stZXZlbnQuaHRtbApA
QCAtMTAsNyArMTAsNyBAQAogICAgICAgICBmdW5jdGlvbiBydW5UZXN0cygpCiAgICAgICAgIHsK
ICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuZ3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbigiZmlsZTovLyIpOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9u
KCJmaWxlOi8vIik7CiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICAgICAgICB9
CkBAIC0yMyw3ICsyMyw3IEBACiAgICAgICAgICAgICBOLm9uY2xpY2sgPSBmdW5jdGlvbigpIHsg
bG9nKCJQQVNTOiBjbGljayBldmVudCBmaXJlZC4iKTsgTi5jYW5jZWwoKTsgIH0KICAgICAgICAg
ICAgIE4uc2hvdygpOwogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zaW11bGF0ZURlc2t0b3BOb3RpZmljYXRpb25DbGljaygi
TmV3IEUtbWFpbCIpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2ltdWxhdGVMZWdhY3lX
ZWJOb3RpZmljYXRpb25DbGljaygiTmV3IEUtbWFpbCIpOwogICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1kaXNwbGF5LWNs
b3NlLWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNh
dGlvbnMtZGlzcGxheS1jbG9zZS1ldmVudHMuaHRtbAppbmRleCA3OTRjYTQ0Zjg4ZTc4NzY1NzJl
M2IyMzg4ZGQ1NDMyZDQzZTEyNGE3Li4zMTQ3MDQ4MGRlZjlkYjExZWU0NWVhMjllZDQ2N2E0YWIz
NjJiMDljIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZp
Y2F0aW9ucy1kaXNwbGF5LWNsb3NlLWV2ZW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
bm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWRpc3BsYXktY2xvc2UtZXZlbnRzLmh0bWwKQEAg
LTEwLDcgKzEwLDcgQEAKICAgICAgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQogICAgICAgICB7CiAg
ICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLmdyYW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24oImZpbGU6Ly8iKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbigi
ZmlsZTovLyIpOwogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMt
ZG9jdW1lbnQtY2xvc2UtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9u
cy9ub3RpZmljYXRpb25zLWRvY3VtZW50LWNsb3NlLWNyYXNoLmh0bWwKaW5kZXggN2IzYmEyZDE1
OTFkZTRiMGVhM2MzOGJjMWZjYTVjNjZlNzI5ODE0MC4uNTY5YWNhYjEwMWVmYzgxMDU1YjJmNDZl
YjdmZWMwMDIwYjQxMjJmMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRp
b25zL25vdGlmaWNhdGlvbnMtZG9jdW1lbnQtY2xvc2UtY3Jhc2guaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1kb2N1bWVudC1jbG9zZS1jcmFz
aC5odG1sCkBAIC02LDcgKzYsNyBAQAogICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsNCiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRD
YW5PcGVuV2luZG93cygpOw0KLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmdyYW50RGVza3Rv
cE5vdGlmaWNhdGlvblBlcm1pc3Npb24oImZpbGU6Ly8iKTsNCisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5ncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oImZpbGU6Ly8iKTsNCiAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7DQogICAgICAgICAgICAgfQ0K
ICAgICAgICAgICAgIA0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9u
cy9ub3RpZmljYXRpb25zLWRvdWJsZS1zaG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L25vdGlm
aWNhdGlvbnMvbm90aWZpY2F0aW9ucy1kb3VibGUtc2hvdy5odG1sCmluZGV4IDhjNmY3YmMyYjU0
OTU0MTljYjk1ZjJkMDQzNTc1OGZhYzVjYjI0MmMuLjViMGNhM2Y1NTM4ZmNmNzU0NmM5M2Q1ZGY0
YjU3Y2Q5N2Q5ZWE2ZTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9u
cy9ub3RpZmljYXRpb25zLWRvdWJsZS1zaG93Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9u
b3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtZG91YmxlLXNob3cuaHRtbApAQCAtMTAsNyArMTAs
NyBAQAogICAgICAgICBmdW5jdGlvbiBydW5UZXN0cygpCiAgICAgICAgIHsKICAgICAgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZ3Jh
bnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbigiZmlsZTovLyIpOworICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKCJmaWxlOi8vIik7
CiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1ldmVudC1zdG9w
LXByb3BhZ2F0aW9uLmh0bWwtZGlzYWJsZWQgYi9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlv
bnMvbm90aWZpY2F0aW9ucy1ldmVudC1zdG9wLXByb3BhZ2F0aW9uLmh0bWwtZGlzYWJsZWQKaW5k
ZXggNGVkYjhmOWJkZDM1ODcyMzM4NzVhNDgxZjUzMjI1MDUxMjQ1NDgwZC4uMmQ4ZDA0MzA1OTEx
Y2Y1ZjY4MTkzMmE0NjJkMDg2MjJhMzY1YjU1MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtZXZlbnQtc3RvcC1wcm9wYWdhdGlvbi5odG1s
LWRpc2FibGVkCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRp
b25zLWV2ZW50LXN0b3AtcHJvcGFnYXRpb24uaHRtbC1kaXNhYmxlZApAQCAtMTAsNyArMTAsNyBA
QAogICAgICAgICBmdW5jdGlvbiBydW5UZXN0cygpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZ3JhbnRE
ZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbigiZmlsZTovLyIpOworICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKCJmaWxlOi8vIik7CiAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgICAgICB9CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25z
LW11bHRpLWV2ZW50cy5odG1sLWRpc2FibGVkIGIvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRp
b25zL25vdGlmaWNhdGlvbnMtbXVsdGktZXZlbnRzLmh0bWwtZGlzYWJsZWQKaW5kZXggMzI3MGYy
MzAzZWY0YThiM2ZjMjZjYzE1YTk5ZmZkNDc3ODU5OTdmZC4uNzI0NDgyOGZmY2ZmNzFhOWUxYzBl
NjNkNTFkOWI5ZTMxZDAwM2ViYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmlj
YXRpb25zL25vdGlmaWNhdGlvbnMtbXVsdGktZXZlbnRzLmh0bWwtZGlzYWJsZWQKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtbXVsdGktZXZlbnRzLmh0
bWwtZGlzYWJsZWQKQEAgLTEwLDcgKzEwLDcgQEAKICAgICAgICAgZnVuY3Rpb24gcnVuVGVzdHMo
KQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLmdyYW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24o
ImZpbGU6Ly8iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmdyYW50V2ViTm90aWZpY2F0
aW9uUGVybWlzc2lvbigiZmlsZTovLyIpOwogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwogICAgICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1uby1pY29uLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1uby1pY29uLmh0bWwKaW5kZXggYjA2Mjk0
M2MxM2ZlODgyYWU0ZTNmMzNlMGNhNGQ1MTJlNjBhOTMyMi4uNDg5YjdmNTAxOGVjYjBiY2I4ODhm
OTUzZGM5ZDIxMTEyMmFhZDk4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmlj
YXRpb25zL25vdGlmaWNhdGlvbnMtbm8taWNvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
bm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLW5vLWljb24uaHRtbApAQCAtMTAsNyArMTAsNyBA
QAogICAgICAgICBmdW5jdGlvbiBydW5UZXN0cygpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZ3JhbnRE
ZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbigiZmlsZTovLyIpOworICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKCJmaWxlOi8vIik7CiAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgICAgICB9CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25z
LXJlcGxhY2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRp
b25zLXJlcGxhY2UuaHRtbAppbmRleCAyNGI5Y2VkNzVhMWMyNjMxNDk1YjM0MDM0MTk2YmIwNmZi
MTkzMDE1Li5lM2NkYWYyYTVhYTkyZTFlYTRiYmYwZmY0MzQ0YTYyNzUwNDJhMDM1IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1yZXBsYWNl
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMt
cmVwbGFjZS5odG1sCkBAIC0xMCw3ICsxMCw3IEBACiAgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3Rz
KCkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9u
KCJmaWxlOi8vIik7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ncmFudFdlYk5vdGlmaWNh
dGlvblBlcm1pc3Npb24oImZpbGU6Ly8iKTsKICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKICAgICAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtcnRsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1ydGwuaHRtbAppbmRleCA2YWJkZjY4MTk1ODk0
YThjOWM1ZjRhZDA4OTY2ZTJhZWY0MjhiOTcwLi5jNGZkZTNkNjJkNmI2NjA1MDZkM2M1Zjc5ZWI0
ZDU5MzE0ZWJkMDliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMv
bm90aWZpY2F0aW9ucy1ydGwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlv
bnMvbm90aWZpY2F0aW9ucy1ydGwuaHRtbApAQCAtMTAsNyArMTAsNyBAQAogICAgICAgICBmdW5j
dGlvbiBydW5UZXN0cygpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgewotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZ3JhbnREZXNrdG9wTm90aWZpY2F0
aW9uUGVybWlzc2lvbigiZmlsZTovLyIpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZ3Jh
bnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKCJmaWxlOi8vIik7CiAgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLXdpdGgtcGVybWlzc2lv
bi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtd2l0
aC1wZXJtaXNzaW9uLmh0bWwKaW5kZXggNTQxNjFhNGQzNDc5ZjA4OWJjMmMwM2U4M2ZhMGU2ZDU0
NTkxNzBmMy4uZTBlYTNlMDFlYjJkMjViOTFmZTM0ZDhkZDAxMWY2OWM2YTI4OTgwOSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtd2l0aC1w
ZXJtaXNzaW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlm
aWNhdGlvbnMtd2l0aC1wZXJtaXNzaW9uLmh0bWwKQEAgLTEwLDcgKzEwLDcgQEAKICAgICAgICAg
ZnVuY3Rpb24gcnVuVGVzdHMoKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmdyYW50RGVza3RvcE5vdGlm
aWNhdGlvblBlcm1pc3Npb24oImZpbGU6Ly8iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LmdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbigiZmlsZTovLyIpOwogICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtd2l0aG91dC1wZXJtaXNzaW9uLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy13aXRob3V0LXBl
cm1pc3Npb24uaHRtbAppbmRleCA2NTRhMjk0ZjliYWJlMTVjMjEwMTViNjNhMzFkNGVjYmM5MTUx
NDc4Li40MGFlNjVhNjYzNTgxNDZhODNhMDRhZTExZDdmYWQ0YjBmMzk1Nzk2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy13aXRob3V0LXBl
cm1pc3Npb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZp
Y2F0aW9ucy13aXRob3V0LXBlcm1pc3Npb24uaHRtbApAQCAtMTAsNyArMTAsNyBAQAogICAgICAg
ICBmdW5jdGlvbiBydW5UZXN0cygpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewotICAgICAgICAgICAgICAgIC8vIE5PIFBFUk1JU1NJT04gdGVzdFJ1bm5l
ci5ncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uKCJmaWxlOi8vIik7CisgICAgICAg
ICAgICAgICAgLy8gTk8gUEVSTUlTU0lPTiB0ZXN0UnVubmVyLmdyYW50V2ViTm90aWZpY2F0aW9u
UGVybWlzc2lvbigiZmlsZTovLyIpOwogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwogICAgICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L25v
dGlmaWNhdGlvbnMvcmVzb3VyY2VzL25vdGlmaWNhdGlvbnMtY2FuY2VsLXJlcXVlc3QtcGVybWlz
c2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL3Jlc291cmNlcy9ub3Rp
ZmljYXRpb25zLWNhbmNlbC1yZXF1ZXN0LXBlcm1pc3Npb24uaHRtbAppbmRleCA3YjRjYjRjNWRl
Yjc5OWRmNTRiMDUwYTlhNTlmYTQwZWUzOTdlYzRhLi40Mzg5N2M5YWI5NDZjM2EyNmM1MTIzMGQ2
YzVlMmI1NTBlYzAxOTQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlv
bnMvcmVzb3VyY2VzL25vdGlmaWNhdGlvbnMtY2FuY2VsLXJlcXVlc3QtcGVybWlzc2lvbi5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9yZXNvdXJjZXMvbm90aWZpY2F0
aW9ucy1jYW5jZWwtcmVxdWVzdC1wZXJtaXNzaW9uLmh0bWwKQEAgLTEzLDcgKzEzLDcgQEAKICAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5pZ25vcmVEZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RzKCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5pZ25vcmVMZWdhY3lXZWJO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMoKTsKICAgICAgICAgICAgIH0KIAogICAgICAg
ICAgICAgd2luZG93LndlYmtpdE5vdGlmaWNhdGlvbnMucmVxdWVzdFBlcm1pc3Npb24oCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC01LjAtd2syL1NraXBwZWQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC01LjAtd2syL1NraXBwZWQKaW5kZXggZjM2NTYzNzEzMWY5ZjQ1N2Q4
YmE3MzY4MGE5NWRjMjYzN2VjMmI3Ny4uYTU2NGI1YjJiMzAwOTgyMzZhZjg3ZjkyMmMxNjg0MDVl
MjYwZDVkNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtNS4wLXdrMi9Ta2lw
cGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LTUuMC13azIvU2tpcHBlZApAQCAtMTQx
LDcgKzE0MSw3IEBAIGZhc3QvdGV4dC9mb3JtYXQtY29udHJvbC5odG1sCiBmYXN0L3VybC9hbmNo
b3IuaHRtbAogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9iYWQtc3ViLXByb3Rv
Y29sLW5vbi1hc2NpaS5odG1sCiAKLSMgbGF5b3V0VGVzdENvbnRyb2xsZXIuaWdub3JlRGVza3Rv
cE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0cyBpcyB1bmltcGxlbWVudGVkCisjIGxheW91
dFRlc3RDb250cm9sbGVyLmlnbm9yZUxlZ2FjeVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0cyBpcyB1bmltcGxlbWVudGVkCiBmYXN0L25vdGlmaWNhdGlvbnMKIAogIyBsYXlvdXRUZXN0
Q29udHJvbGxlci5zZXRTY3JvbGxiYXJQb2xpY3kgaXMgdW5pbXBsZW1lbnRlZAo=
</data>
<flag name="review"
          id="171350"
          type_id="1"
          status="+"
          setter="ap"
    />
    <flag name="commit-queue"
          id="171985"
          type_id="3"
          status="-"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>