<?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>85034</bug_id>
          
          <creation_ts>2012-04-27 00:35:16 -0700</creation_ts>
          <short_desc>Convert setPrivateBrowsingEnabled to use InternalSettings interface</short_desc>
          <delta_ts>2012-05-23 13:45:40 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>ap</cc>
    
    <cc>dglazkov</cc>
    
    <cc>gustavo</cc>
    
    <cc>marcelo.lira</cc>
    
    <cc>morrita</cc>
    
    <cc>pnormand</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>611294</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-04-27 00:35:16 -0700</bug_when>
    <thetext>Adjust setPrivateBrowsingEnabled tests to use Internals instead of LayoutTestController interface. In my opinion, setPrivateBrowsingEnabled() is able to be supported by Internals because this feature just enables/disables private browsing feature in page settings. I found this function in our contributor meeting&apos;s hackaton. http://trac.webkit.org/wiki/Internals_Hackathon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611339</commentid>
    <comment_count>1</comment_count>
      <attachid>139158</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-04-27 02:47:33 -0700</bug_when>
    <thetext>Created attachment 139158
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611349</commentid>
    <comment_count>2</comment_count>
      <attachid>139158</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-04-27 03:14:17 -0700</bug_when>
    <thetext>Comment on attachment 139158
Patch for EWS

Attachment 139158 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12549152</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611364</commentid>
    <comment_count>3</comment_count>
      <attachid>139158</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-04-27 03:47:19 -0700</bug_when>
    <thetext>Comment on attachment 139158
Patch for EWS

Attachment 139158 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12556160</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611652</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-04-27 10:38:06 -0700</bug_when>
    <thetext>I&apos;m not sure that I&apos;m a fan of this change. WebKit part of this is non-trivial, with preferences being involved. It&apos;s quite easy to break WebKit part, and hard to discover that when using nightly builds.

Every mature port is going to have an API for private browsing, so it&apos;s not like we&apos;re dating any WebKit effort by not using the API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612495</commentid>
    <comment_count>5</comment_count>
      <attachid>139420</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-04-29 22:47:11 -0700</bug_when>
    <thetext>Created attachment 139420
Patch for EWS-2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612496</commentid>
    <comment_count>6</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-04-29 22:55:55 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; I&apos;m not sure that I&apos;m a fan of this change. WebKit part of this is non-trivial, with preferences being involved. It&apos;s quite easy to break WebKit part, and hard to discover that when using nightly builds.
&gt; 
&gt; Every mature port is going to have an API for private browsing, so it&apos;s not like we&apos;re dating any WebKit effort by not using the API.

In my humble opinion, this patch is valuable to reduce duplicated LTC functions. As you know, LTC in each port have implemented &quot;setPrivateBrowsingEnabled()&quot; in order to just enable/disable private browsing. It seems to me that this APIs are able to be replaced with InternalSettings APIs. 

InternalSettings already have supported js test APIs for setting.
http://trac.webkit.org/browser/trunk/Source/WebCore/testing/InternalSettings.h

In my opinion, we don&apos;t need to keep duplicating functions in LTC by this patch.

CC&apos;ing Ryosuke,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612501</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-04-29 23:43:26 -0700</bug_when>
    <thetext>duplicating code in LayoutTestController is an obvious cost, but let&apos;s not forget that the reason why we have regression testing is to catch regressions. Where there is an API, testing it is way more important than saving the effort of writing a few lines of code in LayoutTestController.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612504</commentid>
    <comment_count>8</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-04-29 23:57:20 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; duplicating code in LayoutTestController is an obvious cost, but let&apos;s not forget that the reason why we have regression testing is to catch regressions. Where there is an API, testing it is way more important than saving the effort of writing a few lines of code in LayoutTestController.

I thought this patch is accorded with moving from LTC to Internals. If other reviewers don&apos;t like this patch as well, I give up this patch. But, I&apos;m still thinking this patch is not bad to land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612505</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-04-30 00:11:07 -0700</bug_when>
    <thetext>As mentioned at contributor meeting hackathon, there are several things to consider when making the decision whether to move a LayoutTestController method:

- Everything that makes many ports skip tests should be considered.
- Functions that use internal WebKit methods whose only purpose is to support DRT (as opposed as providing public API) should be strongly considered.
- Functions that rely upon a significant amount of WebKit code may be best to remain in LayoutTestController, so that this code would be tested. 

In this case, the stated reasons for proposed change are (1) because WebKit layer is not very complicated, and (2) to reduce code duplication in LTC. I don&apos;t think that these are necessarily sufficient - it&apos;s best to look at changes that offer practical benefits along aforementioned lines first, and only then tackle ones where cost to benefit is questionable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612676</commentid>
    <comment_count>10</comment_count>
      <attachid>139420</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-04-30 08:57:58 -0700</bug_when>
    <thetext>Comment on attachment 139420
Patch for EWS-2

It seems like this patch is missing the changes to Source/WebCore/testing/InternalSettings.idl</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613194</commentid>
    <comment_count>11</comment_count>
      <attachid>139575</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-04-30 20:09:35 -0700</bug_when>
    <thetext>Created attachment 139575
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613196</commentid>
    <comment_count>12</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-04-30 20:11:14 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 139420 [details])
&gt; It seems like this patch is missing the changes to Source/WebCore/testing/InternalSettings.idl

Oops, I&apos;m sorry. patch in WebCore was missing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613213</commentid>
    <comment_count>13</comment_count>
      <attachid>139575</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-04-30 20:54:39 -0700</bug_when>
    <thetext>Comment on attachment 139575
Patch

r-, because as discussed above, we shouldn&apos;t be doing this, or at least shouldn&apos;t start with this. Making less contentious moves would give us more experience as to whether to want this, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614036</commentid>
    <comment_count>14</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-01 23:51:58 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 139575 [details])
&gt; r-, because as discussed above, we shouldn&apos;t be doing this, or at least shouldn&apos;t start with this. Making less contentious moves would give us more experience as to whether to want this, too.

Now I&apos;m understanding what your point as below,

Every ports don&apos;t support this feature yet. But, this feature will be supported by mature ports soon. So, it is better to test this feature by API, right?

If not so, please let me know your point.

Anyway, in this case, LTC implementation is not complicate as well as aim of test is clear. In addition, all ports supports private browsing feature, can we move this to internals further? Because, this is common feature supported by all ports.

I don&apos;t still understand why this moving can break WebKit part easily. If you don&apos;t mind, could you explain your concern again ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614037</commentid>
    <comment_count>15</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-01 23:54:14 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Anyway, in this case, LTC implementation is not complicate as well as aim of test is clear. In addition, all ports supports private browsing feature, can we move this to internals further? Because, this is common feature supported by all ports.

Does this setting need to be plumbed through WebKit2 layer?

&gt; I don&apos;t still understand why this moving can break WebKit part easily. If you don&apos;t mind, could you explain your concern again ?

I suspect that things like private browsing would depend on WebKit code, not just WebCore code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614039</commentid>
    <comment_count>16</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-05-01 23:59:29 -0700</bug_when>
    <thetext>&gt; I don&apos;t still understand why this moving can break WebKit part easily. If you don&apos;t mind, could you explain your concern again ?

This change removes testing of WebKit layer, so future regressions would go undetected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614052</commentid>
    <comment_count>17</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-02 00:28:43 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; &gt; I don&apos;t still understand why this moving can break WebKit part easily. If you don&apos;t mind, could you explain your concern again ?
&gt; 
&gt; This change removes testing of WebKit layer, so future regressions would go undetected.

If there are something to do for private browsing, I don&apos;t tried to move to internals. However, this is just to enable / disable private browsing feature. So, I thought there is no possibility to be plumbed by WebKit1/WebKit2 layer. If you guys think port maintainers will modify these functions to do something further or add something into this LTC implementation in future, I also agree with your opinion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632001</commentid>
    <comment_count>18</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-05-23 13:45:40 -0700</bug_when>
    <thetext>*** Bug 87278 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139158</attachid>
            <date>2012-04-27 02:47:33 -0700</date>
            <delta_ts>2012-04-29 22:47:11 -0700</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>convert.patch</filename>
            <type>text/plain</type>
            <size>31346</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0OTY3NDRmLi43N2IyMmYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTItMDQt
MjcgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBD
b252ZXJ0IHNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQgdG8gdXNlIEludGVybmFscyBpbnRlcmZh
Y2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTAz
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbGwg
c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCBmdW5jdGlvbnMgZnJvbSBpbnRlcm5hbHMsIGJlY2F1
c2UgaXQgaXMgYWJsZSB0byB3b3JrIGluIHRoZQorICAgICAgICBjcm9zcy1wb3J0IHdheSB0aHJv
dWdoIHRoZSBJbnRlcm5hbHMgaW50ZXJmYWNlLgorCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS9jb29raWVzL3Jlc291cmNlcy9maXJzdC1wYXJ0eS1jb29raWUtYWxsb3cueHNsOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29va2llcy9yZXNvdXJjZXMvdGhpcmQtcGFydHkt
Y29va2llLWJsb2NraW5nLnhzbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tp
ZXMvdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLW1haW4tZnJhbWUuaHRtbDoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMvdGhpcmQtcGFydHktY29va2llLWJsb2NraW5n
LXVzZXItYWN0aW9uLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb29raWVz
L3RoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMv
c2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXByaXZhdGUtYnJvd3NpbmcuaHRtbDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW4td2syL1NraXBwZWQ6CisgICAgICAgICogcGx1Z2lucy9wcml2YXRl
LWJyb3dzaW5nLW1vZGUtMi5odG1sOgorICAgICAgICAqIHBsdWdpbnMvcHJpdmF0ZS1icm93c2lu
Zy1tb2RlLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9w
cml2YXRlLWJyb3dzaW5nLWFmZmVjdHMtc3RvcmFnZS5odG1sOgorICAgICAgICAqIHN0b3JhZ2Uv
ZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9wcml2YXRlLWJyb3dzaW5nLWFmZmVjdHMtc3RvcmFn
ZS5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvcHJpdmF0ZS1icm93c2luZy1ub3JlYWQtbm93cml0
ZS5odG1sOgorCiAyMDEyLTA0LTI2ICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIGRhdGFsaXN0OiBGb3JtIGNvbnRyb2wgaW4gYSA8ZGF0YWxpc3Q+IHNob3Vs
ZCBiZSBiYXJyZWQgZnJvbSBjb25zdHJhaW50IHZhbGlkYXRpb24KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29va2llcy9yZXNvdXJjZXMvZmlyc3QtcGFydHkt
Y29va2llLWFsbG93LnhzbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29va2ll
cy9yZXNvdXJjZXMvZmlyc3QtcGFydHktY29va2llLWFsbG93LnhzbAppbmRleCAzNjE4OTRhLi5j
Y2QyZTlmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tp
ZXMvcmVzb3VyY2VzL2ZpcnN0LXBhcnR5LWNvb2tpZS1hbGxvdy54c2wKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb29raWVzL3Jlc291cmNlcy9maXJzdC1wYXJ0eS1jb29r
aWUtYWxsb3cueHNsCkBAIC0xMSw4ICsxMSw4IEBAIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKIAogICAgIC8vIFN0YXJ0IHdpdGggYSBjbGVhbiBzdGF0ZSwgYXMgb3RoZXJ3aXNl
IGFuIGV4cGlyZWQgY29va2llIGZvciB0aGlzIGRvbWFpbiBjb3VsZCBhZmZlY3QgYmVoYXZpb3Ig
d2l0aCBDRk5ldHdvcmsuCiAgICAgLy8gQ2FuIGJlIHJlbW92ZWQgb25jZSByZGFyOi8vcHJvYmxl
bS8xMDA4MDEzMCBpcyBmaXhlZC4KLSAgICBpZiAobGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0UHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCkKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0UHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCh0cnVlKTsKKyAgICBpZiAoaW50ZXJuYWxzLnNldFByaXZhdGVC
cm93c2luZ0VuYWJsZWQpCisgICAgICAgIGludGVybmFscy5zZXRQcml2YXRlQnJvd3NpbmdFbmFi
bGVkKGRvY3VtZW50LCB0cnVlKTsKIAogICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEFsd2F5
c0FjY2VwdENvb2tpZXMoZmFsc2UpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9jb29raWVzL3Jlc291cmNlcy90aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tp
bmcueHNsIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb29raWVzL3Jlc291cmNl
cy90aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmcueHNsCmluZGV4IGEwYWIwNWIuLjNhNWY0ZGQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29va2llcy9yZXNv
dXJjZXMvdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLnhzbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMvcmVzb3VyY2VzL3RoaXJkLXBhcnR5LWNvb2tpZS1i
bG9ja2luZy54c2wKQEAgLTExLDggKzExLDggQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgewogCiAgICAgLy8gU3RhcnQgd2l0aCBhIGNsZWFuIHN0YXRlLCBhcyBvdGhlcndpc2Ug
YW4gZXhwaXJlZCBjb29raWUgZm9yIHRoaXMgZG9tYWluIGNvdWxkIGFmZmVjdCBiZWhhdmlvciB3
aXRoIENGTmV0d29yay4KICAgICAvLyBDYW4gYmUgcmVtb3ZlZCBvbmNlIHJkYXI6Ly9wcm9ibGVt
LzEwMDgwMTMwIGlzIGZpeGVkLgotICAgIGlmIChsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQcml2
YXRlQnJvd3NpbmdFbmFibGVkKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQcml2
YXRlQnJvd3NpbmdFbmFibGVkKHRydWUpOworICAgIGlmIChpbnRlcm5hbHMuc2V0UHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZCkKKyAgICAgICAgaW50ZXJuYWxzLnNldFByaXZhdGVCcm93c2luZ0VuYWJs
ZWQoZG9jdW1lbnQsIHRydWUpOwogCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QWx3YXlz
QWNjZXB0Q29va2llcyhmYWxzZSk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2Nvb2tpZXMvdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLW1haW4tZnJh
bWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29va2llcy90aGlyZC1w
YXJ0eS1jb29raWUtYmxvY2tpbmctbWFpbi1mcmFtZS5odG1sCmluZGV4IGIxOTM3OWUuLjg5MDQ3
MmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29va2llcy90
aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctbWFpbi1mcmFtZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29va2llcy90aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tp
bmctbWFpbi1mcmFtZS5odG1sCkBAIC05LDggKzksOCBAQCBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CiAKICAgICAvLyBTdGFydCB3aXRoIGEgY2xlYW4gc3RhdGUsIGFzIG90aGVy
d2lzZSBhbiBleHBpcmVkIGNvb2tpZSBmb3IgdGhpcyBkb21haW4gY291bGQgYWZmZWN0IGJlaGF2
aW9yIHdpdGggQ0ZOZXR3b3JrLgogICAgIC8vIENhbiBiZSByZW1vdmVkIG9uY2UgPHJkYXI6Ly9w
cm9ibGVtLzEwMDgwMTMwPiBpcyBmaXhlZC4KLSAgICBpZiAobGF5b3V0VGVzdENvbnRyb2xsZXIu
c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCh0cnVlKTsKKyAgICBpZiAoaW50ZXJuYWxzLnNldFBy
aXZhdGVCcm93c2luZ0VuYWJsZWQpCisgICAgICAgIGludGVybmFscy5zZXRQcml2YXRlQnJvd3Np
bmdFbmFibGVkKGRvY3VtZW50LCB0cnVlKTsKIAogICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNl
dEFsd2F5c0FjY2VwdENvb2tpZXMoZmFsc2UpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jb29raWVzL3RoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy11
c2VyLWFjdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb29raWVz
L3RoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy11c2VyLWFjdGlvbi5odG1sCmluZGV4IDUxNDJi
NTcuLjI3MTBhM2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
Y29va2llcy90aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctdXNlci1hY3Rpb24uaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMvdGhpcmQtcGFydHktY29v
a2llLWJsb2NraW5nLXVzZXItYWN0aW9uLmh0bWwKQEAgLTksOCArOSw4IEBAIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKIAogICAgIC8vIFN0YXJ0IHdpdGggYSBjbGVhbiBzdGF0
ZSwgYXMgb3RoZXJ3aXNlIGFuIGV4cGlyZWQgY29va2llIGZvciB0aGlzIGRvbWFpbiBjb3VsZCBh
ZmZlY3QgYmVoYXZpb3Igd2l0aCBDRk5ldHdvcmsuCiAgICAgLy8gQ2FuIGJlIHJlbW92ZWQgb25j
ZSA8cmRhcjovL3Byb2JsZW0vMTAwODAxMzA+IGlzIGZpeGVkLgotICAgIGlmIChsYXlvdXRUZXN0
Q29udHJvbGxlci5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKQotICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHRydWUpOworICAgIGlmIChpbnRl
cm5hbHMuc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKKyAgICAgICAgaW50ZXJuYWxzLnNldFBy
aXZhdGVCcm93c2luZ0VuYWJsZWQoZG9jdW1lbnQsIHRydWUpOwogCiAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuc2V0QWx3YXlzQWNjZXB0Q29va2llcyhmYWxzZSk7CiB9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMvdGhpcmQtcGFydHktY29va2ll
LWJsb2NraW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMv
dGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLmh0bWwKaW5kZXggZmY0ODkwZi4uZjkxMDY4YiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb29raWVzL3RoaXJk
LXBhcnR5LWNvb2tpZS1ibG9ja2luZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY29va2llcy90aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmcuaHRtbApAQCAtOSw4
ICs5LDggQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogCiAgICAgLy8gU3Rh
cnQgd2l0aCBhIGNsZWFuIHN0YXRlLCBhcyBvdGhlcndpc2UgYW4gZXhwaXJlZCBjb29raWUgZm9y
IHRoaXMgZG9tYWluIGNvdWxkIGFmZmVjdCBiZWhhdmlvciB3aXRoIENGTmV0d29yay4KICAgICAv
LyBDYW4gYmUgcmVtb3ZlZCBvbmNlIDxyZGFyOi8vcHJvYmxlbS8xMDA4MDEzMD4gaXMgZml4ZWQu
Ci0gICAgaWYgKGxheW91dFRlc3RDb250cm9sbGVyLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQp
Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQo
dHJ1ZSk7CisgICAgaWYgKGludGVybmFscy5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKQorICAg
ICAgICBpbnRlcm5hbHMuc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChkb2N1bWVudCwgdHJ1ZSk7
CiAKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRBbHdheXNBY2NlcHRDb29raWVzKGZhbHNl
KTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
ZnJhbWUtYWNjZXNzLXByaXZhdGUtYnJvd3NpbmcuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXByaXZhdGUtYnJvd3NpbmcuaHRtbAppbmRl
eCBmYzA3NzQ5Li5hNzVkMGUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wcml2YXRlLWJyb3dzaW5nLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHJpdmF0ZS1i
cm93c2luZy5odG1sCkBAIC0yNSw3ICsyNSw3IEBACiAKICAgICAgICAgZnVuY3Rpb24gcnVuVGVz
dCgpIHsKICAgICAgICAgICAgIHZhciBzdWJGcmFtZSA9IHdpbmRvdy5mcmFtZXNbMF07Ci0gICAg
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHRy
dWUpOworICAgICAgICAgICAgaW50ZXJuYWxzLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoZG9j
dW1lbnQsIHRydWUpOwogCiAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgIGxvZygi
QXR0ZW1wdGluZyB0byB2aW9sYXRlIHRoZSBzYW1lLW9yaWdpbiBwb2xpY3kgd2l0aCBwcml2YXRl
IGJyb3dzaW5nIGVuYWJsZWQuICBJZiB0aGlzIHN1Y2NlZWRzIHRoZSBjb25zb2xlIHNob3VsZCBu
b3QgbG9nIHRoZSB2aW9sYXRpb24uIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4td2syL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4td2syL1NraXBwZWQK
aW5kZXggZjk3MDk3My4uYzNhZjA0YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luLXdrMi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi13azIvU2tpcHBl
ZApAQCAtNDAsNyArNDAsNyBAQCBmYXN0L2RvbS9pY29uLXVybC1wcm9wZXJ0eS5odG1sCiBmYXN0
L2hpc3RvcnkvZ2VzdHVyZS1iZWZvcmUtb25sb2FkLWZvcm0tc3VibWl0Lmh0bWwKIGZhc3QvaGlz
dG9yeS9nZXN0dXJlLWJlZm9yZS1vbmxvYWQtbG9jYXRpb24taHJlZi5odG1sCiAKLSMgV2ViS2l0
VGVzdFJ1bm5lciBuZWVkcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBsYXlvdXRUZXN0Q29udHJvbGxl
ci5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkCisjIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgYW4g
aW1wbGVtZW50YXRpb24gb2YgaW50ZXJuYWxzLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQKICMg
PGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjY5Nz4KIHBsdWdpbnMv
cHJpdmF0ZS1icm93c2luZy1tb2RlLTIuaHRtbAogcGx1Z2lucy9wcml2YXRlLWJyb3dzaW5nLW1v
ZGUuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGx1Z2lucy9wcml2YXRlLWJyb3dzaW5n
LW1vZGUtMi5odG1sIGIvTGF5b3V0VGVzdHMvcGx1Z2lucy9wcml2YXRlLWJyb3dzaW5nLW1vZGUt
Mi5odG1sCmluZGV4IDMzMjIxOGIuLmFlYjNkYTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
dWdpbnMvcHJpdmF0ZS1icm93c2luZy1tb2RlLTIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbHVn
aW5zL3ByaXZhdGUtYnJvd3NpbmctbW9kZS0yLmh0bWwKQEAgLTIwLDcgKzIwLDcgQEAgZnVuY3Rp
b24gcnVuVGVzdCgpCiAgICAgc2hvdWxkQmUoInBsdWdpbjEucHJpdmF0ZUJyb3dzaW5nRW5hYmxl
ZCIsICJmYWxzZSIpOwogCiAgICAgLy8gTm93IGVuYWJsZSBwcml2YXRlIGJyb3dzaW5nCi0gICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCh0cnVlKTsKKyAg
ICBpbnRlcm5hbHMuc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChkb2N1bWVudCwgdHJ1ZSk7CiAK
ICAgICBzaG91bGRCZSgicGx1Z2luMS5wcml2YXRlQnJvd3NpbmdFbmFibGVkIiwgInRydWUiKTsK
ICAgICAKQEAgLTMwLDcgKzMwLDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChwbHVnaW4yKTsKICAgICAKICAgICBzaG91bGRCZSgicGx1Z2luMi5w
cml2YXRlQnJvd3NpbmdFbmFibGVkIiwgInRydWUiKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGZhbHNlKTsKKyAgICBpbnRlcm5hbHMuc2V0UHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZChkb2N1bWVudCwgZmFsc2UpOwogICAgIHNob3VsZEJlKCJwbHVn
aW4xLnByaXZhdGVCcm93c2luZ0VuYWJsZWQiLCAiZmFsc2UiKTsKICAgICBzaG91bGRCZSgicGx1
Z2luMi5wcml2YXRlQnJvd3NpbmdFbmFibGVkIiwgImZhbHNlIik7CiB9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbHVnaW5zL3ByaXZhdGUtYnJvd3NpbmctbW9kZS5odG1sIGIvTGF5b3V0VGVz
dHMvcGx1Z2lucy9wcml2YXRlLWJyb3dzaW5nLW1vZGUuaHRtbAppbmRleCAzMGRiMGZlLi43MzJj
NzA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbHVnaW5zL3ByaXZhdGUtYnJvd3NpbmctbW9k
ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsdWdpbnMvcHJpdmF0ZS1icm93c2luZy1tb2RlLmh0
bWwKQEAgLTIxLDcgKzIxLDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgc2hvdWxkQmUoInBs
dWdpbjEuY2FjaGVkUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCIsICJmYWxzZSIpOwogCiAgICAgLy8g
Tm93IGVuYWJsZSBwcml2YXRlIGJyb3dzaW5nCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0UHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZChkb2N1bWVudCwgdHJ1ZSk7CiAKICAgICBzaG91bGRCZSgicGx1Z2luMS5w
cml2YXRlQnJvd3NpbmdFbmFibGVkIiwgInRydWUiKTsKICAgICBzaG91bGRCZSgicGx1Z2luMS5j
YWNoZWRQcml2YXRlQnJvd3NpbmdFbmFibGVkIiwgInRydWUiKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvcHJpdmF0ZS1icm93c2luZy1h
ZmZlY3RzLXN0b3JhZ2UuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2Nh
bHN0b3JhZ2UvcHJpdmF0ZS1icm93c2luZy1hZmZlY3RzLXN0b3JhZ2UuaHRtbAppbmRleCBiMmU0
NzIwLi43ZDE0MGJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uv
bG9jYWxzdG9yYWdlL3ByaXZhdGUtYnJvd3NpbmctYWZmZWN0cy1zdG9yYWdlLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9wcml2YXRlLWJyb3dz
aW5nLWFmZmVjdHMtc3RvcmFnZS5odG1sCkBAIC0yMyw3ICsyMyw3IEBAIGZ1bmN0aW9uIHJ1blRl
c3QoKQogICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpOwogICAgIAogICAgIGxvY2FsU3RvcmFnZS5z
ZXRJdGVtKCJ0ZXN0SXRlbSIsICJJbml0aWFsVmFsdWUiKTsgICAgCi0gICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMu
c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChkb2N1bWVudCwgdHJ1ZSk7CiAgICAgbG9nKCJJbml0
aWFsIHZhbHVlIG9mIHRlc3RJdGVtIGlzOiAiICsgbG9jYWxTdG9yYWdlLmdldEl0ZW0oInRlc3RJ
dGVtIikpOwogCiAgICAgdHJ5IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZG9t
c3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9wcml2YXRlLWJyb3dzaW5nLWFmZmVjdHMtc3RvcmFnZS5o
dG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL3ByaXZh
dGUtYnJvd3NpbmctYWZmZWN0cy1zdG9yYWdlLmh0bWwKaW5kZXggOGRkN2E2YS4uYWM5Mzk1ZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdl
L3ByaXZhdGUtYnJvd3NpbmctYWZmZWN0cy1zdG9yYWdlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL3ByaXZhdGUtYnJvd3NpbmctYWZmZWN0
cy1zdG9yYWdlLmh0bWwKQEAgLTIzLDcgKzIzLDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAg
fQogICAgIAogICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oInRlc3RJdGVtIiwgIkluaXRpYWxW
YWx1ZSIpOyAgICAKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQcml2YXRlQnJvd3NpbmdF
bmFibGVkKHRydWUpOworICAgIGludGVybmFscy5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGRv
Y3VtZW50LCB0cnVlKTsKICAgICBsb2coIkluaXRpYWwgdmFsdWUgb2YgdGVzdEl0ZW0gaXM6ICIg
KyBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCJ0ZXN0SXRlbSIpKTsKIAogICAgIHRyeSB7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL3ByaXZhdGUtYnJvd3Npbmctbm9yZWFkLW5vd3Jp
dGUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvcHJpdmF0ZS1icm93c2luZy1ub3JlYWQtbm93
cml0ZS5odG1sCmluZGV4IGI5YjU4ODIuLjE3MjMyNmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvcHJpdmF0ZS1icm93c2luZy1ub3JlYWQtbm93cml0ZS5odG1sCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvcHJpdmF0ZS1icm93c2luZy1ub3JlYWQtbm93cml0ZS5odG1sCkBAIC02
Nyw4ICs2Nyw4IEBAIGZ1bmN0aW9uIHJ1blByaXZhdGVCcm93c2luZ1Rlc3RzKCkKIHsKICAgICBj
b21wbGV0ZWQgPSAwOwogCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCh0cnVl
KTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFByaXZh
dGVCcm93c2luZ0VuYWJsZWQoZG9jdW1lbnQsIHRydWUpOwogICAgIAogICAgIGZvciAoaSBpbiBw
cml2YXRlQnJvd3NpbmdTdGF0ZW1lbnRzKQogICAgICAgICB0aGVUcmFuc2FjdGlvbi5leGVjdXRl
U3FsKHByaXZhdGVCcm93c2luZ1N0YXRlbWVudHNbaV0sIFtdLCBwcml2YXRlQnJvd3NpbmdTdWNj
ZXNzRnVuY3Rpb24sIHByaXZhdGVCcm93c2luZ0Vycm9yRnVuY3Rpb24pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDEyM2RjNDguLmQxOGNlMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMi0wNC0y
NyAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIENv
bnZlcnQgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCB0byB1c2UgSW50ZXJuYWxzIGludGVyZmFj
ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MDM0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHNl
dFByaXZhdGVCcm93c2luZ0VuYWJsZWQgZnVuY3Rpb25zLCBiZWNhdXNlIGl0IGlzIGFibGUgdG8g
d29yayBpbiB0aGUKKyAgICAgICAgY3Jvc3MtcG9ydCB3YXkgdGhyb3VnaCB0aGUgSW50ZXJuYWxz
IGludGVyZmFjZS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHNpbmNlIHdlIGFyZSBpbXByb3Zp
bmcgaGVyZSB0aGUgaW5mcmEtc3RydWN0dXJlIGZvciB0ZXN0aW5nCisgICAgICAgIGEgc3BlY2lm
aWMgbWV0aG9kLgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldFByaXZhdGVCcm93c2lu
Z0VuYWJsZWQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgIChJbnRl
cm5hbHMpOgorCiAyMDEyLTA0LTI2ICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIGRhdGFsaXN0OiBGb3JtIGNvbnRyb2wgaW4gYSA8ZGF0YWxpc3Q+IHNob3Vs
ZCBiZSBiYXJyZWQgZnJvbSBjb25zdHJhaW50IHZhbGlkYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcAppbmRleCAyMDViNjIzLi4wOTBkY2U0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCkBAIC0xMDEwLDQgKzEwMTAsMTYgQEAgdm9pZCBJbnRlcm5hbHM6Ondl
YmtpdERpZEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEVsZW1l
bnQqIGUKICAgICBkb2N1bWVudC0+d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KGVs
ZW1lbnQpOwogfQogI2VuZGlmCisKK3ZvaWQgSW50ZXJuYWxzOjpzZXRQcml2YXRlQnJvd3NpbmdF
bmFibGVkKERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBl
YykKK3sKKyAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+ZnJhbWUoKSB8fCAhZG9jdW1l
bnQtPmZyYW1lKCktPnNldHRpbmdzKCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19F
UlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBk
b2N1bWVudC0+ZnJhbWUoKS0+c2V0dGluZ3MoKTsKKyAgICBzZXR0aW5ncy0+c2V0UHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZChlbmFibGVkKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmgKaW5kZXggNTE2ZGRlYi4uNjQxNWIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
CkBAIC0xNzMsNiArMTczLDggQEAgcHVibGljOgogICAgIHZvaWQgd2Via2l0RGlkRXhpdEZ1bGxT
Y3JlZW5Gb3JFbGVtZW50KERvY3VtZW50KiwgRWxlbWVudCopOwogI2VuZGlmCiAKKyAgICB2b2lk
IHNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoRG9jdW1lbnQqLCBib29sIGVuYWJsZWQsIEV4Y2Vw
dGlvbkNvZGUmKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbHMoRG9jdW1lbnQq
KTsKICAgICBEb2N1bWVudE1hcmtlciogbWFya2VyQXQoTm9kZSosIGNvbnN0IFN0cmluZyYgbWFy
a2VyVHlwZSwgdW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbAppbmRleCA5ZmFmMzRlLi4yMTVlM2NmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsCkBAIC0xNDcsNiArMTQ3LDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAg
ICAgICAgIHZvaWQgd2Via2l0V2lsbEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChpbiBEb2N1bWVu
dCBkb2N1bWVudCwgaW4gRWxlbWVudCBlbGVtZW50KTsKICAgICAgICAgdm9pZCB3ZWJraXREaWRF
eGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIEVsZW1lbnQg
ZWxlbWVudCk7CiAjZW5kaWYKKyAgICAgICAgdm9pZCBzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVk
KGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKICAgICB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJL
aXQub3JkZXIgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJLaXQub3JkZXIKaW5kZXggNTE0ODgxNC4u
NDUyNjExZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViS2l0Lm9yZGVyCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYktpdC5vcmRlcgpAQCAtNzIsNyArNzIsNiBAQCBfX1pMMTRm
b250RnJvbU5TRm9udFA2TlNGb250CiArW1dlYkhpc3RvcnkoV2ViUHJpdmF0ZSkgX3NldFZpc2l0
ZWRMaW5rVHJhY2tpbmdFbmFibGVkOl0KICtbV2ViSGlzdG9yeShXZWJQcml2YXRlKSBfcmVtb3Zl
QWxsVmlzaXRlZExpbmtzXQogLVtXZWJQcmVmZXJlbmNlcyhXZWJQcml2YXRlKSBzZXRSZXNwZWN0
U3RhbmRhcmRTdHlsZUtleUVxdWl2YWxlbnRzOl0KLS1bV2ViUHJlZmVyZW5jZXMgc2V0UHJpdmF0
ZUJyb3dzaW5nRW5hYmxlZDpdCiAtW1dlYlByZWZlcmVuY2VzKFdlYlByaXZhdGUpIHNldERPTVBh
c3RlQWxsb3dlZDpdCiAtW1dlYlByZWZlcmVuY2VzIHNldENhY2hlTW9kZWw6XQogLVtXZWJQcmVm
ZXJlbmNlcyBfc2V0SW50ZWdlclZhbHVlOmZvcktleTpdCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzJhOTUyMi4uYmFjYzI0MyAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBA
CisyMDEyLTA0LTI3ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisK
KyAgICAgICAgQ29udmVydCBzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkIHRvIHVzZSBJbnRlcm5h
bHMgaW50ZXJmYWNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODUwMzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZW1vdmUgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCBmdW5jdGlvbnMsIGJlY2F1c2Ug
aXQgaXMgYWJsZSB0byB3b3JrIGluIHRoZQorICAgICAgICBjcm9zcy1wb3J0IHdheSB0aHJvdWdo
IHRoZSBJbnRlcm5hbHMgaW50ZXJmYWNlLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5
b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0
YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuaDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9ibGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHA6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVy
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5oOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5jcHA6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcDoKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChyZXNldERlZmF1bHRz
VG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0
VGVzdENvbnRyb2xsZXJNYWMubW06CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0
VGVzdENvbnRyb2xsZXJRdC5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0
VGVzdENvbnRyb2xsZXJRdC5oOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXIpOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChy
ZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5
b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyKToKKwog
MjAxMi0wNC0yNiAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBucnd0OiBjbGVhbiB1cCBzZXJ2ZXIgcHJvY2Vzcywgd2Via2l0IGRyaXZlciBzbyBjaHJvbWl1
bSBjYW4gdXNlIGl0CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHAKaW5kZXggZTA5NDRlNS4uYWU2YTQ3OSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMTQ1MiwxOCArMTQ1Miw2IEBAIHN0YXRpYyBK
U1ZhbHVlUmVmIHNldFBlcnNpc3RlbnRVc2VyU3R5bGVTaGVldExvY2F0aW9uQ2FsbGJhY2soSlND
b250ZXh0UmVmIGNvbnRlCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQp
OwogfQogCi1zdGF0aWMgSlNWYWx1ZVJlZiBzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkQ2FsbGJh
Y2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJl
ZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1
bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgIC8vIEhhcyBtYWMgJiB3aW5k
b3dzIGltcGxlbWVudGF0aW9uCi0gICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQotICAgICAgICBy
ZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci0KLSAgICBMYXlvdXRUZXN0Q29u
dHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RDb250cm9sbGVyKj4o
SlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICBjb250cm9sbGVyLT5zZXRQcml2
YXRlQnJvd3NpbmdFbmFibGVkKEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4dCwgYXJndW1lbnRzWzBd
KSk7Ci0KLSAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19Ci0KIHN0
YXRpYyBKU1ZhbHVlUmVmIHNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmRDYWxsYmFjayhK
U0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRo
aXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50
c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgLy8gSGFzIG1hYyAmIHdpbmRvd3Mg
aW1wbGVtZW50YXRpb24KQEAgLTI0NDIsNyArMjQzMCw2IEBAIEpTU3RhdGljRnVuY3Rpb24qIExh
eW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMoKQogICAgICAgICB7ICJzZXRQb3B1
cEJsb2NraW5nRW5hYmxlZCIsIHNldFBvcHVwQmxvY2tpbmdFbmFibGVkQ2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwKICAgICAgICAgeyAic2V0UGx1Z2luc0VuYWJsZWQiLCBzZXRQbHVnaW5zRW5hYmxlZENhbGxi
YWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVE
b250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFByaW50aW5nIiwgc2V0UHJpbnRpbmdDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAotICAgICAgICB7ICJzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkIiwgc2V0UHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQiLCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0U2VyaWFsaXplSFRUUExvYWRz
Iiwgc2V0U2VyaWFsaXplSFRUUExvYWRzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0
U21hcnRJbnNlcnREZWxldGVFbmFibGVkIiwgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkQ2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5oCmluZGV4IGExMTM4N2QuLjQ1NGEzZTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5
b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMTExLDcgKzExMSw2IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldFBlcnNpc3RlbnRVc2VyU3R5bGVTaGVldExvY2F0aW9uKEpTU3RyaW5nUmVmIHBhdGgpOwog
ICAgIHZvaWQgc2V0UGx1Z2luc0VuYWJsZWQoYm9vbCBmbGFnKTsKICAgICB2b2lkIHNldFBvcHVw
QmxvY2tpbmdFbmFibGVkKGJvb2wgZmxhZyk7Ci0gICAgdm9pZCBzZXRQcml2YXRlQnJvd3NpbmdF
bmFibGVkKGJvb2wgZmxhZyk7CiAgICAgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKGJvb2wgZmxhZyk7CiAgICAgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
Ym9vbCBmbGFnKTsKICAgICB2b2lkIHNldFRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyhib29s
IGN5Y2xlcyk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0xh
eW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9i
bGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHAKaW5kZXggYTYyNzU1
Yi4uYTMxYTdkOSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9M
YXlvdXRUZXN0Q29udHJvbGxlckJsYWNrQmVycnkuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2JsYWNrYmVycnkvTGF5b3V0VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcApAQCAtMjU3
LDEyICsyNTcsNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRQb3B1cEJsb2NraW5n
RW5hYmxlZChib29sIGZsYWcpCiAgICAgQmxhY2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVyVHJl
ZTo6Y3VycmVudEluc3RhbmNlKCktPnBhZ2UoKS0+c2V0dGluZ3MoKS0+c2V0SmF2YVNjcmlwdE9w
ZW5XaW5kb3dzQXV0b21hdGljYWxseSghZmxhZyk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIFVOVVNF
RF9QQVJBTShmbGFnKTsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiB2b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjpzZXRYU1NBdWRpdG9yRW5hYmxlZChib29sIGZsYWcpCiB7CiAgICAgQmxh
Y2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVyVHJlZTo6Y3VycmVudEluc3RhbmNlKCktPnBhZ2Uo
KS0+c2V0dGluZ3MoKS0+c2V0WFNTQXVkaXRvckVuYWJsZWQoZmxhZyk7CmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5k
ZXggNzM3ODE4My4uNDQwNjIyOCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMjM5LDcgKzIzOSw2IEBAIExh
eW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcihUZXN0U2hlbGwqIHNoZWxs
KQogICAgIGJpbmRNZXRob2QoInNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSIsICZMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKTsKICAgICBi
aW5kTWV0aG9kKCJzZXRDYWxsQ2xvc2VPbldlYlZpZXdzIiwgJkxheW91dFRlc3RDb250cm9sbGVy
OjpzZXRDYWxsQ2xvc2VPbldlYlZpZXdzKTsKICAgICBiaW5kTWV0aG9kKCJzZXRNYWluRnJhbWVJ
c0ZpcnN0UmVzcG9uZGVyIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRNYWluRnJhbWVJc0Zp
cnN0UmVzcG9uZGVyKTsKLSAgICBiaW5kTWV0aG9kKCJzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVk
IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKTsKICAg
ICBiaW5kTWV0aG9kKCJzZXRVc2VEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSIsICZMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c2V0VXNlRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUpOwogICAgIGJp
bmRNZXRob2QoInN0b3JlV2ViU2NyaXB0T2JqZWN0IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpz
dG9yZVdlYlNjcmlwdE9iamVjdCk7CiAgICAgYmluZE1ldGhvZCgiZGVsZXRlQWxsTG9jYWxTdG9y
YWdlIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpkZWxldGVBbGxMb2NhbFN0b3JhZ2UpOwpAQCAt
MTMxMiwxMSArMTMxMSw2IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldENhbGxDbG9z
ZU9uV2ViVmlld3MoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVuCiAgICAgcmVzdWx0LT5z
ZXROdWxsKCk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFByaXZhdGVCcm93
c2luZ0VuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQq
IHJlc3VsdCkKLXsKLSAgICByZXN1bHQtPnNldE51bGwoKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6c2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChjb25zdCBDcHBBcmd1
bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAgIGlmIChhcmd1
bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVudHNbMF0uaXNCb29sKCkpIHsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4
IGU4Zjg3ZTYuLmFhZTU1MTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMjc5LDcgKzI3OSw2IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGFkZERpc2FsbG93ZWRVUkwoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFy
aWFudCopOwogICAgIHZvaWQgY2FsbFNob3VsZENsb3NlT25XZWJWaWV3KGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIHNldENhbGxDbG9zZU9uV2ViVmlld3Mo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgc2V0UHJpdmF0
ZUJyb3dzaW5nRW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAK
ICAgICB2b2lkIHNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgc2V0WFNTQXVkaXRvckVuYWJsZWQoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVyRWZsLmNwcCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5jcHAKaW5kZXggNmMxZGQ3My4u
MzY4N2Y0MiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RD
b250cm9sbGVyRWZsLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvTGF5b3V0VGVz
dENvbnRyb2xsZXJFZmwuY3BwCkBAIC0zMjcsMTEgKzMyNyw2IEBAIGludCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6d2luZG93Q291bnQoKQogICAgIHJldHVybiBicm93c2VyLT5leHRyYVZpZXdzKCku
c2l6ZSgpICsgMTsgLy8gKyAxIGZvciB0aGUgbWFpbiB2aWV3LgogfQogCi12b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAg
ICBld2tfdmlld19zZXR0aW5nX3ByaXZhdGVfYnJvd3Npbmdfc2V0KGJyb3dzZXItPm1haW5WaWV3
KCksIGZsYWcpOwotfQotCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRKYXZhU2NyaXB0
Q2FuQWNjZXNzQ2xpcGJvYXJkKGJvb2wpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5j
cHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3Bw
CmluZGV4IDcxNmI3MmQuLjk3ZDg3ZmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcApAQCAtMzg3LDE1ICszODcsNiBAQCBp
bnQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OndpbmRvd0NvdW50KCkKICAgICByZXR1cm4gZ19zbGlz
dF9sZW5ndGgod2ViVmlld0xpc3QpICsgMTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgV2ViS2l0V2Vi
VmlldyogdmlldyA9IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dlYl92aWV3KG1haW5GcmFtZSk7Ci0g
ICAgQVNTRVJUKHZpZXcpOwotCi0gICAgV2ViS2l0V2ViU2V0dGluZ3MqIHNldHRpbmdzID0gd2Vi
a2l0X3dlYl92aWV3X2dldF9zZXR0aW5ncyh2aWV3KTsKLSAgICBnX29iamVjdF9zZXQoR19PQkpF
Q1Qoc2V0dGluZ3MpLCAiZW5hYmxlLXByaXZhdGUtYnJvd3NpbmciLCBmbGFnLCBOVUxMKTsKLX0K
LQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBi
b2FyZChib29sIGZsYWcpCiB7CiAgICAgV2ViS2l0V2ViVmlldyogdmlldyA9IHdlYmtpdF93ZWJf
ZnJhbWVfZ2V0X3dlYl92aWV3KG1haW5GcmFtZSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
RHVtcFJlbmRlclRyZWUubW0KaW5kZXggMzRiYzdmMS4uNDk1ZmUwNSAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtNjI3LDcgKzYyNyw2IEBAIHN0YXRp
YyB2b2lkIHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogICAgIFtwcmVmZXJlbmNl
cyBzZXRQbHVnSW5zRW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRUZXh0QXJlYXNB
cmVSZXNpemFibGU6WUVTXTsKIAotICAgIFtwcmVmZXJlbmNlcyBzZXRQcml2YXRlQnJvd3NpbmdF
bmFibGVkOk5PXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJs
ZWQ6WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0
b21hdGljYWxseTpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRKYXZhU2NyaXB0Q2FuQWNjZXNz
Q2xpcGJvYXJkOllFU107CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5
b3V0VGVzdENvbnRyb2xsZXJNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0
VGVzdENvbnRyb2xsZXJNYWMubW0KaW5kZXggY2YwOGU1NC4uYmUyM2Q3NyAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQpAQCAt
NTgwLDExICs1ODAsNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRNYWluRnJhbWVJ
c0ZpcnN0UmVzcG9uZGVyKGJvb2wgZmxhZykKICAgICBbW1ttYWluRnJhbWUgd2ViVmlld10gd2lu
ZG93XSBtYWtlRmlyc3RSZXNwb25kZXI6Zmlyc3RSZXNwb25kZXJdOwogfQogCi12b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgcHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZCkKLXsKLSAgICBbW1ttYWluRnJhbWUgd2ViVmlld10gcHJlZmVyZW5jZXNd
IHNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQ6cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZF07Ci19Ci0K
IHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFhTU0F1ZGl0b3JFbmFibGVkKGJvb2wgZW5h
YmxlZCkKIHsKICAgICBbW1ttYWluRnJhbWUgd2ViVmlld10gcHJlZmVyZW5jZXNdIHNldFhTU0F1
ZGl0b3JFbmFibGVkOmVuYWJsZWRdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
cXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9M
YXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAppbmRleCAwMzA5ZDBhLi41MmVkMmFlIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcApA
QCAtNDkzLDExICs0OTMsNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRGaXhlZENv
bnRlbnRzU2l6ZShpbnQgd2lkdGgsIGludCBoZWlnaHQpCiAgICAgbV90b3BMb2FkaW5nRnJhbWUt
PnBhZ2UoKS0+c2V0UHJlZmVycmVkQ29udGVudHNTaXplKFFTaXplKHdpZHRoLCBoZWlnaHQpKTsK
IH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxl
ZChib29sIGVuYWJsZSkKLXsKLSAgICBtX2RydC0+d2ViUGFnZSgpLT5zZXR0aW5ncygpLT5zZXRB
dHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpQcml2YXRlQnJvd3NpbmdFbmFibGVkLCBlbmFibGUpOwot
fQotCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJs
ZWQoYm9vbCBlbmFibGUpCiB7CiAgICAgbV9kcnQtPndlYlBhZ2UoKS0+c2V0dGluZ3MoKS0+c2V0
QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkLCBlbmFibGUp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xs
ZXJRdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5o
CmluZGV4IGViZDIyNzkuLjZlNzBlMTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9x
dC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKQEAgLTE2Miw3ICsxNjIsNiBAQCBwdWJsaWMgc2xv
dHM6CiAgICAgdm9pZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZSk7
CiAgICAgdm9pZCBzZXRWYWx1ZUZvclVzZXIoY29uc3QgUVdlYkVsZW1lbnQmLCBjb25zdCBRU3Ry
aW5nJiB2YWx1ZSk7CiAgICAgdm9pZCBzZXRGaXhlZENvbnRlbnRzU2l6ZShpbnQgd2lkdGgsIGlu
dCBoZWlnaHQpOwotICAgIHZvaWQgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sIGVuYWJs
ZSk7CiAgICAgdm9pZCBzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoYm9vbCBlbmFibGVkKTsK
ICAgICB2b2lkIHNldFBsdWdpbnNFbmFibGVkKGJvb2wgZmxhZyk7CiAgICAgdm9pZCBzZXRQb3B1
cEJsb2NraW5nRW5hYmxlZChib29sIGVuYWJsZSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCAxOTZmNGVhLi4wYjkwY2I2IDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTgzNSw3ICs4MzUsNiBAQCBz
dGF0aWMgdm9pZCByZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKElXZWJQcmVmZXJlbmNl
cyogcHJlZmVyZW5jZXMpCiAgICAgcHJlZmVyZW5jZXMtPnNldEVkaXRhYmxlTGlua0JlaGF2aW9y
KFdlYktpdEVkaXRhYmxlTGlua09ubHlMaXZlV2l0aFNoaWZ0S2V5KTsKICAgICBwcmVmZXJlbmNl
cy0+c2V0Rm9udFNtb290aGluZyhGb250U21vb3RoaW5nVHlwZVN0YW5kYXJkKTsKICAgICBwcmVm
ZXJlbmNlcy0+c2V0VXNlc1BhZ2VDYWNoZShGQUxTRSk7Ci0gICAgcHJlZmVyZW5jZXMtPnNldFBy
aXZhdGVCcm93c2luZ0VuYWJsZWQoRkFMU0UpOwogICAgIHByZWZlcmVuY2VzLT5zZXRKYXZhU2Ny
aXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KFRSVUUpOwogICAgIHByZWZlcmVuY2VzLT5z
ZXRKYXZhU2NyaXB0RW5hYmxlZChUUlVFKTsKICAgICBwcmVmZXJlbmNlcy0+c2V0VGFic1RvTGlu
a3MoRkFMU0UpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRl
c3RDb250cm9sbGVyV2luLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0
Q29udHJvbGxlcldpbi5jcHAKaW5kZXggYWU3ZTA5Yy4uOGEzY2NmOSAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCkBAIC00
NzQsMTkgKzQ3NCw2IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1haW5GcmFtZUlz
Rmlyc3RSZXNwb25kZXIoYm9vbCBmbGFnKQogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQhCiB9CiAK
LXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9v
bCBwcml2YXRlQnJvd3NpbmdFbmFibGVkKQotewotICAgIENPTVB0cjxJV2ViVmlldz4gd2ViVmll
dzsKLSAgICBpZiAoRkFJTEVEKGZyYW1lLT53ZWJWaWV3KCZ3ZWJWaWV3KSkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIENPTVB0cjxJV2ViUHJlZmVyZW5jZXM+IHByZWZlcmVuY2VzOwotICAgIGlm
IChGQUlMRUQod2ViVmlldy0+cHJlZmVyZW5jZXMoJnByZWZlcmVuY2VzKSkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIHByZWZlcmVuY2VzLT5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHByaXZh
dGVCcm93c2luZ0VuYWJsZWQpOwotfQotCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRY
U1NBdWRpdG9yRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgQ09NUHRyPElXZWJWaWV3PiB3
ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENv
bnRyb2xsZXJXeC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJv
bGxlcld4LmNwcAppbmRleCA1YTBmYzcyLi5lNDdhOTE3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcApAQCAtMTcyLDExICsxNzIs
NiBAQCBpbnQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OndpbmRvd0NvdW50KCkKICAgICByZXR1cm4g
MTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZChib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCi17Ci0gICAgLy8gRklYTUU6IGltcGxl
bWVudAotfQotCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRKYXZhU2NyaXB0Q2FuQWNj
ZXNzQ2xpcGJvYXJkKGJvb2wgZW5hYmxlZCkKIHsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L0xheW91dFRlc3RDb250cm9sbGVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsCmluZGV4IGQ4ZGVmNGQu
LmVlOTJjNTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRs
CkBAIC01NCw3ICs1NCw2IEBAIG1vZHVsZSBXVFIgewogICAgICAgICB2b2lkIHNldEZyYW1lRmxh
dHRlbmluZ0VuYWJsZWQoaW4gYm9vbGVhbiB2YWx1ZSk7CiAgICAgICAgIHZvaWQgc2V0R2VvbG9j
YXRpb25QZXJtaXNzaW9uKGluIGJvb2xlYW4gdmFsdWUpOwogICAgICAgICB2b2lkIHNldEphdmFT
Y3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoaW4gYm9vbGVhbiB2YWx1ZSk7Ci0gICAgICAgIHZvaWQg
c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChpbiBib29sZWFuIHZhbHVlKTsKICAgICAgICAgdm9p
ZCBzZXRQb3B1cEJsb2NraW5nRW5hYmxlZChpbiBib29sZWFuIHZhbHVlKTsKICAgICAgICAgdm9p
ZCBzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZChpbiBib29sZWFuIHZhbHVlKTsKICAgICAg
ICAgdm9pZCBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShpbiBET01TdHJpbmcgc291cmNl
T3JpZ2luLCBpbiBET01TdHJpbmcgZGVzdGluYXRpb25Qcm90b2NvbCwgaW4gRE9NU3RyaW5nIGRl
c3RpbmF0aW9uSG9zdCwgaW4gYm9vbGVhbiBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGJiMzk2OGMuLjEyYzFhNDI4OCAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTM4NCwxMSArMzg0LDYgQEAgdm9pZCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChib29sIGVuYWJs
ZWQpCiAgICAgIFdLQnVuZGxlU2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChJbmplY3Rl
ZEJ1bmRsZTo6c2hhcmVkKCkuYnVuZGxlKCksIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5wYWdl
R3JvdXAoKSwgZW5hYmxlZCk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFBy
aXZhdGVCcm93c2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgICBXS0J1bmRsZVNldFBy
aXZhdGVCcm93c2luZ0VuYWJsZWQoSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmJ1bmRsZSgpLCBJ
bmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFnZUdyb3VwKCksIGVuYWJsZWQpOwotfQotCiB2b2lk
IExheW91dFRlc3RDb250cm9sbGVyOjpzZXRQb3B1cEJsb2NraW5nRW5hYmxlZChib29sIGVuYWJs
ZWQpCiB7CiAgICAgIFdLQnVuZGxlU2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQoSW5qZWN0ZWRCdW5k
bGU6OnNoYXJlZCgpLmJ1bmRsZSgpLCBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFnZUdyb3Vw
KCksIGVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IGI0NmRhMjEuLmZhNTUy
YmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5
b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTg1LDcgKzg1LDYgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldEdl
b2xvY2F0aW9uUGVybWlzc2lvbihib29sKTsKICAgICB2b2lkIHNldEphdmFTY3JpcHRDYW5BY2Nl
c3NDbGlwYm9hcmQoYm9vbCk7Ci0gICAgdm9pZCBzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJv
b2wpOwogICAgIHZvaWQgc2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBz
ZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldEN1c3RvbVBv
bGljeURlbGVnYXRlKGJvb2wgZW5hYmxlZCwgYm9vbCBwZXJtaXNzaXZlID0gZmFsc2UpOwo=
</data>
<flag name="commit-queue"
          id="144723"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139420</attachid>
            <date>2012-04-29 22:47:11 -0700</date>
            <delta_ts>2012-04-30 20:09:21 -0700</delta_ts>
            <desc>Patch for EWS-2</desc>
            <filename>convert-patch.txt</filename>
            <type>text/plain</type>
            <size>28608</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBlNmYzZTBmLi42NzU2N2Yx
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMTItMDQtMjkgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBDb252ZXJ0IHNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQgdG8gdXNlIEludGVybmFs
U2V0dGluZ3MgaW50ZXJmYWNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODUwMzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXI6IEFkZCBzZXRQcml2
YXRlQnJvd3NpbmdFbmFibGVkIHN5bWJvbCBmaWx0ZXIuCisKIDIwMTItMDQtMjggIFl1cnkgU2Vt
aWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gR3Rr
IGJ1aWxkIGZpeCBhZnRlciByMTE1NTUzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDcwYTgwZWUuLjUyYjRhZWEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNiBAQAorMjAxMi0wNC0yOSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2lt
QHNhbXN1bmcuY29tPgorCisgICAgICAgIENvbnZlcnQgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxl
ZCB0byB1c2UgSW50ZXJuYWxTZXR0aW5ncyBpbnRlcmZhY2UuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTAzNAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbGwgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxl
ZCBmdW5jdGlvbnMgZnJvbSBpbnRlcm5hbHMsIGJlY2F1c2UgaXQgaXMgYWJsZSB0byB3b3JrIGlu
IHRoZQorICAgICAgICBjcm9zcy1wb3J0IHdheSB0aHJvdWdoIHRoZSBJbnRlcm5hbFNldHRpbmdz
IGludGVyZmFjZS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29va2llcy9yZXNv
dXJjZXMvZmlyc3QtcGFydHktY29va2llLWFsbG93LnhzbDoKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L2Nvb2tpZXMvcmVzb3VyY2VzL3RoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy54
c2w6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb29raWVzL3RoaXJkLXBhcnR5LWNv
b2tpZS1ibG9ja2luZy1tYWluLWZyYW1lLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS9jb29raWVzL3RoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy11c2VyLWFjdGlvbi5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29va2llcy90aGlyZC1wYXJ0eS1jb29r
aWUtYmxvY2tpbmcuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZy
YW1lLWFjY2Vzcy1wcml2YXRlLWJyb3dzaW5nLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vd2lu
LXdrMi9Ta2lwcGVkOgorICAgICAgICAqIHBsdWdpbnMvcHJpdmF0ZS1icm93c2luZy1tb2RlLTIu
aHRtbDoKKyAgICAgICAgKiBwbHVnaW5zL3ByaXZhdGUtYnJvd3NpbmctbW9kZS5odG1sOgorICAg
ICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvcHJpdmF0ZS1icm93c2luZy1h
ZmZlY3RzLXN0b3JhZ2UuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lv
bnN0b3JhZ2UvcHJpdmF0ZS1icm93c2luZy1hZmZlY3RzLXN0b3JhZ2UuaHRtbDoKKyAgICAgICAg
KiBzdG9yYWdlL3ByaXZhdGUtYnJvd3Npbmctbm9yZWFkLW5vd3JpdGUuaHRtbDoKKwogMjAxMi0w
NC0yOSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBzdXBwb3J0
IGZvciB0aGUgQmxvYiBjb25zdHJ1Y3RvciAoUGFydCAyKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb29raWVzL3Jlc291cmNlcy9maXJzdC1wYXJ0eS1jb29r
aWUtYWxsb3cueHNsIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb29raWVzL3Jl
c291cmNlcy9maXJzdC1wYXJ0eS1jb29raWUtYWxsb3cueHNsCmluZGV4IDM2MTg5NGEuLmQzMDIz
ZmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29va2llcy9y
ZXNvdXJjZXMvZmlyc3QtcGFydHktY29va2llLWFsbG93LnhzbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMvcmVzb3VyY2VzL2ZpcnN0LXBhcnR5LWNvb2tpZS1h
bGxvdy54c2wKQEAgLTExLDggKzExLDggQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgewogCiAgICAgLy8gU3RhcnQgd2l0aCBhIGNsZWFuIHN0YXRlLCBhcyBvdGhlcndpc2UgYW4g
ZXhwaXJlZCBjb29raWUgZm9yIHRoaXMgZG9tYWluIGNvdWxkIGFmZmVjdCBiZWhhdmlvciB3aXRo
IENGTmV0d29yay4KICAgICAvLyBDYW4gYmUgcmVtb3ZlZCBvbmNlIHJkYXI6Ly9wcm9ibGVtLzEw
MDgwMTMwIGlzIGZpeGVkLgotICAgIGlmIChsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQcml2YXRl
QnJvd3NpbmdFbmFibGVkKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQcml2YXRl
QnJvd3NpbmdFbmFibGVkKHRydWUpOworICAgIGlmIChpbnRlcm5hbHMuc2V0dGluZ3Muc2V0UHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCkKKyAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFByaXZh
dGVCcm93c2luZ0VuYWJsZWQodHJ1ZSk7CiAKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRB
bHdheXNBY2NlcHRDb29raWVzKGZhbHNlKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY29va2llcy9yZXNvdXJjZXMvdGhpcmQtcGFydHktY29va2llLWJs
b2NraW5nLnhzbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29va2llcy9yZXNv
dXJjZXMvdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLnhzbAppbmRleCBhMGFiMDViLi40NDFl
NDcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMv
cmVzb3VyY2VzL3RoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy54c2wKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb29raWVzL3Jlc291cmNlcy90aGlyZC1wYXJ0eS1jb29r
aWUtYmxvY2tpbmcueHNsCkBAIC0xMSw4ICsxMSw4IEBAIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKIAogICAgIC8vIFN0YXJ0IHdpdGggYSBjbGVhbiBzdGF0ZSwgYXMgb3RoZXJ3
aXNlIGFuIGV4cGlyZWQgY29va2llIGZvciB0aGlzIGRvbWFpbiBjb3VsZCBhZmZlY3QgYmVoYXZp
b3Igd2l0aCBDRk5ldHdvcmsuCiAgICAgLy8gQ2FuIGJlIHJlbW92ZWQgb25jZSByZGFyOi8vcHJv
YmxlbS8xMDA4MDEzMCBpcyBmaXhlZC4KLSAgICBpZiAobGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCh0cnVlKTsKKyAgICBpZiAoaW50ZXJuYWxzLnNldHRpbmdz
LnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQpCisgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHRydWUpOwogCiAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0QWx3YXlzQWNjZXB0Q29va2llcyhmYWxzZSk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMvdGhpcmQtcGFydHktY29va2llLWJsb2Nr
aW5nLW1haW4tZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29v
a2llcy90aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctbWFpbi1mcmFtZS5odG1sCmluZGV4IGIx
OTM3OWUuLmZiNjBlZjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY29va2llcy90aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctbWFpbi1mcmFtZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29va2llcy90aGlyZC1wYXJ0eS1j
b29raWUtYmxvY2tpbmctbWFpbi1mcmFtZS5odG1sCkBAIC05LDggKzksOCBAQCBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAKICAgICAvLyBTdGFydCB3aXRoIGEgY2xlYW4gc3Rh
dGUsIGFzIG90aGVyd2lzZSBhbiBleHBpcmVkIGNvb2tpZSBmb3IgdGhpcyBkb21haW4gY291bGQg
YWZmZWN0IGJlaGF2aW9yIHdpdGggQ0ZOZXR3b3JrLgogICAgIC8vIENhbiBiZSByZW1vdmVkIG9u
Y2UgPHJkYXI6Ly9wcm9ibGVtLzEwMDgwMTMwPiBpcyBmaXhlZC4KLSAgICBpZiAobGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKLSAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCh0cnVlKTsKKyAgICBpZiAoaW50
ZXJuYWxzLnNldHRpbmdzLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQpCisgICAgICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHRydWUpOwogCiAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0QWx3YXlzQWNjZXB0Q29va2llcyhmYWxzZSk7CiB9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMvdGhpcmQtcGFy
dHktY29va2llLWJsb2NraW5nLXVzZXItYWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2Nvb2tpZXMvdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXVzZXItYWN0
aW9uLmh0bWwKaW5kZXggNTE0MmI1Ny4uYzY2NDVlMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jb29raWVzL3RoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy11
c2VyLWFjdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29v
a2llcy90aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctdXNlci1hY3Rpb24uaHRtbApAQCAtOSw4
ICs5LDggQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogCiAgICAgLy8gU3Rh
cnQgd2l0aCBhIGNsZWFuIHN0YXRlLCBhcyBvdGhlcndpc2UgYW4gZXhwaXJlZCBjb29raWUgZm9y
IHRoaXMgZG9tYWluIGNvdWxkIGFmZmVjdCBiZWhhdmlvciB3aXRoIENGTmV0d29yay4KICAgICAv
LyBDYW4gYmUgcmVtb3ZlZCBvbmNlIDxyZGFyOi8vcHJvYmxlbS8xMDA4MDEzMD4gaXMgZml4ZWQu
Ci0gICAgaWYgKGxheW91dFRlc3RDb250cm9sbGVyLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQp
Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQo
dHJ1ZSk7CisgICAgaWYgKGludGVybmFscy5zZXR0aW5ncy5zZXRQcml2YXRlQnJvd3NpbmdFbmFi
bGVkKQorICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxl
ZCh0cnVlKTsKIAogICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEFsd2F5c0FjY2VwdENvb2tp
ZXMoZmFsc2UpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jb29raWVzL3RoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jb29raWVzL3RoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy5o
dG1sCmluZGV4IGZmNDg5MGYuLjk5NDc5YTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY29va2llcy90aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmcuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMvdGhpcmQtcGFydHkt
Y29va2llLWJsb2NraW5nLmh0bWwKQEAgLTksOCArOSw4IEBAIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKIAogICAgIC8vIFN0YXJ0IHdpdGggYSBjbGVhbiBzdGF0ZSwgYXMgb3Ro
ZXJ3aXNlIGFuIGV4cGlyZWQgY29va2llIGZvciB0aGlzIGRvbWFpbiBjb3VsZCBhZmZlY3QgYmVo
YXZpb3Igd2l0aCBDRk5ldHdvcmsuCiAgICAgLy8gQ2FuIGJlIHJlbW92ZWQgb25jZSA8cmRhcjov
L3Byb2JsZW0vMTAwODAxMzA+IGlzIGZpeGVkLgotICAgIGlmIChsYXlvdXRUZXN0Q29udHJvbGxl
ci5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHRydWUpOworICAgIGlmIChpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKKyAgICAgICAgaW50ZXJuYWxzLnNldHRp
bmdzLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQodHJ1ZSk7CiAKICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRBbHdheXNBY2NlcHRDb29raWVzKGZhbHNlKTsKIH0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXByaXZhdGUt
YnJvd3NpbmcuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJh
bWUtYWNjZXNzLXByaXZhdGUtYnJvd3NpbmcuaHRtbAppbmRleCBmYzA3NzQ5Li4wNjg5NjhhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFj
Y2Vzcy1wcml2YXRlLWJyb3dzaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHJpdmF0ZS1icm93c2luZy5odG1sCkBAIC0yNSw3
ICsyNSw3IEBACiAKICAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICAgICAgICAgIHZh
ciBzdWJGcmFtZSA9IHdpbmRvdy5mcmFtZXNbMF07Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHRydWUpOworICAgICAgICAgICAgaW50
ZXJuYWxzLnNldHRpbmdzLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQodHJ1ZSk7CiAKICAgICAg
ICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgbG9nKCJBdHRlbXB0aW5nIHRvIHZpb2xhdGUg
dGhlIHNhbWUtb3JpZ2luIHBvbGljeSB3aXRoIHByaXZhdGUgYnJvd3NpbmcgZW5hYmxlZC4gIElm
IHRoaXMgc3VjY2VlZHMgdGhlIGNvbnNvbGUgc2hvdWxkIG5vdCBsb2cgdGhlIHZpb2xhdGlvbi4i
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi13azIvU2tpcHBlZCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi13azIvU2tpcHBlZAppbmRleCBmOTcwOTczLi4wOTk3OWVm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4td2syL1NraXBwZWQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luLXdrMi9Ta2lwcGVkCkBAIC00MCw3ICs0MCw3IEBAIGZh
c3QvZG9tL2ljb24tdXJsLXByb3BlcnR5Lmh0bWwKIGZhc3QvaGlzdG9yeS9nZXN0dXJlLWJlZm9y
ZS1vbmxvYWQtZm9ybS1zdWJtaXQuaHRtbAogZmFzdC9oaXN0b3J5L2dlc3R1cmUtYmVmb3JlLW9u
bG9hZC1sb2NhdGlvbi1ocmVmLmh0bWwKIAotIyBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGFuIGlt
cGxlbWVudGF0aW9uIG9mIGxheW91dFRlc3RDb250cm9sbGVyLnNldFByaXZhdGVCcm93c2luZ0Vu
YWJsZWQKKyMgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZAogIyA8aHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNjk3PgogcGx1Z2lucy9wcml2YXRlLWJyb3dz
aW5nLW1vZGUtMi5odG1sCiBwbHVnaW5zL3ByaXZhdGUtYnJvd3NpbmctbW9kZS5odG1sCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbHVnaW5zL3ByaXZhdGUtYnJvd3NpbmctbW9kZS0yLmh0bWwg
Yi9MYXlvdXRUZXN0cy9wbHVnaW5zL3ByaXZhdGUtYnJvd3NpbmctbW9kZS0yLmh0bWwKaW5kZXgg
MzMyMjE4Yi4uZDVhZmQxOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGx1Z2lucy9wcml2YXRl
LWJyb3dzaW5nLW1vZGUtMi5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsdWdpbnMvcHJpdmF0ZS1i
cm93c2luZy1tb2RlLTIuaHRtbApAQCAtMjAsNyArMjAsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkK
ICAgICBzaG91bGRCZSgicGx1Z2luMS5wcml2YXRlQnJvd3NpbmdFbmFibGVkIiwgImZhbHNlIik7
CiAKICAgICAvLyBOb3cgZW5hYmxlIHByaXZhdGUgYnJvd3NpbmcKLSAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHRydWUpOworICAgIGludGVybmFscy5z
ZXR0aW5ncy5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHRydWUpOwogCiAgICAgc2hvdWxkQmUo
InBsdWdpbjEucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCIsICJ0cnVlIik7CiAgICAgCkBAIC0zMCw3
ICszMCw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQocGx1Z2luMik7CiAgICAgCiAgICAgc2hvdWxkQmUoInBsdWdpbjIucHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZCIsICJ0cnVlIik7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0UHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFByaXZhdGVC
cm93c2luZ0VuYWJsZWQoZmFsc2UpOwogICAgIHNob3VsZEJlKCJwbHVnaW4xLnByaXZhdGVCcm93
c2luZ0VuYWJsZWQiLCAiZmFsc2UiKTsKICAgICBzaG91bGRCZSgicGx1Z2luMi5wcml2YXRlQnJv
d3NpbmdFbmFibGVkIiwgImZhbHNlIik7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbHVn
aW5zL3ByaXZhdGUtYnJvd3NpbmctbW9kZS5odG1sIGIvTGF5b3V0VGVzdHMvcGx1Z2lucy9wcml2
YXRlLWJyb3dzaW5nLW1vZGUuaHRtbAppbmRleCAzMGRiMGZlLi5lNzQ1MzU3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbHVnaW5zL3ByaXZhdGUtYnJvd3NpbmctbW9kZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3BsdWdpbnMvcHJpdmF0ZS1icm93c2luZy1tb2RlLmh0bWwKQEAgLTIxLDcgKzIx
LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgc2hvdWxkQmUoInBsdWdpbjEuY2FjaGVkUHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCIsICJmYWxzZSIpOwogCiAgICAgLy8gTm93IGVuYWJsZSBwcml2
YXRlIGJyb3dzaW5nCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0UHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0UHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZCh0cnVlKTsKIAogICAgIHNob3VsZEJlKCJwbHVnaW4xLnByaXZhdGVCcm93c2luZ0Vu
YWJsZWQiLCAidHJ1ZSIpOwogICAgIHNob3VsZEJlKCJwbHVnaW4xLmNhY2hlZFByaXZhdGVCcm93
c2luZ0VuYWJsZWQiLCAidHJ1ZSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9wcml2YXRlLWJyb3dzaW5nLWFmZmVjdHMtc3RvcmFnZS5o
dG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9wcml2YXRl
LWJyb3dzaW5nLWFmZmVjdHMtc3RvcmFnZS5odG1sCmluZGV4IGIyZTQ3MjAuLjA4OWU2YmMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvcHJp
dmF0ZS1icm93c2luZy1hZmZlY3RzLXN0b3JhZ2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3ByaXZhdGUtYnJvd3NpbmctYWZmZWN0cy1zdG9y
YWdlLmh0bWwKQEAgLTIzLDcgKzIzLDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgbG9jYWxT
dG9yYWdlLmNsZWFyKCk7CiAgICAgCiAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oInRlc3RJdGVt
IiwgIkluaXRpYWxWYWx1ZSIpOyAgICAKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQcml2
YXRlQnJvd3NpbmdFbmFibGVkKHRydWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRQcml2
YXRlQnJvd3NpbmdFbmFibGVkKHRydWUpOwogICAgIGxvZygiSW5pdGlhbCB2YWx1ZSBvZiB0ZXN0
SXRlbSBpczogIiArIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ0ZXN0SXRlbSIpKTsKIAogICAgIHRy
eSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0
b3JhZ2UvcHJpdmF0ZS1icm93c2luZy1hZmZlY3RzLXN0b3JhZ2UuaHRtbCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9wcml2YXRlLWJyb3dzaW5nLWFmZmVj
dHMtc3RvcmFnZS5odG1sCmluZGV4IDhkZDdhNmEuLjk5YmFlN2UgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9wcml2YXRlLWJyb3dzaW5n
LWFmZmVjdHMtc3RvcmFnZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFn
ZS9zZXNzaW9uc3RvcmFnZS9wcml2YXRlLWJyb3dzaW5nLWFmZmVjdHMtc3RvcmFnZS5odG1sCkBA
IC0yMyw3ICsyMyw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogICAgIH0KICAgICAKICAgICBzZXNz
aW9uU3RvcmFnZS5zZXRJdGVtKCJ0ZXN0SXRlbSIsICJJbml0aWFsVmFsdWUiKTsgICAgCi0gICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCh0cnVlKTsKKyAg
ICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCh0cnVlKTsKICAg
ICBsb2coIkluaXRpYWwgdmFsdWUgb2YgdGVzdEl0ZW0gaXM6ICIgKyBzZXNzaW9uU3RvcmFnZS5n
ZXRJdGVtKCJ0ZXN0SXRlbSIpKTsKIAogICAgIHRyeSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL3ByaXZhdGUtYnJvd3Npbmctbm9yZWFkLW5vd3JpdGUuaHRtbCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvcHJpdmF0ZS1icm93c2luZy1ub3JlYWQtbm93cml0ZS5odG1sCmluZGV4IGI5
YjU4ODIuLjZmM2UxYzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvcHJpdmF0ZS1i
cm93c2luZy1ub3JlYWQtbm93cml0ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvcHJp
dmF0ZS1icm93c2luZy1ub3JlYWQtbm93cml0ZS5odG1sCkBAIC02Nyw4ICs2Nyw4IEBAIGZ1bmN0
aW9uIHJ1blByaXZhdGVCcm93c2luZ1Rlc3RzKCkKIHsKICAgICBjb21wbGV0ZWQgPSAwOwogCi0g
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCh0cnVlKTsKKyAgICBpZiAod2luZG93
LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFByaXZhdGVCcm93c2lu
Z0VuYWJsZWQodHJ1ZSk7CiAgICAgCiAgICAgZm9yIChpIGluIHByaXZhdGVCcm93c2luZ1N0YXRl
bWVudHMpCiAgICAgICAgIHRoZVRyYW5zYWN0aW9uLmV4ZWN1dGVTcWwocHJpdmF0ZUJyb3dzaW5n
U3RhdGVtZW50c1tpXSwgW10sIHByaXZhdGVCcm93c2luZ1N1Y2Nlc3NGdW5jdGlvbiwgcHJpdmF0
ZUJyb3dzaW5nRXJyb3JGdW5jdGlvbik7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggYmE5ZWY3YS4uMDYwNjNkNiAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA0
LTI5ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAg
Q29udmVydCBzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkIHRvIHVzZSBJbnRlcm5hbFNldHRpbmdz
IGludGVyZmFjZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg1MDM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVtb3ZlIHNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQgZnVuY3Rpb25zLCBiZWNhdXNlIGl0
IGlzIGFibGUgdG8gd29yayBpbiB0aGUKKyAgICAgICAgY3Jvc3MtcG9ydCB3YXkgdGhyb3VnaCB0
aGUgSW50ZXJuYWxTZXR0aW5ncyBpbnRlcmZhY2UuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvTGF5b3V0VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5
LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRy
b2xsZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250
cm9sbGVyLmg6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVyRWZsLmNwcDoKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKHJlc2V0RGVm
YXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9M
YXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9M
YXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9M
YXlvdXRUZXN0Q29udHJvbGxlclF0Lmg6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcik6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAg
ICAgKHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHA6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHA6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5p
ZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXIp
OgorCiAyMDEyLTA0LTI5ICBTdWRhcnNhbmEgTmFnaW5lbmkgIDxzdWRhcnNhbmEubmFnaW5lbmlA
bGludXguaW50ZWwuY29tPgogCiAgICAgICAgIFtHVEtdIERSVCBuZWVkcyBhbiBpbXBsZW1lbnRh
dGlvbiBvZiBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVu
Rm9yVVJMU2NoZW1lCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHAKaW5kZXggZTA5NDRlNS4uYWU2YTQ3OSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMTQ1MiwxOCArMTQ1Miw2IEBAIHN0YXRpYyBK
U1ZhbHVlUmVmIHNldFBlcnNpc3RlbnRVc2VyU3R5bGVTaGVldExvY2F0aW9uQ2FsbGJhY2soSlND
b250ZXh0UmVmIGNvbnRlCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQp
OwogfQogCi1zdGF0aWMgSlNWYWx1ZVJlZiBzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkQ2FsbGJh
Y2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJl
ZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1
bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgIC8vIEhhcyBtYWMgJiB3aW5k
b3dzIGltcGxlbWVudGF0aW9uCi0gICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQotICAgICAgICBy
ZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci0KLSAgICBMYXlvdXRUZXN0Q29u
dHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RDb250cm9sbGVyKj4o
SlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICBjb250cm9sbGVyLT5zZXRQcml2
YXRlQnJvd3NpbmdFbmFibGVkKEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4dCwgYXJndW1lbnRzWzBd
KSk7Ci0KLSAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19Ci0KIHN0
YXRpYyBKU1ZhbHVlUmVmIHNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmRDYWxsYmFjayhK
U0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRo
aXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50
c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgLy8gSGFzIG1hYyAmIHdpbmRvd3Mg
aW1wbGVtZW50YXRpb24KQEAgLTI0NDIsNyArMjQzMCw2IEBAIEpTU3RhdGljRnVuY3Rpb24qIExh
eW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMoKQogICAgICAgICB7ICJzZXRQb3B1
cEJsb2NraW5nRW5hYmxlZCIsIHNldFBvcHVwQmxvY2tpbmdFbmFibGVkQ2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwKICAgICAgICAgeyAic2V0UGx1Z2luc0VuYWJsZWQiLCBzZXRQbHVnaW5zRW5hYmxlZENhbGxi
YWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVE
b250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFByaW50aW5nIiwgc2V0UHJpbnRpbmdDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAotICAgICAgICB7ICJzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkIiwgc2V0UHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQiLCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0U2VyaWFsaXplSFRUUExvYWRz
Iiwgc2V0U2VyaWFsaXplSFRUUExvYWRzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0
U21hcnRJbnNlcnREZWxldGVFbmFibGVkIiwgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkQ2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5oCmluZGV4IGExMTM4N2QuLjQ1NGEzZTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5
b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMTExLDcgKzExMSw2IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldFBlcnNpc3RlbnRVc2VyU3R5bGVTaGVldExvY2F0aW9uKEpTU3RyaW5nUmVmIHBhdGgpOwog
ICAgIHZvaWQgc2V0UGx1Z2luc0VuYWJsZWQoYm9vbCBmbGFnKTsKICAgICB2b2lkIHNldFBvcHVw
QmxvY2tpbmdFbmFibGVkKGJvb2wgZmxhZyk7Ci0gICAgdm9pZCBzZXRQcml2YXRlQnJvd3NpbmdF
bmFibGVkKGJvb2wgZmxhZyk7CiAgICAgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKGJvb2wgZmxhZyk7CiAgICAgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
Ym9vbCBmbGFnKTsKICAgICB2b2lkIHNldFRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyhib29s
IGN5Y2xlcyk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0xh
eW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9i
bGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHAKaW5kZXggYTYyNzU1
Yi4uYTMxYTdkOSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9M
YXlvdXRUZXN0Q29udHJvbGxlckJsYWNrQmVycnkuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2JsYWNrYmVycnkvTGF5b3V0VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcApAQCAtMjU3
LDEyICsyNTcsNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRQb3B1cEJsb2NraW5n
RW5hYmxlZChib29sIGZsYWcpCiAgICAgQmxhY2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVyVHJl
ZTo6Y3VycmVudEluc3RhbmNlKCktPnBhZ2UoKS0+c2V0dGluZ3MoKS0+c2V0SmF2YVNjcmlwdE9w
ZW5XaW5kb3dzQXV0b21hdGljYWxseSghZmxhZyk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIFVOVVNF
RF9QQVJBTShmbGFnKTsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiB2b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjpzZXRYU1NBdWRpdG9yRW5hYmxlZChib29sIGZsYWcpCiB7CiAgICAgQmxh
Y2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVyVHJlZTo6Y3VycmVudEluc3RhbmNlKCktPnBhZ2Uo
KS0+c2V0dGluZ3MoKS0+c2V0WFNTQXVkaXRvckVuYWJsZWQoZmxhZyk7CmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5k
ZXggNzM3ODE4My4uNDQwNjIyOCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMjM5LDcgKzIzOSw2IEBAIExh
eW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcihUZXN0U2hlbGwqIHNoZWxs
KQogICAgIGJpbmRNZXRob2QoInNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSIsICZMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKTsKICAgICBi
aW5kTWV0aG9kKCJzZXRDYWxsQ2xvc2VPbldlYlZpZXdzIiwgJkxheW91dFRlc3RDb250cm9sbGVy
OjpzZXRDYWxsQ2xvc2VPbldlYlZpZXdzKTsKICAgICBiaW5kTWV0aG9kKCJzZXRNYWluRnJhbWVJ
c0ZpcnN0UmVzcG9uZGVyIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRNYWluRnJhbWVJc0Zp
cnN0UmVzcG9uZGVyKTsKLSAgICBiaW5kTWV0aG9kKCJzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVk
IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKTsKICAg
ICBiaW5kTWV0aG9kKCJzZXRVc2VEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSIsICZMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c2V0VXNlRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUpOwogICAgIGJp
bmRNZXRob2QoInN0b3JlV2ViU2NyaXB0T2JqZWN0IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpz
dG9yZVdlYlNjcmlwdE9iamVjdCk7CiAgICAgYmluZE1ldGhvZCgiZGVsZXRlQWxsTG9jYWxTdG9y
YWdlIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpkZWxldGVBbGxMb2NhbFN0b3JhZ2UpOwpAQCAt
MTMxMiwxMSArMTMxMSw2IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldENhbGxDbG9z
ZU9uV2ViVmlld3MoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVuCiAgICAgcmVzdWx0LT5z
ZXROdWxsKCk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFByaXZhdGVCcm93
c2luZ0VuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQq
IHJlc3VsdCkKLXsKLSAgICByZXN1bHQtPnNldE51bGwoKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6c2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChjb25zdCBDcHBBcmd1
bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAgIGlmIChhcmd1
bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVudHNbMF0uaXNCb29sKCkpIHsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4
IGU4Zjg3ZTYuLmFhZTU1MTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMjc5LDcgKzI3OSw2IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGFkZERpc2FsbG93ZWRVUkwoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFy
aWFudCopOwogICAgIHZvaWQgY2FsbFNob3VsZENsb3NlT25XZWJWaWV3KGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIHNldENhbGxDbG9zZU9uV2ViVmlld3Mo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgc2V0UHJpdmF0
ZUJyb3dzaW5nRW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAK
ICAgICB2b2lkIHNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgc2V0WFNTQXVkaXRvckVuYWJsZWQoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVyRWZsLmNwcCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5jcHAKaW5kZXggNmMxZGQ3My4u
MzY4N2Y0MiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RD
b250cm9sbGVyRWZsLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvTGF5b3V0VGVz
dENvbnRyb2xsZXJFZmwuY3BwCkBAIC0zMjcsMTEgKzMyNyw2IEBAIGludCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6d2luZG93Q291bnQoKQogICAgIHJldHVybiBicm93c2VyLT5leHRyYVZpZXdzKCku
c2l6ZSgpICsgMTsgLy8gKyAxIGZvciB0aGUgbWFpbiB2aWV3LgogfQogCi12b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAg
ICBld2tfdmlld19zZXR0aW5nX3ByaXZhdGVfYnJvd3Npbmdfc2V0KGJyb3dzZXItPm1haW5WaWV3
KCksIGZsYWcpOwotfQotCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRKYXZhU2NyaXB0
Q2FuQWNjZXNzQ2xpcGJvYXJkKGJvb2wpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5j
cHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3Bw
CmluZGV4IGFhMmUzZGUuLjE1ZDljZGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcApAQCAtMzg3LDE1ICszODcsNiBAQCBp
bnQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OndpbmRvd0NvdW50KCkKICAgICByZXR1cm4gZ19zbGlz
dF9sZW5ndGgod2ViVmlld0xpc3QpICsgMTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgV2ViS2l0V2Vi
VmlldyogdmlldyA9IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dlYl92aWV3KG1haW5GcmFtZSk7Ci0g
ICAgQVNTRVJUKHZpZXcpOwotCi0gICAgV2ViS2l0V2ViU2V0dGluZ3MqIHNldHRpbmdzID0gd2Vi
a2l0X3dlYl92aWV3X2dldF9zZXR0aW5ncyh2aWV3KTsKLSAgICBnX29iamVjdF9zZXQoR19PQkpF
Q1Qoc2V0dGluZ3MpLCAiZW5hYmxlLXByaXZhdGUtYnJvd3NpbmciLCBmbGFnLCBOVUxMKTsKLX0K
LQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBi
b2FyZChib29sIGZsYWcpCiB7CiAgICAgV2ViS2l0V2ViVmlldyogdmlldyA9IHdlYmtpdF93ZWJf
ZnJhbWVfZ2V0X3dlYl92aWV3KG1haW5GcmFtZSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
RHVtcFJlbmRlclRyZWUubW0KaW5kZXggMmFmNjhhOC4uNzAzNDE4ZSAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtNjMzLDcgKzYzMyw2IEBAIHN0YXRp
YyB2b2lkIHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogICAgIFtwcmVmZXJlbmNl
cyBzZXRQbHVnSW5zRW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRUZXh0QXJlYXNB
cmVSZXNpemFibGU6WUVTXTsKIAotICAgIFtwcmVmZXJlbmNlcyBzZXRQcml2YXRlQnJvd3NpbmdF
bmFibGVkOk5PXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJs
ZWQ6WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0
b21hdGljYWxseTpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRKYXZhU2NyaXB0Q2FuQWNjZXNz
Q2xpcGJvYXJkOllFU107CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5
b3V0VGVzdENvbnRyb2xsZXJNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0
VGVzdENvbnRyb2xsZXJNYWMubW0KaW5kZXggY2YwOGU1NC4uYmUyM2Q3NyAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQpAQCAt
NTgwLDExICs1ODAsNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRNYWluRnJhbWVJ
c0ZpcnN0UmVzcG9uZGVyKGJvb2wgZmxhZykKICAgICBbW1ttYWluRnJhbWUgd2ViVmlld10gd2lu
ZG93XSBtYWtlRmlyc3RSZXNwb25kZXI6Zmlyc3RSZXNwb25kZXJdOwogfQogCi12b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgcHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZCkKLXsKLSAgICBbW1ttYWluRnJhbWUgd2ViVmlld10gcHJlZmVyZW5jZXNd
IHNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQ6cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZF07Ci19Ci0K
IHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFhTU0F1ZGl0b3JFbmFibGVkKGJvb2wgZW5h
YmxlZCkKIHsKICAgICBbW1ttYWluRnJhbWUgd2ViVmlld10gcHJlZmVyZW5jZXNdIHNldFhTU0F1
ZGl0b3JFbmFibGVkOmVuYWJsZWRdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
cXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9M
YXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAppbmRleCAwMzA5ZDBhLi41MmVkMmFlIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcApA
QCAtNDkzLDExICs0OTMsNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRGaXhlZENv
bnRlbnRzU2l6ZShpbnQgd2lkdGgsIGludCBoZWlnaHQpCiAgICAgbV90b3BMb2FkaW5nRnJhbWUt
PnBhZ2UoKS0+c2V0UHJlZmVycmVkQ29udGVudHNTaXplKFFTaXplKHdpZHRoLCBoZWlnaHQpKTsK
IH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxl
ZChib29sIGVuYWJsZSkKLXsKLSAgICBtX2RydC0+d2ViUGFnZSgpLT5zZXR0aW5ncygpLT5zZXRB
dHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpQcml2YXRlQnJvd3NpbmdFbmFibGVkLCBlbmFibGUpOwot
fQotCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJs
ZWQoYm9vbCBlbmFibGUpCiB7CiAgICAgbV9kcnQtPndlYlBhZ2UoKS0+c2V0dGluZ3MoKS0+c2V0
QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkLCBlbmFibGUp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xs
ZXJRdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5o
CmluZGV4IGViZDIyNzkuLjZlNzBlMTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9x
dC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKQEAgLTE2Miw3ICsxNjIsNiBAQCBwdWJsaWMgc2xv
dHM6CiAgICAgdm9pZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZSk7
CiAgICAgdm9pZCBzZXRWYWx1ZUZvclVzZXIoY29uc3QgUVdlYkVsZW1lbnQmLCBjb25zdCBRU3Ry
aW5nJiB2YWx1ZSk7CiAgICAgdm9pZCBzZXRGaXhlZENvbnRlbnRzU2l6ZShpbnQgd2lkdGgsIGlu
dCBoZWlnaHQpOwotICAgIHZvaWQgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sIGVuYWJs
ZSk7CiAgICAgdm9pZCBzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoYm9vbCBlbmFibGVkKTsK
ICAgICB2b2lkIHNldFBsdWdpbnNFbmFibGVkKGJvb2wgZmxhZyk7CiAgICAgdm9pZCBzZXRQb3B1
cEJsb2NraW5nRW5hYmxlZChib29sIGVuYWJsZSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCAxOTZmNGVhLi4wYjkwY2I2IDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTgzNSw3ICs4MzUsNiBAQCBz
dGF0aWMgdm9pZCByZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKElXZWJQcmVmZXJlbmNl
cyogcHJlZmVyZW5jZXMpCiAgICAgcHJlZmVyZW5jZXMtPnNldEVkaXRhYmxlTGlua0JlaGF2aW9y
KFdlYktpdEVkaXRhYmxlTGlua09ubHlMaXZlV2l0aFNoaWZ0S2V5KTsKICAgICBwcmVmZXJlbmNl
cy0+c2V0Rm9udFNtb290aGluZyhGb250U21vb3RoaW5nVHlwZVN0YW5kYXJkKTsKICAgICBwcmVm
ZXJlbmNlcy0+c2V0VXNlc1BhZ2VDYWNoZShGQUxTRSk7Ci0gICAgcHJlZmVyZW5jZXMtPnNldFBy
aXZhdGVCcm93c2luZ0VuYWJsZWQoRkFMU0UpOwogICAgIHByZWZlcmVuY2VzLT5zZXRKYXZhU2Ny
aXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KFRSVUUpOwogICAgIHByZWZlcmVuY2VzLT5z
ZXRKYXZhU2NyaXB0RW5hYmxlZChUUlVFKTsKICAgICBwcmVmZXJlbmNlcy0+c2V0VGFic1RvTGlu
a3MoRkFMU0UpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRl
c3RDb250cm9sbGVyV2luLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0
Q29udHJvbGxlcldpbi5jcHAKaW5kZXggYWU3ZTA5Yy4uOGEzY2NmOSAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCkBAIC00
NzQsMTkgKzQ3NCw2IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1haW5GcmFtZUlz
Rmlyc3RSZXNwb25kZXIoYm9vbCBmbGFnKQogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQhCiB9CiAK
LXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9v
bCBwcml2YXRlQnJvd3NpbmdFbmFibGVkKQotewotICAgIENPTVB0cjxJV2ViVmlldz4gd2ViVmll
dzsKLSAgICBpZiAoRkFJTEVEKGZyYW1lLT53ZWJWaWV3KCZ3ZWJWaWV3KSkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIENPTVB0cjxJV2ViUHJlZmVyZW5jZXM+IHByZWZlcmVuY2VzOwotICAgIGlm
IChGQUlMRUQod2ViVmlldy0+cHJlZmVyZW5jZXMoJnByZWZlcmVuY2VzKSkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIHByZWZlcmVuY2VzLT5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHByaXZh
dGVCcm93c2luZ0VuYWJsZWQpOwotfQotCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRY
U1NBdWRpdG9yRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgQ09NUHRyPElXZWJWaWV3PiB3
ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENv
bnRyb2xsZXJXeC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJv
bGxlcld4LmNwcAppbmRleCA1YTBmYzcyLi5lNDdhOTE3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcApAQCAtMTcyLDExICsxNzIs
NiBAQCBpbnQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OndpbmRvd0NvdW50KCkKICAgICByZXR1cm4g
MTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZChib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCi17Ci0gICAgLy8gRklYTUU6IGltcGxl
bWVudAotfQotCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRKYXZhU2NyaXB0Q2FuQWNj
ZXNzQ2xpcGJvYXJkKGJvb2wgZW5hYmxlZCkKIHsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L0xheW91dFRlc3RDb250cm9sbGVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsCmluZGV4IGQ4ZGVmNGQu
LmVlOTJjNTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRs
CkBAIC01NCw3ICs1NCw2IEBAIG1vZHVsZSBXVFIgewogICAgICAgICB2b2lkIHNldEZyYW1lRmxh
dHRlbmluZ0VuYWJsZWQoaW4gYm9vbGVhbiB2YWx1ZSk7CiAgICAgICAgIHZvaWQgc2V0R2VvbG9j
YXRpb25QZXJtaXNzaW9uKGluIGJvb2xlYW4gdmFsdWUpOwogICAgICAgICB2b2lkIHNldEphdmFT
Y3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoaW4gYm9vbGVhbiB2YWx1ZSk7Ci0gICAgICAgIHZvaWQg
c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChpbiBib29sZWFuIHZhbHVlKTsKICAgICAgICAgdm9p
ZCBzZXRQb3B1cEJsb2NraW5nRW5hYmxlZChpbiBib29sZWFuIHZhbHVlKTsKICAgICAgICAgdm9p
ZCBzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZChpbiBib29sZWFuIHZhbHVlKTsKICAgICAg
ICAgdm9pZCBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShpbiBET01TdHJpbmcgc291cmNl
T3JpZ2luLCBpbiBET01TdHJpbmcgZGVzdGluYXRpb25Qcm90b2NvbCwgaW4gRE9NU3RyaW5nIGRl
c3RpbmF0aW9uSG9zdCwgaW4gYm9vbGVhbiBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDU1YmY5ZGQuLjZiOTIzNWMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5
b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0zODUsMTEgKzM4NSw2IEBAIHZvaWQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoYm9vbCBlbmFibGVk
KQogICAgICBXS0J1bmRsZVNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoSW5qZWN0ZWRC
dW5kbGU6OnNoYXJlZCgpLmJ1bmRsZSgpLCBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFnZUdy
b3VwKCksIGVuYWJsZWQpOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRQcml2
YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICAgV0tCdW5kbGVTZXRQcml2
YXRlQnJvd3NpbmdFbmFibGVkKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5idW5kbGUoKSwgSW5q
ZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnBhZ2VHcm91cCgpLCBlbmFibGVkKTsKLX0KLQogdm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQoYm9vbCBlbmFibGVk
KQogewogICAgICBXS0J1bmRsZVNldFBvcHVwQmxvY2tpbmdFbmFibGVkKEluamVjdGVkQnVuZGxl
OjpzaGFyZWQoKS5idW5kbGUoKSwgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnBhZ2VHcm91cCgp
LCBlbmFibGVkKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCBiNDZkYTIxLi5mYTU1MmJm
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91
dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC04NSw3ICs4NSw2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRHZW9s
b2NhdGlvblBlcm1pc3Npb24oYm9vbCk7CiAgICAgdm9pZCBzZXRKYXZhU2NyaXB0Q2FuQWNjZXNz
Q2xpcGJvYXJkKGJvb2wpOwotICAgIHZvaWQgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29s
KTsKICAgICB2b2lkIHNldFBvcHVwQmxvY2tpbmdFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0
QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRDdXN0b21Qb2xp
Y3lEZWxlZ2F0ZShib29sIGVuYWJsZWQsIGJvb2wgcGVybWlzc2l2ZSA9IGZhbHNlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139575</attachid>
            <date>2012-04-30 20:09:35 -0700</date>
            <delta_ts>2012-04-30 20:54:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85034-20120501120932.patch</filename>
            <type>text/plain</type>
            <size>36008</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1NjQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDEzYzkwZTI4NmZiZjY4
M2ExYWVkZjcwNzBhZjdhMDNlYzZlYzZiMy4uMTMwMTQ4NjMzNmI1M2M5ZTAwNWY5ZjI3Yjg2MTI5
MWNkYzA3Y2E3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA0LTMwICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgQ29udmVydCBz
ZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkIHRvIHVzZSBJbnRlcm5hbFNldHRpbmdzIGludGVyZmFj
ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MDM0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHNl
dFByaXZhdGVCcm93c2luZ0VuYWJsZWQgZnVuY3Rpb25zLCBiZWNhdXNlIGl0IGlzIGFibGUgdG8g
d29yayBpbiB0aGUKKyAgICAgICAgY3Jvc3MtcG9ydCB3YXkgdGhyb3VnaCB0aGUgSW50ZXJuYWxT
ZXR0aW5ncyBpbnRlcmZhY2UuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBzaW5jZSB3ZSBhcmUg
aW1wcm92aW5nIGhlcmUgdGhlIGluZnJhLXN0cnVjdHVyZSBmb3IgdGVzdGluZworICAgICAgICBh
IHNwZWNpZmljIG1ldGhvZC4KKworICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRQcml2YXRlQnJvd3Np
bmdFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5oOgorICAgICAgICAoSW50ZXJuYWxTZXR0aW5ncyk6CisgICAgICAgICogdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbDoKKwogMjAxMi0wNC0zMCAgQmV0aCBEYWtpbiAgPGJk
YWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgyOTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjU1NjVhMTIzMDY2MjZjMTgwMTY4OWRmZjBk
YTA1YzdkMTNlODZkYS4uNmJjM2ZlMTM0YzgzNzU1NDJlYjgwMzA4Y2UwNDNkZGYxNzcyMzI1YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTA0LTMwICBHeXV5b3VuZyBLaW0gIDxn
eXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgQ29udmVydCBzZXRQcml2YXRlQnJv
d3NpbmdFbmFibGVkIHRvIHVzZSBJbnRlcm5hbFNldHRpbmdzIGludGVyZmFjZS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MDM0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi5kZWY6
IEFkZCBzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkIHN5bWJvbCBmaWx0ZXIuCisKIDIwMTItMDQt
MzAgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtHVEtdIEltcGxlbWVudCBXZWJVSUNsaWVudCdzIHJ1bk9wZW5QYW5lbCBpbiBXZWJLaXQyR1RL
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXggNDkz
YTM5ZGExZTYxZWQxYTNhMWEwNjY5YmIxMzMwMWY0YzE1NTIyMi4uMWNjOGQ2OTUzMDlmMTgyZjM1
YzQyZTg3OWRlNDgxZWM5MWFiYTE4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuY3BwCkBAIC0zMjksNCArMzI5LDEwIEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5n
czo6c2V0TWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUoYm9vbCBlbmFibGVkLCBFeGNl
cHRpCiAgICAgc2V0dGluZ3MoKS0+c2V0TWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUo
ZW5hYmxlZCk7CiB9CiAKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0UHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIEludGVybmFs
U2V0dGluZ3NHdWFyZEZvclNldHRpbmdzKCk7CisgICAgc2V0dGluZ3MoKS0+c2V0UHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZChlbmFibGVkKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuaAppbmRleCA2NjE5NzY3NTRjYjczNzY3ZmEyNDQxOTA2MDA4ZjI4YTY4
MDJmZDU3Li45ZGYyNGM0Zjc0M2U0Y2FlOTI0YTVjMGIyOGI1NDE4ZTgwOTc1NTUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaApAQCAtNzQsNiArNzQsNyBAQCBw
dWJsaWM6CiAgICAgYm9vbCBzY3JvbGxBbmltYXRvckVuYWJsZWQoRXhjZXB0aW9uQ29kZSYpOwog
ICAgIHZvaWQgc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25D
b2RlJik7CiAgICAgdm9pZCBzZXRNZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZShib29s
LCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJv
b2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgdm9pZCByZXN0b3JlVG8oU2V0dGlu
Z3MqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKaW5k
ZXggYmJhYmUzYWIzODUzYjBkZDA1MDdlNDI2NmQyMjZlY2ZmZDVlZWEwOC4uM2ZmMWI1ODU2NmIz
ZjdhYzNlOTU4OTFjYWU4NjcyMGNiYzg2ZDVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuaWRsCkBAIC01Myw2ICs1Myw3IEBAIG1vZHVsZSB3aW5kb3cgewog
ICAgICAgICBib29sZWFuIHNjcm9sbEFuaW1hdG9yRW5hYmxlZCgpIHJhaXNlcyhET01FeGNlcHRp
b24pOwogICAgICAgICB2b2lkIHNldENTU0V4Y2x1c2lvbnNFbmFibGVkKGluIGJvb2xlYW4gZW5h
YmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0TWVkaWFQbGF5YmFj
a1JlcXVpcmVzVXNlckdlc3R1cmUoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKKyAgICAgICAgdm9pZCBzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGluIGJvb2xlYW4g
ZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktp
dDIuZGVmCmluZGV4IDUxYzgwYTk4NmI3NTVlODJhNWU1NjBhMjMzNjgzYTdmYmY1OWI3NDcuLjE3
OTM5NGUyNDY4YzA4OWUyZGFhZDI2NmE4OGJiYjk4ZjkwYWNmYzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0
Mi5kZWYKQEAgLTIyMCw2ICsyMjAsNyBAQCBFWFBPUlRTCiAgICAgICAgID9zZXRQaWN0b2dyYXBo
Rm9udEZhbWlseUBTZXR0aW5nc0BXZWJDb3JlQEBRQUVYQUJWQXRvbWljU3RyaW5nQFdURkBAVzRV
U2NyaXB0Q29kZUBAQFoKICAgICAgICAgP3NldFJlc291cmNlc0RhdGFTaXplTGltaXRzRnJvbUlu
dGVybmFsc0BJbnNwZWN0b3JDb250cm9sbGVyQFdlYkNvcmVAQFFBRVhISEBaCiAgICAgICAgID9z
ZXRTYW5zU2VyaWZGb250RmFtaWx5QFNldHRpbmdzQFdlYkNvcmVAQFFBRVhBQlZBdG9taWNTdHJp
bmdAV1RGQEBXNFVTY3JpcHRDb2RlQEBAWgorICAgICAgICA/c2V0UHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZEBTZXR0aW5nc0BXZWJDb3JlQEBRQUVYX05AWgogICAgICAgICA/c2V0U2Nyb2xsYmFyc1N1
cHByZXNzZWRAU2Nyb2xsVmlld0BXZWJDb3JlQEBRQUVYX04wQFoKICAgICAgICAgP3NldERlbGVn
YXRlc1Njcm9sbGluZ0BTY3JvbGxWaWV3QFdlYkNvcmVAQFFBRVhfTkBaCiAgICAgICAgID9zZXRT
Y3JvbGxPZmZzZXRGcm9tSW50ZXJuYWxzQFNjcm9sbGFibGVBcmVhQFdlYkNvcmVAQFFBRVhBQlZJ
bnRQb2ludEAyQEBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVy
IGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgppbmRleCAyMjcxZWMwYjkyZTgzMjYz
NWQwZmMwYmJmZjVmYTE1NzQ2NTkwYWZiLi41YzgxYTIyNWI3Yzc1NzIwNmYxNWM2MWRjODkzMTky
NTBmMzliNTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCisr
KyBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKQEAgLTEyMyw2ICsxMjMsNyBAQCBf
Wk43V2ViQ29yZThTZXR0aW5nczIyc2V0U2Fuc1NlcmlmRm9udEZhbWlseUVSS04zV1RGMTJBdG9t
aWNTdHJpbmdFMTFVU2NyaXB0Q29kZQogX1pON1dlYkNvcmU4U2V0dGluZ3MyM3NldFBpY3RvZ3Jh
cGhGb250RmFtaWx5RVJLTjNXVEYxMkF0b21pY1N0cmluZ0UxMVVTY3JpcHRDb2RlOwogX1pON1dl
YkNvcmU4U2V0dGluZ3MyNHNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZEViOwogX1pON1dlYkNvcmU4
U2V0dGluZ3MzN3NldEZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWVFYjsKK19aTjdX
ZWJDb3JlOFNldHRpbmdzMjVzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkRWI7CiBfWk43V2ViQ29y
ZTlGcmFtZVZpZXcxN3BhaW50Q29udHJvbFRpbnRzRXY7CiBfWk43V2ViQ29yZTlGcmFtZVZpZXcx
OXNjcm9sbEVsZW1lbnRUb1JlY3RFUE5TXzdFbGVtZW50RVJLTlNfN0ludFJlY3RFOwogX1pON1dl
YkNvcmUyNEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlckQyRXY7CmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDU3YTA1YmJlNjkxNGUxZjk5ZjUzOGJk
MmZkODE3NDMyMmEzYjVkNS4uZmFjMmIxNGQ5YzI5NjEwZDk2N2FlYzIyMjRiYTUyNDc5MmZmZGEx
YiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM5IEBACisyMDEyLTA0LTMwICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ft
c3VuZy5jb20+CisKKyAgICAgICAgQ29udmVydCBzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkIHRv
IHVzZSBJbnRlcm5hbFNldHRpbmdzIGludGVyZmFjZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MDM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQg
ZnVuY3Rpb25zLCBiZWNhdXNlIGl0IGlzIGFibGUgdG8gd29yayBpbiB0aGUKKyAgICAgICAgY3Jv
c3MtcG9ydCB3YXkgdGhyb3VnaCB0aGUgSW50ZXJuYWxTZXR0aW5ncyBpbnRlcmZhY2UuCisKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoTGF5b3V0VGVzdENv
bnRyb2xsZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvTGF5b3V0VGVz
dENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJv
bGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJv
bGxlcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVy
RWZsLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xs
ZXJHdGsuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5t
bToKKyAgICAgICAgKHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcDoKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0Lmg6CisgICAgICAgIChM
YXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0R1bXBS
ZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMp
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5j
cHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5j
cHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9M
YXlvdXRUZXN0Q29udHJvbGxlci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAo
TGF5b3V0VGVzdENvbnRyb2xsZXIpOgorCiAyMDEyLTA0LTMwICBKb2NlbHluIFR1cmNvdHRlICA8
am9jZWx5bi50dXJjb3R0ZUBub2tpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgbW92ZSBt
eXNlbGYgdG8gcmV2aWV3ZXJzCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlv
dXRUZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5jcHAKaW5kZXggZTA5NDRlNWY5NzU0YzRjNWNjNjIyMmUzMWYxODc0Yjk0MGFhMzYz
NC4uYWU2YTQ3OWM3YWZiYmMyZjQzYTI3OWUzMTY2MjFmMTEwMDQwMzQ1NyAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMTQ1MiwxOCArMTQ1
Miw2IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNldFBlcnNpc3RlbnRVc2VyU3R5bGVTaGVldExvY2F0
aW9uQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRlCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5k
ZWZpbmVkKGNvbnRleHQpOwogfQogCi1zdGF0aWMgSlNWYWx1ZVJlZiBzZXRQcml2YXRlQnJvd3Np
bmdFbmFibGVkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0
aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3Qg
SlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgIC8v
IEhhcyBtYWMgJiB3aW5kb3dzIGltcGxlbWVudGF0aW9uCi0gICAgaWYgKGFyZ3VtZW50Q291bnQg
PCAxKQotICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci0KLSAg
ICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91dFRl
c3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICBjb250
cm9sbGVyLT5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4
dCwgYXJndW1lbnRzWzBdKSk7Ci0KLSAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29u
dGV4dCk7Ci19Ci0KIHN0YXRpYyBKU1ZhbHVlUmVmIHNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlw
Ym9hcmRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24s
IEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1Zh
bHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgLy8gSGFz
IG1hYyAmIHdpbmRvd3MgaW1wbGVtZW50YXRpb24KQEAgLTI0NDIsNyArMjQzMCw2IEBAIEpTU3Rh
dGljRnVuY3Rpb24qIExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMoKQogICAg
ICAgICB7ICJzZXRQb3B1cEJsb2NraW5nRW5hYmxlZCIsIHNldFBvcHVwQmxvY2tpbmdFbmFibGVk
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0UGx1Z2luc0VuYWJsZWQiLCBzZXRQbHVn
aW5zRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFByaW50aW5nIiwgc2V0
UHJpbnRpbmdDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAgICAgICB7ICJzZXRQcml2YXRlQnJvd3NpbmdF
bmFibGVkIiwgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAg
ICAgIHsgInNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQiLCBzZXRTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0U2Vy
aWFsaXplSFRUUExvYWRzIiwgc2V0U2VyaWFsaXplSFRUUExvYWRzQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAic2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkIiwgc2V0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlv
dXRUZXN0Q29udHJvbGxlci5oCmluZGV4IGExMTM4N2QzZWEyMGViMjU0NzE1MGI0NzY3MjBhN2E0
YjQ1ZjM4MGUuLjQ1NGEzZTg1ZjU4NmU4MWNkMWJlNzgyODUzYjg0Mzc2Yzc2YTJiZDcgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMTExLDcgKzEx
MSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFBlcnNpc3RlbnRVc2VyU3R5bGVTaGVldExvY2F0
aW9uKEpTU3RyaW5nUmVmIHBhdGgpOwogICAgIHZvaWQgc2V0UGx1Z2luc0VuYWJsZWQoYm9vbCBm
bGFnKTsKICAgICB2b2lkIHNldFBvcHVwQmxvY2tpbmdFbmFibGVkKGJvb2wgZmxhZyk7Ci0gICAg
dm9pZCBzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgZmxhZyk7CiAgICAgdm9pZCBzZXRT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZmxhZyk7CiAgICAgdm9pZCBzZXRT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFnKTsKICAgICB2b2lkIHNldFRhYktleUN5
Y2xlc1Rocm91Z2hFbGVtZW50cyhib29sIGN5Y2xlcyk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9ibGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxh
Y2tCZXJyeS5jcHAKaW5kZXggYTYyNzU1YjFhOWRiYjRiODFhNmE5YzljYzg1MThjOTQwN2QyNjQ2
YS4uYTMxYTdkOTc4NmZiODY1ZDUwYWIwMWQyZmZmMDRiOTU5N2YwMWNlNiAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29udHJvbGxlckJsYWNr
QmVycnkuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvTGF5b3V0VGVz
dENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcApAQCAtMjU3LDEyICsyNTcsNiBAQCB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpzZXRQb3B1cEJsb2NraW5nRW5hYmxlZChib29sIGZsYWcpCiAgICAg
QmxhY2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVyVHJlZTo6Y3VycmVudEluc3RhbmNlKCktPnBh
Z2UoKS0+c2V0dGluZ3MoKS0+c2V0SmF2YVNjcmlwdE9wZW5XaW5kb3dzQXV0b21hdGljYWxseSgh
ZmxhZyk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFByaXZhdGVCcm93c2lu
Z0VuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIFVOVVNFRF9QQVJBTShmbGFnKTsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotfQotCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRYU1NBdWRp
dG9yRW5hYmxlZChib29sIGZsYWcpCiB7CiAgICAgQmxhY2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVu
ZGVyVHJlZTo6Y3VycmVudEluc3RhbmNlKCktPnBhZ2UoKS0+c2V0dGluZ3MoKS0+c2V0WFNTQXVk
aXRvckVuYWJsZWQoZmxhZyk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggNzM3ODE4MzBkZDE1ZGVhMDgwZDUz
YzNjNWFjZjhjMmM4NDQxMDQ1YS4uNDQwNjIyOGZjOTlmMTlkYjcwZjc3ZmIzNzQxYjhhY2UyNDJl
NmRhZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVz
dENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91
dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMjM5LDcgKzIzOSw2IEBAIExheW91dFRlc3RDb250cm9s
bGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcihUZXN0U2hlbGwqIHNoZWxsKQogICAgIGJpbmRNZXRo
b2QoInNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSIsICZMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKTsKICAgICBiaW5kTWV0aG9kKCJzZXRD
YWxsQ2xvc2VPbldlYlZpZXdzIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRDYWxsQ2xvc2VP
bldlYlZpZXdzKTsKICAgICBiaW5kTWV0aG9kKCJzZXRNYWluRnJhbWVJc0ZpcnN0UmVzcG9uZGVy
IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRNYWluRnJhbWVJc0ZpcnN0UmVzcG9uZGVyKTsK
LSAgICBiaW5kTWV0aG9kKCJzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkIiwgJkxheW91dFRlc3RD
b250cm9sbGVyOjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKTsKICAgICBiaW5kTWV0aG9kKCJz
ZXRVc2VEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c2V0VXNlRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUpOwogICAgIGJpbmRNZXRob2QoInN0b3Jl
V2ViU2NyaXB0T2JqZWN0IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzdG9yZVdlYlNjcmlwdE9i
amVjdCk7CiAgICAgYmluZE1ldGhvZCgiZGVsZXRlQWxsTG9jYWxTdG9yYWdlIiwgJkxheW91dFRl
c3RDb250cm9sbGVyOjpkZWxldGVBbGxMb2NhbFN0b3JhZ2UpOwpAQCAtMTMxMiwxMSArMTMxMSw2
IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldENhbGxDbG9zZU9uV2ViVmlld3MoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVuCiAgICAgcmVzdWx0LT5zZXROdWxsKCk7CiB9CiAK
LXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAg
ICByZXN1bHQtPnNldE51bGwoKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0
SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3Vt
ZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID4g
MCAmJiBhcmd1bWVudHNbMF0uaXNCb29sKCkpIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IGU4Zjg3ZTZkODMwMzA4
MmE4NjY2NjI1YWQzOGM1NTVmNWY1NzAzNTguLmFhZTU1MTVjZTJjNjk3OTVhMDAxYTQyZjM1Njg0
NjY1ZmY5M2VlY2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xh
eW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
TGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMjc5LDcgKzI3OSw2IEBAIHB1YmxpYzoKICAgICB2
b2lkIGFkZERpc2FsbG93ZWRVUkwoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCop
OwogICAgIHZvaWQgY2FsbFNob3VsZENsb3NlT25XZWJWaWV3KGNvbnN0IENwcEFyZ3VtZW50TGlz
dCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIHNldENhbGxDbG9zZU9uV2ViVmlld3MoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgc2V0UHJpdmF0ZUJyb3dz
aW5nRW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKICAgICB2
b2lkIHNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgc2V0WFNTQXVkaXRvckVuYWJsZWQoY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVyRWZsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5jcHAKaW5kZXggNmMxZGQ3M2Q4YWRmNDYz
YmEzZDA2YTJlMTgxYzU3NmU1YTA2YjdlMS4uMzY4N2Y0MmM5MzMxYWY2MzUzNzAzOTA5ZmFmNTVl
OWFlZDhjZjdlNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRl
c3RDb250cm9sbGVyRWZsLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvTGF5b3V0
VGVzdENvbnRyb2xsZXJFZmwuY3BwCkBAIC0zMjcsMTEgKzMyNyw2IEBAIGludCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6d2luZG93Q291bnQoKQogICAgIHJldHVybiBicm93c2VyLT5leHRyYVZpZXdz
KCkuc2l6ZSgpICsgMTsgLy8gKyAxIGZvciB0aGUgbWFpbiB2aWV3LgogfQogCi12b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgZmxhZykKLXsK
LSAgICBld2tfdmlld19zZXR0aW5nX3ByaXZhdGVfYnJvd3Npbmdfc2V0KGJyb3dzZXItPm1haW5W
aWV3KCksIGZsYWcpOwotfQotCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRKYXZhU2Ny
aXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKGJvb2wpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0
ay5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsu
Y3BwCmluZGV4IGViZWRkYzMxNDUyMzVjMWI0YjA4ZmQ4MDUzYzFkMjA3M2IzMGQ4ODQuLmI1MzA1
NDJiMDYzZGQ1ZTQ1YjVkMzY4NzE4ODBhNWYyNmI0YjU4YjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcApAQCAtMzkwLDE1
ICszOTAsNiBAQCBpbnQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OndpbmRvd0NvdW50KCkKICAgICBy
ZXR1cm4gZ19zbGlzdF9sZW5ndGgod2ViVmlld0xpc3QpICsgMTsKIH0KIAotdm9pZCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sIGZsYWcpCi17Ci0g
ICAgV2ViS2l0V2ViVmlldyogdmlldyA9IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dlYl92aWV3KG1h
aW5GcmFtZSk7Ci0gICAgQVNTRVJUKHZpZXcpOwotCi0gICAgV2ViS2l0V2ViU2V0dGluZ3MqIHNl
dHRpbmdzID0gd2Via2l0X3dlYl92aWV3X2dldF9zZXR0aW5ncyh2aWV3KTsKLSAgICBnX29iamVj
dF9zZXQoR19PQkpFQ1Qoc2V0dGluZ3MpLCAiZW5hYmxlLXByaXZhdGUtYnJvd3NpbmciLCBmbGFn
LCBOVUxMKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SmF2YVNjcmlwdENh
bkFjY2Vzc0NsaXBib2FyZChib29sIGZsYWcpCiB7CiAgICAgV2ViS2l0V2ViVmlldyogdmlldyA9
IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dlYl92aWV3KG1haW5GcmFtZSk7CmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggMmFmNjhhODRiZTNhYzhjZjk0MWY2
NTZkY2FjZjk1NjJhYTA0ZmExNC4uNzAzNDE4ZTJjMmMzYjU0MzhiN2RhYzFmOGFmOGZiZDE0MjQ2
NzhmYyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVl
Lm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAt
NjMzLDcgKzYzMyw2IEBAIHN0YXRpYyB2b2lkIHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1
ZXMoKQogICAgIFtwcmVmZXJlbmNlcyBzZXRQbHVnSW5zRW5hYmxlZDpZRVNdOwogICAgIFtwcmVm
ZXJlbmNlcyBzZXRUZXh0QXJlYXNBcmVSZXNpemFibGU6WUVTXTsKIAotICAgIFtwcmVmZXJlbmNl
cyBzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkOk5PXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0QXV0
aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQ6WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0SmF2YVNj
cmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseTpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBz
ZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkOllFU107CmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0gYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KaW5kZXggY2YwOGU1NDBh
OThlMzY4NDYxZDJhZGU0YjI2MjU2YzBlOTdlMDVkNS4uYmUyM2Q3N2VkNjM5YzE1Mjc1MTBmMjc4
YTQyNDEyZWYxMzNiZGI2YSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xh
eW91dFRlc3RDb250cm9sbGVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9M
YXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQpAQCAtNTgwLDExICs1ODAsNiBAQCB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpzZXRNYWluRnJhbWVJc0ZpcnN0UmVzcG9uZGVyKGJvb2wgZmxhZykK
ICAgICBbW1ttYWluRnJhbWUgd2ViVmlld10gd2luZG93XSBtYWtlRmlyc3RSZXNwb25kZXI6Zmly
c3RSZXNwb25kZXJdOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRQcml2YXRl
QnJvd3NpbmdFbmFibGVkKGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKLXsKLSAgICBbW1tt
YWluRnJhbWUgd2ViVmlld10gcHJlZmVyZW5jZXNdIHNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQ6
cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZF07Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnNldFhTU0F1ZGl0b3JFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKICAgICBbW1ttYWluRnJhbWUg
d2ViVmlld10gcHJlZmVyZW5jZXNdIHNldFhTU0F1ZGl0b3JFbmFibGVkOmVuYWJsZWRdOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5j
cHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcApp
bmRleCAwMzA5ZDBhNjczMDA2YzFhYjgyYjM2NmM4M2NmMWE5YWMxN2RmZWM5Li41MmVkMmFlMjAw
NTJkMzBjNmQ2YTMwZDY3NWU4ZGZhZDNhMjAyYzNhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcApAQCAtNDkzLDExICs0OTMsNiBA
QCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRGaXhlZENvbnRlbnRzU2l6ZShpbnQgd2lk
dGgsIGludCBoZWlnaHQpCiAgICAgbV90b3BMb2FkaW5nRnJhbWUtPnBhZ2UoKS0+c2V0UHJlZmVy
cmVkQ29udGVudHNTaXplKFFTaXplKHdpZHRoLCBoZWlnaHQpKTsKIH0KIAotdm9pZCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sIGVuYWJsZSkKLXsK
LSAgICBtX2RydC0+d2ViUGFnZSgpLT5zZXR0aW5ncygpLT5zZXRBdHRyaWJ1dGUoUVdlYlNldHRp
bmdzOjpQcml2YXRlQnJvd3NpbmdFbmFibGVkLCBlbmFibGUpOwotfQotCiB2b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjpzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoYm9vbCBlbmFibGUpCiB7
CiAgICAgbV9kcnQtPndlYlBhZ2UoKS0+c2V0dGluZ3MoKS0+c2V0QXR0cmlidXRlKFFXZWJTZXR0
aW5nczo6U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkLCBlbmFibGUpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCmluZGV4IGViZDIyNzljZWQx
YzdjMTZkMDA4NjM4OTE2MWRiMGFkZTQxN2ZlMzcuLjZlNzBlMTkxMDVjNWIxNDNlMmUxMTUzMTY3
YzQ1OTYyYjI1NWY5MmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91
dFRlc3RDb250cm9sbGVyUXQuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRU
ZXN0Q29udHJvbGxlclF0LmgKQEAgLTE2Miw3ICsxNjIsNiBAQCBwdWJsaWMgc2xvdHM6CiAgICAg
dm9pZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZSk7CiAgICAgdm9p
ZCBzZXRWYWx1ZUZvclVzZXIoY29uc3QgUVdlYkVsZW1lbnQmLCBjb25zdCBRU3RyaW5nJiB2YWx1
ZSk7CiAgICAgdm9pZCBzZXRGaXhlZENvbnRlbnRzU2l6ZShpbnQgd2lkdGgsIGludCBoZWlnaHQp
OwotICAgIHZvaWQgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sIGVuYWJsZSk7CiAgICAg
dm9pZCBzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoYm9vbCBlbmFibGVkKTsKICAgICB2b2lk
IHNldFBsdWdpbnNFbmFibGVkKGJvb2wgZmxhZyk7CiAgICAgdm9pZCBzZXRQb3B1cEJsb2NraW5n
RW5hYmxlZChib29sIGVuYWJsZSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93
aW4vRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5k
ZXJUcmVlLmNwcAppbmRleCAxOTZmNGVhOWJjZGIzMWU3MjBjNjU4OTk4YzY1NTU2OGJhNGZiMjE2
Li4wYjkwY2I2ZGQxYTU2NWE1MzFiMzhmMzQwNGUyZjhhODIzNDczYWIzIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTgzNSw3ICs4MzUsNiBAQCBz
dGF0aWMgdm9pZCByZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKElXZWJQcmVmZXJlbmNl
cyogcHJlZmVyZW5jZXMpCiAgICAgcHJlZmVyZW5jZXMtPnNldEVkaXRhYmxlTGlua0JlaGF2aW9y
KFdlYktpdEVkaXRhYmxlTGlua09ubHlMaXZlV2l0aFNoaWZ0S2V5KTsKICAgICBwcmVmZXJlbmNl
cy0+c2V0Rm9udFNtb290aGluZyhGb250U21vb3RoaW5nVHlwZVN0YW5kYXJkKTsKICAgICBwcmVm
ZXJlbmNlcy0+c2V0VXNlc1BhZ2VDYWNoZShGQUxTRSk7Ci0gICAgcHJlZmVyZW5jZXMtPnNldFBy
aXZhdGVCcm93c2luZ0VuYWJsZWQoRkFMU0UpOwogICAgIHByZWZlcmVuY2VzLT5zZXRKYXZhU2Ny
aXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KFRSVUUpOwogICAgIHByZWZlcmVuY2VzLT5z
ZXRKYXZhU2NyaXB0RW5hYmxlZChUUlVFKTsKICAgICBwcmVmZXJlbmNlcy0+c2V0VGFic1RvTGlu
a3MoRkFMU0UpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRl
c3RDb250cm9sbGVyV2luLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0
Q29udHJvbGxlcldpbi5jcHAKaW5kZXggYWU3ZTA5Y2NhN2RmODNjNTQ4MjJjMjAzZTEyNjE0Nzcw
NTQyOTQ4ZS4uOGEzY2NmOTE3MDViMDkzY2IwNTYzY2Y2ZDhkMjUyZWViYTk5MmM4OSAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4u
Y3BwCkBAIC00NzQsMTkgKzQ3NCw2IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1h
aW5GcmFtZUlzRmlyc3RSZXNwb25kZXIoYm9vbCBmbGFnKQogICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQhCiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFByaXZhdGVCcm93c2luZ0Vu
YWJsZWQoYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkKQotewotICAgIENPTVB0cjxJV2ViVmll
dz4gd2ViVmlldzsKLSAgICBpZiAoRkFJTEVEKGZyYW1lLT53ZWJWaWV3KCZ3ZWJWaWV3KSkpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIENPTVB0cjxJV2ViUHJlZmVyZW5jZXM+IHByZWZlcmVuY2Vz
OwotICAgIGlmIChGQUlMRUQod2ViVmlldy0+cHJlZmVyZW5jZXMoJnByZWZlcmVuY2VzKSkpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIHByZWZlcmVuY2VzLT5zZXRQcml2YXRlQnJvd3NpbmdFbmFi
bGVkKHByaXZhdGVCcm93c2luZ0VuYWJsZWQpOwotfQotCiB2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjpzZXRYU1NBdWRpdG9yRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgQ09NUHRyPElX
ZWJWaWV3PiB3ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5
b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRU
ZXN0Q29udHJvbGxlcld4LmNwcAppbmRleCA1YTBmYzcyYTY0N2M4ZjQxNDE4MzI2NWU3ZTRmZDZm
YTg0N2FmZTNmLi5lNDdhOTE3MzhhZmI2ZTAwZTI1OGE1OWU3OGYxNWMxYzMxYzhiYzQ1IDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNw
cApAQCAtMTcyLDExICsxNzIsNiBAQCBpbnQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OndpbmRvd0Nv
dW50KCkKICAgICByZXR1cm4gMTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0
UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCi17Ci0g
ICAgLy8gRklYTUU6IGltcGxlbWVudAotfQotCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpz
ZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKGJvb2wgZW5hYmxlZCkKIHsKICAgICAvLyBG
SVhNRTogaW1wbGVtZW50CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzL0xheW91dFRlc3RDb250cm9sbGVyLmlkbCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIu
aWRsCmluZGV4IGQ4ZGVmNGRlZWU5Y2M4NmY5ZDY4ZmUzZGQzZjQ5Y2M4NTAwYjEzZmEuLmVlOTJj
NTAwOGViNmZmNjQ5ZWVhYTliMTdiN2NjMWQ2OGIxNmQyOWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xs
ZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsCkBAIC01NCw3ICs1NCw2IEBAIG1vZHVsZSBXVFIg
ewogICAgICAgICB2b2lkIHNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoaW4gYm9vbGVhbiB2YWx1
ZSk7CiAgICAgICAgIHZvaWQgc2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKGluIGJvb2xlYW4gdmFs
dWUpOwogICAgICAgICB2b2lkIHNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoaW4gYm9v
bGVhbiB2YWx1ZSk7Ci0gICAgICAgIHZvaWQgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChpbiBi
b29sZWFuIHZhbHVlKTsKICAgICAgICAgdm9pZCBzZXRQb3B1cEJsb2NraW5nRW5hYmxlZChpbiBi
b29sZWFuIHZhbHVlKTsKICAgICAgICAgdm9pZCBzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxl
ZChpbiBib29sZWFuIHZhbHVlKTsKICAgICAgICAgdm9pZCBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxp
c3RFbnRyeShpbiBET01TdHJpbmcgc291cmNlT3JpZ2luLCBpbiBET01TdHJpbmcgZGVzdGluYXRp
b25Qcm90b2NvbCwgaW4gRE9NU3RyaW5nIGRlc3RpbmF0aW9uSG9zdCwgaW4gYm9vbGVhbiBhbGxv
d0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4
IDU1YmY5ZGQwOGI2ZTkzZGMwMWMxMmM3ZTMyMTVjM2RiYTU0OTFkMmQuLjZiOTIzNWNmZWY4N2E1
YmViYzM1MmM2YThlNDZlZmE5MmVhYjQxOTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3Bw
CkBAIC0zODUsMTEgKzM4NSw2IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEphdmFT
Y3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoYm9vbCBlbmFibGVkKQogICAgICBXS0J1bmRsZVNldEph
dmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmJ1bmRs
ZSgpLCBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFnZUdyb3VwKCksIGVuYWJsZWQpOwogfQog
Ci12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJv
b2wgZW5hYmxlZCkKLXsKLSAgICAgV0tCdW5kbGVTZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKElu
amVjdGVkQnVuZGxlOjpzaGFyZWQoKS5idW5kbGUoKSwgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgp
LnBhZ2VHcm91cCgpLCBlbmFibGVkKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogewogICAgICBXS0J1bmRsZVNl
dFBvcHVwQmxvY2tpbmdFbmFibGVkKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5idW5kbGUoKSwg
SW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnBhZ2VHcm91cCgpLCBlbmFibGVkKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVz
dENvbnRyb2xsZXIuaAppbmRleCBiNDZkYTIxNWM3YmViMmMxZjliYjBhNzdkNmMwMDgzNGZmNzY4
YzdhLi5mYTU1MmJmMzM5OGI5MzY0ZTdiZDY0MmVlNGFlNmY0NGIzMjM4OTUyIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9s
bGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5oCkBAIC04NSw3ICs4NSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEZy
YW1lRmxhdHRlbmluZ0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRHZW9sb2NhdGlvblBlcm1p
c3Npb24oYm9vbCk7CiAgICAgdm9pZCBzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKGJv
b2wpOwotICAgIHZvaWQgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sKTsKICAgICB2b2lk
IHNldFBvcHVwQmxvY2tpbmdFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0QXV0aG9yQW5kVXNl
clN0eWxlc0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZShi
b29sIGVuYWJsZWQsIGJvb2wgcGVybWlzc2l2ZSA9IGZhbHNlKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyOTJmMjhmYzdm
MmJjOWIzYmMzNmQ0YjYyMjE0ZmIxMDgwZDMzYzJhLi5lMDQwNzc1Y2NkYTg5ZTk3Nzk2MGVhMTY2
YzRhMGQ0MmU2MjVlZTQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTItMDQtMzAgIEd5dXlv
dW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBDb252ZXJ0IHNl
dFByaXZhdGVCcm93c2luZ0VuYWJsZWQgdG8gdXNlIEludGVybmFsU2V0dGluZ3MgaW50ZXJmYWNl
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUwMzQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYWxsIHNl
dFByaXZhdGVCcm93c2luZ0VuYWJsZWQgZnVuY3Rpb25zIGZyb20gaW50ZXJuYWxTZXR0aW5ncywg
YmVjYXVzZSBpdCBpcyBhYmxlIHRvIHdvcmsgaW4gdGhlCisgICAgICAgIGNyb3NzLXBvcnQgd2F5
IHRocm91Z2ggdGhlIEludGVybmFsU2V0dGluZ3MgaW50ZXJmYWNlLgorCisgICAgICAgICogaHR0
cC90ZXN0cy9zZWN1cml0eS9jb29raWVzL3Jlc291cmNlcy9maXJzdC1wYXJ0eS1jb29raWUtYWxs
b3cueHNsOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29va2llcy9yZXNvdXJjZXMv
dGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLnhzbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2Nvb2tpZXMvdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLW1haW4tZnJhbWUuaHRt
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMvdGhpcmQtcGFydHktY29v
a2llLWJsb2NraW5nLXVzZXItYWN0aW9uLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS9jb29raWVzL3RoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXByaXZhdGUtYnJvd3Npbmcu
aHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4td2syL1NraXBwZWQ6CisgICAgICAgICogcGx1
Z2lucy9wcml2YXRlLWJyb3dzaW5nLW1vZGUtMi5odG1sOgorICAgICAgICAqIHBsdWdpbnMvcHJp
dmF0ZS1icm93c2luZy1tb2RlLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2xv
Y2Fsc3RvcmFnZS9wcml2YXRlLWJyb3dzaW5nLWFmZmVjdHMtc3RvcmFnZS5odG1sOgorICAgICAg
ICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9wcml2YXRlLWJyb3dzaW5nLWFm
ZmVjdHMtc3RvcmFnZS5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvcHJpdmF0ZS1icm93c2luZy1u
b3JlYWQtbm93cml0ZS5odG1sOgorCiAyMDEyLTA0LTMwICBUaGlhZ28gTWFyY29zIFAuIFNhbnRv
cyAgPHRoaWFnby5zYW50b3NAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIFVwZGF0ZSBleHBl
Y3RhdGlvbnMgZm9yIG1lZGlhL2F1ZGlvLWRlbGV0ZS13aGlsZS1zdGVwLWJ1dHRvbi1jbGlja2Vk
Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29va2ll
cy9yZXNvdXJjZXMvZmlyc3QtcGFydHktY29va2llLWFsbG93LnhzbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY29va2llcy9yZXNvdXJjZXMvZmlyc3QtcGFydHktY29va2llLWFs
bG93LnhzbAppbmRleCAzNjE4OTRhODNkMjQ3MzVhNTM0MDllZjM0OGQzZjcyOGVhMDQyOWQzLi5k
MzAyM2ZmNGFjNjQ3MzhkNTM3NmYzNWNhYjZjM2UzZWI3ZmVjYTRmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMvcmVzb3VyY2VzL2ZpcnN0LXBhcnR5
LWNvb2tpZS1hbGxvdy54c2wKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9j
b29raWVzL3Jlc291cmNlcy9maXJzdC1wYXJ0eS1jb29raWUtYWxsb3cueHNsCkBAIC0xMSw4ICsx
MSw4IEBAIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKIAogICAgIC8vIFN0YXJ0
IHdpdGggYSBjbGVhbiBzdGF0ZSwgYXMgb3RoZXJ3aXNlIGFuIGV4cGlyZWQgY29va2llIGZvciB0
aGlzIGRvbWFpbiBjb3VsZCBhZmZlY3QgYmVoYXZpb3Igd2l0aCBDRk5ldHdvcmsuCiAgICAgLy8g
Q2FuIGJlIHJlbW92ZWQgb25jZSByZGFyOi8vcHJvYmxlbS8xMDA4MDEzMCBpcyBmaXhlZC4KLSAg
ICBpZiAobGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKLSAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCh0cnVl
KTsKKyAgICBpZiAoaW50ZXJuYWxzLnNldHRpbmdzLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQp
CisgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHRy
dWUpOwogCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QWx3YXlzQWNjZXB0Q29va2llcyhm
YWxzZSk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nv
b2tpZXMvcmVzb3VyY2VzL3RoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy54c2wgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMvcmVzb3VyY2VzL3RoaXJkLXBhcnR5LWNv
b2tpZS1ibG9ja2luZy54c2wKaW5kZXggYTBhYjA1YjlmZTYyYzVhYWQyOTM3NTcwNzk5ZDYzMWVk
MTMzZjBhMi4uNDQxZTQ3MDk5ZGNjOWM4MDg4YjlmYjU0ZjAxMGRiODNhZTRkNjJjMCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb29raWVzL3Jlc291cmNlcy90
aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmcueHNsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY29va2llcy9yZXNvdXJjZXMvdGhpcmQtcGFydHktY29va2llLWJsb2NraW5n
LnhzbApAQCAtMTEsOCArMTEsOCBAQCBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CiAKICAgICAvLyBTdGFydCB3aXRoIGEgY2xlYW4gc3RhdGUsIGFzIG90aGVyd2lzZSBhbiBleHBp
cmVkIGNvb2tpZSBmb3IgdGhpcyBkb21haW4gY291bGQgYWZmZWN0IGJlaGF2aW9yIHdpdGggQ0ZO
ZXR3b3JrLgogICAgIC8vIENhbiBiZSByZW1vdmVkIG9uY2UgcmRhcjovL3Byb2JsZW0vMTAwODAx
MzAgaXMgZml4ZWQuCi0gICAgaWYgKGxheW91dFRlc3RDb250cm9sbGVyLnNldFByaXZhdGVCcm93
c2luZ0VuYWJsZWQpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFByaXZhdGVCcm93
c2luZ0VuYWJsZWQodHJ1ZSk7CisgICAgaWYgKGludGVybmFscy5zZXR0aW5ncy5zZXRQcml2YXRl
QnJvd3NpbmdFbmFibGVkKQorICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0UHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZCh0cnVlKTsKIAogICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEFsd2F5
c0FjY2VwdENvb2tpZXMoZmFsc2UpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9jb29raWVzL3RoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy1tYWluLWZy
YW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMvdGhpcmQt
cGFydHktY29va2llLWJsb2NraW5nLW1haW4tZnJhbWUuaHRtbAppbmRleCBiMTkzNzllNjljMzdi
NWRhMjJjYzg0ZTc3ODc4NWJhNTFkMzUyYTgzLi5mYjYwZWY3OTY1OTM3N2Q4MzIzODllMmU1ZDM4
ZjM1MzlkMzBkZTA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2Nvb2tpZXMvdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLW1haW4tZnJhbWUuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMvdGhpcmQtcGFydHktY29v
a2llLWJsb2NraW5nLW1haW4tZnJhbWUuaHRtbApAQCAtOSw4ICs5LDggQEAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgewogCiAgICAgLy8gU3RhcnQgd2l0aCBhIGNsZWFuIHN0YXRl
LCBhcyBvdGhlcndpc2UgYW4gZXhwaXJlZCBjb29raWUgZm9yIHRoaXMgZG9tYWluIGNvdWxkIGFm
ZmVjdCBiZWhhdmlvciB3aXRoIENGTmV0d29yay4KICAgICAvLyBDYW4gYmUgcmVtb3ZlZCBvbmNl
IDxyZGFyOi8vcHJvYmxlbS8xMDA4MDEzMD4gaXMgZml4ZWQuCi0gICAgaWYgKGxheW91dFRlc3RD
b250cm9sbGVyLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQpCi0gICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQodHJ1ZSk7CisgICAgaWYgKGludGVy
bmFscy5zZXR0aW5ncy5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKQorICAgICAgICBpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCh0cnVlKTsKIAogICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldEFsd2F5c0FjY2VwdENvb2tpZXMoZmFsc2UpOwogfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb29raWVzL3RoaXJkLXBhcnR5
LWNvb2tpZS1ibG9ja2luZy11c2VyLWFjdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jb29raWVzL3RoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy11c2VyLWFjdGlv
bi5odG1sCmluZGV4IDUxNDJiNTcyZjk0YzJmN2NiN2Y3YzJmMDk3M2RiOGRiMzk3MWQ0MGQuLmM2
NjQ1ZTMyNmQwM2U0YjZmY2Q4ZTY4OGY4Mjk1NTgyZmUwMGQyN2EgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29va2llcy90aGlyZC1wYXJ0eS1jb29raWUtYmxv
Y2tpbmctdXNlci1hY3Rpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2Nvb2tpZXMvdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXVzZXItYWN0aW9uLmh0bWwK
QEAgLTksOCArOSw4IEBAIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKIAogICAg
IC8vIFN0YXJ0IHdpdGggYSBjbGVhbiBzdGF0ZSwgYXMgb3RoZXJ3aXNlIGFuIGV4cGlyZWQgY29v
a2llIGZvciB0aGlzIGRvbWFpbiBjb3VsZCBhZmZlY3QgYmVoYXZpb3Igd2l0aCBDRk5ldHdvcmsu
CiAgICAgLy8gQ2FuIGJlIHJlbW92ZWQgb25jZSA8cmRhcjovL3Byb2JsZW0vMTAwODAxMzA+IGlz
IGZpeGVkLgotICAgIGlmIChsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQcml2YXRlQnJvd3NpbmdF
bmFibGVkKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQcml2YXRlQnJvd3NpbmdF
bmFibGVkKHRydWUpOworICAgIGlmIChpbnRlcm5hbHMuc2V0dGluZ3Muc2V0UHJpdmF0ZUJyb3dz
aW5nRW5hYmxlZCkKKyAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFByaXZhdGVCcm93c2lu
Z0VuYWJsZWQodHJ1ZSk7CiAKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRBbHdheXNBY2Nl
cHRDb29raWVzKGZhbHNlKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY29va2llcy90aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmcuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29va2llcy90aGlyZC1wYXJ0eS1jb29raWUtYmxv
Y2tpbmcuaHRtbAppbmRleCBmZjQ4OTBmYzIwMjNhZDhhYmNjZGQ1NmRlMGYyYjM5OTUxNTZiZDYy
Li45OTQ3OWE5YjlmNjg2YTFhMmM0NTk4MjA1YmRhYWI0ZTk5Y2ZjMWU2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMvdGhpcmQtcGFydHktY29va2ll
LWJsb2NraW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb29r
aWVzL3RoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy5odG1sCkBAIC05LDggKzksOCBAQCBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAKICAgICAvLyBTdGFydCB3aXRoIGEgY2xl
YW4gc3RhdGUsIGFzIG90aGVyd2lzZSBhbiBleHBpcmVkIGNvb2tpZSBmb3IgdGhpcyBkb21haW4g
Y291bGQgYWZmZWN0IGJlaGF2aW9yIHdpdGggQ0ZOZXR3b3JrLgogICAgIC8vIENhbiBiZSByZW1v
dmVkIG9uY2UgPHJkYXI6Ly9wcm9ibGVtLzEwMDgwMTMwPiBpcyBmaXhlZC4KLSAgICBpZiAobGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKLSAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCh0cnVlKTsKKyAgICBp
ZiAoaW50ZXJuYWxzLnNldHRpbmdzLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQpCisgICAgICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHRydWUpOwogCiAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QWx3YXlzQWNjZXB0Q29va2llcyhmYWxzZSk7CiB9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1l
LWFjY2Vzcy1wcml2YXRlLWJyb3dzaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wcml2YXRlLWJyb3dzaW5nLmh0bWwKaW5kZXggZmMw
Nzc0OTdkNjQ1ZWU1YjVhNWI3ZDgxOGU0MWVkMzBmZDdkODBkMi4uMDY4OTY4YTVjYzc3MTRjNDk0
NTMzMjZhN2Y3MTc2NmYwYWM4YTI0OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHJpdmF0ZS1icm93c2luZy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXByaXZh
dGUtYnJvd3NpbmcuaHRtbApAQCAtMjUsNyArMjUsNyBAQAogCiAgICAgICAgIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7CiAgICAgICAgICAgICB2YXIgc3ViRnJhbWUgPSB3aW5kb3cuZnJhbWVzWzBdOwot
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxl
ZCh0cnVlKTsKKyAgICAgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRQcml2YXRlQnJvd3Np
bmdFbmFibGVkKHRydWUpOwogCiAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgIGxv
ZygiQXR0ZW1wdGluZyB0byB2aW9sYXRlIHRoZSBzYW1lLW9yaWdpbiBwb2xpY3kgd2l0aCBwcml2
YXRlIGJyb3dzaW5nIGVuYWJsZWQuICBJZiB0aGlzIHN1Y2NlZWRzIHRoZSBjb25zb2xlIHNob3Vs
ZCBub3QgbG9nIHRoZSB2aW9sYXRpb24uIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4td2syL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4td2syL1NraXBw
ZWQKaW5kZXggZjk3MDk3MzlkN2ZmOTAyZjA5ZDNlYmEwYTJkZWFlODM2NzI1MTFhZS4uMDk5Nzll
ZjU5MTFhOGJkMWMwODFkYjU2MjEzYmI2MDcxZDc5ZmNkOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luLXdrMi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi13azIvU2tpcHBlZApAQCAtNDAsNyArNDAsNyBAQCBmYXN0L2RvbS9pY29uLXVybC1wcm9wZXJ0
eS5odG1sCiBmYXN0L2hpc3RvcnkvZ2VzdHVyZS1iZWZvcmUtb25sb2FkLWZvcm0tc3VibWl0Lmh0
bWwKIGZhc3QvaGlzdG9yeS9nZXN0dXJlLWJlZm9yZS1vbmxvYWQtbG9jYXRpb24taHJlZi5odG1s
CiAKLSMgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkCisjIFdlYktpdFRlc3RSdW5u
ZXIgbmVlZHMgYW4gaW1wbGVtZW50YXRpb24gb2YgaW50ZXJuYWxzLnNldHRpbmdzLnNldFByaXZh
dGVCcm93c2luZ0VuYWJsZWQKICMgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MjY5Nz4KIHBsdWdpbnMvcHJpdmF0ZS1icm93c2luZy1tb2RlLTIuaHRtbAogcGx1Z2lu
cy9wcml2YXRlLWJyb3dzaW5nLW1vZGUuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGx1
Z2lucy9wcml2YXRlLWJyb3dzaW5nLW1vZGUtMi5odG1sIGIvTGF5b3V0VGVzdHMvcGx1Z2lucy9w
cml2YXRlLWJyb3dzaW5nLW1vZGUtMi5odG1sCmluZGV4IDMzMjIxOGJlODFmYWI2YTYxZjAwZWE2
MTY1NTRjNWI4ODAwZjQzZjcuLmQ1YWZkMTg3ODllNjBlYzI1MGI4MWNiYTkyN2Q3YTU1NTRkNTI2
MzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsdWdpbnMvcHJpdmF0ZS1icm93c2luZy1tb2Rl
LTIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbHVnaW5zL3ByaXZhdGUtYnJvd3NpbmctbW9kZS0y
Lmh0bWwKQEAgLTIwLDcgKzIwLDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgc2hvdWxkQmUo
InBsdWdpbjEucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCIsICJmYWxzZSIpOwogCiAgICAgLy8gTm93
IGVuYWJsZSBwcml2YXRlIGJyb3dzaW5nCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0UHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0UHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCh0cnVlKTsKIAogICAgIHNob3VsZEJlKCJwbHVnaW4xLnByaXZh
dGVCcm93c2luZ0VuYWJsZWQiLCAidHJ1ZSIpOwogICAgIApAQCAtMzAsNyArMzAsNyBAQCBmdW5j
dGlvbiBydW5UZXN0KCkKICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHBsdWdpbjIpOwog
ICAgIAogICAgIHNob3VsZEJlKCJwbHVnaW4yLnByaXZhdGVCcm93c2luZ0VuYWJsZWQiLCAidHJ1
ZSIpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQo
ZmFsc2UpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVk
KGZhbHNlKTsKICAgICBzaG91bGRCZSgicGx1Z2luMS5wcml2YXRlQnJvd3NpbmdFbmFibGVkIiwg
ImZhbHNlIik7CiAgICAgc2hvdWxkQmUoInBsdWdpbjIucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCIs
ICJmYWxzZSIpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGx1Z2lucy9wcml2YXRlLWJy
b3dzaW5nLW1vZGUuaHRtbCBiL0xheW91dFRlc3RzL3BsdWdpbnMvcHJpdmF0ZS1icm93c2luZy1t
b2RlLmh0bWwKaW5kZXggMzBkYjBmZTZkNzU4OTI3NzE0YjEwNmM0NWEwNjc1ODA3NjEwOWY0NC4u
ZTc0NTM1NzQyMTI5YzZhMTRkMTYyZTQzYzlhY2MzMTc1OGQzZjI0NyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGx1Z2lucy9wcml2YXRlLWJyb3dzaW5nLW1vZGUuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9wbHVnaW5zL3ByaXZhdGUtYnJvd3NpbmctbW9kZS5odG1sCkBAIC0yMSw3ICsyMSw3IEBA
IGZ1bmN0aW9uIHJ1blRlc3QoKQogICAgIHNob3VsZEJlKCJwbHVnaW4xLmNhY2hlZFByaXZhdGVC
cm93c2luZ0VuYWJsZWQiLCAiZmFsc2UiKTsKIAogICAgIC8vIE5vdyBlbmFibGUgcHJpdmF0ZSBi
cm93c2luZwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFByaXZhdGVCcm93c2luZ0VuYWJs
ZWQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFByaXZhdGVCcm93c2luZ0VuYWJs
ZWQodHJ1ZSk7CiAKICAgICBzaG91bGRCZSgicGx1Z2luMS5wcml2YXRlQnJvd3NpbmdFbmFibGVk
IiwgInRydWUiKTsKICAgICBzaG91bGRCZSgicGx1Z2luMS5jYWNoZWRQcml2YXRlQnJvd3NpbmdF
bmFibGVkIiwgInRydWUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3Rv
cmFnZS9sb2NhbHN0b3JhZ2UvcHJpdmF0ZS1icm93c2luZy1hZmZlY3RzLXN0b3JhZ2UuaHRtbCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvcHJpdmF0ZS1icm93
c2luZy1hZmZlY3RzLXN0b3JhZ2UuaHRtbAppbmRleCBiMmU0NzIwOTRjOWQ3ODBiYmExYmNhY2M0
ODI5Zjk1MmUxNTZlOWM0Li4wODllNmJjNWYzZTdiYjg0OTE4MWI5NTNlNTM3NzBmZTcyMzcwYjc0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdl
L3ByaXZhdGUtYnJvd3NpbmctYWZmZWN0cy1zdG9yYWdlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9wcml2YXRlLWJyb3dzaW5nLWFmZmVjdHMt
c3RvcmFnZS5odG1sCkBAIC0yMyw3ICsyMyw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogICAgIGxv
Y2FsU3RvcmFnZS5jbGVhcigpOwogICAgIAogICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJ0ZXN0
SXRlbSIsICJJbml0aWFsVmFsdWUiKTsgICAgCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCh0cnVlKTsKICAgICBsb2coIkluaXRpYWwgdmFsdWUgb2Yg
dGVzdEl0ZW0gaXM6ICIgKyBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgidGVzdEl0ZW0iKSk7CiAKICAg
ICB0cnkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Np
b25zdG9yYWdlL3ByaXZhdGUtYnJvd3NpbmctYWZmZWN0cy1zdG9yYWdlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvcHJpdmF0ZS1icm93c2luZy1h
ZmZlY3RzLXN0b3JhZ2UuaHRtbAppbmRleCA4ZGQ3YTZhM2M0ODdiZTAyNDZiNjNhOWVkZGY2NDU0
NTI0ZGZlNDYwLi45OWJhZTdlYjA1MjkzODNlY2Q4NThkMDY1OTBhNzJkZTNmYjE5YjdjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvcHJp
dmF0ZS1icm93c2luZy1hZmZlY3RzLXN0b3JhZ2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvcHJpdmF0ZS1icm93c2luZy1hZmZlY3RzLXN0
b3JhZ2UuaHRtbApAQCAtMjMsNyArMjMsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkKICAgICB9CiAg
ICAgCiAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgidGVzdEl0ZW0iLCAiSW5pdGlhbFZhbHVl
Iik7ICAgIAotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFByaXZhdGVCcm93c2luZ0VuYWJs
ZWQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFByaXZhdGVCcm93c2luZ0VuYWJs
ZWQodHJ1ZSk7CiAgICAgbG9nKCJJbml0aWFsIHZhbHVlIG9mIHRlc3RJdGVtIGlzOiAiICsgc2Vz
c2lvblN0b3JhZ2UuZ2V0SXRlbSgidGVzdEl0ZW0iKSk7CiAKICAgICB0cnkgewpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9wcml2YXRlLWJyb3dzaW5nLW5vcmVhZC1ub3dyaXRlLmh0
bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL3ByaXZhdGUtYnJvd3Npbmctbm9yZWFkLW5vd3JpdGUu
aHRtbAppbmRleCBiOWI1ODgyYjRkZTFjNTYyMDY0YzVlODQ3NzAxMDY5NzlhMDFmYzE1Li42ZjNl
MWM2ODFhMDYxNmY2YjExNjUxMzk0NTJmMzQ5MzM0NzhiYmQ2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL3ByaXZhdGUtYnJvd3Npbmctbm9yZWFkLW5vd3JpdGUuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL3ByaXZhdGUtYnJvd3Npbmctbm9yZWFkLW5vd3JpdGUuaHRtbApA
QCAtNjcsOCArNjcsOCBAQCBmdW5jdGlvbiBydW5Qcml2YXRlQnJvd3NpbmdUZXN0cygpCiB7CiAg
ICAgY29tcGxldGVkID0gMDsKIAotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQo
dHJ1ZSk7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXR0
aW5ncy5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHRydWUpOwogICAgIAogICAgIGZvciAoaSBp
biBwcml2YXRlQnJvd3NpbmdTdGF0ZW1lbnRzKQogICAgICAgICB0aGVUcmFuc2FjdGlvbi5leGVj
dXRlU3FsKHByaXZhdGVCcm93c2luZ1N0YXRlbWVudHNbaV0sIFtdLCBwcml2YXRlQnJvd3NpbmdT
dWNjZXNzRnVuY3Rpb24sIHByaXZhdGVCcm93c2luZ0Vycm9yRnVuY3Rpb24pOwpkaWZmIC0tZ2l0
IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDQxMGUwMDYyMTMyOTZlYzliNjJmZDdhNjI1
MWU4NmQ4NTg4MDMxNDcuLmI2NWFkMjMxYjM1Y2NjZWZkYTFhNzUxNzg3ZmI0YWExZDNjMTBlMWUg
MTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAxMi0wNC0zMCAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisg
ICAgICAgIENvbnZlcnQgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCB0byB1c2UgSW50ZXJuYWxT
ZXR0aW5ncyBpbnRlcmZhY2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04NTAzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcjogQWRkIHNldFByaXZh
dGVCcm93c2luZ0VuYWJsZWQgc3ltYm9sIGZpbHRlci4KKwogMjAxMi0wNC0zMCAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gVXBkYXRl
IE5FV1MgYW5kIGNvbmZpZ3VyZS5hYyBmb3IgMS45LjEgcmVsZWFzZQo=
</data>
<flag name="review"
          id="145225"
          type_id="1"
          status="-"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>